2. Long tail
추천시스템, 왜 필요할까?
오프라인 :
공간의 한계로 일부 인기 품목만 진열
온라인 :
모든 품목을 볼 수 있음
온라인 상에서 볼 수 있는 품목 = Long tail
• 사용자는 오히려 많은 상품들 속에서 무엇을 선택해야 할지 혼란을 겪음
• 고객에게 맞는 적절한 상품을 추천한다면, 고객의 편의와 판매율을 높일 수 있다!
3. Long tail
추천시스템, 왜 필요할까?
오프라인 :
공간의 한계로 일부 인기 품목만 진열
온라인 :
모든 품목을 볼 수 있음
온라인 상에서 볼 수 있는 품목 = Long tail
• 사용자는 오히려 많은 상품들 속에서 무엇을 선택해야 할지 혼란을 겪음
• 고객에게 맞는 적절한 상품을 추천한다면, 고객의 편의와 판매율을 높일 수 있다!
4. Utility Matrix
추천 시스템은 matrix에 존재하는 데이터를 바탕으로 비어 있는 값들을 예측하는 것이 목표
유저-아이템 정보를 기반으로 한 matrix
실제 Matrix는 더 방대
→ Sparse한 특징
• Content-based
• Collaborative
• Hybrid : Content & Collaborative
대표 방법
추천시스템 도입
Avatar LOTR Matrix Pirates
Alice 1 0.2
Bob 0.5 0.3
Carol 0.2 1
David 0.4
5. Content-based : 아이템 특성 기반
1. 사용자가 좋아하는 항목 집합 찾기
2. 프로필 구성 : 사용자가 높게 평가한 아이템이나
구매한 아이템 기반
3. 사용자 프로필을 아이템 목록과 대조하여 추천
유저가 관심을 보인 아이템의 속성을 분석하여 새로운 아이템 추천
8. Content-based
VS
장점
+ 다른 사용자의 데이터는 필요 없음
+ 독특한 특징을 가진 사용자도 만족시킬 수 있
음
+ 특정 항목이 추천된 이유를 제공할 수 있음
- 신규 유저의 프로필을 어떻게 구축할 것인
지 고민이 필요
- 사용자 프로필은 항목 프로필로 작성됨
→ 평가에 반영된 장르에 해당하는 아이템만
추천됨
단점
9. Collaborative : 협업 필터링
User-user 간 유사도, User history 이용
선호도(아이템에 대한 점수)나 구매 이력을 바탕으로 유저 간의 유사도 측정
→ 유사한 유저의 선호 목록을 참조해서 추천
User-based
10. Collaborative : 협업 필터링
Item-item 간 유사도, User history 이용
Item-based
유저가 이전에 구매했던 상품을 기반으로, 그 상품과 유사한 다른 상품을 추천하는 방식
11. 유사도 해리포터매트릭스 노트북 겨울왕국라라랜드
해리포터 1 0.97 0.99 0.93 0.89
매트릭스 0.97 1 0.96 0.94 0.93
노트북 0.99 0.96 1 0.77 0.59
겨울왕국 0.93 0.94 0.77 1 0.99
라라랜드 0.89 0.93 0.59 0.99 1
Collaborative 유저 – 평점 기록을 이용해 추천하는 방식
해리포터 매트릭스 노트북 겨울왕국 라라랜드
새민 5 4 4 3
효원 4 4 5 3
은재 2 1 4 3
선우 4 2 3 1
유저 * 유저
유사도 새민 효원 은재 선우
새민 1.00 0.96 0.82 0.98
효원 0.96 1.00 0.97 0.92
은재 0.82 0.97 1.00 0.71
선우 0.98 0.92 0.71 1.00
아이템 * 아이템
1. 유저-유저 : 유저와 비슷한 성향의 유저를 찾아서 영화 추천
2. 영화 - 영화 : 유저가 높은 평점을 매긴 영화와 유사한 영화를 추천
13. Collaborative
VS
장점
+ 아이템에 대한 충분한 정보 없이도 사용 가
능
- Cold Start : ‘새로 시작할 때 곤란함’ 을 의미
하며, 새로운 유저나 아이템의 초기 정보 부족
- Sparsity : 수 많은 아이템 중 경험이 없거나,
구매하지 않은 경우가 데이터의 대부분
(Ex. 내가 평점을 매긴 영화보다 평점을 매기지 않은 영
화가 훨씬 많음)
- Scalability : 유저와 아이템의 수가 많아질수록
데이터의 크기가 기하급수로 커짐
단점
14. SVD
특이값 분해 (m×n)차원의 A행렬을 그림과 같이 분해하는 방법론
행렬 분해를 이용하여 차원을 축소하는 방식
→ 데이터를 대표하는 특징을 찾을 수 있다!
A=UΣV⊺
U : (m×m)차원의 직교행렬
V : (n×n)차원의 직교행렬
Σ : (m×n) 직사각 대각행렬 (대각성분 이외의 모
든 값은 0
17. Auto Encoder
오토인코더는 행렬 분해와 비슷하게
입력 데이터를 원래의 차원(dimension) 보다 적은 데이터로 줄인 후에,
변환한 데이터를 기반으로 원래의 데이터를 복원하는 구조
18. 플레이리스트 표현
현재 플레이리스트에
해당 곡이 포함 -> 1
해당 곡이 포함되지 않음 -> 0
인코딩 결과
데이터를 한 문장으로 설명으로 줄임
(100여 개의 숫자들 = 임베딩)
디코딩 결과
원래 플레이리스트에 들어있었을 곡들
이 무엇인지를 유추
Auto Encoder : 추천시스템
19. Hybrid
협업 필터링과 콘텐츠 기반 필터링을 조합하여 상호 보완적으로 개발하는 알고리즘
콜드 스타트 문제를 해결하고자 신규 콘텐츠는 콘텐츠 기반 필터링으로,
데이터가 쌓인 후에는 협업 필터링을 적용하여 추천의 정확성을 높임
20. Deep learning
Deep learning을 이용한 대표적인 추천 시스템 모델 : Wide - Deep
Wide - Memorization
축적된 구매내역 데이터에서 사용 가능한 상관
관계를 사용 ex) 운동화를 사는 사람은 다른 운
동용품도 구매
Deep - Generalization
과거에 한번도 발생하지 않았던 새로운 Feature
조합을 탐색하여 추천의 다양성을 높임
신경 네트워크 요소(Deep)와 선형 모델 요소(Wide)의 장점을 결합하여
Memorization과 Generalization 모두를 달성