短視訊如何做到千人千面?FM+GBM排序模型深度解析
背景
資訊流短視訊以演算法分發為主,人工分發為輔,依賴演算法實現視訊的智慧分發,達到千人千面的效果。整個分發流程分為:觸發召回、排序與重排三個階段。排序層在其中起著承上啟下的作用,是非常重要的一個環節。在排序層優化的過程中,除了借鑑業界前沿的經驗和做法,我們也做了模型上的一些創新。
資訊流短視訊排序目前使用是以CTR預估為目標的Wide&Deep模型。通過引入時長特徵、點選+時長多目標優化等工作,我們取得了不錯的收益:
● 增加視訊平均播放時長特徵,作為使用者真實體感訊號,帶來使用者消費時長提升;
● 通過消費時長樣本加權,實現點選+時長多目標優化,實現點選率與消費時長的提升;
● 引入多個視訊下發場景的樣本資料,實現多場景樣本融合;
在優化排序模型的過程中,我們也調研了DeepFM/DeepCN等深度模型,這些模型無論從離線還是線上指標上,都沒有明顯優勢。在優化Wide&Deep模型的同時,更迫切的需求,是跳出原有的框架,尋找新的收益點。
引入GBM對submodel和高階特徵等訊號做整合學習,效果要優於單模型。從計算學習理論上看,Wide&Deep是high-variance模型,容易過擬合(wd模型的訓練比評估指標高7%)。GBM通過boosting的方式組合整合多個submodel和高階特徵,更好地發揮各自不同的作用和優勢互補,同時從整體上有更好的可解釋性。
上面是對資訊流短視訊排序模型演進的簡要介紹;而其中的FM+GBM模型是我們團隊比較有開創性的一項工作,下面稍微展開介紹。
模型
向量分解機(Factorization Machines, FM)是一種應用較為廣泛的推薦模型,其發明者Steffen Rendle目前供職於Google。FM是對傳統LR模型在處理高階互動特徵問題上的優化和改進:LR通過特徵交叉的方式,將組合後的特徵作為新特徵加入到模型中,模型複雜度為O(N^2)(N為互動特徵的數量,下同),記憶性較強而泛化性偏弱;FM通過將特徵表徵為隱向量,通過隱向量的相似度(內積)來表示特徵關聯這種方式來巧妙地提升模型的泛化能力;FM模型的複雜度為O(N*k)(k為隱向量維度超參)。
以二階互動的FM模型為例,其模型定義如下:
FM本質上是一個線性模型,不同項之間以線性組合的方式影響模型的輸出。如果要考慮更加複雜的模型組合,計算複雜度將會非常高。儘管學術界也有像張量分解(Tensor Decomposition)這類處理高階互動特徵的模型;但在工業級,考慮到效果與效能的折衷,往往只考慮二階的互動。但在此基礎上,我們可以考慮引入非線性的模型來優化FM模型。
在非線性模型中,樹模型(CART/GBM/Random Forest)的應用非常廣泛。我們引入GBM作為組合FM的非線性模型:
FM+GBM一期(純GBM)
一期主要打通整個實驗框架和資料流,並沒有引入額外的訊號。GBM使用的訊號包括:wd/lr模型等sub-model打分、點選率/時長和體感特徵,以及一些簡單的匹配度特徵。整個實驗框架比較簡單:精排流程新增GBMScorer,實現以下2個功能:
● 分發伺服器通過流量分桶決定精排是否使用GBM打分,由GBMScorer具體執行;
● 特徵歸一化和迴流。提取的特徵經歸一化後返回給分發伺服器,由分發伺服器迴流至日誌伺服器落盤。點選日誌也同時經由日誌伺服器落盤。點選-展現日誌通過reco_id+iid對齊,經清洗、過濾和反作弊處理後,提取回流特徵用於模型訓練;
在調研和實驗的過程中,以下是一些經驗和教訓:
● 樣本與超參的選擇:為了讓模型儘可能地平滑,我們從7天滑動視窗的資料中隨機抽取樣本,並按比例分割訓練/驗證/測試集。通過交叉驗證的方式選擇超參;在所有的超參中,樹深度對結果的影響比較大,深度為6時效果明顯優於其他選擇。在調參過程中,auc和loss這兩項評估指標在訓練/評估/測試資料集上並沒有明顯的差異,由此可見GBM模型的泛化性。
● 離線評估指標:auc是排序模型常用的離線評估指標之一,但全域性auc粒度太粗,可以結合業務計算一些細粒度的auc。行業有采用以Query為粒度,計算QAUC,即單個Query的auc,再按均值或者加權的方式融合得到的auc,比起全域性auc指標更加合理。我們採用類似做法,以單次下發為粒度計算auc,再計算均值或者按點選加權。需要注意的是,auc計算的粒度決定了劃分資料集的粒度。如果按照單次下發為粒度計算,那麼一次下發的所有樣本都必須同時落在訓練/評估/測試資料集上。除此之外,單次下發中如果零點選或者全點選,這部分資料也是需要廢棄的。
● 特徵的歸一化:尤其是對與使用者相關的特徵進行歸一化尤為重要。通過分析精排打分(wd),我們發現不同使用者間的精排打分分佈的差異較為顯著:同一使用者的打分方差小,分佈比較集中;不同使用者使用者打分均值的方差比較大。如果不對精排打分做歸一化處理,GBM訓練過程很難收斂。
GBM和精排打分也會隨特徵迴流。日誌對齊後,可以對這兩個模型在離線評估指標上做比較fair的對比。從全域性auc/單次下發粒度auc與小流量實驗的結果來看,細粒度auc與線上實驗的效果更加趨於一致。
FM+GBM二期
一期搭建了實驗框架和資料流,二期開始考慮引入新的訊號。
縱觀眼下GBM用到的訊號,主要分為兩類:一是item側訊號,這類特徵從各個維度刻畫了item的特性:熱度、時長、質量等。這類特徵有助於我們篩選精品內容,提升推薦質量baseline。二是相關性特徵,用於刻畫使用者和視訊的關聯度(關聯度可以通過點選刻畫,也可以通過時長刻畫;目前主要通過點選),提升推薦的個性化,做到千人千面。個性化水平才是資訊流的核心競爭力。
目前相關性特徵通過長短期使用者畫像計算和視訊在一級/二級類目和TAG上的匹配程度,至少存在2個問題:
● BoW稀疏的特徵表達無法計算語義層面的匹配度;例如,帶足球標籤的使用者和梅西的視訊通過這種方式計算得到的匹配度為0。
● 目前視訊結構化資訊的準確率/覆蓋率較低,會直接影響這類特徵的效果。
wd/lr模型能夠一定程度解決上述問題。尤其wd模型,通過embedding技術,將使用者和視訊本身及各個維度的結構化資訊嵌入到一個低維隱向量,能夠一定程度緩解這個問題。但是這類隱向量缺乏靈活性,無法脫離wd模型單獨使用:計算使用者和視訊的匹配度,除了需要使用者和視訊的隱向量,還要結合其他特徵,並經過一系列隱層的計算才能得到。
業界主流公司的做法,是通過FM模型,將所有id特徵都分成在同一個空間內的隱向量,因而所有的向量都是可比的:不僅使用者與視訊本身和各個維度的匹配度,甚至使用者之間、視訊之間,都可以通過簡單的向量運算得到匹配度。從模型結構看,FM模型可以認為是能夠更加緊密刻畫這種匹配度的神經網路結構。為此,我們引入FM模型分解點選-展現資料,得到使用者和視訊本身及各個維度的隱向量。通過這些隱向量計算使用者和視訊的匹配度。這些訊號和與其它sub-model和高階特徵一起,通過GBM進行點選率預估。
這種做法與Facebook在KDD'14發表的LR+GBDT模型有相似之處,差異在於: LR+GBDT本質上是線性模型,而FM+GBM是樹模型,能夠處理訊號與目標間高度非線性的複雜關係,也具備更好的可解釋性。整個演算法框架如圖所示:
由於FM需要例行訓練,使用者隱向量灌庫和視訊隱向量載入之間存在時間差,而不同版本模型的隱向量之間是不可比的。為此我們設計了簡單的版本對齊機制:所有隱向量都會保留最近2個版本的資料;在FM線上計算模組中,實現版本對齊的邏輯,用對齊後最新版本的隱向量計算匹配度。由於例行訓練的時間視窗為4~6個小時,保留2個版本的資料是足以保證絕大部分隱向量能夠對齊。在更加高頻的模型訓練中,可以增加版本的數量來確保模型對齊。
效果上:一期+二期離線AUC提升10%,線上CTR和人均點選提升6%。
結語
資訊流短視訊排序層經過一段時間的迭代優化,目前已經形成 LR->WD->FM+GBM這套相對比較完備體系。這種漏斗體系有助於排序層在效能和效果之間trade-off:越往後,模型越複雜/特徵越高階/計算量越大,而參與計算的視訊資料量更少。
後續我們的優化目標將從點選率預估轉向時長預估,由感知相關性轉向真實相關性。這種轉換是合理且必要的:使用者點選容易受到標題和封面等因素的干擾,而真正體現使用者興趣的是消費時長。時長模型以及點選率預估模型與時長模型的融合實現收益的最大化,將是下一個要重點攻克的問題。
本文作者:馬澤鋒
本文來自雲棲社群合作伙伴“阿里技術”,如需轉載請聯絡原作者。