241113 TIL #540 AI Tech #73 Collaborative Filtering 심화

김춘복·1일 전
0

TIL : Today I Learned

목록 보기
542/543

Today I Learned

오늘은 lg cns 면접을 보고 남은 공부를 진행했다. 작년보단 확실히 잘 봤지만 결과는 나와봐야 알겠지.. 남은 면접도 잘 대비해서 후회하지 않게 보자!!


Collaborative Filtering 심화

User-free Model-based CF

  • cf 방식은 새로운 행이나 열이 추가되는 상황(cold start)에서 약하다.
    새로운 유저(or 아이템)가 등장하면 재학습이 필요하기 때문이다. 이는 실제 서비스단에서 큰 단점으로 작용한다.

  • 하지만 cf에서 user의 term을 제거한 user-free 모델은 새로운 사용자나 이력이 거의 없는 사용자에 대해 바로 inference가 가능하다.

  • 그리고 기존 cf에서 무시되는 sequential 시나리오에 대해 대응이 가능하다.

SLIM

Sparse Linear Methods for Top-N Recommender Systems (Ning and Karypis, 2011)

  • Memory-based와 Model-based 방식을 결합한 하이브리드 모델로 주로 top-N 추천에 사용된다. 희소한 유사도 행렬을 통해 빠른 추천 생성이 가능하다.

  • 목적 함수 : MSE에 L1+L2 reg를 포함하는 형태

    argminWRRWT22+λΩ2(W)+λΩ1(W)\arg\min_{W} \|R -RW^T\|^2_2 + \lambda\Omega_2(W) + \lambda'\Omega_1(W)
  • 유저-아이템 평점행렬 R을 입력으로 받아 아이템-아이템 유사도 행렬 W를 학습하고 이를 기반으로 추천점수를 RWTRW^T로 구한다.

FISM

Factored Item Similarity Models

  • Latent Factor Model에서 user term γu\gamma_u를 사용자 기존 이력에 기반한 aggregated item으로 대체한다.

  • 아이템-아이템 유사도 행렬을 두 개의 저차원 잠재 요인 행렬의 곱으로 분해한다.
    (특정 아이템의 예측 시 해당 아이템 자신의 값은 사용 x)

그 외

  • AutoRec
    유저 기반의 U-AutoRec은 연관 아이템의 nonlinear function mapping으로 유저 term 대체

  • Item2vec
    word2vec으로 item vector 얻어서 예측

  • Sequential Recommendation Models
    유저 ID 사용하지 않고 time-ordered sequence를 사용.
    user term은 RNN의 hidden states등으로 표현된다.


CF with Deep Learning

  • 유저-아이템 관계를 내적 대신에 DNN을 사용한다.
    내적은 linear한 방법이므로 nonlinearity를 부여하기 위해 MLP방식을 사용!

Autoencoder 기반 CF

  • R(sparse rating) -> encoder -> latent code -> decoder -> R'(dense rating)

  • rating prediction은 rating 값을, top-k 예측은 interaction 발생할 확률을 reconstruct한다.

  • user-item의 rating 을 행렬로 만들어서 전처리한다. 그리고 사전에 미리 train과 test를 분리한다. 행렬의 행을 기준으로 vector를 input으로 넣고 loss를 계산해서 파라미터를 업데이트해 훈련한다.


U/I-RBM

Restricted Boltzmann Machines for Collaborative Filtering

  • 최초로 NN을 활용한 추천 모델

  • 1-5의 rating 예측을 1,2,3,4,5의 multiclass 분류문제로 변환한다.

  • User-RBM / Item-RBM을 개별로 만들어 은닉층에 넣고 잠재 특성을 생성해서 결과를 만든다.


U/I-AutoRec

AutoRec: Autoencoders Meet Collaborative Filtering

  • TIL #530 참고

  • 역전파 과정에서 전체 노드에 적용하는게 아니라 관측된 rating과 관련된 노드만 업데이트한다.

  • 실험 결과에선 item-autorec이 user-autorec보다 성능이 좋았다.


NeuMF

Neural Matrix Factorization

  • NCF의 한 종류. Generalized MF(GMF) + MLP

  • MF의 linear한 한계를 넘기 위해 만든 모델이지만 이후 연구에서 MF보다 오히려 안좋은 결과를 내기도 했다.


CDAE

Collaborative Denoising Auto-Encoders for Top-N Recommender Systems

  • Denoising Auto Encoder(의도적으로 노이즈를 넣은 오토 인코더)를 사용한다.

  • 일부 interaction은 dropout해서 오버피팅을 방지한다.

  • 사용자의 아이템 선호도 벡터를 입력으로 받는다. 각 사용자마다 고유한 사용자 임베딩을 추가한다. (input=아이템 선호도 벡터 + 사용자별 고유 임베딩) 그래서 사용자별 편향(bias)을 자연스럽게 모델링할 수 있다.


Multi-VAE

Variational Autoencoder for Collaborative Filtering

  • approximate inference(근사 추론)를 위한 방법론 중 하나

  • 기존 추천시스템에서 잘 사용되지 않았던 다항분포(multinomial likelihood)를 사용한다. 다항분포를 사용하기 때문에 전체 확률의 합이 1이 되고, 아이템들이 한정된 budget을 놓고 경쟁하는 현상을 표현할 수 있다. 그러므로 ranking 기반 손실함수(상대적 선호도)를 자연스럽게 표현할 수 있다.

  • 베이지안 추론을 통해 파라미터를 추정한다. 희소한 데이터에서도 robust하다.

  • 인코더
    사용자의 아이템 선호도 벡터를 입력으로 받고 MLP를 통해 잠재변수의 파라미터(평균, 분산)을 추정한다. dropout을 적용해 정규화를 수행한다.

  • 디코더
    잠재변수로 부터 사용자의 선호도를 재구성한다. 다항분포를 이용해 아이템 선택 확률을 모델링한다.


EASE

Embarrassingly Shallow Autoencoders for Sparse Data

  • user-free 모델과 유사하다.

  • hidden layer가 없는 얕은 오토인코더 구조. 간단한 모델임에도 성능이 떨어지지 않는다.

  • 학습 파라미터의 대각 성분이 0인 가중치 행렬을 사용한다.

  • Closed-form solution을 가진 convex한 목적함수를 사용하기 때문에 딥러닝 프레임워크 대신 numpy를 통해서 충분히 쉽게 구현이 가능하다.

profile
Backend Dev / Data Engineer
post-custom-banner

0개의 댓글