推薦系統——(論文閱讀筆記)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)

基於特定的用戶UU和上下文CC,在時間tt將指定的視頻wtw_t準確地劃分到第ii類中,其中iVi\in V

P(wt=iU,C)=eviujVevjuP\left ( w_t=i\mid U,C \right )=\frac{e^{v_iu}}{\sum _{j\in V}e^{v_ju}}

其中,uRNu\in \mathbb{R}^N表示的是用戶和上下文組合的向量;vjRNv_j\in \mathbb{R}^N表示視頻jj的向量。

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

2.2、神經網絡的結構

召回訓練的神經網絡結構如下圖所示:
這裏寫圖片描述
在上面的神經網絡的結構中,包含了兩個階段,分別爲訓練階段和服務階段:

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

2.3、召回神經網絡的訓練

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

2.3.1、訓練數據

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

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

3、Ranking模塊

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

3.1、問題建模

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

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

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

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

TiNk\frac{\sum T_i}{N-k}

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

其中,NN表示的是訓練樣本的數目,kk表示的是正樣本的數目,TiT_i表示的是第ii個展示被觀看的時長。

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

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

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

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

![這裏寫圖片描述](https://img-blog.csdn.net/20170824100455056?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29vZ2xlMTk4OTAxMDI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

3.3、Ranking神經網絡的訓練

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

3.3.1、離散型類別特徵的Embedding

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

3.3.2、連續特徵的正則化

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

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

x~=xdf\tilde{x}=\int_{-\infty }^{x}df

x~\tilde{x}[0,1)\left [ 0,1 \right )上的均勻分佈。

除了上述的x~\tilde{x},還有x~2\tilde{x}^2x~\sqrt{\tilde{x}}

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