논문 리뷰 / Recommender System / Sequential Recommendation / Self-Attention / Next-Item Recommendation / SASRec
https://arxiv.org/abs/1808.09781
Wang-Cheng Kang, Julian McAuley · UC San Diego · IEEE ICDM 2018
Self-Attentive Sequential Recommendation
Sequential dynamics are a key feature of many modern recommender systems, which seek to capture the `context' of users' activities on the basis of actions they have performed recently. To capture such patterns, two approaches have proliferated: Markov Chai
arxiv.org
SASRec은 사용자의 모든 과거 행동을 동일하게 요약하지 않고, self-attention을 통해 다음 아이템 예측에 실제로 중요한 과거 아이템에 더 큰 가중치를 부여하는 sequential recommendation 모델이다.
1. 이 논문이 중요한 이유
Self-Attentive Sequential Recommendation은 추천 시스템에서 Transformer 계열 구조가 본격적으로 사용되기 시작한 대표적인 초기 논문이다. 오늘날 sequential recommendation에서는 SASRec, BERT4Rec, TiSASRec, S3-Rec, CL4SRec 같은 self-attention 기반 모델들이 자연스럽게 언급되지만, 그 출발점에 가까운 논문이 바로 SASRec이다.
이 논문을 처음 읽으면서 가장 궁금했던 부분은 왜 기존의 Markov Chain 기반 방법이나 RNN 기반 방법으로 충분하지 않았는가였다. 저자들의 문제의식은 명확하다. Markov Chain은 최근 행동에 강하게 의존하기 때문에 sparse한 데이터에서는 안정적이지만, 사용자의 장기 선호를 반영하기 어렵다. 반대로 RNN은 긴 시퀀스를 은닉 상태로 요약할 수 있지만, dense한 데이터가 아니면 많은 파라미터가 오히려 과적합을 일으킬 수 있다.
SASRec은 이 둘 사이의 절충점을 self-attention에서 찾는다. 모든 과거 아이템을 후보 context로 열어두되, 실제 예측에서는 현재 위치와 관련 있는 일부 아이템에 더 높은 attention weight를 부여한다. 따라서 sparse dataset에서는 Markov Chain처럼 최근 행동에 집중하고, dense dataset에서는 RNN처럼 더 긴 과거 행동까지 활용하는 adaptive sequential recommender를 만들 수 있다.

SASRec의 핵심은 사용자의 과거 행동 전체를 하나의 고정된 hidden state로 압축하지 않고, 예측 시점마다 필요한 과거 아이템을 attention으로 선택한다는 점이다. 이 때문에 sparse한 환경에서는 최근 행동 중심의 Markov-like behavior를 보이고, dense한 환경에서는 더 긴 과거를 활용하는 RNN-like behavior를 보일 수 있다.
2. 순차 추천 문제 설정
논문에서 다루는 문제는 next-item recommendation이다. 사용자 u의 행동 시퀀스가 시간순으로 주어졌을 때, 모델은 다음 시점에 사용자가 상호작용할 가능성이 높은 아이템을 예측해야 한다. 예를 들어 사용자가 이전에 소비한 아이템들이 s1, s2, ..., st라면, 모델은 st+1을 맞히는 방향으로 학습된다.
SASRec은 각 사용자 시퀀스를 고정 길이 n으로 변환한다. 시퀀스가 n보다 길면 가장 최근 n개의 행동만 사용하고, 짧으면 왼쪽에 padding item을 추가한다. 이 설계는 단순한 전처리처럼 보이지만 추천 시스템에서는 중요하다. 사용자의 전체 이력을 무조건 넣기보다 최근 행동 window를 만들고, 그 안에서 attention이 중요한 행동을 선택하도록 하는 편이 계산량과 성능 사이의 균형을 맞추기 쉽다.

| 기호 | 의미 | SASRec에서의 역할 |
|---|---|---|
| Su | 사용자 u의 행동 시퀀스 | 순차 추천의 입력 context |
| n | maximum sequence length | 최근 n개 행동만 사용하거나 padding 적용 |
| d | latent dimensionality | item embedding과 hidden representation의 차원 |
| b | self-attention block 수 | hierarchical self-attention을 구성하는 깊이 |
3. 기존 방법의 한계: Markov Chain과 RNN 사이
SASRec을 이해하려면 먼저 기존 sequential recommendation의 두 흐름을 봐야 한다. 첫 번째는 Markov Chain 기반 방법이다. 이 계열은 사용자의 다음 행동이 최근 몇 개 행동에 의해 결정된다고 가정한다. 대표적으로 FMC, FPMC, TransRec 같은 모델이 있다. 이 방법들은 sparse한 데이터에서 강한 편이지만, 사용자의 장기 선호나 멀리 떨어진 아이템 간 관계를 반영하기 어렵다.
두 번째는 RNN 기반 방법이다. GRU4Rec이나 GRU4Rec+는 사용자의 행동 시퀀스를 recurrent hidden state로 요약한다. 이 접근은 긴 시퀀스를 모델링할 수 있다는 장점이 있지만, hidden state 하나에 과거 정보를 순차적으로 압축하기 때문에 병렬화가 어렵고, 데이터가 sparse할 때는 과도한 모델 capacity가 성능 저하로 이어질 수 있다.
| 접근법 | 대표 모델 | 강점 | 한계 |
|---|---|---|---|
| Markov Chain 계열 | FMC, FPMC, TransRec | 최근 행동 전이에 강하고 sparse dataset에서 안정적 | 장기 의존성과 복잡한 선호 변화를 반영하기 어려움 |
| RNN 계열 | GRU4Rec, GRU4Rec+ | 긴 시퀀스를 hidden state로 요약 가능 | 순차 계산 구조와 과적합 가능성, sparse dataset에서의 불안정성 |
| Self-Attention 계열 | SASRec | 필요한 과거 아이템을 시점별로 선택적으로 참조 | 시퀀스 길이에 대해 attention 계산량이 증가 |
처음에는 SASRec이 단순히 Transformer를 추천 문제에 적용한 모델처럼 보일 수 있다. 하지만 논문을 읽다 보면 저자들이 더 강조하는 것은 모델 구조의 유행이 아니라 데이터 sparsity에 따라 short-term dependency와 long-term dependency를 다르게 활용해야 한다는 점이다. SASRec은 attention weight를 통해 이 균형을 학습한다.
4. Embedding Layer: 아이템과 위치를 함께 표현한다
Self-attention은 입력 원소들 사이의 관계를 직접 계산하지만, 그 자체로는 순서 정보를 알지 못한다. 따라서 SASRec은 item embedding에 positional embedding을 더한다. Transformer의 fixed sinusoidal positional encoding도 사용할 수 있지만, 논문에서는 추천 문제에서 학습 가능한 positional embedding이 더 좋은 성능을 보였다고 설명한다.
초반에는 positional embedding이 단순한 부가 요소처럼 보였다. 하지만 후반부 ablation study를 확인하면 이 구성 요소가 꽤 중요하다는 점을 알 수 있다. 위치 정보가 없으면 모델은 사용자의 과거 행동을 순서 없는 item set처럼 다루게 되고, 특히 dense dataset에서 순차적 전이 패턴을 충분히 활용하지 못한다.
여기서 M은 item embedding matrix이고, P는 positional embedding matrix이다. padding item에는 zero vector를 사용한다. 결과적으로 각 위치의 입력 표현은 “어떤 아이템인가”와 “시퀀스의 어느 위치에 있는가”를 동시에 담는다.
5. Self-Attention Block: 과거 행동 중 무엇을 볼 것인가
SASRec의 핵심은 scaled dot-product attention이다. 각 위치의 query는 이전 아이템들의 key와 비교되고, attention weight를 통해 value들의 weighted sum을 만든다. 추천 시스템 관점에서 보면 이는 사용자의 과거 행동 중 현재 다음 아이템 예측에 중요한 행동을 선택적으로 참조하는 과정이다.
입력 embedding Eb는 query, key, value로 각각 선형 변환된다. 이 projection은 단순한 내적 기반 item similarity보다 더 유연한 item-item interaction을 가능하게 한다. 추천에서는 “A를 본 뒤 B를 볼 가능성”과 “B를 본 뒤 A를 볼 가능성”이 대칭적일 필요가 없다. SASRec은 query, key, value projection을 통해 이러한 비대칭 전이를 학습할 수 있다.
또 하나의 중요한 설계는 causal masking이다. time step t에서 다음 아이템을 예측할 때 미래 아이템을 참조하면 안 된다. 따라서 SASRec은 query 위치 i가 key 위치 j를 참조할 때 j > i인 attention link를 차단한다. 이 masking이 없다면 모델이 학습 중 정답 정보를 미리 보게 되므로 next-item recommendation 문제가 잘못 정의된다.
6. Point-Wise Feed-Forward Network와 block stacking
Self-attention은 이전 아이템 정보를 adaptive하게 모으지만, 그 결과는 기본적으로 value들의 선형 결합이다. SASRec은 여기에 point-wise feed-forward network를 붙여 비선형성을 추가한다. 각 위치의 representation에 동일한 FFN을 적용하지만, 서로 다른 위치 사이의 정보 누출은 만들지 않는다.
논문은 self-attention layer와 FFN을 하나의 self-attention block으로 보고 여러 개 쌓을 수 있도록 설계한다. 기본 설정에서는 block 수 b=2를 사용한다. 처음에는 block stacking이 단순히 Transformer의 관습처럼 보였지만, ablation 결과를 확인하면 0 block은 성능이 크게 낮고 1 block보다 2 block이 더 안정적이다. 이는 계층적 self-attention이 복잡한 item transition을 학습하는 데 실제로 기여한다는 점을 보여준다.
깊은 구조를 안정적으로 학습하기 위해 residual connection, layer normalization, dropout도 함께 사용한다. 특히 residual connection은 마지막 방문 아이템처럼 낮은 layer의 정보가 최종 예측까지 직접 전달되도록 돕는다. 추천 문제에서는 최근 행동 하나가 매우 강한 신호가 되는 경우가 많기 때문에, 이 residual path는 단순한 최적화 장치 이상의 의미를 가진다.
SASRec의 block은 self-attention으로 과거 행동을 선택적으로 모으고, FFN으로 각 위치의 representation을 비선형적으로 변환하는 구조다. 여기에 residual connection과 layer normalization이 추가되어 깊은 attention block을 안정적으로 학습할 수 있다.
7. Prediction Layer와 학습 목적 함수
SASRec의 prediction layer는 matrix factorization 형태로 구성된다. self-attention block을 통과한 time step t의 표현과 item embedding을 내적하여, 특정 아이템이 다음 아이템일 relevance score를 계산한다. 논문에서는 embedding layer와 prediction layer의 item embedding을 공유하는 방식을 기본값으로 사용한다.
흥미로운 점은 explicit user embedding을 추가해도 성능이 개선되지 않았다는 점이다. 이는 SASRec이 사용자 ID를 별도로 넣지 않아도, 사용자의 과거 item sequence 자체에서 implicit user representation을 구성하고 있음을 의미한다. 이 관점에서 SASRec은 user embedding 기반 개인화 모델이라기보다, sequence 자체를 개인화 신호로 사용하는 모델에 가깝다.
학습은 binary cross entropy objective로 수행된다. 각 time step에서 positive next item과 negative item을 비교하며, padding 위치는 loss 계산에서 제외한다. 논문은 각 epoch마다 각 time step에 대해 negative item 하나를 무작위로 생성한다고 설명한다.
8. 기존 모델과의 관계: SASRec은 무엇을 일반화하는가
이 논문에서 인상적인 부분은 SASRec을 단순히 “추천에 Transformer를 적용한 모델”로 설명하지 않는다는 점이다. 저자들은 SASRec이 Factorized Markov Chains, FPMC, FISM과 어떤 관계를 갖는지 논의한다. self-attention block을 제거하고 position embedding을 제거하면 first-order Markov Chain 계열 모델에 가까워지고, attention weight를 uniform하게 두면 item similarity model에 가까워진다.
이 해석은 SASRec의 위치를 분명하게 만든다. SASRec은 RNN의 단순 대체재라기보다, item similarity model과 Markov Chain을 attention으로 확장한 모델에 가깝다. sparse dataset에서는 최근 아이템에 강하게 집중하는 Markov-like behavior를 보이고, dense dataset에서는 더 긴 과거까지 보는 RNN-like behavior를 보일 수 있다.
SASRec은 adaptive, hierarchical, sequential item similarity model로 볼 수 있다. 즉, 사용자의 모든 과거 행동을 동일하게 평균내는 것이 아니라, 다음 아이템 예측에 필요한 item transition을 attention으로 선택한다.
9. 실험 설정
실험은 Amazon Beauty, Amazon Games, Steam, MovieLens-1M 네 개 데이터셋에서 수행된다. 모든 데이터셋은 implicit feedback으로 처리되며, review 또는 rating이 존재하면 사용자가 해당 아이템과 상호작용했다고 본다. 각 사용자 시퀀스에서 가장 최근 행동은 test, 두 번째 최근 행동은 validation, 나머지는 training에 사용한다.

| Dataset | Users | Items | Actions | 특징 |
|---|---|---|---|---|
| Beauty | 52,024 | 57,289 | 0.4M | 매우 sparse한 Amazon review sequence |
| Games | 31,013 | 23,715 | 0.3M | 사용자당 행동 수가 적은 sparse dataset |
| Steam | 334,730 | 13,047 | 3.7M | 사용자 수가 크고 item당 interaction이 많은 데이터 |
| ML-1M | 6,040 | 3,416 | 1.0M | 사용자당 평균 행동 수가 많은 dense dataset |
비교 모델은 세 그룹으로 나뉜다. 첫째, 순서를 고려하지 않는 일반 추천 모델인 PopRec과 BPR이다. 둘째, Markov Chain 기반 순차 추천 모델인 FMC, FPMC, TransRec이다. 셋째, neural sequential recommender인 GRU4Rec, GRU4Rec+, Caser이다. 평가는 Hit@10과 NDCG@10으로 수행하며, 각 사용자마다 ground-truth item 하나와 negative item 100개를 함께 ranking한다.
이 평가 방식은 당시 sequential recommendation 논문에서 널리 사용되었지만, 현재 관점에서는 주의해서 읽을 필요가 있다. sampled negative 100개 기반 ranking은 full item ranking과 다를 수 있다. 따라서 Table III의 절대 수치보다 중요한 것은 동일한 평가 프로토콜 아래에서 SASRec이 sparse dataset과 dense dataset 모두에서 일관되게 강했다는 상대적 결과이다.
10. 실험 결과: sparse와 dense 모두에서 강한 모델

Table III에서 가장 중요한 관찰은 dataset sparsity에 따라 강한 baseline이 달라진다는 점이다. sparse한 Amazon Beauty와 Games에서는 상대적으로 단순한 non-neural sequential method가 neural method보다 강한 경우가 있다. 반면 MovieLens-1M처럼 dense한 데이터에서는 GRU4Rec+나 Caser 같은 neural method가 강해진다.
처음에는 SASRec이 self-attention 기반 모델이므로 dense dataset에서만 강할 것이라고 예상하기 쉽다. 그러나 결과를 보면 sparse dataset에서도 기존 neural method보다 훨씬 안정적이다. 이는 self-attention이 모든 과거를 무조건 복잡하게 요약하는 것이 아니라, 필요한 경우 최근 아이템에 집중하는 방식으로 effective capacity를 조절하기 때문이라고 해석할 수 있다.

| 관찰 | 해석 | 의미 |
|---|---|---|
| Sparse dataset에서도 강함 | 최근 행동에 높은 attention을 부여 | Markov-like behavior를 학습 |
| Dense dataset에서도 강함 | 더 넓은 과거 행동을 활용 | RNN-like long-term dependency 활용 |
| Latent dimension 증가 효과 | d가 커질수록 표현력이 증가 | d ≥ 40에서 안정적인 성능 |
11. Ablation Study: 어떤 설계가 실제로 중요한가
Ablation study는 SASRec의 구조를 이해하는 데 중요하다. 논문은 기본 SASRec과 8개 variant를 비교한다. 비교 대상에는 positional embedding 제거, item embedding 비공유, residual connection 제거, dropout 제거, block 수 변경, multi-head attention 사용 여부가 포함된다.

Ablation을 확인하면서 처음 예상과 달랐던 부분은 positional embedding 제거가 Beauty에서는 오히려 약간 좋아진다는 점이다. 이는 Beauty가 매우 sparse하여 순서 정보를 정교하게 모델링하기보다 사용자가 과거에 소비한 아이템 집합 자체가 더 중요한 경우가 있음을 시사한다. 하지만 Games, Steam, ML-1M에서는 positional embedding 제거가 성능을 낮춘다. 순서 정보의 가치는 데이터 밀도와 시퀀스 길이에 따라 달라진다.
더 중요한 결과는 residual connection과 dropout이다. residual connection을 제거하면 특히 Beauty와 Games에서 큰 성능 하락이 발생한다. dropout 제거도 sparse dataset에서 심각한 하락을 만든다. 이는 SASRec이 attention 기반으로 유연한 모델이지만, 추천 데이터의 sparse 특성 때문에 regularization과 안정적인 gradient flow가 필수적임을 보여준다.
Multi-head attention 결과도 흥미롭다. Transformer에서는 multi-head attention이 중요한 구성 요소였지만, SASRec 논문에서는 2-head variant가 single-head보다 일관되게 약간 낮은 성능을 보인다. 저자들은 latent dimension d=50이 작기 때문에 subspace를 여러 head로 나누는 것이 오히려 불리할 수 있다고 해석한다. 이 지점은 NLP Transformer의 설계를 추천 문제에 그대로 가져오면 안 된다는 좋은 사례이다.
| 구성 요소 | 제거 또는 변경 시 관찰 | 해석 |
|---|---|---|
| Positional embedding | dense dataset에서 성능 하락 | 순서 정보가 long-range transition 학습에 중요 |
| Residual connection | 특히 sparse dataset에서 큰 성능 하락 | 최근 행동 신호와 낮은 layer 정보를 보존 |
| Dropout | sparse dataset에서 severe drop | 추천 데이터의 sparsity 때문에 regularization이 필수 |
| Multi-head attention | 2-head variant가 single-head보다 약간 낮음 | 작은 latent dimension에서는 head 분할이 불리할 수 있음 |
12. 학습 효율성과 확장성
SASRec의 계산 복잡도는 self-attention 때문에 O(n²d + nd²)이다. 이론적으로는 sequence length n에 대해 quadratic term이 존재하지만, RNN과 달리 time step을 순차적으로 처리하지 않고 병렬화할 수 있다. 이 점이 GPU 환경에서 큰 장점으로 작동한다.


다만 이 결과를 “self-attention은 긴 시퀀스에 항상 적합하다”로 해석해서는 안 된다. 논문도 매우 긴 클릭 시퀀스에 대해서는 restricted self-attention이나 segment 기반 접근이 필요할 수 있다고 언급한다. SASRec은 수백 길이의 review 또는 purchase sequence에는 잘 맞지만, 수천 단위의 dense clickstream에는 추가적인 구조적 제약이 필요할 수 있다.
13. Attention Visualization: 모델은 실제로 무엇을 보는가

Figure 4는 SASRec의 주장을 가장 직관적으로 보여준다. Beauty에서는 최근 position에 attention이 강하게 몰리는 반면, ML-1M에서는 더 넓은 과거 position에 attention이 분산된다. 이는 sparse dataset에서는 short-term transition이 중요하고, dense dataset에서는 long-range preference가 더 중요하다는 논문의 설명과 잘 맞는다.
또한 positional embedding이 없는 ML-1M variant는 attention이 이전 아이템들에 거의 균일하게 퍼진다. 이는 위치 정보가 없으면 self-attention이 순차적 구조를 충분히 구분하지 못하고, 단순한 과거 아이템 집합 aggregation에 가까워질 수 있음을 보여준다. 후반부 실험을 읽으며 SASRec의 강점이 단순한 attention 적용이 아니라 position-aware, adaptive, hierarchical attention이라는 점을 확인할 수 있었다.

Figure 5는 item attribute를 직접 supervision으로 사용하지 않았음에도 attention이 의미 있는 item similarity를 포착할 수 있음을 보여준다. 물론 attention weight만으로 모델의 판단을 완전히 설명할 수는 없다. 그러나 적어도 SASRec의 attention이 완전히 임의적인 값이 아니라, position과 item attribute 양쪽에서 해석 가능한 패턴을 일부 형성한다는 점은 확인할 수 있다.
14. 논문을 읽으면서 생겼던 의문과 해소 과정
첫 번째 의문은 “왜 RNN을 쓰지 않고 self-attention을 써야 하는가?”였다. RNN은 sequential data에 자연스러워 보이지만, 사용자의 모든 과거 행동을 하나의 hidden state로 순차적으로 압축한다. 반면 self-attention은 예측 시점마다 필요한 과거 아이템을 직접 참조한다. 따라서 어떤 경우에는 최근 행동만 보고, 어떤 경우에는 훨씬 오래된 행동까지 보는 방식으로 유연하게 작동할 수 있다.
두 번째 의문은 “추천 데이터에서 positional embedding이 정말 중요한가?”였다. Beauty처럼 매우 sparse한 dataset에서는 positional embedding 제거가 약간 좋아질 수도 있다. 하지만 Games, Steam, ML-1M에서는 positional embedding이 성능에 기여한다. 이를 통해 순서 정보의 중요도는 dataset sparsity와 sequence length에 따라 달라진다는 점을 이해할 수 있었다.
세 번째 의문은 “multi-head attention이 왜 항상 좋지 않은가?”였다. Transformer 논문에서는 multi-head attention이 핵심 구성 요소였기 때문에 SASRec에서도 당연히 도움이 될 것처럼 보였다. 하지만 SASRec의 기본 latent dimension은 비교적 작고, 이 작은 차원을 여러 head로 나누면 각 head의 표현력이 부족해질 수 있다. 이 결과는 NLP에서 성공한 설계를 추천 문제에 그대로 옮기면 안 된다는 점을 보여준다.
네 번째 의문은 “SASRec이 user embedding 없이도 개인화를 할 수 있는가?”였다. 논문은 explicit user embedding을 추가해도 성능이 개선되지 않았다고 보고한다. 이는 사용자 ID 자체보다 사용자의 행동 시퀀스가 더 직접적인 개인화 신호로 작동한다는 뜻이다. 즉, SASRec은 user embedding table을 통해 사용자를 기억하기보다, 사용자의 최근 및 과거 item interaction을 통해 사용자의 현재 관심사를 추론한다.
15. SASRec의 강점
- Self-attention을 sequential recommendation에 본격적으로 도입했다. RNN이나 CNN 없이 사용자의 과거 item sequence를 직접 모델링한다.
- Sparse dataset과 dense dataset을 모두 다룰 수 있는 adaptive behavior를 보였다. sparse dataset에서는 최근 행동에 집중하고, dense dataset에서는 더 긴 과거를 활용한다.
- 기존 Markov Chain 및 item similarity model을 일반화하는 관점에서 모델을 해석했다. SASRec은 단순한 Transformer 응용이 아니라 추천 모델 계보 안에서 의미 있는 위치를 가진다.
- 학습 효율성 측면에서 RNN/CNN 기반 sequential recommender보다 훨씬 빠른 결과를 보였다. self-attention의 병렬화 가능성이 추천 문제에서도 실질적인 장점으로 작동했다.
- Attention visualization을 통해 position-aware, item-aware pattern을 제시했다. 이는 후속 self-attentive recommender 연구의 중요한 출발점이 되었다.
16. SASRec의 한계
첫 번째 한계는 self-attention의 계산량이다. SASRec은 RNN보다 병렬화가 쉽지만, attention 계산은 sequence length에 대해 quadratic하게 증가한다. 논문에서는 수백 길이까지 충분히 확장 가능함을 보였지만, 대규모 서비스의 긴 클릭 로그에는 sparse attention, local attention, segment modeling 같은 추가 설계가 필요할 수 있다.
두 번째 한계는 item ID sequence에 집중한다는 점이다. 논문은 item content, timestamp interval, action type, dwell time 같은 rich context를 직접 모델에 넣지 않는다. 실제 서비스에서는 같은 아이템 시퀀스라도 시간 간격이나 행동 유형에 따라 의미가 크게 달라질 수 있다. 따라서 SASRec은 sequential ID modeling의 강력한 baseline이지만, context-aware recommendation으로 확장할 여지가 크다.
세 번째 한계는 evaluation protocol이다. 논문은 100개 negative sampling 기반 ranking으로 Hit@10과 NDCG@10을 계산한다. 이는 당시 sequential recommendation 논문에서 표준적인 설정이었지만, 현재 추천 시스템 평가 관점에서는 full ranking 또는 더 엄격한 candidate generation setting에서도 재검증할 필요가 있다.
네 번째 한계는 attention 해석의 주의점이다. Figure 4와 Figure 5는 attention이 position과 item category 측면에서 해석 가능한 패턴을 형성한다는 점을 보여주지만, attention weight가 곧 모델의 완전한 설명이라고 보기는 어렵다. Attention visualization은 유용한 분석 도구이지만, 추천 결정의 인과적 설명으로 사용하려면 추가적인 검증이 필요하다.
SASRec의 가장 큰 한계는 sequence modeling 자체는 강하지만, 아이템 내용, 시간 간격, 행동 유형, 사용자 context 같은 부가 정보를 직접 모델링하지 않는다는 점이다. 이 한계는 이후 TiSASRec, feature-level self-attention, self-supervised sequential recommendation 연구로 이어진다.
17. 후속 연구 관점에서의 의미
SASRec 이후 sequential recommendation에서는 Transformer 계열 모델이 중요한 흐름이 되었다. BERT4Rec은 left-to-right next-item prediction 대신 masked item prediction을 사용하여 bidirectional sequence representation을 학습했다. TiSASRec은 time interval 정보를 self-attention에 통합했고, S3-Rec과 CL4SRec은 self-supervised learning과 contrastive learning을 sequential recommendation에 결합했다.
이 흐름에서 SASRec의 역할은 명확하다. SASRec은 추천 시스템에서도 self-attention이 작동한다는 것을 보여준 초기 기준점이며, 이후 연구들은 bidirectionality, temporal information, feature-level modeling, self-supervision, contrastive learning, denoising, lightweight architecture 등의 방향으로 확장되었다.
| 후속 연구 | 핵심 아이디어 | SASRec과의 연결 |
|---|---|---|
| BERT4Rec | Masked item prediction 기반 bidirectional sequential recommendation | SASRec의 left-to-right 구조를 bidirectional Transformer 방식으로 확장 |
| TiSASRec | time interval 정보를 self-attention에 통합 | SASRec이 직접 다루지 않은 시간 간격 정보를 보완 |
| S3-Rec | self-supervised learning과 mutual information maximization | item sequence representation을 auxiliary objective로 강화 |
| CL4SRec | contrastive learning for sequential recommendation | sequence augmentation과 contrastive objective를 결합 |
18. 구현 관점에서 보는 SASRec
SASRec을 구현할 때 가장 중요한 부분은 causal self-attention이다. 일반 Transformer encoder처럼 모든 위치가 모든 위치를 보게 만들면 안 된다. time step t에서는 반드시 t 이전의 아이템만 참조해야 한다. 따라서 attention mask를 만들어 미래 위치의 attention score를 매우 작은 값으로 바꿔야 한다.
또 하나 중요한 점은 loss 계산 위치다. Padding item이 들어간 위치는 학습 objective에서 제외해야 한다. 또한 각 time step마다 positive next item과 negative item을 구성해야 하므로, sequence shift와 negative sampling 구현이 정확해야 한다. 이 부분이 잘못되면 모델이 미래 정보를 보거나 padding을 학습해 성능이 비정상적으로 보일 수 있다.
| 구현 요소 | 구현 포인트 | 주의할 점 |
|---|---|---|
| Sequence preprocessing | 최근 n개 행동만 사용하고 부족하면 padding | padding 위치는 loss에서 제외 |
| Embedding | item embedding + positional embedding | 순서 정보가 없는 self-attention을 보완 |
| Attention mask | 미래 위치 j > i를 masking | 정답 누출을 막기 위해 필수 |
| Negative sampling | 각 time step마다 negative item 샘플링 | 사용자 interaction에 포함되지 않은 item을 선택 |
19. 최종 정리
Self-Attentive Sequential Recommendation은 sequential recommendation 분야에서 Transformer 기반 모델의 출발점에 가까운 논문이다. 논문의 강점은 구조가 비교적 단순하면서도 문제의식이 명확하다는 점이다. 단순히 RNN을 attention으로 교체한 것이 아니라, sparse한 추천 데이터에서는 Markov-like short-term dependency가 중요하고 dense한 데이터에서는 RNN-like long-term dependency가 중요하다는 관찰을 self-attention으로 연결했다.
처음에는 SASRec이 Transformer의 축소판처럼 보였지만, 자세히 읽어보면 추천 문제에 맞춘 causal masking, shared item embedding, sequence truncation, sampled BCE objective, sparsity별 attention behavior 분석이 모두 맞물려 있다. 특히 Table IV와 Figure 4를 함께 보면, 이 모델의 성능이 단순한 구조 차이가 아니라 position-aware attention, regularization, residual path, adaptive attention range의 결합에서 나온다는 점을 이해할 수 있다.
개인적으로 이 논문의 가장 중요한 가치는 self-attention을 단순한 sequence encoder가 아니라 adaptive item transition selector로 해석했다는 점에 있다고 본다. SASRec은 사용자의 과거 행동 중 무엇을 볼 것인지, 얼마나 멀리 볼 것인지, 어떤 item relation을 강조할 것인지를 attention weight로 학습한다. 이 관점은 이후 Transformer 기반 추천 모델의 핵심 출발점이 되었다.
SASRec은 추천 시스템에서 self-attention을 단순한 sequence encoder가 아니라, 사용자의 과거 행동 중 어떤 item transition을 볼 것인지 선택하는 adaptive sequential item similarity model로 해석하게 만든 논문이다.
20. 참고문헌
- Wang-Cheng Kang, Julian McAuley, Self-Attentive Sequential Recommendation, IEEE ICDM 2018. DOI
- arXiv: https://arxiv.org/abs/1808.09781
- PDF: https://arxiv.org/pdf/1808.09781
- Official Code: https://github.com/kang205/SASRec
- Fei Sun et al., BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer, CIKM 2019. arXiv
- Jiacheng Li, Yujie Wang, Julian McAuley, Time Interval Aware Self-Attention for Sequential Recommendation, WSDM 2020. ACM
- Kun Zhou et al., S3-Rec: Self-Supervised Learning for Sequential Recommendation with Mutual Information Maximization, CIKM 2020. arXiv
- Xu Xie et al., Contrastive Learning for Sequential Recommendation, ICDE 2022. arXiv
원문 링크: https://arxiv.org/abs/1808.09781