오늘은 lg cns 면접을 보고 남은 공부를 진행했다. 작년보단 확실히 잘 봤지만 결과는 나와봐야 알겠지.. 남은 면접도 잘 대비해서 후회하지 않게 보자!!
cf 방식은 새로운 행이나 열이 추가되는 상황(cold start)에서 약하다.
새로운 유저(or 아이템)가 등장하면 재학습이 필요하기 때문이다. 이는 실제 서비스단에서 큰 단점으로 작용한다.
하지만 cf에서 user의 term을 제거한 user-free 모델은 새로운 사용자나 이력이 거의 없는 사용자에 대해 바로 inference가 가능하다.
그리고 기존 cf에서 무시되는 sequential 시나리오에 대해 대응이 가능하다.
Sparse Linear Methods for Top-N Recommender Systems (Ning and Karypis, 2011)
Memory-based와 Model-based 방식을 결합한 하이브리드 모델로 주로 top-N 추천에 사용된다. 희소한 유사도 행렬을 통해 빠른 추천 생성이 가능하다.
목적 함수 : MSE에 L1+L2 reg를 포함하는 형태
유저-아이템 평점행렬 R을 입력으로 받아 아이템-아이템 유사도 행렬 W를 학습하고 이를 기반으로 추천점수를 로 구한다.
Factored Item Similarity Models
Latent Factor Model에서 user term 를 사용자 기존 이력에 기반한 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등으로 표현된다.
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를 계산해서 파라미터를 업데이트해 훈련한다.
Restricted Boltzmann Machines for Collaborative Filtering
최초로 NN을 활용한 추천 모델
1-5의 rating 예측을 1,2,3,4,5의 multiclass 분류문제로 변환한다.
User-RBM / Item-RBM을 개별로 만들어 은닉층에 넣고 잠재 특성을 생성해서 결과를 만든다.
AutoRec: Autoencoders Meet Collaborative Filtering
TIL #530 참고
역전파 과정에서 전체 노드에 적용하는게 아니라 관측된 rating과 관련된 노드만 업데이트한다.
실험 결과에선 item-autorec이 user-autorec보다 성능이 좋았다.
Neural Matrix Factorization
NCF의 한 종류. Generalized MF(GMF) + MLP
MF의 linear한 한계를 넘기 위해 만든 모델이지만 이후 연구에서 MF보다 오히려 안좋은 결과를 내기도 했다.
Collaborative Denoising Auto-Encoders for Top-N Recommender Systems
Denoising Auto Encoder(의도적으로 노이즈를 넣은 오토 인코더)를 사용한다.
일부 interaction은 dropout해서 오버피팅을 방지한다.
사용자의 아이템 선호도 벡터를 입력으로 받는다. 각 사용자마다 고유한 사용자 임베딩을 추가한다. (input=아이템 선호도 벡터 + 사용자별 고유 임베딩) 그래서 사용자별 편향(bias)을 자연스럽게 모델링할 수 있다.
Variational Autoencoder for Collaborative Filtering
approximate inference(근사 추론)를 위한 방법론 중 하나
기존 추천시스템에서 잘 사용되지 않았던 다항분포(multinomial likelihood)를 사용한다. 다항분포를 사용하기 때문에 전체 확률의 합이 1이 되고, 아이템들이 한정된 budget을 놓고 경쟁하는 현상을 표현할 수 있다. 그러므로 ranking 기반 손실함수(상대적 선호도)를 자연스럽게 표현할 수 있다.
베이지안 추론을 통해 파라미터를 추정한다. 희소한 데이터에서도 robust하다.
인코더
사용자의 아이템 선호도 벡터를 입력으로 받고 MLP를 통해 잠재변수의 파라미터(평균, 분산)을 추정한다. dropout을 적용해 정규화를 수행한다.
디코더
잠재변수로 부터 사용자의 선호도를 재구성한다. 다항분포를 이용해 아이템 선택 확률을 모델링한다.
Embarrassingly Shallow Autoencoders for Sparse Data
user-free 모델과 유사하다.
hidden layer가 없는 얕은 오토인코더 구조. 간단한 모델임에도 성능이 떨어지지 않는다.
학습 파라미터의 대각 성분이 0인 가중치 행렬을 사용한다.
Closed-form solution을 가진 convex한 목적함수를 사용하기 때문에 딥러닝 프레임워크 대신 numpy를 통해서 충분히 쉽게 구현이 가능하다.