추천시스템 스터디 (예정) - Songwooseok123/Study_Space GitHub Wiki
목차
- Content-based
- Collaborative Filtering
- Sequential Recommendation
- Modality-aware Recommender Systems
- LLM 활용 추천시스템
1. Content-based filtering
- 아이템의 내용, 속성 등을 아이템-아이템 간의 비교를 통해 이루어지는 추천기술
2. Collaborative Filtering
협업 필터링은 사용자의 과거 행동이나 다른 사용자와의 유사성을 바탕으로 아이템을 추천하는 기법이다. 크게 두 가지 방식으로 나뉜다.
- 사용자 기반 협업 필터링 (User-Based)
- 아이템 기반 협업 필터링 (Item-Based)
Cold Scenario란?
추천 시스템에서 데이터가 적은 경우(추천시스템의 초기상태로써 사용자 또는 아이템간의 관계나 상호작용 데이터가 적거나 없는 경우)
- Cold User
- Cold Item
👤 사용자 기반 협업 필터링 (User-Based Collaborative Filtering)
✅ 핵심 아이디어
나와 비슷한 취향을 가진 사용자가 좋아한 아이템을 추천한다.
✅ 작동 방식
- 사용자 간 유사도 계산
- 예: Cosine Similarity, Pearson Correlation
- 가장 유사한 사용자 찾기
- K-최근접 이웃(K-NN) 방식 사용
- 추천 생성
- 유사한 사용자가 좋아한 아이템 중, 내가 아직 보지 않은 것을 추천
📊 예시
사용자 | 영화 A | 영화 B | 영화 C | 영화 D |
---|---|---|---|---|
유저1 | 5 | 3 | ? | 1 |
유저2 | 4 | 2 | 5 | 1 |
유저3 | 1 | 5 | 2 | 4 |
유저4 | 5 | 3 | 4 | 1 |
- 유저1과 유사한 유저2, 유저4가 영화 C를 높게 평가
- → 유저1에게 영화 C 추천
📦 아이템 기반 협업 필터링 (Item-Based Collaborative Filtering)
✅ 핵심 아이디어
내가 좋아한 아이템과 비슷한 아이템을 추천한다.
✅ 작동 방식
- 아이템 간 유사도 계산
- 사용자들의 평점을 기준으로 아이템 간 유사도 측정
- 유사한 아이템 찾기
- 추천 생성
- 내가 높게 평가한 아이템과 유사한 아이템 추천
📊 예시
사용자 | 영화 A | 영화 B | 영화 C | 영화 D |
---|---|---|---|---|
유저1 | 5 | 3 | ? | 1 |
유저2 | 4 | 2 | 5 | 1 |
유저3 | 1 | 5 | 2 | 4 |
- 유저1이 영화 A를 매우 좋아함 (5점)
- 영화 A와 영화 C의 평가 패턴이 유사
- → 영화 C를 유저1에게 추천
⚖️ 사용자 기반 vs 아이템 기반 비교
항목 | 사용자 기반 (User-Based) | 아이템 기반 (Item-Based) |
---|---|---|
기준 | 사용자 간 유사도 | 아이템 간 유사도 |
장점 | 사용자 간의 관계가 직관적 | 유사성 기반으로 신뢰도 높음 |
단점 | 사용자 수 많을수록 계산 부담 | 아이템 유사도 계산 복잡함 |
확장성 | 낮음 | 높음 |
넷플릭스 적용 사례 | 초창기 사용 | 후에 아이템 기반으로 전환 |
🔧 보완 및 고도화 기법
- K-최근접 이웃 (K-NN)
- 유사도 행렬 미리 계산하여 캐싱
- 행렬 분해 (Matrix Factorization): SVD, ALS 등과 결합하여 사용
📌 3. Sequential Recommendation 정리
1. 개요
- Sequential Recommendation이란?
- 사용자의 아이템 상호작용 순서(sequence) 를 바탕으로 다음에 추천할 아이템을 예측하는 방법.
- 인공지능 기반 협업 필터링(Collaborative Filtering) 방식의 하나.
2. 기본 구성 및 학습 대상
-
Look-up Table 기반 아이템 임베딩
- 각 아이템은 명시적인 벡터 표현(embedding)을 가짐.
-
딥러닝 기반 모델
- GRU4Rec, SASRec, BERT4Rec 등
- 사용자 임베딩은 명시적으로 존재하지 않음
3. 사용자 표현 방식
-
명시적 사용자 임베딩 ❌
- 기존 방식과 달리, 명시적인 사용자 벡터를 따로 사용하지 않음.
-
암묵적 사용자 표현 (Implicit Representation)
- 사용자의 시퀀스 입력을 통해 모델이 자동으로 사용자 표현을 학습.
- 예시:
BERT4Rec
:[CLS]
토큰의 hidden state 사용SASRec
: 마지막 아이템의 hidden state 사용
-
핵심 아이디어
- 사용자의 아이템 시퀀스 자체를 사용자로 간주하여, 그 정보를 통해 취향을 파악함.
4. Collaborative Information 학습
-
Collaborative Information 이란?
- 사용자와 아이템들 간의 상호작용(interaction) 정보
-
학습 내용:
- 사용자가 어떤 아이템들과 어떻게 상호작용하는지를 학습
- 시퀀스 내에서 아이템들이 어떤 순서로 등장하는지를 학습
-
학습 대상:
- 아이템 임베딩
- 전체 모델 구조
-
conventional recommenders에서 얻은 아이템 임베딩에는 collaborative information이 충분히 반영되어 있음
5. 특징 및 중요성
- 아이템의 부수적인 정보 없이도, user-item interaction만으로 일정 수준의 추천 성능 확보 가능
- 그만큼 collaborative information의 이해가 중요함
🧠 4. Modality-aware Recommender Systems
Modality-aware Recommender Systems는 사용자 또는 아이템에 대해 다양한 모달리티(Modality) 데이터를 활용하여 더 정밀하고 풍부한 추천을 제공하는 시스템이다.
- MoRec [51] utilizes pre-trained modality encoders (e.g., BERT [9] or Vision-Transformer [10]) to project raw modality features of items (e.g., item texts or images), thereby replacing the item embeddings typically used in collaborative filtering recommendation models. Similarly, CTRL [25] considers tabular data and its textual representation as two different modalities and uses them to pre-train collaborative filtering recommendation models through a contrastive learning objective, which is then fine-tuned for specific recommendation tasks.
📌 모달리티(Modality)란?
모달리티는 데이터의 표현 방식 또는 종류를 의미한다.
예: 영화 추천 시스템에서의 다양한 모달리티
- 텍스트: 줄거리, 제목, 리뷰
- 이미지: 포스터, 썸네일
- 비디오: 예고편, 클립
- 오디오: 사운드트랙, 대사
- 메타데이터: 장르, 감독, 배우 등
✅ 핵심 아이디어
단일 모달 정보만 사용하는 대신, 여러 모달리티를 함께 활용하여 더 풍부한 사용자 및 아이템 표현을 만들고, 추천 품질을 향상시킨다.
💡 도입 배경 (Motivation)
기존 추천 시스템의 한계:
-
콜드스타트 문제
→ 새로운 유저나 아이템에 대한 정보 부족 -
추천 품질 부족
→ 상호작용 데이터만으로는 충분한 맥락 파악이 어려움 -
설명 가능성 부족
→ 추천 이유를 사용자에게 설명하기 어려움
🛠 해결책: 다양한 모달리티의 정보를 결합하여 위 문제를 보완!
🎯 예시: 영화 추천 시스템
모달리티 | 데이터 예시 |
---|---|
텍스트 | 줄거리 요약, 사용자 리뷰 |
이미지 | 영화 포스터, 썸네일 이미지 |
오디오 | 사운드트랙, 배경음악 |
메타데이터 | 장르, 감독, 배우, 개봉년도 등 |
예: 사운드트랙을 선호하는 유저에게 음악 중심의 영화 추천 가능
🏗️ 모델 구조 개요
1. 모달리티별 인코더
- 텍스트 → BERT, LSTM 등
- 이미지 → CNN, ResNet 등
- 오디오 → WaveNet, Audio CNN 등
2. 멀티모달 융합(Fusion)
-
Early Fusion
→ 여러 모달리티 데이터를 먼저 결합한 후 인코딩 -
Late Fusion
→ 각 모달리티를 인코딩한 후 결과를 결합 -
Joint Embedding
→ 공통 임베딩 공간에 다양한 모달리티를 매핑
3. 추천 예측
- 인코딩된 사용자/아이템 임베딩을 기반으로 예측
→ dot product, MLP, Transformer, GNN 등 사용 가능
📚 대표 논문 및 모델
모델 | 설명 |
---|---|
MMGCN | 멀티모달 그래프 기반 추천 |
MMRec | 셀프 슈퍼바이즈드 방식의 멀티모달 추천 |
MERIT | 아이템 간 변환을 통한 모달리티 인식 추천 |
M3R | 멀티모달 + 다중 관심사 + 다중 관계 기반 추천 시스템 |
⚖️ 장단점 비교
장점 | 단점 |
---|---|
다양한 정보로 정확도 향상 | 다양한 모달리티 데이터 수집 필요 |
콜드스타트 문제 완화 | 모달리티 간 데이터 불균형 이슈 |
추천 이유 설명 가능 | 복잡한 구조 및 높은 연산 비용 |
📝 한 줄 요약
Modality-aware Recommender Systems는 다양한 모달리티(텍스트, 이미지, 오디오 등)를 활용하여 더 정확하고 풍부한 추천을 가능하게 하는 차세대 추천 시스템이다.
🤖 5. 추천 시스템 + LLM
- Early studies on LLMbased recommendation [12, 16, 44] have employed OpenAI-GPT with In-context Learning [4]. This approach adapts to new tasks or information based on the context provided within the input prompt and demonstrates the potential of LLMs as a recommender system. Moreover, to bridge the gap between the training tasks of LLMs and recommendation tasks, TALLRec [2] fine-tunes LLMs with recommendation data using LoRA [18]. This approach has empirically demonstrated that, in cold scenarios and cross-domain scenarios, fine-tuned LLMs outperform traditional collaborative filtering models
✅ LLM 활용 시 장점
-
Textual 정보를 잘 파악한다
- 아이템의 여러 속성이 텍스트 형태로 주어질 경우,
아이템을 더 잘 이해하고 파악할 수 있음 - → 아이템 간의 더 정교한 비교 가능
- 아이템의 여러 속성이 텍스트 형태로 주어질 경우,
-
모델 내부에 다양한 지식이 내재됨
- 세상에 존재하는 일반 상식, 개념적 연결 등 풍부한 배경 지식 보유
-
아이템에 대한 기본 정보 보완 가능
- 아이템에 대한 메타 정보 없이도 모델이 내재적 의미를 파악할 가능성 있음
-
User-Item interaction만을 기반으로 정보 학습한 기존 방법보다 유리
- 특히, Cold Start 시나리오에서 뛰어난 대응 능력을 보임
→ 예: 새로운 아이템 등장 시에도 빠르게 의미 파악 가능
- 특히, Cold Start 시나리오에서 뛰어난 대응 능력을 보임
-
Cross-domain 상황에서 유리함
- 서로 다른 도메인의 정보를 연결해 추천하는 데 도움 됨
✅ LLM 활용 시 한계점
-
LLM이 사전학습한 과업과 추천 과업 사이에 차이가 존재
- 기존 LLM은 전반적인 언어 이해 능력 향상을 목표로 학습함
- 반면, 추천 시스템은 사용자-아이템 간의 interaction에서 나타나는 패턴 이해가 핵심임
-
추천 과업에서 자주 등장하는 입력 형태를 충분히 학습하지 못함
-
예를 들어, 아이템의 순서(sequence)와 타겟 아이템을 함께 다루는 구조는 LLM이 사전학습 단계에서 많이 경험하지 못함
-
이런 차이를 보완하기 위한 연구 방향
Instruction tuning
과LoRA
를 활용해서 LLM을 추천 과업에 맞게 추가 학습시킴- ex TALLRec
- ex TALLRec
-
-
추천 시스템을 위한 아이템의 explicit representation이 없음
-
LLM을 학습한다고 해도, Item 임베딩이 학습되지는 않음 -> 상호작용 정보의 학습이 불충분함
-
보완 연구 방향
- ID-token 임베딩을 학습시키는 방법
- Conventional recommendaers로부터 학습된 임베딩을 활용하는 방법
- CoLLM, LLaRa 등
- conventional recommenders에 의존하게 됨