Airbnb 搜索:深度學習排序算法如何進化?

導讀

本文將基於 Airbnb KDD 2018 年到 2020 年的論文,介紹深度學習在 Airbnb 搜索排序場景落地的寶貴經驗,對工業界搜索、推薦、廣告算法的改進,具有很好的指導意義。

2018 年,Airbnb 提出基於 GBDT + embedding 高級特徵的排序模型,基於用戶的點擊、預定序列學習 item 的 embedding 表示,並設計高級特徵添加到 GBDT 排序模型中,線上訂單量顯著提升,作爲將深度學習應用到搜索排序模型中的初步嘗試。

2019 年,Airbnb 提出基於 GBDT+FM+DNN 的排序模型,嘗試在 DNN 中融入更多的信息。

2020 年,Airbnb 提出 Two Tower 排序模型,同時關注解決搜索中經典的 Bias、Cold start 問題;並提出基於 RNN 和 Two Tower 的重排模型,解決搜索結果的多樣性問題。

  1. Airbnb 搜索系統

Airbnb(愛彼迎),是 2008 年成立於美國硅谷的在線度假租賃市場公司,提供住宿安排,主要是寄宿家庭或旅遊體驗,是估值百億美元左右的獨角獸公司(2020 年)。

在 Airbnb 的搜索排序問題中,用戶的 query 包含的信息可能有地點、時間、入住人數等,排序系統需要返回最匹配用戶需求的搜索結果供用戶選擇,優化目標主要是優化成交訂單數。

如下圖所示,用戶 (user) 在每次發出請求後,搜索結果是一個多個 item 構成的結果頁列表(Airbnb 中每一個 item 被稱作一個 listing, 即一個民宿),最終用戶可能預訂某個 listing。

下圖爲一個實際的 Airbnb 搜索例子:

  1. Airbnb 搜索排序:基於 GBDT + embedding 高級特徵的模型

Airbnb 搜索:Embedding 表示學習這篇文章裏,我們介紹了 KDD 2018 Real-time Personalization using Embeddings for Search Ranking at Airbnb 這篇經典的 Airbnb Embedding 表示學習論文,作者首先基於用戶在 Airbnb 的點擊序列、購買序列,用改進的 Skip-gram model 學習得到每個 listing 的 embedding,然後基於學習的 embedding, 設計了個高級排序特徵,應用到 GBDT 搜索排序模型中。

2.1 基於改進 Skip-gram model 的 listing embedding 學習

從下圖中可以看出,embedding 表示學習,已經能很好地學習到 listing 的類型、風格、價格等信息。

2.2 GBDT 排序模型中融入基於 embedding 的高級特徵

然後作者基於學習的 embedding, 設計了個應用於搜索排序的 8 個實數高級排序特徵,應用到 GBDT 排序模型中。

分別基於用戶最近 2 周點擊、跳過、點擊長時間停留、收藏、聯繫、預定的 listing 序列,和待排序的 listing 之間,計算相似度值。同時作者基於最後一次點擊和待排序相似度、用戶類型和 listing 類型相似度設計了另外兩個特徵。

例如,對於 EmbClickSim 特徵,先對 2 周點擊 listing 序列根據地點進行分組:例如有兩個組,分別在 NY(紐約)和 LA(洛杉磯),對每個分組計算組內 listing 的 embedding 的平均值,並和待排序 listing 的 embdding 計算 cosine 相似度,最後取所有分組的最大相似度作爲特徵。表示爲公式爲:

其中 M 是所有的分組,l 是待排序的 listing, h 是分組內的 listing。

離線實驗結果:加入基於 embedding 計算的 8 個高級排序特徵,離線 NDCU 提升了 2.27。

特徵重要性分析,顯示基於 embedding 的特徵,在 104 個排序特徵中重要性排名較高,對排序結果又重要的影響。同時,線上實驗也證明了訂單量顯著提升。

  1. Airbnb 搜索排序:基於 GBDT+FM+DNN 的排序模型

在 KDD 19 Applying Deep Learning To Airbnb Search 這篇論文中,作者詳細介紹了 Airbnb 深度學習排序模型的演進過程。

下圖顯示了,Airbnb 搜索排序模型 2017-2018 的演進過程,以及對應的在線上訂單的相對增益。

3.1 2017/04,Airbnb 首先嚐試了 Simple NN 模型

模型輸入:使用和 GBDT 相同的特徵。

模型結構:包含一個隱藏層(32 個單元,ReLU 激活)的全連接網絡

損失函數:和 GBDT 相同,預測用戶是否會預定 listing,採用 L2 迴歸損失,正負樣本的 label 分別是 1 和 0。

3.2 2017/06, Airbnb 使用了 Lambdarank NN

利用 Lambdarank 的思想,直接優化 NDCG:

Lambdarank NN 的具體 pairwise loss 的 Tensorflow 實現爲:

3.3 2018/03,Airbnb 嘗試了 GBDT/FM + NN 模型

GBDT 側:作者借鑑 Facebook 在 ADKDD 2017 的 Practical Lessons from Predicting Clicks on Ads at Facebook 論文中的方法,通過 GBDT 學習特徵變換。即在葉子節點的索引信息,編碼成 embedding,加入 NN。

Factorization Machine 側:直接將基於 query, listing 的預測結果,加入 NN。

3.4 2018/06,Airbnb 採用了 Deep NN

模型輸入:195 維特徵,包括類別 embedding 特徵、實數特徵

模型結構:兩層全連接 NN:127(Relu) , 83(Relu)

作者嘗試學習 listing id,並沒有取得收益。原因是,embeddign 學習一般要求在數據中出現次數比較多(例如至少 5 次),但 Airbnb 中很多 listing 的預定卻很少。

特徵工程經驗:

特徵分佈服從 norm distribution 時,採取 Z-score normalization;

接近 power law 分佈時(例如 price),採取 log

初始化:Xavier 初始化網絡權重, random uniform {-1,1} 初始化 embedding。

採用 LazyAdamOptimizer:比 Adam 效果更好。

  1. Airbnb 搜索排序:Two Tower 模型

在 KDD 2020 Improving Deep Learning For Airbnb Search 這篇論文中,作者詳細介紹了 Airbnb 搜索排序的 Two Tower 模型,以及如何解決 bias, cold-start 問題。

4.1 Two Tower 排序模型

Query&User Tower 和 Target Listing Tower,分別學習 100 維的向量,計算 euclidean distance。歐式距離:表示 target listing 距離 query-user 的理想 listing 的距離。

損失函數:基於 pair-wise 計算,基於 Query&User 和正樣本、負樣本的歐式距離,計算差值,然後和全爲 1 的向量,計算 cross entropy loss。

線上效果爲:預定數提升 0.6% ,營收提升 0.75%。

4.2 Bias

在搜索推薦中,Bias 問題(排名靠前的結果總是更容易被點擊)一直是重要的問題、研究的熱點。

作者提出了一個簡單有效的方法來解決這個問題:即在 DNN 中加入 poisition 特徵,在訓練時使用 dropout (dropout rate 爲 0.15),預測時 position 特徵置 0。

作者給出這樣做的原理解釋如下:

對於 query q, user u, listing l, DNN 打分可以看成相關分和 bias 分數的乘積:

引入位置 k 後,公式變爲:

而 bias 和 listing 無關,公式可簡化爲:

線上預測,position 特徵置 0,對應的 pbias 爲常數,公式簡化爲:

因此可以按照 DNN 的相關性部分(rel)打分。

4.3 Cold-start

對於 new listing,使用地理位置鄰近的 listing 信息來預測。

  1. Airbnb 搜索排序:基於 RNN+Two Tower 的重排序模型:

搜索系統中,排序(精排)模型對相似的 item 的打分通常相似。在實際的搜索中,直接用精排模型打分的結果來展示,會出現搜索結果相似度過高的問題,而用戶通常有多樣性的需求,即希望看到更多樣豐富的搜索結果。例如用戶在 Airbnb 閒逛或沒有明確意圖時,希望看到多種類型的民宿來做選擇。

在 KDD 2020 Managing Diversity in Airbnb Search 這篇論文中,作者介紹了基於 RNN+Two Tower 的重排序模型,優化搜索結果的多樣性。

後記


GBDT 作爲搜索推薦最經典的模型之一,在 Amazon 搜索、Yahoo 搜索 、Facebook 廣告 [5]、京東搜索推薦、搜狗搜索中,都曾在線上排序中發揮過關鍵的作用。

在深度學習排序時代,將線上原有傳統機器學習模型和深度學習模型更好的結合,具有重要的價值。更多關於基於傳統機器學習模型(GBDT)和深度學習結合的論文,可參考 CIKM 2020 DMT [6]。

由於本人水平有限,難免有疏漏錯誤之處,文章中存在的問題,歡迎大家指正!

參考論文:

  1. Real-time Personalization using Embeddings for Search Ranking at Airbnb,KDD 2018

  2. Applying Deep Learning To Airbnb Search,KDD 19

  3. Improving Deep Learning For Airbnb Search,KDD 20

  4. Managing Diversity in Airbnb Search,KDD 20

  5. Practical lessons from predicting clicks on ads at facebook. ADKDD 2017.

  6. Deep Multifaceted Transformers for Multi-objective Ranking in Large-Scale E-commerce Recommender Systems, CIKM 2020.

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/Mk7YV5-IEBAv0egtVxoeZw