BERT4Rec: Sequential Recommendation with BERT (2019)
Abstract
- sequential recommendation을 위해서 Cloze task를 도입하였다.
- sequence에서 랜덤 마스크된 아이템을 양방향으로 예측하는 방식
1. Introduction
- 사실 유저의 과거 interaction 히스토리 정보를 활용하여 아이템 선택에 대해 예측할 때 우리가 측정하지 못하는 여러 외부 요인들의 영향으로 인하여 엄격한 시간적 순서를 따른다는 가정에 부합하지 않은 결과가 나올 때도 있다.
- 이와 같은 경우를 위해 유저 sequence modeling을 양방향으로 context와 결합시키는 것이 중요하다
- 테스트 동안 input sequence의 마지막에 [mask] 토큰을 더해 우리가 예측해야 될 item인지 여부를 구분하였다.
2. Related Work
General Recommendation
- CF, RBM, MF, NCF, AutoRec, CDAE
Sequential Recommendation
- MC(Markov Chain), MDP, FPMC(Factorizing Personalized), high-order MCs, Caser
Attention Mechanism
- SASRec
3. BERT4Rec
- U : 유저 집합, V : 아이템 집합, S : interaction sequence
- S_u가 주어졌을 때 아이템 v가 선택될 조건부 확률을 구한다
- 각 층에서 이전 층의 모든 아이템에 대한 representation 정보를 재귀적으로 반영한다
- SASRec과 RNN 기반의 방법은 왼쪽에서 오른쪽으로 한 방향 구조이고, BERT4Rec은 양방향 self-attention을 활용
- 각 트랜스포머 층에서 ReLU 활성화 함수 대신 GELU를 활용
- LN은 Layer Normalization, Trm은 Transformer, PFFN은 Position-Wise Feed-Forward Network
- 각각의 아이템 입력 시퀀스에 대해서 생성된 출력 H^L을 이용하여 masked items v_t를 예측
- 유저 행동 시퀀스의 마지막에 [mask]를 붙여 이 토큰의 마지막 hidden representation을 예측하여 다음 아이템을 예측
- 더 정확한 예측을 위해 훈련 도중에는 마지막 토큰에도 mask를 하는 경우를 추가한다
- BERT는 representation을 위한 프리트레이닝 모델이지만, BERT4Rec은 sequential 추천을 위한 end-to-end 모델이다
- BERT와 다르게 NSP Task로 훈련시키지 않았고, segment embedding도 하지 않음
- 대신 Cloze task로 훈련시켰고 유저의 행동 기록을 단 하나의 시퀀스로 sequential 추천 작업을 수행
4. Experiments - 생략
5. Conclusion and Future Work - 생략
'AI - NLP > Articles' 카테고리의 다른 글
A Survey of Recommender Systems Based on Deep Learning (2018) (0) | 2021.02.22 |
---|---|
Deep Learning Based Recommendation: A Survey (2017) (0) | 2021.02.22 |
Overview of the TREC 2020 Deep Leaning Track (2021) (0) | 2021.02.17 |
Switch Transformers: Scaling to trillion parameter models with simple and efficient sparcity (2021) (0) | 2021.02.16 |
Scaling Laws for Neural Language Models (2020) (0) | 2021.02.05 |