JourneyFormer: Encoding Airbnb Guest Journey with Sequence Modeling
이 논문은 복잡한 게스트 여정 및 희소한 예약 레이블과 같은 프로덕션 문제를 해결하기 위해 에어비앤비에 배포된 시퀀스 모델링 솔루션인 JourneyFormer를 소개하며, 이는 온라인 A/B 테스트를 통해 오프라인 랭킹 지표와 주요 비즈니스 성과 모두에서 유의미한 개선을 이끌어냈습니다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
Airbnb를 수백만 명의 사람들이 머물 곳을 찾는 거대하고 북적이는 디지털 시장이라고 상상해 보세요. 수년 동안, 사용자에게 어떤 숙소를 먼저 보여줄지 결정하는 시스템(즉, "검색 랭킹")은 마치 게스트의 전체 여정을 다 읽었지만 그 여행의 요약본만을 기억하는 사서와 같았습니다.
Airbnb 팀은 JourneyFormer라는 새로운 시스템을 구축했습니다. 이것을 단순히 요약본을 읽는 사서가 아니라, 게스트의 전체 영화를 실시간으로 지켜보며 반전, 멈춤, 그리고 최종 결정을 이해하는 탐정이라고 생각하면 됩니다.
이 시스템이 어떻게 작동하는지, 쉬운 개념들로 나누어 설명해 드리겠습니다.
1. 문제점: "노이즈가 많은" 게스트의 여정
Airbnb를 이용할 때, 여러분은 단순히 "예약" 버튼만 누르는 것이 아닙니다. 여러분은 다음과 같은 행동을 할 수 있습니다:
- 50개의 서로 다른 아파트를 둘러봅니다.
- 계획했던 여행을 취소합니다.
- 작년에 머물렀던 숙소에 리뷰를 남깁니다.
- 문이 잠겨 있어서 고객 센터에 전화를 합니다.
- 마침내 특정 장소를 예약합니다.
기존 시스템은 이 모든 것을 몇 가지 통계(예: "이 사람은 일 년에 2번 예약함")로 요약하려고 했습니다. 하지만 이는 '이야기'를 놓쳤습니다. 저렴한 호스텔 50곳을 둘러본 게스트는 그냥 구경 중인 것일 수 있지만, 고급 빌라 3곳을 둘려본 게스트는 구매 준비가 된 상태일 수 있습니다. 기존 시스템은 "둘러보기"와 "구매하기"의 차이를 구분할 수 없었습니다.
2. 해결책: "여정"이라는 이름의 영화
JourneyFormer는 게스트의 이력을 요약 보고서가 아닌 하나의 영화 시퀀스로 취급합니다. 이 시스템은 이야기의 맥락을 이해하는 데 탁월한 특수 유형의 AI(트랜스포머라고 불림)를 사용합니다.
- 장기적인 줄거리: 게스트의 지난 7년간의 삶을 살펴보되, 실제 예약, 취소, 리뷰와 같은 "중요한 장면"에만 집중합니다. 지루한 배경 소음은 무시합니다.
- 단기적인 줄거리: 지난 21일간의 기록을 살펴보되, 게스트가 '지금 바로' 클릭하고 있는 것에 집중합니다. 만약 여러분이 하와이의 해변가 집들을 미친 듯이 클릭하고 있다면, 시스템은 여러분이 곧 하와이에 갈 가능성이 높다는 것을 압니다.
3. "스마트 필터" (이벤트 선택)
논문에 따르면 게스트들은 실제로 예약하는 것보다 훨씬 더 많이 숙소를 클릭(조회)합니다. 이는 동네의 집 100채를 지나치지만 결국 한 채만 사는 것과 같습니다. 만약 AI가 모든 "지나가는 행위"를 다 기억하려 한다면, 혼란에 빠지고 속도도 느려질 것입니다.
그래서 JourneyFormer는 빈도 필터를 사용합니다:
- 희귀한 이벤트(예약하거나 리뷰를 남기는 것 등)는 지난 7년간의 기록에서 유지합니다.
- 흔한 이벤트(그저 숙소를 구경하는 것 등)는 지난 21일간의 기록에서만 유지합니다.
이를 통해 "영화"를 짧고 핵심적인 내용에 집중하도록 만듭니다.
4. "만능 번역기" (ID 임베딩)
Airbnb에는 수백만 개의 숙소, 호스트, 위치가 있습니다. 컴퓨터에게 이것들은 그저 무작위 숫자일 뿐입니다. JourneyFormer는 "유니파이드 임베딩(Unified Embeddings)"이라 불리는 "만능 번역기"를 사용하여 이 숫자들을 AI가 이해할 수 있는 언어로 바꿉니다.
또한 계층적 지도 시스템(S2Cell ID)을 사용합니다. 대륙 수준에서 국가, 도시, 구역, 그리고 마지막으로 특정 집 번호까지 줌인(zoom-in)하는 지도를 상상해 보세요. AI는 게스트가 "샌프란시스코"를 좋아한다면 "미션 디스트릭트"도 좋아할 수 있지만, 시끄러운 거리의 집은 좋아하지 않을 수도 있다는 점을 학습합니다. 이는 AI가 게스트가 무엇을 원하는지뿐만 아니라, '어디'에 있고 싶어 하는지를 이해하도록 돕습니다.
5. "속도 향상" (학습 기법)
수백만 명의 게스트 여정을 학습시키는 것은 마치 한 시간 안에 도서관의 책들을 다 읽으려는 것과 같습니다. 논문은 이를 더 빠르게 만들기 위한 세 가지 영리한 기술을 설명합니다:
- 버케팅(Bucketing): 짧은 이야기와 긴 소설을 같은 더미에 억지로 넣는 대신, 이야기 길이에 따라 그룹화합니다. 이를 통해 컴퓨터가 짧은 이야기에 빈 공간을 채우느라 시간을 낭비하는 것을 방지합니다.
- 배치 검색(Batching Searches): 게스트가 연속으로 세 번 검색할 경우, AI는 매번 전체 여정을 처음부터 다시 계산하지 않습니다. 이전 계산 내용을 기억하고 새로운 부분만 업데이트합니다.
- 빈 자리 건너뛰기(Skipping the Empty Seats): 데이터 배치에 (게스트마다 검색 횟수가 달라 발생하는) "빈" 자리가 있는 경우, AI는 해당 빈 자리를 처리하는 대신 건너뜁니다.
6. 결과: 모두를 위한 더 나은 여행
팀은 이 새로운 시스템을 실제 환경(온라인 실험)에서 테스트하여 기존 시스템과 비교했습니다.
- 오프라인: AI가 게스트가 좋아할 만한 집을 예측하는 능력이 향el되었습니다(NDCG라는 점수로 측정됨).
- 온라인: 실제로 이 결과를 사람들에게 보여주었을 때, 더 많은 사람이 여행을 예약했고, 더 많은 숙박 일수가 예약되었습니다.
- 이메일: 홍보 이메일에서도 테스트를 진행했습니다. AI가 이메일에 보여줄 숙소를 선정했을 때, 사람들은 클릭 및 예약할 확률이 5% 더 높아졌습니다.
하지 않은 것들 (주의 사항)
논문은 자신들이 시도했지만 거절했던 내용도 솔직하게 밝히고 있습니다:
- 실시간 업데이트: 게스트가 클릭할 때마다 게스트의 "영화"를 즉각적으로 업데이트하려고 시도했습니다. 이는 예측 속도를 높였지만, 오히려 게스트에게 방금 봤던 숙소를 다시 보여주는 '리타겟팅' 현상을 일으켜 혼란을 주었습니다. 게스트들은 방금 본 것을 다시 보는 것이 아니라, 새로운 옵션을 보길 원했습니다.
- 과도한 복잡성: AI를 더 "똑똑하게" 만들기 위해 층(layer)을 더 추가하는 시도를 했으나, 이는 결과의 개선 없이 시스템을 더 느리고 관리하기 어렵게 만들 뿐이었습니다.
핵심 요약
JourneyFormer는 게스트를 단순한 통계 목록이 아니라, 하나의 이야기를 가진 사람으로 보기 시작한 시스템입니다. 그들의 행동 순서(무엇을 보았고, 무엇을 예약했으며, 무엇을 취소했는지)를 관찰함으로써, 시스템은 다음에 무엇이 필요할지 예측할 수 있으며, 이는 게스트와 호스트 모두에게 더 성공적인 예약을 이끌어냅니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.