原來YouTube推薦系統的內幕是這樣……

爲何YouTube平臺上會源源不斷產生優質視頻和優質廣告,真的只是偶然嗎?爲何用戶一上youTube就黏住了,這背後到底下了多大的功夫研究人性的細節?如此海量的數據,如何精準地推送給每個恰當的人?html


這篇文章是繼咱們上一篇《可怕!YouTube算法如何讓小孩沉迷到不可自拔……》後,做者(Adrienne LaFrance)的又一篇力做。上一篇文章中,做者經過本身的直觀分析和數據調研對YouTube的推薦系統進行了猜測,而這一篇是YouTub推出關於自家推薦系統的論文後,做者對其的驗證、補足和進一步解析。這篇文章的信息密度大,但讀起來並不會索然無味,並且讀完會真正收穫到很是有用的信息。算法


如下,enjoy!瀏覽器


翻譯 | AI科技大本營(rgznai100)

參與 | 聶震坤



2016年9月18日,在波士頓舉辦的第10屆ACM推薦系統大會(ACM’s RecSys ‘16)上,來自Google的一個研究團隊公佈了YouTube推薦系統的深度學習論文:Deep Neural Networks for YouTube Recommendations網絡

論文地址:
架構

https://research.google.com/pubs/pub45530.html機器學習

論文做者是Google的軟件工程師 Jay Adams 與高級軟件工程師 Paul Covington、Embre Sargin,他們向業界展現了YouTube在機器學習推薦算法上的深度神經網絡使用狀況。該論文涉及到一些很是技術、很是高級的細節,但它最大的意義是爲咱們完整描繪了YouTube推薦算法的工做原理!!該論文細緻、審慎地描述了YouTube檢索、篩選並推薦視頻時的大量細節。

                                       算法論文的UP主解析

YouTube工程師發佈在ACM上的算法論文,目標受衆顯然不是咱們這些UP主。但爲了流量,閱讀並理解該算法的內容,並讓它來爲咱們UP主們服務就顯得責無旁貸了。接下來就看咱們如何從UP主的角度來解析這篇算法論文。

在論文公佈以前,咱們上一篇分析YouTube算法的文章(詳見AI科技大本營的譯文:《 想讓視頻網站乖乖幫你推內容?看看這位小哥是如何跟YouTube鬥法的 》),關注的主要是觀看時長這一個因素,由於咱們只能從本身上傳的視頻數據中來反推YouTube算法的工做原理,這確定要受限於咱們視頻的內容和受衆。咱們之因此瞭解YouTube的算法,是由於咱們解決了一下作視頻路上碰到的這個問題:「爲何咱們的視頻就能這麼成功呢?」爲此,咱們盡最大努力來分析已有的信息,但最初的結果並不理想。儘管我100%支持咱們的結論,但咱們先前的方法存在兩大問題:
  1. 僅用頻道指標的一部分來作反推,意味着咱們在數據上存在巨大的盲點,畢竟咱們沒法訪問競爭性指標、會話指標與點擊率。函數

  2. 對於那些基於UP主的指標,YouTube算法所給的權重很是小。它更關心的是觀衆以及單個視頻的指標。換句話說,該算法並不關心你所上傳的視頻,而是關心你和其餘人正在看的視頻。學習

但在咱們寫最初那篇文章的時候,YouTube或Google數年來都沒公佈過有關該算法的任何信息。因此,咱們只有本身動手。有了Google新近公佈的這篇論文,咱們就能夠一窺它推薦機制的究竟,並找出其中的重要指標。但願這能回答一個讓咱們更爲辛酸的問題,「爲何有些視頻能取得成功?」
測試

                                         深度學習是個無底洞

論文簡介部分最大的亮點是YouTube確實在用深度學習來驅動推薦算法。這種作法不新鮮,但這次確認證明了你們此前的猜想。做者在論文開頭是這樣說的:

在本論文中,咱們將集中介紹深度學習對YouTube視頻推薦系統的全面影響……跟Google其餘領域的產品同樣,YouTube一樣經歷了用深度學習來解決全部通用學習問題的根本性範式轉變。網站

這就意味着,從此人工調整算法、人工權衡這些調整並將其部署上世界最大的視頻分享網站的機會將愈來愈少。而是由算法實時來讀取數據、爲視頻排名,而後基於這些排名來推薦視頻。因此,當YouTube表示他們不知道算法爲何那樣作時,有可能他們確實不知道。

                                            兩大神經網絡

該論文以算法的基本架構做爲開篇,下面是做者的圖示:


本質上這就是兩個大的過濾器,各自有着不一樣的輸入。做者寫道:

該系統由兩大神經網絡組成,一個用於生成候選視頻,一個用來對其排名。

這兩個過濾器及其輸入內容,基本上決定了用戶在YouTubes上能看到的每個視頻:建議你播放的下一個、推薦給你的視頻列表、你所瀏覽的視頻列表……

第一個過濾器是候選生成器。論文中解釋,候選是基於用戶的YouTube活動記錄產生的,也就是用戶的觀看歷史與觀看時長。候選生成器還會考慮類似用戶的瀏覽記錄,這一點被稱爲協同過濾。類似用戶是算法經過視頻ID、搜索關鍵詞及相關的用戶統計信息決定出來的。

候選生成器的經過率僅爲屬百分之一,換言之,若是某個視頻能從數百個中脫穎而出成爲你的候選視頻,它一定是跟你的觀看記錄有關,同時還有一個跟你類似的用戶已經看過它。

第二個是排名過濾器。該論文對排名過濾器進行了大量的深度解析,並列j舉出很多有趣的因素。做者寫道,排名過濾器是這樣給視頻排名的:

基於描述視頻和用戶的豐富特徵,目標指望函數會給每一個視頻設定分數。根據分數排名,得分最高的視頻將被展現給用戶。

因爲觀看時長是YouTube爲用戶設定的首要目標,咱們只好假定這就是「目標指望函數」的意義。所以,考慮到各類不一樣的用戶輸入,該分數的意義就是某視頻可以轉化成用戶觀看時長的程度。但不幸的是,事情沒有那麼簡單。根據做者透露,該算法還會考慮不少其餘的因素。

咱們在排名過濾器中用到了數百種特徵。

如何對視頻進行排名這一塊的數學原理很是複雜。論文既沒有詳述排名過濾器所用的數百項因素,又沒有說起他們是如何加權的。但它列舉了其中的三大主要因素:瀏覽記錄、搜索記錄、觀看人數,以及包括新鮮程度在內的其餘視頻元素。

每一秒鐘都有大量的視頻上傳到YouTube。向用戶推薦這些最新上傳的新鮮內容,對YouTube來講極其重要。咱們長期觀察的結果是,用戶喜歡新鮮的內容,即使有些內容跟他的關聯程度並不大。

論文中提到的比較有趣的一點,是算法並不總會受用戶所看的上一個視頻的影響,除非你的觀看記錄極其有限。

咱們會優先使用用戶的隨機觀看和關鍵詞搜索記錄,而後纔會考慮上一個觀看視頻的數據。

在論文後面討論視頻封面圖和標題的時候,他們提到了點擊率的問題:

舉例來講,用戶有很大的概率來觀看系統推薦的視頻,但不太可能基於封面圖的選擇而去點擊其主頁……咱們最終的排名會根據實時A/B測試的結果不斷調整,它大致上就是一個用於預測用戶觀看時長的簡單函數。

在這裏提出點擊率的問題其實並未出乎預料。爲了能生成更多觀看時間,一個視頻必須先讓人看到才成,其中最好的辦法就是作出一個很讚的縮略圖並相出一個很讚的標題。這讓不少UP主都認爲點擊率對於視頻在算法中的排名極其重要。

但YouTube知道點擊率是能夠人爲刷上去的,因此他們也給出了應對之策。他們在論文中是這麼認可的:

經過點擊率進行排名每每會變相鼓勵誘導性的視頻內容,用戶即使點進去也不多看完視頻,於是觀看時長能更反映出視頻的好壞。

起碼這一機制還算鼓舞人心(譯註:對比一下國內某些網站的內容生產機制),做者接下來寫到:

若是用戶並未觀看最近推薦的視頻,頁面下一次加載時模型就會自動下降該視頻的排名。

這就說明,若是用戶沒有點擊特定的視頻,該算法就再也不將其推薦給類似的用戶。頻道推薦的狀況也同樣,論文中的證據以下:


咱們觀察到的最爲重要的信號是用來描述用戶此前跟某個視頻及其餘類似視頻的交互的……舉例來講,考慮一下用戶跟某個頻道已經被算法打分過的視頻的交互記錄:該頻道有多少視頻被該用戶看過?該用戶觀看同類話題的上一個視頻是在什麼時間?此類描述用戶過往活動的數據特別強大……

此外,該論文還指出,算法在訓練時考慮了YouTube視頻全部的觀看方式,包括那些推薦算法觸及不到的地方:

訓練數據生成自全部觀看方式的YouTube視頻(包括內嵌在其餘網頁中的那些),而非僅用咱們本身所生成推薦視頻。不然,新內容將很難登上推薦榜單,而推薦系統又將過於依賴過往視頻的數據。若是用戶經過內容查找到的視頻不一樣於咱們的推薦,咱們就須要能迅速經過推薦系統把該發現傳播給其餘用戶。

最終,這一切又回到了算法所用的觀看時間。正如咱們在論文開頭所看到的,該算法在設計之初就是一個「目標指望函數」,做者總結「咱們的目標就是爲了預測用戶的觀看時長」,「咱們最終的排名會根據實時A/B測試的結果不斷調整,它大致上就是一個用於預測用戶觀看時長的簡單函數。」

這也再一次說明了視頻觀看時間之於算法的重要性,該算法的目的就是爲了YouTube網站上能有更多、更長的視頻以及更多、更長的用戶觀看時間。

                                                   一個簡單的回顧

講了這麼多,讓咱們簡單回顧一下:

  1. YouTube使用三個主要的觀看因素來推薦視頻,它們是用戶的觀看歷史、搜索記錄以及相關的用戶統計信息。

  2. 推薦視頻是經過候選生成器與排名過濾器的篩選出來的,這兩大過濾器決定了YouTube如何讀取、篩選視頻,如何生成推薦列表。

  3. 排名過濾器主要是基於用戶輸入的因素,其餘因素還包括視頻的」新鮮程度「和點擊率。

  4. 推薦算法的設計初衷是持續增長用戶在YouTube網站的觀看時長,其方法是持續把視頻A/B測試的實時結果不斷反饋給神經網絡,從而使YouTube能不斷爲用戶推薦它大致上就是一個用於預測用戶觀看時長的簡單函數。

若是你還不明白,我們就再舉一個例子

咱們用一個實例來講明這個推薦系統具體是如何運做的:

好比說,小明很喜歡YouTube,他有YouTube帳號相關的一切。天天瀏覽YouTube時,他都會在瀏覽器登陸。一旦登陸,YouTube便給小明這次瀏覽的內容建立三個token:瀏覽記錄、搜索記錄以及關於他的統計信息。小明可能壓根就不知道這三種數據的存在。

而後輪到候選生成器上場了。YouTube拿這三個token的值跟觀看記錄相似於小明的用戶進行對比,由此篩選出小明可能會喜歡的數百個視頻,過濾掉YouTube視頻庫中數以百萬計的其餘內容。

接下來,基於視頻和小明的相關性,這些視頻被排名算法排序。排序時該算法會考慮這樣一些問題:小明有多大的可能會打開這個視頻?這個視頻有沒有可能讓小明在YouTube上打發更多時間?這個視頻的新鮮程度如何?小明最近在YouTube上的活動程度如何?還有數百個其餘的問題。

通過YouTube算法的讀取、篩選和推薦後,排名最高的視頻將被推薦給小明。以後小明看與不看的選擇數據都會反饋給神經網絡,以供算法後續使用。視頻被點開,並吸引小明在YouTube上打發更多時間的目標,則一直持續下去。那些小明沒有點開的推薦視頻,等他下次登陸網站時則有可能通不過候選生成器。

                                                   總結

Deep Neural Networks for YouTube Recommendations這篇論文讀起來很棒,它第一次讓人從源頭直擊YouTube推薦算法的內幕!!咱們但願能接觸到更多的論文,以便在爲這個平臺製做內容的時候能作出更好的選擇。這也是願意花時間來寫這些內容的根本緣由。畢竟,更適合該平臺的內容就意味着更多的瀏覽量、更高的收入,從而讓咱們能有更多的資源來爲數以十億計的用戶製做出品質更高、更有吸引力的內容。


做者 | Matt Gielen

原文連接:

http://www.tubefilter.com/2017/02/16/youtube-algorithm-reverse-engineering-part-ii/

相關文章
相關標籤/搜索