추천시스템(Recommender System)
Predicting Movie Ratings 개발 (연습)
사용자가 이미 Rating한 영화들을 기반으로 아직 Rating 하지 않은 영화들을 AI가 판단해서 예측하는 서비스
먼저 각 영화 별로 어떤 내용일 담겨있는지를 feature로 사용하는 방법에서 시작
- 영화가 얼마나 로맨틱한지 나타내는 feature x1
- 영화에 얼마나 액션 장면이 잘 만들어졌는지를 나타내는 feature x2
- 각 사용자 j에 대하여 parameter θ(j)∈R3 Predict user j as rating movie i with (θ(j))Tx(i)

비용함수 (Optimization Objective)

협업 필터링 (Collaborative Filtering), Random Initialization 기법
각 값을 구할 시, 처음부터 값을 알고 대입하는 것이 아니라 적절한 값을 찾으려는 것이기 때문에
랜덤한 값을 넣어서 학습하며 최적의 값을 찾는다.(Feature를 따로 정해주는 것이 아니라 모델이 알아서 만들어 내게 됨)
그러므로 x(i)도θ(j)도 다 랜덤 값이다.

협업필터링 알고리즘 총정리

실습 - 콘텐츠 기반 추천 시스템
https://colab.research.google.com/drive/194uAjRwlx480-dM6IPugg4cdubU1vvRf?authuser=1#scrollTo=Z8YGbV6hhfaW
실습 - 협업필터링 기반 추천 시스템
SGD(확률적 경사 하강법) 행렬 분해 과정
- P와 Q를 임의의 값을 가진 행렬로 설정
- P와 Q, T를 곱해 예측 R 행렬을 계산하고, 예측 R 행렬과 실제 R 행렬에 해당하는 오류 값을 계산한다.
- 이 오류 값을 최소화할 수 있도록 P와 Q 행렬을 업데이트 한다.
- 만족할 만한 오류 값을 가질 때까지 2,3번 작업을 반복하면서 P와 Q를 업데이트해 근사한다.
https://colab.research.google.com/drive/1hZGvcH5SEZ_GUZ5olv678NRNf1j54SJs?authuser=1#scrollTo=pZe_5t8tIS_c