1. 程式人生 > >【閱讀筆記】Real-time Personalization using Embeddings for Search Ranking at Airbnb

【閱讀筆記】Real-time Personalization using Embeddings for Search Ranking at Airbnb

Real-time Personalization using Embeddings for Search Ranking at Airbnb

Airbnb, Inc
KDD2018 ADS Track 的最佳論文

METHODOLOGY

Listing Embeddings

在這裡插入圖片描述
我們有使用者瀏覽的 session 資料,使用類似 skip-gram model 的方法來 embed 每條 listing,認為瀏覽過程中前後的 listing 是相似的,最大化:
L

= s S l
i
s
( m
< j < m , j 0
l o g P ( l I + j l i ) ) L=\sum_{s\in S}\sum_{l_i \in s}(\sum_{-m<j<m,j\neq 0}logP(l_{I+j}|l_i))

P ( l i + j l i ) = v l i + j T v l i l v l T v l i P(l_{i+j}|l_i)=\frac{v^T_{l_{i+j}}v_{l_i}}{\sum_{l}v^T_lv_{l_i}}

但是 listing 太多,計算過於複雜。我們改變思路,生成正集合 D p D_p (裡面的元素對在一個 session 視窗 m m 內連續點選)和負集合 D n D_n (裡面的元素為隨機取的),優化問題變為:
a r g m a x θ ( l , c ) D p l o g 1 1 + e x p ( v c T v l ) + ( l , c ) D n l o g 1 1 + e x p ( v c T v l ) argmax_{\theta}\sum_{(l,c)\in D_p}log\frac{1}{1+exp(-v^T_cv_l)}+\sum_{(l,c)\in D_n}log\frac{1}{1+exp(v^T_cv_l)}

Booked Listing as Global Contex

對於最終預定的 session,我們任務瀏覽過程的 listing 與最後預定的 listing 也是相似的,多增加一項
a r g m a x θ ( l , c ) D p l o g 1 1 + e x p ( v c T v l ) + ( l , c ) D n l o g 1 1 + e x p ( v c T v l ) + l o g 1 1 + e x p ( v l b T v l ) argmax_{\theta}\sum_{(l,c)\in D_p}log\frac{1}{1+exp(-v^T_cv_l)}+\sum_{(l,c)\in D_n}log\frac{1}{1+exp(v^T_cv_l)}+ log\frac{1}{1+exp(v^T_{l_b}v_l)}

Adapting Training for Congregated Search

因為隨機抽取的 D n D_n ,所以大概率選取 D p D_p 來源於同一個 market, D n D_n 來源於不同的 market,為了使得學習的 embedding 學到的不是 market 的資訊而是產品的資訊,所以我們隨機抽取同一市場的作為輔助負集合 D m D_m

Cold start listing embeddings

建立 listing 後,host 需要提供有關資訊,例如位置,價格,列表型別等。使用提供的元資料來查詢3個地理位置最接近(半徑10英里內)、其他型別也相似的、價格區間相同的 listing ,把這3個 listing 的 embedding 向量以形成新的 listing 的 embedding。 這樣我們能夠覆蓋超過98%的新 listing。

Examining Listing Embeddings

發現 embedding 確實有效,相似的 listing 有相近的 embedding。

User-type & Listing-type Embeddings

我們希望學習到不同市場(紐約和倫敦的房間)之間的 listing 之間的相似性。我們給定一個 user 的預定列表 s b = ( l b 1 , . . . , l b M ) s_b = (l_{b1} , . . . ,l_{bM})