논문리뷰 - Attribute mapping and autoencoder neural network based matrix factorization initialization for recommendation systems
Introduction
전통적인 추천 알고리즘은 content-based / collaborative filtering 에 기반을 두고 있다. 최근 가장 각광받는 알고리즘으로는 latent feature decomposition 의 collaborative filtering 기반이 있다. 그 예로는 SVD, SVD++, TimeSVD++ 가 있다. 이들은 user 와 item 이 rating matrix 를 근사하여 잡히는 latent feature vector 로 표현할 수 있다는 특징이 있다.
하지만, 이런 전통적인 알고리즘은 1) feature matrix dimension 을 결정하는데 너무 많은 실험을 필요로 하고, 2) feature vector 는 주로 랜덤값으로 초기화된다는 문제점을 가진다.
이를 해결하기 위해, 위 논문에서는 1) matrix factorization 의 초기화에 item attribute를 사용하는 attribute mapping 방법을 제안하며, 2) feature matrix dimension에 attribute type 개수를 사용하며, 3) convergence efficiency 와 accuracy를 높이기 위해 autoencoder neural network 기반의 모델을 최초로 제안한다.
Related Work
- Matrix Factorization (SVD, SVD++, TimeSVD++)
- 추천시스템에서 자주 사용되는 기법으로, user와 item feature 사이 관계를 표현하는 matrix 를 user matrix / item matrix 로 각각 분해하는 것.
- 초기값 세팅을 적절하게 잘 해주면, 알고리즘 속도와 성능이 좋게 나오기 때문에 많은 연구자들이 초기값 설정에 대해 연구해왔다. 그 연구들은 보통 초기화 과정에만 집중할 뿐, item attributes 정보를 전혀 사용하지 않았다.
- Feature Dimension 결정
- dimension 이 클수록, 추정치는 정확해지지만 time complexity 가 높아진다는 단점을 가지고 있기에, 많은 연구자들은 computational cost 를 낮추면서도 정확도를 유지하는 적절한 차원을 추정하는 방법에 대해 연구해왔다.
- feature vector에 mapping하기 위해 item의 attribute 정보를 사용하였고, feature dimension 을 결정하기 위해 Neural Network 를 사용해 reducing한 attribute type 의 개수를 사용하였다.
Attribute mapping and autoencoder neural network based initialization
1. SVD++ model
SVD 기반이며, user rating 을 예측하기 위해 implicit feedback 정보를 이용한다.
* SVD 는 user 와 item feature 를 k-차원 latent 공간에 매핑한다. 이는 RSE 를 최소화하여 학습한다
SVD ++ 는 Gradient Descent 를 이용하여 최소화한다.
2. Attribute mapping mechanism
item feature 를 초기화하기 위해 item attribute 이용하며, item feature dimension 은 attribute type 개수와 동일하다.
item attribute matrix 내 attribute vector of item $a_i$ 는 1 (해당 아이템이 해당 feature 를 포함하는 explicit 일 경우), 0 (그 반대) 으로 이루어져있다.
3. Attribute mapping-based initialization
SVD++ 의 accuracy 와 convergence efficiency 를 높이기 위해, item feature $q_i$ 를 초기화하기 위해 item attributes vector $a_i$ 를 사용하고, feature dimension 을 결정하기 위해 item attribute type 의 개수를 사용한다.
$q_i$ 는 아래 3가지 방법에 따라 형태가 달라진다. (IAI = Item's Attributes Initialization)
ex. 원본 $q_i$ 는 (1, 1, 0, 0, 1, 0, 0, 0, 1, 0)
1) IAI_Fix : $q_i$ 를 상수로 취급 -> $q_i$ = (1, 1, 0, 0, 1, 0, 0, 0, 1, 0)
2) IAI_Part : $q_i^0$ 은 변수로, $q_i^1$ 은 상수로 취급 -> $q_i$ = (1, 1, x, x, 1, x, x, x, 1, x)
3) IAI_All : $q_i$ 를 변수로 취급 -> $q_i$ = (x, x, x, x, x, x, x, x, x, x)
4. AutoEncoder neural network-based initialization (ANNInit)
ANNInit 은 AutoEncoder NN 을 이용하여 item 의 초기값을 추출한다. 이는 off-line learning 을 이용해 feature dimension 을 감소시키고, SVD++를 초기화할 때 그 감소된 feature 를 사용한다.
1) ANNInit learning the deep item features
- 3 layer 로 구성 : input / hidden / output
- Encoder = Input & Hidden Layer
- Decoder = Hidden & Output Layer : input 과 output 사이 error 를 최소화하는 방향으로 input 을 reconstruct
2) ANNInit initializing item feature matrix
- item attributes matrix A 를 이용하여 item feature matrix Q 를 초기화한 뒤, Q를 ANN의 input 으로 넣고, hidden layer 를 거친 결과 낮은 dimension 과 더 추상적인 representation 을 얻는다.
- ANNInit 은 위에서 얻어진 hidden layer feature 를 이용하여 SVD++를 위한 item feature matrix 를 초기화한다.
Experiment
- Dataset : MovieLens 100K & MovieLens 1M
- Result - Evaluation on..
- 3 Initialization Methods : IAI_All 이 최고 성능
- Convergence Efficiency : ANNInit과 IAI_All 이 convergence 에 최단 속도로 도달하였고, 최고 성능
- Prediction Accuracy : ANNInit과 IAI_All 이 최고 성능
- Adaptability : 다른 matrix factorization method 에도 확장 가능
- Convergence time : 차원이 낮을수록 convergence time 도 짧았으며, ANNInit 과 IAI_All 의 정확도는 비슷했으나 ANNInit이 convergence time 이 더 짧았다
Conclusion
현존하는 SVD 방법은 item feature vector 를 랜덤값으로 초기화하였기에 성능이 좋지 않았고, feature dimension 을 결정하기 위해 여러 실험을 거쳐야했다는 문제점이 있다.
이를 해결하기 위해, 위 논문에서는 3가지 초기화 방법을 제시한다. : IAI_Fix, IAI_Part, IAI_All
1. convergence efficiency 와 prediction accuracy 측면에서 세 가지 방법을 비교했다.
2. SVD++ 을 초기화하기 위해 autoencoder neural network-based 초기화 방법을 적용하였다.
3. 다른 matrix factorization 방법들에도 적용하여 더 좋은 성능을 냈다.