카테고리 없음

Review_당신 취향의 맛집을 추천해드립니다 : 장소 개인화 추천 시스템의 비밀

Hardy. 2021. 1. 5. 14:19
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 !

 

dDEVIEW 22:30

 

 

 

지역 대표적인 특징 , 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) 을 활용함.

 

Item Embedding , PMI overall concept , cost function ; RMSE 

 

POI - POI Interaction [ 어떤 POI가 특정 POI와 함께 많이 등장함. ] +

USER - POI Interaction [ User가 특정 POI 에 관심이 있다. ]

 

Co-factor Model , 29:03

* 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