Recommender System/추천시스템 톺아보기

[RS/추천시스템 톺아보기] 당신 취향의 맛집을 추천해드립니다 review

아웃라이어_ 2022. 4. 4. 19:07

* 가짜연구소 추천시스템 톺아보기 스터디 활동을 기반으로 작성된 포스트입니다.

네이버 Deview 2020: 당신 취향의 맛집을 추천해드립니다 - 전영환님(Naver SmartAround)

영상 링크: https://deview.kr/2020/sessions/349

 

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

발표자 : 전영환

deview.kr

* 스마트어라운드(Smart-around)?

- 지금 상황에 맞는 가장 가볼만한 장소를 발견해주는 서비스

- 장소 개인화 추천에 대한 고민

* 장소 개인화 추천 시스템(오늘의 Pick) 구성요소

- Understanding Location: 지역에 대한 이해; "이 주변 어디까지 가볼까?", "이 지역은 어떤 특성을 가진 지역일까?" 

- Understanding POI(Point Of Interest): 장소에 대한 이해; "이 장소는 믿고 올만한 곳인가?", "이 장소에서 사람들은 뭘 즐길까?"

- Understanding User: 유저에 대한 이해; "나의 취향과 관심사는 무엇일까?", "나와 비슷한 취향을 지닌 사람들은 누구일까?"

* 장소 개인화 추천 시스템의 정의

- Location과 POI, User를 이해하여 User의 취향에 맞는 장소를 상황에 맞추어 제안해주는 시스템

- User history: 검색 기록, 클릭 기록, 방문 기록 등

* User의 맛집 취향을 어떻게 잘 이해할 수 있을까?

- Collaorative Filtering: 사용자의 과거 Preference가 미래에서도 그대로 유지될 것이다.

- If "User가 POI에 대해 Click을 했다" Then "User는 POI에 대해 관심이 있다!"

- 목표: 사용자의 취향을 강하게 반영하여 사용자 취향에 딱 맞는 장소를 추천하자

- Serendipity: 사용자가 평상시에 쉽게 접하지 못하는 뜻밖의 행운. 자신의 취향이지만 평소엔 발견하지 못했던 장소를 추천

- P(i, j)를 n(click)으로 정의

     - IF "User가 POI에 대해 Click을 했다" Then "User는 POI에 대해 Click 수만큼 좋아한다."

- 문제: 뜬금없는 POI들이 추천되는 현상(카페/베이커리를 다니는 유저에게 국밥집을 추천, 술을 못하는 유저에게 술집을 추천)

     - 원인: 일부 높은 P(i, j)에 의해 Model이 왜곡(일부 Absuer(이상치)들의 문제)

- 해결책: User의 Click을 일부만 믿어보자

- 또 다른 문제: 사용자의 Preference가 잘 반영되지 않음

     - Popular 장소만 추천되는 현상 -> Long-tail problem, 많은 User가 클릭을 한 맛집 위주로 학습되는 문제

     - User의 Click(User-POI Interaction)에만 의존한다

 

     - Accuracy가 낮은 현상

     - 원인1: Data가 너무 Sparse하다(99.99%의 Sparsity)

     - 음악이나 동영상 콘텐츠는 자주 소비하지만, 장소는 Needs가 있을 때만 낮은 빈도로 소비한다.

 

     - 원인2: Folding 현상

     - Matrix Factorization에서 발생되는 현상

     - 누락된 데이터를 잘못 처리하면서 서로 다른 Preference를 가진 User와 Item들이 유사한 Dense Vector를 갖게 하는 것

     - Partitioning the unobserved data: 부산에 사는 사람은 부산에서만 POI를 소비한다(지역 데이터의 가장 큰 특징)

- 이러한 CF 과정을 개선하기 위해 POI-POI Interaction을 추가적으로 사용하여 모델 학습

- POI-POI Interactoin 정보 추가 후 모델 성능 비교

* 장소를 장소답게 추천하려면 어떻게 해야할까?

- Understanding User: 어떤 User가

     - 맛집에 대해 관심이 많은 User부터 전혀 관심이 없는 User까지 다양

- Understanding Location: 특정 Location에 갔을 때

     - 사람들은 Location에 따라 추천받고 싶어하는 장소가 다르다

- Understnading POI: 취향에 맞는 POI들을 추천

     - 추천받는 POI를 신뢰할 수 있으면 좋겠다

* User 측면에서의 고민

- User의 맛집에 대한 관심도는 천차만별이다

- 맛집 관심도에 따라 적당한 추천의 방식이 다르다