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