DSSM在召回和粗排的應用舉例
0.寫在前面的話
DSSM(Deep Structured Semantic Models)又稱雙塔模型,因其結構簡單,在推薦系統中應用廣泛;下面僅以召回、粗排兩個階段的應用舉例,
具體描述下DSSM在工業界實踐的一些所見所聞,力求自身和大家都能有所收穫。
1.網絡結構
paper:Learning Deep Structured Semantic Models for Web Search using Clickthrough Data
example:DSSM召回模型
原始的DSSM是在搜索CTR預估任務,大概分為:1)embedding層 2)MLP層 3)cosine相似度logit 4)softmax層;其中Q代表搜索詞(用戶),D1,2,…,n為檢索文檔(物料) 。
如果將最左側看作一個塔,並稱為用戶塔;那右側就可以稱為物料塔(或者物料塔1,2,…,n);雙塔,多塔架構由此得來。
1.1 tanh激活函數與ReLU激活函數
注意DSSM是用的tanh激活函數
2.召回應用
自然能想到,將用戶最近點擊,消費,轉化等的數據採集後作為正樣本;採樣些全局最熱但未點擊(Youtube負採樣套路)作為負樣本構造樣本訓練DSSM模型進行推薦召回。
DSSM在預測的時候就可以藉助Faiss進行異步物料向量更新,加載模型後可以根據實時用戶行為進行ANN檢索(求Topk相似向量)。
下圖為視頻 | 深度學習在美圖個性化推薦的應用實踐 中DSSM召回線下訓練,線上serving的整體架構圖。
當然DSSM只是一種架構,上面模型結構只是其中一個示例;實際user feature,item feature可以有多種多樣建模方式,負樣本採樣、以及sigmoid還是softmax loss等等都是可以探索的地方。
3.粗排
如果說DSSM召回是用戶物料表徵的精耕細作,那DSSM粗排就是學習精排序的算力優化。
下面是全民K歌推薦分享 中粗排的引入:大概總結就是將多路召回結果在進入精排前引入粗排階段,在性能約束的情況下學習精排的排序結果,初篩出精排能處理的結果集。
下面是全民K歌推薦分享 的兩個演進:
承上啟下,上面DSSM的兩個優化點都藉助於模型蒸餾,其一softmax中加入temperature(即參數T),可以起到平滑/尖銳softmax輸出的作用;
T越大,結果越平滑,得到的概率分佈更「平滑」;相應的T越小,得到的概率分佈更「尖銳」,這就是T的作用。更詳細的計算可以參考: SoftMax溫度係數temperature parameter;
其二引入Teacher-Student架構進行蒸餾,下面是增加了優勢特徵(Privileged Features)蒸餾的架構圖:
教師網絡訓練的同時,異步更新學生網絡,減少訓練時長;線上serving時,僅部署student網絡進行前向推斷。這樣就可以同時訓練複雜模型,和提供輕量的線上預估模型。
粗排中的優勢特徵:
有一些交叉特徵是對粗排效果影響明顯的,比如用戶(u_i)在過去24個小時內在待預估商品類目(cate_j)下的點擊次數。但是複雜的交叉特徵會增加線上的推理延時,所以不能作為常規特徵來訓練。於是交叉特徵就成為了粗排階段的優勢特徵。
關於Point2中的公式說明:
X表示普通特徵,X*表示優勢特徵,y表示標籤,L表示損失函數;下標s表示student,d表示distillation,t表示teacher。
4.寫在後面的話
上面的介紹僅是從dssm角度總結了召回,排序的一些工作;實際dssm導出的用戶向量,物料向量還可衍生出很多著名的召回(讀者可以想想上一篇ucf變種); 同時整個排序架構特徵更新、樣本拼接,模型更新等都由於篇幅有限沒有詳細說明,那下一篇文章想和大家一起總結回顧下近年來排序模型及架構的主要演進。