▪️

ONCE(WSDM, 2024) 논문 리뷰

ONCE: Boosting Content-based Recommendation with Both Open- and Closed-source Large Language Models

WSDM 2024 - Proceedings

ABSTRACT

콘텐츠 기반 개인화 추천시스템(Personalized content-based recommender systems) 분야
(방대한 콘텐츠를 탐색하는) 뉴스 또는 책 추천에서 활용
기존 연구들은 아이템의 콘텐츠를 제대로 이해하는데 한계
LLM이 문제 해결 가능
더 나은 맥락 이해
광범위한 사전 지식
(논문의 핵심 아이디어) Open & Closed - source LLM → 둘을 함께 활용 : 추천 개선
Open LLM (ChatGPT) : Content encoder로 활용 → representation 개선
Closed LLM (LLaMA) : prompting → token 레벨의 학습 data 개선

코드

INTRODUCTION

Content-based recommender systems
아이템(e.g., articles, movies, books)의 콘텐츠, 속성을 분석 → 개인화 추천
관련 플랫폼 : Google News, Goodreads(books)
추천시스템의 핵심 : content encoder
이전 연구
1D-CNN (with pre-trained word representations such as GloVe)
PLMs (BERT)
→ 아이템 콘텐츠를 제대로 이해하는 데는 한계가 있다.
이전 연구의 한계를 LLMs로 극복할 수 있다.
모델 파라미터 & 토큰 차원 ↑ : 엄청난 양의 정보를 저장
(ex) ChatGPT : 특정 책에 대해 질문하면 저자, 주제 등 디테일한 지식 보여줌
직접해봄
Open & Closed - source LLMs : 각기 다른 방법을 채택해서 통합
(Open) 컨텐츠 표현 추출을 기반으로 LLM 모델을 파인튜닝
(Closed) 토큰 아웃풋에만 접근 가능
다양한 프롬프트 전략 → 학습 데이터를 유용하게 만듦
두 가지 데이터셋으로 검증
MIND(Microsoft News Recommendation Dataset)
Goodreads(books)
실험적으로, Finetuning LLaMA → 10% 이상의 성능 개선 Data generated by ChatGPT → 학습 효율과 추천 퀄리티를 향상

참고

콘텐츠 기반 추천 방법론
데이터 구성
1.
타이틀, 카테고리, 세부내용 등 다양한 속성으로 이루어진 콘텐츠
2.
콘텐츠를 본 히스토리를 가지고 있는 유저
3.
유저가 특정 컨텐츠를 보았는지(click)/안보았는지(no-click) 상호작용
목적
콘텐츠 후보군이 주어졌을 때 유저의 선호를 예측
방법론 : 3가지 모듈로 크게 구분
1.
Content encoder : 다양한 속성을 가진 콘텐츠을 벡터로 변환하는 인코더
2.
History(user) encoder : 유저 벡터를 생성하며, 유저가 본 콘텐츠 히스토리 기반으로 생성
3.
Interaction module : 유저 벡터와 후보 아이템 벡터를 기반으로 유저의 선호도(클릭 확률) 예측
기존 연구 흐름

OVERVIEW

(Open LLM) LLaMA
(Network) 기존 연구 모델 구조를 따름
기존 연구(Content Encoder)에서 콘텐츠 인코더를 BERT → LLAMA 교체
Content Encoder
Natural Concator
라벨 : 텍스트 시퀀스 제일 앞 (ex: news article)
각 특성 텍스트 : <특성명> 관련 텍스트
여러 속성을 하나의 시퀀스로 합침
Transformer Decoder
Attention Fusion Layer : linear projection(smaller d) → additive attention (unified z)
Finetuning 전략
Partial Freezing and Caching : LLM의 하위 layer는 덜 task-specific한 경향, 특정 상위 k layer만 fine-tuning을 수행, 나머지 layer는 freezing. 또한 해당 나머지 layer에서의 모델 아웃풋을 미리 저장(caching)하여 학습 효율 ↑
Parameter-Efficient Tuning : 학습 가능한 rank decomposition 행렬을 트랜스포머 레이어에 붙여 이를 업데이트하는 LORA(Low-Rank Adaptation) 방식를 unfrozen한 layer에 적용
(Closed LLM) ChatGPT
LLM의 강력한 텍스트 이해와 생성능력으로 인해 학습 패러다임이 파인튜닝 방법론 → 프롬프트 방법론 변화되고 있음 그러나, 파인튜닝없이 in-context learning 등 프롬프트 방법론을 활용한 추천 성능은 행렬분해 성능정도에 그치고 있는 한계
ChatGPT를 (기존 추천모델의 성능을 향상시킬 수 있도록) 데이터 증강에 활용 * 4단계로 구성
1.
Prompting : 프롬프트 작성
2.
Generating : 언어모델이 새로운 데이터 생성
3.
Updating(optional) : 생성 데이터로 새로운 데이터 생성
4.
Training : 새로운 데이터로 모델 학습
Content Summarizer
컨텐츠 → 간결한 문장들
컨텐츠 title, abstract, category → more informative title : original title 대체
(예제)
뉴스 제목을 다음을 기반으로 강화: [제목] "추수감사절 저녁을 위한 모든 요리 준비법" [요약] "추수감사절 요리를 분 단위로" [카테고리] "food and drink" >>> "완벽한 타이밍의 추수감사절 저녁: 분 단위 정밀한 요리법 안내"
Python
복사
User Profiler
컨텐츠 히스토리 → 유저 프로필를 생성
유저 프로필(vi)는 임베딩 변환(룩업임베딩) → 유저 벡터(vu)와 결합
(예제)
사용자 이력에 기반하여 사용자 프로필 설명: "일터로 복귀하라: 아마존 물류센터에서의 사망 사건에 대한 항의" "마이애미 공항에서 네 명의 승무원 체포" "지금 모두가 살고 싶어 하는 미국의 가장 저렴한 도시들" >>> 주제: "여행, 비즈니스, 경제, 노동권" 지역: "플로리다"
Python
복사
Personalized Content Generator
[cold start] 적은 히스토리를 가진 유저 대상으로 합성 히스토리를 생성
(예제)
사용자 이력에 기반하여 뉴스 기사 추천: "인어공주 라이브 : TV 리뷰" >>> [제목] "실사 영화 뮬란 3월 개봉" [요약] "디즈니의 실사 리메이크 뮬란이 3월에 개봉, 새롭고 화려한 시각과 재능 있는 배우.." [카테고리] "movie"
Python
복사
Chain-based Generation
유저 프로필을 생성 → 다음번 : (생성 프로필 + 히스토리로) 히스토리를 생성
user profile helps LLM to chain thinking : synthetic content 퀄리티 ↑

실험

데이터셋 : MIND(Microsoft News Recommendation Dataset), Goodreads(books)
LLM
(Open) LLaMA-7B, LLaMA-13B
(Close) GPT-3.5
성능 비교
(Open) LLaMA 파인튜닝 - 상당한 성능 개선
(Close) GPT 데이터 증강 - 성능 개선
Open + Close : 시너지 효과

CONCLUSION

기존 콘텐츠 기반 추천시스템의 한계를 LLM으로 개선 시도
Open & Closed - Sourced LLM 통합
Open LLM(LLaMa) 파인튜닝
Closed LLM (GPT) 프롬프트기법 - 데이터 증강

정리하며

두 가지 LLM을 통합하는 방법 제안 흥미
보통 한쪽 LLM으로만 접근하기 쉬운데, 두가지를 다 쓰려고 노력했다는 점
특정 LLM의 한계를 제대로 파악 → 개선점을 찾은 것
A100 갖고싶다.