1. 程式人生 > 其它 >[推薦系統]粗排之FSCD

[推薦系統]粗排之FSCD

目錄

1 引言

眾所周知:

召回階段需要儘可能覆蓋使用者感興趣的各種型別物品;
粗排模型要求計算快,
精排模型要求計算準確,
重排考慮業務規則、多樣性等。

在粗排用的最廣泛的就是DSSM雙塔模型,其會將使用者特徵、廣告特徵分別用兩個shallow-dnn的結構計算,得到embedding,線上serving時候通過dot-product或者簡單dnn的模式計算得分;如粗排模型-從雙塔到全連結DNN:COLD & FSCD中所述,這種模型有以下不足

效果:無法學習使用者和item的交叉特徵,模型表達能力弱
更新頻率:一般會離線計算item-embedding,推送線上伺服器記憶體中,請求來的時候僅計算user-embedding,因而item-embedding的更新頻率會相對慢,影響線上效果
版本管理:雙側embedding必須要相同版本才能做匹配計算,模型更新時存在版本維護、版本替換等問題

因此,COLD、FSCD都期望打破這種雙塔的模型結構,在粗排引入交叉特徵,同時優化模型結構、計算邏輯等,在效果和效能上形成折中;這兩種方法思考的方向比較類似,COLD通過特徵篩選、計算邏輯優化來達到目標,FSCD通過特徵篩選、LOSS優化來實現

2 FSCD

2.1 互動特徵和表徵特徵結構

如圖所示

具有RF結構的簡單粗排模型會存在表達能力受限的問題。目前工業界的粗排模型通常採用基於向量點積的雙塔模型,它是一種典型的RF結構,優點是線上複雜度低,可以實現多個內容的打分,但缺點也很明顯:缺少顯式的內容側交叉特徵和隱式的交叉語義資訊,而這些資訊對效果的提升有很大的助力。具有RF結構的粗排模型過於關注效率的優化,與IF結構的模型效果差距非常大。在實際線上服務過程中,以阿里搜尋廣告為例,特徵的生成和模型推斷幾乎各佔用了一半的線上時延,因此同時考慮效率和效果來進行粗排模型的特徵選擇可以顯著改善線上效率,從而為基於IF結構的粗排模型提供了可能。

最左邊的:基於表示的粗排模型僅使用少量特徵,計算效率高,但表達能力有限;
最右邊的:基於複雜特徵互動的精排模型使用完整的特徵集,精度高,但計算效率低
中間的:這篇文章提出的模型希望對兩者做一個權衡,使用少部分特徵互動(多於粗排模型,少於精排模型)。

1.通過繼承精排模型結構,粗排階段成功採用了IF結構的模型,解決了RF結構的效果不足的問題;
2.提出了一種基於特徵複雜度和variational dropout的可學習特徵選擇方法(FSCD),可以學到一組效率和效果都優越的特徵集合提供給粗排模型進行訓練;
3.實驗結果顯示,採用提出的粗排模型後,整個系統在效率持平的情況下獲得了顯著的線上效果提升

2.2 FSCD的主要內容

SIGIR 2021 | FSCD-PreRank:面向效率和效果更加均衡的互動式粗排模型所述

受到傳統的Dropout FR方法的啟發,提出了特徵選擇的FSCD方法來同時考慮特徵的效率和效果,具體流程可見上圖。在提出的FSCD方法中,特徵的效果通過損失函式的交叉熵來進行優化,同時特徵的效率通過特徵維度的正則化來進行保證。FSCD方法可以通過一次端到端的訓練來提取既有效果又有效率的特徵集合。因此,應用這個特徵集合的粗排模型的表達能力相比於基線模型可以獲得顯著增強。具體的推導過程如下:

為了選擇出既有效果又有效率的特徵集合,我們希望給每一個特徵域\(f_j\)都設定一個可學習的拋棄(dropout)因子\(z_j\in\{0,1\}\),以此來表示特徵被拋棄(\(z_j=0\))或者被保留(\(z_j=1\))。\(f_j\)的embedding向量\(v_j\)會乘以\(z_j\)來組成新的embedding層。因子\(z_j\)滿足引數為\(\theta_j\)的伯努利分佈,即

\[z_j\sim Bern(\theta_j) \]

其中超參\(\theta_j\)是特徵域\(f_j\)獲得保留的先驗概率,建模為特徵複雜度\(c_j\)的函式:

\[\theta_j=H(c_j)=1-\sigma(c_j) \] \[c_j=G(o_j,e_j,n_j) \]

1): 其中\(\sigma(\cdot)\)是sigmoid函式。\(\theta_j=1-\sigma(c_j)\)是建模\(\theta_j\)\(c_j\)的一種方式,在實際應用中表現不錯;
2): 特徵複雜度\(c_j\)衡量第\(j\)個特徵的儲存和計算複雜度,包括但不限於線上計算複雜度\(o_j\)、embedding維度\(e_j\)、embedding取值的個數\(n_j\)等等。會根據特徵型別來進行設定。
3): 線性組合\(c_j=\gamma_1 o_j+ \gamma_2 e_j + \gamma_3 n_j\)是實現函式\(G(\cdot)\)的一種可行的方式,同時需要考慮超參\(\gamma_1,\gamma_2,\gamma_3\)的設定。
4): 根據上述公式可知,具有較高複雜度的特徵會擁有較小的保留先驗概率\(\theta_j\),反之亦然。

給定訓練樣本\(D=\{(x_i,y_i)|i=1,2,...,N\}\),其中\(N\)是樣本總數,可學習的特徵選擇損失函式為:

\[L(v,w,z)=-\frac{1}{N}log P(D|v,w,z)+\frac{\lambda}{N}(||w||^2+||v||^2)+\sum_{j=1}^M \frac{\alpha_j z_j}{N} \]

其中\(\alpha_j\)\(z_j\)的正則化權重,可以寫作(詳細推導過程見原文附錄):

\[\alpha_j=log(1-\theta_j)-log(\theta_j) \]

\(\alpha_j\)\(\theta_j\)的減函式,是\(c_j\)的增函式。因此,具有較大複雜度\(c_j\)的特徵在訓練中會受到較大的懲罰\(\alpha_j\),因此有更大的可能被捨棄掉。通過這種方式,FSCD方法引入了特徵複雜度的建模,具筆者所知,這是傳統特徵選擇方法所不具備的。

由於\(z_j\)滿足伯努利分佈,因此它是離散且不可導的,這與基於梯度下降的訓練過程相違背。為了解決這個問題,伯努利分佈被鬆弛成如下的可導函式:

\[z_j=F(\delta_j)=\sigma(\frac{1}{t}(log(\delta_j)-log(1-\delta_j)+log(u_j)-log(1-u_j))) \]

其中\(u_i \sim Uniform(0,1)\)滿足0-1之間的均勻分佈,在訓練過程中始終是隨機變化的,\(t=0.1\)是常數,且在阿里搜尋廣告的實驗中表現很好。對於絕大多數的\(\delta_j\)\(F(\delta_j)\)都是接近於0或1的,因此可以作為伯努利分佈的連續函式近似。相比於保留先驗概率\(\theta_j\)\(\delta_j\)扮演了保留後驗概率的角色,因此可以作為特徵重要性被模型學習出來。

以上就是FSCD的特徵選擇方法,主要的可學習的變數有\(v,w,\delta\),它們在訓練中會同步更新。在\(\delta\)達到收斂之後,粗排模型的特徵子集就可以按照從大到小進行選取。

2.3 粗排模型的微調

在完成FSCD方法的特徵選擇之後,不在粗排特徵集合中的特徵會被拋棄,粗排模型會基於FSCD方法的\(v\)\(w\)引數進行模型初始化,從而進行微調。具體地,粗排模型會基於如下的損失函式進行訓練:

\[L(v^{'},w^{'})=-\sum_{i=1}^{N} log p(y_i|f(x_i^{'}, v^{'}, w^{'})) \]

其中\(x_i^{'}\)是包含選取特徵的樣本,\(v^{'}\)\(w^{'}\)分別是選取特徵相關的embedding和網路權重。\(v^{'}\)\(w^{'}\)\(v\)\(w\)進行初始化,可以加速粗排模型的收斂。伯努利因子僅在FSCD方法中使用,而在微調過程中不再考慮。

2.3 資源複用


圖3給出了提出的粗排模型應用於阿里搜尋廣告架構後的資源複用情況。由於粗排模型的特徵集合是精排模型特徵集合的子集,因此粗排模型的樣本鏈路可以完全複用精排模型,無須重新生產樣本,節省了大量的離線樣本生成的資源。對於模型訓練,粗排和精排相互獨立,而由於粗排模型特徵量遠小於精排模型,因此訓練資源的消耗也顯著低於精排。對於模型校驗和產出,粗排模型可以完全複用精排模型產出鏈路,做到零成本搭建鏈路。線上服務階段採用阿里集團的RTP的打分服務,粗排模型由於體積小,可以和精排模型混部在同一個線上分組當中,無需額外儲存裝置,儲存開銷增長接近於零。綜上,提出的粗排模型在離線樣本產出、模型訓練、模型產出、線上服務等階段都最大程度地複用精排模型鏈路,整個架構呈現儲存零新增、計算微增長,以及搭建成本低的特點。

參考文獻:
SIGIR 2021 | FSCD-PreRank:面向效率和效果更加均衡的互動式粗排模型
粗排模型-從雙塔到全連結DNN:COLD & FSCD
粗排階段效能與效率的權衡:基於可學習特徵選擇的方法
SIGIR’2021|粗排模型效能與效率的權衡