日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

谷歌最新双塔DNN召回模型——应用于YouTube大规模视频推荐场景

發布時間:2024/1/23 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 谷歌最新双塔DNN召回模型——应用于YouTube大规模视频推荐场景 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?谷歌基于雙塔DNN框架提出一個大規模最近鄰召回系統,為降低采樣偏差帶來的影響,文章對batch softmax的損失函數進行了改進,同時從工程的角度介紹了大規模雙塔DNN召回模型的訓練、部署、應用等細節

文章來源:https://zhuanlan.zhihu.com/p/128988454?點擊文末【閱讀原文】關注專欄及時獲得更多更新!

一、創新點

1、文章將視頻召回問題看做一個多分類問題,為解決全庫數據量巨大難以高效快速訓練的問題,文章采用采樣的方式來處理實時流數據,同時提出一種新的算法用于估計某個視頻從實時流中被采樣的概率,這個概率用于對損失函數進行優化

2、文章基于雙塔DNN框架提出一個大規模最近鄰召回系統,為降低采樣偏差帶來的影響,文章對batch softmax的損失函數進行了改進

3、文章同時從工程的角度介紹了大規模雙塔DNN召回模型的訓練、部署、應用等細節

二、論文背景

本文提出的雙塔DNN模型主要使用在類似于猜你喜歡這種場景下,即當你在YouTube上觀看某個視頻時,下方或者右側會給你推薦一些其他的視頻,這些視頻會經過召回——排序——重排序等過程最終展現給用戶,而如何從海量的候選視頻庫中精準的篩選出用戶更加感興趣的視頻是論文主要關注的地方。

YouTube視頻推薦

一般在推薦場景下,實時性是十分重要的,一些熱點新聞、資訊、視頻都需要及時的推送給用戶。同時像YouTube這種用戶量巨大的視頻網站,如何在滿足實時性的基礎上,對海量的用戶進行精準的個性化召回、排序與最終進行推薦是技術人員亟待解決的。YouTube將視頻召回看做一個多分類問題,多分類問題中最常使用的激活函數就是softmax,但是要知道YouTube上視頻素材庫中的視頻數量是巨大的,當類別數量特別大時,使用softmax來訓練模型是比較耗時的。所以一種常用的方法就是進行采樣,采樣理所當然會有一定的偏差,無法保證采樣后的分布和原始數據分布是一樣的,這樣模型學習到的將會是錯誤的分布從而影響模型的效果,所以文章一方面對損失函數進行了改進(加權對數似然函數),另一方面提出了一種對采樣概率進行自適應修正的算法,

三、整體框架

「1、損失函數」

整個召回系統采用的是雙塔結構,即分別構建請求側的Embedding和視頻側的Embedding,兩個塔的輸出就為各自的embedding向量,最終模型的輸出為兩個Embedding內積后的結果,即

文章將視頻召回看做一個多分類的問題,通常各個類別的權重都為1,但是在該場景中,文中引入了一個用戶偏好的權重(用戶觀看某視頻的時長),由于是多分類問題,將模型的輸出經過一個softmax函數之后得到具體對應的label,softmax函數如下

基于上述softmax函數的輸出和用戶偏好權重,損失函數采用加權對數似然函數的形式,具體如下

當視頻素材庫的視頻數量巨大時(M非常大),計算上述的softmax函數是十分低效且不太現實的,所以一個常用的方法就是對全量的視頻集合進行采樣,傳統的做法是訓練所需的負樣本從固定的集合中采樣得到,但是論文中的做法是對實時流中的數據采樣出一個batch,訓練的負樣本即這個batch中的負樣本,但是這樣就會引入偏差,即熱門的一些視頻有更大的可能成為負樣本,所以文章對上文中兩個embedding向量計算得到的內積進行了logQ修正,即

其中pj表示的是視頻j被隨機選中到batch中的采樣概率。基于此經過修正后的softmax函數的輸出以及修正后的損失函數如下所示

然后利用SGD即可進行參數的更新。具體的模型訓練算法如下所示

「上述模型訓練過程可以歸納為:」

(1)從實時數據流中采樣得到一個batch的樣本

(2)基于下文即將提到的采樣概率估計算法得到采樣概率pi

(3)計算上文介紹的修正后的損失函數

(4)利用SGD更新模型參數

「2、采樣概率修正」

這部分主要對采樣概率進行估計,這里的核心思想是假設某視頻連續兩次被采樣的平均間隔為B,那么該視頻的采樣概率即為1/B,如果該商品上一次被采樣的時刻為A的話,那么當該商品在時刻t被采樣時,文章提出的算法利用A輔助更新B,即

文章這里給出的是矩陣的形式,可以認為上式中的函數h()是一個hash函數,他將某個視頻的id映射到具體的索引上,然后利用該索引從矩陣B和矩陣A中分別得到該商品對應的平均采樣間隔和上一次該商品被采樣的時刻,從而進行梯度更新。當B更新完之后,需要對A進行更新(將時刻t賦值給A)。整體采樣頻率檢測算法如下所示

具體的證明過程可以參考論文中的描述,這里不做贅述

「3、其他」

(1)近鄰搜索:當模型訓練完成之后,我們首先可以對候選視頻進行inference得到視頻側的embedding向量,并對這些embedding構建索引用于線上查詢使用,當線上有用戶側的請求到來是,模型只需要首先對該用戶進行預測得到請求側的embedding,然后從構建好索引的視頻側embedding中檢索出top視頻即可,這里需要說明的是很難進行最近鄰的搜索(線上耗時的考慮),所以會采用一些近似最近鄰的檢索算法或者方式進行處理

(2)歸一化處理:文章提到對兩個塔輸出的embedding向量進行歸一化處理后會有效果上的提升,同時對歸一化后的內積值引入了一個超參數用來調整最終的輸出

(3)模型分布式訓練:論文中對模型分布式訓練進行了簡要的介紹,具體可以參考論文中的表述

(4)hash沖突:由于在采樣頻率估計中使用到了hash算法,會在一定程度上存在hash沖突的問題,為了解決該問題,文章提出了一種改進的采樣頻率估計算法,感興趣的可以具體參考盧文中的介紹,具體改進算法如下

四、模型結構與線上部署

雙塔DNN模型的結構與索引構建流程如下圖所示,

論文中對模型的結構、使用的特征進行的詳細的介紹,都是一些比較常規的特征處理方法,具體可以詳細參考論文中的描述,而且具體部署時候的方法與之前我們實際業務中的部署方案類似,感謝興趣的可以同時參考下之前的文章。

向量化召回在360信息流廣告的實踐

五、實驗結果

這里只貼出線上AB實驗的效果,論文中還花了大量的篇幅對其他的超參數進行了詳細的分析與對比,具體可以參考論文中的分析。線上A/B Test的結果如下圖所示

線上A/B Test結果

plain-sfx表示不通過概率對采樣偏差進行修正,correct-sfx表示修正采樣偏差,可以看到修正后效果更為顯著。

六、總結

論文詳細介紹了工業界應用雙塔DNN模型解決大規模視頻召回場景下的問題,同樣是一篇工程性很強的論文。相信很多人對雙塔DNN模型并不陌生,也有很多公司實際在這么做(也包括我所在的公司),但是文章中提到的很多細節問題可能是我們平時所忽略的(國內公司快糙猛,有效果就趕緊上線,之后再看要不要迭代優化),比如對embedding進行歸一化處理、對embedding內積引入修正系數、線上如何進一步提高檢索效率等。所以如果真的需要在實際業務中應用類似的架構設計,推薦大家去看一下原始的論文。

參考資料

  • Sampling-Bias-Corrected Neural Modeling for Large Corpus Item Recommendations

總結

以上是生活随笔為你收集整理的谷歌最新双塔DNN召回模型——应用于YouTube大规模视频推荐场景的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。