您的位置:首頁 > 軟件教程 > 教程 > 推薦系統(tǒng):精排多目標融合與超參數(shù)學習方法

推薦系統(tǒng):精排多目標融合與超參數(shù)學習方法

來源:好特整理 | 時間:2024-05-18 18:47:31 | 閱讀:77 |  標簽: 系 超 數(shù)學   | 分享到:

粗排/精排的個性化多任務學習模型,能預估20多個不同的預估值,如點擊率、有效播放率、播放時長、點贊率、關(guān)注率等,那如何用它來排序呢?從多任務學習到多目標排序,中間有一個過渡,即如何把這些預估值融合成一個單一的排序分,最后實現(xiàn)多目標精排。這也就引入了本文要介紹的正題:多目標融合(multi-task

帕累托最優(yōu)指的是這樣一種社會狀態(tài):當且僅當不減少其他人的效用就無法增加任何一個人的效用時,這種社會狀態(tài)就稱之為帕累托最優(yōu)。

1 導引

1.1 推薦系統(tǒng)基本架構(gòu)

在介紹多目標融合模塊之前,我們先來回顧一下推薦系統(tǒng)的基礎架構(gòu),以及多目標融合模塊在推薦系統(tǒng)中所處的基本位置。一種在各大廠(如快手 [1] 、美團 [2] 、阿里飛豬 [3] 等)中常見的“多層漏斗型”推薦系統(tǒng)架構(gòu)如下:

推薦系統(tǒng):精排多目標融合與超參數(shù)學習方法

上述過程中,召回、粗排、精排+多目標融合、序列/多樣性重排、異構(gòu)混排是在服務端進行(其中異構(gòu)混排亦有放在移動端的 [4] ),端上重排 [4] 是在移動端進行。下面大致介紹一下這些步驟的作用:

  • 召回 召回是推薦系統(tǒng)的第一步,負責快速從大量的物品中篩選出一部分候選物品,將樣本數(shù)量由千萬/百萬級降到1萬左右。召回并不需要十分準確,但需要不漏掉用戶可能喜歡的物品。召回模塊通常采用多路召回,且受限于龐大的樣本量,一般會使用一些簡化的特征或模型。經(jīng)典召回模型包括協(xié)同過濾、FM、DSSM雙塔模型等,針對序列數(shù)據(jù)和圖數(shù)據(jù),亦有序列模型SASRec和圖模型GraphSAGE等。召回是源頭,在某種意義上決定著整個推薦系統(tǒng)表現(xiàn)的天花板。
  • 粗排 粗排可以理解為精排前的一輪過濾機制,減輕精排的壓力,將樣本數(shù)量從從1萬左右降到1千/幾百。設置粗排模塊的原因是有時候召回結(jié)果還是太多,精排層的速度跟不上。粗排要同時兼顧精準性和低延遲,其模型一般也不會太復雜。最后,由于粗排處于召回和精排之間,因此粗排需要獲取和利用更多后續(xù)鏈路的信息來提升效果,粗排和精排的聯(lián)動也成為實際工程中所需要面臨的挑戰(zhàn)。
  • 精排( + 多目標融合) 精排負責獲取粗排的結(jié)果,并對候選集進行打分和排序。精排需要在最大時延允許的情況下,保證打分的精確性,是整個系統(tǒng)中至關(guān)重要的一個模塊,也是最復雜、研究最多的一個模塊。不同于粗排常常使用簡單的雙塔模型,精排在特征和模型上都會做的比較復雜。目前,精排模型已被深度學習模型“一統(tǒng)天下”,包括Wide&Deep、DeepFM、DIN等,亦會使用Attention(如DIN)、對比學習、遷移學習等機制來提高模型精度。由于在工業(yè)界的實踐中常常有多個線上指標,故又常使用深度多任務學習(MTL)模型。最后,由于精排關(guān)注的是物品的排序,所以其loss亦不同于常見的loss,常依據(jù)排序?qū)W習(Learning to Rank)策略來進行設計。而LTR方法按照樣本生產(chǎn)方法和損失函數(shù)loss的不同,又分為pointwise形式和pairwise形式這兩類。
  • 重排 重排模塊的任務是對之前排序模塊的結(jié)果進行二次排序或調(diào)整,以進一步提高推薦的準確度和個性化程度。重排所要處理的問題包括序列價值最大化(也即所謂listwise、不同于單item效果的累計)、增加推薦列表的多樣性等等。重排一般是做打散或滿足業(yè)務運營的特定強插需求,同樣不會使用復雜的模型。此外,重排還可能在移動端上,即所謂端上重排。
  • 混排 混排的任務在于將多源異構(gòu)內(nèi)容(比如視頻和廣告)的返回結(jié)果進行恰當組合,得到一個綜合價值最大的返回序列。

1.2 多目標融合(MTF)簡介

不同于學術(shù)界只考慮點擊ratings預估的做法(即將推薦系統(tǒng)建模為簡單的二分類問題,然后離線評估算單個AUC或者HR/MRR啥的),推薦系統(tǒng)的優(yōu)化目標在工業(yè)界的實踐中常常是有多個的(且大多為線上指標),尤其是短視頻推薦場景。以短視頻推薦場景為例,在推薦系統(tǒng)的排序建模過程中,我們需要提升用戶的使用時長/正向反饋,減少負向反饋,從而提高用戶的留存。短視頻推薦場景中的用戶反饋可分為四類:

  • 隱式正反饋 用戶在無意間的行為,如播放時長、播放完成率、完播、復播等等。
  • 顯式正反饋 用戶有意識地做出的反饋,如收藏、下載、關(guān)注、點贊、發(fā)表正向評論等等。
  • 隱式負反饋 用戶隱式表達的負反饋,如短播放、用戶終止一次session等。
  • 顯式負反饋 用戶顯式表達的負反饋,如不感興趣、負向評論、舉報等。

我們的目標是提高正向反饋、減少負向反饋,提高用戶體驗。然而,我們之前說過,粗排/精排的個性化多任務學習模型,能預估20多個不同的預估值,如點擊率、有效播放率、播放時長、點贊率、關(guān)注率等,那如何用它來排序呢?從多任務學習到多目標排序,中間有一個過渡,即如何把這些預估值融合成一個單一的排序分,最后實現(xiàn)多目標精排。這也就引入了本文要介紹的正題: 多目標融合(multi-task fusion, MTF) 。

推薦系統(tǒng):精排多目標融合與超參數(shù)學習方法

如上圖所示,多目標融合模型在精排MTL模型輸出多個預估分數(shù)(對應上述各種用戶的反饋)之后,對多個預估分數(shù)進行融合,隨后根據(jù)融合的打分進行精排,并輸入到后續(xù)的重排模塊。

2 多目標融合方法介紹

2.1 手工融合

最簡單的多目標融合方式就是手工融合,一般包括 線性加法 指數(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] 的公式形式:

  • 帶權(quán)指數(shù)加法

    這里 \(\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ù)學習方法。在線方法的工作流程如下圖所示:

推薦系統(tǒng):精排多目標融合與超參數(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)化方法和進化學習算法。

2.2 融合超參數(shù)學習方法

2.2.1 貝葉斯優(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ù)的分布進行建模,在迭代開始前初始化為一個指定的先驗分布。常用的概率代理模型有:高斯過程(GP)、樹形Parzen估計器(tree-structured parzen estimator, TPE)、神經(jīng)網(wǎng)絡、決策樹等。
  • 采集函數(shù) \(u\) 采集函數(shù)用于衡量每一個點值得探索的程度。每輪迭代算法會基于現(xiàn)有的高斯過程,從候選集中選擇下一步的迭代點以使得采集函數(shù)最大化。貝葉斯優(yōu)化效果受采集函數(shù)的影響較大,選擇不合適的話容易陷入局部最優(yōu)解。采集函數(shù)的選取可以看做一個探索-利用問題,常用采集函數(shù)包括置信區(qū)間上界(Upper Confidence Bound, UCB)方法、POI方法、EI方法等(其中最為簡單易用的是UCB方法)。

首先,算法會初始化一個代理函數(shù)的先驗分布,然后開始迭代。算法的第 \(t\) 步迭代的偽代碼描述如下:

  • 通過優(yōu)化采集函數(shù) \(u\) 以獲得 \(x^{t+1}\) \(x^{t+1}=\text{arg max}_{x} \space u(x\mid \mathcal{D}^{t})\) 。
  • 通過用戶的在線反饋收益 \(r\) (對應貝葉斯優(yōu)化中的目標函數(shù))得到 \(y^{t+1}\)
  • 對數(shù)據(jù)進行增廣: \(\mathcal{D}^{t+1} = \{\mathcal{D}^t,\quad (x^{t+1},\quad y^{t+1})\}\) 。
  • 更新概率代理模型(如高斯過程回歸),得到一個代理函數(shù)的后驗分布(做為下一步迭代的先驗分布)。

算法流程示意圖如下:

推薦系統(tǒng):精排多目標融合與超參數(shù)學習方法

注意,在實際的推薦系統(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\) 。

2.2.2 進化策略(ES)算法

前面講述的基于貝葉斯優(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ù)空間注入噪聲。

推薦系統(tǒng):精排多目標融合與超參數(shù)學習方法

如上圖所示,使用進化學習算法,線上對模型參數(shù)進行擾動,根據(jù)擾動后的結(jié)果來計算reward(常設置為人均或單刷的停留時長/播放時長/深度消費等關(guān)鍵業(yè)務指標),并離線進行小時級模型訓練。觀察到較優(yōu)模型參數(shù)組合后,則更新線上的baseline模型參數(shù)。

進化算法第 \(t\) 輪模型迭代偽代碼如下:

  • 采樣噪聲 \(\varepsilon_1, \cdots, \varepsilon_n \sim \mathcal{N}(\boldsymbol{0}, \boldsymbol{I})\) 。
  • 計算reward \(r_i = r (\theta_t + \sigma \varepsilon_i),\space \text{for}\space i = 1, \cdots, n\) 。
  • \(\theta^{t+1} = \theta^t + \alpha \frac{1}{n\sigma}\sum_{i=1}^nr_i\varepsilon_i\) 。

在工程實踐中,該方法常常面臨 如何權(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] 。

參考

  • [1] 渠江濤:重排序在快手短視頻推薦系統(tǒng)中的演進
  • [2] 美團搜索粗排優(yōu)化的探索與實踐
  • [3] 袁騰飛:阿里飛豬信息流內(nèi)容推薦探索
  • [4] EdgeRec:邊緣計算在推薦系統(tǒng)中的應用
  • [5] 一矢多穿:多目標排序在愛奇藝短視頻推薦中的應用
  • [6] 大廠技術(shù)實現(xiàn) | 愛奇藝短視頻推薦業(yè)務中的多目標優(yōu)化實踐
  • [7] 新聞資訊混排場景下的多目標融合實戰(zhàn)(一)
  • [8] 多目標排序在快手短視頻推薦中的實踐
  • [9] 新聞資訊混排場景下的多目標融合實戰(zhàn)(二)
  • [10] 新聞資訊混排場景下的多目標融合實戰(zhàn)(三)
  • [11] 新聞資訊混排場景下的多目標融合實戰(zhàn)(四)
小編推薦閱讀

好特網(wǎng)發(fā)布此文僅為傳遞信息,不代表好特網(wǎng)認同期限觀點或證實其描述。

相關(guān)視頻攻略

更多

掃二維碼進入好特網(wǎng)手機版本!

掃二維碼進入好特網(wǎng)微信公眾號!

本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]

湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)