kwan's note

Collaborative filtering - 협업 필터링 본문

ML and AI/Machine learning - Andrew Ng

Collaborative filtering - 협업 필터링

kwan's note 2021. 2. 7. 15:28
반응형

출처: machine learning by andrew ng, stanford cousera lecture

수강일시: 2021.02.06

 

reminder-by-kwan.tistory.com/107

 

recommendation system - 추천 시스템 (content based)

출처: machine learning by andrew ng, stanford cousera lecture 수강일시: 2021.02.06 이번에는 넷플릭스 왓챠같은 ott부터 아마존 쿠팡과 같은 사이트에서 핵심기술로 사용되고 있는 추천 시스템에 대해 알아보..

reminder-by-kwan.tistory.com

 

이번 시간에는 저번 시간에 이어 recommendation system에 대해 알아보고자 합니다.

저번 시간에는 content based system을 알아보았는데 모든 영화에 대해 x값을 지정해줘야하는 단점이 있었습니다.

이번에는 이를 해결하기 위해 새로운 방식인 collaborative filtering을 이용한 recommendation system에 대해 알아보고자 합니다.

 

위와 같이 x1 x2의 값을 모를 때 사람들이 매긴 평점만을 이용해서 x값과 theta값을 알아내는가에 대한 방법입니다.

 

이전에 보았던 x를 이용해 theta를 구하는 방법에 더해 

theta를 알고 있을 때 x를 구하는 방법에 대해 알아보겠습니다.

 

동일하게 gradient descent를 하여 cost function을 minimize하는 x 값을 구하게 됩니다.

 

따라서 우리는 x를 알때 theta를 구하는 방법

theta를 알 때 x를 구하는 방법에 대해 알아보았습니다.

이를 합해 임의의 값에 대해서도 서로의 값을 구하는 식을 만들고자 합니다.

즉 x 와 theta를 random하게 초기화한 후 서로에 대한 costfunction 최소화를 반복하는 식을합하여 계산하면 user의 theta를 이용해 어떤 영화를 좋아하게 될지 알 수 있게 된다.

이를 이용해 초기에 작성했던 표를 채울 수 있게된다.

이제 이를이용해 관련 영화를 찾을 수 있는데 영화들간 x값이 유사하다면(xi-hj의 norm이 입실론 이하)이를 유사하다고 판단한다.

 

만약 사용자가 아예 평가를 안했을 경우에 대해서도 생각해 볼 수 있는데

그냥 식을 돌려버리면 모두 0값이 나오게 된다. 그렇다면 모든 영화에 0점을 준것과 동일한데 이는 맞는 방법이 아니므로 식을 normalize 한다.

식을 normalize하여 평균을 빼주면 평가가 전혀 되지 않았을 때 모두0으로 초기화해도 평균값을 기준으로 평가할 수 있게된다.

반응형