1六、Real-time Personalization using Embeddings for Search Ranking at Airbnb

1、背景

Airbnb 平臺包含數百萬種不一樣的房源,用戶能夠經過瀏覽搜索結果頁面來尋找想要的房源,咱們經過複雜的機器學習模型使用上百種信號對搜索結果中的房源進行排序。 當用戶查看一個房源時,他們有兩種方式繼續搜索:html

  • 返回搜索結果頁,
  • 查看房源詳情頁的「類似房源」(會推薦和當前房源類似的房源)。

咱們 99% 的房源預訂來自於搜索排序和類似房源推薦。web

 

  • 介紹 Airbnb 開發和部署的房源嵌入(Listing Embedding)技術
  • 如何用此來改進類似房源推薦和搜索排序中的實時個性化。

這種嵌入是從搜索會話(Session)中學到的 Airbnb 房源的一種矢量表示,並可用此來衡量房源之間的類似性。 房源嵌入能有效地編碼不少房源特徵,好比位置、價格、類型、建築風格和房屋風格等等,而且只須要用 32 個浮點數。咱們相信經過嵌入的方法來作個性化和推薦對全部的雙邊市場平臺都很是有效。服務器

 

嵌入的背景網絡

將詞語表示爲高維稀疏向量 (high-dimensional, sparse vectors) 是用於語言建模的經典方法。不過,在許多天然語言處理 (NLP) 應用中,這一方法已經被基於神經網絡的詞嵌入並將詞語用低維度 (low-dimentional) 來表示的新模型取代。新模型假設常常一塊兒出現的詞也具備更多的統計依賴性,會直接考慮詞序及其共現 (co-occurrence) 來訓練網絡。 隨着更容易擴展的單詞表達連續詞袋模型 (bag-of-words) 和 Skip-gram 模型的發展,在通過大文本數據訓練以後,嵌入模型已被證實能夠在多種語言處理任務中展示最佳性能。機器學習

最近,嵌入的概念已經從詞的表示擴展到 NLP 領域以外的其餘應用程序。來自網絡搜索、電子商務和雙邊市場領域的研究人員已經意識到,就像能夠經過將句子中的一系列單詞視爲上下文來訓練單詞嵌入同樣,咱們也能夠經過處理用戶的行爲序列來訓練嵌入用戶操做,好比學習用戶點擊和購買的商品或瀏覽和點擊的廣告。 這樣的嵌入已經被用於 web 上的各類推薦系統中。性能

房源嵌入學習

咱們的數據集由 N 個用戶的點擊會話 (Session) 組成,其中每一個會話定義爲一個由用戶點擊的 n 個房源 id 組成的的不間斷序列;同時,只要用戶連續兩次點擊之間的時間間隔超過30分鐘,咱們就會認爲是一個新的會話。 基於該數據集,咱們的目標是學習一個 32 維的實值表示方式來包含平臺上全部的房源,並使類似房源在嵌入空間中處於臨近的位置。優化

列表嵌入的維度被設置爲,這樣的設置能夠平衡離線性能(在下一節中討論)和在線搜索服務器內存中存儲向量所需的空間,可以更好地進行實時類似度的計算。網站

目前有幾種不一樣的嵌入訓練方法,在這裏,咱們將專一於一種稱爲負抽樣 (Negative Sampling) 的技術。 首先,它將嵌入初始化爲隨機向量,而後經過滑動窗口的方式讀取全部的搜索會話,並經過隨機梯度降低(stochastic gradient descent)來更新它們。 在每一步中,咱們都會將中央房源的向量更新並將其推向正向相關房源的向量(用戶在點擊中心房源先後點擊的其餘房源,滑動窗口長度爲),並經過隨機抽樣房源的方式將它從負向相關房源推開(由於這些房源很大概率與中央房源沒有關係)。編碼

 

 

 

  • 使用最終預訂的房源做爲全局上下文 (Global Context) :咱們使用以用戶預訂了房源(上圖中紫色標記)爲了結的用戶會話來作這個優化,在這個優化的每一個步驟中咱們不只預測相鄰的點擊房源,還會預測最終預訂的房源。 當窗口滑動時,一些房源會進入和離開窗口,而預訂的房源始終做爲全局上下文(圖中虛線)保留在其中,並用於更新中央房源向量。

  • 適配彙集搜索的狀況:在線旅行預訂網站的用戶一般僅在他們的旅行目的地內進行搜索。 所以,對於給定的中心房源,正相關的房源主要包括來自相同目的地的房源,而負相關房源主要包括來自不一樣目的地的房源,由於它們是從整個房源列表中隨機抽樣的。 咱們發現,這種不平衡會致使在一個目的地內類似性不是最優的。 爲了解決這個問題,咱們添加了一組從中央房源的目的地中抽樣選擇的隨機負例樣本集。

 

http://wemedia.ifeng.com/89455165/wemedia.shtml

相關文章
相關標籤/搜索