1. 왜 Non-personalized Recommendation을 하는가?
- Cold-start problem : 새로운 유저가 들어오면 그 유저에 대한 정보가 부족함
- 간단하면서 유용함
- 개인화가 불가능한 어플리케이션과 미디어에 적용
2. Non-personalized Recommendation
출판 추천 : 편집상 선택됨
- 신문의 책, 영화, 음악 평론
- 미쉐린 가이드
인기도 기반
- 빌보드 차트, 멜론 차트
- 박스오피스 차트 등..
3. Popularity-based Recommendation
각 아이템의 점수는 요약된 통계에 기반해서 계산됨
- 인기도(혹은 빈도)
- 평점
- 유저가 선호할 확률
Naïve 평점은 잘못 될 수 있음
- 선호하는 사람들의 %를 합산하여 점수를 조정함
- 개인의 신용도를 고려하기 위해 각 유저의 평가를 정규화함
Weak Personalization
- 사용자의 demographic data를 first-pass “stereotyped” personalization로 사용할 수 있음
demographic data 예시) 나이, 성별, 국적, 우편번호, 주소 ...
- Product associations을 통해 아이템에 기반한 추천을 할 수 있음
4. Stereotyped Recommendation
유저는 유저가 속한 집단의 취향과 다른 취향을 가질 수 있다.
즉, 인기가 많은 아이템이 특정 개인의 취향에 부합하지 않을 수도 있다는 말이다.
1단계 : 사용 가능한 demographics과 그와 관련된 것을 식별함
- 연령대에 따른 그룹화
- 우편 번호는 경제적 지위, 도시/지방, 지배적인 사상 등을 반영할 수 있음
2단계 : 데이터와 demographics의 상관 관계를 분석
5. Product Association Recommenders
연관된 추천을 제공하기 위해 현재의 내용 (path, link ...) 을 이용한다
일시적이고 내용에 기반된 추천 (Session-based recommendation)
- 현재 유저의 navigation이 유저의 현재 관심을 반영함
- 유저 취향을 장기적으로 반영하지 못함
Association rule mining: Lift metric
목표 : 데이터셋에서 자주 발생하는 패턴, 상관관계, 관련을 발견하는 것
$$ Lift(X \rightarrow Y) = \frac{P(Y|X)}{P(Y)} = \frac{P(X,Y)}{P(X)\cdot P(Y)} $$
Walmart’s “Beer and Diapers” story
맥주의 판매와 기저귀의 판매의 상관관계에 대한 이야기로, 맥주와 기저귀를 같이 두면 기저귀를 사러 마트에 온 남편이 옆에 놓인 맥주도 함께 구매한다는 이야기다. [1]
6. Content-based Recommendation
내용의 속성을 사용해서 정적인 선호를 모델링할 수 있음
예시1) 뉴스 : 기술, 연예, 식당
예시2) 옷 : 파란색, 면 재질, 30,000원 이상, 캐쥬얼
프로필(Profile) : 속성의 벡터, 또는 선호 키워드 같은 것
Content-based Recommendation은 프로필을 만드는 것을 목표로 한다.
아이템 프로필 \( \rightarrow\) matadata, tagging
유저 프로필 \( \rightarrow\) 구매한 아이템의 프로필들을 모아서
유저에게 평가가 되지 않은 아이템들도 유저 프로필에 대해 아이템 프로필을 매칭해서 평가할 수 있다.
- Vector similarity : dot-product, cosine similarity
7. Vector Space Model
가능한 키워드들은 Content Space를 정의한다
- 각 키워드는 차원이고, 각 유저와 아이템은 공간에 위치가 있음
- 유저의 선호와 아이템의 매칭은 두 벡터가 얼마나 가깝게 놓여있는가로 측정함
키워드 벡터를 통한 Item Representation
- 1 또는 0 (키워드 적용 유무)
- 발생 횟수
- TF-IDF
예시) “Avatar: The way of water” : {“American”: 3, “science”: 2, “water”: 10, “Navi”: 5, …}
키워드는 특징, 태그, 용어 등으로 일반화 할 수 있다.
예시) “Avatar: The way of water” : {“James Cameron”: 1, “action”: 1, “fantasy”: 1, …}
8. TF-IDF Weighting
$$ weight = \frac{term frequency}{document frequency} $$
$$ w_{i,j} = tf_{i,j} \times \log{\frac{N}{df_i}} $$
- \( tf_{i,j} \) : 용어 i가 문서 j에 나타난 횟수
- \( df_{i} \) : 용어 i를 포함하는 문서의 수
- \( N \) : 전체 문서의 수
TF의 변형
- 0/1 Boolean frequencies : threshold 이상 발생하는 것 기준
- Logarithmic frequencies : \(\log{(tf+ 1)}\)
- Normalized frequencies : 문서 길이로 나눔
9. 아이템에서 유저 프로필로
유저의 프로필은 유저가 소비한 아이템의 벡터들을 모아서 얻을 수 있다.
Amy’s profile = Aggregate (Avatar’s profile, Slam Dunk’s profile, …)
Target Application에 따라서 다양한 방식들이 있음
- 각 아이템을 정규화 해야하는가?
- YES : 모든 아이템이 같은 가중치를 가짐
- NO : 더 인기가 많은 벡터를 가진 아이템은 선호를 더 잘 반영함 (가중치를 다르게 해야함)
- 각 아이템의 가중치를 어떻게 줄 수 있는가?
- 높은 점수를 가진 아이템에 높은 가중치
- 낮은 점수를 가진 아이템에 음의 가중치
- ...
10. Content-based Recommendation의 장단점
(+)
1. 완전히 content-based : cold-start 문제에서 자유로움
2. 이해할 수 있는 프로필 : 아이템의 벡터를 모아서 얻음
3. 쉬운 계산
(-)
1. 너무 간단한 모델은 상호 의존성을 다룰 수 없음
예시) "폭력적인 코미디와 역사 다큐멘터리를 선호하지만, 역사적 코미디나 폭력적인 다큐멘터리를 선호하지 않음"
참고
[1] https://bigdatabigworld.wordpress.com/2014/11/25/beer-and-nappies/