細(xì)說(shuō)YouTube推薦系統(tǒng)的變遷
達(dá)觀數(shù)據(jù)高級(jí)工程師,曾獲美國(guó)大學(xué)生數(shù)學(xué)建模競(jìng)賽二等獎(jiǎng),目前參與達(dá)觀數(shù)據(jù)推薦系統(tǒng)研發(fā),負(fù)責(zé)酷6,wifi萬(wàn)能鑰匙和視頻看看等項(xiàng)目。
介紹
總所周知,YouTube是世界上最大的視頻網(wǎng)站,網(wǎng)站每天要面對(duì)著不同興趣的用戶,它需要從視頻池中撈出當(dāng)前用戶感興趣,想看的視頻,以留住老用戶吸引新用戶,而這個(gè)功能就是視頻推薦系統(tǒng)提供的。而隨著不同算法技術(shù)的興起,推薦系統(tǒng)的核心算法也在發(fā)生變化。本文主要從YouTube推薦系統(tǒng)的四篇論文《Video Suggestion and Discovery for YouTube》、《The YouTube Video Recommendation System》、《Label Partitioning For Sublinear Ranking》和《Deep Neural Networks for YouTube Recommendations》入手,介紹YouTube對(duì)視頻推薦系統(tǒng)的升級(jí)改造–在08年使用了基于用戶-視頻圖的隨機(jī)遍歷算法,而到了10年,又升級(jí)為基于物品的協(xié)同過(guò)濾算法,而13年將推薦問(wèn)題轉(zhuǎn)換成多分類問(wèn)題,并解決從神經(jīng)網(wǎng)絡(luò)最后的眾多輸出節(jié)點(diǎn)中找出最大概率的輸出節(jié)點(diǎn)。此舉也為16年將推薦核心算法升級(jí)為深度學(xué)習(xí)算法打下了基礎(chǔ)。
論文簡(jiǎn)介
本文參考的四篇論文中,第一篇《Video Suggestion and Discovery for YouTube》和第三篇《Label Partitioning For Sublinear Ranking》重點(diǎn)是對(duì)推薦系統(tǒng)中使用的算法進(jìn)行了一些說(shuō)明介紹,但是對(duì)本身使用的推薦系統(tǒng)并未做詳細(xì)介紹。而第二篇《The YouTube Video Recommendation System》和第四篇《Deep Neural Networks for YouTube Recommendations》詳細(xì)介紹了YouTube的推薦系統(tǒng),它都由兩部分構(gòu)成,第一部分是候選集的生成,就是根據(jù)內(nèi)容數(shù)據(jù)(比如視頻流,標(biāo)題,標(biāo)簽,類別等元數(shù)據(jù))和用戶行為日志(比如視頻點(diǎn)擊,觀看時(shí)長(zhǎng),視頻打分等)等信息來(lái)找出要推薦給用戶的候選視頻,第二部分是對(duì)這些候選視頻進(jìn)行排序,給出最優(yōu)的或者top k最優(yōu)的視頻給用戶。下圖就是YouTube推薦系統(tǒng)的大體流程:
基于用戶-視頻圖的隨機(jī)遍歷
論文《Video Suggestion and Discovery for YouTube》是由Shumeet Baluja,Shumeet Baluja等人在2008年發(fā)表在 the International World Wide Web Conference Committee (IW3C2)上。文章花了大量篇幅講了吸附算法(ADSORPTION),該算法的目的就是為了解決視頻標(biāo)簽的擴(kuò)散。所以就大膽推測(cè)當(dāng)時(shí)YouTube推薦系統(tǒng)應(yīng)該就是根據(jù)用戶曾經(jīng)看過(guò)的視頻給用戶推薦同類視頻,也就是擁有相同標(biāo)簽的視頻。
視頻相關(guān)圖
TIPS:
其實(shí)這個(gè)視頻間的關(guān)聯(lián)度就可以作為用戶根據(jù)其中看過(guò)的一個(gè)視頻作相關(guān)推薦的依據(jù),這個(gè)也就是后來(lái)大名鼎鼎的基于物品的協(xié)同過(guò)濾算法,只不過(guò)當(dāng)時(shí)的目光聚焦在標(biāo)簽擴(kuò)散找同類上,而沒(méi)有使用這個(gè)特征。
吸附算法
論文介紹了三個(gè)吸附算法,分別是通過(guò)均值的吸附,通過(guò)隨機(jī)走 的吸附和通過(guò)線性系統(tǒng)的推薦。不過(guò)這三個(gè)是等價(jià)的。而之所以叫吸附可能是因?yàn)樗惴ǖ恼麄€(gè)過(guò)程就是吸附節(jié)點(diǎn)不斷吸附標(biāo)簽的過(guò)程。
- 均值吸附
- 均值吸附的算法流程圖如下:
基于ItemCF的推薦系統(tǒng)
論文《The YouTube Video Recommendation System》是由Davidson J, Liebald B, Liu J等人在2010年發(fā)表在第四屆ACM RecSys上。當(dāng)時(shí)YouTube推薦系統(tǒng)的核心算法就是基于Item的協(xié)同過(guò)濾算法,換句話說(shuō)就是對(duì)于一個(gè)用戶當(dāng)前場(chǎng)景下和歷史興趣中喜歡的視頻,找出它們相關(guān)的視頻,并從這些視頻中過(guò)濾掉已經(jīng)看過(guò)的,剩下就是可以用戶極有可能喜歡看的視頻。這里的視頻相關(guān)性是用共同點(diǎn)擊個(gè)數(shù)來(lái)描述的。整個(gè)推薦過(guò)程分為兩步:
2.根據(jù)視頻的相關(guān)性和用戶的歷史行為給用戶生成推薦列表。
生成推薦侯選集
排序
對(duì)于排序而言,有三方面影響排序的因素
1 視頻質(zhì)量相關(guān): 能夠證明用戶喜歡視頻的因素
- 視頻觀看次數(shù)
- 視頻評(píng)分
- 視頻評(píng)論
- 視頻收藏和轉(zhuǎn)發(fā)行為
- 上傳時(shí)間
2 用戶特性相關(guān): 和用戶的品味和喜好相關(guān)
- 種子視頻的屬性
3 多樣性: 推薦不同主題
- 限制單個(gè)種子視頻得出的候選視頻
- 限制同一個(gè)上傳者的視頻數(shù)量
- 主題聚類
- 文本分析
TIPS:
在目前的推薦系統(tǒng)中,協(xié)同過(guò)濾的應(yīng)用是最廣泛的,它的優(yōu)勢(shì)很明顯,就是個(gè)性化程度高,但是不可否認(rèn)的是它的冷啟動(dòng)問(wèn)題以及稀疏問(wèn)題。而這兩個(gè)問(wèn)題可以被基于內(nèi)容過(guò)濾推薦方法所解決,這二者的融合可以使推薦系統(tǒng)更加健壯高效。
次線性排序的標(biāo)簽分區(qū)
論文《Label Partitioning For Sublinear Ranking》是由Jason Weston,Jason Weston等人在2013年發(fā)表在第三十屆國(guó)際機(jī)器學(xué)習(xí)大會(huì)上。該論文將推薦問(wèn)題變成了一個(gè)多分類的問(wèn)題,并解決了在神經(jīng)網(wǎng)絡(luò)中如何從最后一層輸出層中共找到概率最大的輸出節(jié)點(diǎn)。
TIPS:
這個(gè)算法的適用性很廣,像多文本排序等。
算法說(shuō)明
該算法基本的思路如下:
輸入輸出的劃分
對(duì)于輸入樣例的劃分,本文提到了兩種,一種是Weighted Hierarchical Partitionr, 它的思想和加權(quán)的K-means算法一樣,而權(quán)重是通過(guò)給訓(xùn)練樣例xi到中心的距離cj一個(gè)根據(jù)label預(yù)測(cè)準(zhǔn)確度得出的weight,另一個(gè)叫Weighted Embedding Partitioner,它是通過(guò)對(duì)訓(xùn)練樣例的轉(zhuǎn)換使得label相同的訓(xùn)練樣例盡可能被劃分到一個(gè)集合中取。實(shí)驗(yàn)結(jié)果顯示,采用優(yōu)化函數(shù)的分布的。
而對(duì)于對(duì)于測(cè)試輸出的label劃分,文中也提到兩種方法,一種是設(shè)計(jì)優(yōu)化函數(shù),計(jì)算每一個(gè)label被分到一個(gè)partition后的loss,然后優(yōu)化所有l(wèi)abel劃分的整體loss。另一個(gè)是簡(jiǎn)單的計(jì)算每一個(gè)partition內(nèi)的label出現(xiàn)頻率,選擇出現(xiàn)最頻繁的幾個(gè)。實(shí)驗(yàn)證明,采用優(yōu)化函數(shù)的劃分方案比另一種提高1倍。
基于深度學(xué)習(xí)的推薦系統(tǒng)
論文《Deep Neural Networks for YouTube recommendations》是由Covington P, Adams J, Sargin E等人在2016年發(fā)表在第十屆ACM RecSys上。這時(shí)YouTube推薦系統(tǒng)的核心算法是深度學(xué)習(xí)方法。該方法將推薦問(wèn)題轉(zhuǎn)變成一個(gè)分類問(wèn)題,舉個(gè)例子就是之前是用戶在看了一些視頻后,用戶最有可能看哪個(gè)視頻?這是推薦問(wèn)題,而現(xiàn)在變成了用戶在看過(guò)一些視頻后(這里一個(gè)視頻就是一個(gè)類別),需要預(yù)測(cè)下一個(gè)要看的視頻是視頻池中的哪一個(gè)分類。不過(guò)這個(gè)類別數(shù)目非常大。對(duì)于用戶C和用戶行為C,把語(yǔ)料庫(kù)V中的視頻i,在時(shí)間t時(shí)做出的分類為
生成推薦侯選集
如下圖所示,推薦候選集的生成是將推薦問(wèn)題當(dāng)做多類(百萬(wàn)個(gè)類別)分類問(wèn)題。步驟如下:
1 將用戶的歷史信息(如觀看歷史、搜索歷史)和其他特征(如地理位置、用戶性別,發(fā)表時(shí)間等)接成向量,輸入給由修正線性單元(ReLU)構(gòu)成的非線形多層感知器(MLP),得到用戶興趣特征;
2 訓(xùn)練階段時(shí),將所有用戶的興趣特征輸入 Softmax 進(jìn)行多分類訓(xùn)練,獲得模型;
3 預(yù)測(cè)階段時(shí),計(jì)算用戶興趣特征與所有視頻特征的相似度,用最近鄰搜索獲取分較高的 k 個(gè)視頻給排序網(wǎng)絡(luò)。
排序
排序的目的是將候選集中的候選視頻再進(jìn)行過(guò)濾一遍,挑出其中最適合的,用戶最有可能喜歡看的視頻給用戶。文中用于排序的神經(jīng)網(wǎng)絡(luò)和生成推薦候選集的結(jié)構(gòu)類似,唯一的不用只是在最后一層用邏輯回歸給每個(gè)視頻打分。由于候選集中的視頻數(shù)目遠(yuǎn)遠(yuǎn)少于原始的視頻池中數(shù)目,所以這個(gè)過(guò)濾過(guò)程中會(huì)加入更多的視頻特征(比如視頻圖片信息)和用戶特征,這樣可以對(duì)用戶進(jìn)行更加精確化的推薦。 推薦的結(jié)果按照每個(gè)視頻的得分進(jìn)行排序,最后按照分?jǐn)?shù)高低推薦視頻給用戶。
TIPS:
而對(duì)于深度學(xué)習(xí),它具有優(yōu)秀的提取特征能力,能夠?qū)W習(xí)到多層次的特征,將視頻信息和用戶信息中隱藏的特征抽象出來(lái)。像YouTube基于深度學(xué)習(xí)的推薦先用視頻和用戶的主要信息通過(guò)深度候選生成模型從百萬(wàn)級(jí)視頻中找出數(shù)百個(gè)相關(guān)的視頻,再用視頻和用戶的其他信息通過(guò)深度排序模型從數(shù)百個(gè)視頻中找出幾十個(gè)最有可能受用戶歡迎的視頻給用戶。這樣使得推薦系統(tǒng)對(duì)用戶喜好的刻畫(huà)能力大大增強(qiáng),刻畫(huà)的范圍更加廣泛。
思考
從上面四篇論文中,我們可以看到Y(jié)ouTube一直在嘗試將最熱門(mén)的技術(shù)應(yīng)用到推薦系統(tǒng)中,并不斷的給系統(tǒng)進(jìn)行升級(jí)進(jìn)化,這樣可以讓它更好的在不同的環(huán)境下選擇最適合的解決方案。簡(jiǎn)而言之,多個(gè)模型多條路。
【本文為51CTO專欄作者“達(dá)觀數(shù)據(jù)”的原創(chuàng)稿件,轉(zhuǎn)載可通過(guò)51CTO專欄獲取聯(lián)系】