추천 시스템
- 사용자(user)에게 관련된 아이템(item)을 추천해 주는 것
ex) 영화추천
<간단한 추천 로직>
1. 범주형, 이산적인 데이터를 숫자 벡터로 변환
2. 계산한 숫자 벡터의 유사도를 계산해서 유사도가 가까운 (혹은 높은) 제품을 추천해줌
코사인 유사도(Cosine Similarity)
- 유사도를 계산하는 방법 중 가장 잘 알려진 방법
- 두 벡터 간의 코사인 값을 이용해 두 벡터의 유사도를 계산
- 코사인 유사도 범위 : -1 ~ 1사이의 값을 가짐
- 코사인 유사도가 1에 가까울 수록 유사도가 높음
기타 다른 유사도 계산법
- 유클리드 거리
- 자카드 유사도
- 피어슨 상관계수 등
추천시스템의 종류
출처: https://velog.io/@ijune97/RecommendationAlgorithm
콘텐츠 기반 필터링
- 어떤 사람이 한 영화를 좋아했다면, 비슷한 콘텐츠의 아이템을 추천하는 방식
- 순수하게 콘텐츠의 내용만을 비교해서 추천하는 방식
- 특성(Feature)이 비슷한 콘텐츠를 고르는 요인이 됨
협업 필터링
- 과거의 사용자 행동 양식(User Behavior) 데이터를 기반으로 추천하는 방식
사용자 기반
- 유사도를 계산하는 방식
- 평점행렬로 변환한 후, 평점행렬의 유사도를 계산하여 추천하는 방식
- "당신과 비슷한 고객들이 다음 상품을 구매했습니다."
아이템 기반
- 유사도를 계산하는 방식
- 평점행렬로 변환한 후, 평점행렬의 유사도를 계산하여 추천하는 방식
- "이 상품을 선택한 다른 고객들은 다음 상품을 구매했습니다."
잠재요인
- 행렬 인수분해(matrix factorization)를 이용해 잠재요인을 분석
- 평점행렬을 분해하여 더 많은 정보들을 고려하는 방식
행렬 인수분해
SVD(Singular Vector Decomposition)
- ALS(Alternating Least Squares)
- NMF(Non-Negative Factorization)
실제 추천 시스템
- CTR(Click Through Rate) : 클릭률
- CTR은 마케팅에서도 중요한 지표로 작용
- 이러한 데이터들을 모아 추천을 한 뒤, 해당 아이템이 적절한 추천인지 여부를 평가