Airbnb에서는 어떻게 머신러닝을 활용해 예약 전환율을 높일까?
Summary: “How Airbnb uses Machine Learning to Detect Host Preferences” by Bar Ifrach
에어비앤비(Airbnb)에서 데이터 사이언스 팀을 이끌고 있는 Bar Ifrach가 2015년 4월 AirbnbEng에 올린 글, How Airbnb uses Machine Learning to Detect Host Preferences의 내용을 간략하게 정리해보려 합니다. 원문은 Bar Ifrach가 에어비앤비에 데이터사이언티스트로 합류하고 2년이 지난 후에 진행했던 머시러닝 모델 개발 프로젝트와 그 성과를 소개하는 글입니다. 아래 내용은 원문의 내용+제가 이해한 내용이 섞여있습니다. 혹시 제가 잘못 이해한 부분이 있다면 댓글 부탁드립니다. 보다 자세한 내용은 원문을 참고해주세요 :)
한국에서도 이젠 유명해진 에어비앤비는 방이나 집 등을 임대할 수 있도록 게스트와 호스트를 연결해주는 세계 최대의 숙박공유 플랫폼입니다. 에어비앤비가 일반적인 숙박시설과 다른 점이라면 게스트가 요청을 해도 호스트가 요청을 보고 ‘수락’ 하거나 ‘거절’할 수 있다는 점입니다. 따라서 호스트의 수락율을 높이고 성사되는 거래가 많아지게 하려면, 게스트뿐만 아니라 호스트의 선호도(preference)를 파악하는 것도 중요합니다.
이 프로젝트는 숙박 요청에 대한 호스트의 선호도가 형성되는 데에 영향을 미치는 요인을 파악하는 데서 시작해서, 최종적으로 호스트의 과거행동을 기반으로 숙박요청에 대한 호스트의 선호도를 학습하는 머신러닝 모델을 개발하여 검색엔진에 적용하게 됩니다. 게스트가 에어비앤비에 지역, 기간, 숙박인원 등의 조건을 넣어 검색하면 해당 조건과 관련있는 호스트 중 해당 게스트의 요청을 수락할 가능성이 높은 호스트의 호스팅을 검색결과 상단에 배치하는 데 이 모델을 활용한 것이죠. A/B 테스팅 결과 예약전환율(booking conversion)이 약 3.75% 상승하여 에어비앤비를 통해 더 많은 거래가 성사되는 효과를 냈다고 합니다. 이 글에서는 어떤 과정을 거쳐 이 머신러닝 모델을 개발하게 되었는지 설명하고 있습니다.
호스트의 수락 결정에 영향을 미치는 요인은 무엇일까요?
Ifrach은 에어비앤비에 입사 전, 자신의 친구가 에어비앤비에 호스팅을 올리면서 해준 얘기를 떠올리며 몇 가지 가설을 세우고, EDA(탐색적 데이터분석)을 통해 가설을 확인해나갑니다.
가설: 숙박 요청의 ‘체크인+체크아웃갭’에 따라 호스트의 선호도에 차이가 있을 것이다.
가장 먼저 호스트의 수락 결정에 영향을 미치는 요인으로 ‘체크인+체크아웃갭’을 생각했다고 합니다. 에어비앤비에 호스트가 예약 가능한 시기를 올리면, 게스트가 이를 보고 원하는 기간을 선택하여 숙박요청을 하게 됩니다. Ifrach의 친구는 휴가를 떠나는 2주 동안 집을 에어비앤비에 올리면서, 예약 가능 기간을 공백 없이 최대한 오래 채워줄 수 있는 게스트를 찾으려 했다고 합니다.
가령 아래 달력 그림처럼 8일과 9일로 숙박요청(Request)이 들어오면 그 앞뒤로 체크인 갭(Checkin Gap, 5일~7일)과 체크아웃 갭(Checkout Gap, 10일)이 생기게 됩니다. 애매하게 남은 갭 기간 동안에는 예약을 받기 어려울 확률이높을 것입니다. 따라서 예약 가능 기간 동안 최대한 예약을 받으려고 하는 호스트의 경우, 이러한 체크인+체크아웃 갭(이 경우 3일+1일=4일)을 최소화하려고 할 것입니다. Ifrach의 친구처럼 말이죠.
실제 데이터를 통해 갭데이 일수(# of gap days in calendar)에 따른 숙박요청 수락율을 살펴보니, 갭데이가 긴 숙박요청일수록 수락율이 떨어지는 양상을 보였다고 합니다. 하지만 모든 호스트가 예약 가능일정을 꽉 채우고 갭을 줄이는 것을 선호할까요? 아마 어떤 호스트들은 띄엄띄엄 게스트를 받는 것을 더 선호할 수도 있을 것입니다. Ifrach은 숙박시설이 위치한 시장의 규모(big market vs. small market)에 따라 호스트의 선호도에 차이가 있을 것이라는 가설을 세우고, 호스트를 둘로 나누어 다시 살펴보았습니다. 그 결과, 실제 시장의 규모에 따라 갭데이에 의한 수락율이 상당한 차이를 보였습니다. (Ifrach은 따로 설명하지 않지만, 아마 뉴욕과 같이 시장의 규모가 큰 곳의 경우 요청하는 게스트도 많고 렌트비도 비싸다보니 최대한 갭을 줄이고 예약을 늘리려고 하기 때문이지 않을까 합니다.)
가설: 숙박 요청시기와 숙박 시기에 따라 호스트의 선호도에 차이가 있을 것이다.
그 다음으로는 ‘숙박요청 시기와 숙박 시기의 차이’에 따라 호스트의 선호도에 차이가 있을 것이라는 가설을 세웠다고 합니다. 즉, 숙박 시기로부터 한참 전(7일 이상 남기고)에 하는 숙박요청을 임박해서 하는 숙박요청(7일 미만 남기고)보다 더 선호할 것으로 본 것이죠. 실제 데이터를 분석해본 결과 아래 그림과 같이 숙박시기로부터 한참 전에 들어온 숙박요청(far in advance)을 선호하는 호스트들이 더 많았다고 합니다.(그래프의 대각선을 기준으로 prefer far in advance와 prefer last minute 중 한쪽을 가리고 보면, 어느쪽을 선호하는 호스트가 더 많은지 쉽게 파악할 수 있습니다.)
그 외에도 숙박할 게스트의 수, 주말 또는 주중 여행인지 등의 숙박요청의 성격에 따라 선호도에 차이가 있었다고 합니다.
이 모든 과정을 통해 숙박요청 특성에 따라 호스트의 선호도에 차이가 있다는 가설이 확인되었기 때문에 Ifrach와 그의 팀은 “게스트가 어떤 조건을 가지고 숙박 장소를 검색할 때, 해당 숙박 요청을 받아들일 가능성이 높은 호스트의 호스팅을 검색결과 상단에 배치하게 되면 더 많은 호스트와 게스트가 행복해질 것이다”라는 결론을 내렸다고 합니다. 더 많은 거래가 성사되는 것은 물론이고요.
그렇다면,
호스트 선호도를 어떻게 모델화 할 수 있을까요?
이젠 숙박요청의 특성(체크인 날짜, 체크아웃 날짜, 게스트의 수)에 따라 호스트의 숙박요청 수락 또는 거절 가능성을 계산할 수 있는 모델을 만들어야 하는데, 어떤 머신러닝 알고리즘을 사용할 수 있을까요? Ifrach와 그의 팀은 협업필터링(collaborative filtering)을 고려했었다고 합니다. 협업 필터링은 흔히 영화 추천 시스템에서 많이 사용되는 알고리즘으로, 기존에 남긴 영화 평점을 기반으로 아직 평점이 매겨지지 않은 영화의 평점을 예상하여 추천해줄 때 사용됩니다. 에어비앤비도 영화처럼 아이템(=숙박요청)과 유저(=호스트)가 있기 때문에 협업필터링을 적용할 수 있을 것이라고 생각했는데, 그대로 적용하긴 어려웠다고 합니다. 영화와 에어비앤비의 숙박요청에는 차이점이 있었기 때문입니다.
숙박요청의 가장 큰 특징은 하늘 아래 ‘완전히 똑같은 여행(숙박요청)’이라는 아이템은 존재하지 않는다는 점입니다. 요청시점에 따라 숙박요청시기-숙박시기의 차이도 달라지고, 호스트의 사정도 달라지기 때문입니다. 따라서, 기존에 협업필터링이 많이 사용되는 영화나 음악보다 훨씬 다양한 특성으로 구성되는 숙박요청을 영화나 음악처럼 하나의 아이템이라고 보고 ‘요청 수락 및 거절’에 대한 레이블을 달게 되면 노이즈(noise)가 훨씬 심하게 나타날 수 있는 것이죠. 또한, 같은 여행일정의 숙박 요청이 들어오더라도 4번 중 2번 수락한다면 해당 숙박요청을 호스트가 선호하는 것인지 파악하기 어려울 것입니다.
Ifrach와 그의 팀은 이 문제를 어떻게 해결했을까요?
숙박요청을 하나의 아이템으로 보지 않고, 숙박요청이 가지는 개별 특성에 대한 호스트의 평균 선호도를 따로 따로 계산했다고 합니다. 예를 들어 체크인+체크아웃 갭데이가 6일인 숙박요청에 대한 평균 수락율(=선호도)을 계산하는 것이죠. 이를 통해 숙박요청을 하나의 아이템으로 보았을 때 발생할 수 있는 노이즈를 해결하고, 같은 숙박요청에 대해 선호도를 파악하기 어려웠던 문제(수락/거절 모두 나타나 상반되는 레이블링을 하게 되는 문제)를 해결했다고 합니다.
(더불어 sparse data set 문제를 해결하기 위해 data imputation을 진행한 설명이 나오는데, 자세한 내용은 원문을 참고해주세요!)
이렇게 호스트의 선호도를 새롭게 정의하고, L-2 규제를 적용한 로지스틱 회귀분석(L-2 regularized logistic regression)을 사용한 호스트 선호도 예측모델을 만들었다고 합니다. 다양한 속성에 대한 호스트의 선호도를 종합하여 숙박요청 수락율을 예측하는 모델을 만든 것이죠. 이 과정에서 예측률을 높이기 위해 지리적 특성 변수와 호스트 특성 변수 몇 가지를 더 추가했다고 합니다.
모델의 성과는?
우선 기존의 데이터셋을 가지고 진행하는 오프라인 평가(offline evaluation) 결과, 이렇게 완성된 모델이 기존의 호스트 선호도 예측 모델보다 10% 낮은 평균제곱오차( MSE, Mean Squared Error)를 기록했다고 합니다.
그 다음으로 실제 일부 유저를 대상으로 하는 온라인 실험(online experiment)을 진행한 결과, 기존에 게스트의 선호도만을 반영한 검색 알고리즘보다 예약전환율(booking conversion)이 3.75% 올라 호스트와 게스트의 매칭 성공 건수가 증가했다고 합니다. 첫 실험 후 몇 가지 최적화(optimization) 과정을 거쳐 전환율을 1% 정도 더 올린 후에 최종적으로 모든 유저에게 해당 알고리즘을 적용한 검색 서비스를 제공하기 시작했다고 합니다.
Ifrach는 이 프로젝트를 통해
- 에어비앤비처럼 구매자와 판매자를 모두 상대로 하는 플랫폼에서는 구매자 뿐만 아니라 판매자의 선호도도 파악하여 개인화(personalization)하는 것이 효과적이라는 점
- 개별 비즈니스 맥락에 맞는 머신러닝 모델을 개발하는 것이 필요하다는 점
두 가지를 배웠다고 합니다.
저는 이 글을 읽으면서
- EDA 단계에서 데이터에 대한 사전 지식을 기반으로 세운 가설을 가지고 접근하는 것이 중요하다
- 데이터의 특성에 따라 기존의 모델을 적절히 차용/활용해야 한다
- 머신러닝 모델을 통해 엄청난 비즈니스 임팩트가 발생한다
는 점을 배울 수 있었습니다.
여러분은 어떤 점을 새롭게 알게되셨나요?
*오역이나 내용에 대한 코멘트, 언제나 환영합니다! 감사합니다.