這篇文章是閱讀YouTube的《Deep Neural Networks for YouTube Recommendations》後的一點總結,這篇文章值得詳細閱讀,因此將其中的核心點整理出來。
文章的重點
- 1、總結推薦系統的架構
- 2、如何利用深度模型做召回
- 3、如何利用深度模型做Ranking
1、推薦系統的架構
在本文中,推薦系統的架構與其他的推薦架構極爲類似,都是由兩個部分組成:1、候選集生成;2、ranking。詳細的架構如下圖所示:
這樣的一種漏斗模型在很多地方都會使用到,漏斗模型如下圖所示:
在上述的架構中,兩個部分對應的功能爲:
- 候選集生成模塊(Candidate Generation)負責從百萬的視頻數據集中知道到幾百個與用戶相關的待推薦視頻;
- Ranking模塊負責從候選集生成模塊產生的待推薦列表中再選擇幾十個視頻,用於展示給用戶。
同時,上述的架構也是一種分層的架構,這樣,在候選集生成部分就可以加入不同的挖掘方法挖掘出的相關視頻。
2、候選集生成模塊
2.1、問題建模
對於候選集的生成模塊,需要從視頻集中選擇出與用戶相關的視頻。本文中作者提出將其看成一個極多分類問題(extreme multiclass classification problem):
基於特定的用戶和上下文,在時間將指定的視頻準確地劃分到第類中,其中。
其中,表示的是用戶和上下文組合的向量;表示視頻的向量。
極多分類的高效訓練:
假設存在百萬個類別時,訓練這樣的極多分類問題時顯得異常困難。
解決的方法——負類採樣(sample negative classes): 通過採樣找到數千個負類。
2.2、神經網絡的結構
召回訓練的神經網絡結構如下圖所示:
在上面的神經網絡的結構中,包含了兩個階段,分別爲訓練階段和服務階段:
- 訓練部分會得到兩個部分的數據:視頻的embedding和用戶的embedding
- 服務階段直接使用上述的兩個embedding,兩個向量的相似度的方法在這裏都可以使用。
2.3、召回神經網絡的訓練
對於服務階段使用到的相似向量的計算方法不在本文的討論範圍內,在這裏着重討論該神經網絡的訓練。
2.3.1、訓練數據
從上面的神經網絡的結構中可以看出,神經網絡的訓練數據主要包括如下的幾個部分:
- 用戶觀看的視頻(video watches)。將用戶觀看過的視頻初始化爲向量,假設有個觀看記錄,需要將這個記錄壓縮成一個向量,方法主要有:求均值,求和,按位取max。在本文的實驗中,求均值的效果最好。在訓練的過程中,視頻的向量與模型的參數一同參與訓練,具體過程可以參見詞向量的訓練。
- 用戶的搜索記錄(search tokens)。處理方法與用戶觀看的視頻一致。
- 人口統計學的特徵(demographic features)。如用戶的地理位置,設備需要embedding,而如用戶性別,登錄狀態以及年齡這樣的二進制和連續的特徵只需歸一化到便可以直接作爲輸入。
3、Ranking模塊
Ranking部分是從候選集中進行進一步的優選,除了上述的候選集生成方法,Ranking部分可以融入更多的其他的候選集。
3.1、問題建模
本文作者在這個部分沒有使用點擊率作爲問題的目標,而是使用了觀看時長(watch time)。因爲如果使用點擊率,用戶可能並沒有完成觀看,使用觀看時長,可以更好地捕捉用戶的參與(原文的意思是說:會存在“clickbait”)。在神經網絡的最後一層使用的方法二分類的Logistic Regression,訓練樣本爲:
- 正例:展示的視頻被點擊
- 負例:展示的視頻未被點擊
正例同時伴隨着用戶觀看的總時長。爲了能夠預測用戶的期望觀看時長,使用的是加權Logistic Regression(Weighted Logistic Regression)。
在加權Logistic Regression中,正樣本的權重是video觀看的時長,負樣本的權重是單位權重。此時,Logistic Regression輸出的odds爲:
正樣本的權重/負樣本的權重
其中,表示的是訓練樣本的數目,表示的是正樣本的數目,表示的是第個展示被觀看的時長。
假設正例的展示比較小(這與實際情況一致,多數爲負樣本),學習到的概率近似爲,其中,表示的是點擊率,表示的是展示的期望觀看時長,由於非常小,所以上述的結果近似於,即期望觀看時長。
在預測時,使用指數函數作爲最終的激活函數來表示概率。
3.2、Ranking模塊的神經網絡架構
Ranking部分的神經網絡架構與候選集生成部分的神經網絡的架構模型類似,如下圖所示:
3.3、Ranking神經網絡的訓練
在本文中,作者將特徵劃分爲離散型的類別特徵和連續特徵,此時的難點是如何生成有用的特徵。
3.3.1、離散型類別特徵的Embedding
對於離散型的類別特徵,處理的方法與召回部分一致——embedding。在候選集生成過程中,已經生成了每一個ID視頻對應的embedding,將該embedding存在一張表裏面,可以供上述的impression,last watched共享。
3.3.2、連續特徵的正則化
與基於決策樹的組合方法相比,神經網絡對於輸入的伸縮和分佈很敏感。對連續特徵的合理正則化對於神經網絡的收斂只管重要。
如果服從任意分佈,且其概率密度函數爲,則利用累計分佈函數:
則爲上的均勻分佈。
除了上述的,還有和。