3. Sept 28, 2017 Page 3/26
Session
• 정의: 사용자가 서비스를 사용하면서 발생시키는 일련의 이벤트
– E.g. 쇼핑몰을 사용하는 유저의 아이템 클릭 기록
• 사용자가 서비스를 이용하는 시간에 따라 세션의 길이가 정해짐
• 회원 가입한 유저의 기록과 비교하여 상대적으로 짧음, 익명 가능
• 일반적으로 연속적인 이벤트는 사용자의 의도가 담겨 있음
4. Sept 28, 2017 Page 4/26
Session-based Recommendation
• 세션 기반 추천
– 세션에 담긴 의도를 파악하여 다음으로 클릭할 것 같은 아이템을 추천
• 등장 배경
– 개인 정보 이슈로 인해 비회원으로 서비스를 이용하려는 수요가 증가하였음
– 세션 단위의 기록은 본질적으로 cold-start -> 기존 방법으로 개인화가 어려움
-> 세션을 단위로 하는 추천 상황에 적합한 방법이 필요함
5. Sept 28, 2017 Page 5/26
Session-based RS
• Item-KNN
– 세션에서 마지막으로 클릭한 아이템과 가장 유사한 아이템을 추천
• Matrix Factorization
– 유저 대신 세션을 사용하여 행렬 분해 알고리즘 이용
6. Sept 28, 2017 Page 6/26
Session-based RS
• Item-KNN 알고리즘이 기존 방법 중 가장 좋은 성능을 보임
– MF 방법은 cold-start 환경에서 성능이 좋지 못함 (user profile의 부재)
11. Sept 28, 2017 Page 11/26
Gated networks
• Vanishing gradients 문제를 해결하고자 등장
– 입력 데이터 중 초반의 값의 영향력이 사라지는 것
• Long-Short Term Memory (LSTM)
• Gated Recurrent Unit (GRU)
GRU
12. Sept 28, 2017 Page 12/26
Session-based Recommendation
with RNN
• GRU4Rec
– 다음으로 클릭 할만한 아이템 예측하는 모델
• Network structure
– Input: one hot encoded item ID
– GRU layer
– Output: scores over all items
– Learning: rmsprop, adagrad (GD 계열의 방법)
13. Sept 28, 2017 Page 13/26
Adapting GRU to the
Recommendation Task
• Session-parallel mini batches
– 많은 수의 세션을 학습하기
위해서는 병렬적으로 학습해야 함
– 세션의 길이가 2~100으로
다양하기 때문에, batch 단위로
세션 병렬화
• Output sampling
– Output의 모든 아이템을
비교하지 않고 샘플링
• Loss functions
– Pairwise ranking
15. Sept 28, 2017 Page 15/26
Extensions (1/2)
• Multi-modal information (p-RNN model)
[Hidasi et. al, RecSys 16]
– GRU4Rec 모델을 이미지, 텍스트 정보를
추가로 이용하기 적합하도록 개선
– 여러 하이브리드 모델 구조와 모델 학습
방식을 비교한 성능을 비교함
16. Sept 28, 2017 Page 16/26
Extensions (2/2)
• Personalizing by inter-session modeling [Quadrana et. al, RecSys 17]
– 유저 정보를 알고 있는 상황에서, 한 유저의 여러 세션을 학습하여 개인화를
시도하는 모델
Hierarchical RNNs (session-level, user-level)
– 기존 RNN 모델을 단순히 사용했을 때 보다 더 나은 성능을 보임
17. Sept 28, 2017 Page 17/26
Deep learning is the best?
• When Recurrent Neural Networks meet the Neighborhood for
Session-based Recommendation [RecSys 17]
Recall
지난 n일 까지의 데이터를 사용
18. Sept 28, 2017 Page 18/26
S-KNN Motivation
• GRU4Rec 모델의 신뢰성이 부족함
– 추천 문제에 있어서 새로운 머신 러닝 모델의 성능을 판단하기는
기본적으로 쉽지 않음
적절한 baselines 설정 문제
Domain, dataset에 따른 의존성 문제
Scalability
• 세션 기반 추천 문제에 GRU4Rec 모델을 더 자세히 검증하고자 함
– 새로운 baseline 알고리즘 (S-KNN)
– 더욱 다양한 데이터 셋
– Scalability 비교
19. Sept 28, 2017 Page 19/26
S-KNN
• Session-based KNN
– User-KNN와 같은 개념
– K개의 가장 비슷한 세션을 찾아서 다음으로 클릭 할 만한 아이템 예측
– Candidate session 개념 사용
모든 세션과 유사도 계산하는 것은 매우 느리므로 최신의 n개의 세션만 사용
20. Sept 28, 2017 Page 20/26
S-KNN Experiment Results (1/3)
• 새로운 baseline
– KNN과 GRU4Rec은 거의 비슷한 성능을 보임
– WH(weighted hybrids, S-KNN과 GRU4Rec 결과를 가중 합으로 사용)이
가장 좋은 성능
21. Sept 28, 2017 Page 21/26
S-KNN Experiment Results (2/3)
• 다양한 도메인의 데이터 셋
– 두 알고리즘 중 어느 하나가 뛰어나다고 보기 어려움
22. Sept 28, 2017 Page 22/26
S-KNN Experiment Results (3/3)
• Scalability
– S-KNN 모델이 매우 좋음
23. Sept 28, 2017 Page 23/26
S-KNN Conclusion
• 추천 알고리즘의 검증을 더욱 신중히 해야 함
– Baselines, domain, dataset, scalability
• 세션 기반 추천에 있어서 S-KNN, GRU4Rec 모두 발전할 여지가 있으며
현재 진행 중
24. Sept 28, 2017 Page 24/26
Conclusion
• GRU4Rec를 시작으로 Session-based Recommendation 분야에서 딥
러닝을 활용한 모델들이 활발히 연구되고 있음
• 최근의 다양한 딥 러닝 테크닉을 활용해 볼 수 있는 분야이고 앞으로 할
일이 많은 분야
• 그러나 최신의 기술을 추천 시스템에 적용할 때에 충분히 고려하고
검증할 필요가 있음
25. Sept 28, 2017 Page 25/26
References
• [Cho et. al, 2014] On the properties of neural machine translation: Encoder-decoder approaches.
https://arxiv.org/abs/1409.1259
• [Hidasi et. al, 2015] Session-based Recommendations with Recurrent Neural Networks. International Conference on
Learning Representations (ICLR 2016). https://arxiv.org/abs/1511.06939
• [Hidasi et. al, 2016] Parallel Recurrent Neural Network Architectures for Feature-rich Session-based Recommendations. 10th
ACM Conference on Recommender Systems (RecSys’16).
• [Quadrana et. al, 2017] Personalizing Session-based Recommendations with Hierarchical Recurrent Neural Networks. 11th
ACM Conference on Recommender Systems (RecSys’17). https://arxiv.org/abs/1706.04148
• [Ruocco et. al, 2017] Inter-Session Modeling for Session-Based Recommendation. 2nd Workshop on Deep Learning for
Recommendations (DLRS 2017). https://arxiv.org/abs/1706.07506
• [Dietmar Jannach et. al, 2017] When Recurrent Neural Networks meet the Neighborhood for Session-based
Recommendation (RecSys, 2017]. http://ls13-www.cs.tu-
dortmund.de/homepage/publications/jannach/Conference_RecSys_2017.pdf, https://ls13-www.cs.tu-
dortmund.de/homepage/publications/jannach/slides/RecSys2017.pdf
• [Hidasi 2017] Deep Learning for Recommer Systems (RecSys Summer School 2017).
http://pro.unibz.it/projects/schoolrecsys17/DeepLearning.pdf