Sequential Recommendation 태스크에 관심을 가지고 있던 와중, 2023년도 KDD를 기웃거리다가 발견한 논문 “Text Is All You Need: Learning Language Representations for Sequential Recommendation” 리뷰입니다. 간단해 보이는 idea로 새로운 sequential recommendation paradigm을 고안한 재미있는 논문이었습니다.
Keyword: Language Representation, Sequential recommendation, RecFormer, Transfer Learning
한 줄 요약: Item의 key-value attribute pairs를 표현한 Language representation을 활용하여, (상대적으로) 제약 없는 transfer knowledge를 통해 sequential recommendation 태스크에서 SOTA performance를 낸 RecFormer 아키텍처를 제안한 논문.
Introduction
기존 Sequential Recommendation 방식들은 일반적으로 explicit한 item IDs나 일반적인 텍스트 피쳐를 이용하여 sequence modeling을 진행하였는데, 해당 논문에서는 그런 방식이 cold-start item 문제에 취약하거나, 새로운 데이터에 knowledge transferring 하는 것에 어려움이 있다고 주장합니다. 이러한 문제들을 완화시키기 위해 이 연구에서는 user preference와 item feature을 language representation으로 모델링하는 방법 (RecFormer Framework)을 고안하였습니다.
기존 방식의 item ID로 구성된 sequence와, RecFormer에서 사용한 sequence의 차이는 그림 3에서 확인하실 수 있습니다. 확실히, item의 title, brand, color와 같은 다양한 정보로 구성된 sequence를 사용할 수 있다면 새로운 item에 대한 cold-start 문제에 대응이 가능할 것 같습니다. 그런데, 이렇게 복잡하게 구성된 key-value attribute pair 들을 모델 input으로 사용하기 위해서는 적절한 변형이 필요해 보입니다.
그림 4를 보시면, 해당 연구에서는 key-value attribute pair을 “flatten”하여 item 문장과 비슷한 형식으로 변환하는 방법을 채택하였습니다. 이러한 “문장” 형태라면, 기존에 sequence를 처리하는 모델 input으로 사용하기에 적절할 것입니다.
RecFormer Model
그림 5 (a)에서 보이는 것처럼, RecFormer은 multi-layer BERT 구성을 포함한 Longformer 모양의 구조로 디자인 되었습니다. 모델 인풋으로는 위에서 flatten되어 만들어진 item “sentence”가 사용되는데, 다음과 같이 표기됩니다.
$$X = \{[CLS], T_n, T_{n-1}, …, T_1 \}$$
여기에서 각 \(T_i\) 아이템 \(i\)를 나타내는 “sentence” 입니다.
Token Embedding
RecFormer은 language understanding과 sequence pattern 모두를 이해하여 추천 태스크를 푸는 모델입니다. 때문에 LM과 SASRec (Self-attentive Sequential Recommenders)를 결합하는 방법을 사용했습니다. 총 네 종류의 embedding이 사용되는데요. 각각 Token embedding, Token position embedding, Token type embedding, Item position embedding 입니다.
- Token embedding \(A_w\): 이전 Sequential Recommender의 item embedding을 사용하지 않는 RecFormer은 거의 Token embedding (word token embedding)을 통해 interaction sequence를 이해한다고 생각해주시면 됩니다.
- Token position embedding \(B_w\): LM에서와 비슷하게, Transformer가 sequential pattern을 이해하기 위한 position embedding 입니다.
- Token type embedding \(C_w\): token이 \(C_{[CLS]}, C_{Key}, C_{Value} \in \mathbb{R}^d\) 중 어디에 속하는지 구별하기 위한 부분입니다.
- Item position embedding \(D_w\): sequence에서 item의 위치를 구별하기 위한 임베딩입니다. Token position embedding이 토큰 간 순차적 관계를 이해하는 데 필요한 반면, Item position embedding은 상호작용 시퀀스 내에서 각 아이템의 위치 정보를 이해하는 데 필요합니다 (아이템 간의 순차적 패턴과 단어 토큰과 아이템 간의 연관성 이해).
다음으로, input sequence \(X\)의 단어 \(w\)는 이 네 가지 embedding을 concat하여 LayerNorm을 적용하여 최종 word embedding \(E_w\in\mathbb{R}\)를 얻습니다. 전체 sequence는 \(E_X = [E_{[CLS]}, E_{w_1}, …, E_{w_l}] \in \mathbb{R}^{(l+1) \times{d}} \) 로 나타낼 수 있으며, \(l\)은 user’s interaction sequence의 maximum 토큰 갯수입니다.
Final Prediction
이렇게 만들어진 embedding sequence는 Longformer 레이어를 통과하여 최종 아웃풋 \([h_{CLS}, h_{w_1}, …, h_{w_l}] \)을 얻게 되며, BERT의 classification과 비슷하게 \(h_{[CLS]}\)가 item representation \(h_i\)가 됩니다.
최종 예측은 interaction sequence \(s\)와 아이템 \(i\)의 cosine similarity 계산으로 계산되어, score가 가장 높은 item을 next item으로 추천해주게 됩니다.
Learning Framework
효과적인 모델링을 위해, 해당 연구에서는 RecFormer에 pre-training과 two-stage finetuning을 포함시켰다고 합니다.
Pre-training
기본적으로 pre-training 목적은 태스크를 좀 더 잘 수행하기 위한 정보를 parameter initialization 과정에 어느정도 미리 담고자 하는 것입니다. 이번 연구에서는 language understanding과 recommendation이라는 두 가지 목표를 달성하기 위해, Masked Language Modeling (MLM)과 item-item constrastive task를 활용했다고 합니다.
저자는 MLM을 활용하면 general language corpus와 item text 간의 language domain gap 줄일 수 있다고 이야기합니다. MLM 개념은 이미 잘 알려져 있기에, 구체적인 이야기는 여기서 스킵합니다. MLM 관련 세팅 (e.g., random token probability)은 논문을 참조하시면 되겠습니다.
item-item contrastive (IIC) 태스크는 next item prediction에서 자주 활용되는 방법인데, 쉽게 말해서 negative sampling을 기반으로 한 contrastive learning의 일종이라 생각하셔도 무방할 것 같습니다. 눈여겨볼 만한 점은, negative sampling을 통해 직접 negative instance를 생성한 것이 아니라, in-batch next items를 negative instance로 활용하였다는 것입니다. 이렇게 진행한 이유는, 기존 추천시스템에서 가지고 있는 item embedding table이 RecFormer은 없기 때문에, batch마다 아이템을 re-encode할 수가 없기 때문입니다. 이 방법은 직접 sampling한 것이 아니라, 단순히 같은 batch 내 다음 item을 negative로 가정해버리는 것이기 때문에 false negative가 발생할 확률이 있으나, 저자는 pre-training dataset 사이즈를 고려했을 때 문제가 될 정도는 아니라고 주장합니다 (+ 어차피 pre-training 단계이기 때문에 최종적인 performance에 대한 영향은 극히 작기도 합니다).
Pre-training stage에서는 아래 수식과 같이, MLM과 IIC task를 multi-task training 방식으로 jointly 최적화합니다. \(\lambda\)는 MLM의 비중을 조정하는 하이퍼파라미터입니다.
$$\mathbb{L}_{PT} = \mathbb{L}_{IIC} + \lambda \cdot \mathbb{L}_{MLM}$$
Two-stage Finetuning
Pre-training 단계와 마찬가지로 two-stage finetuning 과정에서도 Recformer가 direct 하게 item을 인코딩합니다. 그러나, pre-training에서와는 다르게 in-batch negative 방식이 여기서는 문제가 될 수도 있습니다 (특히 작은 dataset에서). 이를 해결하기 위해 저자는 item feature matrix \(I \in \mathbb{R}^{|I|\times{d}}\) 를 만드는데, item embedding table과 다른 점은 \(I\)가 learnable하지 않다는 점입니다. Stage 1에서 \(I\)를 epoch마다 업데이트 하고, stage 2에서는 freeze 된 \(i\)를 가지고 모델의 parameter만 학습 및 업데이트 하는 two-stage finetuning 방법을 반복하며 모델은 최적의 performance에 가까워지게 됩니다. Finetuning에서도 IIC 방식을 사용하긴 하지만, in-batch negative가 아닌 fully softmax를 사용합니다. Two-stage Finetuning 알고리즘은 그림 6에서 확인하실 수 있습니다.
Experiment
실험 세팅
- Pre-training과 finetuning을 위한 데이터셋을 구축하기 위해 Amazon review dataset의 다양한 카테고리들을 활용하였다고 합니다.
- Baseline으로는 ID-Only methods, ID-Text methods, Text-Only methods 카테고리로 나누어 총 8개의 기존 SOTA 모델들과 비교하였습니다.
- Evaluation으로는 NDCG@N, Recall@N, 그리고 MRR을 활용하였고, data splitting strategy로 leave-one-out strategy를 사용했습니다.
Overall Performance
그림 7 (Table 2)를 보면, 대부분의 벤치마크에서 RecFormer가 가장 좋은 성능을 냈음을 알 수 있습니다. 데이터셋에 따라 BERT4Rec과 S3-Rec 모델이 비교적 좋은 성능을 보인 점도 주목할만 해보입니다.
그림 8 (Table 4)에서 각각의 component가 최종 prediction performance에 얼마나 기여했는지 실험하는 Ablation study 결과를 보여주고 있습니다.
Discussion
- 기존 item ID와 trainable item embedding을 활용하는 기존 방식들보다 나은 점: 저자는 data sparsity 문제와 cold-start item 문제를 효과적으로 해결할 수 있다고 합니다.
- 기존 context-aware 방법과의 차이점: UniSRec, S3Rec, ZESRec과 같은 Item ID에 대한 의존성을 낮추기 위한 context-aware sequential recommenders도 기존에 있긴 했었습니다. 이 방법들은 주로 side information을 prior knowledge로 사용하기 위해 BERT와 같은 feature extractor을 통해 item feature vector를 추출하고, item representation에 fuse 시키는 방식을 사용했었습니다. 그들과 비교했을 때 RecFormer의 novelty는 language representation에 집중한 new paradigm을 제안했다는 것입니다. 저자는 natural language를 잘 활용하여 new domain adaptation과 cold-start item understanding 문제를 해결하는 데에 이점을 얻을 수 있다고 이야기합니다.
- Cold-start problem: RecFormer은 training set에 전혀 등장하지 않은 item도 item text를 바로 encoding 할 수 있기에 cold-start problem 문제에서 거의 자유롭습니다. 추천시스템에서 main challenge인 data sparsity와 cold-start problem을 language representation을 학습하는 방식으로 효과적으로, 또 비교적 간단하게 풀어냈다는 점이 흥미롭습니다.
- Transfer Learning for Recommendation: Source와 target domain 간의 shared information을 통해 지식 전달 (knowledge transfer)을 하고, universal item representation을 학습하기 위해 additional layer을 추가해야 했던 기존 방법들은 제약이 많은 반면, 해당 논문에서는 language representation을 효과적으로 하는 방법으로 generality of natural language를 적극 활용하여 transfer knowledge를 하였습니다.