AI_ML

AutoRec: Autoencoders Meet Collaborative Filtering

썬2 2021. 3. 18. 17:56

해당 논문: 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

Item-based 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한 값이 하나이기 때문이다.)

 

  1. Item based AutoRec이 모든 RBM보다 성능이 뛰어나다.
  2. AutoRec의 hidden layer의 비선형성(e.g. Sigmoid 함수)이 좋은 performance의 핵심이다. (Sigmoid대신 선형성인 ReLU를 하니 성능이 안 좋았다.)
  3. AutoRec의 hidden unit 수가 많을수록 성능이 좋았다.(RMSE가 낮게 나옴)
  4. AutoRec이 다 좋지만, Movielens 10M 데이터셋에서 LLORMA와 0.782로 같은 성능을 보인다. 하지만 LLORMA는 50개 서로 다른 local matrix factorization 모델에 가중치를 부여하는 반면, AutoRec은 하나의 latent representation만 사용한다.(같은 결과를 보여도 더 간단)
  5. AutoRec의 hidden layer를 (500, 250, 500)units과 sigmoid 활성화함수로 깊게 만들어보았다. RMSE가 0.831에서 0.827로 줄어들어 깊게 쌓으면 어느정도 잠재력이 있다는 것을 보여준다.