추천 시스템이란? (Recommendation System)
이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 강의 사이트와 유투브 채널을
오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
● 잔재미코딩 유투브 오픈
[구독해보기]
1. 추천 시스템이란? (Recommendation System)¶
- Selection, Search로 부터의 한단계 진화
- item 개수가 한명의 사용자가 한번에 열람 가능한 경우, 보통 사용자는 본인 기준에 의해 selection 함
- item 개수가 많아지면, 사용자는 원하는 query(질의어)로 search를 시도
- item 개수도 많고, 원하는 질의(query)가 무엇인지조차 모를 때, recommendation이 매우 유용
- Amazon, Netflix 등이 recommendation으로 엄청난 성장을 이룸
Recommendation 기본 알고리즘¶
1.1. Popularity, High Rated Based (가장 단순함)¶
- 가장 쉽게 인기도, 즉 높은 평점을 갖는 item을 추천 가능
- 모두에게 동일한 item이 추천 됨
1.2. Collaborative Filtering (중간 단계)¶
- user & item간의 rating을 이용하여, 사용자끼리의 유사도를 찾음
- 특정 user와 유사한 사용자들이 남긴 평점을 기반으로 해당 user의 평점을 예측
- explicit 한 평점이 있을 경우에는, 해당 평점을 사용
- 그렇지 않은 경우에는 explicit한 평점으로 변환
- e.g) music domain의 경우에는, user가 해당 음악을 들을 횟수로 평점으로 변환하여 사용
- 즉, 해당 user가 해당 item을 얼마나 좋아할 것인지 수치적으로 예측하는 것을 의미
- User-User 또는 Item-Item similarity를 이용.
- 일반적으로 recommendation이 필요한 시스템에서는 Item개수가 user를 월등히 능가함
- 각각 User-based CF, Item-based CF라고도 함
- Similarity
- Euclidean distance, cosine, pearson 등 여러 수학적 유사도 계산 방법이 존재
- similarity가 높은 사용자 집단에서 각 사용자들이 남긴 평점을 weighted sum으로 계산하여 평점 예측
- 또는 해당 사용자의 평균평점을 similarity가 높은 사용자 집단의 weighted 조정평균과 더하여 평점 예측
- 문제점
- Cold Start Problem
- 첫 방문한 사용자는 유사한 사용자가 없기 때문에 추천이 되질 않음
- 따라서, Netflix나 Watcha에서는 첫 방문 시, 일정 개수 이상의 영화에 평점을 남기는 것을 유도
- User-Rating sparsity Problem
- 대부분의 사용자는 평점을 잘 남기지 않는 경향이 있음
- 이들에게는 개인화가 어려움, Popularity based 추천을 하기도 함
- Cold Start Problem
1.3. Personalization (개인화)¶
- 모두에게 동일한 item이 아닌, 각 개인의 성향에 맞는 item을 추천
- user-item rating으로 Collaborative Filtering Algorithm, SVD등이 사용 됨