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