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

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

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


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

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

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

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

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

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

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

但YouTube知道點(diǎn)擊率是可以人為刷上去的,所以他們也給出了應(yīng)對(duì)之策。他們?cè)谡撐闹惺沁@么承認(rèn)的:

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

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

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

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

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

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

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

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

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

一個(gè)簡單的回顧

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

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

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

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

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

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

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

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

總結(jié)

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



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

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

首發(fā):http://www.pantone-color.com.cn/news/python.html


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!