Youtube推薦雙塔模型——SBCNMYoutube推薦雙塔模型——SBCNMSamplingBiasCorrected Neural Modeling for Large Corpus Item Recommendations是youtube推薦在2019年的一篇論文,可以把他看作2016年那篇經典論文(Deep ......
SamplingBiasCorrected Neural Modeling for Large Corpus Item Recommendations是youtube推薦在2019年的一篇論文,可以把他看作2016年那篇經典論文(Deep Neural Networks for YouTube Recommendations)里,召回模型的升級版本。
同樣,先簡單介紹一下論文,再談談自己的理解和相關實踐。
論文速讀
這篇理論文是Deep Neural Networks for YouTube Recommendations中召回模型的升級版本。使用了經典的雙塔結構,從而可以加入item側的各種特征,提升泛化和新資源的預估能力。論文的主要貢獻包括四點:
Streaming Frequency Estimation:流式詞頻預估,or流式展現次數預估。主要為了解決batch內負采樣時,詞頻有偏的問題。
Modeling Framework:雙塔召回模型,使用batch softmax交叉熵,同時使用batch內負采樣。
YouTube Recommendation:大規模數據場景應用,不多贅述。
Ofline and Live Experiments:離線測試和在線效果,不多贅述。
Modeling Framework
模型訓練大的方面都比較常規,雙塔結構+負采樣(這套DNN召回方式,在這篇論文之前我們就已經在用了)。
網絡結構上是一個典型的雙塔,分別產出用戶和item的向量表達,方便召回時從全量候選集中快速選取top。
樣本方面,采用百萬級label上的softmax多分類(每個item視作一個分類,和16年的論文一樣)。負樣本采用batch內負采樣,來消除item頻次對召回準確性的bias。
論文里提到,batch內softmax,所以分布上和全局softmax肯定存在bias:高頻item因為在batch內出現的概率高,會被過度懲罰。因此,論文提到一種做法,在sotmax前的輸出上加一個和頻次(or隨機batch內出現的概率)相關的懲罰項。大致效果是item在batch內出現的概率越高,softmax的輸入會在原來的基礎上越小,從而降低高頻item的預估概率,消除bias。
下面貼幾個公式,公式細節我就不解釋了,細節可以看原文,功能和思想參考我上面的解釋。
在sotmax前的輸出上加一個和頻次相關的懲罰項:
是item在batch內出現的概率越高,softmax的輸入會在原來的基礎上越小,從而降低高頻item的預估概率:
ok,以上這個處理是這篇論文的核心之一
以上,引入了另外一個核心問題,如何知道item在隨機batch內出現的概率從而有了論文的另外一個核心:Streaming Frequency Estimation。
(論文里還提到一個標準化和熱度的東西,預估的時候用一個熱度超參來調節score,這里不是很理解論文的思路和具體做法,就先不談了,有清楚的朋友可以評論和我討論下)
Streaming Frequency Estimation
這里我同樣先說思想,再貼論文的算法和簡述。
論文采用兩個矩陣來記錄和更新item出現的step和頻率。
以下,貼一段論文的描述:
這里矩陣A記錄的是item y上一次出現的step,所以tA[y]就是y最近一次的出現間隔。從而不斷更新B,得到的就是y出現間隔的期望(這里我也是大致意會了一下,詳細的推導和說明建議看原文)。也可以理解為,每次出現的間隔是一個樣本,通過SGD和學習率不斷學習得到了平均間隔的預估B。附一段原論文,個人感覺理解這一段就可以了。
ok,上面得到了item y的出現間隔預估B,那么frequency estimate就等于1/B[y]。
到這里,整篇論文的精華就解釋完了。
之后,論文提到了一個streaming frequency estimate的改進方法,主要解決算法2中hash碰撞的問題。也很簡單,就是用多個hash,記錄多個B,最后用max(Bi)。
個人感覺hash算法用的好,外加item的更新淘汰,小概率的碰撞其實沒啥影響。
最后,再貼一個網絡結構圖,其他的應用和評估細節就先不贅述了,
其他tips:
1.論文使用了觀看進度做為loss weight,短點擊權重為0,完播權重1,其他是否有平滑處理不確定。這里做一點衍生,其實用觀看進度做為權重會有時長bias,傾向于較短的視頻,用觀看時長的話有會傾向于較長的視頻,這里可以做不少結合業務的微處理。
2.用戶和item側會共享部分id特征
個人理解
結合我自己的業務經驗,談談理解吧
1.首先說一個自己特別疑惑的地方,一直沒搞明白具體區別和效果。youtube的做法是softmax,把每個item當作一個分類,從而預估用戶在整個items集合上的偏好分布。我自己的業務場景里,是用的sigmoid二分類(點擊和負采樣),更像是預估一個item被展現且點擊的概率。這里不確定兩種方式效果的具體差異,也沒對比過,有清楚的大佬可以教我一下。個人猜測,二分類的方式泛化會更強,softmax的方式準確會更高
2.這個模型還有一個點,是我很想嘗試一下的,就是用戶側的行為和item側共享id這一類的emb表達。可能會對session序列的刻畫更好,以及上文和當前item的關系預估更準確。
3.效果:從我個人的業務線和周圍其他的業務線情況看,類似這種端到端的召回效果和整體占比都不算太高;我甚至試過用粗排模型做召回,效果更弱。這也是我一直思考,卻沒有明確答案的:為什么這種端到端的DNN召回很難占據絕對優勢呢
4.DNN召回目前沒有特別好的演進方向。我個人理解幾個點比較合適:a.擺脫頂層cross的結構,引入更多交叉特征和負責結構,使得整體學習更加充分。b.擺脫單目標建模優化的方式,畢竟單目標沒法刻畫用戶的滿意或者令用戶喜悅的感受,更多的考慮多目標的融合,比如,展現率,點擊率,觀看進度,是否點贊評論關注等等。
5.疑問,論文里描述模型是天級更新,感覺有點落后。。。對新視頻不夠友好,而且反饋能力也會偏弱吧
特別聲明:以上文章內容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關于作品內容、版權或其它問題請于作品發表后的30日內與ESG跨境電商聯系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號密碼登錄
平臺顧問
微信掃一掃
馬上聯系在線顧問
小程序
ESG跨境小程序
手機入駐更便捷
返回頂部