

3.3 LLM as Scoring/Ranking Function
ㅇ scoring/ranking 단계의 최종 목표는 추천 item들의 리스트를 제공하는 것이다.
ㅇ LLM을 scoring/ranking function으로 사용함으로써 이러한 목표는 이뤄질 수 있다.
(rating prediction, item ID generation)
ㅇ Task에 따라, 저자들은 이에 대한 연구를 세가지로 분류
(1) item scoring task (2) item generation task (3) hybrid task
(1) item scoring task
ㅇ item을 scoring할때, LLM은 pointwise function F(u,i)로 기능
--> LLM(F)의 Output으로는 utility score가 나옴.
ㅇ final ranked list of items 은 Pre-filter → F(u,i)로 score내서 Sorting
ㅇ Pre-filter : retrieval, pre-ranking models
즉, 후보를 추림.(computation cost 낮추는 효과)

ㅇ 일반적으로, LLM은 token을 input으로 해서 target token을 output으로 만들어내는데,
아래와 같다.

textual prompt x → LLM으로 h(final representation) → LM_Head로 s → Softmax로 p → t hat : predicted token (확률분포 p로부터 샘플링)
ㅇ item scoring 은 model이 (u,i)가 주어졌을때, output이 real number(y_hat)로 나오도록 pointwise scoring하길바라는데, output y_hat이 특정 범위안의 수가 나와야함. ex) CTR같은경우에는 0과 1사이.
==>이러한 이슈(LLM의 output은 token이고 우리는 real number를 원함)를 해결하기 위해서는 3개의 접근법이 있다.
- 1. language modeling decoder head(LM_Head)를 버림. 그러고 final representation h를 projection layer에 넣어서 final score y_hat 계산.
여기서는 MLP를 projection layer로 씀.

x를 LLM에 넣고 나온 h를 MLP에 넣어서 F(u,i) 즉 y_hat를 만들어냄. x에 user와 item에 대한 information이 포함되어 있어야함.
- 2. 1처럼 LLM의 decoder head를 버리는데, two-tower 구조를 씀.
i.e. user와 item 각각의 representation을 얻기위해 두개의 별개의 tower를 유지함.
선호스코어는 특정 distance metric을 통해 계산됨. (cosine similarity, L2 distance같은 metric사용)

여기서 Tu, Ti는 LLM backbone으로 이루어진 user와 item tower.
즉, user와 item text로 부터 유용한 representation을 뽑은 것.
<CoWPiRec> word graph neural network을 item text에 사용해서 semantic information correlation을 더풍부하게 만듦.
<TASTE> encoder-decoder LLM을 이용해서 유저행동을 vector로 인코딩하고 decoder를 통해 user 선호도 뽑아냄.
- 3. 앞의 두개는 decoder head를 대체하는거였는데, 마지막 3번은 decoder head 냅두고
확률분포기반으로 선호도를 측정하도록 제안한다.
<TALLRec/ReLLA/PromptRec/BTRec/CR-SoRec> : 유저 프로필, 유저행동, 타겟아이템의 묘사뒤에 binary question을 추가함.
--> item scoring task를 binary question answering problem으로 바꿈.
2) Item Generation Task
ㅇ LLM이 generative function F(u)처럼 역할. → final ranked list of items를 만들어냄.
ㅇ candidate item들이 LLM이 item generation하도록 input으로 주어지는데,
generation에 대한 유형은 두가지.
-1. open-set item generation
ㅇ LLM은 유저가 선호할만한 ranked item list를 만들어냄. (user profile, 행동히스토리에 따라), candidate item set없이 만들어냄. 즉, item pool이 뭔지를 모름.
ㅇ 결과적으로 LLM이 만들어낸 item 이 실제 pool에 없을 수 있다.
→ 후처리 작업 필요.(matching작업) ex) cosine similarity, Damerau-Levenshtein distance
-2. closed-set item generation : 주어진 후보군안에서 rank or select.
ㅇ 이를 위해, item set으로부터 후보들 추려냄.(가벼운 retrieval model 사용).후보는 최대 20개.
==> (결론1) open-set generation은 generative hallucination problem이 있음.
ㅇ 만들어낸 item이 실제 item과 일치하지 않을 수 있음.(generation후에 matching작업 필요)
→ 과부하 or 최종 추천성능 저하
==> (결론2) closed-set generation은 가벼운 retrieval model을 pre-filter로 삼아서 후보들을 추려냄.
ㅇhallucination problem 은 해결.
ㅇ 후보를 많이 둘 수 없으니까 이 후보뽑는 retrieval model에 최종 추천성능이 너무 좌우됨.

이 두개를 해결하기위해 hybrid가 나옴.
3) Hybrid Task
ㅇ LLM은 다양한 task에서 사용됨. 즉, item scoring과 generation task에 사용됨.
(LLM이 multi-task에 강하기 때문)
<P5/M6-Rec/InstructRec> encoder-decoder model을 튜닝
<RecRanker> pointwise scoring, pairwise comparison, listwise ranking task를 결합해서
LLM을 top-N 추천에 사용
<BDLM> 도메인에 맞춤화된 모델과 일반적인 LLM과의 information gap을 줄임.
(information sharing module사용, 메모리저장 역할)
댓글