Deep Learning-based Collaborative Filtering
추천시스템에서 DL 모델의 장점
- Nonlinear Transformation을 활용해서 복잡한 user-item interaction을 포착한다.
- 강력한 representation learning 능력을 가지고 있기 때문에 feature engineering에 많이 노력하지 않아도 된다.
- 비디오, 사진, 음성 등다양한 heterogeneous(여러 다른 종류들로 이뤄진) 정보를 포함할 수 있다.
- sequence modeling이 가능하다
- 다양한 network 구조들을 쉽게 결합할 수 있다.
추천시스템에서 DL 모델의 한계
- 어떤 weight가 어떤 의미를 갖는지 해석할 수 없다.
- 많은 양의 데이터가 성능을 위해 필요하다.
- 하이퍼 파라미터 튜닝할 것이 많다.
Examples of Deep Learning for CF
여러 CF 모델의 공통점은 사용자-아이템 행렬R을 임의의 함수 f를 fitting하는데 이 f를 deep neural architecture로 대체하는 것으로 생각할 수 있다.
대표적인 딥러닝 기반 CF모델 : Nerual CF, AutoRec, Deep Matrix Factorization
Deep learning기반 방법과 Matrix Factorization간의 가장 큰 방법 차이는 User term$\gamma_u$와 item term$\gamma_i$의 관계인 Compatibility function을 모델링할 때 $\gamma_u\cdot\gamma_i$인 inner product가 아니라 MLP과 같은 형태의 DNN을 사용한다는 점이다. Inner product는 linearity로 인해 표현력에 한계가 있기 때문이다. 또한, inner product를 사용해서 user-item matrix를 user latent space로 표현할 때 모순이 생긴다.
Linearity : $f(u,i)=\gamma_u\cdot\gamma_i$ → Nonlinearity : $f(u,i)=MLP(\gamma_u,\gamma_i)$
AutoEncoder기반의 CF
AutoEncoder는 dimensionality reduction technique이자 self-supervised learning의 방법 중 하나이다. sparse data에 적합하도록 formulation을 변경하였다.
입력값 R을 AutoEncoder로 처리하게 되면 R'의 형태로 reconstruction된다. 이 때 원본 rating data인 R의 정보를 모두 요약하고 있는 것이 Latent code(=informatino bottle neck) 부분이다.
- Encode
R을 Latent code로 암호화하는 과정 - Decode
Latent code로 부터 R'을 reconstruction(재생성)하는 과정- Rating Prediction task를 수행하려고 할 때
rating 값을 reconstruct - Top-K ranking task를 수행하려고 할 때
interaction이 발생할 확률을 reconstruction
- Rating Prediction task를 수행하려고 할 때
학습 과정
1. 사용자와 아이템 로그 데이터에서 user-item interaction matrix로 전처리 한다.
2. train과 test가 겹치지 않았도록 분리한다. 즉, Training set으로 학습하고 training에 나타나지 않았던 data로 test한다.
3. user을 기반으로 본다면 $R_u$가 주어졌을 때, u번째 행이 입력으로 들어간다.
4. 한 행씩 순서대로 input layer → hidden layer → output layer 를 거쳐서 encoding과 decoding을 한다. 모든 행에 대해서 실행한다.
$$h(R_u) = f(\mathbf{W}\cdot g(\mathbf{V}R_u+\mu)+b)\quad \text{(reconstruction of }R_u)$$
위의 식은 일반적인 Auto Encoder의 reconstruction format이다.
5. 결과적으로 만들어진 reconstruction 값 R'을 실제 값 R과 비교해서 loss값을 구한다.
$$ \underset{ \mathbf{W}, \mathbf{V} ,\mu,b}{\operatorname{argmax}} \sum_{u=1}^{|U|}\|R_u-h(R_u)\|_\mathcal{O}^2+\lambda(\|\mathbf{W}\|_F^2 + \|\mathbf{V}\|_F^2)$$
reconstruction matrix인 $h(R_u)$와 원래값 $R_u$의 차이를 최소화하는 형태로 파라미터가 학습된다.
파라미터 업데이트나 loss를 계산할 때 관측된 input과 연관된 파라미터에 대해서만 연산한다. 모든 경우를 고려하지 않고 존재하는 이력에 대해서만 고려해서 효율적으로 학습한다.
6. Inference
training으로 학습된 parameter를 기반으로 예측에 사용할 사용자의 행을 input으로 넣어주고, test set의 원소에 대해서만 prediction한다.
[ , , , ,3, ,5]가 inference라면 3과 5에 대해서만 prediction한다.
MLP를 활용해도 비슷하게 모델링할 수 있다. 사용자 행렬의 한 행씩 input으로 넣거나, item 행렬의 항 행을 input으로 넣어서, output layer로 나온 reconstruction matrix를 user와 item의 compatibility function의 형태로 만들어주면 다양한 변형이 가능하다.
DL-based CF for Rating Prediction
rating prediction은 explicit data를 다룰 때 생기는 task에서 파생되는 문제이다.
User-based RBM(U-RBM) & Item-based RBM(I-RBM)
RBM : Restricted Boltzman Machines for Collaborative Filtering
최초로 Neraul Net을 추천시스템에 도입한 모델 중 하나이다. 오래된 모델이라서 최근에는 자주 사용하지는 않지만 초기에는 의미있는 시도였다.
Explicit data(Visible layer)를 modeling할 때 1~5점까지의 rating으로 regression을 수행하는 것이 아니라 다섯 개의 label (1,2,3,4,5)중 하나를 classification하는 multi-class classification문제를 수행한다. 비 deep-learning 모델에 비해서는 좋은 성능을 보였다.
U-AutoRec & I-AutoRec
AutoEncoder를 Collaborative Filtering에 적용했다. Explicit feedback을 대상으로 RMSE를 평가한다. 일반적인 autoencoder를 사용하고 user나 item 별 입력을 받아서 모델링을 수행한다.
item based인지 user based인지에 따라서 Node 수가 달라진다.
Item-based AutoRec의 경우 item별로 user의 선호도를 나타내야 하기 때문에 user수 = input Node 수 = output Node 수가 되어야 한다.
User-based AutoRec의 경우 user별로 item의 선호도를 나타내야 하기 때문에
item 수 = input Node수 = output Node 수 가 되어야 한다.
성능
- Rating 량
item-based AutoRec > user-based AutoRec 로 item-based가 성능이 더 좋았다. 아이템에 달려있는 rating이 유저별로 달려 있는 rating보다 훨씬 더 많이 존재하기 때문이라고 예측한다. - Activation Function
어떤 활성화 함수를 어떻게 조합하느냐에 따라서 성능 차이가 크다 - Layer
hidden layer의 뉴런 수나 layer 수를 높이면 더 좋은 성능을 보인다.
DL-based CF for Top-K Raking
rating을 직접 예측하기 보다는 user가 좋아할만한 item을 어떻게 잘 찾아낼지에 대한 문제이다. Top-K Ranking문제는 0-1로 이뤄진 implicit feedback을 예측하는 task에 주로 사용된다.
NeuMF : Neural Matrix Factorization
=Generalized MF(GMF)(MF의 일반화된 형태) + MLP(Multi Layer Perceptron)
$$\begin{aligned}
\phi^{GMF}&=(\mathbf{p}_u^G)^T\mathbf{q}_i^G\\
\phi^{MLP}&=\phi_X(\cdots \phi_2(\phi_1(\mathbf{p}_u^M, \mathbf{q}_i^M))\cdots)\\
\hat{y}_{u,i}&=\sigma\left(\mathbf{h}^T\begin{bmatrix}
\phi^{GMF}\\
\phi^{MLP}
\end{bmatrix} \right)
\end{aligned}$$
$\phi^{GMF}$가 Matrix Factorization부분을 나타내고 $\phi^{MLP}$가 MLP에 대한 부분이다. GMF와 MLP부를 concatenate해서 최종적인 결과 $\hat{y}_{u,i}$로 생성하게 된다.
Neural MF는 Element-wise product(GMF)와 concatenation(MLP)를 일종의 compatibility function으로서 활용했다는 점에서 의의가 있다. MF모델이 linear model이기 때문에 지녀왔던 표현력의 한계를 극복한 것이다. 이후의 연구들에서는 MF에 비해 NeuMF가 성능이 더 안 좋다는 결과도 있다.
CDAE : Collaborative Denoising Auto-Encoders
Autoencoder의 확장 버전인 Denoising Autoencoder를 사용했다. input중 일부를 random하게 dropout해서 의도적으로 noise를 만들어 input을 일부러 오염시킨 후에도 잘 reconstruction되게끔한다.
Input layer에 user의 Id를 이용해서 embedding한 user Node를 추가해서 어떤 사용자를 나타내는지를 모델링했다. MF에서 주로 봤던 User Bias의 형태로 작동한다.
원래 주어졌던 input layer를 그대로 reconstruction하게끔 설계되었는데, Top-K ranking 문제이기 때문에 implicit feedback(interaction)이 이루어질 확률을 예측하는 형태로 학습하게 된다.
implicit feedback을 다루는 대표적인 초기연구이다. 관측한 데이터와 관측하지 못한 데이터도 존재하는데, 관측한 데이터는 모두 1로 표현되기 때문에 분류문제에서 positive instance만 존재한다. 그래서 NeuMF나 CDAE는 negative instance sampling을 이용한다. 실제 data에 존재하는 positive instance에 포함되지 않은 아예 다른 item을 가져와서 random하게 sampling해서 학습 과정에서 negative instance로 활용한다.
Mult-VAE
VAE(Variation Auto Encoder)에서 multinomial distribution을 활용한 CF 모델
VAE
Exact inference가 불가능 상황에서 approximate inference를 수행하는 방법이다. Deep generate model의 일종으로 학습을 마친 후에 임의의 data를 생성모델로 생성한다. VAE의 objective function은 ELBO(Evidence Lower BOund)의 형태로 표현된다.
$$ELBO= \mathbb{E}_{q_{\phi} (z|x)}[p_{\theta} (x|z)] - KL(q_{\phi}(z|x)|| p_{\theta}(z) )$$
이 ELBO식의 term들은 Autoencoder관점에서 해석 가능하다.
- Reconstruction Error = Expected negative reconstruction error = Probabilistic Encoder(AutoEncoder 관점)
$\mathbb{E}_{q_{\phi} (z|x)}[p_{\theta} (x|z)]$
최소화 해야함- Original distribution : $p_{\phi}(x|z)$
z에서 x로 가는 방향성을 표현한다. Autoencoder 관점에서 z가 다시 x로 decoding되는 과정이다.
- Original distribution : $p_{\phi}(x|z)$
- Regularization term = Probabilistic Decoder(AutoEncoder 관점)
$KL(q_{\phi}(z|x)|| p_{\theta}(z))$
두 distribution간의 거리를 KL divergence를 활용해서 표현하고 있다.
- Prior distribution : $p_{\theta}(z)$
- Variational distribution : $q_{\theta}(z|x)$
x가 주어진 상황에서 z를 표현한다. Autoencoder 관점에서 x가 z로 encoding되는 과정이다.
결과적으로 ELBO는 최대화 해야한다.
mult-VAE에서는 이 VAE를 interaction data의 reconstruction에 적용했다.
sparse한 rating matrix X가 주어졌을 때 autoencoder를 통해서 X'를 reconstruct한다. Latent code z에 X의 정보가 요약되어 있다.
기존의 VAE와 mult-VAE의 차이점은 multinomial likelihood를 distribution으로 활용해서 아이템 parameter의 합이 1이 되도록 모델링 되어 한정된 예산을 두고 아이템끼리 경쟁하는 효과를 모델링할 수 있다.
또한 VAE를 학습함에 있어서 KL annealing을 사용해서 regularization term에 $\beta$라는 weight를 곱해준다. 이 $\beta$를 고정시키는 것이 아니라 0에서 시작해서 특정값까지 선형적으로 증가시켜 학습 초기에서는 regularization 영향이 적어서 reconstruction에 집중시켜 학습시킬 수 있다.
Multi-VAE가 기존 모델 대비 대부분 나은 성능을 보인다.
EASE : Embarrassingly Shallow Autoencoders
약자 순서대로 하면 ESAE인데 거구로 해서 EASE라고 한다.
일종의 Autoencoder이자 user-free 모델이다.
$$\min_B\|X-XB\|_F^2+\lambda\cdot\|B\|_F^2$$
수식이 기존의 user-free model과 굉장히 유사한 것을 볼 수 있다.
2022.03.22 - [부스트캠프 AI Tech 3기/프로젝트 : P-stage] - [Day40] Movie Rec 3. Collaborative Filtering (1)
[Day40] Movie Rec 3. Collaborative Filtering (1)
Memory-based Collaborative Filtering 사용자나 아이템간의 similarity에 근거하고 있는 방법 이를 활용하여 rating prediction과 top-K ranking에 모두 적용될 수 있다. Similarity Metrics Jaccarrard similari..
chae52.tistory.com
item과 item 간의 similarity를 학습하는 weight W를 B로 바꾸어서 표현했다. 추가적으로 아이템의 rating을 예측할 때 자기 자신으로 부터 예측하는 것을 막기 위해서 대각원소는 0으로 고정했다.
$$diag(b)=0$$
trivial solution을 피하기 위한 제약조건인 것이다.
EASE는 아주 얕은 autoencoder로 볼 수도 있다. $X_u$라는 임의의 user 행을 B를 통해서 reconstruction하는데, non-linear mapping이나 bias term이 없는 형태인 것이다.
수식 유도를 통해서 close-form solution을 유도할 수 있다. 딥러닝 학습시 SGD를 사용하지 않아도 바로 수식을 유도할 수 있어서 DL Framework(ex. Pytorch)를 사용하지 않고 numpy로도 쉽게 구현할 수 있다.
실험 성능은 간단한 모델임에도 불구하고 뒤쳐지지 않는 성능을 보여준다. Mult-VAE와 비슷하거나 조금 더 나은 성능을 보여준다.
'부스트캠프 AI Tech 3기 > 프로젝트 : P-stage' 카테고리의 다른 글
[Day62] DKT 3. Baseline (LGBM, LSTM, Transformer) (0) | 2022.04.20 |
---|---|
[Day62] DKT 1. DKT 이해 및 DKT Trend 소개 (0) | 2022.04.20 |
[Day40] Movie Rec 3. Collaborative Filtering (1) (0) | 2022.03.22 |
[Day40] Movie Rec 2. Research Directions and Resources (0) | 2022.03.21 |
[Day40] Movie Rec 1. 추천 시스템 개요 및 대회 소개 (0) | 2022.03.21 |