百度視頻推薦跨域多目標預估與融合的實踐和思考
一、百度視頻背景介紹
1、統一產品形態
一方面,百度 APP 的所有視頻場景已經升級成統一的沉浸式(上下滑)交互形態;另一方面,基于百度統一的大模型,我們打通了所有場景的數據和推薦體驗。交互和數據的統一可以更好地實現生態共贏,促進百度視頻的長遠發展。
為了更好地培養用戶對視頻的消費習慣,我們還打造了一個視頻消費的一級入口(底部導航欄入口)。大家如果有興趣可以去下載百度 APP,有好的建議和 badcase 隨時歡迎反饋給我們。
2、搜+推雙引擎滿足用戶需求
值得一提的是,百度是做搜索起家,搜索的使用率極高,在推薦場景中需要更好地使用搜索的數據,通過”搜+推”雙引擎來滿足用戶的需求。搜索主要是“人找內容”,用戶會明確地輸入自己的需求,而推薦是“內容找人”。將搜索的信號和推薦的信號進行跨域整合,做到更好的推搜融合,這也是百度的優勢之一。
二、推薦系統概述
1、推薦系統解決的問題
考慮到不少聽眾非推薦背景,簡單介紹下推薦要解決的問題。推薦平臺有三個player:
- 用戶:在這里探索世界、發現新的感知。
- 創作者:平臺推薦的基礎,為平臺提供內容供給;平臺為其提供廣闊的空間,激發他們無限的靈感和創作。
- 廣告主:提供平臺生存下去的資金支持,大部分平臺都是以廣告為生。
推薦平臺希望實現生產、消費和收入的良性循環,推薦系統作為平臺的核心部件,主要解決兩方面的問題:
- 優勝劣汰的內容選擇機制(B 端):優質的內容如何獲得更多的分發,留住優質的創作者。
- 極致的用戶消費體驗(C 端):只有用戶訴求得到滿足了,才能促進規模上的持續提升。
這是推薦系統的兩個使命,我們后面設計目標的時候也會綜合考慮這兩個方面。
2、推薦系統概覽
推薦系統的流程大致如下:審核后的資源會先推送到存儲 meta 信息的統一正排庫;推薦系統收到請求后,先通過圖引擎、多目標召回等,召回相關資源;召回之后會經過兩輪排序,分別為粗排和精排,再經過多目標的融合模型,選出一些與用戶強相關的內容;最后通過多樣性感知、序列建模、流量分配機制等策略,生成一個視頻列表,下發到用戶的手機。
接下來的分享將主要集中在精排的目標設計和模型的融合上。
三、多目標的設計和建模
首先介紹視頻推薦的多目標設計。
1、目標設計的思考
先請大家思考一下視頻沉浸式的場景下,如何設計推薦系統的目標呢?
傳統的推薦系統中,通過點擊內容或者視頻進行消費,用戶用點擊行為明確表達了對這條資源的喜歡。因此在傳統的推薦場景下,點擊是非常重要的信號,是一個明確且簡單的反饋。但是在沉浸式的場景下缺乏明確的反饋,用戶的喜歡通過“隱藏”的行為表現出來,消費時長成為沉浸式推薦場景非常重要的信號。
除了上述消費時長以外,還需要考慮用戶在系統中主動留下的行為,比如關注、評論、分享、點贊。但這類行為數據相比播放數據是非常稀疏的,可能只有千分之一這個量級。
除了這些交互信號以外,在百度 APP 的推薦里面還有一部分很重要的數據就是搜索信號,在百度 70% 的用戶既會消費推薦信息流,又會用搜索,因此推薦系統也需要刻畫用戶搜索域的滿意度信號。
除了 C 端讓用戶更滿意的消費信號以外,B 端的創作者則需要一套優勝劣汰的機制,實現劣質作者的篩選,激發優質作者的持續創作潛力,才能實現生產和消費的良性循環。
2、目標設計考慮的維度
從推薦系統角度看,用戶就是樣本標注員,用戶有一些明確的正向表達,比如播放、點贊、收藏、評論等行為;還有一些明確的負向表達,比如 Dislike、負向評論、舉報等等。除了明確表達,用戶還會有一些隱式的表達,比如通過完播、播放時長、作者頁消費、閱讀相關推薦等表達出的喜歡,或是通過短播、快速跳出等表達出的不喜歡。因此在設計目標的時候,要全方面地思考,平衡明確的信號和隱式的信號,避免設計出一個“偏科”的推薦系統。
3、綜合滿意度建模
除了上述基礎目標,我們還會設計一些高階的目標,不再是簡單地使用用戶的反饋。舉個例子,如上圖右側所示,我們上線了基于用戶滿意度反饋的模型。第一階段,通過完播、時長這種稠密的信號,利用簡單的規則或者模型去擬合用戶的滿意反饋,得到一個比較稠密的用戶滿意度 label。第二階段,基于這個 label 建一個滿意度模型,利用推搜全域大模型產生的 Embedding、文心底層 Embedding,以及用戶畫像和行為序列特征建模,以評估推薦域相對于搜索域的滿意度增益。如果某個興趣點用戶在搜索里消費過了,推薦系統可以基于該滿意度模型推薦出更優質的內容,這樣就可以使搜推融合更加平滑,將搜索的興趣更好地遷移到 Feed。
4、長期價值建模(Long Term Value)
前文介紹的是如何預估當前內容的播放時長和互動,將用戶的歷史消費行為作為樣本或者特征,預測即將推出的內容是正反饋還是負反饋,以及是否會有互動和消費的滿意情況。
進一步思考,用戶未來消費的內容與當前消費的這條內容是否存在關系?比如用戶當前看的是郭德綱的視頻,如果接下來第 N 天還消費了于謙的視頻,于謙視頻是否是由郭德綱視頻“激發”的呢?未來興趣點的消費是否可以認為是當前興趣點的“延續”呢?結果是肯定的。因此我們在系統中引入了 LTV 的體系,將未來長期價值的內容歸因到當前的視頻推薦上來。
假設 V0 是當前視頻的價值,V1,V2,… Vn 是用戶未來消費的視頻,假設 V2 和 Vn 是滿意的消費,并且是 V0 的一個延續,就可以將其歸因到V0 。
歸因方式有多種,根據百度 Feed 的業務場景,歸因包括以下三大塊:
- 功能的歸因:如通過相關推薦看了掛載的資源,那么這部分資源消費信號可以歸因到 V0 上來。
- 召回關聯的歸因:如召回階段是通過 itemCF 等隱式召回的。
- 相關性關聯:如通過多模態 embedding 或者推薦大模型的 embedding 可以衡量資源之間的相關性,比如 Vn 和 V0 有比較高的相關性得分,就可以把 Vn 的價值歸因到 V0 上來。
當然這個歸因是有權重的,我們通過距離 V0 的時間間隔,和 V0 的相關性等因子來調節用戶未來消費視頻的歸因權重,從而得到當前視頻 V0 的長期價值。有了長期價值目標后,學習就比較簡單了,首先是目標的歸一化,然后直接建模即可。
簡單總結一下,基于對業務現狀的抽象和梳理,我們設計推薦系統目標時候會從下面三個方向入手:
- 多目標,首先進行基礎物理目標建模,接下來是一些高階目標的建模,刻畫全場景的滿意度,同時還需要對生態進行調控。
- 刻畫未來的價值。
- 除了資源維度還可以考慮其他維度,例如作者維度的建模。
總之,推薦系統的目標要從多角度、各個發展方向綜合地去考慮。
5、百度 Feed 模型技術變革聯動體驗進化
百度推薦場景發展到現在的三大場景:
- 「推薦」信息流:已經存在了很多年。
- 『發現』場景:相比之下,主 Feed 偏信息資訊,『發現』則更輕松活潑,貼近生活。
- 「沉浸式」場景:純視頻形態的消費流。
隨著百度產品的演變,排序目標的預估也是逐步演進的。從一開始的單域的主目標到多域多目標,再到現在綜合建模的全域綜合多目標,把多域的樣本整合到一起,充分共享信息。下面就來介紹全域的綜合建模。
6、跨域多目標建模
首先來看下業界都做了哪些工作,無論是 MMoE、PLE,還是阿里在做的 STAR 網絡、PEPNet 等這些結構,還有谷歌、騰訊等公司都在不遺余力地根據自己的業務設計各種各樣的網絡結構,希望在異構場景下共享更多有用的信息。其主要解兩大問題:
- 跨域信號的遷移問題,如何在兩個不同的域之間更好地遷移,實現跨域信息共享。
- 多目標之間負遷移的問題,即多目標的蹺蹺板效應。
同樣百度推薦系統也面臨這兩個問題。
百度的場景下子域目標眾多,且各目標之間的相關性較低,這容易導致多目標之間發生負遷移。為了解決這問題,需要分析不同目標間的 PNR,并找出它們之間的相關性差異。即異構場景下如何刻畫用戶信息,以及如何實現異構信息的遷移,是模型結構需要去解決的問題。
結合百度的業務,我們利用 Gating 結構設計了跨域分層多目標網絡結構,主要分三層:首先是個性化 common 網絡,作為底座;第二層是跨域的信息提取 GCG 網絡;最后一層是子域的多目標網絡,這樣就可以在共享信息的同時,對每一個域都有一個多目標的預估。
這套方案與單域多目標相比有著顯著提升,初次上線 AUC 約提升 3-9 個千分。如上圖右下角所示,獲取用戶特征在多個域的 embedding,做了一個 TSNE 降維后,除了搜 C 和二跳這兩個比較接近以外,其它兩個場景的區分還是比較明顯的,說明模型可以學到場景間的差異。搜 C 和二跳兩個場景區別不大也是合理的,都是視頻場景,用戶的交互和興趣也都差別不大。
百度業務場景有 40 多個物理目標,還有 4 個大的子域,6 種形態,包括視頻、圖文、動態、小程序等。我們希望模型在眾多復雜業務中都能有較好的表現。簡單介紹一下模型結構。第一層是 common 網絡,作為分域的底座,篩選各個場景中多目標的滿意樣本,通過 gate 網絡實現個性化 embedding 映射。第二層是域間信息的提取,將域內獨有的特征和個性化共享特征通過 CGC 網絡實現。兩者共同構建了跨域的信息提取,其好處是既保留了域內的信息豐富度,同時又提取出了異構場景的共享信息。第三層是子域的多目標建模。這塊我們還有對應的論文在發表中,對細節感興趣的朋友可以看論文。
四、多目標融合
百度多目標融合的演進過程與業界也較為接近,首先是先驗知識融合,簡單直接,但是比較耗費人力。接著我們升級到了 LTR,效果明顯,但弊端是業務變化的時候需要頻繁調整,同時偏序關系也會隨著業務和用戶分層的變化而變化。之后我們也使用過多目標融合價值模型,采用序列最優的方法,短期使用后,就升級到了正在使用的方法—ES(Evolution Strategy)進化學習。
要使用 ES,首先要定義一個 Reward,即北極星指標。百度的 Reward 是 Session 的深度(時長+步長)和互動,時長和步長對應的業務指標是時長和視頻播放量,這兩個指標反映的是 LT,也就是用戶的留存。除此以外,還有互動信息,代表了用戶在 APP 中資產的沉淀,比如關注作者的行為,其實是期望這個作者再有更新后能夠找到。無論是提升消費條數還是互動個數,都是希望用戶更長遠地使用這個 APP。
我們的第一版是一個簡單的啟發式的模型,當前線上的 ES 會做更高階的計算,例如引入分場景、分人群等信息。