UC 信息流推薦模型在多目標和模型優化方面的進展

導讀:短視頻已經成爲信息流行業的風口,成爲拉動規模增長的主要驅動力。短視頻天然具有信息能量高、用戶粘性大、內容豐富等優點,也有視頻幀內容難以分析提取、結構化的缺點。如何提高短視頻的分發效率和推薦精準度,做到千人千面的個性化推薦,是一個推薦系統的核心能力。基於深度學習的推薦模型,是業界前沿的研究課題;在短視頻推薦的業務中,如何利用深度學習算法有效的提升消費點擊和消費時長,是推薦模型的核心命題。此次演講主要講解視頻推薦模型在多目標和模型優化方面的進展。包括以下幾個模塊:

  • 業務和系統
  • 基於 Graph Embedding 的多目標
  • 基於 WnD 的 Boosting 算法
  • 未來規劃

業務和系統

  1. 短視頻業務背景、系統結構

我們的業務主要是做視頻推薦,嵌入到 UC 瀏覽器中做國內信息流:

  • UC 從工具型產品轉型至內容分發平臺,信息流業務成爲 UC 的第二大引擎;
  • 短視頻已經成爲信息流行業的風口,成爲拉動規模增長的主要驅動力;
  • 短視頻播放時長已經超過圖文,極大的增強了信息流的用戶粘性;
  • 算法的持續優化與迭代提高了短視頻流量分發的效率和準確度。

右圖是視頻推薦的界面,其背後的視頻推薦系統分爲三個結構,第一個是召回模塊,第二個是粗排的模型,第三個是精排的模型。從召回 -> 粗排 -> 精排,Item 的數目從多到少,推薦的準確性從低到高。

  1. 技術演進史

我們在視頻推薦上,嘗試過多個推薦方案:

  • 最早用的是 LR ( 如圖,左下角 ),LR 的缺點主要是在特徵工程上會耗費很大的人力;
  • 後來我們又嘗試了 GBDT 和 FM ( 如圖,中間部分 ),但是這些模型在泛化性上相對較弱;
  • 最後我們採用了 Wide & Deep model ( 如圖,右下角 )。

這裏主要介紹的工作是:從多目標的角度優化 Loss Function。與粗排和精排使用的 WnD 對比,線上收益增幅相當,增量超過。

  1. 多目標在視頻推薦模型中的應用

常規的多目標是共享隱層的 soft 多目標模型,我們使用的是基於正樣本加權的模型。

共享隱層多目標模型的缺點:

① 優化目標差異:推薦模型強調 rank,關注正樣本排序;傳統的多目標模型強調 classify 分類,正負樣本一視同仁;

② 樣本不均衡:在信息流中正負樣本數量、信息量存在差異,用戶感知的信息更多來自正樣本;

③ 場景原因:信息流有很多自動刷新的場景,負樣本的可信度降低

④ 多目標的 Loss Function 很難設計,市面上的多目標方案大多是一個主目標和一個輔助的目標

我們使用的正樣本加權的多目標模型的優點:

① 關注正樣本 ranking

② 方便融合多種信息

我們的方案最終在線上取得了不錯的效果。

基於 Graph Embedding 多目標融合的 WnD 模型優化

  1. 優化 WnD 模型 logit 配比
  • 信號正向傳播

首先是 WnD 模型的一個小的優化,我們知道 WnD 分爲 LR 側和 DNN 側,LR 側使用的優化器是 FTRL,它的優化速度非常快,在數千萬 DAU 的場景下,只需採用一次流式訓練,在這樣的場景下 DNN 對樣本的訓練很難迭代多次,這時 WnD 模型更傾向於使用 LR 側的 logit。基於這樣的原因,我們想能不能增加 DNN 側的 logit,提高系統的準確度,大體就是這樣的 motivation。

具體實施的時候,見圖中紅框部分,d 指 DNN,w 指 LR,zd 指 DNN 最後一個隱層的輸入,zw 指 LR 最後一個隱層的輸入,我們在 DNN 側乘以了一個係數 m,這就是大體的一個優化方向:

① 對於已經能很好識別的樣本:概率增幅不明顯(如右圖最上部分的箭頭,已經進入飽和區,所以增加不明顯)

② 對於可以識別,但可信度低的樣本:概率增幅明顯(如右圖中間部分的箭頭)

③ 識別錯誤:錯誤概率變化幅度明顯(如右圖最下部分的箭頭)

④ 對於 ③,概率增加,可以增加 Loss,從上述3點,可以對錯誤樣本有針對性的訓練

  • 梯度反向傳播、Adagrad 優化器

這是一個反向傳播公式的推導,上面講過增加 DNN 側的 logit 會增加 Loss,圖中標紅的表示 Loss 會增大,同時,m 可以提出來作用到 Adagrad 優化器時:

也是相應增加的。

  1. 基於時長加權的多目標融合的 WnD 模型優化

這部分的 motivation 是我們在做模型訓練時,做的還是二分類的一個分類模型,這時點擊觀看的時長沒有用到。因此,我們利用用戶觀看時長,來提升推薦效果。

這裏設計了一個 weigh 計算方式:對於某個視頻用 u_play_len 這個視頻的歷史觀看總時長 / avg_item_history_view_len 這個視頻歷史的平均觀看時長,用 max 做了一個規範化,求得 weigh,且 weigh>1。圖中統計了右邊視頻隨着時長增加,用戶觀看數量的一個變化情況。有了 weigh 我們可以對 WnD loss function reweight:

① 如果某用戶觀看 Item 時長低於歷史平均時長,權重爲1,那麼原來的既得收益 ( ctr ) 不會變化。

② 如果某用戶觀看 Item 時長高於歷史平均時長,權重爲 1.x,那麼此類視頻加權充分訓練,會被 Ranking 比較高的分數,增加時長收益。

  1. 基於 Graph Embedding 多目標融合的 WnD 模型優化

基於 Graph Embedding 多目標融合的方案中,多目標包括:提升點擊、提升時長、提升點擊率、提升點擊滲透。

首先如何取到一個 Item Embedding?我們採用的是 Deep Walk 算法,在拓撲網絡中,通過隨機遊走和 w2v 算法,學習網絡中頂點的低維向量表示,向量中蘊含着頂點之間的相關性等其他特徵。真正訓練的時候採用的是 CBOW 訓練策略,其 Loss Function 如下:

我們的方案是,從用戶日誌中挖掘出每個 User 的點擊序列,根據點擊序列建立無向圖,然後在每個節點隨機遊走形成句子,最後經過 w2v 的訓練策略,得到每個 Item 的 Embedding 表示。

具體方案:

① 根據用戶瀏覽歷史,生成每個用戶的點擊序列;

② 建圖,以 ItemId 作爲頂點,點擊序列中相鄰頂點作爲邊,形成無向圖;

③ 隨機遊走,隨機選擇圖中的某個頂點,隨機的進行遊走,形成句子;

④ 利用 w2v 中的 CBOW 策略,進行訓練。

有了 Item Embedding 之後,做 Loss Function 的 reweight,reweight 時加入了位置、時長、連續性 ( 通過 Graph Embedding 計算得出 ) 等信息。

Loss Function reweight 方式是在正樣本前面乘一個係數 di,j,然後負樣本保持不變,如果拿掉係數,是一個標準的交叉熵公式,di,j 考慮了觀看時長、觀看連續性、Item 的位置等綜合信息來得到的,它們之間用的是 α、β、γ 線性加權得到的:

f(play_len)是關於時長的函數,由播放時長的分佈估計得出:

左下角爲用戶播放數的累加,它的上面是觀看到某一時長 n 的用戶播放數的累加,右邊側延續了時長加權公式的模板。

  1. 連續性

接下來講一個連續性的實際案例:

①②③④⑤⑥⑦⑧這是用戶的點擊順序,對應的分數是基於連續性 w2v 算法計算出來的分數,我們認爲分數較高的視頻很容易帶領用戶繼續看下去,把它稱作一個連續性的信息,我們對此類信息進行加權,希望能夠帶動用戶整體的消費。

基於 WnD 的 Boosting 算法

  1. 模型

由於 Wide&Deep 建模方案是一個二分類,理論上只有一個分類超平面,很容造成樣本錯分。我們理想的方案是,雖然是二分類,但是我們可以有多個決策超平面,所以我們用了 Boosting 算法,綜合5個 Wide&Deep,進行二分類。其應用場景是訓練的實時流,每次訓練都是一個 Batch ( 相當於在線訓練 ),中間融合了5個 Wide&Deep 模型 ( 5個模型的特徵是不變的,共享 Embedding 隱層,採用的是並行計算 ),最終生成一個強分類器。

Adaboost

這是 Adaboost 算法的標準模式:

① 初始化訓練數據的權值分佈

② 使用權值分佈 Dm 的訓練數據集學習,得到子分類器 Gm(x)

③ 計算 Gm(x) 在訓練數據集上的分類誤差率

④ 利用分類誤差率計算基本分類器在最終分類器中所佔的權重

⑤ 更新每個樣本的權重,繼續訓練下一個模型,如果有5個子模型就訓練5個子模型

⑥ 最終綜合每個子模型的權重和預測值,得到一個強分類器

  1. 算法

具體的算法有幾個不同點:

第一個是誤差項的計算方式,原先標準 Adaboost 算法誤差項計算用的是加權指標函數:

我們的方案採用的是 AUC 加權的誤差項:

每個子模型的權重,由於是在線訓練,所以採用的是迭代的方式:

每次用上一個 Batch 1/2 權重加上此次誤差項的計算。

第二個是樣本權重的更新,樣本權重更新時只對正樣本進行更新,而標準的 Adaboost 是對正負樣本都進行更新的:

di,j+ 指的是這個樣本上一個子模型的權重,εi 是誤差項。

這是樣本的更新方式。

最終強分類器的預測和 Adaboost 標準模型差不多:

也是線性加權然後除以總的權重。

實際應用中 Adaboost.Rank 的 WnD 子模型有5個,每個 WnD 都有相同的網絡結構且它們共享 Embedding 層,Adaboost.Rec 模型的磁盤大小隻比單個 WnD 模型增加了6%。

  1. 在短視頻推薦中的應用

方案的實驗效果和 WnD 模型對比如上,提升了模型推薦的精準性。

未來規劃

未來的規劃:

  • 現在的推薦都是基於 point wise 的推薦模型,每次都是預測單個 Item 的分數,未來希望可以一次給用戶推薦一刷的結果。
  • 因爲每天都有新用戶進來,所以我們希望建立一個留存新用戶模型,來留住新用戶。
  • UC 信息流目前的主要消費羣體爲男性用戶,在推薦的偏好上模型和策略都偏向男性用戶,我們希望可以留住更多的女性用戶。

作者介紹

語露

阿里巴巴 | 高級算法工程師

本文來自 DataFun 社區

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