深度學(xué)習(xí)在語音和圖片識別等領(lǐng)域的效果有目共睹,各種介紹文章已經(jīng)非常多了。但機(jī)器學(xué)習(xí)應(yīng)用最廣泛的推薦和廣告領(lǐng)域,深度學(xué)習(xí)還剛剛嶄露頭角,相關(guān)的文章還不是特別多。本文結(jié)合一個典型的短視頻推薦系統(tǒng),介紹深度學(xué)習(xí)在這個領(lǐng)域的一些實際應(yīng)用。 現(xiàn)在典型的推薦系統(tǒng)框架,基本都是二層結(jié)構(gòu),先是通過熱門推薦、基于內(nèi)容的推薦、協(xié)同過濾等方法,獲得“候選推薦集”,然后通過CTR預(yù)估等對候選集進(jìn)行二次排序,展現(xiàn)給用戶。深度學(xué)習(xí)的作用,主要是對其中的某些環(huán)節(jié)進(jìn)行改進(jìn)。 Word2vect的應(yīng)用 首先是基于內(nèi)容的推薦,該方法也是目前信息類推薦中,應(yīng)用最為廣泛的。內(nèi)容推薦的一個要點在于給文本打標(biāo)簽,一般都是粗粒度的“類別標(biāo)簽”+細(xì)粒度的“關(guān)鍵詞標(biāo)簽”。其中類別標(biāo)簽就是一個典型的文本分類問題,如圖1所示。 圖 1 短視頻的標(biāo)簽 常規(guī)的做法,就是用“TF*IDF”做特征,生成文本的向量空間模型,然后用LR、SVM進(jìn)行分類即可。但用短視頻標(biāo)題做10多個分類, Accuracy很難超過60%。這個其實屬于典型的短文本分類問題?;赥F*IDF這種one-hot類的特征,像這兩個視頻標(biāo)題 : “白夜追兇精彩剪輯”和“潘粵明新劇火了” 的相似度為0。 這個問題早期的解決方法很多都是基于topic model的,最近則更多的使用詞向量。用Google的word2vect等工具,可以方便的把短文本中每個詞向量化,然后簡單的進(jìn)行向量相加、歸一化,就可以很容易得到短文本的向量表示,用這些向量作為分類器的輸出,效果改善非常明顯。 短視頻分類問題,很多又是“多標(biāo)簽(multi label)”問題,如一個視頻可以屬于“明星”,又可以屬于“娛樂”。更典型的像知乎這樣的社區(qū),“標(biāo)簽/類別”數(shù)量本身也會非常多,“短文本+多標(biāo)簽+類別多”就形成一個非常有挑戰(zhàn)性的問題。具體可以看看前一段時間知乎組織的“2017 知乎-看山杯機(jī)器學(xué)習(xí)挑戰(zhàn)賽”,就是做一個2000個類別的多標(biāo)簽分類問題,數(shù)據(jù)還都開放。 圖2 知乎看山杯的比賽題目 排名前面的隊伍,基本思路大多是word2vect作為輸入,用基于RNN/CNN的TextCNN/fastText、TextRNN等做學(xué)習(xí)網(wǎng)絡(luò),用交叉熵(Cross Entropy)作為損失函數(shù)。 還有就是協(xié)同過濾的流程,像基于用戶的推薦,首先就要對用戶兩兩求相似度,用戶的向量表示,一般都是其瀏覽過的視頻。在特征處理中,大家都看過的熱門視頻是沒有用處的,一般都會過濾掉。但有些研究,就專門利用這些“熱門”視頻,把觀看過的用戶,按照觀看時間點順序列出,大概這樣的(v表示視頻,u表示用戶): v1:u1 u2 u3 u4….. v2:u3 u6 u9 u10 …. 然后把視頻v都當(dāng)做“文本”,用戶u都當(dāng)做“單詞”,好吧user2vect搞定了,然后我們基于這種user embedding方法,就可以求用戶之間的相似度了。這種方法在喜歡圍觀的國內(nèi)社區(qū),尤為有效。 RNN/LSTM的應(yīng)用 基于瀏覽時間序列做推薦,還有另外一種方法,主要是利用單個用戶瀏覽視頻的時間序列,如用戶u1的觀看過的視頻依次為: u1:v1, v4,v6,v10, …. 我們就可以用RNN/LSTM建立一個視頻的序列模型,實踐中可以使用相對活躍的用戶來構(gòu)建。使用模型的時候,利用sample的方法,輸入用戶的歷史瀏覽記錄,就可以預(yù)測推薦新的視頻了?;镜挠?xùn)練算法如下圖所示: 圖3 基于用戶瀏覽視頻序列,訓(xùn)練RNN/LSTM模型 像網(wǎng)易嚴(yán)選的推薦系統(tǒng),就有用到類似的時序模型。其推薦系統(tǒng)框架和用戶特征框架如下圖所示: 圖4 網(wǎng)易嚴(yán)選的推薦系統(tǒng)和用戶屬性系統(tǒng),圖片原載于“推薦系統(tǒng)本質(zhì)與網(wǎng)易嚴(yán)選實踐” CNN的應(yīng)用 視頻預(yù)覽、廣告創(chuàng)意圖片等,在用戶點擊決策中,往往占據(jù)很大的比例,因此,目前工程實踐中應(yīng)用報道較多的深度學(xué)習(xí)方法,就是對視頻截圖、創(chuàng)意圖等圖片特征的提取,然后與其它特征一起,做CTR預(yù)估。 我們在做短視頻推薦中,也嘗試?yán)昧薈NN算法,抽取預(yù)覽圖片的深層特征,然后與其他特征一起,做CTR預(yù)估使用,但實測效果并不是特別明顯。 再者,基于CNN提取的圖片特征,本身就可以做圖片之間的相似度,然后做item based推薦。這種方法推薦出來的一般稱為“相同風(fēng)格”的視頻,典型的如下圖所示: 圖5 一組基于CNN特征獲取的相似截圖 像美團(tuán)就使用到CNN等技術(shù),提取圖片深度特征,對圖片進(jìn)行質(zhì)量評分。其主要使用AlexNet去提取圖片的高層語義描述,學(xué)習(xí)美感、可記憶度、吸引度、品類等High Level特征,并補(bǔ)充人工設(shè)計的Low Level特征(比如色彩、銳度、對比度、角點)。在獲得這些特征后,訓(xùn)練一個淺層神經(jīng)網(wǎng)絡(luò)對圖像整體打分。 美團(tuán)整體的推薦系統(tǒng)算法框架和圖像特征提取框架如下面兩圖所示: 圖6 美團(tuán)推薦算法框架,原載于“美團(tuán)點評技術(shù)團(tuán)隊”網(wǎng)站 圖7 美團(tuán)圖片深度特征提取,原載于“美團(tuán)點評技術(shù)團(tuán)隊”網(wǎng)站 Youtube的推薦系統(tǒng)框架 YouTube作為Google自家的產(chǎn)品,其推薦系統(tǒng)自然是樣板案例。YouTube推薦系統(tǒng)也經(jīng)典的兩層結(jié)構(gòu),其是由兩個神經(jīng)網(wǎng)絡(luò)組成的,一個用于候選生成,一個用于排名。其具體的深度學(xué)習(xí)算法框架如下圖所示: 圖8 YouTube推薦算框架,圖片原載于Deep NeuralNetworks for YouTube Recommendations ,RecSys2016 從上圖中可以看到,YouTube主要使用了傳統(tǒng)的用戶的流量、評分等行為,包括序列信息等,并沒有提到到截圖等新特征。 短視頻推薦實戰(zhàn)課 最后簡單說下我們的短視頻推薦實戰(zhàn)課。簡而言之,我們的希望構(gòu)建一個機(jī)器學(xué)習(xí)、深度學(xué)習(xí)的“朱日和”戰(zhàn)場,涵蓋完整的線上產(chǎn)品、真實的數(shù)據(jù)、各類算法落地等。以同學(xué)們?yōu)橹行?,把所學(xué)的各種理論知識都能實際的coding出來,反映的真實的產(chǎn)品中,真正做到實踐出真知。 |
|
來自: 萬皇之皇 > 《IT互聯(lián)》