
本文將分享淘寶個性化推薦場景中關(guān)于自適應(yīng)和無監(jiān)督的多場景建模的思考及實踐。這項工作發(fā)表在2022年CIKM上(論文題目: Scenario-Adaptive and Self-Supervised Model for Multi-Scenario Personalized Recommendation)。文中將介紹多場景建模是如何細(xì)粒度地刻畫全域場景和單場景的遷移關(guān)系來實現(xiàn)領(lǐng)域自適應(yīng),以及如何在多場景建模中引入無監(jiān)督數(shù)據(jù),還將介紹多場景建模在推薦召回階段的落地實踐。
一、背景介紹和方案動機
首先介紹多場景建模的業(yè)務(wù)背景、建模動機以及方案選型。本文將聚焦于推薦系統(tǒng)的多場景建模問題,這也是目前各個推薦系統(tǒng)普遍存在且亟待解決的問題。具體圍繞 5 個問題進行介紹。

1、問題一:什么是多場景
可以從業(yè)務(wù)視角和模型視角分別進行解釋。從業(yè)務(wù)視角來看,“場景”可以簡單地理解為推薦平臺上不同的推薦入口或者推薦承載頁面。舉例來說,比如在廣告領(lǐng)域中,相同的廣告可以在不同的媒體端進行投放,同時又可以對應(yīng)不同的投放形式,比如信息流形式的廣告,或者開屏廣告。在電商領(lǐng)域中,也會有非常豐富的推薦投放頁面,以淘寶為例,有首頁猜你喜歡的商品推薦界面、購物車內(nèi)的推薦場景以及商品詳情頁上的相關(guān)推薦等場景。在內(nèi)容推薦領(lǐng)域,比如我們的實際業(yè)務(wù) -- 淘寶逛逛,推薦頁面包含了一跳的雙列展示場景,以及點擊進入二跳后上下滑的沉浸式的無盡流的推薦等形式。在這些例子當(dāng)中,每一個承載的頁面都可以作為一個場景,而同樣一個推薦平臺也會有多種推薦場景,呈現(xiàn)出多場景的特點。
從模型建模的視角來看,多場景問題可以簡單的定義為共享同樣的特征空間和 label 空間,但是數(shù)據(jù)分布不同的多個數(shù)據(jù)集合。每一個推薦場景里記錄的數(shù)據(jù)都可以構(gòu)成對應(yīng)的數(shù)據(jù)集合,盡管每個數(shù)據(jù)集合有不同的來源,但是他們的特征體系以及 label 空間是一致的。
2、問題二:多場景的特點
?第一點,流量重疊,從用戶的角度出發(fā),對于同一個用戶,他在一個推薦產(chǎn)品或者一個推薦系統(tǒng)中是可以訪問到不同的場景的,并且在多個場景中會留下相應(yīng)的瀏覽、點擊等一些交互行為。
第二點,供給重疊,不管是廣告、商品還是內(nèi)容的投放,都可以投放到不同場景并在不同場景展現(xiàn)。
第三點,場景間的分布差異,從行為模式上,同一個用戶訪問了多個不同的場景,而該用戶在場景當(dāng)中的行為可能是不一樣的;同樣的,從供給的角度看,對于同一個廣告、商品或者內(nèi)容,它在不同的場景上面的投放所展現(xiàn)出的曝光表現(xiàn)以及互動表現(xiàn)也是不一樣的。因此在數(shù)據(jù)分布上,不同場景之間是存在差異的。因此, 我們現(xiàn)在面臨的多場景推薦問題,集中體現(xiàn)了對場景共性和特性的刻畫:用戶可能具有可延續(xù)的興趣,但在不同場景下的表現(xiàn)形式可能是不同的。
第四點,場景間的特征空間以及目標(biāo)是一致的,不同場景之間更多反映的是在數(shù)據(jù)分布上的差異,而在特征體系上其實是相對一致的。另外,場景間的 label 空間是一樣的,也就是說在多個場景之間建模的任務(wù)其實是相同的。比如在商品場景上建模點擊的任務(wù),或者是在內(nèi)容場景上建模完播或者長播等類型的任務(wù)。?
3、問題三:多場景建模的目標(biāo)
?結(jié)合具體的業(yè)務(wù)背景,我們希望通過多場景問題的建模來重點實現(xiàn)以下兩個方面的目標(biāo)。
第一個是在效果上的目標(biāo),重點優(yōu)化數(shù)據(jù)稀疏的問題。單一推薦場景通常面臨用戶行為數(shù)據(jù)比較稀疏的問題,而這種現(xiàn)象在一些小場景或者新場景上表現(xiàn)得尤其明顯。多場景問題其中一個重要目標(biāo)就是希望能夠通過多個場景之間的信息共享去緩解數(shù)據(jù)稀疏的問題,提升所有場景的業(yè)務(wù)指標(biāo)。
第二個是在迭代及運維成本上的目標(biāo),傳統(tǒng)的優(yōu)化方式是針對每一個場景分配專門的人員去維護并優(yōu)化獨立的模型,而當(dāng)一些新的場景接入時,可能又需要重復(fù)整個接入流程以及模型訓(xùn)練過程。這樣就相當(dāng)于所有的人員分配、模型部署工作以及維護成本都是和場景的數(shù)量呈正相關(guān)的,這會導(dǎo)致整個維護成本以及迭代成本相對較高。
從實際成本上考慮,我們希望能夠搭建統(tǒng)一的一套算法框架,同時服務(wù)到各個場景中,并且能夠支持新場景的快速接入,這是我們想通過多場景建模達(dá)到的另一個目標(biāo)。
另外需要強調(diào)的是,多場景問題和目前大家已知的多目標(biāo)以及跨域問題是有區(qū)別的。多場景問題重點體現(xiàn)在共享相同的特征體系,擁有多個不同的數(shù)據(jù)源,并且有相同的目標(biāo)。多目標(biāo)是針對同一個數(shù)據(jù)源有多個不同的優(yōu)化目標(biāo)。而跨域問題通常是分成一個源域和一個目標(biāo)域,一般是假設(shè)源域的數(shù)據(jù)量和效果都是較優(yōu)的,然后通過源域來輔助提升目標(biāo)域的效果。而多場景問題里每個場景并沒有優(yōu)劣關(guān)系,建模目標(biāo)是希望提升所有場景的效果。?
4、問題四:多場景問題的相關(guān)解決方案
在實際應(yīng)用落地的前期,針對這種多場景問題的建模我們對目前業(yè)界已有的方案進行了簡單的分類,大致分成以下四種類型。

?第一種是最直觀的,也是目前很多業(yè)務(wù)實踐落地選用的一個方案,即針對每個單獨的場景,采用這些場景各自的數(shù)據(jù)去分別訓(xùn)練單獨的模型,然后在上線部署以及預(yù)估時,每個場景會有單獨的模型。這種方式可以在不同場景下選擇目前業(yè)界已有的模型結(jié)構(gòu)來進行建模。
當(dāng)然這種方案也存在一些不足之處,主要集中在以下幾點,第一點就是這種方式不能很好地解決單場景的數(shù)據(jù)稀疏問題,這是因為無法利用到同類型的其他場景的特征信息補充,尤其在一些數(shù)據(jù)量比較小,或者行為數(shù)據(jù)比較稀疏的場景上,數(shù)據(jù)稀疏問題更為突出。第二點之前提到,這種單場景單模型的建模方式在模型維護和迭代成本方面,對人力和資源的消耗都比較高。第三點就是當(dāng)業(yè)務(wù)上有一些新場景接入時,也會存在成本較高的問題。
既然單場景單模型的方式存在樣本稀疏的問題,那么第二種解決方案就是把所有場景的樣本數(shù)據(jù)進行混合,用混合數(shù)據(jù)訓(xùn)練一個模型,然后將同一個模型部署到所有場景上。這種方式可以緩解第一類方案中的兩個問題,因為這種方案用到了所有場景的樣本,并且所有的場景共用同一個模型。然而它的不足之處體現(xiàn)在,這種比較粗暴的數(shù)據(jù)樣本混合訓(xùn)練破壞了各個場景之間自身的數(shù)據(jù)分布,會引入一些噪聲。另外,整體的模型效果可能會被其中某幾個大場景的數(shù)據(jù)主導(dǎo),從而影響到一些小場景的效果。
第三類解決方案是采用兩階段的訓(xùn)練方式,也就是先把所有的場景的樣本進行混合訓(xùn)練,訓(xùn)練一個 base 模型,然后再用每個場景各自獨立的樣本對原來的 base 模型進行場景內(nèi)微調(diào)。在模型的部署和預(yù)估上,同樣是每個場景用各自場景數(shù)據(jù)微調(diào)之后的模型進行上線和預(yù)估。這種方式的不足之處是每個場景需要單獨部署自己的模型。另外這種直接的預(yù)訓(xùn)練加微調(diào)的方式,也沒有很好的去建模場景和場景之間的關(guān)聯(lián)關(guān)系。
最后一類是目前業(yè)界主流的用來進行多場景建模的方式,通過借鑒多任務(wù)的學(xué)習(xí)架構(gòu),在模型結(jié)構(gòu)上考慮各個場景的數(shù)據(jù)來進行聯(lián)合建模,并?且通過模型結(jié)構(gòu)的設(shè)計來刻畫場景之間的共性表達(dá)以及差異性的表達(dá)。近兩年在業(yè)界有比較多的嘗試和落地,比如 SAR.NET 通過類似 MMOE 的方式進行訓(xùn)練,STAR 則通過構(gòu)建這種全局共享的網(wǎng)絡(luò)以及每個場景特有的網(wǎng)絡(luò),通過模型參數(shù)之間矩陣映射的方式來實現(xiàn)這種場景差異性的刻畫,以及其它通過動態(tài)參數(shù)網(wǎng)絡(luò)的方式來刻畫這種場景差異性的一些工作。
考慮到前三類方法的不足,我們選擇了基于聯(lián)合訓(xùn)練的方式展開后續(xù)工作。
5、問題五:實際業(yè)務(wù)中多場景建模面臨的挑戰(zhàn)

而在我們實際的業(yè)務(wù)落地過程中,對于這種通過統(tǒng)一的模型來進行多場景的聯(lián)合建模,我們也面臨著一些更加具體的挑戰(zhàn),主要體現(xiàn)在以下幾個方面。
挑戰(zhàn)一:我們采用聯(lián)合建模的方式,是希望能充分利用所有場景的信息來解決單場景的數(shù)據(jù)稀疏問題,其本質(zhì)是希望把其他場景的有效信息遷移到指定場景中,盡管前面提到的一些方法通過參數(shù)矩陣運算或者動態(tài)參數(shù)網(wǎng)絡(luò)等方式來刻畫場景的共性和差異,但這些變換方式是相對隱性的,無法可解釋地量化其他場景是否向指定場景遷移了信息,以及遷移了多少信息。因此, 如何實現(xiàn)精細(xì)化的有效場景信息遷移,是我們面臨的第一個挑戰(zhàn)。簡單來說就是,怎么來建模是否要遷移信息,以及遷移多少信息。
挑戰(zhàn)二:我們在模型訓(xùn)練的時候主要還是基于用戶交互行為,比如商品點擊或者視頻完播這樣的正反饋信號來構(gòu)造正樣本,也就是在有標(biāo)簽的樣本數(shù)據(jù)上進行訓(xùn)練,這對于一些行為較少的場景會存在比較嚴(yán)重的數(shù)據(jù)稀疏問題。如果我們能夠借助一些無監(jiān)督的任務(wù),將訓(xùn)練數(shù)據(jù)從有標(biāo)簽樣本空間擴展到無標(biāo)簽樣本空間,將有助于緩解數(shù)據(jù)稀疏的問題。
挑戰(zhàn)三:我們都知道整個推薦鏈路分為召回、排序等幾個核心階段。在前期的調(diào)研中,我們發(fā)現(xiàn)針對多場景問題的聯(lián)合建模,主要都是集中在了排序階段,包括前面列出的一些模型,基本都是排序的模型。而召回作為整個推薦鏈路的第一階段,面對的候選規(guī)模和檢索方式和排序是有很大差別的。因此,如何把多場景聯(lián)合建模如何在召回階段進行落地也是我們面臨的一個挑戰(zhàn)。
二、場景自適應(yīng)與無監(jiān)督的多場景模型(SASS)
下面介紹一下我們在實際業(yè)務(wù)落地時的模型方案,這個模型簡稱為 SASS。這一方案主要聚焦于三個核心關(guān)鍵詞,第一個是場景的自適應(yīng)遷移(Scenario-Adaptive),第二個是無監(jiān)督(Self-Supervised),第三個是針對召回任務(wù)的落地探索。

整體的模型框架包含了兩個階段,一個是預(yù)訓(xùn)練任務(wù),另一個是微調(diào)任務(wù)。其中階段一是在無標(biāo)簽的樣本集合上構(gòu)建一個無監(jiān)督的預(yù)訓(xùn)練任務(wù),通過對比學(xué)習(xí)來建模場景和場景之間的關(guān)系。另外,因為整個模型是在召回階段落地,需要對 user 側(cè)和 item 側(cè)進行獨立建模,因此在 user 側(cè)和 item 側(cè)我們進行了對稱的結(jié)構(gòu)設(shè)計。
第二個階段是微調(diào)任務(wù),會在第一階段的基礎(chǔ)上進行模型結(jié)構(gòu)的復(fù)用,包括加載第一階段預(yù)訓(xùn)練的 embedding 和網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)。此外,第二階段是在有標(biāo)簽的樣本空間上訓(xùn)練一個召回的任務(wù),然后輸出 user 側(cè)和 item 側(cè)的表征向量。接下來具體介紹一下這兩個階段。
1、階段一:預(yù)訓(xùn)練任務(wù)

?首先,在第一個階段的預(yù)訓(xùn)練任務(wù)中,我們構(gòu)建一個場景和場景之間的對比學(xué)習(xí)的無監(jiān)督任務(wù)。如圖右上角部分所示,大家應(yīng)該對對比學(xué)習(xí)的經(jīng)典訓(xùn)練范式都比較熟悉,同一個對象x通過兩種不同的數(shù)據(jù)增強的方式得到兩個不同的特征集合,然后通過特征的抽取網(wǎng)絡(luò)及映射網(wǎng)絡(luò),最終得到同一個對象的兩個不同的向量表達(dá),隨后就可以通過對比學(xué)習(xí)的度量 loss 來拉近這兩個向量之間的表征距離,以此來實現(xiàn)無監(jiān)督的預(yù)訓(xùn)練任務(wù)。
在對比學(xué)習(xí)思路的啟發(fā)下,我們將多場景建模中場景和場景之間的對齊表達(dá)和對比學(xué)習(xí)的預(yù)訓(xùn)練任務(wù)進行了結(jié)合。前面提到了同一個用戶可能會訪問多個不同的場景,并且在不同的場景中有不同的交互行為,并留下一些和場景相關(guān)的統(tǒng)計信息。因此我們可以把這種用戶在不同場景上面的行為差異視作一種天然的數(shù)據(jù)增強的方式,同一個用戶的興趣有延續(xù)性,但是他在不同的場景之間的表達(dá)可能存在一定的差別。然后我們在此基礎(chǔ)上構(gòu)建一個對比學(xué)習(xí)的無監(jiān)督的任務(wù)。
從具體的模型看,如圖左側(cè)所示, 我們對不同的場景會構(gòu)建一個統(tǒng)一的特征體系, 但特征的具體取值是和場景對應(yīng)的,比如我們把用戶的行為序列分場景拆開,用戶在各自場景有對應(yīng)的興趣偏好等統(tǒng)計特征。通過這樣的拆分方式,同一用戶有場景相關(guān)的多個不同的特征值集合。比如圖中同一個用戶在場景 a 和場景 b 的特征,然后通過一個統(tǒng)一的表征網(wǎng)絡(luò)(這個表征網(wǎng)絡(luò)后面會介紹),我們可以得到同一用戶在不同場景各自的表征向量,最后通過對比學(xué)習(xí)的 loss 來拉近兩者的度量距離。
剛才說的是 user 側(cè)的訓(xùn)練方式,在召回任務(wù)里 user 側(cè)和 item 側(cè)通常都是各自獨立建模的。因此 item 側(cè)也采用對稱的結(jié)構(gòu)和任務(wù)來訓(xùn)練,并且 user 側(cè)和 item 側(cè)是共享相同的 embedding 層的。具體來說,對于同一個 item,我們把 item 側(cè)的特征取值也分場景拆分開,通過 item 側(cè)的表征網(wǎng)絡(luò)后,得到每個場景各自的向量表達(dá),然后采用相同的對比學(xué)習(xí) loss 進行訓(xùn)練。
在樣本構(gòu)造的時候我們有個特殊處理是,一個用戶訪問的場景可能大于 2 個,因此在構(gòu)造對比學(xué)習(xí)的訓(xùn)練任務(wù)的時候,我們會對用戶訪問過的場景兩兩組合來構(gòu)造出多條訓(xùn)練樣本。同樣在 item 側(cè)也是通過這種兩種組合的方式來構(gòu)造出多條樣本。
在具體的對比學(xué)習(xí)任務(wù)上?,我們沿用了 InfoNCE 的 loss 形式來進行訓(xùn)練。
我們通過建模場景和場景之間對比學(xué)習(xí)的任務(wù)來實現(xiàn)多個場景之間對于無標(biāo)簽數(shù)據(jù)的預(yù)訓(xùn)練,接下來介紹整個模型框架里面比較重要的表征網(wǎng)絡(luò)的設(shè)計細(xì)節(jié)。

模型中場景表征網(wǎng)絡(luò)是一個多層的、場景的自適應(yīng)的遷移網(wǎng)絡(luò)。首先從整體模型結(jié)構(gòu)上,在模型的 embedding 層是共享參數(shù)的。而這種表征網(wǎng)絡(luò)從整體上可以分為幾個組成部分,第一個是全場景共享的網(wǎng)絡(luò),也就是圖中模型左側(cè)的藍(lán)色部分,這里的全局共享網(wǎng)絡(luò)是所有場景的樣本都會經(jīng)過這里進行訓(xùn)練,可以看作是對 user 側(cè)或者 item 側(cè)所有的場景樣本混合進行訓(xùn)練的表征結(jié)構(gòu)。
第二部分是每一個場景各自特有的網(wǎng)絡(luò)結(jié)構(gòu),也就是圖中每個場景對應(yīng)的灰色部分。每個場景對應(yīng)的樣本經(jīng)過相應(yīng)的網(wǎng)絡(luò)來進行訓(xùn)練,由于每個場景的網(wǎng)絡(luò)層參數(shù)是分開的,這種訓(xùn)練及表征就可以很好地刻畫每個場景之間各自分布的差異性。另外在圖中左下角部分,我們也引入了一個輔助的 bias 網(wǎng)絡(luò)。這個 bias 網(wǎng)絡(luò)的輸入包括場景 id 以及某些場景所特有的特征,還有一些上下文的特征。這樣可以在共有體系的基礎(chǔ)上進一步刻畫場景自身上下文之間的差異和 bias 信息。
在具體的訓(xùn)練過程中,每條樣本通過統(tǒng)一的特征 embedding 層并進行拼接之后,會進入到全場景共享網(wǎng)絡(luò)以及這條樣本所對應(yīng)的場景所特有的網(wǎng)絡(luò),進行前向傳播以及反向傳播的網(wǎng)絡(luò)訓(xùn)練。
同時在整個網(wǎng)絡(luò)結(jié)構(gòu)當(dāng)中全場景共享網(wǎng)絡(luò)每一層的輸出都會通過一個場景自適應(yīng)的門控單元,把全場景的融合信息遷移到單場景上,以此來實現(xiàn)場景信息之間精細(xì)化的遷移。具體可以參考圖中模型右上角的結(jié)構(gòu),該遷移結(jié)構(gòu)重點包含一個 adaptive gate 和一個 update gate。其中 adaptive gate 的輸出值用來控制全場景的信息中有多少是能夠被遷移到單場景上面去的,而 update gate 的輸出是控制從全場景網(wǎng)絡(luò)遷移過來的信息和單場景原有的信息進行加權(quán)融合的權(quán)重值。這兩個 gate 網(wǎng)絡(luò)的輸入包含了全場景網(wǎng)絡(luò)的信息、單場景網(wǎng)絡(luò)的信息以及場景自身 bias 的信息。通過這種精細(xì)化的、自適應(yīng)的遷移結(jié)構(gòu)去建模表征場景的遷移方向以及遷移信息量。我們將該遷移結(jié)構(gòu)堆疊多層,最終每條樣本都可以得到它在各自對應(yīng)場景上面的一個向量表征。最后,每個場景各自的輸出和對應(yīng)的場景上 bias 的輸出進行融合,得到它在對應(yīng)的場景上最終的向量表達(dá)。
2、階段二:微調(diào)任務(wù)

第二階段是微調(diào)任務(wù)。由于我們想將模型落地到推薦鏈路的召回階段,因此微調(diào)任務(wù)和召回任務(wù)的目標(biāo)是對齊的。在樣本選擇上,我們采用 user 點擊的 item 作為正樣本,通過隨機采樣的方式來構(gòu)造負(fù)樣本,然后通過構(gòu)造三元組的方式來進行 pairwise loss 的計算,從而進行訓(xùn)練。
另外,在微調(diào)階段我們會進行模型結(jié)構(gòu)以及參數(shù)的復(fù)用,即我們會在微調(diào)階段的模型結(jié)構(gòu)上重新采用和預(yù)訓(xùn)練階段相同的表征網(wǎng)絡(luò)結(jié)構(gòu),并且會去加載預(yù)訓(xùn)練階段的 embedding 層以及網(wǎng)絡(luò)參數(shù),相當(dāng)于將第一階段場景之間無監(jiān)督訓(xùn)練的信息保留下來。
在微調(diào)階段的 user 側(cè)和 item 側(cè)的度量匹配任務(wù)上面,我們也引入了一個新的輔助任務(wù)來幫助訓(xùn)練。前面提到每條樣本在通過表征網(wǎng)絡(luò)進行表征后可以得到兩個向量表達(dá),一個是每個單場景網(wǎng)絡(luò)特有的向量輸出,這個向量刻畫了它在每個對應(yīng)場景上面的獨立的表達(dá);另外一個是全局共享的向量輸出,刻畫了 user 特征或者 item 特征在全域上的表達(dá)。因此在整個的微調(diào)階段的訓(xùn)練任務(wù)中包含了兩個 loss,一個是單場景的網(wǎng)絡(luò)所輸出的 user embedding 以及 item embedding 之間訓(xùn)練的 loss;另外一個就是全場景網(wǎng)絡(luò)對應(yīng)輸出的 user embedding 以及 item embedding 也可以通過這樣一種計算方式得到另一個 loss,最后兩個 loss 的加權(quán)和作為最終的 loss 進行訓(xùn)練。而引入全場景 loss 的輔助任務(wù),相當(dāng)于刻畫同用戶和 item 在全域的表達(dá),盡管它的表達(dá)可能并不適配于各自場景的獨立特征表達(dá),但是如果把它加到一個全局的任務(wù)中訓(xùn)練后,對整體效果的收斂是有好處的,后面的實驗分析也可以論證這一點。
接下來介紹一下如何去部署召回模型。在模型訓(xùn)練完成后,我們會把微調(diào)階段的模型進行部署上線。在線上預(yù)估時,每個場景的信息會通過模型上對應(yīng)場景的網(wǎng)絡(luò)得到在該場景下的表征向量。
另外,在輔助任務(wù)中全場景網(wǎng)絡(luò)的輸出只在訓(xùn)練階段使用,因為它是混合樣本,可能存在一些噪聲,然后在預(yù)估的時候,每個場景還是使用各自場景輸出的那個特征向量。針對召回任務(wù),在 item 側(cè)我們會針對所有的候選去生成這個向量,之后去構(gòu)造成相應(yīng)的索引,再通過模型部署,在線預(yù)估的時候生成向量。隨后通過向量檢索獲取到 topk 的結(jié)果,最后把結(jié)果返回給排序階段,來進行整個推薦鏈路后續(xù)的一些操作。
三、實驗分析和落地應(yīng)用
接下來介紹一下利用該模型進行的一些實驗分析和已經(jīng)落地的應(yīng)用。

我們是在兩個開源數(shù)據(jù)集以及自身業(yè)務(wù)的工業(yè)數(shù)據(jù)集上面與其他方法進行了效果比較。
對比的方法主要分成三類,第一類是傳統(tǒng)的單場景模型,因為我們關(guān)注的是一個召回任務(wù),因此對比目前業(yè)界比較流行的一些召回方法,比如 YouTubeDNN、MIND、BST、DSSM 等。這些單場景模型都是用各自場景各自獨立的樣本來進行訓(xùn)練。第二類是用多個場景混合的樣本進行訓(xùn)練,模型上仍然選用目前業(yè)界常用的單場景模型。第三類是業(yè)界已有的和我們提出的多場景聯(lián)合建模的一些方法,其中一些方法是用在排序階段,而針對在召回階段的落地實踐,為了更好地對比,我們對這些方法稍加改造——即取排序模型網(wǎng)絡(luò)最后一層的輸出作為一個表征向量去適配召回任務(wù)。
上表中最后兩列是我們提出的模型,其中 SASS-Base 是不加預(yù)訓(xùn)練的模型結(jié)構(gòu),而 SASS 是增加了預(yù)訓(xùn)練階段。由于我們驗證的第二個數(shù)據(jù)集存在特征缺失問題,不能夠支撐預(yù)訓(xùn)練任務(wù),因此針對這個數(shù)據(jù)集我們重點比較了 SASS-Base 和其他方法的效果。
從多種類型的方法對比當(dāng)中,我們得到了幾個比較有價值的結(jié)論。第一點是采用混合樣本訓(xùn)練的單場景模型在大多數(shù)情況下的效果反?而不如單場景用自己單獨的樣本進行訓(xùn)練。這和我們前面論證及調(diào)研的結(jié)論是相符合的,即這種混合樣本的方式可能會引入比較多的噪聲,而且打破了每個場景原本的數(shù)據(jù)分布。但是對于一些數(shù)據(jù)特別稀疏的小場景,混合樣本反而達(dá)到比較好的效果。因為對于這些場景,用本身稀疏的數(shù)據(jù)進行訓(xùn)練其實是很難學(xué)到有效信息的,采用這種混合樣本的方式,雖然數(shù)據(jù)上面可能是有偏的,但能夠通過樣本量的增加帶來一些收益和效果的提升。
第二個結(jié)論是通過多場景聯(lián)合建模的方式訓(xùn)練得到的模型普遍優(yōu)于前兩類單場景的建模方法,我們提出的模型在不增加預(yù)訓(xùn)練任務(wù),即 SASS-Base 模型結(jié)構(gòu)上,在各個場景基本上也優(yōu)于或者可以和其他多場景聯(lián)合建模方式取得差不多的效果。而在疊加了預(yù)訓(xùn)練任務(wù)后,整體的效果有了進一步的提升。?

?后續(xù)我們又進行了一系列的消融實驗,主要包括以下幾個部分。
第一個是刻畫全域場景到單場景上信息遷移的自適應(yīng)的 gate 結(jié)構(gòu)。我們對模型的 gate 網(wǎng)絡(luò)上的結(jié)構(gòu)和目前已有的其他類型的 gate 遷移方式進行了對比,包括(1)利用矩陣乘法映射的方式來實現(xiàn)信息遷移;(2)使用類似于 Simnet 這樣兩個特征進行加法、乘法以及拼接,然后通過 MLP 的方式來進行融合的這種遷移方式;(3)類似 MOE 這樣的結(jié)構(gòu),通過 Sigmoid gate 來進行遷移的網(wǎng)絡(luò)結(jié)構(gòu)。最后從實際實驗效果來看,我們這種自適應(yīng)的方式能夠取得不錯的效果。
第二點是針對是否要增加預(yù)訓(xùn)練的任務(wù)以及不同的預(yù)訓(xùn)練任務(wù)類型對實驗結(jié)果影響的對比。對比的預(yù)訓(xùn)練方式是通過用戶的行為序列來對下一個視頻或者下一個 item 預(yù)測的訓(xùn)練任務(wù)。經(jīng)結(jié)果比較,可以證明增加了預(yù)訓(xùn)練的任務(wù),并且通過這種場景和場景之間的對比學(xué)習(xí)可以提升模型的效果。
第三點是去論證模型結(jié)構(gòu)設(shè)計中的輔助網(wǎng)絡(luò)以及一個輔助任務(wù)。其中一個是我們在微調(diào)階段引入了全局共享的網(wǎng)絡(luò),利用該網(wǎng)絡(luò)輸出的結(jié)果來進行輔助的微調(diào)訓(xùn)練,另外一個是在我們的網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計中,針對每個場景的輸出,去融合場景相關(guān)的 bias 特征的消融實驗。實驗結(jié)果也證明了這兩個結(jié)構(gòu)的添加對整體模型效果有一定的提升。
另外,由于我們的表征網(wǎng)絡(luò)是一個多層的信息遷移結(jié)構(gòu),因此我們也對比了這種網(wǎng)絡(luò)層數(shù)的增加對我們模型效果的提升??梢钥吹秸w的趨勢是隨著網(wǎng)絡(luò)層數(shù)的增加,模型效果是先提升然后再下降的。后續(xù)網(wǎng)絡(luò)層數(shù)增加所引起的效果變差,我們分析可能是因為網(wǎng)絡(luò)層數(shù)增加后整個參數(shù)量隨之增加,會存在一些過擬合現(xiàn)象。另外在得到上層表征之后再進行這種大量的信息遷移,可能會使得單場景的表征更容易受到全場景信息的影響。因此這種多層網(wǎng)絡(luò)結(jié)構(gòu)的層數(shù)增加在一定程度上可以提升效果,但是網(wǎng)絡(luò)層數(shù)并不一定越多越好。
下一組實驗,我們針對召回任務(wù)對比了不同 item 側(cè)的表征向量,因為在召回上每個場景都會生成各自的向量。在一些多場景建模時,user 側(cè)會對應(yīng)有各自不同的表達(dá),但在 item 側(cè)并沒有詳細(xì)地去刻畫,而在我們的召回任務(wù)當(dāng)中 user 側(cè)和 item 側(cè)對應(yīng)的都是它在每個場景下各自獨立的向量表達(dá),因此我們也對比了每個場景對應(yīng)的 item 表達(dá)以及場景共享的同一個 item 側(cè)的 embedding。通過對比發(fā)現(xiàn),在 item 側(cè)同樣能夠區(qū)分開各個場景獨立的向量表達(dá)。
最后我們將這個模型在一個實際的內(nèi)容推薦場景上面進行了在線的 A/B 實驗。在一些實驗指標(biāo)上取得了不錯的效果,尤其在一些相對來說比較小或者數(shù)據(jù)比較稀疏的場景中,提升幅度更高一些。
目前我們提出的模型方案已經(jīng)在淘寶的內(nèi)容推薦場景,包括短視頻、圖文推薦等場景上完成推廣,并且這個模型在各個場景都成為了主要的召回方式之一。?
四、總結(jié)

最后進行一下總結(jié)。整體上,我們想要解決的問題就是推薦領(lǐng)域中的多場景建模的問題,這也是目前在推薦系統(tǒng)當(dāng)中普遍存在的一個問題。而針對這種多場景建模,我們的核心目標(biāo)是希望能夠通過構(gòu)建一套統(tǒng)一的框架最大化各個場景之間的信息使用。通過這種聯(lián)合建模的方式解決數(shù)據(jù)稀疏問題,同時去提升各個場景的業(yè)務(wù)指標(biāo)。并且通過同樣的一套方法架構(gòu)降低模型迭代以及部署的成?本。
但是在我們的實際業(yè)務(wù)應(yīng)用當(dāng)中,多場景建模面臨著三個核心挑戰(zhàn)。第一個是如何實現(xiàn)精細(xì)化以及有效場景信息的遷移;另外在多場景建模里面怎樣解決數(shù)據(jù)稀疏的問題,怎樣去引入一些無標(biāo)簽數(shù)據(jù);然后第三點就是多場景聯(lián)合建模在召回階段進行落地。
在我們的實踐當(dāng)中,通過去設(shè)計這種自適應(yīng)的場景信息遷移的網(wǎng)絡(luò)架構(gòu),以及構(gòu)建場景和場景之間的對比學(xué)習(xí)的無監(jiān)督任務(wù),并且包括在模型結(jié)構(gòu)設(shè)計、訓(xùn)練方式以及部署上去適配召回階段的任務(wù)來解決上面的挑戰(zhàn)。最后,這種場景自適應(yīng)的無監(jiān)督模型目前在全場景上較好地落地,并且是作為一個主要的召回方式。?
五、問答環(huán)節(jié)
Q1:用什么指標(biāo)來評估模型在每個場景的提升?
A1:這是模型評估方面的問題,需要和各場景的建模目標(biāo)對應(yīng),然后分場景去看指標(biāo)的提升。如果是召回階段的任務(wù)的話,就是在對應(yīng)的每個場景上面去選擇召回相關(guān)的評估指標(biāo),比如 Hit Rate 或者 NDCG。如果是在排序階段,就主要關(guān)注 AUC、GAUC 這樣一些排序相關(guān)的指標(biāo)。
Q2:SASS 的兩個場景的 feature 是否相同?
A2:首先,因為我們整體解決的是一個多場景的問題。如定義所示,就是在每個場景之間,樣本很大程度上是對齊的,因此我們在實際建模時,也是盡量把所有的特征進行對齊和拉平。另外,針對每個場景內(nèi)還是有一些自己特有的特征的情況,我們設(shè)計了場景 bias 的網(wǎng)絡(luò),對于那些沒有辦法完全對齊的特征,我們會把它放在這個單獨的網(wǎng)絡(luò)結(jié)構(gòu)當(dāng)中。
Q3:有考慮把代碼開源嗎?
A3:這套代碼目前正在公司實際業(yè)務(wù)場景中使用,開源需要符合公司的信息披露合規(guī)要求。我們后續(xù)會進行溝通,可能會提供一個 demo 版本進行開源。
Q4:召回階段也是用的這些模型嗎?
A4:我們目前的這個模型本身就是在召回階段來進行落地的,因此整個模型也是部署在這樣一個召回階段,當(dāng)然我們提供的是一個比較通用的方案,通過一些改造也是完全可以作為排序模型使用的。
Q5:模型用了哪種負(fù)采樣?
A5:負(fù)采樣主要是在微調(diào)階段進行。我們采用的是在召回任務(wù)當(dāng)中比較通用的負(fù)采樣方式,其中將用戶的點擊作為正樣本,而負(fù)樣本是會在每個場景當(dāng)中根據(jù) Item 的曝光概率做一個隨機的負(fù)采樣。然后在多場景上面,因為我們整體訓(xùn)練任務(wù)還是會在每個場景各自去進行訓(xùn)練。因此在負(fù)采樣的時候,正樣本對應(yīng)的負(fù)樣本也是會在這個場景所對應(yīng)的曝光空間里面進行負(fù)樣本的隨機采樣,通過這樣來構(gòu)造出這種正負(fù)樣本的 pair 對的形式。
Q6:淘寶信息流的商品短視頻場景頁、話題頁都是可以用這一套模型嗎?是否可以和商品推薦場景結(jié)合?目標(biāo)是否需要統(tǒng)一?比如視頻有時長目標(biāo)。
A6:這個問題稍微有點大,我拆分一下,就是目前我們這一套模型是落地在淘寶上的內(nèi)容推薦場景,就是整體是以內(nèi)容為主要的載體,包含圖文和視頻。這一塊是完全適配的,因為它整體的特征體系是基本一致的,可完全復(fù)用。然后另外一點其實也是我們下一階段要做的工作,就是里面可能提到商品以及內(nèi)容,他們本身的數(shù)據(jù)分布以及特征體系其實是不一樣的,這個可以理解為更像是一個跨域的問題,是商品域和內(nèi)容域之間的一個融合。我們下一階段的工作也是希望能夠在多場景當(dāng)中引入這樣一些跨域的思想,能夠把商品域的一些行為信息遷移到內(nèi)容域上面,這個是第一點。第二點的話關(guān)于目標(biāo)統(tǒng)一,我們現(xiàn)在是做了目標(biāo)的統(tǒng)一。比如說在首頁點擊上,我們是用用戶的點擊信號來作為正樣本,而在這種無盡流上下滑中, 其實沒有用戶點擊,然后我們用的是用戶的長播、完播等時長信號作為正反饋,也就是整體把 label 打平到這樣一種二元的維度。
Q7:可以詳細(xì)介紹一下場景之間對比學(xué)習(xí)無監(jiān)督任務(wù)嗎?
A7:整體的話還是仿照這種對比學(xué)習(xí)的思路,其實重點是通過場景和場景之間的特征拆分之后然后去構(gòu)建預(yù)訓(xùn)練任務(wù),可以再參考我前面 PPT 部分的講解或者我們論文中的介紹(Scenario-Adaptive and Self-Supervised Model for Multi-Scenario Personalized Recommendation)。
Q8:預(yù)訓(xùn)練模型的 user 側(cè)和 item 側(cè)用的是點擊樣本嗎?
A8:預(yù)訓(xùn)練任務(wù)是在沒有標(biāo)簽的一個空間上面的進行的,比如說某個用戶 訪問的 a 和訪問的 b 這兩個場景,以及該用戶有一些靜態(tài)的屬性特征,和歷史保存下來的在每個場景對應(yīng)的用戶行為序列,然后這樣構(gòu)成了同一個用戶在 a 和 b 這兩個場景的一個特征體系。預(yù)訓(xùn)練的建模目標(biāo)是去建模這個有訪問的用戶,在場景 a 和場景 b 之間通過這樣一種特征度量之后拉近這兩個表征向量之間的距離。因此它其實是一個無監(jiān)督的任務(wù),是在無點擊的樣本空間上面來進行訓(xùn)練的。
Q9:各個場景的多目標(biāo)怎樣融合?
A9:這個其實是另一個問題了,目前我們解決的是多場景問題,我們是希望所有的場景之間都是共享了同一個目標(biāo),比如說點擊的目標(biāo)或者說我們轉(zhuǎn)化的這樣一種二分類的目標(biāo),它其實刻畫了用戶對這個內(nèi)容或者說對這個視頻是否感興趣。至于剛才提到的多場景多目標(biāo)的方式,其實是和多場景有一些區(qū)別,但是我理解是可以把這樣一種多目標(biāo)建模的方式構(gòu)建在這個多場景建模上面的。因為目前也有很多工作是在做多場景和多目標(biāo)的聯(lián)合表征的任務(wù),比如說在我們現(xiàn)在這種架構(gòu)上,通過表征網(wǎng)絡(luò)后每一個樣本對應(yīng)在每一個場景上面會有一個獨立的向量表達(dá),如果我們將這個向量表達(dá)作為輸入,在此基礎(chǔ)上再去針對每一個目標(biāo)構(gòu)建一個特有的目標(biāo)相關(guān)的特征網(wǎng)絡(luò),其實也是可以做多目標(biāo)和多場景聯(lián)合的任務(wù)。你可以把我們現(xiàn)在的這種多場景的訓(xùn)練方式當(dāng)成一個基礎(chǔ)框架,然后在它的基礎(chǔ)上再去建模其他的一些多目標(biāo)的任務(wù)。這個我感覺是 make sense的。
Q10:預(yù)訓(xùn)練階段的對比學(xué)習(xí)的 loss 是怎么設(shè)計?
A10:這個 loss 其實是和傳統(tǒng)的對比學(xué)習(xí)的方案比較相似的,我們也是選用 InfoNCE loss,也就是在一個 batch size 為 n 的訓(xùn)練樣本中,把同一個用戶或者 item 在對應(yīng)場景生成的兩個向量當(dāng)成正樣本,其他樣本所對應(yīng)的產(chǎn)生的 2n-2 個向量當(dāng)成它的負(fù)樣本,這樣構(gòu)造 loss 來進行訓(xùn)練。
Q11:預(yù)訓(xùn)練階段 item 怎么構(gòu)造多 view?
A11:剛才重點介紹的是 user 側(cè),那么 item 側(cè)其實也是同樣的結(jié)構(gòu)。針對 item 側(cè),同樣是有一個 item 自身的全局共享網(wǎng)絡(luò)以及針對每個場景每個 item 它在各自每個場景上面的一個網(wǎng)絡(luò)參數(shù)的表達(dá)。因此通過同樣的一個模型方式,和 user 側(cè)是完全對稱的一個結(jié)構(gòu)。每個 item 會通過這樣一個全局共享的參數(shù)遷移,以及每個場景自身的網(wǎng)絡(luò)結(jié)構(gòu),最終會有一個獨立的和場景相關(guān)的輸出。
Q12:請問一下模型的時效性是怎樣的?多久更新一次模型?是流式訓(xùn)練嗎?
A12:這個問題很好。我們目前的這個模型其實是離線訓(xùn)練的,是天級別的更新的。然后我們也是在做一些替換性的嘗試,希望能夠提升它的一個時效性,通過 online learning 的方式進行流式訓(xùn)練。當(dāng)然目前還遇到一些問題,主要就是體現(xiàn)在這樣一種多場景訓(xùn)練的方式上,其實它需要去同時引入多源的數(shù)據(jù),那么在這種流式訓(xùn)練當(dāng)中,多個源的數(shù)據(jù)怎么能同時接入,以及如何保證訓(xùn)練穩(wěn)定其實是比較大的挑戰(zhàn)的,所以我們目前的模型還是這種離線天級別更新的。后面可能會做一些嘗試,比如說把目前的這種離線的多場景聯(lián)合訓(xùn)練當(dāng)成一個 base 模型,然后在單場景上面通過模型 restore 后進行流式數(shù)據(jù)的微調(diào),通過這樣一種方式來進行迭代更新。
Q13:預(yù)訓(xùn)練的樣本如何構(gòu)造?
A13:這個剛剛其實也介紹了。整體核心點還是在于同一個用戶在不同場景上面對一些特征的表達(dá)進行拆分,比如說 a 和 b 兩個場景,它有些靜態(tài)特征,同時在對應(yīng)場景上面它會留下各自獨立的用戶行為序列,以及這樣一個 user 在對應(yīng)的場景上面的一些統(tǒng)計信息,如類目偏好、賬戶偏好以及一些點擊曝光等統(tǒng)計特征。這樣相當(dāng)于把數(shù)據(jù)的特征構(gòu)造分場景的拆開,可以使得同一個用戶在不同場景有不同的特征。這個是特征上面的構(gòu)造,然后在樣本上面的話就是剛剛提到的,一個用戶如果訪問了多個場景,然后場景之間兩兩組合去構(gòu)造這樣一種樣本對的形式。然后在 item 側(cè),一個 item 可能會投放到多個場景上,那么多個場景之間這樣兩兩組合的方式也可以構(gòu)造 item 的樣本。
Q14:預(yù)訓(xùn)練對比學(xué)習(xí)有指標(biāo)評估嗎?
A14:我們的預(yù)訓(xùn)練階段是一個無監(jiān)督的任務(wù),我們重點想要通過預(yù)訓(xùn)練的任務(wù)拿到它的 embedding 的表征,以及對應(yīng)的網(wǎng)絡(luò)參數(shù)的初始化。因此我們在針對預(yù)訓(xùn)練對比學(xué)習(xí)這一塊評估的時候,主要是通過預(yù)訓(xùn)練階段產(chǎn)出的向量的做可視化的聚類來分析效果。
Q15:多場景模型在某些場景有正收益,但在某些場景是負(fù)收益,那負(fù)收益的場景怎么做調(diào)整優(yōu)化?
A15:這個其實還是關(guān)于場景的共性和差異性上的一個刻畫,我們設(shè)計的多場景方案的初衷是希望能夠通過統(tǒng)一的模型加固之后,再在各個場景上面進行優(yōu)化。當(dāng)然實際上,尤其在后續(xù)一些迭代上面并不能夠完全百分百的做到同一個模型架構(gòu)在所有的場景上面都能取得很好的收益,可能有些收益是不太明顯的。那么這個時候其實是需要在我們目前的這樣一個多場景架構(gòu)上針對每個場景自身的一些特點,在上層結(jié)構(gòu)上做一些微調(diào)的設(shè)計,就是在底層的 embedding 共享以及信息遷移這個部分可以用多場景的框架來做。當(dāng)然每個場景有它自己自身的一些網(wǎng)絡(luò)特點,比如說在二跳當(dāng)中的一些強的 trigger 信息會有一些獨立的特征結(jié)構(gòu),需要在上層再做一些適配的。
Q16:預(yù)訓(xùn)練模型在各個場景是 share 的嗎?
A16:底層的 embedding 以及全局共享的網(wǎng)絡(luò)在各個場景之間是 share 的,然后每個場景所對應(yīng)的各自的一個網(wǎng)絡(luò)參數(shù)是在每個場景所特有的。
Q17:召回 serving 階段,對于不同場景的 item 表征應(yīng)該不同,在線檢索庫索引的時候是拆分建庫還是聯(lián)合建庫?
A17:我們目前是采用拆分建庫的方式,也就是每個場景對應(yīng)的一個候選會在每個場景生成各自獨立的一個索引。
Q18:樣本量在什么量級的時候算稀疏小場景?
A18:這種沒有一個標(biāo)準(zhǔn)的答案,可能得根據(jù)實際的業(yè)務(wù)場景上面來看。
Q19:某路召回有沒有用到人工(策略產(chǎn)品經(jīng)理)出的一些策略?
A19:因為在召回階段是一個多路召回這個形式,也就是會有多種不同類型的召回方式,比如說向量召回等,然后也會有一些人工包含一些運營指標(biāo)提供的召回方式,因此整體目前的一個推薦階段的話,其實它都是各種類型的召回方式融合,再給到排序那邊做統(tǒng)一的打分。具體到我們今天講的這樣一個模型上面,重點還是放在這個模型的優(yōu)化上。
Q20:請問單場景模型訓(xùn)練只有初始化的時候繼承預(yù)訓(xùn)練的參數(shù)?然后在單場景模型訓(xùn)練起來以后,還會利用預(yù)訓(xùn)練模型的參數(shù)嗎?
A20:目前我們的方案就是在模型訓(xùn)練之后的初始化階段進行模型參數(shù)的加載。至于預(yù)訓(xùn)練之后的 embedding 以及參數(shù)是否還需要進行更新,我們做過兩種實驗,第一種是預(yù)訓(xùn)練的模型加載之后,把它固定以及第二種是在微調(diào)階段繼續(xù)參與這樣一個模型訓(xùn)練。然后我們目前采用的是在微調(diào)階段仍舊對原來的預(yù)訓(xùn)練的模型參數(shù)進行重新訓(xùn)練的方式。
Q21:多層場景的 GRU 里面多場景的先后順序是如何確定的?
A21:場景和場景之間順序是隨機的,因為我們的模型其實是會把這樣一個全域場景的信息遷移到單場景上面去,所以在場景之間,它的訓(xùn)練順序其實是隨機的。
Q22:預(yù)訓(xùn)練階段兩個 view 特征有什么差異呢?差異就只是在場景上嗎?
A22:對,在場景差異上面,我們整體是通過同一個用戶或者說同一個 item 在不同場景上面的特征體現(xiàn)不同,從而去刻畫它在場景上面的差異,也就是把這種場景和場景之間的差異當(dāng)成一種數(shù)據(jù)增強的方式。不僅是單獨在場景,也包含用戶和 item 在場景上的一些行為特征表示。
Q23:在線預(yù)估需要分步驟先獲取預(yù)訓(xùn)練表達(dá)嗎?然后再進行召回?
A23:預(yù)訓(xùn)練是為了去輔助我們最后的召回任務(wù)的訓(xùn)練,因此在預(yù)估時,我們整體是只會用到第二階段微調(diào)的任務(wù)來進行部署。你可以理解為一個比較經(jīng)典的 DSSM 的這樣一個雙塔結(jié)構(gòu)的模型。因此最后是用微調(diào)階段的這種模型結(jié)構(gòu)來進行上線的,然后在那個表征輸入預(yù)估的時候去輸出 user 側(cè)的表達(dá)和 item 側(cè)的表達(dá)。
Q24:請問對比學(xué)習(xí)的損失跟微調(diào)的損失可以聯(lián)合訓(xùn)練嗎?
A24:這個問題換一個說法,就是能不能把我們現(xiàn)在采用的這種兩階段的方式轉(zhuǎn)化成端到端的訓(xùn)練,也就是在訓(xùn)練任務(wù)當(dāng)中既做場景和場景之間的一個無監(jiān)督訓(xùn)練,同時在此基礎(chǔ)上去做 user 和 item 召回的一個聯(lián)合訓(xùn)練。這種方式的話感覺是可行的,但是我們沒有這樣做的原因是它沒有解決到我們想用無標(biāo)簽樣本數(shù)據(jù)的這個問題。也就是我們兩階段任務(wù)所用到的樣本其實是不一樣的,預(yù)訓(xùn)練階段是用了更大范圍的無標(biāo)簽數(shù)據(jù),然后在微調(diào)階段才使用了有標(biāo)簽?zāi)切?shù)據(jù)。如果聯(lián)合訓(xùn)練的話,就只能在這樣一個有標(biāo)簽的數(shù)據(jù)上進行訓(xùn)練,樣本空間其實是會縮小的,這個和我們最開始的設(shè)計初衷會有一些差別。
Q25:ML-SAT 階段的模型中,update-gate 和 adapt-gate 本身的作用是在 MLP 每一層都采用還是只在頂層融合的時候生效?
A25:這個是會在每一層來進行一個遷移的,就是在多層結(jié)構(gòu)上面,單層結(jié)構(gòu)會做一個信息的遷移,然后會把這個結(jié)構(gòu)進行堆疊。就剛剛的一個實驗 結(jié)果上,在多次對比后選擇 3 層的話,它的效果是有些提升的。因此,我們在實際的業(yè)務(wù)落地當(dāng)中,這個模型對應(yīng)的層數(shù)也是設(shè)置為 3。
Q26:預(yù)訓(xùn)練用幾天的數(shù)據(jù)訓(xùn)練的呢,只 pretrain 一次嗎?
A26:我們的預(yù)訓(xùn)練以及微調(diào)階段的任務(wù)是天級別的增量訓(xùn)練的,然后在微調(diào)階段會再去導(dǎo)入預(yù)訓(xùn)練階段,兩邊相當(dāng)于是在并行的去做增量訓(xùn)練,然后在中間會做參數(shù)的加載。
Q27:預(yù)訓(xùn)練和微調(diào)是用的同一時間窗口的數(shù)據(jù)嗎?
A27:剛才提到我們整體的訓(xùn)練方式是增量訓(xùn)練的,因此它們的時間窗口基本上是對齊的。






