AutoRec: Autoencoders Meet Collaborative Filtering
Papers with Code - AutoRec: Autoencoders Meet Collaborative Filtering
#5 best model for Recommendation Systems on MovieLens 1M (RMSE metric)
paperswithcode.com
AutoRec(Autoencoder Recommender)는 협업 필터링(Collaborative Filtering) 문제를 해결하기 위해 고안된 오토인코더(Autoencoder)의 한 종류이다.
Autoencoder
오토인코더(Autoencoder)는 비지도 학습(unsupervised learning)의 한 종류로, 입력 데이터를 저차원 공간(latent space)으로 압축한 후, 이를 다시 원래의 차원으로 복원하는 과정을 학습하는 신경망이다. 오토인코더의 목표는 입력 데이터를 손실 없이 압축하고 복원하는 것이다.
AutoRec
AutoRec 오토인코더 신경망 구조를 바탕으로 주로 사용자-아이템 행렬의 완전하지 않은 데이터를 기반으로 사용자의 선호도를 예측하고, 이를 바탕으로 추천을 생성하는 데 사용된다.
AutoRec은 어떤것을 예측하냐에 따라 2가지 형태로 나뉘게 된다.
- User-based AutoRec: 사용자 중심의 오토인코더로, 사용자별로 각 아이템에 대한 선호도를 예측, 사용자 간의 유사성 기반 추천
- Item-based AutoRec: 아이템 중심의 오토인코더로, 아이템별로 사용자의 선호도를 예측, 아이템 간의 유사성 기반 추천
- 입력: 입력으로 주어지는 데이터는 사용자-아이템 평점 행렬의 일부이다. 예를 들어, User-based AutoRec의 경우 각 사용자가 특정 아이템에 부여한 평점들이 입력 데이터가 됩니다.
- 인코딩: 입력 데이터를 낮은 차원으로 압축한다. 이때, 압축된 벡터는 사용자의 선호도에 대한 중요한 특징을 포함하게 된다. 하지만 압축된 데이터는 Explainable(설명 가능)하지 않을 수 있다.
- 디코딩: 인코딩된 벡터를 다시 원래 차원으로 복원하여 사용자가 평가하지 않은 아이템에 대한 평점을 예측한다.
- 손실 함수: 원래의 평점과 예측된 평점 간의 차이를 최소화하도록 학습이 이루어지며, 주로 평균 제곱 오차(MSE)가 손실 함수로 사용됩니다.
AutoRec과 AutoEncoder과의 차이점
AutoRec는 전체 입력데이터를 활용하는 AutoEncoder과 달리 관측된 데이터만 반영한다.
즉, 사용자가 실제로 평가한 항목에 대해서만 모델이 학습하게 되며, 관측되지 않은 부분에 대해서는 모델이 따로 값을 채워넣지 않으며, 이를 학습에 사용하지 않는다.
AutoRec은 입력 행렬에서 관측된 값들만 반영하기 위해 마스킹 기법을 사용한다. 학습 중 손실 함수를 계산할 때도 관측된 값에 대한 오류만을 계산한다.
Autoencoder 손실함수
일반적으로 AutorEncoder에서는 평균 제곱 오차(MSE)를 사용한다.
h(r; θ)는 encoder과 decoder가 합쳐진 함수를 뜻하며, θ = {W, V, µ, b}로 학습되는 모든 파라미터를 말한다.
AutoRec 손실함수
AutoRec은 MSE뿐만 아니라 과적합을 방지하기 위해서 L2 정규화를 진행해준다.