異構混排在vivo互聯網的技術實踐
混排層負責將多個異構隊列的結果如廣告、游戲、自然量等進行融合,需要在上下游和業務多重限制下取得最優解,相對復雜和難以控制。本文主要從業務、模型等角度介紹了vivo廣告策略團隊在信息流和應用商店混排上的一些探索和思考。
一、背景介紹
首先介紹一下什么是混排。所謂混排,如圖所示就是需要在保障用戶體驗前提下,通過對不同隊列中的異構內容進行合理混合,實現收益最優,更好的服務廣告主和用戶。
混排的核心挑戰體現在:
- 不同隊列item建模目標不同,難以直接對比。比如有的隊列按照ctr建模,有的隊列按照ecpm建模,無法直接對比。
- 候選隊列常受到大量產品規則約束,常見的有比如間隔位的約束、保量、首位等約束。
- 由于候選隊列由上游各方精排算法產生,由于業務限制混排時往往不能修改候選隊列的序,也就是需要實現保序混排。
本次介紹的主要是vivo信息流和商店場景的混排實踐。
vivo的信息流場景,包括像瀏覽器、i視頻、負一屏等,他的特點是場景眾多,下拉深度較高,廣告形式多樣,用戶個性化需求較強。而對于商店場景,是一個整體偏垂直的場景,
它涉及到廣告、游戲、自然量多方均衡,需要在保量和用戶體驗等嚴格要求下,取得綜合最優解。后續我們將對這2個場景的特點展開逐一介紹。
二、信息流混排實踐
2.1 信息流混排介紹
我們開始介紹下信息流場景的混排實踐。
對于信息流場景來說,如下圖所示,混排側所主要解決的問題是內容隊列與廣告隊列的混排問題。也就是如何在平衡好用戶體驗和廣告主利益的情況下,將廣告插入到合適的位置。
對于傳統信息流媒體來說早期的主要混排方式可能主要是以固定位模板為主。也就是運營人工定下廣告與內容的插入關系,簡單直接。
但也帶來了三個明顯的問題:
- 用戶方來說,廣告在偏好場景與非偏好場景同等概率出現,有損用戶體驗。
- 業務方的角度出發,流量未精準投放,業務服務效率低,廣告主體驗差。
- 平臺方,資源錯配導致平臺資源浪費。
2.2 業界方案調研
接下來介紹下業界常見的幾種解決方案。
以某職場社交平臺的方案為例。它將優化目標設定為在用戶體驗價值大于一定值的前提下最優化營收價值。對于待插入廣告,將用戶體驗貨幣化,與商業化價值加權衡量整體價值。
如果整體價值大于用戶體驗價值時投放廣告內容,否則投放產品內容。此外在投放時還會根據右圖所示考慮間隔等約束。
他的方法簡單直接,很多團隊采用類似的方案取得較好效果。但該方案只考慮單一item價值,未考慮item間相互影響,缺乏長期收益的考慮。
接下來介紹的是某小視頻的方案,他們采用強化學習的方法進行混排。該方案將信息流混排問題抽象為序列插入問題,將不同廣告對于不同槽位的插入情況抽象為不同action,通過強化學習進行選擇。在考慮獎勵設計時融合了廣告價值(如收入等)與用戶體驗價值(比如下滑與離開)。通過調節超參對兩者進行平衡。
但是該方案對工程依賴較高且論文中已離線測試為主,缺乏線上的分析。并且該模型只考慮單廣告插入,未考慮多廣告情況。
具體到vivo信息流場景的迭代,混排迭代包括固定位混排,Qlearning 混排和深度解空間型混排三個階段。
整體思路是希望在Qlearning階段通過簡單的強化學習方案累積樣本,快速探索收益。后續升級為深度學習方案。
2.3 Qlearning 混排
上面是強化學習的基本流程,強化學習最大的特點是在交互中學習。Agent在與環境的交互中根據獲得的獎勵或懲罰不斷的學習知識,更加適應環境。state,reward和action是強化學習中最為關鍵的三個要素,后續詳細展開。
vivo信息流的Qlearning混排機制有什么好處呢?首先它會考慮全頁面收益,并考慮長期收益,符合多刷場景訴求。此外Qlearning模型可以小步快跑,積累樣本同時,快速驗證效果。
當前整體系統架構,混排系統位于adx后,接收到內容隊列與廣告隊列后,通過Qlearning 模型下發調權系數,對廣告進行調權,疊加業務策略后,生成融合隊列。而用戶行為也會觸發Qlearning模型更新。
Qlearning模型運行原理如圖,首先初始化qtable,然后選擇一個action,根據action所得到的reward進行qtable的更新,而在損失函數既考慮短期收益也考慮長期收益。
在vivo的實踐中,在獎勵設計上,我們綜合考慮時長等用戶體驗指標與廣告價值,兩者進行平滑后,通過超參進行權衡。在動作設計上,一期采用數值型的方式,生成廣告調權系數,作用于廣告精排得分,與內容側進行混合,從而實現混排。
在狀態設計上包含用戶特征、上下文特征、內容側特征和廣告側特征四個部分。像統計特征和上下文特征等對Qlearning模型有較大影響。
在vivo信息流場景中,Qlearning混排取得了較好的效果,已經覆蓋絕大部分場景。
2.4 深度位置型混排
Qlearning混排存在一定的局限性:
- Qtable結構簡單,信息容量小。
- Qlearning模型可使用特征有限,難以對如行為序列等細致化建模。
- 當前Qlearning混排依賴于上游打分,上游打分波動,會引發效果震蕩。
為了解決Qlearning的問題,我們研發了深度位置型混排。在混排機制上由原本的數值型升級為直接生成位置的位置型混排,而在模型本身我們由Qlearning升級成了深度學習。
這帶來3個好處:
- 與上游打分解耦,大大提高混排穩定性
- 深度網絡,可容納信息量大
- 能夠考慮頁面間item相互作用
我們整體模型架構為業界主流類似雙塔dqn的模型架構,左塔主要傳入的一些state信息包括用戶屬性、行為等,右塔傳入action信息也就是解空間排列基礎信息。
值得一提的是我們會將上一刷的解作為特征融入到當前模型中。
新的解空間模型action空間更大,天花板更高。但稀疏action難以學習充分,易導致預估不準。為了解決這個問題,我們在線上增加小流量隨機實驗,提高稀疏動作命中率,豐富樣本多樣性。
序列特征作為模型最為重要的特征之一,也是強化學習模型刻畫state的重要特征之一,我們對序列做了一些優化。在序列attention模塊,為了解決用戶歷史興趣與待插入廣告的匹配程度,我們通過transformer刻畫用戶行為序列信息;之后通過待插入廣告與序列attention操作,刻畫匹配程度。此外在序列match模塊,我們引入先驗信息,產生強交叉特征,對attention進行補充;對于match權值通過CTR、是否命中、時間權重、TF-IDF等方式進行信息提取。
三、應用商店混排
3.1 商店混排介紹
接下來我們介紹應用商店混排模塊。
商店混排的核心問題是實現廣告隊列與游戲隊列的混排。而就像圖中所示廣告與游戲排序分定義方式不同,難以直接對比。此外聯運游戲回收周期長, LTV難以估準,即使全部按照ecpm排序也較難保證效果。
梳理下應用商店面臨的核心挑戰:
- 涉及業務方較多,需在滿足用戶體驗、廣告、游戲三方要求情況下實現綜合最優。
- 商店混排往往有保量等相關訴求,保量無法關聯到整體收益,追求整體收益勢必改變保量的結果,并產生相互沖突。如何在既滿足保量的情況下,又實現整體最優?
- 不同于信息流,商店為高成本消費場景,用戶行為稀疏。很多用戶很長時間內才會有一次下載行為。
- 游戲LTV預估是行業的難題,如何在混排側為游戲LTV提供一定的容錯空間?
回到vivo應用商店混排,整體迭代包含固定位混排、PID保量、帶約束混排、混排精細化分流4個階段。
3.2 PID保量
首先介紹PID的方案,PID最開始來源于自動化領域。初期為了相應業務側訴求,參考業界主流方案,通過對廣告和游戲進行保量,初步實現混排能力。但方案較為簡單,且PID難以關聯到收益目標,難以實現收益最優。
3.3 帶約束混排
保量和收益最大化存在一定程度的沖突,滿足保量約束下,如何實現業務綜合收益最優是最大難點。
vivo商店混排采取流量拆分微調的思路,在PID保量后接重排,綜合考慮用戶體驗、廣告收入、游戲價值三者的平衡點。針對重排與PID保量沖突,重排只對部分位置生效,使得在部分流量如首屏下能夠進行收益的探索,而又能滿足保量需求。
在重排層我們一開始考慮沿用信息流的混排方案,使用強化學習進行混排。但是存在2個問題:
- 重排只對首刷生效,缺乏常規強化學習的狀態轉移。
- 商店場景對比信息流場景涉及業務方較多,如何考慮用戶體驗、廣告收入、游戲價值三方的權衡 是一個更為復雜的問題。
為了適應商店場景的特點,我們做了一些適配和優化:
- 首先對于loss。有別于傳統強化學習,由于商店場景行為稀疏且只對首屏生效,缺乏狀態轉移,我們將gamma置為0,整體變為類似監督學習的狀態,提高系統穩定性。
- 在reward的設計上我們綜合考慮了整個頁面游戲收入、廣告收入和用戶體驗等多方因素實現收益最優。
- 在action設計上一期仍然使用數值型方案。
該版本在vivo商店混排取得較好效果,已經全量。
3.4 混排精細化分流
在帶約束重排基礎上,我們思考能否進一步進行優化。
- 首先重排候選集由PID保量產生,非全局最優。
- 其次候選集為全廣告或全游戲時,當前重排無生效空間(這塊線上占比過半)。
那么如何滿足保量下更進一步實現收益最優?
我們開始嘗試混排精細化分流,對于部分分支去除保量限制,進行約束放開。使得PID聚焦于滿足保量等業務訴求,模型聚焦探索更優空間。
當前版本,當一個請求到來時,我們會根據分流模塊判斷是否為高質量流量,對于高質量流量通過混排模型探索收益,對于低質量流量采用PID進行保量,并將最終結果融合。這樣重排策略能在部分流量對全請求生效,整體的保量也在正常范圍。
目前我們當前嘗試過的分流方式有商業價值分流、游戲偏好分流、廣告位分流、體驗機制分流等。
具體到重排模型上,我們也做了一些迭代。當前重排層,數值型模型存在一些問題:
- 數值型混排依賴于上游打分,上游偏差變化影響混排模型準確性。
- 未考慮上文信息和位置信息等listwise因素的影響。
為了解決問題:
- 我們采用采用生成式模型替代數值型模型,直接生成混排結果,與上游打分解耦。
- 借鑒context-dnn思想,我們采用context-aware方式,在生成方式和label設計中融入上下文影響。
該模型在實驗流量上收益對比原模型更為明顯,且不受上游打分影響,更為穩定。
四、未來展望
關于未來的展望,包括4個方面:
- 模型優化:深度優化混排,更精細化建模,融入更多實時反饋信號,提升模型效果,更為個性化建模。
- 跨場景聯動:嘗試跨場景聯動混排等方案,實現最優兌換比,與全場景最優。
- 統一范式:各場景統一建立序列生成和序列評估的統一混排范式。
- 端上混排:嘗試端上混排,更為及時捕獲用戶興趣,提升用戶體驗。
異構混排在vivo互聯網的探索過程中遇到了較多的挑戰,也取得了一定的收益。
歡迎感興趣的同學留言交流討論。