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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Youtube深度学习推荐系统

發(fā)布時間:2024/1/23 windows 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Youtube深度学习推荐系统 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這里是王喆的機器學習筆記,每隔一到兩周我會站在算法工程師的角度講解一些計算廣告、推薦系統(tǒng)相關的文章。選擇文章必須滿足一下三個條件:

  • 一是工程導向的;
  • 二是阿里、facebook、google等一線互聯(lián)網(wǎng)公司出品的;
  • 三是前沿或者經(jīng)典的。

這周我們一起討論一下Youtube的深度推薦系統(tǒng)論文《Deep Neural Networks for YouTube Recommendations》,這是2016年的論文,按照今天的標準來看,已經(jīng)沒有什么新穎的地方,我也是兩年前讀過這篇文章之后就放下了,但前幾天重讀這篇文章,竟讓發(fā)現(xiàn)了諸多亮點,幾乎處處是套路,處處是經(jīng)驗,不由驚為神文。這篇神文給我留下的深刻印象有兩點:

  • 這毫無疑問是工業(yè)界論文的典范,是我非常推崇的工程導向的,算法工程師必讀的文章;
  • 我以為毫不起眼的地方,也藏著Youtube工程師寶貴的工程經(jīng)驗,相比上周介紹的阿里的深度興趣網(wǎng)絡DIN,最重要的價值就在于Attention機制,這篇文章你應該精確到句子來體會,這是我驚為神文的原因。
  • ?

    廢話不多說,下面就跟大家分享一下兩次拜讀這篇論文的不同體驗和收獲。

    第一遍讀這篇論文的時候,我想所有人都是沖著算法的架構去的,在深度學習推薦系統(tǒng)已經(jīng)成為各大公司“基本操作”的今天,Youtube在算法架構上并無驚奇之處,我們來快速介紹一下文章中的深度學習推薦系統(tǒng)的算法架構。

    ?

    Youtube的用戶推薦場景自不必多說,作為全球最大的UGC的視頻網(wǎng)站,需要在百萬量級的視頻規(guī)模下進行個性化推薦。由于候選視頻集合過大,考慮online系統(tǒng)延遲問題,不宜用復雜網(wǎng)絡直接進行推薦,所以Youtube采取了兩層深度網(wǎng)絡完成整個推薦過程:

  • 第一層是Candidate Generation Model完成候選視頻的快速篩選,這一步候選視頻集合由百萬降低到了百的量級。
  • 第二層是用Ranking Model完成幾百個候選視頻的精排
  • 首先介紹candidate generation模型的架構

    Youtube Candidate Generation Model

    ?

    我們自底而上看這個網(wǎng)絡,最底層的輸入是用戶觀看過的video的embedding向量,以及搜索詞的embedding向量。至于這個embedding向量是怎么生成的,作者的原話是這樣的

    Inspired by continuous bag of words language models, we learn high dimensional embeddings for each video in a xed vocabulary and feed these embeddings into a feedforward neural network

    所以作者是先用word2vec方法對video和search token做了embedding之后再作為輸入的,這也是做embedding的“基本操作”,不用過多介紹;當然,除此之外另一種大家應該也比較熟悉,就是通過加一個embedding層跟上面的DNN一起訓練,兩種方法孰優(yōu)孰劣,有什么適用場合,大家可以討論一下。

    ?

    特征向量里面還包括了用戶的地理位置的embedding,年齡,性別等。然后把所有這些特征concatenate起來,喂給上層的ReLU神經(jīng)網(wǎng)絡。

    三層神經(jīng)網(wǎng)絡過后,我們看到了softmax函數(shù)。這里Youtube的同學們把這個問題看作為用戶推薦next watch的問題,所以輸出應該是一個在所有candidate video上的概率分布,自然是一個多分類問題。

    好了,這一套深度學習的“基本操作”下來,就構成了Youtube的candidate generation網(wǎng)絡,看似平淡無奇,其實還是隱藏著一些問題的,比如

  • 架構圖的左上角,為什么在online serving的時候不直接用這套網(wǎng)絡進行預測而要使用nearest neighbor search 的方法?
  • 多分類問題中,Youtube的candidate video有百萬之巨,意味著有幾百萬個分類,這必然會影響訓練效果和速度,如何改進?
  • 這些問題在讀第一遍的時候我也沒有深想深看,但卻是工程實現(xiàn)中必然會遇到的問題,我們隨后再深入介紹論文中的解決方法。

    既然得到了幾百個候選集合,下一步就是利用ranking模型進行精排序,下面是ranking深度學習網(wǎng)絡的架構圖。

    Youtube Ranking Model

    ?

    乍一看上面的ranking model似乎與candidate generation模型沒有什么區(qū)別,模型架構還是深度學習的“基本操作”,唯一的區(qū)別就是特征工程,那么我們就講講特征工程。

    事實上原文也明確說明了,引入另一套DNN作為ranking model的目的就是引入更多描述視頻、用戶以及二者之間關系的特征,達到對候選視頻集合準確排序的目的。

    During ranking, we have access to many more features describing the video and the user's relationship to the video because only a few hundred videos are being scored rather than the millions scored in candidate generation.

    具體一點,從左至右的特征依次是

  • impression video ID embedding: 當前要計算的video的embedding
  • watched video IDs average embedding: 用戶觀看過的最后N個視頻embedding的average pooling
  • language embedding: 用戶語言的embedding和當前視頻語言的embedding
  • time since last watch: 自上次觀看同channel視頻的時間
  • #previous impressions: 該視頻已經(jīng)被曝光給該用戶的次數(shù)
  • 上面五個特征中,我想重點談談第4個和第5個。因為這兩個很好的引入了對用戶行為的觀察。

    第4個特征背后的思想是

    We observe that the most important signals are those that describe a user's previous interaction with the item itself and other similar items.

    有一些引入attention的意思,這里是用了time since last watch這個特征來反應用戶看同類視頻的間隔時間。從用戶的角度想一想,假如我們剛看過“DOTA經(jīng)典回顧”這個channel的視頻,我們很大概率是會繼續(xù)看這個channel的視頻的,那么該特征就很好的捕捉到了這一用戶行為。

    第5個特征#previous impressions則一定程度上引入了exploration的思想,避免同一個視頻持續(xù)對同一用戶進行無效曝光。盡量增加用戶沒看過的新視頻的曝光可能性。

    ?

    至此,我的第一遍論文閱讀就結束了,對Youtube的算法框架有了概念,但總覺得不過如此,沒什么太多新穎的地方。。

    但如果真這么想,還是太naive了,與上一篇阿里的深度興趣網(wǎng)絡DIN不同的是,你讀懂了DIN的attention機制,你就抓住了其論文70%的價值,但這篇文章,如果你只讀懂了Youtube的推薦系統(tǒng)架構,你只抓住了30%的價值。那么剩下的70%的價值在哪里呢?

    在重讀這篇文章的時候,我從一個工程師的角度,始終繃著“如何實現(xiàn)”這根弦,發(fā)現(xiàn)這篇論文的工程價值之前被我大大忽略了。下面我列出十個文中解決的非常有價值的問題:

  • 文中把推薦問題轉(zhuǎn)換成多分類問題,在next watch的場景下,每一個備選video都會是一個分類,因此總共的分類有數(shù)百萬之巨,這在使用softmax訓練時無疑是低效的,這個問題Youtube是如何解決的?
  • 在candidate generation model的serving過程中,Youtube為什么不直接采用訓練時的model進行預測,而是采用了一種最近鄰搜索的方法?
  • Youtube的用戶對新視頻有偏好,那么在模型構建的過程中如何引入這個feature?
  • 在對訓練集的預處理過程中,Youtube沒有采用原始的用戶日志,而是對每個用戶提取等數(shù)量的訓練樣本,這是為什么?
  • Youtube為什么不采取類似RNN的Sequence model,而是完全摒棄了用戶觀看歷史的時序特征,把用戶最近的瀏覽歷史等同看待,這不會損失有效信息嗎?
  • 在處理測試集的時候,Youtube為什么不采用經(jīng)典的隨機留一法(random holdout),而是一定要把用戶最近的一次觀看行為作為測試集?
  • 在確定優(yōu)化目標的時候,Youtube為什么不采用經(jīng)典的CTR,或者播放率(Play Rate),而是采用了每次曝光預期播放時間(expected watch time per impression)作為優(yōu)化目標?
  • 在進行video embedding的時候,為什么要直接把大量長尾的video直接用0向量代替?
  • 針對某些特征,比如#previous impressions,為什么要進行開方和平方處理后,當作三個特征輸入模型?
  • 為什么ranking model不采用經(jīng)典的logistic regression當作輸出層,而是采用了weighted logistic regression?
  • ?

    因為我也是在視頻推薦領域工作,所以可以很負責任的說以上的十個問題都是非常有價值的。但今天一口氣寫到這里,感覺有點氣力不足了。。大家如果感興趣的話可以點個贊,我明天再詳細分析一下以上十大問題的答案。

    上面問題的解答已經(jīng)完成啦,大家請參考我的下一篇文章——

    王喆:YouTube深度學習推薦系統(tǒng)的十大工程問題?zhuanlan.zhihu.com

    好了,這里是王喆的機器學習筆記的第二篇文章,水平有限,歡迎大家吐槽,批評,糾錯。

    也歡迎大家關注我的同名微信公眾號 王喆的機器學習筆記wangzhenotes),或者通過公眾號加我的個人微信進行進一步交流討論,謝謝。

    ?

    參考資料:

  • Deep Neural Networks for YouTube Recommendation
  • Recommender System Paper List
  • 推薦系統(tǒng)中的注意力機制——阿里深度興趣網(wǎng)絡(DIN)
  • 總結

    以上是生活随笔為你收集整理的Youtube深度学习推荐系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。