首頁新聞動態(tài)正文

Python培訓(xùn)之從YouTube算法論文反推其推薦機制(二)

更新時間:2017-08-31 來源:黑馬程序員python培訓(xùn)學(xué)院 瀏覽量:


如何對視頻進(jìn)行排名這一塊的數(shù)學(xué)原理非常復(fù)雜。論文既沒有詳述排名過濾器所用的數(shù)百項因素,又沒有提及他們是如何加權(quán)的。但它列舉了其中的三大主要因素:瀏覽記錄、搜索記錄、觀看人數(shù),以及包括新鮮程度在內(nèi)的其他視頻元素。

每一秒鐘都有大量的視頻上傳到Y(jié)ouTube。向用戶推薦這些最新上傳的新鮮內(nèi)容,對YouTube來說極其重要。我們長期觀察的結(jié)果是,用戶喜歡新鮮的內(nèi)容,即便有些內(nèi)容跟他的關(guān)聯(lián)程度并不大。

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

我們會優(yōu)先使用用戶的隨機觀看和關(guān)鍵詞搜索記錄,然后才會考慮上一個觀看視頻的數(shù)據(jù)。

在論文后面討論視頻封面圖和標(biāo)題的時候,他們提到了點擊率的問題:

舉例來說,用戶有很大的幾率來觀看系統(tǒng)推薦的視頻,但不太可能基于封面圖的選擇而去點擊其主頁……我們最終的排名會根據(jù)實時A/B測試的結(jié)果不斷調(diào)整,它大體上就是一個用于預(yù)測用戶觀看時長的簡單函數(shù)。

在這里提出點擊率的問題其實并未出乎預(yù)料。為了能生成更多觀看時間,一個視頻必須先讓人看到才成,其中最好的辦法就是做出一個很贊的縮略圖并相出一個很贊的標(biāo)題。這讓很多UP主都認(rèn)為點擊率對于視頻在算法中的排名極其重要。

但YouTube知道點擊率是可以人為刷上去的,所以他們也給出了應(yīng)對之策。他們在論文中是這么承認(rèn)的:

通過點擊率進(jìn)行排名往往會變相鼓勵誘導(dǎo)性的視頻內(nèi)容,用戶即便點進(jìn)去也很少看完視頻,因而觀看時長能更反映出視頻的好壞。

起碼這一機制還算鼓舞人心(譯注:對比一下國內(nèi)某些網(wǎng)站的內(nèi)容生產(chǎn)機制),作者接下來寫到:

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

這就說明,如果用戶沒有點擊特定的視頻,該算法就不再將其推薦給相似的用戶。頻道推薦的情況也一樣,論文中的證據(jù)如下:

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

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

訓(xùn)練數(shù)據(jù)生成自所有觀看方式的YouTube視頻(包括內(nèi)嵌在其他網(wǎng)頁中的那些),而非僅用我們自己所生成推薦視頻。否則,新內(nèi)容將很難登上推薦榜單,而推薦系統(tǒng)又將過于依賴過往視頻的數(shù)據(jù)。如果用戶通過內(nèi)容查找到的視頻不同于我們的推薦,我們就需要能迅速通過推薦系統(tǒng)把該發(fā)現(xiàn)傳播給其他用戶。

最終,這一切又回到了算法所用的觀看時間。正如我們在論文開頭所看到的,該算法在設(shè)計之初就是一個”目標(biāo)期望函數(shù)“,作者總結(jié)”我們的目標(biāo)就是為了預(yù)測用戶的觀看時長“,”我們最終的排名會根據(jù)實時A/B測試的結(jié)果不斷調(diào)整,它大體上就是一個用于預(yù)測用戶觀看時長的簡單函數(shù)?!?/p>

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

一個簡單的回顧

講了這么多,讓我們簡單回顧一下:

YouTube使用三個主要的觀看因素來推薦視頻,它們是用戶的觀看歷史、搜索記錄以及相關(guān)的用戶統(tǒng)計信息。推薦視頻是通過候選生成器與排名過濾器的篩選出來的,這兩大過濾器決定了YouTube如何讀取、篩選視頻,如何生成推薦列表。排名過濾器主要是基于用戶輸入的因素,其他因素還包括視頻的”新鮮程度“和點擊率。推薦算法的設(shè)計初衷是持續(xù)增加用戶在YouTube網(wǎng)站的觀看時長,其方法是持續(xù)把視頻A/B測試的實時結(jié)果不斷反饋給神經(jīng)網(wǎng)絡(luò),從而使YouTube能不斷為用戶推薦它大體上就是一個用于預(yù)測用戶觀看時長的簡單函數(shù)。

如果你還不明白,咱們就再舉一個例子

我們用一個實例來說明這個推薦系統(tǒng)具體是如何運作的:

比如說,小明很喜歡YouTube,他有YouTube賬號相關(guān)的一切。每天瀏覽YouTube時,他都會在瀏覽器登錄。一旦登錄,YouTube便給小明此次瀏覽的內(nèi)容創(chuàng)建三個token:瀏覽記錄、搜索記錄以及關(guān)于他的統(tǒng)計信息。小明可能壓根就不知道這三種數(shù)據(jù)的存在。

然后輪到候選生成器上場了。YouTube拿這三個token的值跟觀看記錄類似于小明的用戶進(jìn)行對比,由此篩選出小明可能會喜歡的數(shù)百個視頻,過濾掉YouTube視頻庫中數(shù)以百萬計的其他內(nèi)容。

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

經(jīng)過YouTube算法的讀取、篩選和推薦后,排名最高的視頻將被推薦給小明。之后小明看與不看的選擇數(shù)據(jù)都會反饋給神經(jīng)網(wǎng)絡(luò),以供算法后續(xù)使用。視頻被點開,并吸引小明在YouTube上打發(fā)更多時間的目標(biāo),則一直持續(xù)下去。那些小明沒有點開的推薦視頻,等他下次登錄網(wǎng)站時則有可能通不過候選生成器。

總結(jié)

Deep Neural Networks for YouTube Recommendations這篇論文讀起來很棒,它第一次讓人從源頭直擊YouTube推薦算法的內(nèi)幕!!我們希望能接觸到更多的論文,以便在為這個平臺制作內(nèi)容的時候能做出更好的選擇。這也是愿意花時間來寫這些內(nèi)容的根本原因。畢竟,更適合該平臺的內(nèi)容就意味著更多的瀏覽量、更高的收入,從而讓我們能有更多的資源來為數(shù)以十億計的用戶制作出品質(zhì)更高、更有吸引力的內(nèi)容。



本文版權(quán)歸黑馬程序員Python培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!

作者:黑馬程序員Python培訓(xùn)學(xué)院

首發(fā):http://m.ko1818.cn/news/python.html


分享到:
在線咨詢 我要報名
和我們在線交談!