Neural Attentive Session-based Recommendation

Paper Digest (CISELQ)

  • C (Context): 세션 기반 추천(session-based recommendation)은 로그인되지 않은 사용자 혹은 짧은 익명 세션에서만 클릭 시퀀스가 주어지는 상황이며, e-commerce에서 매우 중요한 문제다. GRU4Rec 등 RNN 기반 접근이 등장했지만 세션 내에서 사용자의 “주요 의도(main purpose)“를 명시적으로 모델링하지 않는다.
  • I (Issue): 단순 RNN은 세션 전체를 균일하게 압축하기 때문에, 사용자가 실제로 탐색하려는 핵심 아이템 카테고리와 무관한 우연적 클릭까지 동일 비중으로 반영된다. 이로 인해 긴 세션에서 성능이 급격히 하락한다.
  • S (Solution): NARM(Neural Attentive Recommendation Machine)은 하이브리드 인코더 구조를 제안한다. (1) Global Encoder는 GRU 마지막 hidden state로 순차적 행동을 요약하고, (2) Local Encoder는 attention을 통해 현재 시점과 관련된 이전 클릭들에 가중치를 부여해 사용자의 주요 의도를 추출한다. 두 표현을 concatenate하여 bi-linear decoder로 후보 아이템 스코어를 계산한다.
  • E (Evidence): YOOCHOOSE(RecSys Challenge 2015)와 DIGINETICA(CIKM Cup 2016) 두 벤치마크에서 GRU4Rec, Item-KNN, BPR-MF 등 대비 Recall@20과 MRR@20에서 일관된 향상을 보였으며, 특히 긴 세션 구간(세션 길이 ≥ 10)에서 개선폭이 두드러졌다.
  • L (Limitation): 단일 세션 내 short-term 의도만 다루며 장기 사용자 프로필을 활용하지 않는다. 또한 attention이 단일 쿼리(마지막 hidden state) 기반이라 세션 내 다중 의도(multi-intent) 변화를 명시적으로 분리하지는 못한다.
  • Q (Questions): attention 쿼리를 마지막 상태가 아닌 학습 가능한 intent slot으로 확장하면? 세션 간(cross-session) 정보를 결합할 때 NARM의 local encoder가 user-level attention으로 자연스럽게 일반화될 수 있는가?

섹션별 요약

Introduction

기존 세션 기반 추천은 (a) 마지막 클릭만 사용하는 item-to-item 유사도 접근과 (b) 전체 세션을 RNN으로 압축하는 GRU4Rec 계열로 나뉜다. 저자들은 두 접근 모두 “사용자가 지금 이 세션에서 무엇을 사려 하는가”라는 main purpose를 명시적으로 포착하지 못한다고 지적하며, sequential behavior와 main purpose를 동시에 모델링하는 hybrid encoder를 제안한다.

Methods

  • Global Encoder: 임베딩된 아이템 시퀀스를 GRU에 통과시켜 마지막 hidden state 를 sequential summary로 사용.
  • Local Encoder: 동일한 GRU hidden states 각각에 대해 를 쿼리로 삼은 attention 가중치 계산, context vector 로 main purpose 표현.
  • Session Representation: concatenation.
  • Bi-linear Decoder: 각 후보 아이템 임베딩 에 대해 로 점수화. 전체 softmax + cross-entropy로 학습.

Results + Table

DatasetModelRecall@20MRR@20
YOOCHOOSE 1/64GRU4Rec60.6422.89
YOOCHOOSE 1/64NARM68.3228.63
YOOCHOOSE 1/4GRU4Rec59.5322.60
YOOCHOOSE 1/4NARM69.7329.23
DIGINETICAGRU4Rec29.458.33
DIGINETICANARM49.7016.17

Discussion

Attention 가중치 시각화 결과, 동일 카테고리 클릭에는 높은 가중치가 할당되고 일회성·우연적 클릭에는 낮은 가중치가 할당되어 실제로 “주요 의도”를 포착함을 정성적으로 확인했다. 세션 길이 ablation에서 긴 세션일수록 local encoder의 이득이 커진다.

Insights

Sequential encoder 단독으로는 노이즈 클릭을 필터링하지 못하며, 어디를 볼지(attention)전체 흐름(RNN hidden state) 을 분리해 결합하는 것이 세션 표현을 단일 벡터로 합치는 것보다 효과적이다.

Discussion Points

  • Bi-linear decoder는 softmax over full item catalog이라 대규모 카탈로그에서 비용 문제가 있다.
  • Local encoder의 attention 쿼리를 last hidden state에 고정한 설계가 최선인가?
  • Cold-start 아이템에 대한 일반화는 후속 연구(SASRec, BERT4Rec) 에서 다시 다뤄진다.

메타데이터

항목내용
저자Jing Li, Pengjie Ren, Zhumin Chen, Zhaochun Ren, Jun Ma
학회CIKM 2017
arXiv1711.04725
코드저자 Theano 구현 공개 (GitHub: lijingsdu/sessionRec_NARM)
데이터YOOCHOOSE (RecSys Challenge 2015), DIGINETICA (CIKM Cup 2016)

왜 이 연구를 하는가?

세션 기반 추천은 로그인 정보가 없고 짧은 클릭 이력만 존재하는 e-commerce 환경의 현실적 제약을 반영한다. GRU4Rec은 RNN으로 순차 패턴을 잡아냈지만, 사용자가 여러 상품을 둘러보는 도중 발생하는 탐색적/우연적 클릭이 세션 마지막 hidden state에 그대로 섞여 들어가 의도와 무관한 추천을 유발한다. 저자들은 “sequential behavior”와 “main purpose”라는 두 신호를 분리해 모델링해야 실질적 정밀도가 높아진다고 보고, attention을 이 분리의 메커니즘으로 도입한다.

방법 (Method)

flowchart LR
    X[아이템 클릭 시퀀스 x1..xt] --> E[Item Embedding]
    E --> G[GRU Hidden States h1..ht]
    G --> GE[Global Encoder h_t]
    G --> A[Attention alpha_tj]
    A --> LE[Local Encoder c_t_local]
    GE --> C[Concat c_t]
    LE --> C
    C --> D[Bi-linear Decoder]
    D --> S[Softmax over catalog]
    S --> Y[다음 클릭 예측]

핵심은 같은 GRU의 hidden states가 두 번 소비된다는 점이다. 마지막 상태는 전역 시퀀스 요약으로, 전체 상태 집합은 attention을 통해 국소 의도 요약으로 재활용된다.

발견 (Findings)

구분발견
성능두 데이터셋에서 Recall@20, MRR@20 모두 baseline 대비 일관 향상
세션 길이 효과세션 길이 ≥ 10에서 GRU4Rec 대비 gap이 확대
Attention 해석주요 카테고리 클릭에 높은 가중치, 우연적 클릭에 낮은 가중치 할당
AblationGlobal-only, Local-only 모두 Hybrid보다 낮음 → 두 요소 모두 기여
DecoderBi-linear decoder가 단순 MLP decoder보다 우수

이론적 의의

NARM은 추천 도메인에 “sequence summary + attention-pooled intent”라는 이중 표현 패러다임을 정착시켰다. 이후 STAMP, SASRec, BERT4Rec 등 sequential recommender의 공통 골격 — “마지막 상태를 쿼리로 한 attention” — 의 초기 형태로 볼 수 있으며, Transformer 기반 추천이 등장하기 전 attention의 실용적 가치를 RecSys에서 처음 정량적으로 검증한 연구로 평가된다.

재현성 및 신뢰도 평가

항목평가근거
코드 공개B+저자 Theano 구현 공개, 다만 프레임워크가 legacy
데이터AYOOCHOOSE/DIGINETICA 공개 벤치마크
하이퍼파라미터B임베딩/히든 차원, dropout 등 논문에 명시
재현 커뮤니티APyTorch 재구현 다수 존재
통계 검정C다중 seed 분산 보고 부족
전반 EvidenceA두 데이터셋·복수 baseline·정성 해석까지 포괄

관련 연구

  • GRU4Rec (Hidasi et al., ICLR 2016): RNN 기반 세션 추천의 원형, NARM이 직접 비교 대상으로 삼음.
  • Item-KNN, BPR-MF: 전통적 baseline.
  • STAMP (Liu et al., KDD 2018): NARM과 유사하게 short-term attention + general interest 분리.
  • SASRec (Kang & McAuley, ICDM 2018): self-attention만으로 sequential recommendation 구현.
  • BERT4Rec (Sun et al., CIKM 2019): bidirectional Transformer로 세션/시퀀스 추천 확장.

원자적 인사이트

  1. “마지막 hidden state를 쿼리로 쓰는 attention”은 세션의 현재 초점을 명시화하는 저렴하면서 강력한 장치다. 동일 RNN 출력의 재활용만으로 추가 파라미터 부담 없이 intent signal을 분리할 수 있으며, 이 패턴은 이후 sequential recommender와 decoder-only LM의 causal self-attention 사용 방식과 본질적으로 같은 아이디어다.
  2. 세션 길이가 증가할수록 단순 RNN 요약의 정보 병목이 심해지며, attention pooling이 이 병목을 완화한다. NARM의 세션 길이별 ablation은 “긴 컨텍스트에서 attention이 이득을 키운다”는, 이후 NLP에서 반복적으로 확인되는 경험 법칙을 추천 도메인에서 선제적으로 보여준 사례다.

핵심 용어 정리

  • Session-based Recommendation: 사용자 식별 없이 하나의 세션 클릭 시퀀스만으로 다음 아이템을 예측하는 과제.
  • Global Encoder: 세션 전체의 순차 패턴을 하나의 벡터로 요약하는 RNN (여기선 GRU) 마지막 hidden state.
  • Local Encoder: attention 가중치로 이전 hidden state들을 가중합해 사용자의 main purpose를 표현하는 모듈.
  • Bi-linear Decoder: 형태로 세션 표현과 아이템 임베딩의 양선형 점수를 계산하는 스코어 함수.
  • Main Purpose (User Intent): 세션 내 여러 클릭 중 실제 구매/탐색 목표가 되는 일관된 관심 방향.
  • Recall@K / MRR@K: 세션 다음 클릭이 Top-K 추천 안에 포함될 확률 / 그 rank의 역수 평균.

태그

RecSys SessionBasedRecommendation Attention RNN GRU NARM CIKM2017 UserIntent Application