iT邦幫忙

2022 iThome 鐵人賽

DAY 16
0
AI & Data

那些在科技公司和 app 背後的資料科學系列 第 16

[Day 16] 改善 Airbnb 的房源排序模型(下)- ABCD 改善方案

  • 分享至 

  • xImage
  •  

在前兩天的文章中,我們提到 Airbnb 為了做出更好的房源排序模型,提出「ABCD 改善方案」:

A:模型架構(Architecture):觀察使用者需求後,釐清問題、改善模型。
B:偏誤(Bias):消除模型或過去資料中的系統性偏誤(systematic biases)。
C:冷啟動問題(Cold start):沒有歷史訂購紀錄的新房源,要如何排序?
D:搜尋結果的多樣性(Diversity of search results):如何增加搜尋結果的多樣性,避免集中於特定房源?

今天,讓我們來聊聊關於 C 和 D 的問題與解法吧!


C:冷啟動問題(Cold start)

冷啟動(cold start)是推薦系統很常遇到的問題,旨在解決新用戶、或很久沒有使用產品的用戶,缺乏初始資料以產生推薦清單的狀況。

對於 Airbnb 而言,冷啟動(cold start)有兩種探討的面向:用戶和房源,不僅只有新用戶缺乏資料,新上線的房源也同樣沒有任何歷史紀錄。他們發現新房源的排序都比較低,且認為房源排序的冷啟動(cold start)中包含用戶層級的問題,因此決定著手處理房源層級的冷啟動(cold start)問題。

一個新房源和舊房源最大差異是什麼?很明顯的,就是用戶的互動行為資料,包含點擊率、訂購數、瀏覽數、評論數等等。因此,如果能夠有一個模型成功預測用戶參與一個新房源的行為,則問題就迎刃而解了。

換而言之,Airbnb 將新房源冷啟動(cold start)問題重新定義為「預測新房源的用戶參與行為」,並執行以下步驟以建立預測模型:

  1. 在 logs 中抽樣 O(100M) 的搜尋結果,並在每個搜尋結果中的排列順序前一百名中隨機抽樣。
  2. 使用每個房源的真實排序名次(R_real),以計算 DR_real = log(2.0)/log(2.0+R_real)
  3. 移除既有的用戶參與資料,並使用新模型預測的用戶參與資料取而代之,再計算新的排序分數和新的 DR_predicted
  4. Loss function = (DR_real - DR_predicted)^2,目標是使這個錯誤越小越好

結果:

  • Baseline model:如果沒有用戶參與資料,就塞一些預設特徵資料
  • offline 結果:跟 baseline 相比,減少 42% 的的估計錯誤
  • online A/B testing 結果:新上線的房源訂房率提升 14%,整體訂房率提升 0.38%

D:搜尋結果的多樣性(Diversity of search results)

Airbnb 在檢視表現最好(i.e., NDCG 分數最高)的房源排序模型時,發現產生的結果缺乏多樣性,每個排序清單中前幾名的房源,其特徵都非常接近,例如地點、價錢等等。不過,這並不會讓人太過意外,畢竟預測模型只是在學習某一組用戶特徵和搜尋關鍵字(query)要產生什麼清單內容,無法比較或學習不同推薦清單的差異。

舉例而言,在搜尋大城市的房源時,結果通常座落於市中心或是熱門景點附近,而最理想的方式是考量用戶行為資料後,決定推薦房源的地點。例如在 Orlando,商業客會希望住在市中心,而家庭旅客會希望住在迪士尼樂園附近,能否讓搜尋結果更貼近用戶需求呢?

跟之前提過的推薦系統一樣,Airbnb 的搜尋模型也是分成兩個階段:

  1. Candidate generation:選出可能的候選房源,並使用排序模型評分。
  2. Rankers:候選房源清單中前 N 名的房源,再使用 rankers 依照商業邏輯或一些排序目標重新排序。

他們決定從第二階段下手,重新設計測量房源距離的方式、也讓 loss function 得以同時考慮相關性和多樣性,並將用戶資訊納入模型的特徵。
並使用一個新的 RNN 模型,目的是生成 Query Context Embedding 以用來重新排序每個房源清單,例如,如果發現一個房源是在某地區的唯一房源,則將其排名往上。

最後,線上測試的結果顯示 NDCG 增加 1.2%,整體訂房率增加 0.44,並且新用戶的訂房率也提升 0.61%。


以上是關於 Airbnb 房源排序模型之問題與解法的介紹。


謝謝讀到最後的你,如果喜歡這系列,別忘了按下喜歡和訂閱,才不會錯過最新更新。
也歡迎到我的 medium 逛逛!


Reference:


上一篇
[Day 15] 改善 Airbnb 的房源排序模型(中) - ABCD 改善方案
下一篇
[Day 17] Uber 要如何估計司機和外送的抵達時間?(上)- Self attention 介紹
系列文
那些在科技公司和 app 背後的資料科學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言