[U Stage] Day18_딥러닝장점,MLP,AE

윰진·2022년 10월 14일
0

NaverAIBoostCamp정리

목록 보기
15/30

6강 Recommender System with Deep Learning 1

가장 대표적인 딥러닝 모델들을 추천 시스템에 적용한 논문을 살펴보자.

  • 어떤 특징이 추천 시스템에 활용되는지 고민해보기

GOAL

  • Multi Neural Perceptron 과 AutoEncoder 기반 추천 시스템 모델 소개

MLP 기반 추천 시스템 모델 및 논문 소개

  • Neural Collaborative Filtering (NCF)
  • Neural Matrix Factorization(NMF)
    • NCF 와 Matrix Factorization(MF) 통합
  • Youtube Recommendation System 논문 리뷰
    • MLP 기반 추천 시스템 모델 활용

AutoEncoder 기반 추천 시스템 모델 소개

  • AutoRec 과 DAE 를 사용한 Collaborative Denoising Auto-Encoders(CDAE)

추천 시스템과 딥러닝

딥러닝은 두 가지 문제로 추천 시스템에 적용되기 어렵다.

  • 월등히 좋은 성능을 내지 않는다.
  • 모델 서빙 latency 가 중요하기 때문에 실제로 복잡한 모델을 사용하기는 어렵다.

그렇다면

  • 왜 딥러닝을 사용하는지
  • 딥러닝을 통해 추천 시스템을 어떻게 고도화할 수 있는지

살펴보자.

장점 : Non-Linear Transformation , Representation Learning , Sequence Modeling , Flexibility

story embedding layer 와 convolution layer 가 결합되어 복잡한 feature 를 적절한 representation 을 표현한다는 장점이 있다.

Non-Linear Transformation

Matrix Factorization 등에서 사용되는 선형 결합이 가지는 문제점

  • 모델을 너무 단순하게 만든다.
  • 모델이 가지는 표현력에 한계를 둔다.
    DNN을 사용했을 때 이점
    전통 추천 모델이 표현할 수 없는 복잡한 user-item interaction pattern 학습

Representation

데이터로부터 feature representation 을 학습하기 때문에, 직접 feature design 을 하지 않아도 된다.

  • 텍스트, 이미지, 오디오 등 다양한 종류의 정보를 사용할 수 있다.

Sequence Modeling

  • RNN, CNN, Transformer 같은 모델을 활용하여 sequential modeling task 에 성공적으로 적용된다.
    • user / item 의 시간에 대한 정보를 학습

Flexibility

다양한 DL 프레임워크를 통해 효율적인 서빙이 가능하다.

Recommender System with MLP

여러 개의 node 로 구성된 layer 를 순차적으로 쌓은 feed-forward neural network 를 이용하면 Deep Learning 이 가진 가장 기본적인 non-linear model 을 풀 수 있다.

Neural Collaborative Filtering

Neural Collaborative Filtering 논문 - MF 한계 지적, 신경망 기반 구조 사용

Matrix Factorization

Matrix factorization 은 user 와 item embedding 의 선형 조합(linear combinartion) 을 구한다.

rui=puTqi{r_{u_i} = p_u^T\cdot q_i}

  • user 와 item 사이의 embedding 을 구해 선형 연산 ( dot product ) 를 한다.
    {\rightarrow} 복잡한 관계를 표현하는 데에 한계가 있다.

한계점

예를 들어 기존 user-item matrix 로 표현된 user latent space 가 있다고 하자.
이 때, 새로운 user 4가 입력으로 주어졌을 때, user 4 는 user 1 과 가깝게 놓인다.
그러면, user 4 와 두 번째로 유사한 user 는 user 3 임에도 불구하고 user 2 와 더 가까워진다. 모순

  • 차원을 늘리는 방법으로 해결할 수 없을까요?
    • 차원을 확장해나가면 overfitting 의 위험이 있다.

모델 구성

  • Input Layer
    • one-hot encoding 된 user(item) vector : vu,vi{v_u , v_i}
  • Embedding Layer
    • user latent vector ( embedding matrix ) 를 통해 각각의 user 와 item 이 dense 한 형태의 embedding 으로 표현된다.
  • Neural CF Layers
    • FFNN 형태로 x 개의 layer 가 쌓인다.
  • Output Layer
    user 와 item 사이의 관련도를 추론
    • activation function 으로 logistic , probit 함수를 사용하여 output 값을 [0,1]로 제한

최종 모델

General Matrix Factorization 과 MLP 를 ensemble 하여 사용

  • GMF 와 MLP 가 서로 다른 embedding layer 를 사용한 것이 특징
    • 두 값을 concatenation 하여 sigmoid function 을 이용해 y^u,i{\hat y_{u,i}} 값 계산

결과

Matrix Factorization 의 한계를 지적하고 Deep Learning Model 을 활용하여 개선을 시도한 점에서 의미가 있다.

YouTube Recommendation

Deep Neural Networks for YouTube Recommendations

  • 읽어보길 추천해요 !
    • Candidate Generation Deep Learning 기반의 2단계 추천을 처음으로 제안
    • Candidate Generation 모델을 가지고 어떻게 서빙해야 현업에서 사용할 수 있을지까지 제시
    • Candidate Generation 기본적인 CF 아이디어 활용 + user_id 외 다양한 feature 들을 사용하여 더 정확한 Top N 아이템 생성
    • Candidate Generation 아이템의 최신성을 반영하기 위해 Example Age 사용
    • Ranking logistic regression 이나 Tree model 보다 뛰어난 성능
      {\rightarrow} 다양한 feature 들을 사용하여 마지막 layer 에서 concat , MLP layer 로 예측
    • Ranking Expected Watch Time 을 예측

도전 과제 : Scale, Freshness , Noise

  • Scale
    많은 user 와 item 이 있지만 computing power 는 제한적이기 때문에 효율적인 서빙, 학습이 중요
  • Freshness
    잘 학습된 컨텐츠와 새로 업로드된 컨텐츠를 실시간으로 적절히 조합해야 한다.
    - 과거의 인기 동영상만 계속 추천되고 새로운 동영상은 추천되지 않으면 안된다.
  • Noise
    높은 Sparsity, 다양한 외부 요인으로 유저의 행동을 예측하기 어렵다. {\rightarrow} noise 가 높은 상황에서도 잘 동작해야한다.
    {\rightarrow} Implicit Feedback, 낮은 품질의 메타데이터를 잘 활용해야 한다.
    - 리뷰, 좋아요 같은 explicit feedback 과 함께 클릭 수 , 시청 시간 같은 explicit feedback 도 활용해야 함

전체 구조 : Candidate Generation, Ranking

추천 시스템이 추구하는 목표를 두 가지로 나누어 구성

  • Candidate Generation
    High Recall ( 유저가 선호하는 아이템 대비 추천 아이템 ) 을 목표
    주어진 사용자에 대해 Top N 추천 아이템 생성
    - 수백 개의 아이템을 추천
  • Ranking
    유저, 비디어 피쳐를 더 풍부하게 사용하여 스코어를 구하고 최종 추천 리스트 제공
    - 수십 개의 아이템 추천

Candidate Generation - 문제정의


문제점
주어진 유저와 수백만 개의 비디오에 대해 연산이 필요하다.
{\rightarrow} Watch Vector and Search Vector 를 이용

Candidate Generation - 모델

각 user 의 행동 벡터( watch, search )들을 embedding 해서 평균을 낸 watch vector 와 search vector 로 예측한다.

  • 마지막 검색이 너무 큰 힘을 갖지 않도록 평균을 구함

Demographic & Geographic features
'Example Age' feature
모델이 과거 데이터 위주로 편향되어 학습되지 않도록 시청 로그가 학습 시점으로부터 얼마나 경과되었는지에 대한 정보를 피쳐로 표현한다.

  • Bootstraping 현상 방지 및 Freshness 제고

1 ) 다양한 feature vector 들을 한 번에 concatenate
2 ) n 개의 dense layer(Feed Forward Neural Networ) 를 거쳐 User Vector 생성
3 ) 최종 output layer 는 비디오를 분류하는 softmax function

  • 고양이에 관련된 비디오를 많이 본다면 고양이 관련 영상이 추천

Candidate Generation - Serving

수백만 개의 비디오 중 수백 개의 비디오를 추출하는 모델을 어떻게 서빙할까 ?
Challenge
유저를 input 으로 하여 상위 N 개 비디오를 추출한다.

  • 수백만 개의 비디오에 대해 모두 softmax probability 를 계산하여 prob 이 높은 비디오 N 개를 추출한다.
    {\rightarrow} 주어진 수백만 개의 벡터와 모두 내적해야 한다.
    {\rightarrow} 시간이 오래 걸려 실시간 서빙이 어렵다.

Suppose
Annoy, Faiss 같은 주어진 vector 와 가장 유사한 것을 찾는 ANN 라이브러리를 이용해 빠르게 서빙한다.

  • 정확한 softmax 값을 계산하는 것이 아닌 최대한 유사한 item vector 를 찾는 것

Ranking - 문제 정의

user , item , context 에 대해 어떤 item 이 주어졌을 때, 클릭할 확률을 구하는 문제
{\rightarrow} Candidate Generatioon 단계에서 생성한 비디오 후보들을 input 으로 하여 최종 추천될 비디오들의 순위를 매기는 문제

  • Logistic 회귀를 사용하는 기본적인 방법을 사용한다.
    • 딥러닝 모델로 user, video feature 들을 풍부하게 사용하여 정확한 랭킹 스코어를 구한다.
  • weighted logistic : loss function 에 시청 시간을 가중치로 한 값을 반영한다.

Ranking - 모델

input 으로 user actions feature 사용

  • user 가 특정 채널에서 얼마나 많은 영상을 봤는지
  • user 가 특정 토픽의 동영상을 본지 얼마나 지났는ㄴ지
  • 영상의 과거 시청 여부 등을 입력

많은 Feature Selection / Engineering 필요
서비스에 맞는 feature 를 잘 찾아서 ranking model 을 구성하는 것이 중요하다.

input feature 들이 마지막 layer 에서 합쳐지고, network 를 통과하면
비디오가 실제로 시청될 확률로 매핑된다. p(watch)[0,1]{p(watch) \in [0,1] }

Loss function 으로는 weighted cross-entropy loss 를 사용하여 비디오 시청 시간으로 가중치를 준다.

  • 클릭은 했지만 시청시간이 적은 낚시성 / 광고성 콘텐츠의 학습 반영률을 낮춘다.

Recommender System With AE

Input Data 를 똑같이 복원한 Output data 를 생성 ( unsupervised learning )

AutoEncoder ( AE )

주어진 Input 과 추론된 reconstruct Input 과의 차이를 최대한 줄이는 방법을 사용한다.

  • 중간 hidden layer 를 input data 의 feature representation 으로 활용
    • Anomaly Detection, Representation Learning , Image Denoising Task
  • Encoder : Compressed representation
  • Decoder : Reconstructed input

Denoising AutoEncoder

입력 데이터에 random noise 나 dropout 을 추가하여 학습

  • noise 를 더 잘 복원할 수 있는 robust 한 모델이 학습되어 성능이 향상됨
  • noise 가 없는 original input 으로 복원될 수 있도록 학습을 구성
    {\rightarrow} overfitting 위험을 줄여 generalizatoin 성능을 높임

AutoRec : Autoencoders Meet Collaborative Filtering

  • user 와 item vector 를 더 잘 표현하였고 복잡도는 낮춘 논문

AutoRec - Idea

Rating Vector 가 AutoEncoder 의 입력과 출력

  • user 또는 item vector 를 저차원의 latent feature 로 나타내 이것으로 평점 예측
  • Autoencoder 의 representation learning 을 user 와 item 에 적용
    반면, MF : linear, low-order interaction 으로 인해 복잡한 interaction 표현에 한계가 있다.

AutoRec - 학습

RMSE : 기존 rating 과 reconstructed rating 의 차이를 최소화하는 방향
관측된 데이터에 대해서만 역전파 및 파라미터 업데이트

복원 data 인 h(r;θ){h(r;\theta)} 와 실제 평점의 차이를 최소화한다.

  • V,W,μ,b{V, W, \mu, b} 학습

minθrSrh(r;θ)22{min_\theta \sum_{r \in S}||r - h(r;\theta)||^2_2}
h(r;θ)=f(Wg(Vr+μ+b){h(r;\theta) = f( W \cdot g(V_r + \mu + b ) }

  • h(r;θ){h(r;\theta)} : recondstructed rating
    • h{h} : encoder function
  • W{W} : decoder matrix
  • g(Vr+μ){g(V_r + \mu)} : 중간 representation
  • μ,b{\mu, b} : bias

AutoRec - 결과

hidden unit 의 개수가 많아질수록 RMSE 가 감소

  • hidden unit 의 개수 : 중간 node 의 개수 ( 몇 차원으로 embedding 할지 )
    Denoising Auto Encoder ( 노이즈 제거 ), Variational Auto Encoder ( 노이즈 추가 ) 같은 연구들로 이어짐

CDAE

  • Collaborative Denoising Auto-Encoders for Top-N Recommender Systems
    Denoising AutoEncoder 를 CF 에 적용하여 top-N 개 추천

CDAE - 특징

AutoRec : Rating Prediction

  • RMSE : 얼마나 잘 복원했는지 평가
    CDAE : Ranking 을 통해 Top-N 추천 제공
  • NDCG : Top-N 추천을 얼마나 잘 제공했는지 평가

개별 유저에 대해 아이템의 preference를 학습

  • 유저-아이템 상호 작용 정보를 0 또는 1로 바꿔서 학습 데이터로 사용

CDAE - 문제 정의 및 모델

AutoRec 과 다르게 DAE 를 사용하여 noise 추가

  • (1q){(1-q)} 의 확률로 기존 평가값 yu{y_u}σ{\sigma} 가 곱해짐

개별 유저에 대해 Vu{V_u} 를 학습 ( Collaborative )

  • user 에 따른 특징을 해당 parameter 가 학습하고 Top N 추천에 사용
    • {\rightarrow} 각 user 별 특징을 parameter 로 학습

Encoder : latent representation zu{z_u}
Decoder : regenerate y^ui{\hat y_{ui}}

AutoRec 과 차이점

  • DAE 를 활용하여 Input 에 noise 추가
  • 각 user 에 대한 parameter 를 추가하여 유저 별 특징을 학습

CDAE - 결과

대체적으로 다른 top-N 추천 모델에 비해 더 높은 MAP 과 Recall

★Auto Encoder 를 활용한 모델이 어떻게 user-item embedding vector 학습에 활용되는지를 배우자!★

이 글은 커넥트 재단 Naver AI Boost Camp 교육자료를 참고했습니다.

0개의 댓글