1. 引言
在大規模推薦系統中,如何從海量候選物品中高效檢索出用戶可能感興趣的物品是一個關鍵問題。傳統的矩陣分解方法在處理稀疏數據和長尾分布時面臨挑戰。本文介紹了一種基于雙塔神經網絡的建模框架,通過采樣偏差校正技術提升推薦質量,并成功應用于YouTube視頻推薦系統。
2. 建模框架
論文的亮點不在于提出了新的架構,而是針對訓練時負采樣的處理。
- 模型架構
2.1 問題定義
給定查詢(用戶和上下文)和物品的特征表示:
- 查詢特征: x i ∈ X x_i \in \mathcal{X} xi?∈X
- 物品特征: y j ∈ Y y_j \in \mathcal{Y} yj?∈Y
目標是通過雙塔神經網絡學習嵌入函數:
u : X × R d → R k v : Y × R d → R k \begin{aligned} u &: \mathcal{X} \times \mathbb{R}^d \rightarrow \mathbb{R}^k \\ v &: \mathcal{Y} \times \mathbb{R}^d \rightarrow \mathbb{R}^k \end{aligned} uv?:X×Rd→Rk:Y×Rd→Rk?
其中模型參數 θ ∈ R d \theta \in \mathbb{R}^d θ∈Rd,輸出為內積得分:
s ( x , y ) = ? u ( x , θ ) , v ( y , θ ) ? s(x,y) = \langle u(x,\theta), v(y,\theta) \rangle s(x,y)=?u(x,θ),v(y,θ)?
2.2 損失函數
將推薦視為帶連續獎勵的多分類問題,采用softmax概率:
P ( y ∣ x ; θ ) = e s ( x , y ) ∑ j ∈ [ M ] e s ( x , y j ) \mathcal{P}(y|x;\theta) = \frac{e^{s(x,y)}}{\sum_{j\in[M]} e^{s(x,y_j)}} P(y∣x;θ)=∑j∈[M]?es(x,yj?)es(x,y)?
加權對數似然損失:
L T ( θ ) = ? 1 T ∑ i ∈ [ T ] r i ? log ? ( P ( y i ∣ x i ; θ ) ) L_T(\theta) = -\frac{1}{T}\sum_{i\in[T]} r_i \cdot \log(\mathcal{P}(y_i|x_i;\theta)) LT?(θ)=?T1?i∈[T]∑?ri??log(P(yi?∣xi?;θ))
2.3 批處理softmax
當物品集 M M M極大時,計算完整softmax不可行。一種常見的方法是使用一批項目的一個子集,特別是對于來自同一批次的所有查詢,使用批次內的項目作為負樣本。給定一個包含 B 對 ( x i , y i , r i ) i = 1 B {(x_i,y_i,r_i)}_{i=1}^{B} (xi?,yi?,ri?)i=1B? 的小批次,批次 softmax 為:
P B ( y i ∣ x i ; θ ) = e s ( x i , y i ) ∑ j ∈ [ B ] e s ( x i , y j ) \mathcal{P}_B(y_i|x_i;\theta) = \frac{e^{s(x_i,y_i)}}{\sum_{j\in[B]} e^{s(x_i,y_j)}} PB?(yi?∣xi?;θ)=∑j∈[B]?es(xi?,yj?)es(xi?,yi?)?
2.4 采樣偏差校正
流行物品因高頻出現在批次中會被過度懲罰,引入對數校正項:
s c ( x i , y j ) = s ( x i , y j ) ? log ? ( p j ) s^c(x_i,y_j) = s(x_i,y_j) - \log(p_j) sc(xi?,yj?)=s(xi?,yj?)?log(pj?)
其中 p j p_j pj?為物品 j j j的采樣概率。
校正后的損失函數:
L B ( θ ) = ? 1 B ∑ i ∈ [ B ] r i ? log ? ( e s c ( x i , y i ) e s c ( x i , y i ) + ∑ j ≠ i e s c ( x i , y j ) ) L_B(\theta) = -\frac{1}{B}\sum_{i\in[B]} r_i \cdot \log\left(\frac{e^{s^c(x_i,y_i)}}{e^{s^c(x_i,y_i)} + \sum_{j\neq i}e^{s^c(x_i,y_j)}}\right) LB?(θ)=?B1?i∈[B]∑?ri??log(esc(xi?,yi?)+∑j=i?esc(xi?,yj?)esc(xi?,yi?)?)
3. 流式頻率估計算法
3.1 核心思想
通過全局步長(global step)估計物品采樣間隔 δ \delta δ,進而計算采樣概率:
p = 1 δ p = \frac{1}{\delta} p=δ1?
3.2 算法實現
數據結構:
- 哈希數組 A A A:記錄物品最后一次出現的步長
- 哈希數組 B B B:估計物品的采樣間隔 δ \delta δ
更新規則(SGD形式):
B [ h ( y ) ] ← ( 1 ? α ) ? B [ h ( y ) ] + α ? ( t ? A [ h ( y ) ] ) B[h(y)] \leftarrow (1-\alpha) \cdot B[h(y)] + \alpha \cdot (t - A[h(y)]) B[h(y)]←(1?α)?B[h(y)]+α?(t?A[h(y)])
數學性質:
-
偏差分析:
E ( δ t ) ? δ = ( 1 ? α ) t δ 0 ? ( 1 ? α ) t ? 1 δ \mathbb{E}(\delta_t) - \delta = (1-\alpha)^t\delta_0 - (1-\alpha)^{t-1}\delta E(δt?)?δ=(1?α)tδ0??(1?α)t?1δ -
方差上界:
E [ ( δ t ? E [ δ t ] ) 2 ] ≤ ( 1 ? α ) 2 t ( δ 0 ? δ ) 2 + α E [ ( Δ 1 ? δ ) 2 ] \mathbb{E}[(\delta_t - \mathbb{E}[\delta_t])^2] \leq (1-\alpha)^{2t}(\delta_0 - \delta)^2 + \alpha\mathbb{E}[(\Delta_1 - \delta)^2] E[(δt??E[δt?])2]≤(1?α)2t(δ0??δ)2+αE[(Δ1??δ)2] -
各學習率誤差的結果
3.3 多哈希優化
使用 m m m個哈希函數減少碰撞誤差:
p ^ = max ? 1 ≤ i ≤ m 1 B i [ h i ( y ) ] \hat{p} = \max_{1\leq i\leq m} \frac{1}{B_i[h_i(y)]} p^?=1≤i≤mmax?Bi?[hi?(y)]1?
4. 在YouTube推薦系統中的應用
4.1 系統架構
- 查詢塔:融合用戶觀看歷史和種子視頻特征
- 候選塔:處理候選視頻內容特征
- 共享特征嵌入提升訓練效率
4.2 關鍵創新
- 流式訓練:按天順序消費數據,適應分布變化
- 哈希桶技術:處理新出現的內容ID
- 索引管道:量化哈希技術加速最近鄰搜索
5.Trick
在相似度得分上添加溫度參數 τ \tau τ
此外,為了使預測結果更加尖銳,我們在每個 logit 上添加了一個溫度參數 τ。具體來說,我們使用以下公式計算查詢和候選項目之間的相似度得分:
s ( x , y ) = ? u ( x , θ ) , v ( y , θ ) ? τ s(x,y)= \frac{?u(x,θ),v(y,θ)?}{\tau} s(x,y)=τ?u(x,θ),v(y,θ)??
?
Youtube實驗結果
6. 結論
本文提出的采樣偏差校正方法通過:
- 理論保證的無偏頻率估計
- 適應動態變化的流式環境
- 可擴展的分布式實現
在十億級物品的推薦場景中顯著提升了檢索質量,為大規模內容推薦提供了新的解決方案。
引用
Yi, X., Yang, J., Hong, L., Cheng, D. Z., Heldt, L., Kumthekar, A., Zhao, Z., Wei, L., & Chi, E. (2019). Sampling-bias-corrected neural modeling for large corpus item recommendations. Proceedings of the 13th ACM Conference on Recommender Systems, 269–277.