自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淘寶個(gè)性化推薦中自適應(yīng)與無監(jiān)督的多場景模型建模實(shí)踐

人工智能 深度學(xué)習(xí)
文中將介紹多場景建模是如何細(xì)粒度地刻畫全域場景和單場景的遷移關(guān)系來實(shí)現(xiàn)領(lǐng)域自適應(yīng),以及如何在多場景建模中引入無監(jiān)督數(shù)據(jù),還將介紹多場景建模在推薦召回階段的落地實(shí)踐。

本文將分享淘寶個(gè)性化推薦場景中關(guān)于自適應(yīng)和無監(jiān)督的多場景建模的思考及實(shí)踐。這項(xiàng)工作發(fā)表在2022年CIKM上(論文題目: Scenario-Adaptive and Self-Supervised Model for Multi-Scenario Personalized Recommendation)。文中將介紹多場景建模是如何細(xì)粒度地刻畫全域場景和單場景的遷移關(guān)系來實(shí)現(xiàn)領(lǐng)域自適應(yīng),以及如何在多場景建模中引入無監(jiān)督數(shù)據(jù),還將介紹多場景建模在推薦召回階段的落地實(shí)踐。

一、背景介紹和方案動(dòng)機(jī)

首先介紹多場景建模的業(yè)務(wù)背景、建模動(dòng)機(jī)以及方案選型。本文將聚焦于推薦系統(tǒng)的多場景建模問題,這也是目前各個(gè)推薦系統(tǒng)普遍存在且亟待解決的問題。具體圍繞 5 個(gè)問題進(jìn)行介紹。

圖片

1、問題一:什么是多場景

可以從業(yè)務(wù)視角和模型視角分別進(jìn)行解釋。從業(yè)務(wù)視角來看,“場景”可以簡單地理解為推薦平臺上不同的推薦入口或者推薦承載頁面。舉例來說,比如在廣告領(lǐng)域中,相同的廣告可以在不同的媒體端進(jìn)行投放,同時(shí)又可以對應(yīng)不同的投放形式,比如信息流形式的廣告,或者開屏廣告。在電商領(lǐng)域中,也會(huì)有非常豐富的推薦投放頁面,以淘寶為例,有首頁猜你喜歡的商品推薦界面、購物車內(nèi)的推薦場景以及商品詳情頁上的相關(guān)推薦等場景。在內(nèi)容推薦領(lǐng)域,比如我們的實(shí)際業(yè)務(wù) -- 淘寶逛逛,推薦頁面包含了一跳的雙列展示場景,以及點(diǎn)擊進(jìn)入二跳后上下滑的沉浸式的無盡流的推薦等形式。在這些例子當(dāng)中,每一個(gè)承載的頁面都可以作為一個(gè)場景,而同樣一個(gè)推薦平臺也會(huì)有多種推薦場景,呈現(xiàn)出多場景的特點(diǎn)。

從模型建模的視角來看,多場景問題可以簡單的定義為共享同樣的特征空間和 label 空間,但是數(shù)據(jù)分布不同的多個(gè)數(shù)據(jù)集合。每一個(gè)推薦場景里記錄的數(shù)據(jù)都可以構(gòu)成對應(yīng)的數(shù)據(jù)集合,盡管每個(gè)數(shù)據(jù)集合有不同的來源,但是他們的特征體系以及 label 空間是一致的。 

2、問題二:多場景的特點(diǎn)

?第一點(diǎn),流量重疊,從用戶的角度出發(fā),對于同一個(gè)用戶,他在一個(gè)推薦產(chǎn)品或者一個(gè)推薦系統(tǒng)中是可以訪問到不同的場景的,并且在多個(gè)場景中會(huì)留下相應(yīng)的瀏覽、點(diǎn)擊等一些交互行為。

第二點(diǎn),供給重疊,不管是廣告、商品還是內(nèi)容的投放,都可以投放到不同場景并在不同場景展現(xiàn)。

第三點(diǎn),場景間的分布差異,從行為模式上,同一個(gè)用戶訪問了多個(gè)不同的場景,而該用戶在場景當(dāng)中的行為可能是不一樣的;同樣的,從供給的角度看,對于同一個(gè)廣告、商品或者內(nèi)容,它在不同的場景上面的投放所展現(xiàn)出的曝光表現(xiàn)以及互動(dòng)表現(xiàn)也是不一樣的。因此在數(shù)據(jù)分布上,不同場景之間是存在差異的。因此, 我們現(xiàn)在面臨的多場景推薦問題,集中體現(xiàn)了對場景共性和特性的刻畫:用戶可能具有可延續(xù)的興趣,但在不同場景下的表現(xiàn)形式可能是不同的。

第四點(diǎn),場景間的特征空間以及目標(biāo)是一致的,不同場景之間更多反映的是在數(shù)據(jù)分布上的差異,而在特征體系上其實(shí)是相對一致的。另外,場景間的 label 空間是一樣的,也就是說在多個(gè)場景之間建模的任務(wù)其實(shí)是相同的。比如在商品場景上建模點(diǎn)擊的任務(wù),或者是在內(nèi)容場景上建模完播或者長播等類型的任務(wù)。?

3、問題三:多場景建模的目標(biāo)

?結(jié)合具體的業(yè)務(wù)背景,我們希望通過多場景問題的建模來重點(diǎn)實(shí)現(xiàn)以下兩個(gè)方面的目標(biāo)。

第一個(gè)是在效果上的目標(biāo),重點(diǎn)優(yōu)化數(shù)據(jù)稀疏的問題。單一推薦場景通常面臨用戶行為數(shù)據(jù)比較稀疏的問題,而這種現(xiàn)象在一些小場景或者新場景上表現(xiàn)得尤其明顯。多場景問題其中一個(gè)重要目標(biāo)就是希望能夠通過多個(gè)場景之間的信息共享去緩解數(shù)據(jù)稀疏的問題,提升所有場景的業(yè)務(wù)指標(biāo)。

第二個(gè)是在迭代及運(yùn)維成本上的目標(biāo),傳統(tǒng)的優(yōu)化方式是針對每一個(gè)場景分配專門的人員去維護(hù)并優(yōu)化獨(dú)立的模型,而當(dāng)一些新的場景接入時(shí),可能又需要重復(fù)整個(gè)接入流程以及模型訓(xùn)練過程。這樣就相當(dāng)于所有的人員分配、模型部署工作以及維護(hù)成本都是和場景的數(shù)量呈正相關(guān)的,這會(huì)導(dǎo)致整個(gè)維護(hù)成本以及迭代成本相對較高。

從實(shí)際成本上考慮,我們希望能夠搭建統(tǒng)一的一套算法框架,同時(shí)服務(wù)到各個(gè)場景中,并且能夠支持新場景的快速接入,這是我們想通過多場景建模達(dá)到的另一個(gè)目標(biāo)。

另外需要強(qiáng)調(diào)的是,多場景問題和目前大家已知的多目標(biāo)以及跨域問題是有區(qū)別的。多場景問題重點(diǎn)體現(xiàn)在共享相同的特征體系,擁有多個(gè)不同的數(shù)據(jù)源,并且有相同的目標(biāo)。多目標(biāo)是針對同一個(gè)數(shù)據(jù)源有多個(gè)不同的優(yōu)化目標(biāo)。而跨域問題通常是分成一個(gè)源域和一個(gè)目標(biāo)域,一般是假設(shè)源域的數(shù)據(jù)量和效果都是較優(yōu)的,然后通過源域來輔助提升目標(biāo)域的效果。而多場景問題里每個(gè)場景并沒有優(yōu)劣關(guān)系,建模目標(biāo)是希望提升所有場景的效果。?

4、問題四:多場景問題的相關(guān)解決方案

在實(shí)際應(yīng)用落地的前期,針對這種多場景問題的建模我們對目前業(yè)界已有的方案進(jìn)行了簡單的分類,大致分成以下四種類型。

圖片

?第一種是最直觀的,也是目前很多業(yè)務(wù)實(shí)踐落地選用的一個(gè)方案,即針對每個(gè)單獨(dú)的場景,采用這些場景各自的數(shù)據(jù)去分別訓(xùn)練單獨(dú)的模型,然后在上線部署以及預(yù)估時(shí),每個(gè)場景會(huì)有單獨(dú)的模型。這種方式可以在不同場景下選擇目前業(yè)界已有的模型結(jié)構(gòu)來進(jìn)行建模。

當(dāng)然這種方案也存在一些不足之處,主要集中在以下幾點(diǎn),第一點(diǎn)就是這種方式不能很好地解決單場景的數(shù)據(jù)稀疏問題,這是因?yàn)闊o法利用到同類型的其他場景的特征信息補(bǔ)充,尤其在一些數(shù)據(jù)量比較小,或者行為數(shù)據(jù)比較稀疏的場景上,數(shù)據(jù)稀疏問題更為突出。第二點(diǎn)之前提到,這種單場景單模型的建模方式在模型維護(hù)和迭代成本方面,對人力和資源的消耗都比較高。第三點(diǎn)就是當(dāng)業(yè)務(wù)上有一些新場景接入時(shí),也會(huì)存在成本較高的問題。

既然單場景單模型的方式存在樣本稀疏的問題,那么第二種解決方案就是把所有場景的樣本數(shù)據(jù)進(jìn)行混合,用混合數(shù)據(jù)訓(xùn)練一個(gè)模型,然后將同一個(gè)模型部署到所有場景上。這種方式可以緩解第一類方案中的兩個(gè)問題,因?yàn)檫@種方案用到了所有場景的樣本,并且所有的場景共用同一個(gè)模型。然而它的不足之處體現(xiàn)在,這種比較粗暴的數(shù)據(jù)樣本混合訓(xùn)練破壞了各個(gè)場景之間自身的數(shù)據(jù)分布,會(huì)引入一些噪聲。另外,整體的模型效果可能會(huì)被其中某幾個(gè)大場景的數(shù)據(jù)主導(dǎo),從而影響到一些小場景的效果。 

第三類解決方案是采用兩階段的訓(xùn)練方式,也就是先把所有的場景的樣本進(jìn)行混合訓(xùn)練,訓(xùn)練一個(gè) base 模型,然后再用每個(gè)場景各自獨(dú)立的樣本對原來的 base 模型進(jìn)行場景內(nèi)微調(diào)。在模型的部署和預(yù)估上,同樣是每個(gè)場景用各自場景數(shù)據(jù)微調(diào)之后的模型進(jìn)行上線和預(yù)估。這種方式的不足之處是每個(gè)場景需要單獨(dú)部署自己的模型。另外這種直接的預(yù)訓(xùn)練加微調(diào)的方式,也沒有很好的去建模場景和場景之間的關(guān)聯(lián)關(guān)系。 

最后一類是目前業(yè)界主流的用來進(jìn)行多場景建模的方式,通過借鑒多任務(wù)的學(xué)習(xí)架構(gòu),在模型結(jié)構(gòu)上考慮各個(gè)場景的數(shù)據(jù)來進(jìn)行聯(lián)合建模,并?且通過模型結(jié)構(gòu)的設(shè)計(jì)來刻畫場景之間的共性表達(dá)以及差異性的表達(dá)。近兩年在業(yè)界有比較多的嘗試和落地,比如 SAR-Net 通過類似 MMOE 的方式進(jìn)行訓(xùn)練,STAR 則通過構(gòu)建這種全局共享的網(wǎng)絡(luò)以及每個(gè)場景特有的網(wǎng)絡(luò),通過模型參數(shù)之間矩陣映射的方式來實(shí)現(xiàn)這種場景差異性的刻畫,以及其它通過動(dòng)態(tài)參數(shù)網(wǎng)絡(luò)的方式來刻畫這種場景差異性的一些工作。

考慮到前三類方法的不足,我們選擇了基于聯(lián)合訓(xùn)練的方式展開后續(xù)工作。

5、問題五:實(shí)際業(yè)務(wù)中多場景建模面臨的挑戰(zhàn)

圖片

而在我們實(shí)際的業(yè)務(wù)落地過程中,對于這種通過統(tǒng)一的模型來進(jìn)行多場景的聯(lián)合建模,我們也面臨著一些更加具體的挑戰(zhàn),主要體現(xiàn)在以下幾個(gè)方面。

挑戰(zhàn)一:我們采用聯(lián)合建模的方式,是希望能充分利用所有場景的信息來解決單場景的數(shù)據(jù)稀疏問題,其本質(zhì)是希望把其他場景的有效信息遷移到指定場景中,盡管前面提到的一些方法通過參數(shù)矩陣運(yùn)算或者動(dòng)態(tài)參數(shù)網(wǎng)絡(luò)等方式來刻畫場景的共性和差異,但這些變換方式是相對隱性的,無法可解釋地量化其他場景是否向指定場景遷移了信息,以及遷移了多少信息。因此, 如何實(shí)現(xiàn)精細(xì)化的有效場景信息遷移,是我們面臨的第一個(gè)挑戰(zhàn)。簡單來說就是,怎么來建模是否要遷移信息,以及遷移多少信息。

挑戰(zhàn)二:我們在模型訓(xùn)練的時(shí)候主要還是基于用戶交互行為,比如商品點(diǎn)擊或者視頻完播這樣的正反饋信號來構(gòu)造正樣本,也就是在有標(biāo)簽的樣本數(shù)據(jù)上進(jìn)行訓(xùn)練,這對于一些行為較少的場景會(huì)存在比較嚴(yán)重的數(shù)據(jù)稀疏問題。如果我們能夠借助一些無監(jiān)督的任務(wù),將訓(xùn)練數(shù)據(jù)從有標(biāo)簽樣本空間擴(kuò)展到無標(biāo)簽樣本空間,將有助于緩解數(shù)據(jù)稀疏的問題。

挑戰(zhàn)三:我們都知道整個(gè)推薦鏈路分為召回、排序等幾個(gè)核心階段。在前期的調(diào)研中,我們發(fā)現(xiàn)針對多場景問題的聯(lián)合建模,主要都是集中在了排序階段,包括前面列出的一些模型,基本都是排序的模型。而召回作為整個(gè)推薦鏈路的第一階段,面對的候選規(guī)模和檢索方式和排序是有很大差別的。因此,如何把多場景聯(lián)合建模如何在召回階段進(jìn)行落地也是我們面臨的一個(gè)挑戰(zhàn)。

二、場景自適應(yīng)與無監(jiān)督的多場景模型(SASS)

下面介紹一下我們在實(shí)際業(yè)務(wù)落地時(shí)的模型方案,這個(gè)模型簡稱為 SASS。這一方案主要聚焦于三個(gè)核心關(guān)鍵詞,第一個(gè)是場景的自適應(yīng)遷移(Scenario-Adaptive),第二個(gè)是無監(jiān)督(Self-Supervised),第三個(gè)是針對召回任務(wù)的落地探索。

圖片

整體的模型框架包含了兩個(gè)階段,一個(gè)是預(yù)訓(xùn)練任務(wù),另一個(gè)是微調(diào)任務(wù)。其中階段一是在無標(biāo)簽的樣本集合上構(gòu)建一個(gè)無監(jiān)督的預(yù)訓(xùn)練任務(wù),通過對比學(xué)習(xí)來建模場景和場景之間的關(guān)系。另外,因?yàn)檎麄€(gè)模型是在召回階段落地,需要對 user 側(cè)和 item 側(cè)進(jìn)行獨(dú)立建模,因此在 user 側(cè)和 item 側(cè)我們進(jìn)行了對稱的結(jié)構(gòu)設(shè)計(jì)。

第二個(gè)階段是微調(diào)任務(wù),會(huì)在第一階段的基礎(chǔ)上進(jìn)行模型結(jié)構(gòu)的復(fù)用,包括加載第一階段預(yù)訓(xùn)練的 embedding 和網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)。此外,第二階段是在有標(biāo)簽的樣本空間上訓(xùn)練一個(gè)召回的任務(wù),然后輸出 user 側(cè)和 item 側(cè)的表征向量。接下來具體介紹一下這兩個(gè)階段。

1、階段一:預(yù)訓(xùn)練任務(wù)

圖片

?首先,在第一個(gè)階段的預(yù)訓(xùn)練任務(wù)中,我們構(gòu)建一個(gè)場景和場景之間的對比學(xué)習(xí)的無監(jiān)督任務(wù)。如圖右上角部分所示,大家應(yīng)該對對比學(xué)習(xí)的經(jīng)典訓(xùn)練范式都比較熟悉,同一個(gè)對象x通過兩種不同的數(shù)據(jù)增強(qiáng)的方式得到兩個(gè)不同的特征集合,然后通過特征的抽取網(wǎng)絡(luò)及映射網(wǎng)絡(luò),最終得到同一個(gè)對象的兩個(gè)不同的向量表達(dá),隨后就可以通過對比學(xué)習(xí)的度量 loss 來拉近這兩個(gè)向量之間的表征距離,以此來實(shí)現(xiàn)無監(jiān)督的預(yù)訓(xùn)練任務(wù)。

在對比學(xué)習(xí)思路的啟發(fā)下,我們將多場景建模中場景和場景之間的對齊表達(dá)和對比學(xué)習(xí)的預(yù)訓(xùn)練任務(wù)進(jìn)行了結(jié)合。前面提到了同一個(gè)用戶可能會(huì)訪問多個(gè)不同的場景,并且在不同的場景中有不同的交互行為,并留下一些和場景相關(guān)的統(tǒng)計(jì)信息。因此我們可以把這種用戶在不同場景上面的行為差異視作一種天然的數(shù)據(jù)增強(qiáng)的方式,同一個(gè)用戶的興趣有延續(xù)性,但是他在不同的場景之間的表達(dá)可能存在一定的差別。然后我們在此基礎(chǔ)上構(gòu)建一個(gè)對比學(xué)習(xí)的無監(jiān)督的任務(wù)。

從具體的模型看,如圖左側(cè)所示, 我們對不同的場景會(huì)構(gòu)建一個(gè)統(tǒng)一的特征體系, 但特征的具體取值是和場景對應(yīng)的,比如我們把用戶的行為序列分場景拆開,用戶在各自場景有對應(yīng)的興趣偏好等統(tǒng)計(jì)特征。通過這樣的拆分方式,同一用戶有場景相關(guān)的多個(gè)不同的特征值集合。比如圖中同一個(gè)用戶在場景 a 和場景 b 的特征,然后通過一個(gè)統(tǒng)一的表征網(wǎng)絡(luò)(這個(gè)表征網(wǎng)絡(luò)后面會(huì)介紹),我們可以得到同一用戶在不同場景各自的表征向量,最后通過對比學(xué)習(xí)的 loss 來拉近兩者的度量距離。

剛才說的是 user 側(cè)的訓(xùn)練方式,在召回任務(wù)里 user 側(cè)和 item 側(cè)通常都是各自獨(dú)立建模的。因此 item 側(cè)也采用對稱的結(jié)構(gòu)和任務(wù)來訓(xùn)練,并且 user 側(cè)和 item 側(cè)是共享相同的 embedding 層的。具體來說,對于同一個(gè) item,我們把 item 側(cè)的特征取值也分場景拆分開,通過 item 側(cè)的表征網(wǎng)絡(luò)后,得到每個(gè)場景各自的向量表達(dá),然后采用相同的對比學(xué)習(xí) loss 進(jìn)行訓(xùn)練。

在樣本構(gòu)造的時(shí)候我們有個(gè)特殊處理是,一個(gè)用戶訪問的場景可能大于 2 個(gè),因此在構(gòu)造對比學(xué)習(xí)的訓(xùn)練任務(wù)的時(shí)候,我們會(huì)對用戶訪問過的場景兩兩組合來構(gòu)造出多條訓(xùn)練樣本。同樣在 item 側(cè)也是通過這種兩種組合的方式來構(gòu)造出多條樣本。

在具體的對比學(xué)習(xí)任務(wù)上?,我們沿用了 InfoNCE 的 loss 形式來進(jìn)行訓(xùn)練。 

我們通過建模場景和場景之間對比學(xué)習(xí)的任務(wù)來實(shí)現(xiàn)多個(gè)場景之間對于無標(biāo)簽數(shù)據(jù)的預(yù)訓(xùn)練,接下來介紹整個(gè)模型框架里面比較重要的表征網(wǎng)絡(luò)的設(shè)計(jì)細(xì)節(jié)。

圖片

模型中場景表征網(wǎng)絡(luò)是一個(gè)多層的、場景的自適應(yīng)的遷移網(wǎng)絡(luò)。首先從整體模型結(jié)構(gòu)上,在模型的 embedding 層是共享參數(shù)的。而這種表征網(wǎng)絡(luò)從整體上可以分為幾個(gè)組成部分,第一個(gè)是全場景共享的網(wǎng)絡(luò),也就是圖中模型左側(cè)的藍(lán)色部分,這里的全局共享網(wǎng)絡(luò)是所有場景的樣本都會(huì)經(jīng)過這里進(jìn)行訓(xùn)練,可以看作是對 user 側(cè)或者 item 側(cè)所有的場景樣本混合進(jìn)行訓(xùn)練的表征結(jié)構(gòu)。

第二部分是每一個(gè)場景各自特有的網(wǎng)絡(luò)結(jié)構(gòu),也就是圖中每個(gè)場景對應(yīng)的灰色部分。每個(gè)場景對應(yīng)的樣本經(jīng)過相應(yīng)的網(wǎng)絡(luò)來進(jìn)行訓(xùn)練,由于每個(gè)場景的網(wǎng)絡(luò)層參數(shù)是分開的,這種訓(xùn)練及表征就可以很好地刻畫每個(gè)場景之間各自分布的差異性。另外在圖中左下角部分,我們也引入了一個(gè)輔助的 bias 網(wǎng)絡(luò)。這個(gè) bias 網(wǎng)絡(luò)的輸入包括場景 id 以及某些場景所特有的特征,還有一些上下文的特征。這樣可以在共有體系的基礎(chǔ)上進(jìn)一步刻畫場景自身上下文之間的差異和 bias 信息。

在具體的訓(xùn)練過程中,每條樣本通過統(tǒng)一的特征 embedding 層并進(jìn)行拼接之后,會(huì)進(jìn)入到全場景共享網(wǎng)絡(luò)以及這條樣本所對應(yīng)的場景所特有的網(wǎng)絡(luò),進(jìn)行前向傳播以及反向傳播的網(wǎng)絡(luò)訓(xùn)練。

同時(shí)在整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)當(dāng)中全場景共享網(wǎng)絡(luò)每一層的輸出都會(huì)通過一個(gè)場景自適應(yīng)的門控單元,把全場景的融合信息遷移到單場景上,以此來實(shí)現(xiàn)場景信息之間精細(xì)化的遷移。具體可以參考圖中模型右上角的結(jié)構(gòu),該遷移結(jié)構(gòu)重點(diǎn)包含一個(gè) adaptive gate 和一個(gè) update gate。其中 adaptive gate 的輸出值用來控制全場景的信息中有多少是能夠被遷移到單場景上面去的,而 update gate 的輸出是控制從全場景網(wǎng)絡(luò)遷移過來的信息和單場景原有的信息進(jìn)行加權(quán)融合的權(quán)重值。這兩個(gè) gate 網(wǎng)絡(luò)的輸入包含了全場景網(wǎng)絡(luò)的信息、單場景網(wǎng)絡(luò)的信息以及場景自身 bias 的信息。通過這種精細(xì)化的、自適應(yīng)的遷移結(jié)構(gòu)去建模表征場景的遷移方向以及遷移信息量。我們將該遷移結(jié)構(gòu)堆疊多層,最終每條樣本都可以得到它在各自對應(yīng)場景上面的一個(gè)向量表征。最后,每個(gè)場景各自的輸出和對應(yīng)的場景上 bias 的輸出進(jìn)行融合,得到它在對應(yīng)的場景上最終的向量表達(dá)。

2、階段二:微調(diào)任務(wù)

圖片

第二階段是微調(diào)任務(wù)。由于我們想將模型落地到推薦鏈路的召回階段,因此微調(diào)任務(wù)和召回任務(wù)的目標(biāo)是對齊的。在樣本選擇上,我們采用 user 點(diǎn)擊的 item 作為正樣本,通過隨機(jī)采樣的方式來構(gòu)造負(fù)樣本,然后通過構(gòu)造三元組的方式來進(jìn)行 pairwise loss 的計(jì)算,從而進(jìn)行訓(xùn)練。

另外,在微調(diào)階段我們會(huì)進(jìn)行模型結(jié)構(gòu)以及參數(shù)的復(fù)用,即我們會(huì)在微調(diào)階段的模型結(jié)構(gòu)上重新采用和預(yù)訓(xùn)練階段相同的表征網(wǎng)絡(luò)結(jié)構(gòu),并且會(huì)去加載預(yù)訓(xùn)練階段的 embedding 層以及網(wǎng)絡(luò)參數(shù),相當(dāng)于將第一階段場景之間無監(jiān)督訓(xùn)練的信息保留下來。

在微調(diào)階段的 user 側(cè)和 item 側(cè)的度量匹配任務(wù)上面,我們也引入了一個(gè)新的輔助任務(wù)來幫助訓(xùn)練。前面提到每條樣本在通過表征網(wǎng)絡(luò)進(jìn)行表征后可以得到兩個(gè)向量表達(dá),一個(gè)是每個(gè)單場景網(wǎng)絡(luò)特有的向量輸出,這個(gè)向量刻畫了它在每個(gè)對應(yīng)場景上面的獨(dú)立的表達(dá);另外一個(gè)是全局共享的向量輸出,刻畫了 user 特征或者 item 特征在全域上的表達(dá)。因此在整個(gè)的微調(diào)階段的訓(xùn)練任務(wù)中包含了兩個(gè) loss,一個(gè)是單場景的網(wǎng)絡(luò)所輸出的 user embedding 以及 item embedding 之間訓(xùn)練的 loss;另外一個(gè)就是全場景網(wǎng)絡(luò)對應(yīng)輸出的 user embedding 以及 item embedding 也可以通過這樣一種計(jì)算方式得到另一個(gè) loss,最后兩個(gè) loss 的加權(quán)和作為最終的 loss 進(jìn)行訓(xùn)練。而引入全場景 loss 的輔助任務(wù),相當(dāng)于刻畫同用戶和 item 在全域的表達(dá),盡管它的表達(dá)可能并不適配于各自場景的獨(dú)立特征表達(dá),但是如果把它加到一個(gè)全局的任務(wù)中訓(xùn)練后,對整體效果的收斂是有好處的,后面的實(shí)驗(yàn)分析也可以論證這一點(diǎn)。

接下來介紹一下如何去部署召回模型。在模型訓(xùn)練完成后,我們會(huì)把微調(diào)階段的模型進(jìn)行部署上線。在線上預(yù)估時(shí),每個(gè)場景的信息會(huì)通過模型上對應(yīng)場景的網(wǎng)絡(luò)得到在該場景下的表征向量。

另外,在輔助任務(wù)中全場景網(wǎng)絡(luò)的輸出只在訓(xùn)練階段使用,因?yàn)樗腔旌蠘颖?,可能存在一些噪聲,然后在預(yù)估的時(shí)候,每個(gè)場景還是使用各自場景輸出的那個(gè)特征向量。針對召回任務(wù),在 item 側(cè)我們會(huì)針對所有的候選去生成這個(gè)向量,之后去構(gòu)造成相應(yīng)的索引,再通過模型部署,在線預(yù)估的時(shí)候生成向量。隨后通過向量檢索獲取到 topk 的結(jié)果,最后把結(jié)果返回給排序階段,來進(jìn)行整個(gè)推薦鏈路后續(xù)的一些操作。

三、實(shí)驗(yàn)分析和落地應(yīng)用

接下來介紹一下利用該模型進(jìn)行的一些實(shí)驗(yàn)分析和已經(jīng)落地的應(yīng)用。

圖片

我們是在兩個(gè)開源數(shù)據(jù)集以及自身業(yè)務(wù)的工業(yè)數(shù)據(jù)集上面與其他方法進(jìn)行了效果比較。

對比的方法主要分成三類,第一類是傳統(tǒng)的單場景模型,因?yàn)槲覀冴P(guān)注的是一個(gè)召回任務(wù),因此對比目前業(yè)界比較流行的一些召回方法,比如 YoutubeDNN、MIND、BST、DSSM 等。這些單場景模型都是用各自場景各自獨(dú)立的樣本來進(jìn)行訓(xùn)練。第二類是用多個(gè)場景混合的樣本進(jìn)行訓(xùn)練,模型上仍然選用目前業(yè)界常用的單場景模型。第三類是業(yè)界已有的和我們提出的多場景聯(lián)合建模的一些方法,其中一些方法是用在排序階段,而針對在召回階段的落地實(shí)踐,為了更好地對比,我們對這些方法稍加改造——即取排序模型網(wǎng)絡(luò)最后一層的輸出作為一個(gè)表征向量去適配召回任務(wù)。

上表中最后兩列是我們提出的模型,其中 SASS-Base 是不加預(yù)訓(xùn)練的模型結(jié)構(gòu),而 SASS 是增加了預(yù)訓(xùn)練階段。由于我們驗(yàn)證的第二個(gè)數(shù)據(jù)集存在特征缺失問題,不能夠支撐預(yù)訓(xùn)練任務(wù),因此針對這個(gè)數(shù)據(jù)集我們重點(diǎn)比較了 SASS-Base 和其他方法的效果。

從多種類型的方法對比當(dāng)中,我們得到了幾個(gè)比較有價(jià)值的結(jié)論。第一點(diǎn)是采用混合樣本訓(xùn)練的單場景模型在大多數(shù)情況下的效果反?而不如單場景用自己單獨(dú)的樣本進(jìn)行訓(xùn)練。這和我們前面論證及調(diào)研的結(jié)論是相符合的,即這種混合樣本的方式可能會(huì)引入比較多的噪聲,而且打破了每個(gè)場景原本的數(shù)據(jù)分布。但是對于一些數(shù)據(jù)特別稀疏的小場景,混合樣本反而達(dá)到比較好的效果。因?yàn)閷τ谶@些場景,用本身稀疏的數(shù)據(jù)進(jìn)行訓(xùn)練其實(shí)是很難學(xué)到有效信息的,采用這種混合樣本的方式,雖然數(shù)據(jù)上面可能是有偏的,但能夠通過樣本量的增加帶來一些收益和效果的提升。

第二個(gè)結(jié)論是通過多場景聯(lián)合建模的方式訓(xùn)練得到的模型普遍優(yōu)于前兩類單場景的建模方法,我們提出的模型在不增加預(yù)訓(xùn)練任務(wù),即 SASS-Base 模型結(jié)構(gòu)上,在各個(gè)場景基本上也優(yōu)于或者可以和其他多場景聯(lián)合建模方式取得差不多的效果。而在疊加了預(yù)訓(xùn)練任務(wù)后,整體的效果有了進(jìn)一步的提升。?

圖片

?后續(xù)我們又進(jìn)行了一系列的消融實(shí)驗(yàn),主要包括以下幾個(gè)部分。

第一個(gè)是刻畫全域場景到單場景上信息遷移的自適應(yīng)的 gate 結(jié)構(gòu)。我們對模型的 gate 網(wǎng)絡(luò)上的結(jié)構(gòu)和目前已有的其他類型的 gate 遷移方式進(jìn)行了對比,包括(1)利用矩陣乘法映射的方式來實(shí)現(xiàn)信息遷移;(2)使用類似于 Simnet 這樣兩個(gè)特征進(jìn)行加法、乘法以及拼接,然后通過 MLP 的方式來進(jìn)行融合的這種遷移方式;(3)類似 MOE 這樣的結(jié)構(gòu),通過 Sigmoid gate 來進(jìn)行遷移的網(wǎng)絡(luò)結(jié)構(gòu)。最后從實(shí)際實(shí)驗(yàn)效果來看,我們這種自適應(yīng)的方式能夠取得不錯(cuò)的效果。

第二點(diǎn)是針對是否要增加預(yù)訓(xùn)練的任務(wù)以及不同的預(yù)訓(xùn)練任務(wù)類型對實(shí)驗(yàn)結(jié)果影響的對比。對比的預(yù)訓(xùn)練方式是通過用戶的行為序列來對下一個(gè)視頻或者下一個(gè) item 預(yù)測的訓(xùn)練任務(wù)。經(jīng)結(jié)果比較,可以證明增加了預(yù)訓(xùn)練的任務(wù),并且通過這種場景和場景之間的對比學(xué)習(xí)可以提升模型的效果。

第三點(diǎn)是去論證模型結(jié)構(gòu)設(shè)計(jì)中的輔助網(wǎng)絡(luò)以及一個(gè)輔助任務(wù)。其中一個(gè)是我們在微調(diào)階段引入了全局共享的網(wǎng)絡(luò),利用該網(wǎng)絡(luò)輸出的結(jié)果來進(jìn)行輔助的微調(diào)訓(xùn)練,另外一個(gè)是在我們的網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)中,針對每個(gè)場景的輸出,去融合場景相關(guān)的 bias 特征的消融實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果也證明了這兩個(gè)結(jié)構(gòu)的添加對整體模型效果有一定的提升。

另外,由于我們的表征網(wǎng)絡(luò)是一個(gè)多層的信息遷移結(jié)構(gòu),因此我們也對比了這種網(wǎng)絡(luò)層數(shù)的增加對我們模型效果的提升??梢钥吹秸w的趨勢是隨著網(wǎng)絡(luò)層數(shù)的增加,模型效果是先提升然后再下降的。后續(xù)網(wǎng)絡(luò)層數(shù)增加所引起的效果變差,我們分析可能是因?yàn)榫W(wǎng)絡(luò)層數(shù)增加后整個(gè)參數(shù)量隨之增加,會(huì)存在一些過擬合現(xiàn)象。另外在得到上層表征之后再進(jìn)行這種大量的信息遷移,可能會(huì)使得單場景的表征更容易受到全場景信息的影響。因此這種多層網(wǎng)絡(luò)結(jié)構(gòu)的層數(shù)增加在一定程度上可以提升效果,但是網(wǎng)絡(luò)層數(shù)并不一定越多越好。

下一組實(shí)驗(yàn),我們針對召回任務(wù)對比了不同 item 側(cè)的表征向量,因?yàn)樵谡倩厣厦總€(gè)場景都會(huì)生成各自的向量。在一些多場景建模時(shí),user 側(cè)會(huì)對應(yīng)有各自不同的表達(dá),但在 item 側(cè)并沒有詳細(xì)地去刻畫,而在我們的召回任務(wù)當(dāng)中 user 側(cè)和 item 側(cè)對應(yīng)的都是它在每個(gè)場景下各自獨(dú)立的向量表達(dá),因此我們也對比了每個(gè)場景對應(yīng)的 item 表達(dá)以及場景共享的同一個(gè) item 側(cè)的 embedding。通過對比發(fā)現(xiàn),在 item 側(cè)同樣能夠區(qū)分開各個(gè)場景獨(dú)立的向量表達(dá)。

最后我們將這個(gè)模型在一個(gè)實(shí)際的內(nèi)容推薦場景上面進(jìn)行了在線的 A/B 實(shí)驗(yàn)。在一些實(shí)驗(yàn)指標(biāo)上取得了不錯(cuò)的效果,尤其在一些相對來說比較小或者數(shù)據(jù)比較稀疏的場景中,提升幅度更高一些。

目前我們提出的模型方案已經(jīng)在淘寶的內(nèi)容推薦場景,包括短視頻、圖文推薦等場景上完成推廣,并且這個(gè)模型在各個(gè)場景都成為了主要的召回方式之一。?

四、總結(jié)

圖片

最后進(jìn)行一下總結(jié)。整體上,我們想要解決的問題就是推薦領(lǐng)域中的多場景建模的問題,這也是目前在推薦系統(tǒng)當(dāng)中普遍存在的一個(gè)問題。而針對這種多場景建模,我們的核心目標(biāo)是希望能夠通過構(gòu)建一套統(tǒng)一的框架最大化各個(gè)場景之間的信息使用。通過這種聯(lián)合建模的方式解決數(shù)據(jù)稀疏問題,同時(shí)去提升各個(gè)場景的業(yè)務(wù)指標(biāo)。并且通過同樣的一套方法架構(gòu)降低模型迭代以及部署的成?本。

但是在我們的實(shí)際業(yè)務(wù)應(yīng)用當(dāng)中,多場景建模面臨著三個(gè)核心挑戰(zhàn)。第一個(gè)是如何實(shí)現(xiàn)精細(xì)化以及有效場景信息的遷移;另外在多場景建模里面怎樣解決數(shù)據(jù)稀疏的問題,怎樣去引入一些無標(biāo)簽數(shù)據(jù);然后第三點(diǎn)就是多場景聯(lián)合建模在召回階段進(jìn)行落地。

在我們的實(shí)踐當(dāng)中,通過去設(shè)計(jì)這種自適應(yīng)的場景信息遷移的網(wǎng)絡(luò)架構(gòu),以及構(gòu)建場景和場景之間的對比學(xué)習(xí)的無監(jiān)督任務(wù),并且包括在模型結(jié)構(gòu)設(shè)計(jì)、訓(xùn)練方式以及部署上去適配召回階段的任務(wù)來解決上面的挑戰(zhàn)。最后,這種場景自適應(yīng)的無監(jiān)督模型目前在全場景上較好地落地,并且是作為一個(gè)主要的召回方式。?

五、問答環(huán)節(jié)

Q1:用什么指標(biāo)來評估模型在每個(gè)場景的提升?

A1:這是模型評估方面的問題,需要和各場景的建模目標(biāo)對應(yīng),然后分場景去看指標(biāo)的提升。如果是召回階段的任務(wù)的話,就是在對應(yīng)的每個(gè)場景上面去選擇召回相關(guān)的評估指標(biāo),比如 Hit Rate 或者 NDCG。如果是在排序階段,就主要關(guān)注 AUC、GAUC 這樣一些排序相關(guān)的指標(biāo)。

Q2:SASS 的兩個(gè)場景的 feature 是否相同?

A2:首先,因?yàn)槲覀冋w解決的是一個(gè)多場景的問題。如定義所示,就是在每個(gè)場景之間,樣本很大程度上是對齊的,因此我們在實(shí)際建模時(shí),也是盡量把所有的特征進(jìn)行對齊和拉平。另外,針對每個(gè)場景內(nèi)還是有一些自己特有的特征的情況,我們設(shè)計(jì)了場景 bias 的網(wǎng)絡(luò),對于那些沒有辦法完全對齊的特征,我們會(huì)把它放在這個(gè)單獨(dú)的網(wǎng)絡(luò)結(jié)構(gòu)當(dāng)中。

Q3:有考慮把代碼開源嗎?

A3:這套代碼目前正在公司實(shí)際業(yè)務(wù)場景中使用,開源需要符合公司的信息披露合規(guī)要求。我們后續(xù)會(huì)進(jìn)行溝通,可能會(huì)提供一個(gè) demo 版本進(jìn)行開源。

Q4:召回階段也是用的這些模型嗎?

A4:我們目前的這個(gè)模型本身就是在召回階段來進(jìn)行落地的,因此整個(gè)模型也是部署在這樣一個(gè)召回階段,當(dāng)然我們提供的是一個(gè)比較通用的方案,通過一些改造也是完全可以作為排序模型使用的。

Q5:模型用了哪種負(fù)采樣?

A5:負(fù)采樣主要是在微調(diào)階段進(jìn)行。我們采用的是在召回任務(wù)當(dāng)中比較通用的負(fù)采樣方式,其中將用戶的點(diǎn)擊作為正樣本,而負(fù)樣本是會(huì)在每個(gè)場景當(dāng)中根據(jù) Item 的曝光概率做一個(gè)隨機(jī)的負(fù)采樣。然后在多場景上面,因?yàn)槲覀冋w訓(xùn)練任務(wù)還是會(huì)在每個(gè)場景各自去進(jìn)行訓(xùn)練。因此在負(fù)采樣的時(shí)候,正樣本對應(yīng)的負(fù)樣本也是會(huì)在這個(gè)場景所對應(yīng)的曝光空間里面進(jìn)行負(fù)樣本的隨機(jī)采樣,通過這樣來構(gòu)造出這種正負(fù)樣本的 pair 對的形式。

Q6:淘寶信息流的商品短視頻場景頁、話題頁都是可以用這一套模型嗎?是否可以和商品推薦場景結(jié)合?目標(biāo)是否需要統(tǒng)一?比如視頻有時(shí)長目標(biāo)。

A6:這個(gè)問題稍微有點(diǎn)大,我拆分一下,就是目前我們這一套模型是落地在淘寶上的內(nèi)容推薦場景,就是整體是以內(nèi)容為主要的載體,包含圖文和視頻。這一塊是完全適配的,因?yàn)樗w的特征體系是基本一致的,可完全復(fù)用。然后另外一點(diǎn)其實(shí)也是我們下一階段要做的工作,就是里面可能提到商品以及內(nèi)容,他們本身的數(shù)據(jù)分布以及特征體系其實(shí)是不一樣的,這個(gè)可以理解為更像是一個(gè)跨域的問題,是商品域和內(nèi)容域之間的一個(gè)融合。我們下一階段的工作也是希望能夠在多場景當(dāng)中引入這樣一些跨域的思想,能夠把商品域的一些行為信息遷移到內(nèi)容域上面,這個(gè)是第一點(diǎn)。第二點(diǎn)的話關(guān)于目標(biāo)統(tǒng)一,我們現(xiàn)在是做了目標(biāo)的統(tǒng)一。比如說在首頁點(diǎn)擊上,我們是用用戶的點(diǎn)擊信號來作為正樣本,而在這種無盡流上下滑中, 其實(shí)沒有用戶點(diǎn)擊,然后我們用的是用戶的長播、完播等時(shí)長信號作為正反饋,也就是整體把 label 打平到這樣一種二元的維度。

Q7:可以詳細(xì)介紹一下場景之間對比學(xué)習(xí)無監(jiān)督任務(wù)嗎?

A7:整體的話還是仿照這種對比學(xué)習(xí)的思路,其實(shí)重點(diǎn)是通過場景和場景之間的特征拆分之后然后去構(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è)用的是點(diǎn)擊樣本嗎?

A8:預(yù)訓(xùn)練任務(wù)是在沒有標(biāo)簽的一個(gè)空間上面的進(jìn)行的,比如說某個(gè)用戶 訪問的 a 和訪問的 b 這兩個(gè)場景,以及該用戶有一些靜態(tài)的屬性特征,和歷史保存下來的在每個(gè)場景對應(yīng)的用戶行為序列,然后這樣構(gòu)成了同一個(gè)用戶在 a 和 b 這兩個(gè)場景的一個(gè)特征體系。預(yù)訓(xùn)練的建模目標(biāo)是去建模這個(gè)有訪問的用戶,在場景 a 和場景 b 之間通過這樣一種特征度量之后拉近這兩個(gè)表征向量之間的距離。因此它其實(shí)是一個(gè)無監(jiān)督的任務(wù),是在無點(diǎn)擊的樣本空間上面來進(jìn)行訓(xùn)練的。

Q9:各個(gè)場景的多目標(biāo)怎樣融合?

A9:這個(gè)其實(shí)是另一個(gè)問題了,目前我們解決的是多場景問題,我們是希望所有的場景之間都是共享了同一個(gè)目標(biāo),比如說點(diǎn)擊的目標(biāo)或者說我們轉(zhuǎn)化的這樣一種二分類的目標(biāo),它其實(shí)刻畫了用戶對這個(gè)內(nèi)容或者說對這個(gè)視頻是否感興趣。至于剛才提到的多場景多目標(biāo)的方式,其實(shí)是和多場景有一些區(qū)別,但是我理解是可以把這樣一種多目標(biāo)建模的方式構(gòu)建在這個(gè)多場景建模上面的。因?yàn)槟壳耙灿泻芏喙ぷ魇窃谧龆鄨鼍昂投嗄繕?biāo)的聯(lián)合表征的任務(wù),比如說在我們現(xiàn)在這種架構(gòu)上,通過表征網(wǎng)絡(luò)后每一個(gè)樣本對應(yīng)在每一個(gè)場景上面會(huì)有一個(gè)獨(dú)立的向量表達(dá),如果我們將這個(gè)向量表達(dá)作為輸入,在此基礎(chǔ)上再去針對每一個(gè)目標(biāo)構(gòu)建一個(gè)特有的目標(biāo)相關(guān)的特征網(wǎng)絡(luò),其實(shí)也是可以做多目標(biāo)和多場景聯(lián)合的任務(wù)。你可以把我們現(xiàn)在的這種多場景的訓(xùn)練方式當(dāng)成一個(gè)基礎(chǔ)框架,然后在它的基礎(chǔ)上再去建模其他的一些多目標(biāo)的任務(wù)。這個(gè)我感覺是 make sense的。 

Q10:預(yù)訓(xùn)練階段的對比學(xué)習(xí)的 loss 是怎么設(shè)計(jì)?

A10:這個(gè) loss 其實(shí)是和傳統(tǒng)的對比學(xué)習(xí)的方案比較相似的,我們也是選用 InfoNCE loss,也就是在一個(gè) batch size 為 n 的訓(xùn)練樣本中,把同一個(gè)用戶或者 item 在對應(yīng)場景生成的兩個(gè)向量當(dāng)成正樣本,其他樣本所對應(yīng)的產(chǎn)生的 2n-2 個(gè)向量當(dāng)成它的負(fù)樣本,這樣構(gòu)造 loss 來進(jìn)行訓(xùn)練。

Q11:預(yù)訓(xùn)練階段 item 怎么構(gòu)造多 view? 

A11:剛才重點(diǎn)介紹的是 user 側(cè),那么 item 側(cè)其實(shí)也是同樣的結(jié)構(gòu)。針對 item 側(cè),同樣是有一個(gè) item 自身的全局共享網(wǎng)絡(luò)以及針對每個(gè)場景每個(gè) item 它在各自每個(gè)場景上面的一個(gè)網(wǎng)絡(luò)參數(shù)的表達(dá)。因此通過同樣的一個(gè)模型方式,和 user 側(cè)是完全對稱的一個(gè)結(jié)構(gòu)。每個(gè) item 會(huì)通過這樣一個(gè)全局共享的參數(shù)遷移,以及每個(gè)場景自身的網(wǎng)絡(luò)結(jié)構(gòu),最終會(huì)有一個(gè)獨(dú)立的和場景相關(guān)的輸出。

Q12:請問一下模型的時(shí)效性是怎樣的?多久更新一次模型?是流式訓(xùn)練嗎?

A12:這個(gè)問題很好。我們目前的這個(gè)模型其實(shí)是離線訓(xùn)練的,是天級別的更新的。然后我們也是在做一些替換性的嘗試,希望能夠提升它的一個(gè)時(shí)效性,通過 online learning 的方式進(jìn)行流式訓(xùn)練。當(dāng)然目前還遇到一些問題,主要就是體現(xiàn)在這樣一種多場景訓(xùn)練的方式上,其實(shí)它需要去同時(shí)引入多源的數(shù)據(jù),那么在這種流式訓(xùn)練當(dāng)中,多個(gè)源的數(shù)據(jù)怎么能同時(shí)接入,以及如何保證訓(xùn)練穩(wěn)定其實(shí)是比較大的挑戰(zhàn)的,所以我們目前的模型還是這種離線天級別更新的。后面可能會(huì)做一些嘗試,比如說把目前的這種離線的多場景聯(lián)合訓(xùn)練當(dāng)成一個(gè) base 模型,然后在單場景上面通過模型 restore 后進(jìn)行流式數(shù)據(jù)的微調(diào),通過這樣一種方式來進(jìn)行迭代更新。

Q13:預(yù)訓(xùn)練的樣本如何構(gòu)造?

A13:這個(gè)剛剛其實(shí)也介紹了。整體核心點(diǎn)還是在于同一個(gè)用戶在不同場景上面對一些特征的表達(dá)進(jìn)行拆分,比如說 a 和 b 兩個(gè)場景,它有些靜態(tài)特征,同時(shí)在對應(yīng)場景上面它會(huì)留下各自獨(dú)立的用戶行為序列,以及這樣一個(gè) user 在對應(yīng)的場景上面的一些統(tǒng)計(jì)信息,如類目偏好、賬戶偏好以及一些點(diǎn)擊曝光等統(tǒng)計(jì)特征。這樣相當(dāng)于把數(shù)據(jù)的特征構(gòu)造分場景的拆開,可以使得同一個(gè)用戶在不同場景有不同的特征。這個(gè)是特征上面的構(gòu)造,然后在樣本上面的話就是剛剛提到的,一個(gè)用戶如果訪問了多個(gè)場景,然后場景之間兩兩組合去構(gòu)造這樣一種樣本對的形式。然后在 item 側(cè),一個(gè) item 可能會(huì)投放到多個(gè)場景上,那么多個(gè)場景之間這樣兩兩組合的方式也可以構(gòu)造 item 的樣本。

Q14:預(yù)訓(xùn)練對比學(xué)習(xí)有指標(biāo)評估嗎?

A14:我們的預(yù)訓(xùn)練階段是一個(gè)無監(jiān)督的任務(wù),我們重點(diǎn)想要通過預(yù)訓(xùn)練的任務(wù)拿到它的 embedding 的表征,以及對應(yīng)的網(wǎng)絡(luò)參數(shù)的初始化。因此我們在針對預(yù)訓(xùn)練對比學(xué)習(xí)這一塊評估的時(shí)候,主要是通過預(yù)訓(xùn)練階段產(chǎn)出的向量的做可視化的聚類來分析效果。

Q15:多場景模型在某些場景有正收益,但在某些場景是負(fù)收益,那負(fù)收益的場景怎么做調(diào)整優(yōu)化? 

A15:這個(gè)其實(shí)還是關(guān)于場景的共性和差異性上的一個(gè)刻畫,我們設(shè)計(jì)的多場景方案的初衷是希望能夠通過統(tǒng)一的模型加固之后,再在各個(gè)場景上面進(jìn)行優(yōu)化。當(dāng)然實(shí)際上,尤其在后續(xù)一些迭代上面并不能夠完全百分百的做到同一個(gè)模型架構(gòu)在所有的場景上面都能取得很好的收益,可能有些收益是不太明顯的。那么這個(gè)時(shí)候其實(shí)是需要在我們目前的這樣一個(gè)多場景架構(gòu)上針對每個(gè)場景自身的一些特點(diǎn),在上層結(jié)構(gòu)上做一些微調(diào)的設(shè)計(jì),就是在底層的 embedding 共享以及信息遷移這個(gè)部分可以用多場景的框架來做。當(dāng)然每個(gè)場景有它自己自身的一些網(wǎng)絡(luò)特點(diǎn),比如說在二跳當(dāng)中的一些強(qiáng)的 trigger 信息會(huì)有一些獨(dú)立的特征結(jié)構(gòu),需要在上層再做一些適配的。

Q16:預(yù)訓(xùn)練模型在各個(gè)場景是 share 的嗎?

A16:底層的 embedding 以及全局共享的網(wǎng)絡(luò)在各個(gè)場景之間是 share 的,然后每個(gè)場景所對應(yīng)的各自的一個(gè)網(wǎng)絡(luò)參數(shù)是在每個(gè)場景所特有的。

Q17:召回 serving 階段,對于不同場景的 item 表征應(yīng)該不同,在線檢索庫索引的時(shí)候是拆分建庫還是聯(lián)合建庫?

A17:我們目前是采用拆分建庫的方式,也就是每個(gè)場景對應(yīng)的一個(gè)候選會(huì)在每個(gè)場景生成各自獨(dú)立的一個(gè)索引。

Q18:樣本量在什么量級的時(shí)候算稀疏小場景?

A18:這種沒有一個(gè)標(biāo)準(zhǔn)的答案,可能得根據(jù)實(shí)際的業(yè)務(wù)場景上面來看。

Q19:某路召回有沒有用到人工(策略產(chǎn)品經(jīng)理)出的一些策略?

A19:因?yàn)樵谡倩仉A段是一個(gè)多路召回這個(gè)形式,也就是會(huì)有多種不同類型的召回方式,比如說向量召回等,然后也會(huì)有一些人工包含一些運(yùn)營指標(biāo)提供的召回方式,因此整體目前的一個(gè)推薦階段的話,其實(shí)它都是各種類型的召回方式融合,再給到排序那邊做統(tǒng)一的打分。具體到我們今天講的這樣一個(gè)模型上面,重點(diǎn)還是放在這個(gè)模型的優(yōu)化上。 

Q20:請問單場景模型訓(xùn)練只有初始化的時(shí)候繼承預(yù)訓(xùn)練的參數(shù)?然后在單場景模型訓(xùn)練起來以后,還會(huì)利用預(yù)訓(xùn)練模型的參數(shù)嗎?

A20:目前我們的方案就是在模型訓(xùn)練之后的初始化階段進(jìn)行模型參數(shù)的加載。至于預(yù)訓(xùn)練之后的 embedding 以及參數(shù)是否還需要進(jìn)行更新,我們做過兩種實(shí)驗(yàn),第一種是預(yù)訓(xùn)練的模型加載之后,把它固定以及第二種是在微調(diào)階段繼續(xù)參與這樣一個(gè)模型訓(xùn)練。然后我們目前采用的是在微調(diào)階段仍舊對原來的預(yù)訓(xùn)練的模型參數(shù)進(jìn)行重新訓(xùn)練的方式。

Q21:多層場景的 GRU 里面多場景的先后順序是如何確定的?

A21:場景和場景之間順序是隨機(jī)的,因?yàn)槲覀兊哪P推鋵?shí)是會(huì)把這樣一個(gè)全域場景的信息遷移到單場景上面去,所以在場景之間,它的訓(xùn)練順序其實(shí)是隨機(jī)的。

Q22:預(yù)訓(xùn)練階段兩個(gè) view 特征有什么差異呢?差異就只是在場景上嗎?

A22:對,在場景差異上面,我們整體是通過同一個(gè)用戶或者說同一個(gè) item 在不同場景上面的特征體現(xiàn)不同,從而去刻畫它在場景上面的差異,也就是把這種場景和場景之間的差異當(dāng)成一種數(shù)據(jù)增強(qiáng)的方式。不僅是單獨(dú)在場景,也包含用戶和 item 在場景上的一些行為特征表示。

Q23:在線預(yù)估需要分步驟先獲取預(yù)訓(xùn)練表達(dá)嗎?然后再進(jìn)行召回?

A23:預(yù)訓(xùn)練是為了去輔助我們最后的召回任務(wù)的訓(xùn)練,因此在預(yù)估時(shí),我們整體是只會(huì)用到第二階段微調(diào)的任務(wù)來進(jìn)行部署。你可以理解為一個(gè)比較經(jīng)典的 DSSM 的這樣一個(gè)雙塔結(jié)構(gòu)的模型。因此最后是用微調(diào)階段的這種模型結(jié)構(gòu)來進(jìn)行上線的,然后在那個(gè)表征輸入預(yù)估的時(shí)候去輸出 user 側(cè)的表達(dá)和 item 側(cè)的表達(dá)。

Q24:請問對比學(xué)習(xí)的損失跟微調(diào)的損失可以聯(lián)合訓(xùn)練嗎?

A24:這個(gè)問題換一個(gè)說法,就是能不能把我們現(xiàn)在采用的這種兩階段的方式轉(zhuǎn)化成端到端的訓(xùn)練,也就是在訓(xùn)練任務(wù)當(dāng)中既做場景和場景之間的一個(gè)無監(jiān)督訓(xùn)練,同時(shí)在此基礎(chǔ)上去做 user 和 item 召回的一個(gè)聯(lián)合訓(xùn)練。這種方式的話感覺是可行的,但是我們沒有這樣做的原因是它沒有解決到我們想用無標(biāo)簽樣本數(shù)據(jù)的這個(gè)問題。也就是我們兩階段任務(wù)所用到的樣本其實(shí)是不一樣的,預(yù)訓(xùn)練階段是用了更大范圍的無標(biāo)簽數(shù)據(jù),然后在微調(diào)階段才使用了有標(biāo)簽?zāi)切?shù)據(jù)。如果聯(lián)合訓(xùn)練的話,就只能在這樣一個(gè)有標(biāo)簽的數(shù)據(jù)上進(jìn)行訓(xùn)練,樣本空間其實(shí)是會(huì)縮小的,這個(gè)和我們最開始的設(shè)計(jì)初衷會(huì)有一些差別。 

Q25:ML-SAT 階段的模型中,update-gate 和 adapt-gate 本身的作用是在 MLP 每一層都采用還是只在頂層融合的時(shí)候生效?

A25:這個(gè)是會(huì)在每一層來進(jìn)行一個(gè)遷移的,就是在多層結(jié)構(gòu)上面,單層結(jié)構(gòu)會(huì)做一個(gè)信息的遷移,然后會(huì)把這個(gè)結(jié)構(gòu)進(jìn)行堆疊。就剛剛的一個(gè)實(shí)驗(yàn) 結(jié)果上,在多次對比后選擇 3 層的話,它的效果是有些提升的。因此,我們在實(shí)際的業(yè)務(wù)落地當(dāng)中,這個(gè)模型對應(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)階段會(huì)再去導(dǎo)入預(yù)訓(xùn)練階段,兩邊相當(dāng)于是在并行的去做增量訓(xùn)練,然后在中間會(huì)做參數(shù)的加載。

Q27:預(yù)訓(xùn)練和微調(diào)是用的同一時(shí)間窗口的數(shù)據(jù)嗎?

A27:剛才提到我們整體的訓(xùn)練方式是增量訓(xùn)練的,因此它們的時(shí)間窗口基本上是對齊的。

責(zé)任編輯:姜華 來源: DataFunTalk
相關(guān)推薦

2020-06-28 07:00:00

推薦系統(tǒng)智能商務(wù)服務(wù)平臺

2022-11-01 07:19:45

推薦系統(tǒng)非個(gè)性化

2023-07-26 07:51:30

游戲中心個(gè)性化

2019-05-20 08:11:02

淘寶個(gè)性化推薦

2022-09-06 17:43:02

??AISummit數(shù)據(jù)運(yùn)營

2024-06-28 09:41:06

圖像檢測

2023-08-22 15:37:45

深度學(xué)習(xí)人工智能

2024-07-02 09:41:11

2010-06-29 19:15:46

UML建模技術(shù)

2015-11-09 10:12:08

大數(shù)據(jù)個(gè)性化推薦

2022-05-17 09:43:11

因果模型數(shù)據(jù)建模

2018-04-26 11:30:29

OracleBronto產(chǎn)品推薦

2016-01-07 13:23:35

構(gòu)建實(shí)時(shí)推薦系統(tǒng)

2018-04-27 16:23:27

Oracle Bron個(gè)性化產(chǎn)品

2018-11-08 09:37:08

微博系統(tǒng)架構(gòu)

2016-04-08 11:39:49

用戶畫像個(gè)性化推薦標(biāo)簽

2015-07-17 07:39:44

搜索下拉框產(chǎn)

2024-10-05 00:00:25

Cursor網(wǎng)站代碼

2016-02-19 10:16:48

母嬰個(gè)推電商
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號