1. 程式人生 > >DNN for Youtube Recommend System

DNN for Youtube Recommend System

Abstract

這篇論文主要詳細講述了深度候選生成模型以及描述了一個深度排序模型。同時也提供了practical lessons and insights。

Introduction

YouTube推薦面臨三個挑戰:

  1. 規模:資料規模大,在小資料集上執行好的演算法對youtube不適用
  2. 更新頻率:youtube視訊更新頻率很高,每秒有小時級別的視訊上傳,需要在新發布視訊和已有存量視訊間進行balance。
  3. 噪音:使用者歷史表現總是很稀疏,以及無法觀察的外部因素。對使用者滿意度無法有一個真正的瞭解,只有一些嘈雜的隱性的反饋訊號。視訊本身很多資料都是非結構化的。

System overview

整個推薦系統分為candidate generation和ranking兩個階段。在candidate generation階段相對比較粗糙的召回,在rankin階段比較精細的計算排序。

在這裡插入圖片描述

Recommendation as Classification

推薦問題變成了一個大規模的多分類問題。在時刻t,為使用者U,上下文context,從視訊庫V中預測視訊i的概率,推薦概率最大的視訊。公式如下:

在這裡插入圖片描述

向量u是使用者與上下文的高維embedding,向量j是視訊j的embedding向量。DNN的目標就是在使用者資訊和上下文資訊為輸入條件下學習使用者的embedding向量。

Efficient Extreme Multiclass

為了有效的在這種大規模問題上分類,youtube採用負取樣,來提高效率。

Model Architecture

在這裡插入圖片描述

整個模型架構是包含三層全連線層,使用relu啟用函式。輸入是使用者觀看歷史、搜尋歷史、地理位置、example age和其餘上下文資訊concat成的輸入向量;輸出分線上和離線訓練兩個部分。

訓練階段使用softmax輸出概率,在服務期間則直接使用接近最近鄰搜尋來進行生產候選的N個視訊。

Heterogeneous Signals

類似於word2vec的做法,每個視訊都會被embedding到固定維度的向量中。使用者的觀看視訊歷史則是通過變長的視訊序列表達,最終通過加權平均(可根據重要性和時間進行加權)得到固定維度的watch vector作為DNN的輸入。

引入DNN的好處則是任意的連續特徵和離散特徵可以很容易新增到模型當中。

主要特徵:

  • 搜尋歷史:搜尋歷史與觀看歷史被同等對待,把歷史搜尋的query分詞後的token的embedding向量進行加權平均,能夠反映使用者的整體搜尋歷史狀態
  • 人口統計學資訊:性別、年齡、地域等
  • 其他上下文資訊:裝置、登入狀態等

“Example Age” Feature

雖然使用者偏愛新鮮的內容哪怕犧牲相關性。但是youtube也不會因為一個視訊是新的所以就推薦給使用者。

機器學習系統總是利用歷史的例子去預測未來,所以對過去總會有一個隱含的偏差。為了矯正偏差,youtube把訓練集的上線時間當作一個特徵。下圖也充分證明了該方法的有效性。

在這裡插入圖片描述

Label and Context Selection

  1. 訓練資料被生成來自所有youtube的影片而不是隻是我們推薦的影片資料。

  2. 每個使用者都有固定數量的訓練集。

  3. 丟棄序列資訊以及以一個無序的token袋錶達查詢請求

  4. asymmetric co-watch:研究發現預測使用者的下一個觀影資料有更好的表現比從使用者歷史資料中任意選擇效果好。

    在這裡插入圖片描述

Ranking

Ranking階段的最重要任務就是精準的預估使用者對視訊的喜好程度。在排序階段面對的資料集比較小,因此會採用更多的特徵來計算。
作者在排序階段所設計的DNN和上文的DNN的結構是類似的,並基於邏輯迴歸對每一個視訊進行獨立打分,也就是說,離線訓練模組,對視訊的打分函式不再是softmax,而是採用的邏輯迴歸。排序DNN參見下圖:

在這裡插入圖片描述

Feature Engineering

然而在搜尋和推薦場景,我們的很難把原始資料直接作為FNN的輸入,特徵工程仍然很重要

Embedding Categorical Features

NN更適合處理連續特徵,因此稀疏的特別是高基數空間的離散特徵需要embedding到稠密的向量中。

Normalizing Continuous Features

一個符合f分佈的特徵x,等價轉化成x~,用微積分使其均勻的分佈在[0,1)區間上。

Modeling Expected Watch Time

這個模型是基於交叉熵損失函式的邏輯迴歸模型訓練的。但是我們用觀看時長對正樣本做了加權,負樣本都用單位權重(即不加權)。這樣,我們通過邏輯迴歸學到的優勢就是 ( T i ) ( N k ) \frac{( ∑Ti )}{(N-k)} ,其中N是樣本數量,k是正樣本數量,Ti是觀看時長。假設正樣本集很小,那麼我們學到的優勢就近似 E [ T ] ( 1 + P ) \frac{E[T]}{(1+P)} ,P是點選概率,E[T]是觀看時間的期望值。因為P很小,那麼這個乘積就約等於E[T]。我們用指數函式 e x e^x 作為最終的啟用函式來產生近似觀看時長的估計值。