손연빈 - 추천 시스템 구현해보기 : 별점 예측
2022.03.30 - 2022.12.31
0
0
공유
0
공유

Overview

별점 예측

모델은 과거 데이터를 기반으로, 사용자가 경험해보지 못한 아이템에 대한 기대 별점을 예측합니다.

이때, 과거 데이터는 사용자가 경험해본 아이템에 남긴 1점부터 5점 사이, 1점 척도의 별점을 의미합니다.

이 데이터는 사용자의 아이템에 대한 피드백 정보라고 할 수 있습니다.

이렇게 별점을 예측하면, 사용자가 가장 높은 별점을 줄 것으로 예측되는 아이템을 추천해줄 수 있습니다.

 

Model

Input : 빈칸이 포함된 user-item 별점 매트릭스. User가 item에게 별점을 줬다면 해당 별점으로 칸이 채워져 있고, 별점을 주지 않으면 빈칸으로 되어있다.

Output : 빈칸이 없는 user-item 별점 매트릭스. User가 별점을 주지 않아 각 item에 대한 선호를 몰랐던 경우의 별점을 예측할 수 있게 된다. 이 아웃풋을 활용하여, 특정 user에 대해 예측 별점이 가장 높은 item을 추천해주면 된다.

Model : Matrix factorization 방법론을 활용합니다. Matrix factorization은 user-item 별점 매트릭스(m x n)를 k차원의 user latent factor matrix(m x k)와 item latent factor matrix(n x k)로 분해하여 user와 item의 내재적 성질을 반영한 벡터를 학습한 뒤, 두 매트릭스를 다시 곱하여 몰랐던 별점을 예측하는 방법론입니다.

 

Performance

우리는 모델의 성능을 평가하기 위해, 테스트셋에 대한 예측 별점과 실제 별점의 차이를 의미하는 RMSE(Root Mean Square Error)를 활용합니다.

 

Test your own data

가지고 계신 이미지로 성능을 테스트해보세요!

 

Limitations

별점 예측 문제의 가장 큰 한계점은 Data Sparseness 입니다.

사용자가 무수히 많은 아이템을 모두 경험해볼 수 없고, 또 만에 하나 경험해봤다고 할지라도 매번 별점을 남기진 않기 때문입니다.

 

Future work

이 문제를 해결하기 위해서 추후에 Data Imputation, Data Augmentation 등의 연구를 해보려 합니다.

 

Provide feedback

피드백은 언제든 환영입니다 :)