基于事件感知的聚類增益網絡在飛豬保險創意排序的應用
一、背景介紹
提到創意,大家首先會想到廣告創意,其實保險的創意推薦也是廣告創意的垂直應用產品。
計算廣告解決的問題是,在特定的語義下,為特定的用戶選擇相應的廣告去匹配最佳的創意圖文。在輔營保險推薦模塊下,語境指的就是用戶正在購買機票或者火車票的一些上下文信息;在搜索場景下,語境是指搜索引擎里面的一些查詢詞;用戶相關的信息指用戶的基礎信息,比如年齡性別等;廣告就是保險商品,酒店美妝等量級為 N 的商品;創意圖文數量為 N*M 的量級。計算廣告面臨的挑戰在于:在復雜的約束條件下,大規模優化和搜索問題。
本文主要講的是創意圖文的推薦,廣告的選擇和排序不做考慮,接下來介紹一下飛豬保險是如何運用創意推薦的。
首先,在 OTP 行業中,旅游保險作為輔營業務目前已經是比較重要的商業化收入來源。在保險推薦當中,除了產品推薦和價格推薦之外,創意推薦已經作為非常重要的個性化推薦模塊使用。比如在填寫個人信息的時候,可以看到一些組件,下拉收銀臺的時候也會看到彈窗。
二、保險創意推薦的挑戰
保險的創意推薦面臨的挑戰,可以總結為三大類:
一類是數據稀疏,包括用戶的數據稀疏和創意的數據稀疏。創意的數據稀疏指的是由于運營或者是 UI 同學會迭代創意,或者是由于季節性的原因去上下架一些創意,所以在線上的曝光創意并不是均勻分布的。另外,由于旅行、保險和創意是低頻的交易行為,我們很少能拿到三塊相關的購買數據,比如用戶的個人歷史購買數據。同時由于保險是輔營商品,不像搜索可以明確知道用戶的購買意圖。在創意理解和用戶理解之間也缺少統一結構化的體系。
第二類是樣本數據反事實。每個用戶只能看到唯一的創意文案,也就是只能看到創意 A 或者 B。不能在同時間段、同時間點,對同個用戶曝光多個創意。
第三類是跨行業的創意冷啟動。飛豬保險橫跨了多個行業,在啟動新行業的介入的時候,如何復用已有領域的知識,比如將行業 A 效果好的一些創意遷移到行業 B,也是我們后面要去解決的問題。
再簡單介紹一下業界現狀。
?廣告創意分為兩個大類的算法:一類是上下文無關的一些算法,比如 Epsilon 貪心,或湯普森采樣,以及阿里媽媽同學做的一些比較優雅的 E&E 算法,如貝葉斯線性回歸相關的;另一類是上下文相關的算法,把用戶和上下文信息作為推薦加入進去。
解決數據稀疏問題,主要使用 Cross-domain learning 解決兩個問題,兩個相關的任務,使用豐富數據域內的數據去解決稀缺數據域內的問題,以及聯合多個域內的數據去解決各個域內的問題。?
為了解決三個挑戰,我們團隊提出了一些解決思路:
首先從數據洞察當中可以看到,我們對個體用戶的創意歷史偏好數據比較稀疏,但對于群體用戶其實是可以進行一些刻畫的。比如從數據當中可以看到,老年人更喜歡跟家庭有關的描述;當出發日面臨惡劣天氣的時候,機票行業對類似天氣預報的素材比較敏感。那我們就可以把思路從個體用戶的數據轉化到如何把群體、相關事件以及創意這三塊進行統一的理解,以及在關聯打標后做群體推薦。在體系化理解之后,將三者建立因果關系圖可以解決一部分個體用戶數據稀疏問題。
?針對創意數據稀疏問題,我們的解決方案是當新素材上線時在線上做隨機曝光。
另外一個問題是跨行業創意冷啟動。比如我們發現對于天氣事件的因素,不管是在各個行業里,其實大家的偏好都比較相似的,尤其是在汽車票或者火車票業務下,大家的購買習慣很相似,所以一些創意的推薦知識是可以通過剛剛提到的標簽化和體系化的理解和標簽關聯進行遷移的。通過將不同的行業在同一知識體系下進行標簽對齊,通過圖卷積模型的泛化能力對知識進行一些泛化遷移。?
剛剛提到的體系化理解和標準化打標主要分為三塊:
一塊是在用戶側,我們會去做一些場景和事件的理解;另外一塊是在用戶的基礎屬性上去做一些理解;最后是在創意這里,對一些圖文的素材進行理解。最后將三者都統一標準化到標簽體系之下,有助于幫助后面去建立圖的關聯關系。
上圖為比較顯性的圖。其中三角符號是用戶側的一些屬性,比如女性或者老人;圓形符號是對事件或者上下文的理解進行分類,比如打雷或者是晚間出行;方塊符號是素材的分類。
剛剛提到的第三個挑戰是樣本當中存在反事實的現象,解決該問題我們想到的是用 uplift 思想,因果推斷是用群體在不同的營銷素材下的平均轉化率去預估個體的偏好。
三、解決方案
結合剛提到的三類思路的解決方案,我們提出了網絡結構的模型設計。首先定義問題:輸入是用戶的信息、上下文的信息以及創意文案的結構化信息,去做廣告創意的排序打分,再去選擇打分最高的創意對用戶進行輸出。
上圖是保險創意圖文推薦流程框架。
首先,前文已提到,在創意模塊,我們對險種的排序或者價格的排序是不進行干預的,創意圖文的排序是作為鏈路的最后排序邏輯。當用戶請求進來時,會做四個理解。事件層面的理解,比如現在是否在下雨;場景理解,比如現在用戶是多個人帶著小孩,還是帶著老人;還有用戶基礎屬性的理解。在素材庫也是進行剛剛提到的這種標簽化的打標之后,進行素材的標簽召回以及后續的素材創意的排序,在排序側會分出一部分流量去做線上的均勻曝光。
?另外一塊去做創意優選的工作。創意優選工作分兩路:
一路是以圖片素材進行召回和粗排,另外一路是以文案的素材進行粗排,最后進行笛卡爾組合出來我們想要的類似創意文案的展示,最后再通過 ECUNet 去進行優先。?
1、整體結構 ECUNet
根據剛剛提到的三種解決思路,設計了 ECUNet 的解決方案。主要分為三個部分:
第一部分是基于事件感知圖向量提取,主要是在離線側進行預訓練的過程,去給每個用戶側的信息、上下文信息或者是創意的信息進行圖向量的提取;第二部分是自適應的聚類增益網絡,這部分解決的問題是結合 uplift 思想去利用群體智慧解決個體問題;第三部分是將用戶和場景、用戶事件以及創意三部分的特征,通過圖向量提取得到的綜合向量去做兩兩之間的 Co-Attention,目的是為了提取他們相互之間的特性,最后去做打分。
2、EAGT:構建異構圖
異構圖的構建主要分兩部分:一部分是節點構建,一部分是邊構建。
?節點構建主要是當用戶樣本進來之后,可以映射到三類節點:用戶節點、事件節點和創意節點。當映射到三類節點之后,可以在節點和節點之間去進行邊的構建。
邊代表的是 a 節點因為 b 的原因導致保險轉化的重要性。比如說學生節點 a 在天氣惡劣節點 b 的權重會高于學生節點 a 在正常天氣節點權重。?
根據上述方法,構建了異構圖。基于該圖,通過比較常規的 Node embedding 去提取每個節點的三個場景的節點表征。
主要是通過圖的自監督學習的邊預測的任務,loss 使用 margin-based 的 loss function,最后學習得到的是特定場景的,比如機/火/汽三個場景的節點表征。
但為了遷移不同行業的知識去融合運用到另外的一些場景行業中,我們做了 share-domain embedding 節點表征學習。比如火車票和汽車票比較相似,如果現在某條用戶樣本是來自于汽車票,那么火車票的場景的 embedding 也可以被加權共享給用戶去使用。基于這樣的假設,做了 share-domain 的表征學習。主要是將三類場景的節點表征,通過注意力機制的加權去得到 specific embedding。
通過這樣的 EAGT Network 我們可以提取到三大類的節點表征。每個樣本都可以得到三個大類的節點表征后,再類內取平均值,可以得到用戶、事件、創意的三個節點表征,最后將用戶事件聯合表征和每個創意文案聯合表征輸入到第二部分——自適應的聚類增益網絡。
利用群體智慧去預估個體的偏好,流程是以 batch 內的操作去進行的。在每個 batch 內,通過可學習的分類器將每個 batch 內用戶分到 k 個大類里,希望相似的用戶可以被分到同一類。在隨機樣本采樣機制的保障之下,可以在內類的用戶進行類似創意文案的投票得到內類用戶到底對哪些創意文案比較感興趣。最后用內類群體的喜好去代表個體用戶的偏好,之后再對每個樣本進行 re-lable。比如 G1 對第三個創意比較敏感,G2 對第二個比較敏感,內類的用戶都去重新 re-lable 一次。得到 re-lable 的樣本之后,再進行 MLP 的預測得到預測值。
多視角的注意力網絡,主要的目的是通過三次 Co-attention 機制可以把用戶和事件、事件和創意以及用戶和創意兩兩向量之間的內在相關興趣提取出來,作為重要的特征去進行預測。
?我們在 Training 的 Loss Function 也進行了一些設計。一共設計了四個 Loss Function。
第一個 Loss Function 是 intra loss。主要是在聚類塊,為了使得群體分類器能夠輸出一個非均勻分布的值。從這個公式可以看到我們希望讓相似的用戶能在某一個類上去得到一個峰值表達,而在其他的類上是比較低的表達。
第二個是用交叉熵做聚類增益網絡的 Loss。
第三個是全局 Loss,也是交叉熵。
最后將三個 Loss 融合到一起去做一個融合 Loss。?
四、實驗和分析
我們的 Dataset 一部分是工業界的,收集來自于飛豬的 Dataset。另外一部分是天池廣告創意公開的數據集。
我們也去跟業內的廣告創意的排序算法,以及一些用戶興趣和跨場景學習的 Baseline 進行了比較,Metrics 主要是 AUC。
從實驗數據中可以看到,我們這個網絡結構設計之后,在 AUC 上有一定的提升。其中多視角的網絡提升比較明顯,其次是增益網絡,然后是異構圖網絡的結構。
我們也在線上去撈了一些 Case,可以學習到用戶的一些場景側的東西。比如天氣信息或長短圖等場景。
我們也在線上做了一些實驗,相比較于 Base2 隨機模型,提升了 10%,相比較于剛剛提到的廣告創意 HPM 模型,提升了 5%。
五、總結與展望
在這個工作當中,主要有兩方面創新:
事件感知的圖提取器:當前業內對于事件感知較少去考慮,尤其是在創意推薦這個模塊,我們的工作是比較創新的。通過將一些跨場景的信息,比如用戶對某些險種、某些圖文的偏好,或者是對于事件在跨場景之間的遷移。同時將這個事件作為一個影響節點,以圖的形式將用戶和創意進行關系建模。
自適應聚類增益網絡:相比較于傳統的排序問題,創意推薦是一個 Top1 的問題,面臨著一些因果推斷中遇到的反事實的現象。我們通過群體增益學習,也能比較好的緩解。
六、問答環節
Q1:如何做到事件理解和場景理解?
A1:事件理解這塊主要是跟運營進行了合作。我們會在數據當中去挖掘一些,事件它其實有時候是一些不可預知的。可預知的話可以被沉淀成一個標簽體系,那不可預知的話就需要我們去做一些異常檢測去挖掘。
場景理解,比如在搜索場景是可以通過 Query 里面的一些意圖去分析到用戶這次想要去買什么,但是在保險推薦中很難在上下文信息當中獲取到用戶到底想要買什么保險。因此場景理解更多的是通過推理,首先是一個數據分析洞察,然后再通過一些特征,上面我們可以看到哪些場景之下對用戶購買保險或者用戶購買創意有一個轉化效果,之后再融合到標簽體系當中,主要是在標簽打標這邊去做一些事情。
Q2:創意文案是先做了什么形式的 Embedding?
A2:主要是以推薦的這種形式去做的,多模態在這個工作當中沒有體現,我們在別的工作當中有一些工作。Embedding 剛剛也提到了主要是比如說一些 ID 類表征,或者是一些統計的表征,然后這些表征都會在這個圖網絡里面,最后去進行一個圖節點的 Embedding。圖節點 Embedding 的一個好處是可以將比如說某一類用戶對一些創意文案他是有敏感的,那用戶和創意文案之間,可能有一個相似的事情。
Q3:異構圖網絡中有對邊的特殊處理嗎?是否區分了不同類型的邊?學習過程中是否涉及對邊的表征學習和處理?
A3:關于邊,我們主要是去做了一個類似于條件轉化概率的處理。比如一個學生節點在天氣惡劣情況之下的轉化率可能會高一點。有些情況下會去做邊的裁剪操作。邊的表征學習沒有涉及到,這塊主要是在節點的學習處理。
Q4:事件文案的時效性如何?
A4:事件文案還是偏人工。因為今年在保險行業發生了比較多的事件,我們也會去看一下在每個事件之下,有多久的影響周期。大概的周期會是在一個星期到兩個星期左右,所以這塊的時間周期也會控制在這個范圍之內。
關于文案的時效性,我們去將文案去做一個強規則綁定。比如前段時間剛剛過去的中秋,如果我們有中秋文案的話,那這個文案只會在中秋的這段時間才會生效。比如你的出發時間在中秋的這個時間段,或者是你購買的時間是中秋這個時間段,才會被召回出來,其他時間肯定不會召回出來。
今天的分享就到這里,謝謝大家。