BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer
paper| https://arxiv.org/abs/1904.06690
Abstract
과거의 행동으로부터 user의 동적 선호도를 모델링하는 것은 RS에서 어렵고 중요
이전 방법: sequentail neurak network를 user 과거 interaction을 왼쪽에서 오른쪽으로 추천을 만들기 위해 숨겨진 표현으로 인코딩
왼쪽→오른쪽으로의 단방향 모델의 제한
- 단방향 architecture는 user의 행동 sequence에서 숨겨진 표현을 제한
- 실용적이지 않은 경직된 sequence를 가정
BERT4Rec
user 행동 sequence를 모델링하기위해 deep bidirectional self-attention을 사용하는 sequential recommendation model
information leakage를 피하고, 효율적으로 bidirectional model을 train하기 위해,
Cloze objective를 sequential recommendation에 채택하여, 왼쪽과 오른쪽 context에서 공동으로 조건화함으로써 랜덤 masked item을 순서대로 예측
이러한 방식으로, user의 과거 행동에서 각각의 item을 왼쪽과 오른쪽의 정보와 융합함으로써 추천을 만드는 bidirectional 표현 model을 배움
4개의 benchmark dataset에 대한 실험을 통해, SOTA model 달성함을 보여줌
CCS concepts
Information system → Recommender system
KeyWord
Sequential Recommendation. Bidirectional Sequential Model. Cloze ACM Reference Format
BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer
1 Introduction
2 Related Work
일반적인 추천, 순차적인 추천, attention mechanism
2.1 General Recommendation
2.2 Sequential Recommendation
2.3 Attention Mechanism
3 BERT4Rec
연구 문제, 기본 개념 및 표기법
3.1 Problem Statement
sequential 추천에서,
$U=\{u_1,u_2,...,u_{|U|}\}$ → user 집합
$V=\{v_1,v_2,...,v_{|V|}\}$ → item 집합
$S-u=[v_1^{(u)},...,v_t^{(u)},...,v_{n_u}^{(u)}]$ → user $u∈U$에 대한 시간 순서의 interactionsequence
여기서 $v_t^{(u)}∈V$ $u$는 time step $t$에서의 interaction한 item, $n_u$는 user $u$에대한 interactionsequence의 길이
interaction 이력 $S_u$를 고려할 때, sequential 추천은 user $u$가 time step $n_u + 1$에서 interact할 item을 예측하는 것을 목표로 함
time step $n_u+1$에서 user $u$에 대해 가능한 모든 item에 대한 확률을 모델링하는 것을 공식화 가능
$$p(v_{n_u+1}^{(u)}=v|S_u)$$
3.2 Model Architecture
Transformer의 Bidirectional Encoder Representation을 새로운 task, 순차적 추천에 채택한 BERT4Rec이라는 순차적 추천 모델
self-attention layer인 Transformer layer를 기반으로 함
위 그림과 같이, L bidirectional Transformer layer에의해 stack
각 layer에서 Transformer layer와 병렬로 이전 layer의 모든 위치에서 information을 교환함으로써 모든 위치 표현을 반복적으로 수행
위 그림과 같이, RNN 기반 방법이 그랬던 것처럼 관련 information을 단계적으로 전달하는 방법을 배우는 대신, self-attention mechanism은 BERT4Rec에게 모든 거리에서 종속성을 직접 capture할 수 있는 기능을 제공
이 mechanism은 Caser와 같은 CNN 기반의 방법은 일반적으로 제한된 receptive field를 가지는 반면에, global receptive field
또한, RNN 기반 방법과 달리, self-attention은 병렬화하기 쉬움
Figure1의 b,c,d를 비교할 때, 가장 큰 차이점
SASRec과 RNN 기반 방법은 모두 left→right 단방향 architecture
BERT4Rec은 user의 행동 sequence를 모델링하기 위해 양방향 self-attention을 사용
이러한 방식으로 제안된 모델은 user의 행동 sequence에 대한 보다 강력한 표현을 얻어 추천 성능을 향상 가능
3.3 Transformer Layer
Figure 1의 (b)
길이 $t$의 input sequence가 주어지면, Transformer[Attention All You Need] layer를 적용함으로써 각 위치 $i$에 대해 각 layer $l$에서 hidden representation $h^l_i$을 동시에 반복적으로 계산
여기서 모든 위치에서 attention function을 동시에 계산하기 때문에 $h^l_i∈R^d$를 행렬 $H^l ∈ R^{tXd}$로 쌓음
Figure 1의 (a)
Transformer layer $Trm$은 2개의 sub-layer 포함
- $Multi-Head \; Self-Attention$ sub-layer
- $Position-wise \; Feed-Forward Network$
Multi-Head Self-Attention
Position-wise Feed-Forward Network
Stacking Transformer Layer
3.4 Embedding Layer
recurrence or convolution module 없이, Transformer layer $Trm$은 input sequence의 순서를 인식 X
input의 sequential 정보를 활용하기 위해서, Transformer layer stack의 하단에서 input item embedding에 $Positional \; Embeddings$을 넣음
주어진 item $v_i$에 대해, input 표현 $h^0_i$은 상응하는 item과 positional embedding을 합함으로써 구성됨:
$$h^0_i = v_i + p_i$$
여기서, $v_i∈E$는 item $v_i$에 대한 $d$차원 embedding, $p_i∈P$는 위치 index $i$에 대한 $d$차원 위치 embedding
본 논문에서, 더 나은 성능을 위해 Transformer의 고정된 sinusoid(사인 곡선) embedding 대신 학습가능한 위치 embedding을 사용
위치 embedding matrix $P∈R^{N×d}$를 통해 본 논문의 model이 처리하는 input 부분을 식별할 수 있음
그러나 model이 처리할 수 있는 최대 문장 길이 $N$에 대한 제한도 부과
따라서, $t>N$인 경우, last $N$ item $[v^u_{t-N+1},...,v_t]$에 대한 input sequence $[v_1,...,v_t]$를 잘라내야 함
3.5 Output Layer
이전 layer에서 모든 위치에 걸쳐 계층적으로 information을 교환하는 $L$ layer 이후, input sequence의 모든 item에 대한 final output $H^L$를 얻음
time step $t$에서 item $v_t$를 마스킹한다고 가정하면, Figure1 (b)와 같이 $h^L_t$를 기반으로 마스킹된 item $v_t$를 예측
구체적으로, $\text{GELU}$ activation를 two-layer-feed-forward network 사이 적용하여 target item에 대한 output distribution생성:
$$P(v) = softmax(\text{GELU}(h_t^L W^P + b^P)E^T + b^O)\;\;\;···\;\;\; (7)$$
여기서 $W^P$는 학습가능한 projection matrix, $b^P$와 $b^O$는 bias term, $E∈R^{|V|×d}$는 item set $V$에 대한 embedding matrix
3.6 Model Learning
3.7 Discussion
SASRec
CBOW & SG
BERT
4 EXPERIMENTS
4.1 Datasets
domain과 sparsity가 크게 다른 4개의 dataset으로 모델 평가 진행
- Amazon Beauty
: Amazon.com에서 product review의 series dataset
아마존의 최상위 product category에따라 데이터를 별도의 데이터셋으로 분할
Beauty category 채택 - Steam
: 대형 온라인 비디오 게임 유통 플랫폼인 Steam - MovieLens
: 추천 algorithm을 평가하는 데 널리 사용되는 benchmark dataset
MovieLens 1M & MovieLens 20M 채택
모든 데이터 셋에 대해, 모든 수치 rating or presence of review를 암시적인 1의 feedback(user와 item의 상호작용)으로 변환
그런 다음, interaction record를 user에 의해 그룹화하고, time stamp에 따라 이러한 interaction record를 정렬하고, 각 user에 대해 interaction sequence를 구축
데이터 셋의 quality 보장을 위해, 일단적인 practice에 따라 user에게 최소 5개의 feedback을 제안
처리된 데이터 셋의 statistic은 아래와 같음
4.2 Task Settings & Evaluation Metrics
sequential recomendation model을 평가하기 위해, $leave-one-out$ 평가(즉, 다음 항목 추천) task를 채택
각 user에 대해, behavior sequence의 마지막 item을 test data로 유지하고, 마지막 item 직전의 validation set으로 다루고, 나머지 item은 training에 활용
user와 interaction이 없는 100개의 랜덤하게 샘플링된 negative item과 각 ground truth item을 pairing
100개의 negative item은 인기도에 따라 표본추출
각 user에 대해 ground truth item과 함께 이러한 negative item 순위를 매기
Evaluation Metrics.
모든 모델의 ranking list을 평가하기위해, Hit Ratio(HR), Normalized Discounted Cumulative Gain(NDCG), Mean Reciprocal Rank(MRR)
각 user에 대한 truth item이 하나만 있다는 점을 고려하면, HR@$k$는 Recall@$k$와 같고, Precision@$k$와 비례
MRR은 Mean Average Precision(MAP)와 같음
본 연구에서는 $k=1,5,10$으로 HR 와 NDCG 작성
이러한 모든 metric의 경우, 값이 높을수록 성능이 향상
4.3 Baselines & Implementation Details
4.4 Overall Performance Comparison
Question 1: Do the gains come from the bidirectional self-attention model or from the Cloze objective?
이 질문에 답하기 위해 Cloze task를 한번에 하나의 item만 마스킹하도록 제한하여 이 두가지 요인의 효과를 분리하여 실험
이러한 방식에서 BERT4Tec(mask 1개 포함) & SASRec의 주요 차이점: BERT4Rec이 왼쪽 & 오른쪽 context 모두에서 공동으로 조건을 지정하는 대상 item을 예측
위 table3은 $d=256$으로 제한하고, dataset Beauty, ML-1M 비교
결과에 따르면 mask가 1개인 BERT4Rec은 모든 metric에서 SASRec을 크게 능가
⇒ 순차적 추천을 위한 양방향 표현의 중요성을 보여줌 & 마지막 두행은 Cloze 목표도 성능을 향상시킨다는 것을 나타냄
Cloze task에서 마스크 비율 p에 대한 자세한 분석은 4.6에서 확인 가능
Question 2: Why and how does bidirectional model outperform unidirectional models?
이 질문에 답하기 위해, Figure 2의 Beauty dataset으로 test동안 마지막 10개 item의 평균 attention weight를 시각화함으로써 의미있는 패턴을 드러내려고 노력함
space 제한으로인해, 서로 다른 layer와 head에서 4개의 대표적인 attention heat-map 기록
a) attention은 head마다 다름
ex. layer 1, head 1은 왼쪽에있는 item에 attend하는 경향이 있는 반면 head 2는 오른쪽에 있는 item에 attend하는 경향이 있음
b) attention은 layer에 따라 다름
분명하게, layer 2에서 attention은 최근의 item에 더 집중되는 경향이 있음
→ 이는 layer 2가 output layer에 직접 연결되고, 최근 item이 미래를 예측하는 데 더 중요한 역할을 하기 때문
self-attention가 sequence-level state를 item level로 전파하는 방법일 수 있음
c) 가장 중요한 것은 단방향 모델이 왼쪽의 item에만 attend할 수 있는 것과 달리 BERT4Rec의 item은 양쪽의 item에 attend하는 경향이 있음
이는 양방향이 user behavior sequence modeling에 필수적이로 이롭다는 것을 나타냄
4.5 Impact of Hidden Dimensionality $d$
4.6 Impact of Mask Proportion $p$
4.7 Impact of Maximum Sequence Length $N$
4.8 Ablation Study
BERT4Rec의 여러 주요 구성 요소에 대한 실험 진행
5 Conclusion and Future Work
심층 양방향(deep bidirectional) self-attention architecture는 language understanding에서 엄청난 성공을 달성
BER4Rec ⇒ 순차적 recommendation을 위한 deep bidirectional sequantial model
Cloze task ⇒ model training 과정에서, 왼쪽 및 오른쪽 context를 모두 사용하여 masked item을 예측
4개의 실제 데이터 셋에 대한 실험 결과 → SOTA 달성
중요한 방향: rich item feature(ex. 제품의 category&price, 영화 출)을 단순 modeling item ID대신 BERT4Rec으로 통합하는 것
향후 work: 다른 흥미로운 방향은 user가 여러 session을 가질 때, 명백한 user modeling을 위해 user 요소를 model에 도입하는 것
'공부 끄적끄적 > 논문리뷰' 카테고리의 다른 글
[X:AI] CycleGAN (0) | 2023.05.24 |
---|---|
[X:AI] RoBERTa: A Robustly Optimized BERT Pretraining Approach (0) | 2023.05.11 |
[X:AI] RetinaNet; Focal Loss for Dense Object Detection (0) | 2023.04.07 |
[X:AI] U-Net: Convolutional Networks for Biomedical Image Segmentation (0) | 2023.04.03 |
[X:AI] ELMo; Deep Contextualized Word Representations (0) | 2023.03.31 |