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