粗排/精排的個性化多任務學習模型,能預估20多個不同的預估值,如點擊率、有效播放率、播放時長、點贊率、關(guān)注率等,那如何用它來排序呢?從多任務學習到多目標排序,中間有一個過渡,即如何把這些預估值融合成一個單一的排序分,最后實現(xiàn)多目標精排。這也就引入了本文要介紹的正題:多目標融合(multi-task
帕累托最優(yōu)指的是這樣一種社會狀態(tài):當且僅當不減少其他人的效用就無法增加任何一個人的效用時,這種社會狀態(tài)就稱之為帕累托最優(yōu)。
在介紹多目標融合模塊之前,我們先來回顧一下推薦系統(tǒng)的基礎架構(gòu),以及多目標融合模塊在推薦系統(tǒng)中所處的基本位置。一種在各大廠(如快手 [1] 、美團 [2] 、阿里飛豬 [3] 等)中常見的“多層漏斗型”推薦系統(tǒng)架構(gòu)如下:
上述過程中,召回、粗排、精排+多目標融合、序列/多樣性重排、異構(gòu)混排是在服務端進行(其中異構(gòu)混排亦有放在移動端的 [4] ),端上重排 [4] 是在移動端進行。下面大致介紹一下這些步驟的作用:
不同于學術(shù)界只考慮點擊ratings預估的做法(即將推薦系統(tǒng)建模為簡單的二分類問題,然后離線評估算單個AUC或者HR/MRR啥的),推薦系統(tǒng)的優(yōu)化目標在工業(yè)界的實踐中常常是有多個的(且大多為線上指標),尤其是短視頻推薦場景。以短視頻推薦場景為例,在推薦系統(tǒng)的排序建模過程中,我們需要提升用戶的使用時長/正向反饋,減少負向反饋,從而提高用戶的留存。短視頻推薦場景中的用戶反饋可分為四類:
我們的目標是提高正向反饋、減少負向反饋,提高用戶體驗。然而,我們之前說過,粗排/精排的個性化多任務學習模型,能預估20多個不同的預估值,如點擊率、有效播放率、播放時長、點贊率、關(guān)注率等,那如何用它來排序呢?從多任務學習到多目標排序,中間有一個過渡,即如何把這些預估值融合成一個單一的排序分,最后實現(xiàn)多目標精排。這也就引入了本文要介紹的正題: 多目標融合(multi-task fusion, MTF) 。
如上圖所示,多目標融合模型在精排MTL模型輸出多個預估分數(shù)(對應上述各種用戶的反饋)之后,對多個預估分數(shù)進行融合,隨后根據(jù)融合的打分進行精排,并輸入到后續(xù)的重排模塊。
最簡單的多目標融合方式就是手工融合,一般包括 線性加法 、 指數(shù)乘法 兩種:
線性加法
線性加法的融合公式如下:
這里 \(\text{score}_i\) 為精排的多任務模型對第 \(i\) 項目標的預估分數(shù),包括觀看動作、喜歡、觀看時間等目標的預估分數(shù)。
線性加法還有許多變種,比如采用加權(quán)Logloss:
線性加法的優(yōu)點在于其目標權(quán)重就指示了目標在融合公式中的重要度,直觀上哪個目標更重要我們就將哪個目標的權(quán)重調(diào)大。當然其缺點也非常明顯,這個權(quán)重系數(shù)對于所有類型的目標都是一視同仁的。事實上對于點贊這種稀疏目標,理論上應該讓預估分數(shù)高的權(quán)重更高(活躍的用戶權(quán)重更高),預估分數(shù)低的權(quán)重更低(不活躍用戶的權(quán)重更低),但上述形式的目標顯然做不到。
指數(shù)乘法
和線性加法基本一樣,唯一的區(qū)別是把累加換成了累乘。其優(yōu)點和缺點正好和線性加法相反:其優(yōu)點是可以做到增強高的預估分數(shù)、抑制低的預估分數(shù);其缺點是不能調(diào)大單一目標的指數(shù)權(quán)重,因為如果簡單地給單一目標增大指數(shù)那就相當于對所有目標都生效了(等價于融合公式整體乘一個系數(shù))。
愛奇藝在多目標融合的初期實踐中采用的就是加法融合的方式,但這樣產(chǎn)出的排序得分對各子目標的得分值域很敏感(也即容易被某些顯著偏大的目標所主導,比如點贊這種目標就可能存在一些明顯偏大的異常值),因此他們增加了 \(\alpha\) 和 \(\beta\) 兩個超參數(shù),來聯(lián)合調(diào)節(jié)各子目標得分的靈敏度與提升比例,也就得到了如下所示的 帶權(quán)指數(shù)加法 [5][6] 的公式形式:
這里 \(\text{factor}\) 為超參數(shù),表示組合權(quán)重; \(\beta\) 為超參數(shù),用于提升比例與非線性處理; \(\alpha_i\) 亦為超參數(shù),表示靈敏度。
愛奇藝在工程實踐中發(fā)現(xiàn),在業(yè)務目標較少時,通過加法融合公式新增目標可以短期內(nèi)快速獲得收益。但隨著目標逐漸增多時,加法融合公式的融合能力會逐漸受限。這是因為對加法融合公式而言,新增目標后,各子目標的重要性影響會減弱。此外,哪怕是已經(jīng)增加了超參數(shù) \(\alpha\) 和 \(\beta\) 的情況下,加法融合公式仍然容易被最大的目標主導。不過,乘法融合公式就不存在這些問題。因此,在此基礎上,愛奇藝又把多目標融合公式調(diào)整為了乘法:
帶權(quán)指數(shù)乘法
這里公式參數(shù)含義與上述公式一致,只是把累加換成了累乘。
手工融合的優(yōu)點在于其目標權(quán)重就指示了目標在融合公式中的重要度,比較直觀且可解釋性強。當然其缺點也非常明顯,這個權(quán)重系數(shù)對于所有用戶都是一樣的,缺少個性化。此外,這里無論對預估分數(shù)使用加法還是乘法的方式來融合,模型serving時的超參數(shù)均是通過 網(wǎng)格搜索(grid search) [7] 來得到離線最優(yōu)的幾組解。而我們知道,推薦系統(tǒng)的實際表現(xiàn)還需要線上A/B實驗才能確定的,這導致該方法效率較低。而且隨著模型的迭代與樣本分布的變化,最優(yōu)參數(shù)也在變化。最后,手工融合的缺點還體現(xiàn)于維護成本高(因為常常要進行多次的手工調(diào)整)。
那么,我們是否可以用模型來學習超參數(shù)呢?這就涉及到了 融合超參數(shù)的學習方法 [8] 了,也即用一個模型來學習各預估分數(shù)的組合權(quán)重。
對于融合超參數(shù)的學習方法而而言,最容易想到的應該是離線方法,也就是用一個離線模型來學習各預估分數(shù)的組合權(quán)重。這種方法的優(yōu)點和缺點都很明顯,分別如下所示:
優(yōu)點 離線方法是off-policy的方法,數(shù)據(jù)利用率高(100%樣本都可以被使用),且模型的自由度和復雜度較高,可以容納item embedding并使用稀疏特征,可以訓練千億規(guī)模的參數(shù)。
缺點 優(yōu)化的離線AUC無法直接反映業(yè)務指標。因為這個過程做了很多簡化,推薦系統(tǒng)不是精排之后就直接對接用戶了,中間還有重排(比如多樣性)等的影響,甚至還有一些商業(yè)化/運營流量的混排融合,所以該方法難以考慮到線上復雜多模塊間的完整影響。此外,線下訓練數(shù)據(jù)和線上數(shù)據(jù)也存在分布不一致的問題。
考慮到離線超參數(shù)學習方法具有的上述的缺點,在實際工業(yè)界的應用中,我們常常使用在線的超參數(shù)學習方法。在線方法的工作流程如下圖所示:
可以看到,在線超參數(shù)學習算法基于 探索與利用 機制,會在baseline附近探索生成 \(N\) 組參數(shù),傳給推薦系統(tǒng)后獲得這 \(N\) 組參數(shù)對應的展現(xiàn)給用戶的差異化排序結(jié)果,從而獲得不同用戶的反饋。之后再收集這些反饋日志并做收益(reward)統(tǒng)計,最終送給BayesOpt/ES/CEM等調(diào)參算法產(chǎn)生下一組更好的參數(shù)。經(jīng)過不停迭代,參數(shù)就會向一個多目標協(xié)調(diào)最優(yōu)的方向前進。
在線的超參數(shù)學習方法具有以下優(yōu)缺點:
優(yōu)點 直接優(yōu)化線上指標,靈活性高且反饋迅速,并且可以把推薦系統(tǒng)當做一個黑盒,無需關(guān)心內(nèi)部細節(jié)。且可以做多場景聯(lián)合優(yōu)化,不限于ranking,在召回等場景也可以用。
缺點 需要在線上劃分出一部分探索流量(大約5%),從而影響少部分用戶體驗,且由于數(shù)據(jù)稀疏,受噪聲影響較大,尤其是一些稀疏的動作標簽,比如分享、下載、收藏等;能容納的參數(shù)量較小,一般幾十到數(shù)百,相對離線學習的參數(shù)規(guī)模小很多。
常見的在線超參數(shù)學習方法包括 貝葉斯優(yōu)化方法(Bayesian optimization) [9] 、 進化策略算法(evolutionary strategy) [10] 、 CMA-ES自適應進化算法 [11] 等,下面我們主要介紹貝葉斯優(yōu)化方法和進化學習算法。
貝葉斯優(yōu)化算法充分考慮了真實的線上收益,通過收集多組小流量經(jīng)驗,基于小流量實驗的評估結(jié)果來進行參數(shù)優(yōu)化。
貝葉斯優(yōu)化的基本思想在于由于真實優(yōu)化函數(shù)計算量太大或是個黑盒(比如推薦場景中用戶的真實反饋收益),我們需要用一個 代理函數(shù)(surrogate function) 來近似它。而在代理函數(shù)周圍可能是最小值點的附近,或者是在還沒有采樣過的區(qū)域采樣新的點之后,我們就可以更新代理函數(shù),使之不斷逼近目標函數(shù)。我們常采用 高斯過程(Gaussian process, GP) 來建模概率代理函數(shù)的分布,然后再設計一個 采集函數(shù)(acquisition function) ,基于高斯過程回歸的結(jié)果來計算下一組可能更優(yōu)的采樣點(使采集函數(shù)最大化)。注意:這里之所以使采集函數(shù)最大化,而不是直接使代理函數(shù)最大化,因為直接優(yōu)化代理函數(shù)過于目光短淺了,因為我們還要考慮不確定性。事實上,這也是一種探索(exploration)機制的體現(xiàn)。貝葉斯優(yōu)化與網(wǎng)格搜索的不同之處在于,它在嘗試新的超參數(shù)組合時會考慮之前的評估結(jié)果(即利用了證據(jù),即evidence的信息來估計代理函數(shù)的后驗分布),并基于代理函數(shù)來求解采集函數(shù)的極值,從而確定下一個采樣點。
貝葉斯優(yōu)化包含兩個關(guān)鍵組成部分:
首先,算法會初始化一個代理函數(shù)的先驗分布,然后開始迭代。算法的第 \(t\) 步迭代的偽代碼描述如下:
算法流程示意圖如下:
注意,在實際的推薦系統(tǒng)場景中,我們用于定義高斯過程的代理函數(shù)就是我們之前所定義的融合冪乘函數(shù),即 \(\text{score} = \prod_{i=1}^n \space \text{score}_i^{w_i}\) 。具體在短視頻推薦場景中, \(\text{score}_i\) 可能為用戶time、like、follow等行為的預估分數(shù)。用戶的在線反饋收益 \(r\) 可以設定為單次屏幕刷新中的點贊率、平均視頻播放時長等,樣本集合 \(\mathcal{D}=\{(x, y)\}\) ,這里 \(x =(w_1, w_2, \cdots, w_n), y=r\) 。
前面講述的基于貝葉斯優(yōu)化的多目標融合算法雖然解決了手工融合的許多問題,但模型的參數(shù)(即多目標融合參數(shù))仍然是單一的,不夠個性化,亦不具備動態(tài)環(huán)境與上下游自適應性。
由于現(xiàn)在多目標融合參數(shù)量非常大(有的甚至達到了百級別),我們需要一種更高效、更自動化的方式來優(yōu)化超參數(shù),從而能夠動態(tài)調(diào)整不同人群的單目標優(yōu)化參數(shù)。因此,人們提出使用進化策略算法,以線上實時的真實收益為指引,對模型的參數(shù)進行優(yōu)化。
注意,進化學習與強化學習的優(yōu)化目標都是預期的reward,但強化學習是將噪聲加入動作空間并使用反向傳播來計算參數(shù)更新,而進化策略則是直接向參數(shù)空間注入噪聲。
如上圖所示,使用進化學習算法,線上對模型參數(shù)進行擾動,根據(jù)擾動后的結(jié)果來計算reward(常設置為人均或單刷的停留時長/播放時長/深度消費等關(guān)鍵業(yè)務指標),并離線進行小時級模型訓練。觀察到較優(yōu)模型參數(shù)組合后,則更新線上的baseline模型參數(shù)。
進化算法第 \(t\) 輪模型迭代偽代碼如下:
在工程實踐中,該方法常常面臨 如何權(quán)衡reward 的問題。以短視頻推薦場景為例,我們常常關(guān)注單次屏幕刷新中的平均播放時長、產(chǎn)生交互行為(喜歡、關(guān)注等)的比率,那么我們就有以下兩種結(jié)合方式:
在實踐中,通常reward \((2)\) 的穩(wěn)定性更高。
我們進一步分析,這是一個多峰優(yōu)化問題,很容易造成不同業(yè)務指標之間的此消彼長(也就是所謂的“蹺蹺板效應”),從而陷入局部最優(yōu),導致效果不盡如人意。
當發(fā)生蹺蹺板現(xiàn)象時,我們可以將部分reward進行進一步拆分,比如將interation_rate拆分為like_rate和follow_rate兩個不同的指標:
可見,在reward的優(yōu)化中,我們一直在規(guī)避不同重要指標之間的置換現(xiàn)象,及時調(diào)整reward的形式,不斷追求理想情況(也就是Pareto最優(yōu)狀態(tài))。
上述的這種進化策略算法我們一般稱為自然進化策略(natual evolutionary strategy, NES)算法。除了上述這種NES算法之外,愛奇藝還提出可以采用啟發(fā)式的 粒子群優(yōu)化(particle swarm optimization, PSO) [5][6] 算法來離線搜索融合參數(shù)。該算法本質(zhì)上也屬于一種進化策略算法(不過不同于NES算法的在線特性,PSO算法是離線的),旨在從個體構(gòu)成的群體中采樣并讓其中成功的個體來引導未來后代的分布。
PSO算法通過初始化一群隨機的粒子,啟發(fā)式地進行多次迭代來求出最優(yōu)解。每一次迭代中,粒子通過個體極值(該粒子所經(jīng)過的歷史最優(yōu)解)和群體極值(種群找到的最優(yōu)解)來更新各自的位置。這樣,最終所有的粒子會兼顧個體的歷史最優(yōu)解和群體所共享的全局最優(yōu)解直至收斂。
最后,上面我們介紹的都是樸素的進化算法,缺乏進化的穩(wěn)定性和自動調(diào)節(jié)學習率的特性。所以,人們又提出了利用協(xié)方差矩陣自適應策略(covariance matrix adaptation evolutionary strategies, CMA-ES)進一步提升多目標融合模型的能力。感興趣的讀者可以參見文章 《新聞資訊混排場景下的多目標融合實戰(zhàn)(四)》 [11] 。
本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)