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를 더해줍니다 hi0=vi+pi
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.24Intriguing properties of vit 개인적으로 Vision Transformer(VIT) 모델에 대해 관심이 많았고, intriguing~ 논문은 항상 흥미롭기 때문에 참을 수 없습니다. 논문의 abstract에 따르면 vision transformer가 occlusion, spatial permutation, domain shifts 같은 원본이미지에 대한 nuisances에 강건하다는 특징을 밝혀냈다고 합니다. Local texture에 biased한 CNN과는 달리 VIT는 shape biased representation을 한다는게 핵심인 것 같습니다. 1. Introduction CNN이 인풋 이미지의 엣지나, 윤곽선 정보를 통한 local interaction을 학습하는 반면에… -
Asymmetric Loss For Multi-Label Classification 리뷰
Asymmetric Loss For Multi-Label Classification 리뷰
2021.12.20Asymmetric Loss For Multi-Label Classification 안녕하세요 오늘 리뷰 할 논문은 Asymmetric Loss For Multi-Label Classification로 줄여서 ASL Loss라고 합니다. 6개월 전쯤에 패션 스타일 데이터의 multi label 문제를 풀다가 paperwithcode 에서 당시 2위로 높은 순위를 기록하고 있길래 적용을 했는데 좋은 효과를 보아서 소개하려고 합니다. 저도 그랬지만 주위에서 Data imbalance 문제를 겪는 문들을 많이 봤습니다. 보통은 upsampling을 쓰는 smote 기법이나 undersampling 등을 많이 사용하지만 크게 효과를 보지는 못하는 것 같습니다. 그중에서도 focal loss가 좀 더 좋다고 알려… -
YOLO v1 리뷰
YOLO v1 리뷰
2021.12.16You Only Look Once: Unified, Real-Time Object Detection (2016) 1. Introduction 앞서 리뷰한 2 stage detection 모델들에 이어서 object detection 분야에서 획기적이었던 YOLO 모델의 첫 번째 페이퍼를 리뷰해보려고 합니다. 먼저 논문의 Abstract를 살펴봅시다. A single neural network predicts bounding boxes and class probabilities directly from full images in one evaluation. Since the whole detection pipeline is a single network, it can be optimized end-to-e… -
Fast & Faster R-CNN 리뷰
Fast & Faster R-CNN 리뷰
2021.12.031.Introduction object detection의 stage는 크게 region proposal과 classification을 차례로 수행하는 2-stage detector과 동시에 이루어지는 1-stage detector로 나눌 수 있습니다. R-CNN 계열의 localization과 classification을 따로 하고 어느정도 정확도를 보장하지만 연산량이 많고 시간(fps)이 오래걸려 실시간으로 쓰기에는 무리가 있습니다. 논문이름이 Towards real-time detection이라니 재밌네요. 지난번 R-CNN에 이어서 간략하게 Fast R-CNN에 대해 알아보고 오늘 주제인 Faster R-CNN 에 대해 알아보겠습니다. 2. Fast R-CNN 기존의 R-CNN에서는 selecti…
댓글을 사용할 수 없습니다.