본문 바로가기

[COURSERA] Machine Learning Stanford Uni

[week9] Predicting Movie Rating

A. Content-based recommender systems

 

 

1. 아이템 기반 추천 시스템에 대해 내가 오해하고 있었다. 아이템 기반도 SVD를 이용한 것인 줄 알았는데, 선형 회귀를 이용하는 것이었다.

 

2. 일단 명칭부터 정리를 해야한다. r을 해당 컨텐츠를 보았는지 안보았는지에 대해 표시한다. 

2-2. y는 j라는 이용자가 i라는 컨텐츠에 매긴 평점이다.

2-3. 세타는 이용자 j의 파라미터이다.

2-4. x는 컨텐츠 i의 피쳐다.

 

3. 이용자 j의 컨텐츠 i에 대한 예측치는 파라미터 세타와 컨텐츠의 피쳐의 곱이다.

4. 이용자가 컨텐츠에 대한 평점을 많이 매겨놓을수록 트레인 셋은 많아지는 것이 된다. 

5. 이 트레인 셋을 이용하여 세타를 학습시키고, 이용자가 보지 않은 영화에 대한 평점을 예측한다.

 

1. 위는 그 예시다. 세타에 대해서 위와 같이 일단 생각할 때, x3인 Cute puppies of love에 대한 Alice의 평점예측은 4.95가 된다.

 

 

1. 그 식을 정리하면 위와 같다. 위는 이용자 한명의 세타 값을, 아래는 모든 유저의 세타 값을 구한다.

 

1. 선형회귀와 일치하므로, 뒤에 세타와 람다를 이용해 regularization을 한다. 이 비용함수를 이용하여, 세타를 갱신할 수 있는 경사하강법을 사용하면 끝! 

 

2. 다만, 아이템 기반의 추천 시스템을 사용하기 위해서는 사용자 한명이 많은 다른 영화에 대해 평점을 매겨야 할 뿐만 아니라, 아이템의 피쳐 까지도 꼼꼼하게 필요하기 때문에.. 까다롭다는 단점이 있다.