티스토리 뷰
[추천 논문 리뷰] Session based recommendations with recurrent neural network
LikeGirl 2022. 7. 24. 22:28본 포스팅은 "Session based recommendations with recurrent neural network(GRU4REC)" 논문의 주요 내용을 정리하였습니다.
■ GRU4REC모델은?
유저별 세션 정보를 (구매 순서,클릭 순서 등)를 입력값으로 하여, RNN을 기반으로 후보 아이템 중 유저가 다음에 선택할 아이템을 예측하는 모델입니다.

# 주요 키워드 : RNN, 세션 기반 추천, Ranking Loss
① RNN (순환 신경망) : 입력과 출력을 시퀀스 단위로 처리하는 시퀀스 모델
② 세션 기반 추천 모델이란 유저들이 선택했던 아이템 순서를 고려해 학습한 추천 모델을 의미
③ ranking loss : 데이터 인스턴스를 줄 세운다(ranking)는 취지를 강조한 용어, 정보 검색분야에서 이 용어를 사용
1. 어떤 문제를 해결하려고 하는가?
- 이커머스, 뉴스, 미디어 추천 시스템은 유저의 행동 추적이 어려움
- 쿠키나 Browser fingerprinting 방법은 신뢰성이 낮고, 개인 정보 이슈가 존재함
- 기존의 추천 모델은 짧은 세션의 데이터만을 다룰 수 있음
- "유저의 시퀀스 데이터를 기반으로 한 추천 모델을 제안
2. 기존 추천 모델의 한계
- Factor 모델 ( 행렬 분해, Matrix Factorization)
- MF 모델이란, 유저-아이템의 매트릭스를 n차원의 유저벡터,아이템 벡터로 분해하여 유저의 아이템에 대한 선호여부를 에측하는 것
- 유저 프로파일링을 못해서 세션 기반의 추천은 어려움
- 이웃 기반 추천 : 유저/아이템의 유사도를 기반으로 한 추천 모델
- 짧은 세션의 데이터만 처리할 수 있음
- 마지막 클릭/구매 데이터만으로 예측하지 못함
- [Contribution] RNN의 적용 제안
- 시퀀스 데이터 처리
- 추천 시스템에 RNN 모델을 적용
- new ranking loss function 제안
3. 시퀀스 기반 추천
- input: Actual state of Action (유저의 과거 구매 기록)
- output : 유저가 다음에 구매할 아이템 또는 행동할 이벤트 예측

1. 1-of-N encoding 사용
- 유저가 클릭(구매)한 아이템은 1, 그렇지 않은 아이템은 0으로 처리

2. Parallel Mini-Batch
- 한 시점에 대한 세션별 아이템을 하나의 배치로 지정
첫번째(minibatch1): [s11,s21,s31] ---> output"[s12,s22,s32]
두번째(minibatch2): [s12,s22,s32] ---> output"[s13,s23,s33]

- 학습은 one-to-one GRU를 사용하고, mini-batch 만큼 한번 학습하고, 히든 state를 다음으로 넘겨줌
- 세션의 크기가 다 다르므로, 세션별 시퀀스가 끝날때마다 초기화
3. Sampling on the output (** 이 부분 코드로 확인 필요)
- Populartive based sampling
- 인기가 있는 아이템인데도, 구매하지 않았으면, 비선호할 가능성이 큼
- Negative 아이템을 샘플링 할 때, Popularity를 고려해야 한다고 제안
4. Ranking Loss
- 추천 아이템을 어떻게 랭킹화 할 것인가?
- 해당 논문에서는 BPR Loss , Top1 Loss를 사용함
4.1 BPR Loss - Pair wise Ranking Loss
- Positive (선호) 아이템의 스코어와 sampled negative 아이템의 스코어를 비교
- 선호 아이템과 선호하지 않은 아이템을 활용하여, 선호하는 아이템이 더 상위에 랭크되는지를 측정하는 메트릭인 AUC를 직접 최적화하는 학습 프레임워크 제공
- 선호하는 아이템과 선호하지 않는 아이템의 예측값 사이의 차이를 최대화하는 방향으로 학습
[참고] https://tech.kakao.com/2021/10/18/collaborative-filtering/

4.2 Top1 Loss

5. 실험
Recsys 2015, OTT 데이터셋 활용

- hidden unit, loss funcion에 따른 정확도
- 제일 좋은 파라미터 검색
- LSTM, RNN 보다 GRU Layer가 성능이 좋음, Activation Function은 tanh로 쓰는게 좋음!
6. 결론
- RNN을 이용한 시퀀스 기반 추천 모델 제안
- 추천 시스템 적합한 GRU 모델 제안 (mini-batch, Loss, sampling 방법 제안)
마무리
GRU4REC은 시퀀스 데이터를 사용하여, GRU 모델을 활용하여 사용자들의 세션을 기반으로 한 딥러닝을 이용한 추천을 제안했습니다. 특히, 추천에 적합한 RNN 모델을 제안하기 위해 기존 GRU 모델을 커스터마이징 했다는 부분에서 의미가 있는 것 같습니다. 논문을 읽으면서 아쉬웠던 점은, 실험 결과 부분에 실제로 GRU4REC 모델이 다른 모델에 비해 성능이 좋은지를 명확하게 표현하지 않은 부분입니다. 다음 포스팅에서는, GRU4REC 코드를 구현하는 부분을 정리해보겠습니다.
<참고>
https://www.notion.so/d091634c333f4ad3847257538f0d5b93?p=353f21fc63244b9aa4e70949dafc2551&pm=s
https://arxiv.org/abs/1511.06939
https://www.comworld.co.kr/news/articleView.html?idxno=50160
'추천시스템' 카테고리의 다른 글
[추천 모델 리뷰] Learning To Rank (LTR) (0) | 2022.10.02 |
---|---|
[추천 논문 리뷰] Deep Knowledge Tracing 논문 리뷰 (0) | 2022.08.21 |
[추천 논문 리뷰] Neural Collaborative Filtering (0) | 2022.06.26 |