티스토리 뷰

본 포스팅은 "Session based recommendations with recurrent neural network(GRU4REC)" 논문의 주요 내용을 정리하였습니다. 

■ GRU4REC모델은?

유저별 세션 정보를 (구매 순서,클릭 순서 등)를 입력값으로 하여, RNN을 기반으로 후보 아이템 중 유저가 다음에 선택할 아이템을 예측하는 모델입니다. 

[출처] Deep Learning for Sequential Recommendation: Algorithms, Influential Factors, and Evaluations

# 주요 키워드 : 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 : 유저가 다음에 구매할 아이템 또는 행동할 이벤트 예측

 

GRU4REC 모델 아키텍쳐

1. 1-of-N encoding 사용

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

<출처> https://www.slideshare.net/ceradam/sessionbased-recommendations-with-recurrent-neural-networks

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/

BPR Loss

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

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함