多任務(wù)和多場(chǎng)景在華為推薦系統(tǒng)中的應(yīng)用
一、多任務(wù)、多場(chǎng)景的背景和挑戰(zhàn)
首先來(lái)介紹一下華為多任務(wù)推薦的場(chǎng)景。
華為廣告分布在不同的媒體上,比如左圖展示的是瀏覽器信息流中的一個(gè)原聲廣告,右側(cè)是華為視頻頁(yè)下方的一個(gè)廣告卡片。這些廣告分為不同的類(lèi)型,比如 APP 類(lèi)型、表單類(lèi)型或者商品類(lèi)型,其中 APP 類(lèi)型是我們主要的一個(gè)廣告類(lèi)型。一個(gè) APP 廣告出現(xiàn)在用戶(hù)的視野里,如果被用戶(hù)注意到了,可能觸發(fā)一個(gè)用戶(hù)的點(diǎn)擊進(jìn)入詳情頁(yè),如果用戶(hù)看到了詳情頁(yè)信息之后,還進(jìn)一步產(chǎn)生興趣的話(huà),就可能會(huì)產(chǎn)生進(jìn)一步的下載行為,用戶(hù)下載 APP 之后,用戶(hù)可能會(huì)把這個(gè) APP 放著不用了,也可能會(huì)產(chǎn)生進(jìn)一步的轉(zhuǎn)化行為,比如激活、應(yīng)用內(nèi)付費(fèi)購(gòu)買(mǎi)、次留等。
廣告主會(huì)根據(jù)自己的一些運(yùn)營(yíng)指標(biāo),為某一次點(diǎn)擊或者某一種轉(zhuǎn)化的類(lèi)型進(jìn)行付費(fèi),因此我們會(huì)針對(duì)轉(zhuǎn)化鏈路中的多個(gè)環(huán)節(jié)進(jìn)行用戶(hù)行為的預(yù)估,比如點(diǎn)擊率、下載等轉(zhuǎn)化率。顯而易見(jiàn),用戶(hù)的轉(zhuǎn)化行為會(huì)隨著這條鏈路的逐漸深入而逐漸變得更加稀疏,越來(lái)越深層次的轉(zhuǎn)化目標(biāo),其轉(zhuǎn)化稀疏性問(wèn)題就會(huì)越來(lái)越來(lái)越嚴(yán)重,訓(xùn)練起來(lái)的困難程度也會(huì)越來(lái)越高。
因此我們通過(guò)多任務(wù)聯(lián)合建模的方式來(lái)緩解樣本的稀疏性問(wèn)題,同時(shí)也希望不同任務(wù)之間可以彼此協(xié)同提升。
華為廣告投放的媒體類(lèi)型眾多,大致可以分為兩類(lèi):
- 自有媒體:華為視頻、華為瀏覽器、華為音樂(lè)、華為閱讀等。
- 三方媒體,新浪、網(wǎng)易和 UC 瀏覽器等。
以華為自有媒體為例,華為廣告可以投放在媒體內(nèi)部的不同位置,以不同的形式展示,比如應(yīng)用圖標(biāo)、開(kāi)屏頁(yè)等。當(dāng)用戶(hù)在不同媒體上的不同位置進(jìn)行瀏覽的時(shí)候,會(huì)產(chǎn)生不同類(lèi)型的行為,比如點(diǎn)擊廣告,而用戶(hù)點(diǎn)擊廣告時(shí)所處的場(chǎng)景不同,產(chǎn)生點(diǎn)擊的行為的背景也不一樣,也就是說(shuō)在不同的場(chǎng)景下我們可以提取用戶(hù)不同的偏好行為。因此我們通過(guò)多場(chǎng)景聯(lián)合建模的方案,來(lái)更加全面地構(gòu)建用戶(hù)的偏好特征。另外,多場(chǎng)景聯(lián)合建模通常也可以帶來(lái)另外兩點(diǎn)好處:1)減少維護(hù)場(chǎng)景模型的數(shù)量;2)緩解冷啟動(dòng)場(chǎng)景的稀疏性問(wèn)題。
二、算法分類(lèi)及介紹
1、多任務(wù)和多場(chǎng)景的對(duì)比
首先建模空間主要可以分為兩部分,分別是目標(biāo)空間和樣本空間。多任務(wù)的目標(biāo)空間是不同的,比如有點(diǎn)擊率、激活率等,但是樣本都是來(lái)自于同一個(gè)空間,比如相同的樣本和特征空間。而多場(chǎng)景往往是相反的,其訓(xùn)練數(shù)據(jù)來(lái)自于不同的場(chǎng)景,樣本空間也往往是不同的,會(huì)有著不同的數(shù)據(jù)分布和特征集合,但預(yù)測(cè)任務(wù)又都是同類(lèi)型的,比如點(diǎn)擊率。當(dāng)然最近也有一些多場(chǎng)景和多任務(wù)聯(lián)合優(yōu)化的場(chǎng)景和算法,這里就不具體展開(kāi)了。
2、算法分類(lèi)
目前多任務(wù)推薦算法相關(guān)的工作,主要可以從兩個(gè)維度進(jìn)行劃分:1)任務(wù)關(guān)系的維度;2)方法的維度。
任務(wù)關(guān)系維度主要分為三種,一種是平行式,也就是多個(gè)任務(wù)之間沒(méi)有比較明確的依賴(lài)關(guān)系,比如點(diǎn)擊、收藏、分享、喜歡等,這種多見(jiàn)于內(nèi)容分發(fā)的信息流推薦場(chǎng)景。第二種是級(jí)聯(lián)式,多任務(wù)的轉(zhuǎn)化處于同一鏈路中,彼此之間存在著一定的依賴(lài)關(guān)系,這種多見(jiàn)于廣告推薦場(chǎng)景。第三中是主任務(wù)加輔助任務(wù)的聯(lián)合優(yōu)化,主要是尋找一些輔助任務(wù)來(lái)優(yōu)化主任務(wù)的最終效果。
從方法維度也主要分為三類(lèi)。第一類(lèi)是參數(shù)共享,包括 hard sharing 和 soft sharing,比如 MOE 結(jié)構(gòu)。第二類(lèi)是任務(wù)的優(yōu)化,主要針對(duì)負(fù)向遷移以及多目標(biāo)的權(quán)衡,再進(jìn)一步又可分為任務(wù)或者梯度的主導(dǎo)問(wèn)題,以及負(fù)向關(guān)系的處理問(wèn)題。第三類(lèi)是建模的訓(xùn)練機(jī)制,比如傳統(tǒng)的聯(lián)合建模的方式,就是多種任務(wù)一起直接聯(lián)合優(yōu)化。另外一種是基于強(qiáng)化學(xué)習(xí)的訓(xùn)練機(jī)制。下面這篇文章就是我們多任務(wù)推薦系統(tǒng)的 survey,里面會(huì)系統(tǒng)地介紹一些相關(guān)的工作,感興趣的同學(xué)可以關(guān)注一下。
接下來(lái)我們對(duì)多場(chǎng)景相關(guān)的算法也做了一些不同維度的劃分,主要是從兩個(gè)維度,第一個(gè)是模型結(jié)構(gòu)的維度,第二個(gè)是方法的維度。
從模型結(jié)構(gòu)的維度分為兩種,分別是多塔和單塔的結(jié)構(gòu)。多塔就是為每一個(gè)場(chǎng)景會(huì)構(gòu)建一個(gè)預(yù)測(cè)網(wǎng)絡(luò),一般這種是用在場(chǎng)景數(shù)量比較明確而且數(shù)量不是很多的情況下。另外一種是單塔,也就是所有場(chǎng)景的預(yù)測(cè)網(wǎng)絡(luò)是共享的,多數(shù)是在場(chǎng)景數(shù)量不夠明確,或者數(shù)量比較多的場(chǎng)景。在方法維度其實(shí)和多任務(wù)比較類(lèi)似。第一個(gè)還是參數(shù)共享的方式,包括一些硬共享和軟共享。第二個(gè)就是場(chǎng)景聯(lián)合建模時(shí)負(fù)向信息遷移的一些處理。第三個(gè)是獲取和調(diào)節(jié)場(chǎng)景特性信息的一些動(dòng)態(tài)權(quán)重網(wǎng)絡(luò)。我們也有一個(gè)聯(lián)合建模的論文,介紹了多場(chǎng)景相關(guān)的一些工作,也包含了一些多行為多模態(tài),還有大語(yǔ)言模型做推薦的一些聯(lián)合建模的相關(guān)工作的介紹,感興趣的同學(xué)也可以關(guān)注一下。
3、算法介紹
接下來(lái)介紹華為廣告場(chǎng)景落地的一些多任務(wù)和多場(chǎng)景的推薦算法。
(1)多任務(wù)算法:TAML
第一篇是我們發(fā)表在 www2023 的一篇工作(TAML),這個(gè)工作主要是覆蓋分類(lèi)中的級(jí)聯(lián)任務(wù),還有聯(lián)合訓(xùn)練以及一些訓(xùn)練機(jī)制。
TAML 主要針對(duì)的挑戰(zhàn)有兩點(diǎn),一點(diǎn)是轉(zhuǎn)化樣本稀疏,如果只是通過(guò)簡(jiǎn)單的任務(wù)級(jí)的專(zhuān)家網(wǎng)絡(luò)融合,是無(wú)法提供足夠信息的,而且這些信息會(huì)存在一些偏差。另外一點(diǎn)是模型預(yù)估的魯棒性問(wèn)題,我們表征以后的分類(lèi)網(wǎng)絡(luò)存在訓(xùn)練不夠充分的問(wèn)題,就會(huì)導(dǎo)致最終訓(xùn)練的預(yù)測(cè)結(jié)果不夠魯棒。
針對(duì)以上兩個(gè)問(wèn)題,TAML 的框架主要包括兩個(gè)模塊,一個(gè)是多層級(jí)任務(wù)自適應(yīng)表征提取模塊,主要是通過(guò)多層級(jí)的專(zhuān)家網(wǎng)絡(luò)提取多粒度的多任務(wù)知識(shí)表征;第二個(gè)模塊是蒸餾多學(xué)習(xí)器模塊,主要是通過(guò)構(gòu)建多學(xué)習(xí)器,并通過(guò)蒸餾實(shí)現(xiàn)多學(xué)習(xí)器之間的知識(shí)共享,提高預(yù)估網(wǎng)絡(luò)的穩(wěn)定性。
接下來(lái)對(duì)這兩個(gè)模塊分別做一些簡(jiǎn)單的介紹。
第一個(gè)模塊,多層級(jí)任務(wù)自適應(yīng)表征提取模塊,主要是用于底層表征的抽取。通過(guò)三種多級(jí)專(zhuān)家網(wǎng)絡(luò)來(lái)構(gòu)建,一種是共享的多專(zhuān)家網(wǎng)絡(luò),另一種是任務(wù)級(jí)別的特有專(zhuān)家網(wǎng)絡(luò),還有學(xué)習(xí)器級(jí)別的專(zhuān)家網(wǎng)絡(luò)。這里的學(xué)習(xí)器是為了緩解任務(wù)的稀疏性問(wèn)題,并提高任務(wù)表征的穩(wěn)定性,為每個(gè)任務(wù)又單獨(dú)構(gòu)建了多個(gè)學(xué)習(xí)器,就可以從多個(gè)視角提取任務(wù)表征。最終三個(gè)表征會(huì)通過(guò)一個(gè)門(mén)控網(wǎng)絡(luò)進(jìn)行融合,輸出最終的表征。
第二個(gè)是 MLSD 學(xué)習(xí)器模塊,主要用于預(yù)估網(wǎng)絡(luò)的優(yōu)化,多個(gè)學(xué)習(xí)器可以從不同的視角學(xué)習(xí)同一個(gè)任務(wù)不同的信息,最終我們會(huì)用不同的學(xué)習(xí)器的均值作為融合學(xué)習(xí)器的知識(shí)輸出。在此基礎(chǔ)之上,我們會(huì)構(gòu)建一個(gè)正則化的損失,約束每個(gè)學(xué)習(xí)器和融合學(xué)習(xí)器之間的距離,從而實(shí)現(xiàn)不同學(xué)習(xí)器之間的信息共享,也以此來(lái)提高預(yù)估網(wǎng)絡(luò)的魯棒性。
我們這個(gè)工作分別在公開(kāi)數(shù)據(jù)集和華為的私有數(shù)據(jù)上做了一些驗(yàn)證,相比 SOTA 都取得了比較顯著的效果增益。另外,從下圖中左下角的圖可以看到不同層級(jí)的專(zhuān)家網(wǎng)絡(luò)對(duì)最終表征的貢獻(xiàn)度,在不同任務(wù)以及不同的學(xué)習(xí)器中,三種專(zhuān)家網(wǎng)絡(luò)所提取出來(lái)的信息的重要性是有所不同的。比如,對(duì)于 CVR 任務(wù),它學(xué)出來(lái)的學(xué)習(xí)器級(jí)別的參數(shù)網(wǎng)絡(luò)的權(quán)重會(huì)更重一些。
由于在離線(xiàn)的效果上比較好,所以我們?cè)谌A為廣告場(chǎng)景上進(jìn)行了一個(gè)線(xiàn)上的AB實(shí)驗(yàn)。我們用基于點(diǎn)擊后的數(shù)據(jù)構(gòu)建了兩個(gè)任務(wù),一個(gè)是下載率,另一個(gè)就是激活率??梢钥吹皆?nbsp;CVR 和 eCPM 場(chǎng)景上,都取得了比較明顯的線(xiàn)上收益。因?yàn)檫@是一個(gè)轉(zhuǎn)化率的場(chǎng)景,所以我們更關(guān)注的是轉(zhuǎn)化率的效果以及最終廣告的收入效果。
(2)多場(chǎng)景算法:CausalInt
第二個(gè)工作是我們發(fā)表在 KDD2022 的一個(gè)工作(CausalInt),這個(gè)工作主要覆蓋分類(lèi)中多塔分類(lèi)器以及軟共享,還有包含了一些負(fù)向信息遷移的梳理,以及動(dòng)態(tài)權(quán)重網(wǎng)絡(luò)的場(chǎng)景自適應(yīng)參數(shù)的調(diào)節(jié)。
這里我們借助了因果圖來(lái)對(duì)多場(chǎng)景建模的問(wèn)題進(jìn)行了分析。首先我們從用戶(hù)的視角對(duì)多場(chǎng)景推薦進(jìn)行一個(gè)描述。在圖(a)中,xn 是用戶(hù)在場(chǎng)景 n 下的一個(gè)行為,yn 是用戶(hù)在場(chǎng)景 n 下的一個(gè)操作,比如點(diǎn)擊。x表示與場(chǎng)景無(wú)關(guān)的一些用戶(hù)偏好,用戶(hù)在場(chǎng)景n下產(chǎn)生的操作 yn 其實(shí)是受到用戶(hù)在該場(chǎng)景下的一些行為,以及用戶(hù)本身的一些偏好所共同作用的結(jié)果。
我們?cè)購(gòu)慕5囊暯莵?lái)對(duì)多場(chǎng)景的建模過(guò)程進(jìn)行一個(gè)描述,可以看出在場(chǎng)景數(shù)據(jù)混合在一起進(jìn)行建模的時(shí)候,不同變量的關(guān)系就會(huì)變得更加復(fù)雜。
X1 表示的是與場(chǎng)景無(wú)關(guān)的用戶(hù)表征,但是它受到了場(chǎng)景感知表征 Dn 和用戶(hù)在場(chǎng)景 n 下的表征的一些影響,表示的是模型對(duì)于用戶(hù)在場(chǎng)景下點(diǎn)擊行為的預(yù)估,但是它受到了其他場(chǎng)景感知信息的影響,還有其他場(chǎng)景的比如用戶(hù)行為的影響,在預(yù)估的時(shí)候存在一些偏差,并且無(wú)法取得比較好的推薦效果。也就是在建模的過(guò)程中,我們沒(méi)有考慮到一些偏差信息以及有效的信息遷移。
為了實(shí)現(xiàn)建模過(guò)程的視圖更和用戶(hù)視圖的因果圖更加匹配,也就是解決建模中的偏差問(wèn)題,我們提取出了多場(chǎng)景聯(lián)合建模時(shí)的三個(gè)關(guān)鍵挑戰(zhàn)。第一個(gè)挑戰(zhàn)是如何有效的提取場(chǎng)景之間的共性。第二個(gè)挑戰(zhàn)是如何保留產(chǎn)品中的一些特定信息,同時(shí)消除其他場(chǎng)景引入的一些負(fù)向信息,主要是處理如何有效提取 x n,第三個(gè)挑戰(zhàn)就是如何探索并遷移場(chǎng)景感知的一些信息。
為了解決這些挑戰(zhàn),我們借助因果干預(yù)的策略。對(duì)這里的 Dn 對(duì) Xn,還有 Xn 對(duì) Yn 實(shí)施干預(yù)。在我們真實(shí)的商業(yè)推薦系統(tǒng)中,其實(shí)我們很難從數(shù)據(jù)的角度或者實(shí)驗(yàn)的角度來(lái)采取真實(shí)的干預(yù)策略,因此我們這里是考慮使用學(xué)習(xí)的方式來(lái)對(duì)這種干預(yù)進(jìn)行一個(gè)模擬,切斷容易產(chǎn)生混淆的因果路徑。
我們提出了三個(gè)模塊。第一個(gè)模塊是共性提取模塊,也就是紅色部分。第二個(gè)模塊是中間的負(fù)向影響去除模塊,就是灰色的部分。第三個(gè)是場(chǎng)景信息的遷移模塊,就是黃色的這一部分。接下來(lái)對(duì)這三部分內(nèi)容分別做一個(gè)具體的介紹。
首先是共性提取模塊。我們主要是通過(guò)結(jié)構(gòu)表征的方式來(lái)把場(chǎng)景感知場(chǎng)景敏感的一些信息分離至獨(dú)立的分支網(wǎng)絡(luò)里,然后通過(guò)構(gòu)建4個(gè)不同的任務(wù)來(lái)提取場(chǎng)景特有表征或者場(chǎng)景不變表征。這4個(gè)任務(wù)中的第一個(gè)是最左邊的 general classifier,它主要是基于提取的場(chǎng)景無(wú)關(guān)的表征,剔除與場(chǎng)景敏感的一些信息后,所對(duì)應(yīng)的一個(gè)統(tǒng)一分類(lèi)器,也就是所有場(chǎng)景共享的一個(gè) ctr 預(yù)估任務(wù)。第二個(gè)就是把場(chǎng)景敏感信息分離出來(lái)之后,用場(chǎng)景的敏感信息的表征去構(gòu)建一個(gè)場(chǎng)景的判別器,也就是判別樣本是來(lái)自于哪個(gè)場(chǎng)景。第三個(gè)任務(wù)就是將場(chǎng)景表征和場(chǎng)景感知表征聯(lián)合在一起,再去構(gòu)建一個(gè)ctr預(yù)估的 general classifier。最終為了有效地提取這兩個(gè)表征,并且讓這兩個(gè)表征做到盡量的正交,這里會(huì)有真正一個(gè)正則化的約束。通過(guò)這4種方式,進(jìn)行無(wú)偏表征的提取,作為后續(xù)建模的基礎(chǔ)。
第二個(gè)模塊是負(fù)向影響去除模塊。可以進(jìn)一步劃分為兩部分,第一部分是場(chǎng)景特有的一些表征以及場(chǎng)景共有的一些表征之間的梯度沖突問(wèn)題。比如場(chǎng)景的特有的分類(lèi)器和回傳的梯度,還有共有的分類(lèi)器回傳梯度,對(duì)于共享表征的一些沖突問(wèn)題。
第二個(gè)沖突就是不同的場(chǎng)景自有的一些分類(lèi)器所回傳的梯度對(duì)于共有表征的一些影響。我們針對(duì)這兩個(gè)不同的沖突使用了兩種不同的策略。針對(duì)于第一種沖突,我們使用了 meta-learning 的 MAML 訓(xùn)練方式來(lái)解決場(chǎng)景特性表征和共性表征之間的沖突問(wèn)題。針對(duì)第二種沖突,自有的共享表征之間的梯度沖突問(wèn)題是采用一個(gè)施密特正交化的過(guò)程,然后實(shí)現(xiàn)一個(gè)梯度的正交基,來(lái)約束他們之間的一個(gè)梯度方向,從而解決這個(gè)維度的梯度沖突問(wèn)題。
第三個(gè)模塊是信息遷移模塊。這個(gè)部分模擬了實(shí)驗(yàn)的干預(yù)策略,讓單個(gè)場(chǎng)景中出現(xiàn)的 user-item 表征分別和不同場(chǎng)景的信息進(jìn)行一個(gè)交互。
我們模擬的是如果場(chǎng)景的 user- item 交互出現(xiàn)的場(chǎng)景j中,它會(huì)有一個(gè)什么樣的結(jié)果,這樣一個(gè)反事實(shí)的問(wèn)題,并將多個(gè)場(chǎng)景的評(píng)分網(wǎng)絡(luò),作為多個(gè)專(zhuān)家,對(duì)這一個(gè)交互進(jìn)行打分。 最終會(huì)用第一個(gè)模塊學(xué)習(xí)到這個(gè)場(chǎng)景的表征所對(duì)應(yīng)的場(chǎng)景的分類(lèi)器,對(duì)當(dāng)前樣本進(jìn)行一個(gè)加權(quán),也就是預(yù)測(cè)有多大的概率去相信當(dāng)前這個(gè)場(chǎng)景所對(duì)應(yīng)專(zhuān)家的一個(gè)打分結(jié)果,從而實(shí)現(xiàn)專(zhuān)家網(wǎng)絡(luò)輸出的分?jǐn)?shù)的融合,從而實(shí)現(xiàn)不同場(chǎng)景之間的信息遷移。
我們把模型在一份公開(kāi)數(shù)據(jù)集和華為私有數(shù)據(jù)集上做了一些離線(xiàn)的 AB 實(shí)驗(yàn),可以看到相比于單場(chǎng)景建模多任務(wù)模型,還有一些遷移學(xué)習(xí)的微調(diào)模型,包括多場(chǎng)景的一些基線(xiàn)模型,相對(duì)來(lái)說(shuō)都會(huì)有比較明顯的效果增益。
我們對(duì)模型的各個(gè)模塊進(jìn)行了一些消融分析。整體上看,各個(gè)子模塊都帶來(lái)了一些效果上的增量。比如表8中,我們進(jìn)行了場(chǎng)景信息遷移模塊中不同注意力網(wǎng)絡(luò)的實(shí)現(xiàn)方式的對(duì)比,比如直接做 multiply、或者直接用 mmoe 類(lèi)似的這種端到端訓(xùn)練做一個(gè) gate 網(wǎng)絡(luò)去做多專(zhuān)家分?jǐn)?shù)的融合,可以看到,還是我們通過(guò)構(gòu)建判別模型訓(xùn)練出來(lái)的 gate 網(wǎng)絡(luò)的效果會(huì)更好一些。
(3)多場(chǎng)景算法:DFFM
接下來(lái)第三個(gè)要介紹的是我們發(fā)表在今年 CIKM 的一個(gè)工作,叫 DFFM,這塊工作主要是面向單塔的多場(chǎng)景建模模型,利用動(dòng)態(tài)權(quán)重網(wǎng)絡(luò),對(duì)特征交互還有用戶(hù)行為進(jìn)行場(chǎng)景自適應(yīng)的學(xué)習(xí)。
特征交互和用戶(hù)行為,做推薦的同學(xué)應(yīng)該都比較了解,是 CTR 模型中很重要的兩個(gè)概念。
特征交互是很多深度推薦學(xué)模型的基礎(chǔ),比如我們通常會(huì)通過(guò)手動(dòng)的方式或者設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)的方式來(lái)實(shí)現(xiàn)二階、三階的交互構(gòu)建,或者直接通過(guò)MLP構(gòu)建更高階的隱式交互。
用戶(hù)在不同場(chǎng)景下會(huì)產(chǎn)生不同的行為,體現(xiàn)在特征交互上,會(huì)根據(jù)場(chǎng)景而有所差異,也就是說(shuō)不同的特征交互在不同場(chǎng)景上應(yīng)該會(huì)有不同的權(quán)重。其次,用戶(hù)行為可以反饋出用戶(hù)的一些興趣,用戶(hù)在不同場(chǎng)景下產(chǎn)生的歷史行為反映出用戶(hù)在當(dāng)時(shí)場(chǎng)景下的一些特定偏好,因此我們?cè)诙鄨?chǎng)景聯(lián)合建模的時(shí)候也應(yīng)該考慮這兩點(diǎn),即多場(chǎng)景下的共性和特性。
因此我們提出了一個(gè)面向特征交互以及用戶(hù)行為場(chǎng)景感知的建模模型 DFFM。它主要包含兩個(gè)模塊。第一個(gè) DFFI,是場(chǎng)景感知的特征交互模塊,第二個(gè) DFUB,是場(chǎng)景感知的用戶(hù)行為模塊。
場(chǎng)景感知的特征交互模塊以?xún)?nèi)積的交互方式為例,在不區(qū)分場(chǎng)景條件下,其實(shí)交互方式就是為兩個(gè)特征向量直接做內(nèi)積,在多場(chǎng)景下,我們會(huì)使用一些場(chǎng)景的表征,比如 domain id,然后把這種場(chǎng)景表征進(jìn)行一個(gè)轉(zhuǎn)化和拆分,成立一個(gè)動(dòng)態(tài)權(quán)重的網(wǎng)絡(luò),對(duì)原始特征進(jìn)行一個(gè)轉(zhuǎn)化。比如就是一個(gè)場(chǎng)景表征,通過(guò)轉(zhuǎn)化和拆分,把它分解成一個(gè)權(quán)重網(wǎng)絡(luò)和偏置,然后以此來(lái)對(duì)我們的一些原始特征,比如這里的 ei 和 ej 做一個(gè)轉(zhuǎn)化,在此基礎(chǔ)之上再進(jìn)行二階或者多階的特征交互,最終和原始的向量 concat 到一起,獲得 DFFI 模塊的一個(gè)輸出表征。這里交互方式肯定是不局限于內(nèi)積,也可以是外積或者是 DCN、autint 的一些交互方式。
第二個(gè)模塊,場(chǎng)景感知的用戶(hù)行為模塊。我們從用戶(hù)行為的粒度入手,利用場(chǎng)景相關(guān)的特征學(xué)習(xí)用戶(hù)行為之間的關(guān)聯(lián),具體而言就是 DFUB 模塊使用的是多頭自注意力機(jī)制來(lái)處理用戶(hù)行為序列。相比于傳統(tǒng)的多頭自注意力機(jī)制只考慮序列內(nèi)部的一些 item 交互,我們將 target item 和場(chǎng)景的表征都同時(shí)考慮進(jìn)來(lái)構(gòu)建多頭注意力網(wǎng)絡(luò)的 q-k-v 矩陣。它的轉(zhuǎn)換矩陣分為兩部分,一部分是它自身隨機(jī)初始化的一個(gè)旋轉(zhuǎn)矩陣,另一個(gè)就是由 target item 轉(zhuǎn)化而來(lái)的一個(gè)旋轉(zhuǎn)矩陣。通過(guò)這種方式,我們將 target item 和場(chǎng)景的信息,包含進(jìn)注意力機(jī)制的 item 之間的交互中,最終多頭的輸出會(huì) concat 到一起,作為 DFUB 模塊最終的表征輸出。
最終我們會(huì)綜合 DFFI 和 DFUB 兩個(gè)模塊的表征構(gòu)建一個(gè)分類(lèi)器,這個(gè)分類(lèi)器可以是一個(gè)簡(jiǎn)單的 MLP,或者其他更高級(jí)的一些分類(lèi)網(wǎng)絡(luò),還可以再疊加一些交互網(wǎng)絡(luò)。
這里展示了 DFFM 在兩份公開(kāi)數(shù)據(jù)上的一些離線(xiàn)效果評(píng)估,可以看到其相對(duì)于已有的一些 SOTA 模型,可以帶來(lái)比較明顯的效果增益。
同時(shí)我們把這個(gè)模型在三方媒體的場(chǎng)景上去做了落地,因?yàn)樗膱?chǎng)景數(shù)量相對(duì)來(lái)說(shuō)比較多,而且不是很確定,我們這里使用了一個(gè)單塔的模型進(jìn)行上線(xiàn)和驗(yàn)證??梢钥吹街鸩缴暇€(xiàn)了 DFFI 模塊以及完整的 DFFM 模塊,效果上都是有著比較明顯的增益,這里展示的是 ecpm 收益。
三、相關(guān)工作
最后,我們整理了近期發(fā)表的一些多場(chǎng)景和多任務(wù)方面的工作。
前兩個(gè)是多任務(wù)方面的,第一個(gè)就是 TAML,基于多粒度的專(zhuān)家網(wǎng)絡(luò)和級(jí)聯(lián)學(xué)習(xí)的多任務(wù)優(yōu)化;第二個(gè)是面向多任務(wù)的特征選擇框架。
下面五篇主要面向的是多場(chǎng)景建模,比如 DFFM 面向特征層面,主要包括一些特征的交互和用戶(hù)行為的建模;HAMUR 是面向交互網(wǎng)絡(luò)的場(chǎng)景適配器網(wǎng)絡(luò);Instance 主要是面向樣本層面的,也就是多場(chǎng)景中的樣本選擇算法;剛才介紹的 CausalInt,主要是面向多場(chǎng)景的訓(xùn)練框架,著重解決負(fù)向信息的遷移問(wèn)題;PLATE 是一個(gè)基于提示學(xué)習(xí)的遷移學(xué)習(xí)的新范式。
最后兩個(gè)是做多任務(wù)學(xué)習(xí)的聯(lián)合訓(xùn)練。綜合了多任務(wù)、多場(chǎng)景,多模態(tài)、多行為、多興趣,以及語(yǔ)言模型輔助推薦系統(tǒng)去做推薦的聯(lián)合建模方案。
以上就是本次分享的內(nèi)容,謝謝大家。
四、問(wèn)答環(huán)節(jié)
Q1: 模型離線(xiàn)全量訓(xùn)練的時(shí)候,比如用90天樣本,實(shí)驗(yàn)要比 base 好,但模型天級(jí)增量更新時(shí)實(shí)驗(yàn)比 base 的效果變差了,了解一下可能是哪些原因?
A1:主要是工程和算法的影響,工程上增量訓(xùn)練依賴(lài)實(shí)時(shí)特征獲取以及實(shí)時(shí)樣本回流,主要涉及到樣本的準(zhǔn)確性;算法層面上,增量更新時(shí),也會(huì)有一些策略影響模型更新的效果,比如學(xué)習(xí)率,樣本從一個(gè) batch size 到一個(gè)小批量的增量訓(xùn)練,學(xué)習(xí)率通常需要做一些調(diào)整,比如衰減或者更小的量級(jí)。然后是特征的準(zhǔn)入和淘汰上也會(huì)影響模型效果。然后不同的算法在增量訓(xùn)練過(guò)程中會(huì)有不同的策略,比如蒸餾模型的滾動(dòng)蒸餾,這些也都會(huì)影響模型效果,具體問(wèn)題需要具體排查了。
Q2: 多任務(wù)學(xué)習(xí)中有沒(méi)有一個(gè)額外的學(xué)習(xí)信號(hào)?就是通過(guò)什么方式來(lái)讓這三種不同類(lèi)型的專(zhuān)家學(xué)到不同的知識(shí)?
A2: 現(xiàn)在很多包括我們像 MMOE,還有 PLE 這些基于多專(zhuān)家網(wǎng)絡(luò),然后加上稀疏性門(mén)控網(wǎng)絡(luò)的這種模型,其實(shí)都會(huì)采用這種方式非常隱式的方式去學(xué)習(xí)他們權(quán)重之間的一個(gè)分布。一點(diǎn)是參數(shù)的初始化方式和隨機(jī)種子。第二點(diǎn)是專(zhuān)家權(quán)重網(wǎng)絡(luò)的輸出上增加一些擾動(dòng),擾動(dòng)可以歲訓(xùn)練過(guò)程逐漸減少。
Q3: 主場(chǎng)景可能樣本比較多,可能會(huì)支配整個(gè)學(xué)習(xí)過(guò)程,有沒(méi)有試過(guò)多個(gè)場(chǎng)景做一個(gè)自適應(yīng)的規(guī)劃,就類(lèi)似阿里 star 模型,類(lèi)似的一些方式有沒(méi)有用過(guò)?
A3: 其實(shí)我們之前和他們作者有過(guò)一些交流,就是這種方式可能在同一個(gè) batch 內(nèi),如果是有不同的場(chǎng)景的數(shù)據(jù),特別是場(chǎng)景數(shù)據(jù)比較多,然后你 batch 又比較小,這種情況下效果其實(shí)不是特別好。但是如果是像阿里這邊直接使用那種交替式訓(xùn)練,比如說(shuō)一個(gè) batch 只有一個(gè)場(chǎng)景的數(shù)據(jù),其實(shí)還是有一定的效果的。針對(duì)于這個(gè)之支配參數(shù),其實(shí)剛才有介紹過(guò)一個(gè)梯度主導(dǎo)的問(wèn)題,其實(shí)這篇這塊也有一些工作,然后我們其實(shí)之前也嘗試過(guò),其實(shí)一個(gè)最簡(jiǎn)單方法就是類(lèi)似于 grandnorm,直接從梯度的量綱去做一對(duì)梯度做一些懲罰,對(duì)梯度大的,根據(jù)訓(xùn)練的 step 去調(diào)節(jié)當(dāng)前這個(gè)任務(wù)所對(duì)應(yīng) loss 的權(quán)重。