論文閱讀——YouTube推薦中的深層神經網絡

這篇文章是閱讀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)

基於特定的用戶U 和上下文C ,在時間t 將指定的視頻wt 準確地劃分到第i 類中,其中iV

P(wt=iU,C)=eviujVevju

其中,uRN 表示的是用戶和上下文組合的向量;vjRN 表示視頻j 的向量。

極多分類的高效訓練:
假設存在百萬個類別時,訓練這樣的極多分類問題時顯得異常困難。
解決的方法——負類採樣(sample negative classes): 通過採樣找到數千個負類。

2.2、神經網絡的結構

召回訓練的神經網絡結構如下圖所示:


這裏寫圖片描述

在上面的神經網絡的結構中,包含了兩個階段,分別爲訓練階段和服務階段:

  • 訓練部分會得到兩個部分的數據:視頻的embeddingvj 和用戶的embeddingu
  • 服務階段直接使用上述的兩個embedding,兩個向量的相似度的方法在這裏都可以使用。

2.3、召回神經網絡的訓練

對於服務階段使用到的相似向量的計算方法不在本文的討論範圍內,在這裏着重討論該神經網絡的訓練。

2.3.1、訓練數據

從上面的神經網絡的結構中可以看出,神經網絡的訓練數據主要包括如下的幾個部分:

  • 用戶觀看的視頻(video watches)。將用戶觀看過的視頻初始化爲向量,假設有n 個觀看記錄,需要將這n 個記錄壓縮成一個向量,方法主要有:求均值,求和,按位取max。在本文的實驗中,求均值的效果最好。在訓練的過程中,視頻的向量與模型的參數一同參與訓練,具體過程可以參見詞向量的訓練。
  • 用戶的搜索記錄(search tokens)。處理方法與用戶觀看的視頻一致。
  • 人口統計學的特徵(demographic features)。如用戶的地理位置,設備需要embedding,而如用戶性別,登錄狀態以及年齡這樣的二進制和連續的特徵只需歸一化到[0,1] 便可以直接作爲輸入。

3、Ranking模塊

Ranking部分是從候選集中進行進一步的優選,除了上述的候選集生成方法,Ranking部分可以融入更多的其他的候選集。

3.1、問題建模

本文作者在這個部分沒有使用點擊率作爲問題的目標,而是使用了觀看時長(watch time)。因爲如果使用點擊率,用戶可能並沒有完成觀看,使用觀看時長,可以更好地捕捉用戶的參與(原文的意思是說:會存在“clickbait”)。在神經網絡的最後一層使用的方法二分類的Logistic Regression,訓練樣本爲:

  • 正例:展示的視頻被點擊
  • 負例:展示的視頻未被點擊

正例同時伴隨着用戶觀看的總時長。爲了能夠預測用戶的期望觀看時長,使用的是加權Logistic Regression(Weighted Logistic Regression)。

在加權Logistic Regression中,正樣本的權重是video觀看的時長,負樣本的權重是單位權重。此時,Logistic Regression輸出的odds爲:

TiNk

正樣本的權重/負樣本的權重

其中,N 表示的是訓練樣本的數目,k 表示的是正樣本的數目,Ti 表示的是第i 個展示被觀看的時長。

假設正例的展示比較小(這與實際情況一致,多數爲負樣本),學習到的概率近似爲E[T](1+P) ,其中,P 表示的是點擊率,E[T] 表示的是展示的期望觀看時長,由於P 非常小,所以上述的結果近似於E[T] ,即期望觀看時長。

在預測時,使用指數函數ex 作爲最終的激活函數來表示概率。

3.2、Ranking模塊的神經網絡架構

Ranking部分的神經網絡架構與候選集生成部分的神經網絡的架構模型類似,如下圖所示:


這裏寫圖片描述

3.3、Ranking神經網絡的訓練

在本文中,作者將特徵劃分爲離散型的類別特徵和連續特徵,此時的難點是如何生成有用的特徵。

3.3.1、離散型類別特徵的Embedding

對於離散型的類別特徵,處理的方法與召回部分一致——embedding。在候選集生成過程中,已經生成了每一個ID視頻對應的embedding,將該embedding存在一張表裏面,可以供上述的impression,last watched共享。

3.3.2、連續特徵的正則化

與基於決策樹的組合方法相比,神經網絡對於輸入的伸縮和分佈很敏感。對連續特徵的合理正則化對於神經網絡的收斂只管重要。

如果x 服從任意分佈,且其概率密度函數爲f(x) ,則利用累計分佈函數:

x~=xdf

x~[0,1) 上的均勻分佈。

除了上述的x~ ,還有x~2x~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章