AutoRec: Autoencoders Meet Collaborative Filtering
해당 논문: users.cecs.anu.edu.au/~akmenon/papers/autorec/autorec-paper.pdf
요약:
AutoRec이 최신 CF 기술(biased matrix factorization, RBMCF and LLORMA)보다 Movielens와 Netflix 데이터셋을 이용했을 때 성능이 더 잘 나왔다.
* CF: (Collaborative Filtering) 협업 필터링. 사용자들로부터 모은 취향 정보들을 바탕으로 스스로 예측하는 기술이다. 예를 들어, A가 B와 한 영화에 대해 같은 관심사를 보였다면, 다른 영화들에 대해서도 같은 관심사를 보일 것이라는 확률에 기반한다.
* AutoEncoder: 입출력이 같은 구조이다.(x → z → y)
- Encoder구간에서 정보를 최대한 유지하면서 필요없는 부분들은 없애는 정보의 압축을 수행하여 z라는 구간을 만든다. 이때 필요한 정보들은 자동적으로 추출된다.
- Decoder구간에서 input과 정보가 같아지도록 압축 해제한다.
- 복잡하게 섞인 인풋들을 풀어서 쓸 수도 있다.
- PCA와 차이점: PCA(선형성)는 학습하는 과정없이 데이터의 분산을 최대화하는 방향으로 차원 축소를 한다. 이에 반해 AutoEncoder(비선형성)는 학습하는 과정을 포함하여 중요정보만 더 잘 추출할 수 있다.
AutoRec Model
AutoRec: Autoencoder 기반인 새로운 CF 모델
- 추천의 목적인 missing ratings(빠진 정보)를 예측하는 모델.
- input을 관측된 개개인이고, 저차원 latent(hidden) space로 투사한 뒤, output space에서 재구성한다.
- hidden layer는 파라미터 세타는 backpropagation으로 학습된다.
1) 각 r(rating)은 부분적으로 관측된 것.???????
2) 관측된 rating들이 오버피팅되는 것을 방지하려고 학습된 파라미터들을 규제한다.
AutoRec과 기존 CF 방법들의 차이점
RBM-based CF model
1. RBM-CF는 제한된 Boltzmann machine에 기반하여 generative & probabilistic 모델을 제안한다.
AutoRec은 AutoEncoder기반으로 discriminative 모델이다.
(discriminative 모델은 generative 모델에 비해 가정이 단순하고 학습데이터 양이 충분하면 좋은 성능을 낸다.)
2. RBM-CF는 log likelihood를 최대화하면서 파라미터들을 추청한다.
AutoRec은 직접적으로 RMSE를 최소화한다.
(RMSE는 rating prediction task에서 정식인 performance)
3. RBM-CF는 훈련할 때 contrastive divergence가 필요하다.(contrastive divergence: 학습에서 사용하는 기울기를 구하는 알고리즘)
AutoRec은 훈련할 때 상대적으로 더 빠른 gradient-based backpropagation을 한다.
4. RBM-CF는 discrete rating에만 적용가능하고 각 rating value을 위한 별도의 파라미터 집합을 추정한다.
AutoRec은 rating에 대해 진위 여부를 파악할 수 없다는 입장이라 더 적은 파라미터를 필요로한다. 더 적은 파라미터로 인해 AutoRec은 memory footprint가 적고 오버피팅될 경향도 적다.
+) MF(Matrix Factorization) 방법은 사용자와 아이템을 같은 latent space로 embedding한다. 반면, Item-based AutoRec은 오직 아이템만 latent space로 embedding한다.
+) MF가 linear latent representation을 학습하는 반면, AutoRec은 활성화 함수를 통해 nonlinear latent representation을 학습할 수 있다.
실험과 평가
기본적인 rating 3개를 사용했다.
latent space 차원을 {10, 20, 30, 80, 100, 200, 300, 400, 500}로 했다.
*AutoRec을 학습할때 어려운 점이 non-convexity 함수이다. 그래서 resilient propagation(RProp)을 사용하였다.
(RProp: 도함수의 부호만 가중치의 업데이트의 영향을 준다. 도함수의 크기는 영향을 주지 않아서 더 빠르다.)
(Convexity오목 함수가 좋은 이유는 반드시 optimal한 값이 하나이기 때문이다.)
- Item based AutoRec이 모든 RBM보다 성능이 뛰어나다.
- AutoRec의 hidden layer의 비선형성(e.g. Sigmoid 함수)이 좋은 performance의 핵심이다. (Sigmoid대신 선형성인 ReLU를 하니 성능이 안 좋았다.)
- AutoRec의 hidden unit 수가 많을수록 성능이 좋았다.(RMSE가 낮게 나옴)
- AutoRec이 다 좋지만, Movielens 10M 데이터셋에서 LLORMA와 0.782로 같은 성능을 보인다. 하지만 LLORMA는 50개 서로 다른 local matrix factorization 모델에 가중치를 부여하는 반면, AutoRec은 하나의 latent representation만 사용한다.(같은 결과를 보여도 더 간단)
- AutoRec의 hidden layer를 (500, 250, 500)units과 sigmoid 활성화함수로 깊게 만들어보았다. RMSE가 0.831에서 0.827로 줄어들어 깊게 쌓으면 어느정도 잠재력이 있다는 것을 보여준다.