Recommender System/논문 및 블로그 리뷰

LLM with Recommender System 논문 리뷰 - 1부 [M6-Rec: Generative Pretrained Language Models are Open-Ended Recommender Systems]

Yamarae 2023. 5. 22. 19:38

원문 보기 : https://arxiv.org/pdf/2205.08084.pdf

 

 

 




오랜만에 추천 관련 기술 논문을 두 개 정도 읽게 됐다. 업무 연차가 올라가다보니, 새로운 기술을 접목하거나 논문을 읽어보는 데 할애하는 시간이 점점 줄어들고, 도메인과 서비스에 적용되는 루틴한 개발이나 킬러 피쳐 발굴에만 몰두하게 된다. 그래서 새로운 기술이나 논문을 알아보는 시간이 점점 없어지는 것 같다. 

그래도 곁눈질로 종종 들여다보곤 하는데, 요즘 많이 언급되는 추천시스템 관련 기술 동향은 크게 2가지 꼭지가 있다고 생각한다. 하나는 GNN-based 모델이고, 또 하나는 Transformer(BERT)를 기반으로 하는 Sequential Recommendation 이다. 한 2~3년 전에도 이 생각을 똑같이 했었던 것 같은데, 추천시스템이라는 분야 자체가 워낙에 Case by Case가 심하고, 도메인 의존도가 높다 보니 공통적인 방향에서의 질적 향상을 추구하는 기술이나 연구는 발전 속도가 빠르지 않은 것 같다.

각설하고, 이런 기술적 추세들과는 별개로, 써드 파티 기술(?)이라고도 볼 수 있는 분야가 하나 생겨나고 있는데 바로 LLM 기술을 추천이나 검색시스템에 접목하는 것이다. 워낙에 ChatGPT가 핫하다 보니, 이걸 이 분야에도 써먹을 수 있나 알아보는 정도에 아직은 그치는 것 같지만, 조금 더 시간이 지나면 breakthrough가 될 수 있는 아이디어라고도 생각한다. 실제로 이번에 리뷰할 논문은 알리바바그룹에서 낸 것인데, LLM의 아이디어를 차용하여 입력값(유저의 정보)의 문맥 자체를 ‘이해’하는 쪽의 연구가 진행되고 있다는 것을 알 수 있다.

오늘 포스팅의 내용은 그렇게 깊은 내용을 다루지는 않지만, LLM이 추천시스템에 어떻게 응용될 수 있는지에 대한 단초를 제공하는 내용이라고 할 수 있다. 관련하여 아래의 두 논문을 2부작으로 리뷰할 생각이다.

 

  • M6-Rec: Generative Pretrained Language Models are Open-Ended Recommender Systems
  • Leveraging Large Language Models in Conversational Recommender Systems






1. Introduction

 

추천시스템은 여러 개의 Task로 분화가 되어있다. 랭킹을 해주는 단계로서의 Task도 존재하고, Trend 단위의 prediction을 수행하는 콘텐츠 공급 역할의 Task도 있다. 그리고 서비스마다 각기 다른 Recommender System을 운영한다. 예를 들어 이커머스 쇼핑몰이라던지, 유튜브 같은 서비스가 있다. 현재까지의 추천시스템의 메인스트림은 각기 다른 도메인과 Task마다 별도의 추천 시스템을 운영하는 것이었다. 그러나 모든 추천시스템의 기초가 될 수 있는 Baseline 모델을 만들 수 있다면? 매번 여러가지 시스템을 만들지 않아도 되기 때문에 굉장히 경제적인 모델이 될 것이다. 또한 cross domain이 가능하면서 적당한 pre-trained 모델을 만들 수 있다면 데이터가 부족한 상황에서도 활용하기에 용이할 것이다. 그래서 이 논문에서는 generative pretrained language model M6를 이용하여 M6-Rec 이라는 범용 추천 모델을 만들었다.

M6-Rec은 서비스에서 행동한 유저의 데이터를 텍스트의 형태로 활용한다. 이를테면 User A가 Item 1,2을 클릭했고 추천받은 3은 클릭하지 않았다는 사실을 “A Male User in Seoul, who clicked product 1 last night and product 2 this noon, was recommended product 3 and did not click it” 이라는 텍스트의 형태로 저장한다. 그리고 이러한 방식의 접근은 zero/few-shot learning으로 도메인 확장 효과를 보는 것으로 이 논문에서 증명했다.

 

 




2. Related Works

 

2.1 Pretraining for Recommendation

 


기존의 일반적인 추천시스템은 행동데이터에 집중하는 경향이 있었다. 그래서 저자들은 web-corpora 데이터라는 비행동 데이터를 포함하여 행동데이터에 의존했을 때 생기는 단점들을 커버하고자 했다. 예를 들면, 추수감사절에는 칠면조를 추천해줘야 하는데 일반적인 행동데이터만 가지고서는 이를 학습하기 힘들다. 하지만 web corpora 데이터를 학습한다면 추수감사절엔 칠면조를 추천할 수 있게 된다. 이 부분이 바로 모든 것을 일반화하는 추천 baseline 모델의 장점이라고 할 수 있다(역주). 게다가 일반적인 추천시스템에서는 임베딩 모델에서 User ID를 임베딩하기 때문에, 이로 인해 생기는 낮은 확장성에 대응할 수 있다고 한다. 


2.2 Language Model as Foundations

BERT, GPT, T5 같은 LLM 모델은 web corpora를 기반으로 학습하므로, downstream task를 수행할 수 있는 foundation 모델이 될 수 있다. 그리고 transformer 구조를 기반으로 한다는 공통점을 가지고 있다. 하지만 이러한 모델 구조도 user behavior data에 어떻게 사용되어야 하는지는 여전히 연구중이며, 대부분의 user behavior data 관련 연구들은 scoring에 집중하는 경향을 띤다. 

 

figure 3


위의 그림은 논문에서 제안하는 LLM 기반의 클릭률(CTR) 예측을 위한 recommendation task 구조이다. user feature 부분에서는 유저가 가지고 있는 다양한 정보들을 텍스트로 표현하여 임베딩하고, cantidate feature 부분을 추가하여 prediction task의 정확도를 높이는 작업을 한다. 지연 시간이 짧은 실시간 inference를 위해 M6-Rec은 첫 번째 𝐿 ' 레이어의 결과를 미리 계산하고, 캐시하는 동시에 요청이 도착할 때 마지막 𝐿 − 𝐿 ' 레이어를 계산한다. 일반적으로 user feature는 실시간으로 바뀌기 때문에, 유저의 최신 활동을 동적으로 통합할 수 있도록, 클릭한 각 항목을 개별 세그먼트로 나타내는 등 보다 정적인 세분화된 세그먼트로 사용자의 기능을 분할한다.

그리고 아래의 그림은 이러한 inference 구조를 실행하기 위해 학습되는 모델의 구조이다. LLM 모델에서 option 역할을 하는 prompt와 함께 user feature, candidate feature를 함께 포함하여 prediction task를 학습한다. 이 때 prompt는 softmax layer에서 0, 1의 값을 갖는 옵션으로 한번 더 활용된다.

 

figure 4

 


 


3. METHOD: M6-REC


3.2 Behavior Modeling as Language Modeling


논문에서 제안하는 scoring 모델에 들어가는 behavior는 아래의 그림과 같은 문장 형태의 텍스트가 된다. 

 

behavior input for scoring model


[BOS′] 와 [EOS′] 사이에는 user feature가 입력되고, [BOS] 와 [EOS] 사이에는 일종의 context 정보인 candidate feature가 입력된다. 여기에는 현재 추천되고 있는 아이템에 대한 정보도 있으며, 상품의 대략적인 통계정보, 그리고 유저와 상품간의 interaction history 정보 등이 들어간다. 마치 FM이나 Wide and Deep 모델과 유사한 형태를 띠는데, 다른 점은 조금 더 general한 임베딩이 되는 것이 목표인 것 같고, semantic 한 foundation을 가지고 있기 때문에 확장성이 매우 높다는 점일 듯 하다(역주).

scoring task 뿐 아니라, generation task 역시 수행 가능한데, 최근 추천시스템에서 뜨거운 감자 중 하나인 XAI를 수행할 수 있다는 장점을 가지고 있다. 아래의 그림은 generation task로 얻을 수 있는 추천의 XAI 예시이다.

 


[BOS′] 와 [EOS′] 사이에는 유저의 지난 행동이나 패턴에 대한 요약문이 들어가게 되고, [BOS] 와 [EOS] 사이에는 추천이 제공되는 아이템에 대한 설명과 그 아이템이 추천된 이유가 함께 들어간다. 

 

그리고 LLM 형태에서 사용할 수 있는 또 다른 장점으로 zero/few-shot learning을 꼽을 수 있는데, 모델에게 inference task를 동작시키면서 몇 가지 예제를 입력값으로 함께 넣어주면 더 나은 결과를 얻을 수 있다. 마치 ChatGPT에 “예를 들어, …” 라고 메시지를 함께 넣어주는 것과 똑같은 원리의 prompt engineering이라고 할 수 있다(역주). 아래의 그림처럼 넣는다고 생각하면 된다.

 

 




또한 M6-Rec은 일반적인 추천시스템에서 candidate generation 이라고 부르는 retrieval task 역시 수행할 수 있다. 원리는 간단한데, M6-Rec은 user feature와 candidate feature 부분의 임베딩을 분리해서 얻을 수 있기 때문이다. 일반적인 추천시스템이 item을 retrieval 하는 방식은유저와 아이템의 임베딩을 각각 구한 뒤 similarity search를 수행하는 것이므로, 이와 똑같은 task를 수행할 수 있게 된다.

 




이후 논문의 많은 지면은 alibaba 그룹이 가지고 있는 서비스에 적용하기 위한 Latency 관련 내용이 주를 이룬다. 이 부분은 캐시를 활용한 엔지니어링과 관련된 내용이므로 생략. fine tuning 기법이나 result 부분 역시 생략한다. 여러 가지 파라미터 실험 결과 그래프 왕창 그려놓고 자기들이 제일 잘했다는 내용이기도 하고, 별로 믿음이 가지도 않았다. 왜냐면 실험에서 비교한 일반적인 추천 모델이라는 것이 YoutubeDNN 인데, 자기네들은 semantic pretrained 된 LLM 모델로 뽑아낸 임베딩 값을 썼으면서, 비교 모델은 ID Embedding 정도만 사용한 DNN banila 모델이다. 게다가 비교 코드를 공개한 것도 아니고, 2016년에 발표한 banila 모델(그것도 원 논문의 많은 부분을 생략한)을 비교 대상으로 했다고 하니 당연히 수치가 높게 나올 수 밖에. 개인적인 생각이지만 YoutubeDNN에서 ID값 말고 일반 feature도 함께 사용했으면 DNN이 더 높게 나오지 않았을까 싶다(ㅋㅋ). 분명히 아직까지는 GNN 같은 알고리즘이 아이템이나 유저의 feature를 더 잘 잡아내는 임베딩을 할 것 같다는 생각이 든다.

똑같은 상황과 도메인에서 기존의 prediction task와 LLM-based의 prediction task가 어떤 식으로 다른지, 성능 향상은 어떻게 일어났는지를 조금 더 기술해줬으면 좋았겠지만 이런 논문은 아이디어와 트렌드를 적어주는 것만으로도 감지덕지이긴 하다. 현재 결과는 그냥 그렇구나 하고 구경하면 되는 수준이라도, 추후에는 분명히 이러한 철학(LLM 기반의)을 가진 구조로 추천시스템의 메커니즘이 옮겨갈 것 같긴 하다.