/* 2017.7.7 by 3months */
Vectorization : Low Rank Matrix Factorization
* Coursera의 앤드류 응 교수님의 강의를 머신러닝을 보고 요약한 것입니다. 스스로 공부를 하면서 정리를 한 것이기 때문에 내용 설명이 세세하지 않을 수 있으니 참고해주십시오.
영화 A와 영화 B가 비슷하다는 것을 어떻게 판단할 수 있을까?
위와 같은 영화-사용자 테이블에서 주어진 rating들을 Y라는 matrix form으로 나타내어보자.
또 predicted rating, 즉 rating에 대한 예측값을 위와같은 matrix form으로 쓸 수 있다. 여기서 는 i번 째 사용자의 파라미터 벡터이고
는 j번째 영화에 대한 feature 벡터이다. 예를들어 위 matrix의 1행 1열은 1번 째 사용자 1번째 영화에 대해 내린 rating의 예측값이다.
위의 predicted ratings matrix는 사용자 파라미터 매트릭스 A와 영화 feature 매트릭스 B로 분해할 수 있다.
A = [ - theta1 -
- theta2 -
- theta3 -
- .... -
- thetan -]
(예를 들어, theta1은 유저1의 사용자 파라미터 벡터)
B = [- x1 -
- x2 -
- x3 -
- ... -
- xm -]
(x1은 영화1의 feature 벡터)
그러면 가 predicted ratings matrix가 된다. 이처럼 매트릭스를 A, B로 분해하는 것을 low rank matrix factorization이라 한다. Optimization을 통해 B 매트릭스를 얻을 수 있고, 최종적으로 i번째 영화의 feature vector인 를 얻을 수 있다. = [x1, x2, x3 ... xn] 으로 나타낼 수 있고 예를 들어, x1 = action, x2= romance, x3 = comedy ... 와 같이 생각해볼 수 있다. 그러면 영화i와 영화 j와 연관되어 있다는 것은 어떻게 알 수 있을까? 그러면 영화 i를 좋아하는 사용자에게 영화 j를 추천해줄 수 있을 것이다. 가장 편리한 measure은 바로 두 벡터의 distance인 이다. 이 값이 작을 수록 두 영화가 비슷하다고 판단할 수 있다.
'Data science' 카테고리의 다른 글
머신러닝 - 수식 없이 이해하는 Gaussian Mixture Model (GMM) (4) | 2017.08.04 |
---|---|
머신러닝 - TF-IDF를 통한 Sentence Classification 실습 (0) | 2017.07.07 |
머신러닝 - Recommendation System, Collaborative Filtering 기초 (0) | 2017.07.05 |
머신러닝 - Recommendation System, Contents Base Recommendations (0) | 2017.07.05 |
머신러닝 - Recommendation System의 기초 (0) | 2017.07.05 |