[Survey & Code] Deep Learning based Recommender Systems (딥러닝 기반 추천시스템)

11

Recommender_System

목록 보기
3/22
post-thumbnail

작성자: 박지은, 이성범

1. 등장 배경

기존 모델의 문제점

  • 추천시스템에서 기존에 많이 쓰이던 Matrix Factorization은 유저-아이템 상호작용을 내적의 형태로 표현
  • latent facotrs 간의 곱셈을 선형으로 결합하는 내적은 유저-아이템 상호작용 데이터의 복잡한 구조를 알아내기 어렵게 함
  • 새로운 유저가 나타나면 이를 저차원 공간에서 표현하기 어려움

딥러닝 기반 추천시스템

  • 비선형 변환 가능: 더 복잡한 유저-아이템 상호작용 파악 가능
  • 더 나은 representation learning: hand-craft feature design 줄이고 다차원적 정보 처리 가능
  • 시퀀스 모델링: RNN, CNN을 통하여 성능 향상
  • 유연성: 딥러닝의 학습 환경 활용 가능

2. MLP-based Factorization

1) Neural Collaborative Filtering

기존 Matrix Factorization의 문제점

  • 내적 등 선형 모델은 유저와 아이템 간의 복잡한 관계를 표현하는 데 한계가 있음
  • 유저 2와 3이 제일 비슷하고, 유저 1과 3이 제일 덜 비슷함
  • 새로운 유저 4를 기하학적으로 표현할 때, 유저 1과 제일 가깝게 하는 동시에 유저 2와 가장 멀게 하는 벡터를 찾을 수가 없음

Generalized Matrix Factorization (GMF)

Model Overview


1. Input Layer
input으로 유저와 아이템의 one-hot vector 넣음

2. Embedding Layer
input 단계의 sparse 벡터를 dense 벡터로 매핑


3. Element-wise Product
k차원의 feature에 대응하는 값끼리 가중합하여 원하는 특징에 따라 가중치를 조정 가능하게 일반화
만약 이 가중치가 동일한 값, 1이 되면 기존의 Matrix Factorization과 같은 모습이 됨

4. Passing Fully Connected Layer
가중치를 학습하여 유저-아이템의 행렬 값 예측

GMF는 element-wise product하여 선형구조를 가지게 됨

Multilayer Perceptron (MLP)

Model Overview

MLP는 concatenate 되어 비선형의 활성화함수를 거치기 때문에 비선형구조를 가지게 됨

Neural Collaborative Filtering

GMF + MLP

의의

  • 유저-아이템 상호작용을 표현하기 위해 Matrix Factorization의 선형성과 Multilayer Perceptron의 비선형성을 결합한 Neural Matrix Factorization
  • 선형 공간에 기반한 기존 모델들이 갖는 한계를 Deep Neural Network를 도입하여 해결

2) Deep Neural Networks for YouTube Recommendation

기존 YouTube 추천시스템의 문제점

  1. Scale: 엄청난 양의 데이터 & 제한된 컴퓨팅 파워
  2. Freshness: 새로운 컨텐츠의 빠른 적용
  3. Noise: 낮은 질의 메타 데이터, implicit feedback

Model Overview

① Candidate Generation

Model Overview

Recommendation as Classification

  • Extreme Multiclass Classification 문제로 정의
  • user, context가 주어지면 특정 시간에 이 영상을 볼 확률을 구함

    (v: context embedding, u: user embedding)
    => 유저 정보를 기반으로 한 user embedding을 하고, softmax에서 잘 분류되도록 학습

1. Embedding

  • Video Embedding & Search Token Embedding
  • 전체 모델의 Backpropagation을 통해 임베딩도 함께 학습

2. Combining

  • 고정된 크기의 input으로 바꿈
  • 여러 영상의 embedding vector의 average

3. Additional Features

  • 다른 features 옆에 concatenate

4. Fully Connected ReLU Stack

5. Softmax Prediction

  • 어떤 영상을 볼 것으로 예상되는지 영상별 가중치가 output으로 나옴
  • Negative Sampling

6. Serving

  • 요청이 왔을 때 상위 N개의 영상 추천
  • Dot-product space에서 Nearest Neighbor Index를 뽑아서 가장 가까운 아이템 찾음

More Features

Example Age

  • 히스토리 데이터를 기반으로 학습하면 오래된 아이템이 더 많이 추천됨
  • freshness의 중요성

그 외 features

  • 모든 영상 시청 이력을 확인해야 편향이 생기지 않음
  • 학습에 사용할 유저별 영상의 수 고정
  • 새로운 검색 쿼리에 즉시 추천 엔진을 반영하지 않음
  • 비대칭적 감상 패턴을 적용하여 학습

② Ranking Network


Embedding

Feature Engineering

  • feature 분류
    • impression vs. query
    • univalent vs. multivalent
  • feature가 매우 많아서 미리 가공
  • 딥러닝이지만 엔지니어가 직접 가공

Embedding Categorical Features

  • unique ID space ("vocabulary") 따로 임베딩
  • 이 중에 impression 기준으로 Top N 영상 및 검색 이력 임베딩
  • vocabulary에 없으면 zero embedding

Normalizing Continuous Features

  • 값 x를 [0, 1)에 들어오도록 스케일링
  • 𝑥 ̃, 𝑥 ̃^2, √(𝑥 ̃ )도 네트워크에 넣음

Modeling Expected Watch Time

  • 추천한 영상의 감상 시간 예측
  • 감상 시간은 안 봤으면 0, 봤으면 본 시간을 값으로 넣음
  • Weighted Logistic Regression: 감상한 영상을 감상 시간으로 가중치 둠

의의

  • 기존의 방법인 Matrix Factorization보다 성능 향상
  • 딥러닝으로만 feature를 학습하기는 어렵기 때문에 hand-written feature 포함
  • freshness, 사용자의 과거 행동 패턴을 잘 설명하는 feature 중요
  • 감상 시간별로 가중치를 두어야 함

3. RNN-based Model

  • 순차적 데이터 처리에 유용한 RNN
  • 상호작용의 일시적 역학, 유저 행동의 순차적 패턴, 순차적 신호를 가진 side information 처리

1) Session-based Recommendations with Recurrent Neural Networks

기존 Session-based의 어려움

  • 유저가 로그인하지 않은 환경에서는 latent vector 사용이 어려움
  • session이나 cookie mechanism이 있지만 데이터가 매우 적음
    => 유저의 순서 정보를 이용하여 추천시스템에 적용할 수 있는 방법을 RNN을 통해 제안
  • 어떤 아이템을 경험했는가? + 가장 최근에 어떤 아이템을 클릭했는가?

Gated Recurrent Units (GRU)


1. Reset Gate: 과거의 정보 적당히 리셋

2. Update Gate: LSTM의 forget gate + input gate, 과거와 현재 정보의 최신화 비율 결정

3. Candidate: 현 시점의 정보 후보군 계산, 과거 은닉층의 정보를 그대로 이용하지 않고 리셋 게이트의 결과를 곱해서 이용

4. Hidden State 계산: update gate결과와 candidate 결과를 결합하여 현시점의 은닉층 계산

Model Overview

1. Input Layer
input으로 Actual State of Session 넣음

  • Actual Event의 아이템: 1-of-N encoding vector
  • 세션 안의 이벤트: weighted sum vector (더 일찍 일어난 사건은 discounted)

2. Embedding Layer
RNN 특성상 long term에 약하기 때문에 안정성을 위해 정규화

3. GRU Layer
아이템에 대한 선호도 예측하는 학습

4. Output Layer
해당 세션의 다음 이벤트 아이템 출력

Session-parallel Mini-batch

  • 세션 병렬 방식의 Mini-batch로 input 넣음
  • 다음 세션의 정보가 들어올 때 hidden state 초기화

Sampling the Output

  • output을 샘플링해서 하위 집합만 연산
  • Negative Sampling도 함께 시행
  • 둘 다 popularity-based sampling 진행

Pairwise Ranking

  • positive & negative 쌍으로 비교
  • loss를 통해 positive item의 rank가 negative item의 rank보다 낮게 학습
  • BPR & TOP1 사용

의의

  • GRU라는 RNN을 추천시스템에 적용
  • session-parallel mini-batch와 ranking loss function을 이용한 session-based 추천시스템

2) Neural Attentive Session-based Recommendation

기존 RNN-based Model의 문제점

  • 최근의 순차적 정보만 고려하면 유저의 주요 목적을 놓치게 됨
  • 유저의 순차적 행동 & 현재 세션에서의 주요 목적을 함께 고려

Model Overview

  • 시점 t의 attention signal에 따라 고차원의 hidden representation으로 인코딩

Global Encoder

  • RNN을 통과하고 마지막으로 나오는 hidden state가 global information

Local Encoder

Item-level Attention Mechanism

  • 디코더가 입력 시퀀스의 다른 부분들을 다양하게 고르고 선형결합할 수 있도록 함

NARM

의의

  • 현재 상태의 유저의 순차적 행동과 주요 목적을 함께 고려 (local information + global information)
  • bi-linear scheme를 통해 연산량을 줄이고 성능 향상
  • attention mechanism 적용
  • 긴 세션에서 더 좋은 성능

3. AE-based Model


AutoEnocder기반의 추천시스템 모델을 설명하기에 앞서 간단하게 AutoEnocder의 개념에 대해 설명하고자 한다. AutoEnocder란 그림과 같이 Input과 output이 똑같은 형태의 모델을 말한다. AutoEnocder에서 Econder는 코드를 압축하는 역할을 하고 Decoder는 압축된 코드를 해석하는 역할을 한다.

AutoEnocder는 4가지 키워드로 설명할 수 있다. 바로 Unsupervised Learning, Manifold Learning, Generative Model Learning, Maximum Likelihood Density Estimation 이다.
Unsupervised Learning인 이유는 AutoEnocder가 input을 받아 똑 같은 형태의 input을 복원하는 식으로 학습이 진행되는데 여기서 오직 데이터를 input Data만을 사용하기 때문이다.
Manifold Learning인 이유는 Encoder가 Latent Space로 차원을 축소하는 역할을 수행하기 때문이다.
Generative Model Learning인 이유는 Decoder가 input Data로 복원하는 역할을 수행하며 이것이 마치 데이터를 생성하는 것과 유사하기 때문이다.
Maximum Likelihood Density Estimation인 이유는 DNN의 학습 방법이 MLE와 동일한데 AutoEnocder는 이러한 DNN의 일종이기 때문이다.

Encoder가 차원을 축소하는 역할을 하기 때문에 이 축소된 차원에서 Latent Space를 찾을 수 있다. 그리고 Decoder가 input Data로 복원을 해주는데 이러한 형식이 마치 추천시스템의 Latent Model 과 유사하다. 이러한 특징 때문에 AutoEncoder를 추천시스템이 활용할 수 있다.

AutoEnocder의 차원 축소와 복구 과정을 이용하여 컨텐츠 추천이 가능하다. 예를 들어서 input으로 사용자의 컨텐츠 Matrix가 들어왔다고 가정한다면 AutoEnocder의 Encoder와 Decoder를 거쳐서 복원된 사용자의 컨텐츠 Metrix를 활용하여 컨텐츠를 추천해줄 수 있다.
AutoEnocder의 경우 비선형 활성화 함수를 활용하여 사용자 간의 관계를 모델링하기 때문에 성능이 좋다. 그리고 단순한 Matrix Factorization에 비하여 Sparse matrix(0이 많이 포함된)에서 좋은 성능을 보인다. 또한 평점 추천, 순위 추천, 클릭 여부, 시청 여부 등 모든 곳에 활용이 가능하다.

그렇다면 AutoEnocder의 발전된 형태인 VAE, DAE 등의 모델들도 추천시스템에 활용할 수 있을 까?

물론 AutoEnocder의 발전된 형태인 VAE, DAE 등의 모델들을 사용할 수 있으며 그 성능 또한 기본 AutoEnocder보다 우수하다고 한다.

Denoising AutoEncoder는 noise가 추가된 input data를 noise가 없는 input data로 복원시키는 방식의 모델이다. Denoising AutoEncoder 또한 복원된 matrix를 활용하여 추천시스템으로 사용 가능하다. 일부 데이터에 noise가 들어가기 때문에 조금 더 강건한 형태의 모델을 얻을 수 있다. 그리고 실제로 기본 AE보다 더 우수한 성능을 보인다고 한다.

Variational AutoEncoder는 축소된 차원으로 Z를 샘플링하여 Z를 정규 분포에 가깝게 만드는 방식의 모델이다. Variational AutoEncoder 또한 복원된 matrix를 활용하여 추천시스템으로 사용 가능하다. Latent Space가 정규 분포에 가깝기 때문에 다루기 쉬워지고 컨트롤할 수 있으며, Sparse한 부분이 줄어들어 조금 더 유용한 Space를 얻을 수 있다. 그리고 실제로 기본 AE보다 더 우수한 성능을 보인다고 한다.

AutoEncoder는 축소된 차원인 Latent Space를 활용하여 추천이 가능하다. 전처리 된 컨테츠 matrix를 축소하여 축소된 차원에서 Cosine similarity로 거리를 측정하여 컨텐츠 간의 유사도를 구해서 이 유사도를 기준으로 추천을 할 수 있다.

AutoEncoder는 Matrix completion을 활용하여 추천이 가능하다. 사용자의 컨텐츠 시청 정보를 복원 시켜서 복원된 Matrix를 바탕으로 사용자 마다 컨텐츠 시청 확률을 출력하여 높은 순서대로 컨텐츠 추천이 가능하다.

이 밖에도 사용자의 평점, 영화의 다양한 feature 등 다양한 방식으로 활용을 할 수 있다.

추천 시스템 모델들은 각 모델마다 장단점이 존재하기 때문에 1개만 활용해서는 안된다. 예를 들어서 cold start 문제가 발생한다면 컨텐츠 기반의 모델이 더 우수할 것이고 어떠한 상황에서는 협업 필터링 기반의 모델이 더 우수할 수도 있다. 또한 여러 모델을 앙상블 하여서 추천 시스템 모델을 만들 수도 있다, 이렇듯 추천 시스템 모델들은 주어진 상황에 맞추어 여러 모델을 구성하여 활용해야 할 것이다.

알고리즘 및 모델 구현코드

https://github.com/SeongBeomLEE/Tobigs_Recommendation_System_Seminar/blob/main/Week2_Recommendation_Seminar_Code.ipynb

참고자료

https://developers.google.com/machine-learning/recommendation?hl=ko
https://tkdguq05.github.io/2021/03/07/apriori-FP/
https://dnddnjs.github.io/recomm/2019/08/15/recommendation_system_basics/
https://leehyejin91.github.io/post-ncf/
https://www.youtube.com/watch?v=1fhNX_JFaow
https://www.youtube.com/watch?v=h6vePourB7E&list=LL&index=1
https://yjjo.tistory.com/18
Zhang, S., Yao, L., Sun, A., & Tay, Y. (2017). Deep Learning based Recommender System: A Survey and New Perspectives. ACM.
He, X., Liao, L., Zhang, H., Nie, L., Hu, X., & Chua, T. (2017). Neural Collaborative Filtering. WWW.
Cheng, H., Koc, L., Harmsen, J., Shaked, T., Chandra, T., Aradhye, H., … Shah, H. (2016). Wide & Deep Learning for Recommender Systems. Google Inc.
Covington, P., Adams, J., & Sargin, E. (2016). Deep Neural Networks for YouTube Recommendations. RecSys.
Hidasi, B., Karatzoglou, A., Baltrunas, L., Tikk, D. (2016). Session-based Recommendations with Recurrent Neural Networks. ICLR.
Li, J., Ren, P., Chen, Z., Ren, Z., Lain, T., Ma, J. (2017). Neural Attentive Session-based Recommendation. ACM.

profile
2021 투빅스 추천시스템 세미나입니다.

7개의 댓글

comment-user-thumbnail
2021년 5월 4일
  1. NCF = GMF + NLP 로서 모델의 인풋은 유저와 아이템의 ID. one-hotencoding이다.
    GMF: 유저와 아이템을 각각 임베딩해서 이를 element wise product한다.
    NLP: 유저와 아이템을 각각 임베딩해서 이를 concat하고 몇개의 fc레이어를 거쳐 아웃풋을 낸다.
    GMF + NLP를 concat하고 최종 예측 rating을 도출한다.

  2. Deep Neural Networks for YouTube Recommendation
    user, context가 주어지면 특정 시간에 이 영상을 볼 확률을 구함
    1) candidate generation: 유사도가 높은 유저 (millions)
    2) rankig: 추가 피쳐 더해서 우선 순위를 매긴 추천 영상 리스트 생성

  3. Session-based Recommendations with Recurrent Neural Networks
    input을 해당 세션의 actual stae, output을 해당 세션의 다음 이벤트 항목으로 하는 GRU모델을 사용하여 유저 행동 패턴을 예측했다.

  4. Neural Attentive Session-based Recommendation
    GRU를 사용해 예측할 때, 최근의 순차적 정보만 고려하면 유저의 주요 목적을 놓치게 되므로 유저의 순차적 행동 & 현재 세션에서의 주요 목적을 함께 고려한 모델이다.
    NARM모델은 인코더와 디코더로 이루어지며, 인코더는 local encoder와 global encoder, Item-level Attention Mechanism로 이루어진다. 이를 통해 lacal information과 global information 고르게 고려한다. 이는 긴 세션에서 보다 높은 성능을 낼 수 있다.

  5. AE-based Model
    유저-아이템 행렬을 입력으로 받아 이를 인코딩하고 디코딩하는 대칭적인 레이어를 갖는 오토인코더 모델에 넣어 복원한다.
    같은 메커니즘으로 Denoising auto encoder, VAE를 사용하여 구현 할 수 있으며, 성능이 더 우수하다.

이번 시간은 딥러닝 기반 추천 시스템을 톺아볼 수 있는 아주 유익한 시간이었다. 여러 모델이 있지만 사용하는 데이터의 특성에 맞는 모델을 선정해야 할 것이다. sparse matrix를 복원해야한다면 AE기반 알고리즘을 써보던가 순서를 고려해야한다면 NARM을 쓴다던가 하는 방식으로..!

답글 달기

[15기 김현지]

유저-아이템 상호작용 데이터의 복잡한 구조를 알아내기 어렵다는 것과 새로운 유저에 대한 정보를 표현하기 어렵다는 기존 모델들의 문제점을 해결할 수 있는 딥러닝 기반 추천시스템들을 살펴보았다. 딥러닝 기반의 추천시스템은 비선형 변환이 가능하여 유저-아이템간의 복잡한 상호작용을 파악할 수 있고, 다차원적인 정보처리가 가능하며 유연하다는 장점이 있다. 더불어 RNN와 CNN을 통해 시퀀스 모델링이 가능하다.

MLP-based Factorization

Neural Collaborative Filtering은 유저-아이템 간의 상호작용을 표현하는데 비선형성을 도입하여 보다 복잡한 관계를 표현할 수 있었다. 유튜브 추천에 있어 Deep Neural Networks를 활용하는 모델은 유저 정보를 토대로 유사도가 높은 후보를 생성하고, 추가 feature를 더하여 성능 개선 후 리스트를 생성하는 단계를 거친다. 특정시간에 특정 영상을 볼 확률을 구하여 후보를 생성했으며, feature를 추가하는 과정에서 엔지니어가 직접 feature를 가공하는 과정을 포함했다는 것과 감상 시간별로 가중치를 두어 추천한 영상의 감상 시간을 예측했다는 것이 인상적이다.

RNN-based Model

순차적 데이터 처리에 유용한 RNN을 사용하여 side information을 처리한다. Session-based Recommendation with Recurrent Neural Network에서는 GRU 레이어를 사용하여 다음에 볼 영상을 예측하였고, session-parallel mini-batch와 ranking loss function 등을 기존 session-based의 어려움을 해결하기 위한 여러 방법들이 시도되었다. Neural Attentive Session-based Recommendation 모델은 현재 상태의 유저의 순차적 행동과 주요 목적을 함께 고려하기 위해 Global encoder와 Local encoder의 두 개의 인코더로 구성되었고, 디코더가 입력 시퀀스의 다른 부분들을 다양하게 고르고 선형결합할 수 있도록 Attention Mechanism을 적용하였다.

AE-based Model

AutoEncoder의 차원 축소-복구 과정을 추천시스템에 활용하였다. AutoEncoder의 프로세스를 Latent Model과 유사하게 해석하여 추천시스템에 활용하고자 한 아이디어가 인상적이었다. AutoEncoder의 발전된 형태인 VAE와 DAE 등도 추천시스템으로 활용이 가능하며 기본 AE보다 더 좋은 성능을 보인다.

답글 달기
comment-user-thumbnail
2021년 5월 4일

[Deep Learning Based Recommender Systems(딥러닝 기반 추천 시스템)]
15기 류채은

  • Generalized Matrix Factorization: element-wise product하여 선형구조를 가짐

  • Multilayer Perceptron: 비선형 구조

  • Neuron Collaborative Filtering(GMF + MLP): 선형 공간에서 갖는 한계를 Deep Neural Network를 통해 해결했다

  • Deep Neural Networks for YouTube Recommendation: 요청이 왔을 때 상위 n개의 영상을 추천햊해주며 nearest neighbor index를 뽑아 가장 가까운 아이템을 찾는다.

  • Ranking Network: hand-written feature이 포함되며 감상 시간별로 가중치를 두어야 한다.

  • Rnn-based Model

 Session-based Recommendations with Recurrent Neural Networks
 GRU layer에서 아이템에 대한 선호도 예측하는 학습이 일어나고 성능이 향상된다.
 Neural Attentive Session-based Recommendation
 시점 t의 attention signal에 따라 고차원의 hidden representation으로 인코딩된다
.

  • AE- based Model:
     AutoEncoder:
     Unsupervised Learning
     Manifold Learning
     Generative Model Learning
     Maximum Likelihood Density Estimation
    전처리 된 컨테츠 matrix를 축소하여 축소된 차원에서 Cosine similarity로 거리를 측정하여 컨텐츠 간의 유사도를 구해서 이 유사도를 기준으로 추천을 할 수 있다.

■추천 시스템 모델은 단 하나만 이용하는 것이 아니라 여러 모델로 구성하여 활용하는 것이 적합하다.

답글 달기
comment-user-thumbnail
2021년 5월 4일

MLP-based Fatorization :

  • Neural Collaborative Filtering : 유저-아이템 상호작용을 내적의 형태로 표현한 Matrix Factorization의 문제점을 해결하기 위해 Embedding layer를 이용하여 유저와 아이템 각각의 latent vector를 통해 element-wise product, 및 비선형 변환을 통해 선형 결합에 기반한 기존 모델들이 갖는 한계를 해결하려고 하였다.
  • Deep Neural Networks for YouTube Recommendation : Video Embedding & Search Token Embedding 이외에도 geographic embedding & user info를 토대로 fully-connnected layer를 통해 N개의 후보군을 generation 해준다.

RNN-based Model :

  • Session-based Recommendations with Recurrent Neural Networks : 순차적 데이터에 유용한 GRU를 이용하여 기존 Session-based문제를 해결하려고 함. Actual Event의 아이템과 세션 안의 이벤트를 이용하여 해당 세션의 다음 이벤트 아이템을 예측하였고, Parallel 방식의 Mini-batch및 ranking loss function을 이용하여 기존 session-based문제를 해결하고자 하였다.
  • Neural Attentive Session-based Recommendation : 기존 RNN-based Model은 최근 순차적 정보만 고려하여 유저의 주요 목적을 놓치게 되는 문제점을 지니고 있었다. 이를 해결하기 위해 Global Encoder, Local Encoder를 이용하여 유저의 주요 목적 뿐만 아니라 순차적 행동도 고려하는 모델을 구성하였고 Attention mechanism을 이용하여 Encoding된 입력 시퀀스에 대하여 다양하게 선형 결합 할 수 있도록 하였다.

AE-based Model :

  • 데이터의 latent space를 잘 학습하는데 효과적인 AutoEncoder 구조는 추천시스템의 Latent Factor Model과 유사하여 이를 추천 시스템에도 활용해 보았다. 비선형 활성 함수를 통해 사용자 간의 관계를 고차원으로 모델링 하기 때문에 기존 Latent Factor Model보다 성능이 우수하며, Sparse matrix에서 좋은 성능을 보인다. 이뿐만 아니라 Noise를 포함하여 Robust한 Model를 구하기 위한 Denosing Auto Encoder, Latent vector를 원하는 분포로 학습되게끔 하는 Variational AutoEncoder 또한 좋은 성능을 보인다.
답글 달기

딥러닝 기반 추천시스템 소개

  • 비정형 feature 이용 가능
  • 비선형 함수 근사 가능
  • mlp, ae, cnn, rnn, dssm(deep structured semantic model), rbm(restricted boltzmann machines), nade(neural autoregressive distribution estimator), gan 등을 적용

Neural Collaborative Filtering

  • collaborative filtering의 user / item latent factor representation을 neural network의 임베딩으로 대체
  • 내적연산을 neural network의 연산으로 대체

Deep Neural Networks for YouTube Recommendation

  • Youtube 추천의 특수한 특징
    -- Scale : 많은 양의 영상
    -- Freshness : 신규 영상 수시 업로드, 최신 컨텐츠 추천필요
    -- Noise : explicit 선호 feedback보다 implicit 정보가 많음
  • Candidate Generation -> Ranking -> AB test 의 흐름을 따른다.
  • user의 watch / search history와 demographic 정보, 영상을 시청한 후 흐른 시간, 영상의 게시 시간 등을 feature로 이용

RNN-based Model

  • session based 정보에 rnn 계열 모델을 통해 다음 아이템 예측

Auto Encoder based Model

  • ae 모델을 추천에 활용

추천시스템은 각각의 장단점이 존재한다.

답글 달기
comment-user-thumbnail
2021년 5월 4일

[15기 장아연]

[1] Neural Collaborative Filtering
implicit feedback 바탕으로 user에게 item 추천하는 것이 목표. 기존의 모델은 Collaborative Filtering에 있어서 Matrix Factorization의 inner product를 사용하여 제한이 있음. 이를 Enbedding Layer를 이용해 해결함. GMF는 user와 item의 latent vector의 Element wise Product하고 Fully Connected Layer를 거쳐 선형구조를 가짐. MLP는 concatenate 후 non linear activation function의 Fully Connected Layer를 거쳐 비선형구조를 가짐. GMF + MLP를 통해 User-Item collaboration 표현함.

[2] Deep Neural Networks for YouTube Recommendation
주어진 user와 context를 통해 특정 시간에 해당 영상을 볼 확률을 구해 Classification으로 Recommend 하는 것이 목표. user 정보를 바탕으로 Enbedding하고 softmax를 통해 영상별로 가중치 제시함. Dot-product space 내에 가장 가까운 Neighbor Index를 골라 가장 가까운 아이템 보임.

[3] Session-based Recommendations with Recurrent Neural Networks
해당 세션 안의 이벤트, Actual Event의 아이템을 이용해 user의 다음 행동을 예측하는 것이 목표. RNN의 일종인 GRU를 사용해 추천시스템 구현. 과거/현재 정보의 최신화 비율과 현재의 정보 후보로 과거 정보 일부분을 결합해 현시점 계산.

[4] Neural Attentive Session-based Recommendation
유저의 시간에 따른 행동(local information) 뿐만 아니라 현재의 목적(global infomation)을 고려해 추천하는 것이 목표. NARM 모델의 Encoder의 Global/Local Encoder를 통해 global/local information을 구하고 Decoder부분의 Item-level Attention Mechanism를 통해 적절하게 선형 결합됨. 긴 세션에서 좋은 성능을 보임.

[5] AE-based Model
Input과 Output이 같은 Auto Encoder는 Encoder에서 차원을 축소해 Latent Space를 제시하고 Decoder에서 Input을 복원하며 Latent Model과 유사성을 보임. 또, non-linear activation function을 통해 user-item의 관계를 도출함. VAE, DAE, Latent Space,Matrix completion 등을 다양하게 활용가능함.

모델마다 각기 다른 장점과 단점이 존재하고 데이터의 특성과 목적에 따라서 그 성능/평가가 달라지기 때문에 여러 모델을 적재적소에 배치해 활용하는 능력이 요구됨.

1개의 답글