Source ; deview.kr/2020/sessions
이 포스팅은 DEVIEW2020 세션 중 장소 개인화 추천 시스템의 비밀에서 배운 것을 토대로 작성했습니다. 좋은 콘텐츠 제공해주신 네이버 및 연사분에게 감사드립니다 :)
Contents
1. 오늘 저녁, 지금 여기에서 어디에서 저녁을 먹어야할지 고민된다면?
2. 장소 개인화 추천 시스템
3. '오늘의 PICK'을 통해 풀어나간 문제들
4. Lesson Learned (a.k.a. It's Real World!)
5. 더 풀어야하는 숙제들
2. 장소 개인화 추천 시스템
스마트어라운드
취향에 맞는 식당을 집어주면 좋겠다 [유저의 니즈] -> "장소 개인화 추천 서비스"
구성요소
1. Location ; ' 이 지역은 어떤 특성을 가진 지역일까? ' , ' 이 주변 어디까지 가볼까? '
2. POI ; ' 이 장소는 믿고 올만한 곳인가? ' , ' 이 장소에서 사람들은 뭘 즐길까? '
* Point of Interest
3. User ; ' 나의 취향과 관심사는 무엇일까? ' , ' 나와 비슷한 취향을 지닌 사람들은 누구일까? '
User History!!!
--> 위의 3개의 요소를 이해하여 유저의 취향에 맞게 추천해주고자 하는 것이 최종적인 목표임. 다시 한번 정리해서 말해보자면 User History -> Interactions -> Understanding -> History-based POI Receommendation System
3. 어떤 문제를 풀어야 할까?
1. User의 취향을 어떻게 잘 이해할 수 있을까?
Collaborative Filtering
가정 ; 사용자의 과거의 Preference가 미래에서도 그대로 유지될 것이다.
* 어떻게 P(i,j)를 정할 것인가?
목표 ; 사용자의 취향을 강하게 반영하여, 사용자 취향에 딱 맞는 업체를 추천하자.
--> P(i,j) = n(click) , Explicit feedback을 활용하여 정의를 내림.
해석 ; USER-POI Interaction 이라고도 하며 , 만약 'user가 POI에 대해 Click를 했다.' 하면 그때 'User은 POI에 대해 Click 수만큼 좋아한다.'라고 봄.
* 허나 여기에서 일부 P(i,j)에 overfitting을 방지하고자 한가지 tool을 추가해줌.
--> P(i,j) = 1 + a * n(click)
* Dependcy problem_사용자의 Preference가 잘 반영되지 않음.
--> bias 현상이 발생함으로써 다음과 같은 2가지 현상이 발생하였음.
1. Popular 맛집만 추천되는 현상 ; 많은 USER가 클릭을 한 맛집 위주로 학습되는 문제.
--> Implicit feedback을 반영하였을 때 그저 취향을 반영하는 것이 아닌 대중적인 것을 추천해줌.
원인 ; USER 의 Click에만 의존함. 유저의 다른 feature가 더 필요함.
2. Accuracy가 낮은 현상 ; 음악이나 동영상 컨텐츠는 자주 소비하지만 , 장소는 Needs가 있을 때만 낮은 빈도로 소비함.
원인① ; Data가 너무 Sparse함. --> USER 의 Click에만 의존함. 유저의 다른 feature가 더 필요함.
원인② ; Folding 현상이 발생함
* Folding 현상이란?
ㆍ Matrix Factorization 에서 주로 발생함.
ㆍ Missing value handling 을 할경우 관련없는 데이터가 비슷한 데이터 분포로 변해감.
원인 ; 부산에 사는 사람은 부산에서만 POI를 소비함 ! 즉, Partitioning the unobserved data !
지역 대표적인 특징 , Folding 현상을 잘 보여주는 Matrix interpretation !
위에서 까지 언급한 문제에 대한 고민 및 해결에 대한 점을 도식화하여 정리
Explicit Feedback 에서의 bias challenge 즉 , 편향 문제를 유저의 Implicit Feedback 도 포함하여 적용하여 보자 .
--> How ? POI-POI Interaction을 추가적으로 사용해보자 !
* POI-POI Interaction 이란?
IF '어떤 POI가 특정 POI와 함께 많이 등장한다.' THEN '해당 POI들은 서로 유사하다!'
지표 ; PMI (Pointwise Mutual Information) 을 활용함.
POI - POI Interaction [ 어떤 POI가 특정 POI와 함께 많이 등장함. ] +
USER - POI Interaction [ User가 특정 POI 에 관심이 있다. ]
* POI Coverage ; USER에게 상위 K개 까지 노출되는 POI의 갯수
Evaluation 을 WMF2 와 Cofactor Weight 를 비교하여 performance 을 확인함..
* WMF2 = Implicit Feedback based Recommendation
2. 장소를 장소답게 추천하려면 어떻게 해야할까?
'오늘의 PICK' 알고리즘
Understanding User + Understanding Location -> Understanding POI
'맛집에 대해 관심이 많은 USER부터 전혀 관심이 없는 USER까지 다양하다!' ,
'사람들은 Location에 따라, 추천 받고 싶어하는 장소가 다르다!'
-> '추천받는 POI를 신뢰할 수 있으면 좋겠다!'
고민 1. "USER의 맛집에 대한 관심도는 천차만별이다."
맛집 관심도에 따라 적당한 추천의 방식이 다르다.
USER group 을 다음과 같이 3가지 유저로 나누었다. 그에 따라 적용하는 모델이 각각 다 다름.
① Heavy User ; CoFactor ( Collarborative Modeling )
② Middle User ; POI2VEC ( Item Embedding)
③ Light User ; Statistical Model ( Group based Recommendation )
고민 2. "Location의 방문 빈도에 따라 원하는 것이 다르다!"
자주 가는 곳과 가끔 가는 곳에서 원하는 맛집이 다르다.
자주 가는 곳 ; 일상 , 가끔 가는 곳 ; 여행 혹은 일탈 --> 장소에 따라 유저의 의도는 다르다.
일상
keyword ; Serendipity
여행 혹은 일탈
keyword ; Popularity
고민 3. "추천받는 POI를 신뢰할 수 있으면 좋겠다"
"추천받는 POI를 신뢰할 수 있으면 좋겠다!"
--> 추천에 대한 설명이 있으면 추천에 대해 믿음이 간다.
4. Lesson Learned (a.k.a. It's Real World!)
Click Through Rate Benchmark
CTR = Action이 있는 업체 수 / 노출된 업체 수
5. 더 풀어야하는 숙제들
Group Segementation
Group = 성별 + 연령대 --> Group = 성별 + 연령대 + 거주지역 + 주요관심사 + 등등
--> Metadata Embeddings for Group Segementation
Explanation
추천에 대한 설명력 강화 ; Explainable AI + Recommendation System
ㄱ. 개인화된 Micro Review
ㄴ. 개인화된 POI Image
ㄷ. Explicit USER Action
...
Cross Domain
Source Data ; Transfer Cross Domain Knowledge
ㄱ. 검색 Query
ㄴ. 쇼핑 영수증
ㄷ. 놀거리 예약 내역
...
RECAP & REVIEW
1. Implicit feedback 은 대중적인 것만을 추천해줄 수 있음
-> auxiliary data , side data 등 Explicit feedback 을 어떻게 접목할 것인가에 대한 고민.
2. Folding 현상에 대해 새롭게 알게 됨.
; 다시 정리해서 말해보자면
- Matrix Factorization에서 발생되는 현상
- 누락된 데이터를 잘못 처리하면서, 서로 다른 Preference를 가진 USER와 ITEM들이 유사한 Dense Vector를 갖게 하는 것.
3. POI-POI Interaction
4. CoFactor Modeling
* POI Coverage ; USER에게 상위 K개 까지 노출되는 POI의 갯수
5. User Groupping Technique
asdas
6. Following the users intention from when user's present location
일상 , 여행 혹은 일탈의 2가지 개념으로 나누어 생각.
7. 추천받는 POI를 유저에게 신뢰할 수 있게끔 가공하여 제시하기.
추천에 대한 설명이 있으면 추천에 대한 믿음이 감.
ㄴㅁㄴㅇ
8. Future work
Group Segementation
Explaniable Marketing
Cross Domain
+ cxl.com/guides/click=through-rate/benchmarks/
What Is a "Good" Click-Through Rate? | CTR Benchmarks | CXL
Is your click-through rate "good"? Learn about how to calculate a click-through rate, CTR benchmarks, and what really matters for conversions.
cxl.com