Ch 09-1. Joint Training of Ratings and Review with Recurrent Recommener Networks

Yeonghyeon·2022년 8월 18일
0

Recommender System

목록 보기
29/33
post-custom-banner

본 포스팅은 Fastcampus 강의를 수강하며 일부 내용을 정리한 글임을 밝힙니다. 보다 자세한 내용은 아래 강의를 통해 확인해주세요.
참고 : Fastcampus 딥러닝을 활용한 추천시스템 구현 올인원 패키지 Online


Ch 08. Recommender System with Deep Learning


📑 Paper Review

Joint Training of Ratings and Review with Recurrent Recommener Networks

  • 평점에 대한 평가(review)를 함께 합쳐서 학습시키면 더 나은 성능을 얻을 수 있지 않을까, 더 나은 성능을 얻기 위해 latent factor를 찾는 것이 목적 ➡️ rating + review

| Abstract

  • 평점과 리뷰 데이터 모두 활용하여 추천시스템 구축

  • Recurrent 모델 구조를 활용하여 user와 item의 다양한 component를 얻어내고자 함

    • temporal patterns: 시간의 흐름에 따른 평점, 리뷰
  • IMDB 데이터셋을 활용하여 모델 성능에 대한 실험 진행

| Introduction

  • 현재까지 추천시스템에 대한 연구에 대한 제한사항
  1. 모델 예측 정확도: 실제 평점을 예측하는 것보다 주로 데이터셋을 나누고 테스트셋에 대한 평가만 이루어짐
  2. Recurrent Recommender Networks(RRN)은 RNN 모델 구조로, user와 item 변화 등을 파악할 수는 있으나 리뷰의 시간적 변화 등을 제대로 포착하지 못함
  3. 리뷰 데이터를 활용한 추천시스템은 자연어처리 최신 기술과 훨씬 뒤떨어져있음
  4. 이전 연구에서 Bag-of-words 모델은 제한적으로 리뷰를 이해하게 될 수 있었음
  5. 추천시스템에서 리뷰 데이터를 많이 사용하기 어려운 이유는 기존 텍스트 데이터에 비해 unstructured하고 divsere됐기 때문 (뉴스와 같이 구조적이지 않고 주로 짧은 문장)

| Contributions

1. Joint Generative Model

  • 리뷰와 평점을 결합한 Joint 모델 구조 제안

2. Nonlinear nonparametric review model

  • user와 movie의 state dynamics를 학습하면서 시간 변화에 따른 리뷰의 변화 파악 가능

3. Experiments

  • 시간 흐름과 함께 평점과 리뷰를 함께 모델링해서 IMDB 데이터셋에 대해 좋은 성능

| Recurrent Recommender Network

📑 Recurrent Recommender Networks

  • 왼쪽: Time-independent recommendation model
    • uiu_imjm_j로 rating rijr_{ij}을 매기는데, 시간 독립적이다
    • ex) 10년전 매긴 평점과 현재 매긴 평점이 다르다, 독립적이다
  • 오른쪽: Time-dependent recommendation model
    • user와 item의 이전 time step에 대한 정보를 받아 현재의 rijr_{ij}를 구성

  • Recurrent Recommender Networks

    • Recurrent Neural Networks를 따르고 있고, 이 구조를 차용해서 recommender networks를 만들었다고 생각하면 됨
  • User에 대한 state evolution은 user가 이전에 평점을 준 영화와 관련있음

    • 즉, user가 이전에 어떤 영화에 대해 어떤 평점을 줬는지가 지금 영화의 평점을 매기는데 관련있음
  • Movie의 파라미터는 이전 시간에서 사용한 사용자와 영화의 인기도에 따라 다름

    	- 과거에 그 영화가 어땠는지도 중요한 파라미터
  • 이전의 sequential한 정보를 계속 담아서 최종적으로 현재의 rijr_{ij}를 예측하는 데 도움이 된다

| Model

  • 왼쪽: rating에 관련된 내용 / 오른쪽: review에 관한 내용
  • 둘을 결합하여 rijr_{ij} 예측

1. Dynamic User and Movie State

  • user/item 평점 과거 데이터를 input으로 사용해서 state를 update

    • 과거에 어떤 영화에 어떤 평점을 매겼는지, 그 영화의 인기도는 어떠했는지 등
  • 영화 관람 후 좋아요/싫어요 등으로 인한 user(or movie) 상태 변화를 모델링 가능

2. Rating Emissions

  • 시간에 따라 변하는 uitu_{it}, mjtm_{jt}를 각각 고정된 uiu_i 또는 mjm_j로 보완 가능 (이때 tt: 시간)
  • 이는 사용자의 장기적 선호, 영화 장르와 같은 시간에 따라 크게 변하지 않는 요소에 대한 내용 반영

    (시간에 따라 변하는 것 + 변하지 않는 고정적인 것)

3. Review Text Model

  • Character 단위 LSTM 네트워크 활용
  • 평점 모델과 동일한 user/item의 latent 상태를 반영
  • Bottleneck 층 xjoint,ij(=xij)x_{joint,ij}(=x_{ij})에서 user/movie의 정적인 정보와 동적인 상태 모두 합치게 됨

  • oij,ko_{ij,k}: user i가 movie j에게 준 리뷰의 position k일 때의 문자
  • character embedding xoij,kx_{oij,k}를 joint해서 최종적인 x 틸다 만들어냄

Model - Training and Prediction

학습

  • 학습 목적: Accurate ratings와 Accurate review를 예측하는 것
  • DD: (i,j) 쌍의 학습 데이터
  • θ\theta: 모든 모델 파라미터
  • nijn_{ij}: user i가 movie j에 쓴 리뷰 글자 수
  • λ\lambda: accurate rating과 accurate review를 예측하기 위한 가중치

예측

  • 예측된 미래 상태에 따라 평점 예측
  • 최근 평점을 input으로 사용하여 상태를 업데이트하고, 새롭게 예측된 상태를 통해 평점 예측

| Experiments

  • K-core of IMDB 데이터셋에 대해 평가를 진행한 결과
  • RRN이 다른 baseline 모델보다 더 좋은 성능, 특히 RRN(rating + text)이 성능을 더욱 향상
  • 평점과 리뷰의 통계적인 내용을 공유하는 것 ➡️ 그 timestep의 latent factor를 모델링하는데 더 많은 정보를 제공한다는 뜻
  • User/item 요소를 사용하거나 사용하지 않았을 때 text modeling perplexity를 비교했으며, 향상된 결과 보임
post-custom-banner

0개의 댓글