Recommendation Systems with TensorFlow on GCP - penny4860/study-note GitHub Wiki
1. 정리
요약
- Content-Based Filtering
- Description
- user가 과거에 좋아했던 item과 비슷한 item을 추천
- item feature dataset을 사용
- Flow
- item embedding matrix를 구한다.
- user matrix를 구한다.
U : (n_users, d)
- 각 user별로 item embedding을 weighted average & normalize
- recommend matrix를 구한다.
R = np.dot(U, V.transpose())
: (n_users, n_items)
- user별 item score별로 정렬해서 추천 리스트를 내보낸다.
- 장점
- 단점
- Collaborative Filtering
- Description
- 해당 user와 비슷한 user가 소비한 item을 추천
- user, item의 interaction dataset을 사용
- Flow
- matrix A를 만든다.
- matrix factorization으로 user embedding, item embedding을 만든다.
A ~ np.dot(U, V')
- U :
(n_users, d)
- V :
(n_items, d)
- user별로 높은 score의 item을 추천
- 장점
- 단점
- Hybrid
질문
2. 내용
1. Recommender Systems Overview
1.1. Course Overview
- recommendation systems are about personalization
- CB reco systems
- item의 meta 데이터를 사용
- user가 과거에 소비한 item과 비슷한 item을 추천
- CF reco systems
- meta data없이 item similarity와 user similarity를 학습
- 해당 유저와 비슷한 유저가 소비한 item을 추천
A(users x items) ~ U x V'
U : (num_users x dim)
V : (num_items x dim)
A : (num_users x num_items)
- user별 item의 score
- user별로 높은 score의 item을 추천한다.
1.2. Recommendation Systems Overview
- Types of recomenndation systems
- Content-based filter
- user가 과거에 좋아했던 item과 비슷한 item을 추천
- item feature dataset을 사용
- Collaborative Filtering
- 해당 user와 비슷한 user가 소비한 item을 추천
- user, item의 interaction dataset을 사용
- Knowledge-Based
- Hybrid system
- item의 feature(meta data)와 interaction data를 함께 사용
- Pitfalls
- Sparsity
- user item간의 interaction matrix가 sparse함.
- Skewed
- 소수의 item에 interaction이 몰린다.
- 소수의 user(헤비유저)가 대부분의 interaction을 수행
- Cold-Start
- Explicit Feedback이 적다.
- Youtube의 경우 view숫자에 비해 like숫자는 적다.
2. Content-Based Recommendation Systems
2.1. Building a Simple Vector-Based Model
- Embedding
- 어떤 데이터를 finite dimensional vector space에 맵핑하는 작업
- Contents-Based Recommendation Systems을 만드는 Flow
- item embedding matrix를 구한다.
- user matrix를 구한다.
U : (n_users, d)
- 각 user별로 item에 대한 선호도를 계산한다.
- 예시: user가 평점을 매긴 item들에 대해서 weighted average & normalize
- recommend matrix를 구한다.
R = np.dot(U, V.transpose())
: (n_users, n_items)
- user별 item score별로 정렬해서 추천 리스트를 내보낸다.
2.2. Building a Content-Based Recommendation System with a Neural Network
3. COLLABORATIVE FILTERING RECOMMENDATION SYSTEMS
- user-item의 interaction data를 활용한다.
- Flow
- matrix A를 만든다.
(user x items)
- rating 또는 0/1으로 matrix를 채운다.
- matrix factorization으로 user embedding, item embedding을 만든다.
A ~ np.dot(U, V')
- U :
(n_users, d)
- V :
(n_items, d)
- user별로 높은 score의 item을 추천