天天看點

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

論文:Real-time Personalization using Embeddings for Search Ranking at Airbnb

作者:Mihajlo Grbovic and Haibin Cheng Airbnb, Inc. San Francisco, California, USA

作者針對一個房屋出租市場特點分析,實作一個推薦系統有效地讓出租人(host)找到符合要求的承租使用者(user),而承租人(user)找到滿足要求的房屋(listing)。

首先讓相似的listing在embedding空間中具有相似的向量。作者使用skip-gram的embedding技術通過訓練出來的listing的embedding餘弦距離較近驗證在房屋特點等方面具有相似性。

作者從短期和長期不同特點提出不同的訓練模型。從長期來說,雖然使用者和房屋都在變化,但使用者和房屋歸入某種類型後,它們在向量空間中具有相關性。是以關心的是一個使用者的user type和listing type。作為host,關心的是一類使用者(user_type);但作為user關心的是listing_type。利用NLP的skip-gram的embedding技術,對user_type和listing_type進行embedding,進而能滿足host要求的相似user_type推薦給host,或者滿足相似的listing_type推薦給user。

1.概述

和以前關于embedding的作品相比,本文的新穎貢獻是:

  • 實時個性化推薦 - 以前關于個性化推薦的大部分工作使用embedding技術是通過在離線時形成的user-item,item-item的表進行部署到生産中,然後在推薦的時間讀取這個表。我們實作了一個解決方案,其中以線上方式組合使用者最近與之互動的item,計算與需要排名的item的相似性。
  • 适應網絡搜尋的"集中搜尋訓練"-搜尋在旅行平台上經常被聚合,使用者往往隻搜尋特定市場,如巴黎,很少跨不同的市場。我們調整了訓練算法,以考慮進行負抽樣時,進而在市場内發現更好的item相似性。
  • 利用轉化作為全局上下文-在我們的案例中的預訂,我們認識到在轉換中結束的點選在會話的重要性。在items embeddings時,我們将已預訂的item視為全局上下文,始終在視窗在會話中移動時進行預測。
  • 使用者類型(user_type)embedding - 以前訓練使用者embedding是以捕獲其長期興趣點為目的,為每個使用者訓練一個唯一的embedding。但作為出租市場特點,其特定使用者在一定時期是沒有檢索記錄,是以沒有足夠的資料來為每個使用者訓練良好的embedding表示形式。更何況,為每個使用者存儲embedding以執行聯機計算将需要大量記憶體。是以,我們建議在使用者類型級别訓練embedding,其中具有相同類型的使用者組将具有相同的embedding。
  • 拒絕作為明确的負采樣-為了減少那些帶來拒絕的推薦,通過負采樣,把host的偏好編碼到user_type,listing_type的embedding中。

對于短期的興趣個性化,我們使用超過8億次搜尋點選次數訓練listembedding,進而獲得高品質的listing向量表示。我們對實際搜尋流量進行了廣泛的離線和線上評估,結果表明在排名模型中添加embedding功能可以獲得顯着的預訂收益。除了搜尋排名算法,我們還成功測試了listing embedding,并推出了類似的list推薦,現有的算法點選率(CTR)提高20%。

對于長期興趣個性化,我們使用5000萬使用者使用預訂list序列訓練usert_type和listing_type 的embedding。在同一向量空間中學習user_type和listing_type的embedding,以便我們可以計算user類型和listing類型之間的相似性進行排名。相似性被用作搜尋排名模型的附加功能。

2.相關研究

在NLP領域,使用神經網絡訓練的低次元embedding代替以前以語言模型訓練的高次元稀疏的詞向量。神經網絡訓練考慮到詞序,共現度,以及基于這樣的假設:經常一起出現在一個句子中的單詞,共享更多的統計相關性。embedding技術以CBOW和Skip-gram為代表的詞向量技術。

目前,embedding技術已經超越了NLP領域,應用到其他領域。例如搜尋引擎,電子商務,市場領域等。如果把一個句子看成單詞序列,同樣使用者在網絡的行為就形成一個序列有點類似一個句子的單詞序列。使用者的行為包括:點選,購買,查詢,點選廣告等。我們把使用者session内的使用者作為一種有相關聯的上下文序列。通過使用者對listing互動序列可以學習到使用者和商品的embedding。對于冷啟動推薦系統,仍然要使用文本embedding技術對于描述listing和使用者的文字進行embedding。

3.方法論(METHODOLOGY)

下面我們将介紹用在Airbnb的搜尋中推薦清單以及清單排名的推薦的方法。我們兩種不同的方法:listing(商品) embedding用于短期實時個性化推薦和user_type和listing_type的embedding用于長期個性化推薦。

3.1 Listing Embeddings

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

個使用者通路Airnb的會話(Session)集合。每個會話

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

記錄了一個使用者點選了一連串的

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

個商品序列。如果兩次連續的點選時間間隔超過了30分鐘,會啟動一個新的session。給定資料集學習用一個d維的實數向量

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

來表示一個

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

。相似的listing在embedding空間中會聚集在附近。

目标函數如下:

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

.......................(1)

其中

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

是視窗大小,對任意

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

,讓在視窗内的

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

發生的機率最大化。訓練這個目标函數得到listing的embedding使用skip-gram的embedding技術。

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

使用softmax表示如下:

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

........................(2)

其中,

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

是作為訓練的輸入輸出優化的listing向量。

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

表示資料集中unique的listing的個數。

從式(1)和(2)我們看到建議的方法點選序列模拟了文字的上下文序列,具有相似上下文的清單(即具有相似的相鄰清單序列在會話中)将有相似的表示embedding。

計算式(2)中分母由于

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

非常大成為計算不可能。是以需要對式(2)進一步優化提出:

出現在視窗内的樣本屬于正樣本,不在視窗的樣本屬于負樣本。目标函數寫成:

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦
實作實時個性化推薦_利用embeddings技術實作實時個性化推薦
實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

.......................(3)

其中式(3)中

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

是指那些

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

在以

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

為中心詞在視窗中的

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

的集合是以

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

為中心不在視窗中的

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

,因為不在視窗中的

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

非常大,是以

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

是随機從

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

中抽取的樣本。

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

是訓練需要學習的

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

。使用SGA算法優化。

在一個具體的session,有的使用者做了預定,有的使用者最後沒有預定。對預定的session,在skip-gram訓練模型的基礎上,把已經被使用者預定的listing作為一個全局的上下文,請參照下圖的虛線表示。

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

式(3)寫成:

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

.....(4)

對沒有進行預定的session,使用(3)式。

集中檢索的适應性訓練

:對于一個出差預定租用住宿的使用者,典型的特點是隻對單一的市場進行檢索。是以非常大的可能是

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

中是一個市場的listing。另一方面,由于是随機負采樣,

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

中的listing大部分和

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

是來自不同相同的市場。這種不平衡導緻學習同一市場内listing相似性高。 解決這個問題我們建議添加一組随機負采樣

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

,取樣時和

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

有相同的市場。則式(4)改寫為下式(5)

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

................(5)

冷啟動時的listing embedding:

每天都有host提供新的listing,這些listing在以前的embedding訓練中從來就不存在。怎樣使用存在的listing的embedding去為新的listing進行embedding呢?

host為這個listing建立時會提供一些關于這個listing的一些屬性:位置,價格,listing 類型等。用這些屬性找到在地裡位置最近的,價格區間一緻,listing類型一樣的3個已經embedding的listing。計算這三個listing embedding的平均值作為新listing的embedding。

驗證和評價listing embeddings:

評價通過8億個session點選訓練出來的32維embedding。首先,進行k均值聚類embedding評估是否編碼了地理相似性。圖2顯示了在加利福尼亞州産生的100個叢集來自相似位置的清單聚集在一起。

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

接下來,我們評估來自洛杉矶不同listing類型(表1)和不同listing價格之間(表2)的平均餘弦相似度。

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

從表1,2看出,相同的listing類型之間比不相同類型之間的相似度要高,同一價位之間與不同價位之間的相似度要高。是以,我們可以得出結論,這兩個listing的特征能很好地編寫到listing enbeddings中。也是如此。雖然一些listing特征,如價格,不需要學習,因為他們可以從列出中繼資料中提取,其他類型的listting特征,如建築,風格并且感覺更難以以清單功能的形式提取。至評估我們可以通過embedding來捕獲這些特征檢查獨特建築清單的k-最近鄰居列出嵌入空間。圖3顯示了一個這樣的情況,最相似的listing具有相同的風格和建築。

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

另外開發了一種能迅速在embedding空間中找到相似listing的檢索工具。

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦
3.2 User-type & Listing-type Embeddings

listing embeddings是使用會話裡的點選序列來訓練的,它能很好找到在同一市場内相似的listing。然而,listing embeddings是使用于短期,它的目的是向使用者顯示被使用者點選過的相似的listing。

但是,除了會話中的個性化,它是基于發生在同一個會話中的信号,我們也希望基于來自使用者的長期的信号曆史來個性化搜尋是有用的。例如,給定目前正在在洛杉矶市場搜尋的使用者,以前的預訂過約克和倫敦的曆史記錄,推薦清單裡希望有類似于以前預定記錄的listing。

怎樣去訓練這種跨市場範圍的相似性的listing呢?雖然在使用點選訓練的listing embedding中捕獲了一些跨市場的相似性,但是學習這種跨市場相似性的更主要方式是從特定使用者随時間預訂的清單建構的會話中學習。 具體來說,讓我們假設我們從N個使用者那裡獲得了一個預訂的集合

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

,并且使用者

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

按照時間順序定義了一個序列号

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

。 嘗試使用這種類型的資料為每個listing id學習embedding

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

在很多方面都具有挑戰性:

  • 首先,預訂會話資料
    實作實時個性化推薦_利用embeddings技術實作實時個性化推薦
    遠小于點選會話資料S,因為預訂的事件頻率較低。
  • 其次,許多使用者在過去隻是booking一個listing,當然不能從長度為1的序列中學到什麼。
  • 第三,從上下文資訊中容忍最大限度地從内容資訊中擷取至少5-10次出現的實體需要的資料,并且在該平台上至少有5到10倍的時間。
  • 最後,長時間間隔可以通過使用者進行連續預訂,并且使用者偏好會發生變化随職業的變化發生便哈。例如價格方面等。

在現實中,以上的挑戰非常普遍,是以我們建議訓練listing_type 而不是listing_id。

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

表3和表4,是分别将listing meta 資料映射為listin_type和将使用者映射為user_type。例如,一個來自美國的整套房子,有2人容量,1床,1卧室和1浴室,每晚平均價格為$ 60.8,每位客人每晚平均價格$ 29.3,5評論,全部5星級,以及100%新客人接受率映射到listing_type =US_lt1_pn3_pg3_r3_5s4_c2_b1_bd2_bt2nu3。它的好處是很多listing會映射到一個listingtype。同樣可以将使用者映射為user_type。

訓練過程:

我們将

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

序列寫成:

(user_type, listing_type)二進制組序列:
實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

。目标函數如下訓練

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦
實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

使用如下目标函數訓練

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

:

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

通過兩個目标函數交叉執行分别更新

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

對預定拒絕作為明确的負樣本來訓練。

不像點選序列,它隻反映了user的偏好。但預定也反映了host的偏好。存在一些來自于host的明确回報,接受或者拒絕預訂請求。host拒絕常常由于一些原因如:不良客人的星級評分,不完整或空客的個人資料,沒有個人資料圖檔等,具體參照表4的例子。

除了客戶偏好信号之外,在訓練期間可以利用host拒絕來編碼embedding空間中的host偏好信号。結合拒絕信号的整個目的是一些listing_types對user_types不太敏感。

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

目标函數進一步寫為如下:

對更新使用者類型embedding的目标函數:

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

對更新listing類型embedding的目标函數:

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

給定所有user_types和listing_types的學習embedding,我們可以根據使用者目前user_type embedding和候選listing的listing_type embedding之間的餘弦相似性向使用者推薦最相關的清單。例如,在表5中,我們顯示user_type =SF_lg1_dt1_fp1_pp1_nb3_ppn5_ppg5_c4_nr3_l5s3_g5s3之間的餘弦相似性 他們通常在美國預訂高品質,寬敞的房源,并提供大量好評和幾種不同的listing_types。 可以觀察到,最符合這些使用者偏好的清單類型,即整個家庭,大量好評,大且高于平均價格,具有高餘弦相似性,而不比對使用者偏好的那些,具有較小空間,較低的那些價格和少量評論具有低餘弦相似性。

實作實時個性化推薦_利用embeddings技術實作實時個性化推薦

參考:

[1] Tomas Mikolov,Ilya Sutskever,KaiChen,GregSCorrado,and Jeff Dean.2013. Distributed representations of words and phrases and their http://compositionality.In Advances in neural information processing systems.3111–3119.

[2] Mihajlo Grbovic and Haibin Cheng Airbnb, Inc. San Francisco, California, USA Real-time Personalization using Embeddings for Search Ranking at Airbnb