Categories
程式開發

深度CTR預估模型在應用寶推薦系統中的探索


導語 | 點擊率(click-through rate, CTR)預估是互聯網平台的核心任務之一。 近年來,CTR預估技術從傳統的邏輯回歸,到深度學習DeepFM, Wide&Deep, DIN, DCN等算法落地,經歷了突飛猛進的發展。 本文旨在以深度CTR預估模型為基礎,探索在應用寶推薦場景下的算法優化。 文章作者:趙程,騰訊算法研發工程師。

一、業務背景

點擊率(click-through rate, CTR)預估的本質是對用戶/商品建模,進而計算用戶的點擊概率。 模型的衍變經歷了從經典機器學習LR、FM再到深度學習DNN、Wide&Deep、雙塔、DIN等的百花齊放。 本文將針對應用寶的推薦場景,展開CTR模型探索優化。

深度CTR預估模型在應用寶推薦系統中的探索 1

應用寶推薦業務主要包括首頁推薦、遊戲推薦等,與常見信息流推薦(新聞/視頻)不同,本場景下的數據分佈具有明顯的差異:

  • App曝光頻次差異巨大:頭部app曝光佔比很高,長尾app曝光嚴重不足;
  • 用戶行為極其稀疏:用戶月下載中位數、平均數較少。

面對著以上問題,當前的推薦模型主要面臨著以下挑戰:

  • 在訓練樣本稀缺的情況下,如何保證低頻特徵(eg, 長尾appid)的充分學習;
  • 鑑於用戶行為極其稀疏,如果更精準地捕捉用戶的興趣偏好。

本文主要針對以上挑戰,在當下深度CTR預估模型的基礎上展開模型優化探索,通過引入更長周期用戶行為和app描述文本信息,並進一步挖掘用戶行為興趣,有效促進了推薦效果提升。

二、基本框架

應用寶的整體推薦流程如下圖所示,從底層數據流抽取特徵,經過召回、排序以及重排,最終應用到實際業務場景中。 本文主要針對排序模型優化。

深度CTR預估模型在應用寶推薦系統中的探索 2

排序模型我們以業內廣泛使用的Wide&Deep模型作為baseline,其中,Wide側具有記憶能力,能夠記住高頻特徵組合,達到準確推薦的目的;Deep側為了彌補交互矩陣稀疏的不足,將特徵映射到低維向量表示,經過多層神經網絡,使模型具有泛化能力。

深度CTR預估模型在應用寶推薦系統中的探索 3

三、多行為融合訓練

在我們的場景中擁有很多appid 相關的行為特徵,例如用戶歷史點擊、下載、安裝等,基本的Wide&Deep框架會將每個行為特徵映射到單獨的embedding,並單獨更新。

由於每一類特徵的用戶行為記錄十分稀疏,這種操作會造成低頻特徵embedding的訓練不充分。

針對於此,我們設計了基於appid embedding共享的多行為融合訓練機制,體現在模型中為Deep側的appid embedding聚合共享。

深度CTR預估模型在應用寶推薦系統中的探索 4

由於appid類的特徵較多,在實際選取時,我們主要利用了用戶的實時行為特徵和短期行為特徵,避免了由安裝/卸載記錄帶來的數據噪音。

Wide&Deep中embedding參數約佔總量的95%,通過特徵共享,參數量從2800w降低到了2000w,在模型保存和訓練速度方面均有一定的優化。

效果方面,我們主要考慮離線auc和copc(pcvr/cvr,反映模型打分偏差),經過特徵共享的模型效果在auc上基本持平,而在copc指標上得到了明顯的優化,一定程度上緩解了模型的打分偏差。

深度CTR預估模型在應用寶推薦系統中的探索 5

由於我們的特徵中用戶行為只涵蓋了15天內近30個app的記錄,對於低頻app依然沒有充足的學習樣本,那麼應該如何優化呢?

四、引入更長周期用戶行為

一種自然的想法便是引入更長周期的用戶行為記錄。 近年來,以DeepWalk, Graphsage為代表的圖模型能夠較好地捕捉用戶的長周期行為特點。

我們根據用戶過去30天內的下載行為進行構圖,考慮到用戶在同一天中的下載序列無明顯的先後關係,構建了基於共線下載的無向圖,接著訓練隨機遊走模型生成預訓練的deepwalk appid embedding,作為先驗信息指導排序模型優化。

深度CTR預估模型在應用寶推薦系統中的探索 6

在共享appid embedding的基礎上,我們嘗試了多種訓練策略。

  • 固定初始化:直接將預訓練的deepwalk appid embedding賦值給共享appid embedding;
  • 初始化微調:在1的基礎上進行參數微調;
  • 特徵蒸餾:引入輔助loss,度量學習得到的embedding與預訓練embedding的相似度(向量點積)。

深度CTR預估模型在應用寶推薦系統中的探索 7

深度CTR預估模型在應用寶推薦系統中的探索 8

從效果來看,只有初始化微調的方式會帶來一定的效果提升,說明經過deepwalk訓練的embedding和wide&deep訓練的embedding在向量分佈上是有差異的。

深度CTR預估模型在應用寶推薦系統中的探索 9

但目前為止auc的提升還很微弱,即使我們引入了30天甚至更久的用戶行為數據,對於一些低頻app依然無法充分學習,那是否還有外部信息可以利用呢?

五、引入APP描述文本信息

Deepwalk的訓練本質是從用戶行為信息中發掘app間的相似關聯,若直接從app自身的屬性信息(eg, 標題、描述文本)出發,是否也能發現相似的規律?

近年來,以BERT為代表的預訓練語言模型在文本表示方面取得了巨大的成功,我們將每個app的標題和描述文本作為輸入訓練tag分類模型,得到一個高維(768維)的向量表示,嘗試指導Wide&Deep中的appid embedding學習。

深度CTR預估模型在應用寶推薦系統中的探索 10

由於Wide&Deep模型規模的限制以及前期的經驗,我們的embedding size往往很小(30維/60維),更高的維度會導致效果下降,所以需要探索一種有效的降維方式。

這裡我們主要嘗試了外部pca降維和內部通過全連層自動學習的降維方式,實驗表明,在網絡中進行端到端自動學習的降維方式更有效果。

深度CTR預估模型在應用寶推薦系統中的探索 11

六、預訓練embedding融合

為了更直觀地展現embedding分佈,我們對deepwalk和bert預訓練的embs分別進行了tsne可視化。

下圖中不同的顏色表明不同的一級類目,二者均呈現了明顯的類目空間聚集性,同類目的app自然地聚集到了一起。

同時兩者的embedding分佈也具有空間差異性,比如,bert可視化圖中的左下角部分是視頻類app,而deepwalk是出行類app。

深度CTR預估模型在應用寶推薦系統中的探索 12

鑑於二者的差異性,我們的做法是將其分別做投影變換,投影到同一向量空間中,這裡投影變換的參數隨網絡一起學習。 融合embedding的方式則為拼接或相加。

深度CTR預估模型在應用寶推薦系統中的探索 13

模型的整體框架圖如下:

深度CTR預估模型在應用寶推薦系統中的探索 14

從實驗效果來看,向量投影拼接的方式具有更好的表現:

深度CTR預估模型在應用寶推薦系統中的探索 15

為了進一步展示加入deepwalk/bert外部預訓練embedding的效果,我們接著進行了tsne可視化,其中左邊為wide&deep appid embedding的可視化表示,右邊是融合embedding的可視化表示,可以發現app的分佈從雜亂無序學到了呈現明顯的聚簇,具有了一定的可解釋性。

深度CTR預估模型在應用寶推薦系統中的探索 16

通過這個實驗,我們已經知道app embs的初始化不同會對模型結果產生影響,那麼它們分佈的具體聚簇是否與模型效果有著嚴格的相關性,還需要更多的探索求證。

七、基於attention的用戶行為挖掘

用戶的歷史行為對當前app推薦具有直觀的影響,如下圖中,同樣的歷史點擊序列,對不同app的影響大小不同。

深度CTR預估模型在應用寶推薦系統中的探索 17

下圖是用戶近72h內同類目app點擊次數(match特徵)與cvr的關係,我們可以發現,用戶歷史點擊的同類目app次數越多,當前app的cvr也就越高。

深度CTR預估模型在應用寶推薦系統中的探索 18

圖中從123級類目由粗至細定位了用戶的興趣。 但同類目的限制往往比較嚴苛,有時相關的app可能不在同一類目下(eg, 和平精英、騰訊地圖),而且用戶的興趣也更加廣泛。

於是我們使用基於attention的方式對用戶行為進行挖掘,希望可以從一定程度上緩解同類目限制所帶來的泛化性弱的問題。 但由於用戶行為序列極短,一般的attention操作是否適用呢?

首先我們進行了一組基礎attention的實驗,額外引入app embedding作為query,對用戶行為序列進行attenion 操作,具體公式和圖示如下:

深度CTR預估模型在應用寶推薦系統中的探索 19

从效果来看,随机初始化query embedding的attention操作甚至会使效果变差,而且模型的训练过程往往第二个epoch开始就出现了过拟合。受上一步工作的影响,我们认为app embs query和key的初始化也对模型有着极大的影响。

深度CTR預估模型在應用寶推薦系統中的探索 20

下圖中展示了在i2i召回中,app相似度和cvr的關係。 橫坐標表示當前app和用戶歷史app的cos相似度的log值,藍線表示cvr。

深度CTR預估模型在應用寶推薦系統中的探索 21

我們發現app召回中,cvr隨著相似度的增加而增加,用戶總是傾向於喜歡與他歷史行為app相似的app。

體現在deepwalk/bert的融合embedding中,由於相似app具有明顯的聚集性,它們的點乘得分也高。

在attention中,我們添加了以dw+bert融合向量為初始化embedding的點乘打分方式,最終效果auc效果提昇明顯。

深度CTR預估模型在應用寶推薦系統中的探索 22

深度CTR預估模型在應用寶推薦系統中的探索 23

八、結語

綜上,本文針對應用寶推薦場景下的兩大挑戰(app曝光差異大、用戶行為少),從兩方面對現有的深度CTR模型進行了改進:

第一,引入了基於Deepwalk的長周期用戶行為挖掘和基於BERT的app文本描述信息增強。

第二,利用attention機制挖掘用戶的歷史行為序列,並融合外部embedding,實現用戶興趣發掘。

本文轉載自公眾號雲加社區(ID:QcloudCommunity)。

原文鏈接

深度CTR預估模型在應用寶推薦系統中的探索