多任務(wù)學(xué)習(xí)在轉(zhuǎn)轉(zhuǎn)主搜精排的應(yīng)用
1 引言
在搜推系統(tǒng)中,隨著場景建模目標(biāo)越來越豐富,我們越來越多的希望模型可以兼顧多個任務(wù)的建模,多任務(wù)學(xué)習(xí)(multi-task learning)逐漸走入了人們的視野,成為了當(dāng)前精排模型的主流方向之一。在轉(zhuǎn)轉(zhuǎn)的搜索場景中,用戶的每個行為背后都有其特定的考慮因素,這也導(dǎo)致了不同行為之間流量效率的差異。下圖展示了用戶在詳情頁所看到的信息,其中包括收藏、加購、咨詢客服等行為按鈕,這些行為為精排模型預(yù)測用戶的最終決策——是否購買——提供了重要的參考。基于此,我們在建模時需要全面考慮用戶的決策鏈路,以實現(xiàn)最優(yōu)的模型效果。
圖片
2 多任務(wù)學(xué)習(xí)概述
2.1 多任務(wù)學(xué)習(xí)的必要性
如果為每個行為單獨(dú)設(shè)計模型進(jìn)行單目標(biāo)建模,并將其輸出最終結(jié)合使用,除了增加工程上的復(fù)雜性外,模型可能會面臨信息孤立的問題,無法充分利用不同目標(biāo)之間的相關(guān)性,導(dǎo)致整體性能下降。獨(dú)立訓(xùn)練每個模型會顯著增加訓(xùn)練時間和計算資源的消耗,從而降低系統(tǒng)迭代效率。多個模型的存在還可能增加過擬合的風(fēng)險,在某些行為樣本量較少時尤為明顯。管理和維護(hù)多個模型也會使復(fù)雜性加大,為模型的部署帶來挑戰(zhàn)。
此外,由于不同模型之間的優(yōu)化目標(biāo)可能存在沖突,例如點(diǎn)擊率與轉(zhuǎn)化率之間的關(guān)系往往難以進(jìn)行協(xié)調(diào)優(yōu)化。在轉(zhuǎn)轉(zhuǎn)的場景里,前者可能通過給低價商品更多曝光來吸引更多點(diǎn)擊,而后者則強(qiáng)調(diào)精準(zhǔn)性和質(zhì)量,過于關(guān)注點(diǎn)擊率可能導(dǎo)致轉(zhuǎn)化率的下降。這種相互矛盾的優(yōu)化目標(biāo)使得在模型訓(xùn)練和調(diào)優(yōu)過程中,難以找到各目標(biāo)之間的最佳平衡點(diǎn),最終可能導(dǎo)致整體效果不盡如人意。同時,當(dāng)不同模型的優(yōu)化方向相互沖突時,可能會造成資源浪費(fèi),影響決策的效率,進(jìn)而影響業(yè)務(wù)的長期發(fā)展。因此,尋找一個能夠同時兼顧多種目標(biāo)的建模方法顯得尤為重要。
當(dāng)然,借助多任務(wù)學(xué)習(xí)的方式雖然不能完全避免多個優(yōu)化目標(biāo)之間的沖突,但它可以在整體上實現(xiàn)對多個目標(biāo)的有效權(quán)衡,從而獲得更優(yōu)的結(jié)果。
2.2 多任務(wù)學(xué)習(xí)的效用
深度學(xué)習(xí)涉及的應(yīng)用領(lǐng)域有多個multi相關(guān)的概念,除了多任務(wù)multi-task,還包括多標(biāo)簽multi-label,多類別multi-class等,他們之間的關(guān)系如圖所示:
多個multi之間的關(guān)系
- multi-task: 這里的task可以是分類或者回歸任務(wù)。不同的任務(wù)有著不同的樣本或者特征,同時也有一部分特征與樣本共享。
- multi-label:多標(biāo)簽multi-label表示對樣本進(jìn)行多個維度的分類,是multi-task的一種,區(qū)別在于multi-label是用了相同的樣本和特征進(jìn)行建模。
- multi-class:多分類multi-class表示分類結(jié)果有多種選項。
多任務(wù)學(xué)習(xí)通過知識共享、減少過擬合、提升泛化能力、優(yōu)化效率、任務(wù)間相互促進(jìn)以及動態(tài)調(diào)整模型關(guān)注點(diǎn)等機(jī)制,有效提升模型在復(fù)雜問題上的表現(xiàn)。通過共享信息和特征,模型更好地捕捉數(shù)據(jù)模式;通過多個任務(wù)的共同訓(xùn)練,降低單任務(wù)的過擬合風(fēng)險并提高泛化能力;同時訓(xùn)練多個任務(wù)提高了效率,節(jié)省計算資源;某些輔助任務(wù)還可以為主任務(wù)提供監(jiān)督信息,進(jìn)一步優(yōu)化效果。
2.3 多任務(wù)學(xué)習(xí)的實踐
多任務(wù)學(xué)習(xí)相比于單獨(dú)建模的核心優(yōu)勢在于不同任務(wù)之間的網(wǎng)絡(luò)可以進(jìn)行共享,實現(xiàn)多個任務(wù)共同提升的效果,因此如何設(shè)計有效的網(wǎng)絡(luò)結(jié)構(gòu)成為多任務(wù)學(xué)習(xí)的一個重要研究方向。在引入多個label時,自然會產(chǎn)生多個loss,如何制定優(yōu)化策略在聯(lián)合訓(xùn)練中讓整體的loss達(dá)到最佳也是模型能否取得更好收益的關(guān)鍵。
多任務(wù)學(xué)習(xí)的研究方向
網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計:這一方向主要關(guān)注哪些參數(shù)可以共享、在何處共享以及如何共享。我們可以將其分為兩大類:第一類是在設(shè)計網(wǎng)絡(luò)結(jié)構(gòu)時考慮任務(wù)之間的顯式關(guān)系,例如淘寶中點(diǎn)擊與購買之間的關(guān)系,以阿里提出的ESMM模型為代表;第二類則是任務(wù)間沒有顯式關(guān)系的情況,例如短視頻中的收藏與分享,在這種情況下,模型設(shè)計時不考慮標(biāo)簽之間的量化關(guān)系,以谷歌提出的MMOE模型為代表。
多l(xiāng)oss優(yōu)化策略:這一策略主要解決損失值差異、學(xué)習(xí)速度不均以及更新方向不一致等問題。兩個經(jīng)典的工作包括UWL(Uncertainty Weight)和GradNorm。UWL通過自動學(xué)習(xí)任務(wù)的不確定性,為不確定性大的任務(wù)分配較小的權(quán)重,而為不確定性小的任務(wù)分配較大的權(quán)重;GradNorm則結(jié)合任務(wù)梯度的二范數(shù)與損失下降梯度,引入加權(quán)損失函數(shù)Gradient Loss,并通過梯度下降更新該權(quán)重。
3 轉(zhuǎn)轉(zhuǎn)場景下的多任務(wù)學(xué)習(xí)
3.1 模型選型
早期轉(zhuǎn)轉(zhuǎn)搜索場景的精排CVR模型同時建模的兩個目標(biāo)分別為“下單”和“支付”??紤]到兩個task之間存在遞進(jìn)關(guān)系,在模型選型時使用了與ESMM相同的結(jié)構(gòu)。ESMM論文所要解決的兩個關(guān)鍵問題:樣本選擇偏差(Sample Selection Bias)和樣本稀疏(Data Sparsity):
- 樣本選擇偏差(Sample Selection Bias) :轉(zhuǎn)化是在點(diǎn)擊之后才“有可能”發(fā)生的動作,傳統(tǒng)CVR模型通常以點(diǎn)擊數(shù)據(jù)為訓(xùn)練集,其中點(diǎn)擊未轉(zhuǎn)化為負(fù)例,點(diǎn)擊并轉(zhuǎn)化為正例。但是訓(xùn)練好的模型實際使用時,則是對整個空間的樣本進(jìn)行預(yù)估,而非只對點(diǎn)擊樣本進(jìn)行預(yù)估。即是說,訓(xùn)練數(shù)據(jù)與實際要預(yù)測的數(shù)據(jù)來自不同分布,這個偏差對模型的泛化能力構(gòu)成了很大挑戰(zhàn)。
- 樣本稀疏(Data Sparsity) :作為CVR訓(xùn)練數(shù)據(jù)的點(diǎn)擊樣本遠(yuǎn)小于CTR預(yù)估訓(xùn)練使用的曝光樣本。
這篇論文通過同時學(xué)習(xí)CTR和CTCVR兩個目標(biāo),間接學(xué)習(xí)并優(yōu)化CVR目標(biāo),從而有效規(guī)避了上述兩個問題,使CVR模型的性能得到了提升。
在應(yīng)用于轉(zhuǎn)轉(zhuǎn)搜索場景時,CVR模型建模路徑為“點(diǎn)擊->下單->支付”。如果直接建?!包c(diǎn)擊->支付”,則會丟失“下單”行為所包含的重要信息;而若將“點(diǎn)擊->下單”和“下單->支付”兩個階段分開建模,除了增加工程復(fù)雜性外,“下單->支付”模型還將面臨更加嚴(yán)重的樣本稀疏問題。我們的模型結(jié)構(gòu)如下圖所示:
CVR模型結(jié)構(gòu)圖
具體實現(xiàn)上會構(gòu)建兩個塔用于預(yù)測“點(diǎn)擊到下單”和“下單到支付”兩個任務(wù)。模型分別輸入兩組特征,其中包含部分共享特征。兩個塔共享底層特征的embedding,然后分別通過上層網(wǎng)絡(luò)進(jìn)行特定任務(wù)的預(yù)測。在“點(diǎn)擊到下單”和“下單到支付”兩條分支中,各自的特征經(jīng)過多層網(wǎng)絡(luò)后在 concatenate 層融合,再通過更深層網(wǎng)絡(luò)得到預(yù)測結(jié)果,并分別計算損失 loss1 和 loss2。這種結(jié)構(gòu)通過共享特征提高了模型的整體效果,同時兼顧了兩個任務(wù)的優(yōu)化。在線上預(yù)測時,會使用兩個塔輸出的乘積作為CVR模型的最終打分。
在確定基本框架后,我們在此基礎(chǔ)上進(jìn)行了一些改進(jìn)嘗試,例如將每個塔從W&D替換為DeepFM、DCN等模型,為兩個塔的loss設(shè)置不同權(quán)重,以及對比同時訓(xùn)練和分別訓(xùn)練兩個塔的效果等。然而,這些調(diào)整并未帶來顯著的性能提升。對模型效果影響最大的,仍然是樣本和特征的優(yōu)化。值得注意的是,模型只有結(jié)合具體業(yè)務(wù)場景才能最大限度地發(fā)揮作用。接下來,我們計劃將“收藏”行為納入建模目標(biāo)。做出這一決定的主要原因在于統(tǒng)計結(jié)果顯示,用戶對收藏夾中商品有著更高的成交概率,同時使用收藏功能的用戶比例也相當(dāng)可觀。盡管我們此前在樣本和特征中對收藏行為做了一些描述,但這顯然還不夠。
加入收藏行為之后,用戶的決策路徑不再是單一的,CVR模型需要建模的路徑如下所示:
用戶決策路徑
在對比了其他的多目標(biāo)模型之后,我們還是決定參考阿里對ESMM的改進(jìn),將ESM^2應(yīng)用到我們的場景中。模型從原先的兩個塔擴(kuò)展為了四個塔來為“收藏”、“下單”和“支付”三個目標(biāo)進(jìn)行建模,模型結(jié)構(gòu)如下圖所示:
CVR模型結(jié)構(gòu)圖
做出這樣選的的主要考量在于,這三個task之間存在的路徑依賴。需要注意的是,輸出為 、 和 的塔均是通過隱式學(xué)習(xí)的方式實現(xiàn)的,并沒有單獨(dú)的label來指導(dǎo)這幾個塔的參數(shù)更新。其輸出所代表的含義僅限于概率層面,反映的是在模型中通過隱式關(guān)聯(lián)所學(xué)習(xí)到的潛在信息,而非直接通過明確的標(biāo)簽進(jìn)行的監(jiān)督學(xué)習(xí)。模型對“點(diǎn)擊->下單”環(huán)節(jié)的預(yù)測概率(下單)可以使用如下的公式進(jìn)行表示:

3.2 未來規(guī)劃
未來計劃為模型引入attention機(jī)制為用戶行為序列進(jìn)行建模。樣本層面考慮加入用戶APP其他場景的行為數(shù)據(jù)。此外,對于泛意圖搜索將探索多個類目的結(jié)果更好的融合方式。
參考文獻(xiàn)
[1] 多目標(biāo)優(yōu)化概論及基礎(chǔ)算法ESMM與MMOE對比: https://www.cnblogs.com/whu-zeng/p/14111888.html
[2] FunRec-多任務(wù)學(xué)習(xí)概述: https://datawhalechina.github.io/fun-rec/
[3] 多目標(biāo)|樣本權(quán)重:GradNorm和DWA利用學(xué)習(xí)速度調(diào)權(quán): https://zhuanlan.zhihu.com/p/542296680
[4] Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate: https://arxiv.org/abs/1804.07931
[5] Entire Space Multi-Task Modeling via Post-Click Behavior Decomposition for Conversion Rate Prediction: https://arxiv.org/abs/1910.07099
[6] A Pareto-Efficient Algorithm for Multiple Objective Optimization in E-Commerce Recommendation: http://ofey.me/papers/Pareto.pdf
[7] Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts: https://dl.acm.org/doi/pdf/10.1145/3219819.3220007
































