BERT4Rec review
BERT4Rec
1. Introduction
Bert4rec이라고도 불리는 Sequential Recommendation with Bidirectional Encoder Representations from Transformer 에 대하여 간략하게 리뷰하려고 합니다.
대부분의 추천모델은 interaction histories에 기반한 Collaborative filtering 모델을 사용합니다. 그 중에서도 유저와 아이템의 latent vector 연산을 통해 선호를 예측하는 Matrix Factorization 을 활용하는 방법이 주로 쓰입니다. 다른 한 가지 방법은 아이템 기반의 neighborhood 방식입니다. 이는 사전에 계산된 아이템들간의 유사도를 활용해 user interaction 을 통해 다른 유사한 선호 아이템을 예측하는 방식입니다.
추천 모델 중 Sequential neural network는 가령 쇼핑몰 유저의 구매목록 등 sequential한 정보를 이용하여 그 다음 시점의 user interaction 에 대하여 예측하는 모델입니다. 기존의 GRURec, SASRec 등의 sequential 모델은 left to right로 unidirectional 한 방식으로 학습을 했지만, 논문에서는 Bidirectional Encoder를 사용하는 BERT를 이용하여 성능을 개선하였습니다.
기존 sequential recommendation이나 attention 논문에 대한 소개를 하는 섹터2는 생략을 하고 3으로 넘어가겠습니다.
2.1 Problem statement
- u는 user의 interaction sequence 이며 v_t(u)는 user u가 t 시점에 interaction한 아이템 v 입니다
- n_u는 user u 의 interaction sequence , 즉 총 interaction length이며 결과적으로 구하려고 하는 것은 다음 시점의 user interaction 인 v_nu+1 입니다
2.2 BERT4Rec model architecture
- (a)의 Transformer Layer를 이용하며 Figure1의 아키텍쳐를 봤을 때, (d)의 RNN 처럼 step by step의 형식으로 forward stap의 학습이 진행되는 것이 아니라 parallel하게(layer가 병렬적으로 학습) previous layer의 모든 포지션에 대한 정보를 representation 하는 식으로 학습이 되며 이것이 네트워크의 핵심이라고 할 수 있습니다.
- 또한 논문에서는 Cloze task라고 input item을 masking 합니다. BERT에서 하는 것과 마찬가지로 학습 시에는 input에 중간중간 랜덤하게 masking 을 하여 학습하고 inference 시에는 최종적으로 예측하고자 하는 마지막 시점의 item을 알기 위해 (b)처럼 Pt만 마스킹을 합니다. Train할 때도 똑같이 마지막만 마스킹한 케이스를 학습시킨다고 합니다.
2.3 Transformer Layer
- Transformer layer는 Multi-Head Self-Attention sub-layer 와 Position-wise Feed-Forward Network 로 구성됩니다.
- self attention layer의 output은 feed forward network를 통과하며 position wise- feed forward network 에 적용되는 기법은 크게 세가지입니다.
- dropout
- layer normalization
- residual connection
- 또한 활성함수로는 BERT 따라 Gaussian Error Linear Unit(GELU) 를 사용합니다. ReLU와 다르게 음수에서도 미분가능하니 약간의 gradient를 얻으려고 한 것이 아닐까 생각했습니다.
2.4 Positional Embedding
- 트랜스포머와 마찬가지로 위치정보를 주기 위해서 positional Embeddings 수행합니다
- 아이템 임베딩(vi)과 포지션 임베딩 pi를 더해줍니다 $h i^0 = v i + p i$
2.5 Model Learning
final output representation이 target item 의 정보를 반영하고 있으면 안되기 때문에 t-1 samples를 만드는데 전체 케이스를 생성하는 것은 비효율적이기 때문에 앞에서 설명한 Cloze task를 적용합니다.
- masking 비율은 파라미터로 설정
- Loss를 계산할 때 negative sampling 을 적용합니다. Word2vec 과 마찬가지로, interaction이 없던 아이템 중에 몇개를 넣어서 loss를 크게주는 방식으로 학습시키는듯 합니다.
3. Experiment
Dataset으로는 Steam , Beauty, ML-1m , ML -20m 을 사용했는데, 각 dataset간 사이즈나, user interaction sparsity의 차이가 있어서 이에 따른 파라미터 비교값을 잘 비교해봐야 할 것 같습니다.
masking 파라미터인 proportion ρ 에 따른 결과 Dataset의 sequence length와 밀접한 영향이 있었습니다. steam, beauty가 movielens보다는 짧다고합니다 (플레이한 게임수보다는 영화시청이 상대적으로 하기 쉬우니 그런듯). sequence가 짧은 데이터셋에서는 ρ = 0.6일 때, 짧은 경우는 ρ = 0.2일 때, 성능이 가장 좋았습니다. sequence가 긴데 mask까지 많다면 예측을 너무많이해야 하니 그렇다고 하네요
'machine learning > Article review' 카테고리의 다른 글
Intriguing properties of vision transformer 리뷰 (0) | 2021.12.24 |
---|---|
Asymmetric Loss For Multi-Label Classification 리뷰 (1) | 2021.12.20 |
YOLO v1 리뷰 (0) | 2021.12.16 |
Fast & Faster R-CNN 리뷰 (0) | 2021.12.03 |
[R-CNN] Rich feature hierarchies for accurate object detection and semantic segmentation (0) | 2021.12.03 |
댓글
이 글 공유하기
다른 글
-
Intriguing properties of vision transformer 리뷰
Intriguing properties of vision transformer 리뷰
2021.12.24 -
Asymmetric Loss For Multi-Label Classification 리뷰
Asymmetric Loss For Multi-Label Classification 리뷰
2021.12.20 -
YOLO v1 리뷰
YOLO v1 리뷰
2021.12.16 -
Fast & Faster R-CNN 리뷰
Fast & Faster R-CNN 리뷰
2021.12.03