본문 바로가기
AI/논문 분석

[추천시스템] A Knowledge-Enhanced Deep Recommendation Framework Incorporating GAN-based Models

by 지수코딩 2019. 12. 25.

Abstract

DNN기반으로 user-item interaction을 인코딩 하는게 CF 성능 높이지만, latent features 무시하고 sparse 데이터에 취약하다.

이 논문에서는 영화 추천을 위해 GAN-based model을 통합한 novel knowledge-enhanced deep recommendation framework(KTGAN)를 제안

 

Introduction

- CF-based method 같은 경우는 별점, 리뷰, 구매기록과 같은 observed user-item interaction을 기반으로 추론하기 때문에 data sparsity에 문제를 겪음

- 그래서 기록에 없는(unobserved) interaction을 학습하기 힘든 cold start 문제를 겪음

 

- DL-based model의 성능이 좋아 최근에 사용하기도 함

- 하지만, DL에도 문제는 있음

    1. observed user-item interaction을 기반으로 함

    2. single type의 임베딩을 함(knowledge 임베딩 아님) -> 사용자의 특징을 충분히 담아낼 수 없음

       (single type: clicked, watched, ...)

    3. 아이템 추천에 IRGAN이 잘 되는 것을 증명 했지만, random으로 initialize된 모델 사용하기 때문에 pre-training을 피할 수 없음

 

 

Our Framework!

: random initialize 대신에!

- user/movie representations를 풍부하게 하기 위해 다양한 피처 벡터들을 통합한다.

- Knowledge Graphs로부터 knowledge embeddings(ke)

   e.x) movie's ke: entity embedding과 context embedding의 결합

          user's k.e: his/her favorite embedding 평균(그냥 평준화 한다는 뜻??)

- Tag corpus로부터 tag embedding(te)
  (te: tag들 사이의 co-occurrence를 encode)

=> 그래서! knowledge embeddings에 tag embeddings를 추가하는 것은 효과적이고 실험을 통해 증명도 해 보았다!!!

 

 

main contribution

1. randomly initailize하기 보다는 다른 source들로부터 다양한 의미있는 임베딩을 통합한다. 그리고 이러한 sparse한 경우에도 추천이 잘 되는 임베딩으로 GAN-based model에 적용!

2. 좋은 성능을 보여주었고, 다양한 의미있는 임베딩의 통합의 필요성을 보여줌

 

Solution

A. The Framework

- 다른 source들로부터 다양한 임베딩을 합침

- user/movie representations를 generator와 discriminator에 feed

- top-N movie recommendation 추출

 

phase1.

Knowledge Embedding(ke)

  • movie's feature embeddings 만들기 위해 KG의 knowledge 불러옴
    • entity embedding(ee)
      • 영화의 제목을 지칭
    • context embedding(ce)
      • 영화 entity 노드의 주변 노드는 영화의 attribute라 부름(directors, actors, genres)
      • 영화의 context embedding(ce)은 attribute embedding의 weighted sum
    • ee + ce = ke(knowledge embedding)
  • user's feature embeddings
    • user의 favorite movies의 knowledge embeddings의 평균

Tag Embedding(te)

  • dataset에서 모든 users/movies에 대한 tags도 있음(genres, directors, countries와 같은)
  • tag를 벡터화하기 위해 word2vec 사용
  • 모든 tag vectors의 평균

 

phase2.

  • user/movie representation을 generator G와 discriminator D로 보냄(IRGAN 기반으로 설계됨)
  • 일반적인 IRGAN에서는 G와 D를 랜덤으로 초기화하고, pre-training 시키는데 이게 너무 비용이 큼
  • 이 모델은 랜덤으로 들어오는 게 아니라 te, ke의 concat으로 들어오기 때문에 더 잘 나타낼 수 있음
  • training-set(observed user-movie interation)은 TP샘플을 라벨링 하기 위해 두 모델에 적용됨
  • output은 top-N movie recommendation
  • y_um은 candidate movie m이 user u에 의해 선호 될 것이라는 표현

 

B. Distilling Movie's Knowledge Embeddings

먼저, CN-DBpedia에서 관련 있는 knowledge를 추출해 현재 dataset에 포함해 sub-KG 구성

movie's KG는 heterogeneous information network(HIN)로 이루어짐

-> 영화 사이의 관계 파악 가능

-> 두 영화 사이에 많은 attribute node와 관계가 있다면 많이 유사하다는 뜻

 

contextual information(movie's attributes)을 사용하는 것은 의미론적/논리적 관계가 담겨 있음

그래서, 사용하는 것은 영화의 특성을 나타내는데 좋은 요소임

 

 

 

attribute관계를 담기 위해 Metapath2Vec을 사용 (당시 최신 논문에서 HIN embedding에 성능이 좋았다고 함)

 

영화에 해당하는 attribute 하나의 임베딩 값
context embedding의 weighted sum
a: (0,1)   밸런스 맞춤

 

C. Learning Optimal Representations by GAN-based Models

generator와 discriminator가 training을 통해 최적의 value 찾아냄

Generator G는 조건부 확률에 따라 candidate pool에서 가장 좋아할 것 같은 영화 generate

Discriminator D는 확률에 따라 진짜 관련 있는 user-movie 쌍 분별해 냄(binary classifier)

 

G와 D는 계속 경쟁함

G는 D를 혼란스럽게 할 만큼 그럴듯하게 보이기, D는 G가 진짜인지 가짜인지 분별해내기

global objective
D의 score function에 sigmoid 씌워서 조건부 확률로

discriminator's objective

  • optimal P(m|u,r)를 찾아내서 log-likelihood를 최대화

D

generator's objective

  • P_theta를 P_true라는 기존 조건부 확률에 fit하게 만들기
  • minimization은 gradient descent로 해결할 수 없어서 policy gradient 사용

G
G의 score function

 

 

score function

  • 처음엔 phase 1에서 나온 값을 적용
  • 트레이닝 끝엔 optimal e_u, e_m
  • user가 movie를 선택할 수 있는 기회를 정량화 시킨 수식

 

 

 

Experiment Settings

1) Dataset

  • Douban
    • movies: 42000
    • users: 5000
    • movie/user interaction(rating scores)
    • movie/user tags: 89909
  • CN-DBpedia
    • attributes of movies

2) Sample Division

  • user/movie representations이 KG와 tag 기반으로 하기 때문에, interation을 가지고 할 때의 cold start 문제 해결 가능
  • 특정 비율에 따라 랜덤하게 나눔
    • training set(observed pairs)
    • test set(unobserved pairs)

3) Evaluation Metrics

  • top-N recommendation 평가를 위해 3개의 metrics 사용
    • Precision
    • Average Precision
    • Normalized Discounted Cumulative Gain

4) Baselines

  • COS
  • NFM
  • NCF
  • IRGAN
  • KGAN

 

Experiment Results

Discussion

  1. user/movie의 knowledge embedding & tag embedding의 뛰어난 성능(observed user/movie interaction보다)
    1. cold start 문제 완화시킴
  2. KGAN보다 우세한 점
    1. tag embeddings을 사용함으로써 더 많은 정보를 공급 받아 더 잘 표현 가능
    2. r(sparsity)이 작을때 차이를 더 잘 나타냄
  3. IRGAN은 randomly initialize하기 때문에 optimal과는 거리가 멀다

 

+++

미분이 불가능한 문제를 미분이 가능하도록 풀기 위해 GAN을 사용

(GAN-loss 가지고 다님)

반응형

댓글