Large Language Models meet Collaborative Filtering: An Efficient All‐round LLM‐based Recommender System 논문리뷰 - Songwooseok123/Study_Space GitHub Wiki

  • 논문 제목: Large Language Models meet Collaborative Filtering: An Efficient All‐round LLM‐based Recommender System
  • 학회 및 출판 정보: KDD 2024/08 (ACM SIGKDD Conference on Knowledge Discovery and Data Mining)
  • 저자: Sein Kim, Hongseok Kang,...(카이스트/네이버)

1. 연구 동기 및 요약

image

이 논문은 "Sequential Recommendation" task를 수행하는데 있어서, 기존 추천 시스템의 한계를 보완하기 위해 LLM을 활용한 새로운 추천 시스템, "A-LLMRec" 을 제안함.

  • 기존 추천시스템의 한계: cold/warm 시나리오에 대한 성능 저하
    • 참고로, cold 시나리오: 추천 시스템에서 데이터가 적은 경우(추천시스템의 초기상태로써 사용자 또는 아이템간의 관계나 상호작용 데이터가 적거나 없는 경우)
    • warm 시나리오: cold와 반대로, 상호작용 데이터가 맣은 경우

image

Figure 1: Comparisons between collaborative filtering model (SASRec), modality-aware model (i.e., MoRec), and LLMbased model (i.e., TALLRec) under the cold/warm1 scenarios on Amazon Movies/Video Games dataset (Hit@1)2.

  • 협업 필터링(Collaborative Filtering RecSys) 기반 방법의 한계

    • 콜드(cold) 시나리오 상황에서는 한계가 있다는 점
  • CF(Collaborative Filtering)의 한계를 보완하기 위해 modality-aware 추천 시스템, llm 기반 추천시스템이 등장

    • 기존 CF에 비해서 cold 시나리오에 대한 효과는 좋았지만, Collaborative knowledge(사용자-상품 상호작용 정보)의 부족으로 warm 시나리오에 대한 성능은 안 좋음
      • 즉, textual information에만 의존함, 따라서 Warm 시나리오에선 기존 CF보다 성능이 안 좋음
      • 즉, Cold/Warm 상황에서 모두 Collaborative knowledge와 Text knowledge를 활용할 수 있도록, 기존 CF와 LLM을 결합하고 잠재공간을 Align하는 방법이 필요함.
  • 본 논문 제안 방법:

    • 기존 CF 모델이 학습한 사용자/아이템 임베딩 을 그대로 활용하면서, LLM의 추론 능력과 표현력을 함께 사용하는 방식
    • 구체적으로, CF의 아이템 임베딩을 LLM의 토큰 공간과 정렬(alignment)시키는 정렬 네트워크(alignment network)를 고안
  • 특징

    • 콜드/웜 시나리오 모두에서 강력한 성능
    • 모델 독립적(model-agnostic): 기존 CF 모델이나 LLM과 쉽게 결합할 수 있다.
    • CF-RecSys, LLM 둘 다 학습 필요없음, 둘 사이를 연결하는 정렬 네트워크(alignment network)만 학습시키면 됨.
    • 자연어 생성까지 가능(예를 들어, 사용자의 선호 장르 예측)

2. Related Works -> 실험 Baseline으로 쓰인 3가지 방법

Collaborative filtering (CF-RecSys)

  • 다른 부가 정보 없이 collaborative information만 활용
  • NCF, NextItNet, GRU4Rec, SASRec

Modality-aware

  • 아이템의 text 정보를 이용하지만 LLM을 기반으로하지 않는 방법론
  • MoRec, CTRL: 두 단계로 구성된 방법론
    1. Text 정보를 기반으로 아이템 임베딩 획득
    2. 획득한 아이템 임베딩으로 CF-RecSys 모델 훈련 (본 실험 시 SASRec 활용)
  • Reformer: collaborative 정보 없이 오직 text 정보만을 이용해 Longformer를 추천 과업 전용 언어 모델로 활용

LLM-based

  • LLM-only: facebook/opt-6.7b를 이용하여 해당 prompt로 추천과업 진행
  • TALLRec: text 정보로만 구성된 prompt를 통해 LLM을 LoRA 방식으로 finetuning 진행
  • MLP-LLM: A-LLMRec 구조에서 stage-1에서 획득한 사용자 및 아이템 임베딩 활용이 아닌,
    frozen CF-RecSys에서 획득한 사용자 및 아이템 임베딩을 LLM의 임베딩 사이즈에 맞게 조정하여 활용한 경우

3. 문제 정의

Notations

  • (𝑈, 𝐼, 𝒯, S) ∈ 𝒟
    → historical user-item interaction dataset (사용자와 아이템의 과거 상호작용 데이터를 의미)

    • 𝑈: 사용자 집합

      • 𝑈 = {u1, u2, ..., uN}
    • 𝐼: 아이템 집합

      • 영화 추천이라면 영화들의 집합.
      • i ∈ 𝐼 → (tⁱ, dⁱ) ∈ 𝒯
        → 아이템 i는 제목(tⁱ)과 설명(dⁱ)의 정보를 가진다.
    • 𝒯: 아이템 제목(title) + 설명(description) 집합

    • S: 아이템 시퀀스(sequence) 집합

      • Sᵘ: 한 사용자 u가 순서대로 클릭한 아이템들.
      • Sᵘ = (i₁ᵘ, i₂ᵘ, ..., iₖᵘ, ..., iₛᵘᵘ) ∈ S
        → 사용자의 아이템 상호작용 시퀀스 (user u의 interaction 순서를 나타냄)

Task

Sequential Recommendation: 사용자의 아이템 상호작용 시퀀스를 기반으로 다음 아이템을 예측하는 것이 목표

  • E ∈ ℝ|𝐼|×d
    → 아이템 임베딩 행렬(CF-RecSys에 아이템 시퀀스 S를 입력하면 나오는 output)

    • |I|는 전체 아이템 개수, d는 임베딩 차원 수.
  • S = {SS¹, S², ..., S|𝑈|}
    → 모든 사용자의 interaction 시퀀스 집합

  • S1:ku = (i₁ᵘ, ..., iₖᵘ) ⊂ Sᵘ
    → user u의 interaction 시퀀스에서 앞부분 k개만 사용한 것

  • E1:ku = (Ei₁ᵘ, ..., Eiₖᵘ) ∈ ℝk×d
    → 위 시퀀스에 해당하는 아이템 임베딩 벡터들의 시퀀스

    • 각각의 아이템 i에 대해 임베딩 벡터 Eᵢ를 가져온 것.
    • 이걸 CF의 입력으로 사용해서 다음 아이템을 예측

image

  • 모든 사용자 u에 대해서 그 사용자의 시퀀스를 앞에서부터 한 칸씩 늘려가면서 , 다음 아이템 i_{k+1}이 나올 확률을 예측하고, 그 확률들을 곱해서 전체 확률을 최대화하는 것. 즉, 과거에 본 아이템들(S₁:k)을 보고, 다음 아이템(iₖ₊₁)을 예측하는 모델을 학습한다.(위의 식의 값이 최대화가 되도록 Θ를 최적화 한다)
  • 모든 사용자 u에 대해, 주어진 k개까지의 시퀀스 ( S_{1:k}^u )로부터 다음 아이템 ( i_{k+1}^u )을 예측하는 확률을 최대화하는 것이 목표.
  • 모델 파라미터는 ( \theta )로 표시됨.
  • 이는 sequence-aware 추천 시스템에서 흔히 사용되는 방식으로, 예측 정확도를 높이기 위해 과거 시퀀스를 고려함.

4. Method

밑의 2개 단계로 나뉨

  • 1단계: Collaborative knowledge와 Textual knowledge를 정렬하는 단계
  • 2단계: Joint Collaborative-Text 임베딩과 LLM을 정렬하는 단계

Stage 1 : Alignment between Collaborative and Textual Knowledge

  • 목적함수는 다음과 같다. 각각의 loss에 대해서 설명하겠음.

image

4.1.1 L_matching(matching loss)

  • CF에서 나온 Item embeddings(Collaborative knowledge)과 그와 관련된 Textual knowledge를 align하는 단계
    • collaborative 정보가 담긴 아이템의 임베딩에 textual 정보를 주입한다고 생각하면 될듯
  • CF-RecSys(❄️)
    • 사용자의 과거 user-item interation history를 기반으로 아이템 임베딩($E_i$) 생성
  • SBERT(🔥) +텍스트 임베딩
    • 아이템의 textual 정보(title+description)로 텍스트 임베딩($Qᵢ$) 생성
  • 두 개의 인코더
  • 아이템 임베딩과 텍스트 임베딩을 공통 잠재 공간(latent space) 으로 매핑하기 위해 두 개의 MLP 기반 인코더를 사용함:
    • $f^{enc}_I$(🔥): CF-RecSys의 아이템 임베딩 Eᵢ → 잠재 임베딩 eᵢ (차원: d → d′)
    • $f^{enc}_T$(🔥): SBERT의 텍스트 임베딩 Qᵢ → 잠재 임베딩 qᵢ (차원: 768 → d′)
  • 잠재 공간에서 eᵢ와 qᵢ를 최대한 가깝게 정렬(아이템 시퀀스 정보와 텍스트 정보가 유사해지도록)
  • 이 정렬은 LLM이 이후에 협업 임베딩 정보를 텍스트처럼 이해하고 활용할 수 있도록 함.
    • 문제점: Over-smoothing
      • 단순히 eᵢ ≈ qᵢ가 되도록 학습하면, 두 임베딩이 무의미하게 평균화된 정보(즉, 모두 비슷하게)로 수렴할 위험이 있음.
      • 극단적으로는 모든 벡터가 0으로 수렴할 수도 있음.

4.1.2 L_item_recon, L_text_recon (Reconstruction Loss)

위의 Over-smoothing 현상을 방지하기 위해, 각 인코더 뒤에 디코더를 붙여 입력 복원을 시도함-> 핵심정보를 인코딩하도록 학습하는 loss임.

$f^{dec}_I$(🔥): eᵢ → Êᵢ → 원래 아이템 임베딩 Eᵢ 복원

$f^{dec}_T$(🔥): qᵢ → Q̂ᵢ → 원래 텍스트 임베딩 Qᵢ 복원

4.1.3 L_rec(recommendation loss)

  • user Representation($x_u$)으로 아이템 추천을 잘 하도록 학습하는 loss
  • 텍스트와 협업 지식을 매칭하는 것도 중요하지만, 모델이 추천(task)의 구조를 알도록 하는 명시적인 학습도 필요하다.
  • 학습 방법: 진짜 클릭한 아이템은 높게, 무관한 아이템은 낮게 예측하게끔.
  • $x_u$: 사용자 $u$의 representation (CF-RecSys가 만들어냄)
  • $E_{i^u}$: positive item (사용자가 실제 클릭한 아이템)의 임베딩
  • $E_{i^{u,-}}$: 부정 아이템 (사용자가 안 본 것)
  • user representation( $x_u$)은 지금까지 본 아이템들 기반으로 만들어졌고, positive item 임베딩($E_{i^u}$)이 인코더, 디코더를 통과해서 나온 임베딩은 앞으로 클릭할 아이템을 나타냄.
    • → 이 둘이 비슷해야 = 사용자 취향과 아이템이 잘 맞음 → 그래서 dot product가 커지도록 (= 유사도가 높게) 학습함.

4.1.4 Joint Collaborative-Text Embedding

image

  • 위의 목적함수로 학습 후 $f_I^{enc}$에서 얻어지는 임베딩($e_i$ = $f_I^{enc}$ $(E_i)$ )을 "Joint Collaborative-Text Embedding" 이라고 함
    • CF에서 나온 Item embeddings(Collaborative knowledge)과 그와 관련된 Textual knowledge가 align 된 상태
      • collaborative 정보가 담긴 아이템의 임베딩에 textual 정보를 주입되었다고 생각해도 됨
  • 학습된 $f_I^{enc}$는 stage 2에서 활용됨($f_I^{enc}$를 통해 나온 $e_i$ 가 LLM의 입력으로 들어갈거임)

Stage 2 : Alignment between Joint Collaborative-Text Embedding and LLM

Stage-1에서 CF-RecSys와 SBERT를 통해 얻은 **joint collaborative-text embedding (eᵢ)**과 user representation (xᵤ)을 LLM이 이해할 수 있도록 LLM의 token embedding space로 **투영(project)**시키고, Prompt 형태로 LLM에 입력해서 사용자 맞춤 추천을 생성하는 게 목표.

4.2.1 Projecting collaborative knowledge onto the token space of LLM

  • 왜 projection이 필요한가?
    • LLM은 고정된 token embedding space (예: 768 or 1024 차원) 안에서만 작동함.
    • 그런데 Stage-1에서 뽑은 xᵤ ∈ ℝᵈ, eᵢ ∈ ℝᵈ′ 는 그 공간과 차원이 다르고 의미도 다름.
    • 그래서 xᵤ와 eᵢ를 LLM이 이해할 수 있도록 변환하는 두 개의 MLP를 사용해서 projection을 해줘야함.

$F_U$: user representation xᵤ ∈ ℝᵈ → Oᵤ ∈ ℝᵈᵗᵒᵏᵉⁿ

$F_I$: item embedding eᵢ ∈ ℝᵈ′ → Oᵢ ∈ ℝᵈᵗᵒᵏᵉⁿ

  • 여기서 Oᵤ, Oᵢ는 이제 LLM이 이해할 수 있는 token embedding처럼 사용할 수 있다.

4.2.2 Prompt Design for Integrating Collaborative Knowledge

**협업 정보(xᵤ)와 텍스트 정보(eᵢ)**를 모두 prompt에 녹여서 warm/cold 모두 다루는 추천이 가능하도록 하기 위함.

  • 여기서 주황색 부분이 [Oᵤ]

    • 사용자 u에 대한 임베딩 (soft prompt처럼 앞에 둬서 personalization)
  • 하늘색부분이 [Oᵢ]

    • 그 아이템의 joint embedding
  • 이걸 통해 LLM은 “아, 이 사용자에 대해 이런 정보가 있고, 이런 아이템들을 봤구나”를 이해할 수 있는 듯.

목적 함수

  • θ: 학습 가능한 파라미터 (projection MLP들: $F_U$, $F_I$)

  • Θ: 고정된 LLM 파라미터 (즉, LLM은 fine-tuning 안 함)

  • $p^u$: 사용자 u에 대한 prompt 입력 (Oᵤ 포함, 아이템들 정보 포함)

  • $y^u$: 사용자 u가 다음에 클릭한 아이템의 title 텍스트

$y^u_{k}$: title 텍스트의 k번째 토큰 (예: “Avengers” → [“A”, “ven”, “gers”])

$y^u_{<k}$: k번째 토큰 이전까지의 시퀀스 (문장을 예측할 때 쓰는 언어 모델 방식)

→ 즉, LLM에게 prompt를 줘서 “이 사용자는 어떤 아이템을 클릭할까?” 하고, 실제 클릭한 아이템의 **제목(title)**을 token-by-token으로 예측하게 학습하는 것.

5. 실험 & 평가

다양한 상황에서 실험을 엄청 많이함.

5.1 Datasets

  • Amazon dataset에서 4개 카테고리
    • 영화, 게임, 뷰티, 장난감

5.2 Baselines

  • related works 에 있는 방법들

5.3 Experiments

Experimental Setup

  • Test item: $i_{|S^u|}^u$

  • Valid item: $i_{1:|S^u|-1}^u$

  • Max length: 별도 설정 없음

  • Candidate: 총 20개의 아이템으로 구성

    • target item을 제외하고 I^u에 포함되지 않은 아이템 중 19개 임의 선택

평가 지표: Hit Ratio@1

  • Hit@k: k개의 아이템을 추천했을 때 추천된 아이템 안에 target item이 하나라도 포함된 경우
    • 즉, target item의 수가 하나인 경우: Hit@k = Recall@k

Implematation Details

  • Backbone: facebook/opt-6.7b
  • CF-RecSys: SASRec
  • movies and tv 학습시 A6000 48GB 4장 사용

5.4 Performance

  • A-LLMRec > collaborative 정보를 반영하지 않는 LLM 기반 방법론들 (LLM-only, TALLRec)
    ▪ Collaborative 정보를 반영하는 것이 추천 과업 성능 향상에 도움 됨

  • A-LLMRec > MLP-LLM
    ▪ CF-RecSys로부터 얻은 임베딩을 LLM에 거의 직접 활용(차원 변환)하는 방식은 그렇게 효과적이지 않음
    ▪ A-LLMRec의 alignment 과정의 효과로 보임

  • LLM-only가 LLM 기반 방법들 중 가장 성능 안 좋음
    ▪ LLM으로 하여금 단순히 prompt 통해 추천 과업을 진행하는 것에는 한계 존재

  • SASRec > TALLRec
    ▪ LLM을 fine-tuning하여도 text 정보만 있으면 안 됨

  • SASRec > Modality-aware
    ▪ text 정보가 더 강조되어 collaborative 정보를 학습하는 데 오히려 방해함

Cold/Warm Item Scenarios

  • Interaction 수 기준 상위 35% → warm item / 하위 35% → cold item ▪ 학습 시, 기존과 동일하게 모든 데이터 활용
    ▪ 평가 시, target item의 cold/warm item 구분 후 각각 평가

  • Cold scenario: TALLRec > SASRec

  • Warm scenario: SASRec > TALLRec
    ▪ 선행 연구들의 결과와 유사함

  • Cold scenario: A-LLMRec(SBERT) > A-LLMRec

  • Warm scenario: A-LLMRec > A-LLMRec(SBERT)
    ▪ Cold에서는 조금이라도 textual 정보를 더 활용하는 것이 유리
    ▪ Warm에서는 collaborative 정보 활용이 더 유리
    결론: Cold/warm 및 모든 데이터셋에서 A-LLMRec > other baselines

Cold user

Cross-domain

Few-shot

Conclusion

⚠️ **GitHub.com Fallback** ⚠️