Categories
程式開發

CTR預估在動態樣式建模和特徵表達學習方面的進展


導讀:富媒體時代,廣告的樣式需要千人千面,廣告產品形態呈現多樣式、多物料組合形態,對CTR 預估提出了巨大的挑戰;針對這個問題,我們提出了一種動態樣式組合優選加DSA 模型,並結合分位置拍賣技術,較完美地解決了組合樣式優選的問題。

另外,傳統的CTR 預估較少能挖掘特徵之間的交互信息,我們提出一種MCP 模型,通過輔助的網絡結構來學習更好的特徵表達,同時在線上inference 時不會產生額外的計算消耗。

綜上,本次分享的內容主要包括

  • 動態樣式 CTR 預估建模
  • 特徵表達輔助學習

01 業務背景及 CTR 介紹

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

CTR預估在動態樣式建模和特徵表達學習方面的進展 1

我們的主要業務是搜索廣告和信息流廣告。搜索廣告主要通過搜索 query 觸發,信息流廣告是在沒有 query 的情況下展示廣告。

一個通用的商業廣告系統,如右圖所示:

  • 前端 server:包括媒體接入、廣告樣式封裝等
  • Server A:策略的中心 Server,實現各個下游 server 之間的連接,以及排序和過濾等策略
  • Server C:Server A 會先讓 Server C 計算出一些候選的拍賣詞或者廣告集合 ( 在搜索廣告中稱為觸發,在信息流廣告中稱為定向 )
  • Server B:廣告檢索,檢索出廣告的具體信息,並請求 model server 進行 Q 值計算
  • Model server:進行各種 Q 值計算的 server
  • 我們可能還會用到用戶維度的實時信息,所以我們還有用戶特徵 server 和用戶信息存儲等基礎架構。

整個商業廣告系統是由做工程架構的同學來維護架構,策略同學進行策略的迭代優化。接下來會講下商業系統中非常重要的部分,也就是 CTR 預估。

2. Click-Through Rate ( CTR ) 預估

CTR預估在動態樣式建模和特徵表達學習方面的進展 2

CTR 預估的重要性:

  • Ad selecting:用 CTR 預估做廣告漏斗的選擇,也就是從檢索出來的廣告中​​選出一部分廣告進行精排。
  • Ad ranking:CTR×bid 排序,CTR 估的越準,排序效率越高。
  • Ad charging:廣告計費,根據 CTR 進行廣告計費計算。

在線廣告的點擊率 ( CTR ) 預估問題是構建一個預測模型,來估計給定用戶給定廣告的點擊概率。如圖中表格所示:

給定用戶ID、用戶屬性( 如:年齡,性別,興趣等),給定廣告Title,通過用戶的行為反饋,可以收集到這個廣告用戶點擊/未點擊,作為訓練樣本就可以訓練出一個模型(一個非常複雜的非線性函數表達形式),然後推送到在線的model server 進行實時的CTR 預估。

CTR 預估的問題看似簡單,但確實是業界重點研究的方向,主要從如下幾個方向展開:特徵優化,模型算法研究,模型應用的創新。

3. CTR 相關工作

CTR預估在動態樣式建模和特徵表達學習方面的進展 3

回顧下業界常用的模型結構:

  • 邏輯回歸模型 ( LR ):模型簡單,容易實現,早些年非常流行。
  • 因子分解機 ( FM ):FM 模型增加了二階項,可以做一些特徵兩兩交互的學習工作。
  • 深度神經網絡 ( DNN ):最早以 Google 的 DNN 模型為代表,從結構上對特徵做 Embedding,再接幾層全連接神經網絡,由於我們是分類問題,所以最後用 Sigmoid 計算 CTR 預估值。
  • Wide&Deep:DNN 在泛化和推理上效果比較好,但是在廣告系統中,更希望有一些記憶的特性( 如果一個用戶對廣告有頻繁的點擊行為,我們希望記住他),於是引入了LR 的組件,來實現記憶的特性。
  • DeepFM:華為基於 Wide & Deep 模型,又提出了 DeepFM,將 LR 升級為 FM,同時在 DNN Embedding 學習時,聯合 FM 進行學習。
  • 後面還有 DCN,以及阿里的深度興趣網絡 DIN 等等。

我們團隊的模型現狀:

  • 大規模離散 DNN 模型作為基本的模型框架
  • 支持 Wide&Deep,DeepFM 模型結構
  • 自研了時空 DNN,深度記憶網絡結構,可以更好的處理用戶歷史行為,在 CTR 預估中起作用
  • 在特徵 Embedding 學習方面,自研了 MCP 網絡

02 動態樣式 CTR 預估建模

——CTR 預估如何賦能廣告樣式升級?

1. 廣告產品樣式升級

CTR預估在動態樣式建模和特徵表達學習方面的進展 4

在前幾年,廣告樣式主要是普通的樣式:標題+描述,信息量非常少,用戶真正感興趣的內容,需要在落地頁中呈現。

近期針對樣式方面,我們做了很多的產品升級,如右圖所示,增加了商品列表、圖文混排、子鏈 ( 分組 ) 等樣式。這樣做的優點:

  • 更多信息前置,內容更吸引人,帶來點擊率的大量提升
  • 可根據用戶意圖個性化選擇樣式和物料,千人千面
  • 轉化信息前置,提升轉化效率

2. 動態創意的組件化

CTR預估在動態樣式建模和特徵表達學習方面的進展 5

廣告產品樣式升級主要是通過動態創意來實現的,動態創意包含 樣式佈局組件 兩個要素。如左側的廣告,我們將它拆成元素,有標題、圖片、描述和分組等各種子鏈區,我們將它定義成樣式佈局。有了樣式佈局之後,我們需要做的就是填充,比如從廣告庫中找到標題,填充進去,同時把圖片、描述等等也一一找出填充進去。這樣的方案對廣告主來說是很省時省力的,因為廣告主主要關注的是內容的提供。對於內容的提供,我們也提出了策略的解決方案,廣告主只需要提供一些基礎的內容,我們可以用算法生成一些相近的物料。對於組件的樣式不需要廣告主定制,我們有專業的樣式產品團隊進行樣式設計,然後由策略團隊做樣式的策略優選,來確定哪種樣式是最好的。

動態創意從產品邏輯上來看很簡單,但是從策略上來講是巨大的難點,首先要確定哪種樣式加物料的組合效果最優,而且針對不同用戶和廣告主最優;其次還要考慮同屏展現下的最優組合。所以我們提出了整體的解決方案:先通過樣式+物料組合優選,確定每個廣告的動態創意組合,然後通過 DSA 模型建模分位置拍賣過程。

3. 樣式+物料組合優選

CTR預估在動態樣式建模和特徵表達學習方面的進展 6

首先介紹一個最基本的解法:

一個廣告要展示的時候,我們第一層要選Layout,確定樣式的佈局;選定Layout 之後,要選定每個容器中放哪個物料,從圖片到描述,到標題等等,整個計算就是一個多連乘的公式,在線上如果要實現這一套計算,特別是每種實際展現的樣式我們在計算CTR 時,單次檢索的CTR 預估次數會超過百萬次,致使單個廣告CTR 預估組合爆炸。並且不只是單個廣告,我們檢索可能會檢索出上千條廣告,哪些創意要進入樣式+物料優選,也是非常難的問題。因此簡單的樣式優選難以實現,對性能挑戰非常大。

4. 一種簡單的算法升級

CTR預估在動態樣式建模和特徵表達學習方面的進展 7

針對上面的問題,先看一種簡化的解決思路

  • 廣告檢索,基於原來的檢索邏輯,先檢索出來創意 ID
  • CTR 預估,篩選廣告,不計算樣式和物料內容,只計算基本的 CTR 預估值
  • 廣告精排,確定展現隊列,排序之後,在搜索廣告系統中,可能只剩下了少數條廣告
  • 樣式和物料選擇計算,確定最終的創意樣式

這樣做的優點

樣式+物料計算的候選廣告大大減少。

同時,缺點也非常明顯

  • CTR 預估沒有體現樣式和物料帶來的加成,使策略最優的效果沒有體現出來
  • 樣式之間的相互影響沒有體現出來,一個強樣式排在前面時,會使後面的廣告 CTR 預估受影響。業界有很多論文在做這塊內容的研究,大家可以了解下

5. 樣式+物料選擇建模

CTR預估在動態樣式建模和特徵表達學習方面的進展 8

因此,我們將問題進行定義:動態創意優選 = 組合爆炸 + Ranking ( eCPM 最大化 ) + EE

  • 針對組合爆炸的解法是運用貪心算法+EE。這裡的貪心策略是將物料組裝的形式分層次來做,比如先選定標題,再放圖片,進而放入描述,放入子鏈,…,而不是整個展開來計算。如左圖所示,樹中每一個節點代表一個容器,每一條從 root 到葉子節點的路徑就是一個完整的樣式。
  • 針對 Ranking ( max-eCPM ) 的解法是:CTR 預估+廣告 EE 機制

優選策略

① 每層容器優選

  • 組件多元關係 ( 互斥規則 )
  • CTR ( 組件 )
  • Ranking ( max-eCPM )
  • 剪枝 ( EE ):每層留多少個節點

② 每層優選使用前文信息 ( 上一層容器 )

③ 樣式優選結束後進行組件物料優選

這裡用到的算法和 Model

  • CTR 預估:DNN
  • CTR 預估中的 EE:湯普森採樣
  • 剪枝 EE:目前這部分還沒有做,未來我們準備用深度強化學習 ( DRL ) 來做剪枝,來決策哪些內容可以提前去掉,不用參與計算

6. 一種改進的算法流程

CTR預估在動態樣式建模和特徵表達學習方面的進展 9

前面的算法,已經解決了大部分的問題,當然還有一部分問題沒有解決掉,進而我們又引入了 DSA 動態廣告排序過程。

整個廣告計算流程

  • 基於原來的檢索邏輯,檢索出來創意 ID
  • CTR 粗排預估,進行廣告初選,篩選 Top N 廣告
  • 針對 Top N 廣告進行樣式和物料組合優選,確定候選廣告的樣式+創意
  • PSA 機制按位置從上到下逐個計算廣告展現
  • DSA 模型考慮 rank,樣式,物料,上文廣告等信息計算精確的 CTR

這裡的改進是增加了新模型 DSA,可以在上游 Q 值輸入的基礎上,增加上文,位置,樣式,物料等相關特徵。另外,我們對 CTR 模型和 DSA 模型是分別獨立進行訓練的,這裡會存在一些問題。

7. CTR 粗選模型 + DSA 模型聯合訓練

CTR預估在動態樣式建模和特徵表達學習方面的進展 10

獨立訓練存在的問題:由於是獨立訓練,兩個模型都存在倖存者偏差,那麼CTR 預估模型中的選出的最好的廣告,並不代表在DSA 模型中就是排的最好的,這兩個模型解的不一致性就會帶來策略的損失。

近年來,Multi-task Learning ( 多目標學習 ) 領域比較火,也是用來解決這個問題的,所以我們引入了 Multi-task Learning 算法。針對前一版的改進是兩個模型聯合一起訓練,在特徵層面可以 share embedding,在網絡結構上是兩個共生網絡進行聯合訓練。

這裡一個小的 trick 是:有些特徵在 DSA 階段,不需要重複計算,所以我們會把上一階段的 Q 作為下一階段的輸入去使用。

8. 小結

本節內容小結

  • 在動態樣式產品升級的情況下,CTR 預估會面臨 組合爆炸 的難題
  • 為減少計算量,可以先計算出廣告展現隊列 ( 減少樣式物料優選的計算量 ),然後再進行 樣式和物料選擇
  • 即使單個廣告的樣式和物料優選也會面臨計算量非常大的問題,所以引入了 貪心 + EE 的策略,逐層篩選最優結果
  • 先計算廣告隊列再進行樣式和物料優選時,樣式和物料的效果 不能影響排序,不是最優結果,收益不能達到最大化
  • 因此,引入 PSA 機制和 DSA 模型,將樣式優选和排序過程融合起來,能大幅提升效果
  • DSA 模型可以和上游模型進行聯合建模,進一步提升模型效果

03 特徵表達輔助學習

——CTR 模型的 Embedding 能否學習得更好?

1. 深度匹配、關聯與預測網絡 ( DeepMCP ) idea

CTR預估在動態樣式建模和特徵表達學習方面的進展 11

常用的 CTR 模型結構,如左圖,模型就是在學一個映射的網絡,來實現特徵輸入到 CTR 的映射形式。傳統的模型是解 Feature 到 CTR 目標值的關係,即使後面的 FM 模型,也是在解兩兩特徵如何影響 CTR,並沒有建模特徵表達是否相似。因此是否可以建立特徵表達之間的約束學習,使模型具有更好的泛化性?

我們的解決辦法是在 CTR 網絡結構中引入輔助的網絡結構 ( DeepMCP ),對特徵和 CTR 之間的關係,以及特徵和特徵之間的關係進行建模。其中特徵和特徵之間的關係,主要包括:用戶和廣告 之間的關係以及 廣告和廣告 之間的關係。

2. DeepMCP 概覽

CTR預估在動態樣式建模和特徵表達學習方面的進展 12

具體的解決方案是在原來預測網絡的基礎上,加入匹配子網絡和關聯子網絡。目標是學習具備好的預測能力和表達能力的 Embedding 模型。

DeepMCP 的優點:

  • 訓練時,三個子網絡均被激活
  • 線上做預估時,只有預測子網絡被激活,不需用到兩個輔助子網絡,不會消耗額外的線上計算性能

3. Motivating Example

CTR預估在動態樣式建模和特徵表達學習方面的進展 13

背景動機:

如上圖,u 代表用戶特徵,a 代表廣告特徵。用戶 u1點擊了廣告 a1和 a3,用戶 u2點擊了廣告 a1,實際場景中,我們可能會需要預測用戶 u2對 a3的點擊率,在之前的網絡中,用戶 u2和 a3在 Embedding 表達上沒有任何的關係,所以很難預測 u2對 a3的 pCTR。有了輔助網絡之後,由於 u1和 a1的 Embedding 與 u2和 a2的 Embedding 比較像,可以推導出 a1和 a3的 Embedding 相似,最終更有可能準確預測出 u1對 a3的 pCTR。

4. 細節

CTR預估在動態樣式建模和特徵表達學習方面的進展 14

上圖為 DeepMCP 的網絡結構圖,三個子網絡共享 Embedding matrix。下面將整個網絡拆開分別進行介紹:

① 預測子網絡

CTR預估在動態樣式建模和特徵表達學習方面的進展 15

預測子網絡就是傳統的網絡,給定一些特徵,然後接幾層全連接層,再通過 Sigmoid 生成 CTR 值,最後得到 Prediction loss。這裡的預測子網絡可以替換為任意 CTR 預估模型,比如 Wide&Deep、DeepFM、Deep and Cross Network 等等。

② 匹配子網絡

CTR預估在動態樣式建模和特徵表達學習方面的進展 16

匹配子網絡主要是建立用戶和廣告之間的關係,廣告是否一定程度上匹配用戶興趣。我們把用戶特徵和廣告特徵分別經過幾層神經網絡,映射到兩個相等維度的 Embedding,再通過 tanh 激活,計算相關性得到 Matching score,最後得到 Matching Loss。這裡用到的不只是用戶 ID 和廣告 ID,而是用戶和廣告相關的所有特徵,因為我們是要輔助的學習特徵的表達,而不是推薦系統中只對 ID 進行學習。

③ 關聯子網絡

CTR預估在動態樣式建模和特徵表達學習方面的進展 17

關聯子網絡是建模廣告和廣告之間的關係。我們首先要構建廣告和廣告之間的關係,這裡借鑒了圖網絡的思路,但是我們用到的是用戶在context window 一段時間內的點擊序列,跟點擊序列不相關的廣告用隨機負採樣的方法( skip-gram model with neg sampling ) 做負樣本,這種方法跟word2vec 算法的核心思想比較類似。收集完序列之後,把當前廣告作為 target ad features,用戶點擊的廣告作為 context ad features,隨機負採樣的作為 Neg ad features,輸入到網絡中。網絡的目標是當前廣告跟歷史點擊的廣告學到的 Embedding 表達盡量接近,隨機負採樣的表達不接近。將得到的正負樣本的 loss 加起來就是 Correlation loss。

④ DeepMCP

CTR預估在動態樣式建模和特徵表達學習方面的進展 18

對於整個網絡,所有 loss 加一起的時候會有調製,我們加入了 α ( 對應 Matching Loss ) 和 β ( 對應 Correlation Loss ) 兩個參數。調製參數的調整是在 validation 數據集上監測 AUC,最佳參數在最高 validation AUC 處獲得。在線上時,只使用預測子網絡。

5. 實驗

① 預估效果

CTR預估在動態樣式建模和特徵表達學習方面的進展 19

我們分別在公開比賽數據集Avito 和公司業務數據集,通過對比基礎模型( LR、FM、DNN、PNN、Wide&Deep、DeepFM ),並對我們的網絡進行拆解,DeepCP 代表只加入了一個Correlation 網絡, DeepMP 代表只加入了一個Matching 網絡。可以看到 DeepMP 效果優於 DeepCP,整體上 DeepMCP 效果最好。最終上線的時候,我們採用的是 DeepMP,在預估準確性和模型複雜度之間達到了最好的折衷 ( best compromise )。在線 A/B test 時,CTR2 + 2.9%,CPM1 + 0.9%。

② 調權參數的影響

CTR預估在動態樣式建模和特徵表達學習方面的進展 20

經過測試,我們發現 Matching 部分的權重要大於 Correlation。

③ 網絡參數的影響

CTR預估在動態樣式建模和特徵表達學習方面的進展 21

這裡主要是指 MCP 輔助網絡的層數,主網絡的層數根據業務來定。

6. 小結

本節內容小結:

  • 傳統 CTR 預估模型主要是建模 feature-CTR relationship
  • DeepMCP 額外建模 feature-feature relationship ( i.e., user-adad-ad relationships )
  • DeepMCP 是一種多目標學習 ( multi-task learning ) 框架
  • DeepMCP 包含預測、匹配、關聯三個子網絡
  • 當三個子網絡在 target labels 的監督下聯合優化時,學到的 feature embeddings ( representations ) 既具有好的 預測能力,又具有好的 表達能力
  • 實驗結果表明匹配子網絡比關聯子網絡帶來更大的效果提升
  • 最終我們選擇了 DeepMP ( pred+match ),在預估準確性和模型複雜度之間達到了 最好的折衷( best compromise )

本次的分享就到這裡,謝謝大家。

作者介紹

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

本文來自 DataFunTalk

原文鏈接

https://mp.weixin.qq.com/s?__biz=MzU1NTMyOTI4Mw==&mid=2247498872&idx=1&sn=c7eb8e9147cb106b4122174981dce0b9&chksm=fbd74e14cca0c7027a2db1641d0e4e7bc16846035359684b702d462abdda8926ee7626bf4505&scene=27#wechat_redirect