天天看點

深度學習時代的推薦系統

深度學習時代的推薦系統

源 | 小象     文 | 王亮

深度學習在語音和圖檔識别等領域的效果有目共睹,各種介紹文章已經非常多了。但機器學習應用最廣泛的推薦和廣告領域,深度學習還剛剛嶄露頭角,相關的文章還不是特别多。本文結合一個典型的短視訊推薦系統,介紹深度學習在這個領域的一些實際應用。

現在典型的推薦系統架構,基本都是二層結構,先是通過熱門推薦、基于内容的推薦、協同過濾等方法,獲得“候選推薦集”,然後通過CTR預估等對候選集進行二次排序,展現給使用者。深度學習的作用,主要是對其中的某些環節進行改進。

Word2vect的應用

首先是基于内容的推薦,該方法也是目前資訊類推薦中,應用最為廣泛的。内容推薦的一個要點在于給文本打标簽,一般都是粗粒度的“類别标簽”+細粒度的“關鍵詞标簽”。其中類别标簽就是一個典型的文本分類問題,如圖1所示。

深度學習時代的推薦系統

圖 1 短視訊的标簽

正常的做法,就是用“TF*IDF”做特征,生成文本的向量空間模型,然後用LR、SVM進行分類即可。但用短視訊标題做10多個分類, Accuracy很難超過60%。這個其實屬于典型的短文本分類問題。基于TF*IDF這種one-hot類的特征,像這兩個視訊标題 : “白夜追兇精彩剪輯”和“潘粵明新劇火了” 的相似度為0。

這個問題早期的解決方法很多都是基于topic model的,最近則更多的使用詞向量。用Google的word2vect等工具,可以友善的把短文本中每個詞向量化,然後簡單的進行向量相加、歸一化,就可以很容易得到短文本的向量表示,用這些向量作為分類器的輸出,效果改善非常明顯。

短視訊分類問題,很多又是“多标簽(multi label)”問題,如一個視訊可以屬于“明星”,又可以屬于“娛樂”。更典型的像知乎這樣的社群,“标簽/類别”數量本身也會非常多,“短文本+多标簽+類别多”就形成一個非常有挑戰性的問題。具體可以看看前一段時間知乎組織的“2017 知乎-看山杯機器學習挑戰賽”,就是做一個2000個類别的多标簽分類問題,資料還都開放。

深度學習時代的推薦系統

圖2 知乎看山杯的比賽題目

排名前面的隊伍,基本思路大多是word2vect作為輸入,用基于RNN/CNN的TextCNN/fastText、TextRNN等做學習網絡,用交叉熵(Cross Entropy)作為損失函數。

還有就是協同過濾的流程,像基于使用者的推薦,首先就要對使用者兩兩求相似度,使用者的向量表示,一般都是其浏覽過的視訊。在特征進行中,大家都看過的熱門視訊是沒有用處的,一般都會過濾掉。但有些研究,就專門利用這些“熱門”視訊,把觀看過的使用者,按照觀看時間點順序列出,大概這樣的(v表示視訊,u表示使用者):

v1:u1 u2 u3 u4…..

v2:u3 u6 u9 u10 ….

然後把視訊v都當做“文本”,使用者u都當做“單詞”,好吧user2vect搞定了,然後我們基于這種user embedding方法,就可以求使用者之間的相似度了。這種方法在喜歡圍觀的國内社群,尤為有效。

RNN/LSTM的應用

基于浏覽時間序列做推薦,還有另外一種方法,主要是利用單個使用者浏覽視訊的時間序列,如使用者u1的觀看過的視訊依次為:

u1:v1, v4,v6,v10, ….

我們就可以用RNN/LSTM建立一個視訊的序列模型,實踐中可以使用相對活躍的使用者來建構。使用模型的時候,利用sample的方法,輸入使用者的曆史浏覽記錄,就可以預測推薦新的視訊了。基本的訓練算法如下圖所示:

深度學習時代的推薦系統

圖3 基于使用者浏覽視訊序列,訓練RNN/LSTM模型

像網易嚴選的推薦系統,就有用到類似的時序模型。其推薦系統架構和使用者特征架構如下圖所示:

深度學習時代的推薦系統

圖4 網易嚴選的推薦系統和使用者屬性系統,圖檔原載于“推薦系統本質與網易嚴選實踐”

CNN的應用

視訊預覽、廣告創意圖檔等,在使用者點選決策中,往往占據很大的比例,是以,目前工程實踐中應用報道較多的深度學習方法,就是對視訊截圖、創意圖等圖檔特征的提取,然後與其它特征一起,做CTR預估。

我們在做短視訊推薦中,也嘗試利用了CNN算法,抽取預覽圖檔的深層特征,然後與其他特征一起,做CTR預估使用,但實測效果并不是特别明顯。

再者,基于CNN提取的圖檔特征,本身就可以做圖檔之間的相似度,然後做item based推薦。這種方法推薦出來的一般稱為“相同風格”的視訊,典型的如下圖所示:

深度學習時代的推薦系統

圖5 一組基于CNN特征擷取的相似截圖

像美團就使用到CNN等技術,提取圖檔深度特征,對圖檔進行品質評分。其主要使用AlexNet去提取圖檔的高層語義描述,學習美感、可記憶度、吸引度、品類等High Level特征,并補充人工設計的Low Level特征(比如色彩、銳度、對比度、角點)。在獲得這些特征後,訓練一個淺層神經網絡對圖像整體打分。

美團整體的推薦系統算法架構和圖像特征提取架構如下面兩圖所示:      

深度學習時代的推薦系統

圖6 美團推薦算法架構,原載于“美團點評技術團隊”網站

深度學習時代的推薦系統

圖7 美團圖檔深度特征提取,原載于“美團點評技術團隊”網站

Youtube的推薦系統架構

YouTube作為Google自家的産品,其推薦系統自然是樣闆案例。YouTube推薦系統也經典的兩層結構,其是由兩個神經網絡組成的,一個用于候選生成,一個用于排名。其具體的深度學習算法架構如下圖所示:

深度學習時代的推薦系統

圖8 YouTube推薦算架構,圖檔原載于Deep NeuralNetworks for YouTube Recommendations ,RecSys2016

從上圖中可以看到,YouTube主要使用了傳統的使用者的流量、評分等行為,包括序列資訊等,并沒有提到到截圖等新特征。

短視訊推薦實戰課

最後簡單說下我們的短視訊推薦實戰課。簡而言之,我們的希望建構一個機器學習、深度學習的“朱日和”戰場,涵蓋完整的線上産品、真實的資料、各類算法落地等。以同學們為中心,把所學的各種理論知識都能實際的coding出來,反映的真實的産品中,真正做到實踐出真知。

-END-