목차
I. 논문 정보
II. 리뷰 내용
0. Abstract
1. Introduction
2. Methodology
3. Experiments
4. Conclusion
III. 고찰
** 리뷰 내용 중 +) 의 경우, 논문에서 발췌한 내용이 아니라 내 의견 또는 다른 참고 자료임
I. 논문 정보
- 원제: CORE: Simple and Effective Session-based Recommendation within Consistent Representation Space
- SIGIR ’22, July 11–15, 2022, Madrid, Spain. (DIF-SR과 같은 시기에 나옴)
- 저자:
- 1저자: Yupeng Hou PhD(https://yupenghou.com, RecBole 개발 참여자)
- 앤트 그룹 (알리페이)
- 코드: https://github.com/RUCAIBox/CORE 및 Recbole 2.0 (pytorch lib)
- 논문: https://doi.org/10.1145/3477495.3531955
II. 리뷰 내용
0. Abstract
- 세션 기반 추천(SBR)은 익명 세션 내에서 단기간의 사용자 행동을 기반으로 다음 항목을 미리 예측하는 작업을 말함
- 비선형 인코더로 학습한 세션 임베딩은 일반적으로 아이템 임베딩과 동일한 표현 공간에 있지 않기 때문에 항목을 추천할 때 일관성 없는 예측 문제가 발생
- 인코딩과 디코딩 프로세스의 표현 공간을 통합할 수 있는 간단하고 효과적인 프레임워크인 CORE를 제안
- 입력 항목 임베딩의 선형 조합을 세션 임베딩으로 간주하여 세션과 항목이 동일한 표현 공간에 있음을 보장하는 표현 일관성 인코더를 설계
- 일관된 표현 공간에서 임베딩의 과적합을 방지하기 위해 강력한 거리 측정 방법을 제안
- 5개의 공개 실제 데이터 세트에 대한 광범위한 실험을 통해 제안한 방법의 효과와 효율성을 입증함
1. Introduction
Session-based Recommendation (SBR)
유저가 클릭했던 아이템과 같은 단기적이고 동적인 유저의 선호를 캡쳐하는 것을 목표로 하는 추천 시스템의 연구 주제 중 하나. 최근에는 encoder-decoder 아키텍처를 많이 사용하고, 그 중에서도 encoder 부분에서 신경망 부분을 효과적으로 설계하기 위한 연구가 많음. RNN, Transformer, GNN 기반의 모델들이 연구됨. decoder 부분에서는 세션과 아이템 임베딩의 dot product를 통해 다음에 올 아이템의 interaction probability를 예측하는 방법이 많이 사용됨.
기존 연구의 경우, session emb와 item emb가 비선형 인코더 때문에 같은 latent space에 있지 않음. 이 때문에 예측 결과가 item embedding과 유사도를 계산하였을 시 inconsistent함.
2. Methodology
위와 같은 문제점을 해결하기 위한 CORE framework을 제안. RCE(Representation-Consistent Encoder)와 RDM(Robust Distance Measuring)으로 구성됨
Notations in encoder-decoder framework
𝑣𝑖를 i번째 아이템이라고 했을 때, 아이템 임베딩은 hi
$$ 𝒉𝑖 = Emb(𝑣𝑖 ) ∈ R𝑑 $$
𝒉s, 𝑖 : s번째 세션, 아이템 n에 임베딩을 말함
𝒉𝑠는 s 세션에 대한 모든 아이템 임베딩이 인코더를 거쳤을 때의 결과
$$ 𝒉𝑠 = Encoder([𝒉𝑠,1,...,𝒉𝑠,𝑛]) ∈ R𝑑 $$
hs는 decoder를 거쳐 다음 아이템에 대한 확률 분포를 예측 (m은 전체 아이템 개수)
$$ 𝒚ˆ = Decoder(𝒉𝑠 ) ∈ R𝑚 $$
RCE(Representation-Consistent Encoder)
같은 잠재 공간에 표현하기 위하여 세션 임베딩을 아이템 임베딩의 선형 변환으로 나타냄. 다만 순차적 특성 등은 비선형적으로 학습해야 하므로, 선형 변환의 가중치가 될 vector를 비선형 모델을 통해 구함.
Learning Weights via Mean Pooling
𝛼𝑖 를 구하기 위한 DNN으로 mean pooling layer를 사용하는 방법. 이러한 경우 세션의 순서와 아이템의 중요도 등은 무시됨
$$ αi = \frac{1}{n} $$
Learning Weights via Transformer
이 논문에서는 SASRec과 같은 L-lyaers self-attention block을 DNN으로 활용함.
$$ 𝑭 = Transformers([𝒉𝑠,1;𝒉𝑠,2;...;𝒉𝑠,𝑛]), $$
$$ α = softmax(𝒘 · 𝑭⊤) $$
𝒘 ∈ R𝑑은 학습가능한 파라미터이며, 이 방식을 사용하면 트랜스포머의 positional encoding 기술의 특성상 sequential nature가 캡처됨.
RDM(Robust Distance Measuring for Decoding)
선형 결합으로 만들어진 Session embedding을 이용한 decoding과정에서 발생할 수 있는 오버피팅을 해소하기 위한 강력한 거리 측정 방법
앞선 RCE를 통해 session을 item embedding의 선형 변환으로 사용. Next Item의 임베딩과 거리를 계산하여 모델을 학습하는데, 이 과정에 비선형성이 개입되지 않아 overfitting 발생 확률이 높아짐. 따라서 unified representation space 내 거리를 계산하는 robust way을 제안함.
일반적으로 dot product distance + CE loss → (N-1)-tuplet loss를 사용. 이 때 마진은 2로 고정됨.
- m: 아이템의 수
- v+: GT next item for session s, v-: 전체 아이템 중 v+을 제외한 모든 아이템의 임베딩
triplet loss
(N+1)-tuplet loss
위 loss에서 거리 측정의 robustness 를 향상하기 위한 3가지 방법을 적용하여 최종 손실 함수인 Robust Distance Measuring(RDM)를 정의
- 데이터의 분포가 추천 시나리오마다 다르므로 fixed margine 대신 추가적인 하이퍼파라미터(τ, 타우)를 적용
- 아이템 임베딩에 대하여 Dropout 추가
- contrastive learning 에서 영감을 받아, dot product가 아니라 cosine distance로 변경
3. Experiments
Datasets and evaluation metrics
Datasets
real-world platforms의 5개 공개 데이터 활용하여 실험 수행. 모두 이커머스 웹사이트로 대체로 메타 정보는 거의 없고 유저, 아이템, 세션으로 구성됨. 약간의 전처리와 train:val:test=8:1:1 분할
- Diginetica: Nowplaying, RetailRocket, Tmall: 타오바오몰, Yoochoose
Evaluation metrics
- top-20 Recall (R@20): 사용자가 관심 있어하는 모든 아이템 중 내가 추천한 아이템 20개가 얼마나 포함되는지의 비율
- top-20 Mean Reciprocal Rank (M@20)
- Mean Reciprocal Rank: 결과로 제안된 후보들 중 정답이 몇 번째에 위치하는지를 나타낸 지표
성능 비교
baselines
- MF 기반 모델: FPMC
- RNN 기반 모델: GRU4Rec, NARM
- GNN 기반 모델: SR-GNN, NOSER+, LESSR, SGNN-HN
- 트랜스포머 기반 모델: SASRec, GC-SAN, CL4Rec
proposed model
- CORE-ave (mean pooling as a DNN)
- CORE-trm (transformer as a DNN, especially self-attention blocks)
details
- laten vector: 100
- session max length: 50
- adam
- lr 0.001
- early stop - patience 5, monitoring M@20
- batch size: 2048
- controllable margin 𝜏 among {0.01, 0.05, 0.07, 0.1, 1}
- dropout ratio 𝜌 among {0, 0.1, 0.2}
Overall comparison
CORE가 10개 중 8개에서 outperformed
학습 시간/Recall@20
CORE-ave가 효율이 가장 좋았음
RCE와 RDM의 효과
w/o: without
두 개를 모두 적용했을 때에 성능이 가장 좋았으며, 이는 SASRec 대비 약 2% 성능 차이를 뵘
다른 모델에 프레임워크 적용하였을 시 효과
둘 다 적용하였을 때 더 높은 성능을 보임
학습한 세션 임베딩의 시각화 (t-SNE)
Diginetica 테스트 세트에 대해서 15개의 아이템에 대해서 샘플링한 뒤 세션 임베딩을 시각화하였을 시, CORE로 학습한 결과가 가장 잘 분리되는 것을 확인함.
하이퍼파라미터 튜닝
4. Conclusion
- 일관된 표현 공간 내에서 세션 기반 추천을 위한 간단하고 효과적인 프레임워크인 CORE를 제안
- 일관된 표현 공간에서 세션을 아이템으로 인코딩하기 위해 아이템 임베딩에 가중치 합계를 적용하는 방식을 제안(RCE)
- 또한 제안된 프레임워크에서 아이템 임베딩의 과적합을 방지하기 위해 강력한 거리 측정 기법(RDM)을 제안
- 5개의 공개 데이터 세트에 대한 광범위한 실험을 통해 제안된 접근 방식의 효과와 효율성, 그리고 제안된 기법이 기존 방법에 어떻게 도움이 될 수 있는지를 보여줌
- future work
- representation-consistent encoder의 표현 능력을 이론적, 경험적으로 증명하는 연구
- side features와 inductive bias 도입하는 방법을 탐구
III. 고찰
정리
- 기존 SBR 방법에서 Session Embedding 은 Item Embedding들을 비선형 결합 (Nonlinear Combination) 방식으로 구축하기 때문에 발생하는 Inconsistent Prediction Issue 를 제기
- 이를 해결하기 위한 Representation-Consistent Encoding (RCE) 과 overfitting을 방지하기 위한 Robust Distance Measuring (RDM)을 제안
- RCE는 세션 임베딩을 아이템 임베딩의 선형 결합으로 나타내는 인코더를 말함
- RDM은 (N-1)-tupletLoss에 오버피팅을 방지하기위해 margin을 조정, Dropout 추가, dot product → cosine similarity 를 적용한 손실 함수
- 결과적으로, 5개의 데이터셋에 대해서 전반적으로 기존 모델들보다 효율적이고 효과적인 성능을 보였고, 기존 모델에도 쉽게 적용할 수 있음을 보임
의견
- 세션 임베딩을 아이템 임베딩과 같은 representation space에서 표현하기 때문에 해석이 쉬우나, 결국에는 선형 변환이므로 RCE를 통한 복잡도가 높은 표현에 대한 학습은 어렵지 않을까라는 의문이 듬
- 개인적으로 contrastive loss가 아닌 triplet, N-pair loss에 대해서는 처음 알게 되었는데 학습에서 object를 잘 설정하는 것이 굉장히 중요하겠다는 생각이 들었음. 그래서 RCE 보다는 RDM이 새롭게 느껴졌고, 다른 문제에도 이와 같은 loss가 도움이 될 것 같아 적용해보려고 함. 그래서 다음 논문 리뷰는 "Improved Deep Metric Learning with Multi-class N-pair Loss Objective"에 대해 해보려고..
- 현재 CORE에는 side information을 고려하지 않고 있는데, 실제 e-commerce에서 anonymous session이라고 해도 item들에 대한 side information은 충분히 있으므로 이를 고려하는 모델에 적용하여 성능이 향상되는지 확인해보고 싶다는 생각이 듬.
'인공지능 > 추천 시스템' 카테고리의 다른 글
[추천시스템] nDCG가 도대체 뭐지? 예제를 통해 알아보자 (3) | 2023.07.19 |
---|---|
[논문리뷰] GHRS: Graph-based Hybrid Recommendation System with Application to Movie Recommendation (0) | 2023.05.21 |
[논문리뷰] AutoRec: Autoencoders Meet Collaborative Filtering (3) | 2023.05.19 |
[토이프로젝트] 코사인 유사도 기반의 아이템 추천 API 만들어보기 (0) | 2023.04.09 |
[RecSys] 연관 규칙 (Association Rule) (0) | 2023.02.27 |