Contents
해당 논문은 Sequential Recommendation 논문에서 유명한 모델 중 하나인 SASRec을 제안한 논문이다. Self-Attention 기법을 사용하여 다음 사용자가 행동(Action)할 제품을 예측하는 기법이다. 기존 연구에서 주로 사용하는 Markov Chain (MC)의 경우 이전 제품 혹은 과거 몇 번의 행동을 바탕으로 다음 행동할 제품을 예측하고, RNN의 경우 장기 정보를 고려할 수 있다. 일반적으로 MC는 주로 Sparse한 데이터에서 우수한 성능을 보이고, RNN의 경우 Dense한 데이터에서 우수한 성능을 보이고 있다. 본 연구에서는 Self-Attention Networks를 이용하여 Sparse, Dense와 상관없이 우수한 성능을 발휘하는 SASRec을 제안하였다.
Introduction
예전에는 MC, RNN을 바탕으로 한 Sequential Recommendation이 주를 이루었다. 최근에 Sequential 분야에서는 Transformer가 매우 성능이 우수한 것으로 각광받고 있다. Transformer는 'Self-Attention' 개념을 도입하였으며, Attention은 단어 사이의 관계를 파악하는 것에 있어서 매우 효율적이고 성능 역시 우수하다. 본 연구에서는 최근 각광받는 기술인 Transformer의 Self-Attention 메커니즘을 활용한 SASRec 기법을 제안한다.

Methodology
해당 논문은 Methodology가 중요한 부분이기 때문에 해당 부분에 초점을 맞추어 리뷰하였다. 본 연구에서는 Action Sequence는

Embedding Layer
본 연구에서는
Self-Attention Block
Scaled Dot-Product를 사용하며, 일반적인 내적과 다른 점은 차원에 Sqrt를 해준다는 것이다.
위 과정을 통해 출력된 값을 바탕으로 Point-Wise Feed Forward Network를 구성하면 된다. 그러나 위 과정은 단순히 Weight Matrix를 곱하는 과정이기 때문에 Linear하다. 따라서, Poin-Wse Feed Forward Network에서는 비선형 함수를 사용하고 다른 잠재 차원 간의 상호작용을 고려하기 위해 아래와 같은 수식을 사용하였다.
이때는 Figure 1에서 보이듯,
Stacking Self-Attention Blocks
위에서 구축한 Self-Attention Block을 쌓는 단계다.
그러나 단순히 Self-Attention Block을 여러번 쌓을 경우 1) Overffitting 문제가 발생할 수 있으며, 2) Gradient Vanishing 과 같은 문제가 발생할 수 있고, 3) 층을 여러 겹 쌓기 때문에 파라미터의 수가 너무 많아진다. 이와 같은 문제를 해결하기 위해 Skip Connection, LayerNorm, Dropout 방식을 적용하였다.
Prediction Layer
추천 시스템에서는 최종적으로 MF 방식을 활용하여 다음 제품을 추천한다.
Experiments
본 연구에서는 총 4가지의 연구 질문(Research Question)을 해결하고자 실험을 진행하였다. 1) SASRec 이 기존 SoTA 모델보다 성능이 좋은가? 2) SASRec의 다양한 Components가 영향을 주는가?(Ablation Study) 3) SASRec이 학습에서 효율적인가? 4) Position, Item 에 대해서 attention weight가 유의미한 패턴을 학습할 수 있는가?

RQ1. 에 대해서는 모든 경우에 성능이 우수한 것으로 확인되었다.

RQ2. 에 대해서는 다양한 실험을 하였다. PE(Positioinal Embedding), IE(Item Embedding), RC(Residual Connections) 등을 수행했을 때 Attention Block을 1과 3으로 설정했을 때, 혹은 PE를 제거했을 때 성능이 좋아지는 경우가 발생한다. Beauty에서는 조금 신기하게 Position Embedding 즉, 제품의 순서를 고려하지 않았을 때 오히려 좋은 성능을 보이는데, 이를 생각해보면 화장품과 같은 경우는 게임이나 영화 등과 같은 도메인에 비해 제품의 순서가 크게 중요하지 않다는 것을 의미할 수 있다.

RQ3. 에 대해서는 SASRec이 더 적은 시간에 더 빨리 수렴하는 것뿐만 아니라, NDCG 성능 자체도 훨씬 더 우수한 것을 확인할 수 있다.

RQ4.에 대해서는 제품에 따라, 즉, 도메인에 따라 Attention Weight의 패턴이 존재하는 것을 볼 수 있다. Position Embedding을 뺏을 때(b)와 빼지 않았을 때(c)와 비교하면 확연히 Attention Weight의 차이가 존재하는 것을 볼 수 있다. (a)와 (c)를 비교하면, Beauty 데이터셋이 ML 데이터셋에 비해 매우 Sparse한데, 데이터가 Sparse한 경우에는 최근 제품에 Attention Weight가 큰 것을 볼 수 있다.