19. 누가 날 구해 주나요?
구글?
내가 뭘 찾는지 알 때나
찾는 것도 귀찮으면?
엄청 많이 튀어 나옴
Facebook 친구, 지인?
친구가 없는 자립심 강한 사람이거나
내 친구들과 난 취향이 달라서 걔들과 왜 친한지 신기할 때는?
전문가?
비싸고
만나 뵙기도 힘듬
그래서. 결론은 버킹…추천 시스템 !
35. 뭘 추천 해주냐면
•
•
•
•
•
•
•
•
•
•
광고 메세지
투자 상품
음식점
까페
음악
영화
TV 쇼
책
옷
식료품
•
•
•
•
•
•
•
•
•
•
뉴스
데이트 상대
친구
수업 과목
의약품
연구 논문
인용 문헌
라이브러리
전문가
태그
36. 추천 시스템의 역할
당신이 어떤 상품/서비스를 얼마나 좋아할지 예측
당신이 좋아할만한 N개의 상품 추출
어떤 상품/서비스를 좋아할만한 N명 추출
이게 왜 당신에게 추천 되었는지 설명
당신의 반응으로 부터 추천 시스템 업데이트
37. 추천 시스템의 개략적인 종류
Editorial Recommenders
전문가의 추천
유명인의 추천
Contents-based Filtering
Genome 기반 추천
Meta 기반 추천
Collaborative Filtering Recommenders
Memory-based : User 기반 추천, Item 기반 추천
Model-based : Matrix Factorization, LDA, …
Hybrid Recommenders
선형 결합/순차적 결합/스위칭
38. CBF의 Meta 정보 예시
웹 페이지
words, hyperlinks, images, tags, comments, titles, URL, topic
음악
genre, rhythm, melody, harmony, lyrics, meta data, artists, bands,
press releases, expert reviews, loudness, energy, time, spectrum,
duration, frequency, pitch, key, mode, mood, style, tempo
사용자
age, sex, job, location, time, income, education, language, family
status, hobbies, general interests, Web usage, computer usage, fan
club membership, opinion, comments, tags, mobile usage
상황
time, location, mobility, activity, socializing, emotion
42. 연관 규칙 마이닝(Association Rule Mining)
규칙 선택 기준
지지도(Support)
특정 상품(특정 상품의 조합)이 전체 구매 이력에서 등장하는 빈도
SUPP(A) = S(A)/N
SUPP(AB) = S(A∪B)/N
N: 트랜잭션 수
신뢰도(Confidence)
규칙의 IF에 해당하는 첫번째 상품을 구매한 경우 어느 정도 비율로 규칙의 THEN에 있는 상품을
구매하는지 A를 산 빈도 대비, A를 샀을 때 B를 산 빈도의 비율
CONF(AB) = SUPP(AB)/SUPP(A)
향상도(Lift)
두 상품간의 연관성을 표시
값이 1인 경우 두 상품의 구매는 독립적
값이 1보다 큰 경우 두 상품의 구매는 연관성이 있다.
LIFT(AB) = SUPP(AB)/SUPP(A)∙SUPP(B)
일반적인 기준
지지도가 일정 값 이상인 연관 규칙을 먼저 골라낸 후
신뢰도가 일정 값 이상인 연관 규칙을 선정
Serendipity가 중요한 경우, 향상도가 높은 연관 규칙을 선정
44. Memory-based 협업 필터링
개념
여러 사용자들의 구매 이력을(Collaborative) 이용하여 통계적으로 특정 고객에
게 필요한 정보만을 추출(Filtering)
핵심 IDEA
나와 성향이 비슷한 사용자들을 찾고, 그 사용자들이 산 아이템을 추천
45. Memory-based 협업 필터링 : User-based CF
추천 Item 계산: 사용자 기반 협업 필터링
• 코사인 유사도(Cosine Similarity) = Cos(C1,C2)
= (0,1,0,1)∙(0,1,1,1)/(√2)x(√3)=0.8196
• 자카드 유사도(Jaccard Similarity) = J(C1,C2)
= |A∩B|/|A∪B|=교집합개수/합집합개수=2/3=0.67
사용자간 유사도와 원래 구매이력을 곱하면 선호도 매트릭스가 나옴
X
=
사용자간 유사도 대신 아이템간 유사도를 구한후 동일한 과정을 수행할 수 있음 아이템 기반 협업 필
터링
46. MapReduce 기반 협업 필터링 1/2
전체 사용자를 구매 이력이 유사한 사용자 그룹으로 나눔
MinHash 이용
실제로 유사도 계산을 수행하지 않고 사용자 그룹으로 나누는 방법
구매 이력이 유사하면 생성되는 Hash Key도 유사함
아이템별 함수 값 계산 후 가장 최소값을 Hash Key로 이용
H(x) = (ax+b) mod M
x는 item ID 값으로 정수
a, b, M은 사용자 정의 파라메터
Hash 함수 1개인 경우
h1(x) = (3x + 7) mod 13
구매 이력: 10000056,10,15,18,99,104
1000056, 11, 0, 9, 5, 7 이 중 최소값을 Hash Key로 사용 0
일반적으로
Hash 함수 p개를 사용하고 Concatenated 값을 특정 사용자의 Group ID로 이용
p개의 함수를 q set을 사용
Hash 함수가 5개인 경우
[0,11,4,5,13] 정해진 자리수의 길이로 연결(3자리) 000, 111, 004, 005, 013 사용자의 Group ID
000011004005013
51. Model-based 협업 필터링 : ALS MF
순서대로 업데이트 하고 병렬화 하자 !
Reduce user-item matrix to 1 and 0 = P
⌃
Factor as approximate P ≈ X•Y’ = P by
⌃
Start with random Y
Compute X so that X•Y best matches P
(Frobenius / L2 norm)
(Alternating)
Repeat for Y
Iterate
⌃
(Least Squares)
Large values in P are good recommendations
57. Model-based 협업 필터링 : LDA
Parameters
Num of Topic : 100
Num of Vocab : 10784
Num of Iteration : 30
Method of Sampling : Gibbs Sampling, Variational Bayes
59. CF는 이게 문제
데이터가 커서 메모리 많이 먹음 - Scalability
– Netflix (2007): 5M users, 50K movies, 1.4B ratings
평가 잘 안해줌 - Sparseness
– I have rated only one book at Amazon!
첨에는 뭐줌? - Cold-Start
– New users and items do not have history
안보면 대화에 못낌 - Popularity bias
– Everyone reads “Harry Potter”
참신한 님들이 있음 - Hacking
– Someone reads “Harry Potter” reads “Karma Sutra”
60. 추천에 대한 설명… 좀 많음
요즘 이게 대세임…
이 감독의 다른 작품임 …
비슷한 가수의 다른 노래임 …
너하고 비슷한 사람들이 좋아함 …
니가 그걸 들었으니 이건 어때요 …
이거 두 개가 같이 팔리더라고 …
당신 동네에선 이게 잘나가 …
이게 별점이 최고 …
이게 신상임 …
61. 평가 지표… 좀 더 많음
사용자 만족 - User Satisfaction
예측 정확도 - Prediction Accuracy
추천 범위 - Coverage
추천 다양성 - Diversity
참신성 - Novelty
의외성 -Serendipity
신뢰성 - Trust
강건성 - Robustness
실시간성 - Real-time
적시성 - Timelineness
62. 더 고민해야 되는 것들… 아놔
사용자 학습 - User Expertise Modeling
사용자 편향 유도 – Filter Bubble
복합 사용자 경험- Hybrid Discovery Experience
컨텍스트 인식 – Context Awareness
평생 동반자 – Age Progression, Life-Stage Tracking
가격 민감성 – Free? Paid? Freemium?
극과극의 반응 – ‘Napoleon Dynamite’ Problem.