Matrix Factorization Techniques for Recommender Systems 리뷰
jisu1013
2022. 1. 12. 11:29
이 논문은 추천시스템에 MF 방식을 적용시킨 방법에 대한 논문이고, 간략하게 추천시스템에 대해 설명해주고 있다.
추천 시스템이란
추천시스템이 상업적인 용도로 쓰이기 시작한 이유는 user의 취향에 맞는 personalized recommendation을 제공해 줄 경우 서비스에 대한 user의 만족도를 높일 수 있고, 결과적으로 그에 따른 매출 상승 효과가 있다.
이 논문에서 쓰인 Matrix Factorization 방법은 Netflix Prize Competition에서 우승한 방식으로, 2009년 논문이라 나온지 오래된 방식이지만 심플하고 성능 또한 좋은 방식이다. Hard Negative Sampler 연구를 진행하면서 GCN layer로 구성된 Encoder로 MF를 대체해보려고 했지만, Recommendation metric으로 평가했을 때 MF가 유리했고 MF 성능을 넘지는 못했다.
추천 시스템 Strategies
추천시스템은 두 가지 strategy가 있다. 첫번째 strategy는 content filtering이고, 두번째 strategy는 collaborative filtering이다.
Content Filtering 이 방식은 각각 user나 product의 특성에 대해서 profile을 생성하게 된다. 이 때 profile이란, 영화를 예를 들면, 장르나 출연 배우, 흥행 성적 등을 의미한다. content filtering은 이와 같이 외부 정보를 필요로 한데, 이러한 정보를 수집하는 것은 굉장히 cost가 많이 드는 일이다.
Collaborative Filtering 이 방식은 profile 없이 user의 과거 이력을 활용해서 추천을 해준다. user 사이의 관계와 아이템들 사이의 상호의존 관계를 분석한다. collaborative filtering의 가장 큰 장점은 “domain free”라는 것이다. 단점은 “cold start” 문제를 가지고 있다는 것이다. 왜냐하면,,,새로운 서비스에는 user의 histroy 정보가 없기 때문이다. 그래서 보통 hybrid 방식으로 content filtering 방식과 collaborative filtering 방식을 함께 사용한다. collaborative filtering 방식에는 크게 두 가지가 있는데, neighborhood methods와 latent factor model이다.
Neighborhood methods : item 사이의 관계나 user 사이의 관계를 연산하는 것이 중심인 방식이다. 여기서도 item-oriented 방식과 user-oriented 방식으로 나뉘는데, - Item-oriented approach 같은 user가 평가한 이웃 items들의 평점을 기반으로 user의 선호도를 평가하는 방법이다. - User-oriented approach user가 좋아하는 item들을 선호하는 비슷한 user들을 찾아서 그들이 좋아하는 영화를 추천해주는 방법이다.
Latent Factor Models Ratting pattern으로부터 학습된 user와 item factor로 rating을 예측하는 것이다. 영화를 예로 들면, item의 factor는 대략적으로 action 영화인지 또는 유아 영화인지를 나타내는 dimension으로 구성되어 있다고 생각할 수 있다. 처음에 이 부분이 조금 모호했는데, 어떻게 factor가 이런 dimension으로 구성되어 있다고 생각할 수 있지? 논문에서도 ‘might’라고 설명되어 있고, 정확히 이러한 요소들을 나타낸다!! 보다는 이럴 것이다라고 생각하는 게 맞는 것 같다. Meta-path에서도 애매하다고 생각했던 부분이었는데, “설명성”이라는 부분에서는 더 모호해는 부분이 있는 것 같다. user의 factor는 대응되는 item의 factor의 선호도를 의미한다. 아래는 간단한 예시를 나타내는 figure이다.이 모델에서는 item에 대한 user의 예측 평점을 item와 user의 dot product로 알 수 있다.
Matrix Factorization Methods
가장 성능이 좋은 Latent factor model은 Matrix Factorization을 기반으로 하고 있다. Matrix Factorization은 item rating pattern에서 유추한 factor의 vector값으로 item과 user를 characterize한다. 이 방법의 장점은 scalability와 flexibility이다. explicit feedback 뿐만 아니라 implicit feedback을 활용할 수 있다는 것 또한 장점이다.
Input Data Type
High-quality explicit feedback 예) 넷플릭스 별점, 선호도(페이스북 좋아요, 싫어요) explicit feedback을 얻는 것은 어렵기 때문에 데이터의 양이 적다. 그래서 sparse matrix로 구성이 된다.
Implicit feedback 예) purchase history, browsing history, search pattern, mouse movement 보통 이벤트의 발생 여부를 보고, dense matrix로 구성이 된다.
Basic Matrix Factorization Model
Matrix Factorization model은 user와 item 모두 f dimension의 latent factor space에 mapping한다. user-item interaction은 inner product로 표현할 수 있다. 각 item은 vector $q_i\in \mathbb{R}^f$로 나타내고, $q_i$의 요소들은 이 item이 factor들을 얼마나 가지고 있는지 보여준다. 각 user는 vector $p_u\in\mathbb{R}^f$로 나타내고, vector의 요소들이 대응되는 factor들에 대해서 높은 값을 가진 item들에 대한 흥미도를 나타낸다. $q_i^Tp_u$는 user u와 item i 사이의 interaction을 나타낸다. user u의 item i에 대한 rating을 $r_{ui}$라면, 예측한 결과는 $\hat{r_{ui}}$로 나타낸다. $\hat{r_{ui}}=q_i^Tp_u$ (1)
이런 모델은 SVD(Singular Value Decompositiion)와도 관계가 있다. 하지만 바로 적용시키는 것에는 어려움이 있는데, 그 이유는 평점 matrix 같은 경우 missing value가 굉장히 많은데 conventional SVD는 incomplete한 상태에 대해서 정의되어 있지 않다. 최근 연구의 경우, observed rating 결과만 활용해서 factor vector를 학습하게 된다. observed rating에 대해서 regularized squared error를 최소화시킨다.
$\lambda$는 regularization term인데, 결국 추천의 목적은 observed rating들을 generalize하고 unknown rating을 예측하는 것이기 때문에 overfitting을 피하기 위해서 parameter들을 regularize한다.