[논문리뷰]Real-time Personalization using Embeddings for Search Ranking at Airbnb

freakyfrog98·2022년 4월 15일
0

논문리뷰

목록 보기
1/1

2022 04 15...

논문링크

https://github.com/wzhe06/Ad-papers/blob/master/Embedding/%5BAirbnb%20Embedding%5D%20Real-time%20Personalization%20using%20Embeddings%20for%20Search%20Ranking%20at%20Airbnb%20(Airbnb%202018).pdf

INTRODUCTION

  • search data 수집량이 늘어남에 따라 ML을 사용하는 추세
  • 최근의 소비된 것과 유사한 아이템을 추천
  • Airbnb는 sellers와 buyers 양쪽을 optimize 하는 것이 목적
  • host 에게도 선호 guest를 추천, guest에게도 host(및 숙소) 를 추천
  • pairwise regression with positive & negative utilities
  • marketplace의 양쪽의 ranking을 optimize 하는 Lambda Rank 수식을 변형하여 사용
  • 숙소 예약을 하기 전 숙소 클릭 및 host 와 contact 을 진행
    -> 이를 positive signal 로 활용
  • 추천 되어진 숙소들을 스킵하거나 시선이 머무는 시간이 짧다
    -> 이를 negative signal 로 활용하여 사용자가 선호하지 않는다 싶은 게시글들을 덜 추천
  • 사용자가 interact 한 숙소 리스트들과 후보군 리스트들의 similarities 를 계산하기 위해 listing embeddings 를 사용
  • listing embeddings = search session 에서 수집 되며 저차원의 벡터 표현
  • 클릭과 같은 short-term user interest & 예약들에서 학습되는 embedding 을 이용해 long term interest
  • 숙소 예약은 특히 대부분의 유저들이 1년에 두번 정도 여행을 가기 때문에 예약은 sparse signal
  • 따라서 유저아이디를 쓰기보다는 유저 type 단위의 embedding 학습

METHODOLOGY

Listing Embeddings

  • S개의 click sessions, 하나의 session 은 s 로 표현되며 l1 부터 lM 까지의 lising(숙소) 들로 구성 된다.
  • 하나의 session은 사용자가 30분 이상의 클릭 공백 없이(uninterrupted sequence) 본 숙소들의 시계열 데이터
  • 목적 함수는 skip-gram 과 유사, L 을 높이는 방법으로 학습

  • centeral listing Li 를 통해 neighborhood인 Li-m 부터 Li+m 까지의 확률을 높인다는게 목적 함수
  • 목적 함수의 gradient를 계산하는 것 은 전체 숙소의 양인 |V| 이 방대할수록 computing 자원을 많이 사용
  • 따라서 사용되는 자원을 줄이기 위하여 negative sampling을 사용
  • 유저가 클릭한 리스트들 -> Dp : positive sampling
  • 전체 숙소에서 클릭되지 않은 리스트들을 random 선정 -> Dn : negative sampling
  • negative sampled 의 확률은 낮추고 positive의 확률을 높였을때 optimization objective 값이 높아진다.

Booked Listing as Global Context

  • booked sessions : 실제로 유저가 예약한 숙소들
  • exploratory sessions : 예약으로는 이어지지 않은 숙소들
  • booked sessions 는 neighborhood 에 등장하지 않더라도 global context 로서 항상 예측에 활용한다.

  • 노란색 부분이 booked sessions 에 관한 내용
  • 비행기 티켓 예약 어플에서 사용자들이 목적지를 선정해놓고 티켓을 고르듯이, Airbnb 사용자들 또한 대부분 여행지를 고르고 숙소를 search 한다.
  • 따라서 positive sampling 된 아이템들은 대부분 같은 장소의 숙소일 것이고 negative 의 경우는 대부분 다른 장소의 숙소일 것이다.
  • 이는 결국 성능의 저하로 이어지며, 이를 해결하기 위해 같은 장소의 숙소이지만 클릭 하지 않은 숙소인 Dmn 을 추가 sampling

Cold start listing embeddings

  • 새로운 숙소가 추가되면 그 숙소는 유저에게 보여진 데이터가 없기 때문에 처음 이의 embedding을 채울 방법이 필요
  • 이는 3가지 geographically closest listings, 가격, 방의 성격 등 을 통해 같은 범주의 숙소의 embedding 을 사용
profile
반 걸음씩 이라도 가보자.

0개의 댓글