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

1、業務背景網絡



點擊率(click-through rate, CTR)預估的本質是對用戶/商品建模,進而計算用戶的點擊機率。模型的衍變經歷了從經典機器學習LR、FM再到深度學習DNN、Wide&Deep、雙塔、DIN等的百花齊放。本文將針對應用寶的推薦場景,展開CTR模型探索優化。
圖片
應用寶推薦業務主要包括首頁推薦、遊戲推薦等,與常見信息流推薦(新聞/視頻)不一樣,本場景下的數據分佈具備明顯的差別:

app

  • App曝光頻次差別巨大:頭部app曝光佔比很高,長尾app曝光嚴重不足;框架

  • 用戶行爲極其稀疏:用戶月下載中位數、平均數較少。機器學習


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

  • 在訓練樣本稀缺的狀況下,如何保證低頻特徵(e.g., 長尾appid)的充分學習;學習

  • 鑑於用戶行爲極其稀疏,若是更精準地捕捉用戶的興趣偏好。優化


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


2、基本框架pwa



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

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


3、多行爲融合訓練設計



在咱們的場景中擁有不少appid 相關的行爲特徵,例如用戶歷史點擊、下載、安裝等,基本的Wide&Deep框架會將每一個行爲特徵映射到單獨的embedding,並單獨更新。
因爲每一類特徵的用戶行爲記錄十分稀疏,這種操做會形成低頻特徵embedding的訓練不充分。

針對於此,咱們設計了基於appid embedding共享的多行爲融合訓練機制,體如今模型中爲Deep側的appid embedding聚合共享。

因爲appid類的特徵較多,在實際選取時,咱們主要利用了用戶的實時行爲特徵和短時間行爲特徵,避免了由安裝/卸載記錄帶來的數據噪音。
Wide&Deep中embedding參數約佔總量的95%,經過特徵共享,參數量從2800w下降到了2000w,在模型保存和訓練速度方面均有必定的優化。
效果方面,咱們主要考慮離線auc和copc(pcvr/cvr,反映模型打分誤差),通過特徵共享的模型效果在auc上基本持平,而在copc指標上獲得了明顯的優化,必定程度上緩解了模型的打分誤差。
圖片
因爲咱們的特徵中用戶行爲只涵蓋了15天內近30個app的記錄,對於低頻app依然沒有充足的學習樣本,那麼應該如何優化呢? 


4、引入更長週期用戶行爲



一種天然的想法即是引入更長週期的用戶行爲記錄。近年來,以DeepWalk, Graphsage爲表明的圖模型可以較好地捕捉用戶的長週期行爲特色。
咱們根據用戶過去30天內的下載行爲進行構圖,考慮到用戶在同一天中的下載序列無明顯的前後關係,構建了基於共線下載的無向圖,接着訓練隨機遊走模型生成預訓練的deepwalk appid embedding,做爲先驗信息指導排序模型優化。

圖片
在共享appid embedding的基礎上,咱們嘗試了多種訓練策略。
  • 固定初始化:直接將預訓練的deepwalk appid embedding賦值給共享appid embedding;

  • 初始化微調:在1的基礎上進行參數微調;

  • 特徵蒸餾:引入輔助loss,度量學習獲得的embedding與預訓練embedding的類似度(向量點積)。


圖片圖片
從效果來看,只有初始化微調的方式會帶來必定的效果提高,說明通過deepwalk訓練的embedding和wide&deep訓練的embedding在向量分佈上是有差別的。
圖片
但目前爲止auc的提高還很微弱,即便咱們引入了30天甚至更久的用戶行爲數據,對於一些低頻app依然沒法充分學習,那是否還有外部信息能夠利用呢?


5、引入APP描述文本信息



Deepwalk的訓練本質是從用戶行爲信息中發掘app間的類似關聯,若直接從app自身的屬性信息(e.g., 標題、描述文本)出發,是否也能發現類似的規律?
近年來,以BERT爲表明的預訓練語言模型在文本表示方面取得了巨大的成功,咱們將每一個app的標題和描述文本做爲輸入訓練tag分類模型,獲得一個高維(768維)的向量表示,嘗試指導Wide&Deep中的appid embedding學習。

因爲Wide&Deep模型規模的限制以及前期的經驗,咱們的embedding size每每很小(30維/60維),更高的維度會致使效果降低,因此須要探索一種有效的降維方式。
這裏咱們主要嘗試了外部pca降維和內部經過全連層自動學習的降維方式,實驗代表,在網絡中進行端到端自動學習的降維方式更有效果。

6、預訓練embedding融合



爲了更直觀地展示embedding分佈,咱們對deepwalk和bert預訓練的embs分別進行了tsne可視化。
下圖中不一樣的顏色代表不一樣的一級類目,兩者均呈現了明顯的類目空間彙集性,同類目的app天然地彙集到了一塊兒。
同時二者的embedding分佈也具備空間差別性,好比,bert可視化圖中的左下角部分是視頻類app,而deepwalk是出行類app。

鑑於兩者的差別性,咱們的作法是將其分別作投影變換,投影到同一貫量空間中,這裏投影變換的參數隨網絡一塊兒學習。融合embedding的方式則爲拼接或相加。

模型的總體框架圖以下:

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

爲了進一步展現加入deepwalk/bert外部預訓練embedding的效果,咱們接着進行了tsne可視化,其中左邊爲wide&deep appid embedding的可視化表示,右邊是融合embedding的可視化表示,能夠發現app的分佈從雜亂無序學到了呈現明顯的聚簇,具備了必定的可解釋性。 
圖片
經過這個實驗,咱們已經知道app embs的初始化不一樣會對模型結果產生影響,那麼它們分佈的具體聚簇是否與模型效果有着嚴格的相關性,還須要更多的探索求證。


7、基於attention的用戶行爲挖掘



用戶的歷史行爲對當前app推薦具備直觀的影響,以下圖中,一樣的歷史點擊序列,對不一樣app的影響大小不一樣。
圖片
下圖是用戶近72h內同類目app點擊次數(match特徵)與cvr的關係,咱們能夠發現,用戶歷史點擊的同類目app次數越多,當前app的cvr也就越高。
圖片
圖中從123級類目由粗至細定位了用戶的興趣。但同類目的限制每每比較嚴苛,有時相關的app可能不在同一類目下(e.g., 和平精英、騰訊地圖),並且用戶的興趣也更加普遍。
因而咱們使用基於attention的方式對用戶行爲進行挖掘,但願能夠從必定程度上緩解同類目限制所帶來的泛化性弱的問題。 但因爲用戶行爲序列極短 通常的attention操做是否適用呢?
首先咱們進行了一組基礎attention的實驗,額外引入app embedding做爲query,對用戶行爲序列進行attenion 操做,具體公式和圖示以下:
圖片
從效果來看,隨機初始化query embedding的attention操做甚至會使效果變差,並且模型的訓練過程每每第二個epoch開始就出現了過擬合。 受上一步工做的影響,咱們認爲app embs query和key的初始化也對模型有着極大的 影響。
圖片
下圖中展現了在i2i召回中,app類似度和cvr的關係。橫座標表示當前app和用戶歷史app的cos類似度的log值,藍線表示cvr。
圖片
咱們發現app召回中,cvr隨着類似度的增長而增長,用戶老是傾向於喜歡與他歷史行爲app類似的app。
體如今deepwalk/bert的融合embedding中,因爲類似app具備明顯的彙集性,它們的點乘得分也高。
在attention中,咱們添加了以dw+bert融合向量爲初始化embedding的點乘打分方式,最終效果auc效果提高明顯。
圖片 圖片

8、結語



綜上,本文針對應用寶推薦場景下的兩大挑戰(app曝光差別大、用戶行爲少),從兩方面對現有的深度CTR模型進行了改進:
第一,引入了基於Deepwalk的長週期用戶行爲挖掘和基於BERT的app文本描述信息加強。
第二,利用attention機制挖掘用戶的歷史行爲序列,並融合外部embedding,實現用戶興趣發掘。
相關文章
相關標籤/搜索