Categories
程式開發

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用


導讀: 在 CTR 預估中,能不能有效地利用用戶歷史行為,頁面同屏競爭廣告信息,以及用戶—廣告,廣告—廣告關係等輔助信息來提升模型效果?本文介紹在這方面的探索工作,主要包括:

  • 深度時空網絡 ( DSTN )
  • 深度記憶網絡 ( MA-DNN )
  • 特徵表達輔助學習 ( MCP )

相關工作發表在 2019 KDD 主會,DLP-KDD 2019 workshop,2019 IJCAI 主會。

01 背景介紹

1. 智能營銷平台的業務背景介紹

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 1

智能營銷平台是一個廣告變現的業務中台,支持多種流量,多種廣告類型的變現業務。系統架構主要分為:用戶流量通過媒體接入、廣告主通過廣告投放平台投放廣告,檢索系統實現變現業務的核心功能。智能營銷平台的目標是幫助廣告主高質、高效地觸達用戶, 系統優化的核心指標包括點擊,轉化,變現能力,同時還非常關注用戶體驗和客戶體驗。

所有的廣告系統都會有個檢索漏斗,解決檢索效率問題。主要的漏斗環節有:觸發/召回、創意檢索+初排、樣式優選+精排、點擊/轉化。同時,還需要對用戶的精準理解,涉及到用戶畫像技術。此外還有低質流量、作弊點擊和轉化識別等問題,需要流量價值建和反作弊建模的策略。這些環節通常都需要進行機器學習建模。

2. 機器學習的方法論和業務要求

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 2

整個機器學習就是這樣的一個系統:給定信息輸入,抽取為特徵表達,定義模型結構並學習,然後進行決策和執行,最後得到真實世界反饋來不斷優化模型。機器學習的三個要素:數據、算法和工程架構。智能營銷平台模型團隊的目標就是要搭建這樣一套機器學習系統,並為業務賦能。在工業界中,機器學習系統有兩方面的要求:

  • 業務要求:準,就是 AUC 和預估偏差;快,時效性要高;穩定,波動性要滿足業務要求。
  • 用戶對機器學習平台的要求:好用、高效、工具完善。

3. 機器學習全流程系統的要素

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 3

搭建一個工業級機器學習系統,需要上圖的這些要素。大部分做過模型的同學都清楚,首先要有一個核心的訓練框架,智能營銷平台搭建了一套自主研發的 DNN 的模型訓練框架,支持大規模離散 DNN 模型訓練, 同時支持 online learning。在我們的業務中, online 模型不會一直訓練,會定期訓練batch 模型,給online 模型做初始模型接著訓練,這樣做的目的是防止online 模型在不太準確的實時流樣本上累積誤差,導致模型學差。然後是訓練的數據流,基於我們的日誌系統搭建樣本流,有天級的樣本流和實時的樣本流,天級樣本流有完善的反作弊策略和臟數據清洗,實時樣本流則追求時效性,但是準確性上會有損失。訓練好的 online 模型會定期分發到線上模型服務,分發時有分發控制和模型監控,如果模型出現問題,不會分發到線上。機器學習系統的特徵非常重要,我們專門抽像出來一個特徵工程模塊,這個模塊在線和離線都會用到,主要是為了保證特徵的一致性。另外還有樣本流和特徵流的監控,監控天級別的特徵是否會有大的波動,這在業務上是非常必要的環節。

4. 智能營銷平台模型團隊的核心業務

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 4

模型團隊輸出兩個方面的能力:端到端的學習建模能力,為業務賦能;針對核心業務的創新解決方案,打出自己的特色。

本文主要是分享怎樣在業務中做創新的模型解決方案。我們之前根據業界流行的模型方案做過如下的模型迭代:連續 DNN、大規模離散 DNN、Wide&Deep、ESMM。最近一年來,我們針對自己的業務特色,深入思考,做了一些自主創新的探索工作,主要是三個方面的工作:

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 5

接下來分別為大家詳細介紹下:

02 我們的工作

1. 深度時空網絡 idea

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 6

之前的模型有什麼問題?主流的模型獨立預測每個廣告的 CTR,但不考慮用戶歷史行為等輔助信息的影響。這些信息也可以通過特徵工程的方法來做,比如加用戶長期信息統計,帶來的問題是繁瑣、難以全面、需要領域知識,特徵挖掘需要做大量的工作。我們希望能通過網絡結構能自動完成用戶歷史行為的捕捉和挖掘。

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 7

在我們的業務場景中,可以將用戶的歷史廣告行為和同屏廣告信息作為輔助信息輸入到模型中。主要引入兩類輔助信息:空間信息、時間信息,比如要預估target 廣告,用戶歷史中看過的、點擊過的歷史廣告廣告作為時間維度信息輸入,預估時的上文廣告作為空間信息輸入。

要有效利用時間和空間輔助廣告,深度時空網絡必須解決以下問題:

  • 每個用戶的歷史行為有長有短
  • 並非所有的歷史信息都有用,需要壓制噪聲
  • 當前信息對 target 廣告的重要性不同
  • 如何融合所有的信息

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 8

先從 feature embedding 開始。深度神經網絡,需要把每個特徵做 embedding 表達,每個廣告有多個特徵,多個特徵的 embedding 通過拼接的方式連接起來,如果有多值特徵則通過 sum pooling 方式累加。時空網絡的 embedding 如何實現,有3種思路:

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 9

第一種是簡單的 pooling 網絡。 Target 廣告、上文廣告、歷史點過的廣告、沒點過的廣告,有共享的特徵:查統一的 embedding 表,形成多個拼接向量,單個類型的信息產生的 embedding 向量用 sum pooling 累加起來。有時用戶行為比較稀疏,如果沒有某種輔助信息的話,就變成0向量輸入。這種網絡結構簡單,解決的問題是怎麼把變長變成定長。

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 10

第一種方案雖然變成了定長,但是有的信息是有噪聲的,沒有體現出來。第二種方案就是增加 attention layer 對重要信息進行提取,比如有多個歷史點擊廣告,用 attention 網絡計算權重,體現歷史廣告信息的不同重要性。但是加 attention 還是沒有和當前的廣告產生重要性的交互。比如用戶之前是對遊戲感興趣, 切換到教育場景,那歷史信息就是噪聲了。

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 11

要針對當前廣告篩選有用的信息,進一步設計了第三種交互式的attention 模型,具體做法是:在前面的結構的基礎上,目標廣告的embedding 和輔助廣告一起輸入到attention 結構中,產生權重pooling起來。

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 12

我們分別在公開數據集和自己的業務數據集進行了實驗對比,對比的基線有 LR,FM,DNN,W&D,DeepFM,GRU 等模型,對於論文中提出的三種結構也進行了對比。效果最好的是 interactive-attention 的模型。

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 13

我們進一步分析了輔助廣告作用大小的分佈,可以看到,在搜索場景中,上文廣告的作用非常大,信息流廣告中一般一次展示一條廣告,沒有上文,因此點擊的作用大一些,不點擊的作用小一些。實際業務場景中,點擊廣告和不點擊廣告行為長度不一樣,我們進一步做了歸一化分析,結論:點擊廣告比不點擊廣告歸一化後提供的信息量要大。

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 14

加入時空網絡結構之後,對 embedding 學習的表達也起到了聚類效果。我們觀察到同類的東西,在時空網絡的 embedding 中學到的更接近一些。

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 15

同時進一步看了下 attention-weight 學習的結果,同屏展現中越相似的廣告權重越小。怎麼理解呢?相似的廣告在同一屏展示的時候,會分散用戶的注意力,用戶看到一個相似的東西之後,會 miss 另一個和它相似的東西。但是前文點擊序列裡面,越相似權重越大;未點擊序列也是越相似權重越大,但是整體權重都較小, 說明用戶未點擊的信息量不是太明確。

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 16

在搜索廣告系統中,由於用到了上文信息,需要加入按位置拍賣的機制,所以對線上的排序機製做了修改,先選第一位的廣告,再排後面的廣告,後面的廣告的上文為第一位廣告。

參考論文:

[KDD 2019] Deep Spatio-Temporal Neural Networks for Click-Through Rate Prediction

https://github.com/oywtece/dstn

2. 深度記憶網絡

第二個 idea 是深度記憶網絡,主要目的是為了解決時空網絡的線上性能問題。上面的時空網絡,需要對輸入數據的進行複雜的拼接,離線部分數據存取空間消耗大,僅能建模有限的數據量,歷史行為不能太多。同時在線 inference 代價比較大,因此整個時空 DNN 上線過程對我們的工程架構挑戰巨大。深度記憶網絡的設計目標是不需要拼接信息,帶來的好處是存儲空間消耗變小,能夠無限處理用戶歷史信息,在線 inference 結構更簡單,效率更高。

回到 DNN 網絡如何利用歷史信息。有些網絡結構,如 RNN 可以學到用戶的歷史信息,最終得到隱向量的輸出,給下游模型使用。但是RNN 離線訓練是複雜且費時的,因此提出深度記憶網絡目標是希望能夠結合DNN 和RNN 的優點, 同時達到效果的折中:既能像DNN 一樣簡單實用,又能像RNN 一樣捕捉用戶的歷史信息。

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 17

先看 RNN 怎麼做的:RNN 把用戶行為序列通過 embedding 放入 GRU 網絡中,得到的輸出,再給 DNN 網絡做輸入,GRU 的的輸出可以看做是一種記憶向量。使用 GRU 網絡需要對用戶歷史行為做擴展,顯示地指定用戶行為序列;深度記憶網絡設計的初衷,就是能不能不顯示地構造用戶的歷史行為序列,而是靠模型的學習機制來解決這個問題。

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 18

因此我們在 DNN 網絡結構中增加了用戶的記憶向量,記憶向量不需要很多槽位,只有兩類記憶:用戶點過和沒點過的兩種記憶向量,分別代表用戶感興趣和不感興趣內容。記憶的輸入內容是用了當前DNN 網絡最後一個隱層的內容,用這個隱層的原因是它是對樣本的抽象表達,這個向量通過一種”寫控機制”存儲到用戶的記憶embedding 中,線上要預估時,把用戶的記憶向量取出來,放入神經網絡中使用。

訓練的 loss 和普通 DNN 相同,label 和預估值做 log loss。對於寫控機制,也就是記憶向量的學習,目標是希望用戶的記憶向量和用戶所有見過樣本的表達,有MSE loss 的約束,可以理解為最終達到的效果是:如果點了,向用戶感興趣的記憶向量裡面記,不點的內容往不感興趣的記憶向量裡面記。整體是兩個 loss 一起訓練優化。

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 19

記憶網絡我們也做了一些模型效果對比,在我們的業務模型基線以及公開數據集基線上都取得了 AUC 增益。記憶網絡效果沒有時空 DNN 強大,但是結構簡單,實現代價低,對於希望快速拿到業務收益的場景非常實用。

參考論文:

[DLP-KDD 2019] Click-Through Rate Prediction with the User Memory Network

https://github.com/rener1199/deep_memory

3. 深度匹配、關聯與預測網絡

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 20

第三個工作是在特徵表達學習上做了些研究,發表在 2019 IJCAI 會議上。

傳統的DNN 模型將特徵embedding 用全連接網絡往上送,最終和label 一起計算loss 並優化,學習時更多地關注label 和特徵之間的相互關係,雖然也有神經元連接起到交叉作用,但是特徵和特徵之間的相互影響學習的較少。比如某個用戶點了某個 item,模型學習的結果並不要求用戶和 item 表達有相似性。目前有些可藉鑑的網絡結構,如 DSSM,會要求兩個輸入 item 有一定的相似性。因此我們藉鑑了這種思路,並將現有的模型結構融合起來,使得 DNN 網絡學習的同時,對 Embedding 的學習也使用一些輔助網絡來強化。對應到我們的業務中,如用戶和廣告,如果有點擊關係,是否能相似一些,用戶點擊序列中的廣告,是否能學的相似一些。

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 21

看下業務中具體的具體例子, u 代表用戶特徵,a 代表廣告特徵,O 代表其他特徵。用戶和廣告的關係,廣告與廣告的關係,類似於構建了一個圖。比如用戶1點了廣告1、廣告3,用戶2點了廣告1。用戶1和用戶2的 embedding 能通過圖的關係推斷出一些關係, 期望 embedding 表達也具有相似性, 廣告1 和廣告3出現在用戶的一個行為序列中,也應該具有相似性。如果是放在之前的純 DNN 網絡中,用戶1和用戶2的 embedding 是隨機初始化,向各自的樣本的 loss 方向學習,很難取得預期的效果。

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 22

整個 DeepMCP 網絡分為三個部分:一個是主網絡,可以是任何的 DNN 網絡結構,如 wide&deep,DeepFM;兩個輔助網絡:匹配子網絡和關聯子網絡。匹配子網絡學習的是用戶和廣告的相關性( 類似DSSM ),關聯子網絡是學習廣告和廣告的相關性( 類似word2vec 和graph embedding ),目標是希望整個網絡既有好的預測能力,又有好的feature embedding 表達能力,從而提升模型的泛化能力。 MCP 模型還有一個優點,線上 inference 時, 只需要把主網絡激活就可以了,其它部分不需要計算,對線上計算性能沒有影響。

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 23

網絡結構詳解:

  • 預測子網絡:最左側的網絡部分,也是模型的主任務部分,優化的目標是 log loss,線上預測時只需要激活這部分網絡計算。
  • 匹配子網絡:一個類似dssm 結構的網絡,挑選用戶相關的特徵輸入左側的子網絡中,廣告相關的特徵輸入右邊,上面經過全連接層,最後計算matching score 和loss,優化的目標是匹配能力。
  • 關聯子網絡:一個類似 word2vec 的網絡,選擇用戶的行為序列構建正負樣本進行訓練,目標是希望同在序列的 Item 表達相似。

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 24

匹配子網絡,這裡有一個細節,中間需要加一個 tanh 的激活函數,因為上面要做 product 計算,如果是 ReLu 的話,會出現很多0值,product 可能無效。

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 25

關聯子網絡,有兩類樣本,一類是同在一個行為序列的樣本形成正樣本對,一類是負樣本對,隨機負採樣。 Loss 和 word2vec 的思路類似,目標是希望同在一個行為序列的 item 特徵表達相似。

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 26

訓練優化的 loss 是三個網絡的 loss 累加,不同的 loss 之間增加了超參數調節。

深度時空網絡、記憶網絡與特徵表達學習在 CTR 預估中的應用 27

實驗發現超參數的設置非常重要,業務中超參數的具體值需要根據數據集來決定。同樣在公開數據集合業務數據集中做了對比,對比了通用的 DNN 模型,DeepCP 效果取得了小幅提升, DeepMP 的效果比較明顯;DeepMCP 的效果是最好的。其中 DeepCP 網絡的訓練樣本構造比較複雜,在業務落地時,可以選擇 deepMP 上線。

參考論文:

[IJCAI 2019] Representation Learning-Assisted Click-Through Rate Prediction

https://github.com/oywtece/deepmcp

03 總結

智能營銷平台近年來結合業務特點進行了多項模型技術的創新升級,但是我們的創新工作還未停止。智能營銷平台力求打造一個效果和效率最好的變現平台,在觸發、定向,CVR/OCPC 等技術方向還有很多業務挑戰問題亟待解決,也歡迎對模型技術感興趣的同學一起加入探索。

今天的分享就到這裡,謝謝大家。

作者介紹

秀武,阿里巴巴高級算法專家

本文來自 DataFunTalk

原文鏈接

https://mp.weixin.qq.com/s?__biz=MzU1NTMyOTI4Mw==&mid=2247499645&idx=1&sn=a4d1e29381ab912861c3827399e22312&chksm=fbd74d11cca0c407e9149d5d80fba8b6b60e91b66a0688611dcbf6be2b89c2d136da181e0243&scene=27#wechat_redirect