반응형

/* 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인 이다. 이 값이 작을 수록 두 영화가 비슷하다고 판단할 수 있다.





반응형