更新時間:2017-08-31 來源:黑馬程序員python培訓學院 瀏覽量:
去年,在波士頓舉辦的第10屆ACM推薦系統(tǒng)大會(ACM’s RecSys ‘16)上,來自Google的一個研究團隊公布了YouTube推薦系統(tǒng)的深度學習論文:Deep Neural Networks for YouTube Recommendations
論文作者是Google的軟件工程師 Jay Adams 與高級軟件工程師 Paul Covington、Embre Sargin,他們向業(yè)界展示了YouTube在機器學習推薦算法上的深度神經(jīng)網(wǎng)絡使用情況。該論文涉及到一些非常技術、非常高級的細節(jié),但它最大的意義是為我們完整描繪了YouTube推薦算法的工作原理!!該論文細致、審慎地描述了YouTube檢索、篩選并推薦視頻時的大量細節(jié)。
算法論文的UP主解析
YouTube工程師發(fā)布在ACM上的算法論文,目標受眾顯然不是我們這些UP主。但為了流量,閱讀并理解該算法的內容,并讓它來為我們UP主們服務就顯得義不容辭了。接下來就看我們如何從UP主的角度來解析這篇算法論文。
在論文公布之前,我們上一篇分析YouTube算法的文章(詳見AI科技大本營的譯文:《想讓視頻網(wǎng)站乖乖幫你推內容?看看這位小哥是如何跟YouTube斗法的》),關注的主要是觀看時長這一個因素,因為我們只能從自己上傳的視頻數(shù)據(jù)中來反推YouTube算法的工作原理,這肯定要受限于我們視頻的內容和受眾。我們之所以了解YouTube的算法,是因為我們解決了一下做視頻路上碰到的這個問題:“為什么我們的視頻就能這么成功呢?”為此,我們盡最大努力來分析已有的信息,但最初的結果并不理想。盡管我100%支持我們的結論,但我們先前的方法存在兩大問題:
僅用頻道指標的一部分來做反推,意味著我們在數(shù)據(jù)上存在巨大的盲點,畢竟我們無法訪問競爭性指標、會話指標與點擊率。對于那些基于UP主的指標,YouTube算法所給的權重非常小。它更關心的是觀眾以及單個視頻的指標。換句話說,該算法并不關心你所上傳的視頻,而是關心你和其他人正在看的視頻。
但在我們寫最初那篇文章的時候,YouTube或Google數(shù)年來都沒公布過有關該算法的任何信息。所以,我們只有自己動手。有了Google新近公布的這篇論文,我們就可以一窺它推薦機制的究竟,并找出其中的重要指標。希望這能回答一個讓我們更為辛酸的問題,“為什么有些視頻能取得成功?”
深度學習是個無底洞
論文簡介部分最大的亮點是YouTube確實在用深度學習來驅動推薦算法。這種做法不新鮮,但此次確認證實了大家此前的猜測。作者在論文開頭是這樣說的:
在本論文中,我們將集中介紹深度學習對YouTube視頻推薦系統(tǒng)的全面影響……跟Google其他領域的產(chǎn)品一樣,YouTube同樣經(jīng)歷了用深度學習來解決所有通用學習問題的根本性范式轉變。
這就意味著,今后人工調整算法、人工權衡這些調整并將其部署上世界最大的視頻分享網(wǎng)站的機會將越來越少。而是由算法實時來讀取數(shù)據(jù)、為視頻排名,然后基于這些排名來推薦視頻。所以,當YouTube表示他們不知道算法為什么那樣做時,有可能他們確實不知道。
兩大神經(jīng)網(wǎng)絡
該論文以算法的基本架構作為開篇,下面是作者的圖示:
本質上這就是兩個大的過濾器,各自有著不同的輸入。作者寫道:
該系統(tǒng)由兩大神經(jīng)網(wǎng)絡組成,一個用于生成候選視頻,一個用來對其排名。
這兩個過濾器及其輸入內容,基本上決定了用戶在YouTubes上能看到的每一個視頻:建議你播放的下一個、推薦給你的視頻列表、你所瀏覽的視頻列表……
第一個過濾器是候選生成器。論文中解釋,候選是基于用戶的YouTube活動記錄產(chǎn)生的,也就是用戶的觀看歷史與觀看時長。候選生成器還會考慮相似用戶的瀏覽記錄,這一點被稱為協(xié)同過濾。相似用戶是算法通過視頻ID、搜索關鍵詞及相關的用戶統(tǒng)計信息決定出來的。
候選生成器的通過率僅為屬百分之一,換言之,如果某個視頻能從數(shù)百個中脫穎而出成為你的候選視頻,它必定是跟你的觀看記錄有關,同時還有一個跟你相似的用戶已經(jīng)看過它。
第二個是排名過濾器。該論文對排名過濾器進行了大量的深度解析,并列j舉出不少有趣的因素。作者寫道,排名過濾器是這樣給視頻排名的:
基于描述視頻和用戶的豐富特征,目標期望函數(shù)會給每個視頻設定分數(shù)。根據(jù)分數(shù)排名,得分最高的視頻將被展示給用戶。
由于觀看時長是YouTube為用戶設定的首要目標,我們只好假定這就是“目標期望函數(shù)”的意義。因此,考慮到各種不同的用戶輸入,該分數(shù)的意義就是某視頻能夠轉化成用戶觀看時長的程度。但不幸的是,事情沒有那么簡單。根據(jù)作者透露,該算法還會考慮很多其他的因素。
我們在排名過濾器中用到了數(shù)百種特征。
本文版權歸黑馬程序員Python培訓學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:黑馬程序員Python培訓學院
首發(fā):http://m.3rdspacecomics.com/news/python.html