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

騰訊TRS之元學習與跨域推薦的工業(yè)實戰(zhàn)

人工智能 算法
本次分享題目為騰訊TRS之元學習與跨域推薦的工業(yè)實戰(zhàn),整體介紹分為兩部分,元學習和跨域推薦。每一部分從問題定義、方案以及工業(yè)化挑戰(zhàn)入手,同時也會介紹如何進行通用化建設,以及如何進行工業(yè)化落地實踐。

一、元學習

1、個性化建模的痛點

圖片

在推薦場景會遇到數(shù)據二八分布的問題,20%的場景應用80%的樣本,這就導致一個問題:單模型對大場景預估更友好。如何兼顧各場景,提升模型個性化能力是個性化建模的痛點。

業(yè)界方案:

  • PPNet/Poso:這種模型通過偏置gate等實現(xiàn)個性化,性能和成本較優(yōu),但是多個場景共享一套模型參數(shù),個性化表征受限制。
  • 端上個性化:在每一個端上部署一個模型,利用端上的實時數(shù)據進行訓練,實現(xiàn)端模型參數(shù)的個性化,但是會依賴端的性能,并且模型不能特別大,需要使用小模型進行訓練。

針對業(yè)界模型存在的問題,我們提出了如下解決思路:

  • 利用云端豐富算力,為每個場景部署一套模型,實現(xiàn)模型的極致個性化;
  • 模型通用性強,可應用于用戶/人群/item等個性化建模場景。

2、元學習解決模型個性化問題

圖片

  • 需求:為每個用戶、人群部署一套個性化的模型,模型對成本和性能是沒有損失的。
  • 方案選型:如果為每一個用戶都部署一套模型,模型結構不一樣、模型參數(shù)也不一樣,會造成模型訓練和服務的成本比較高。我們考慮在同一模型結構下,為每個場景提供個性化的模型參數(shù),來解決模型個性化的問題。
  • 部署地點:將模型部署在云上,利用云上的豐富算力進行計算;同時想在云上,對模型進行靈活控制。
  • 算法思路:傳統(tǒng)的元學習是解決少樣本和冷啟動的問題,通過對算法的充分了解,在推薦領域,運用元學習的創(chuàng)新性來解決模型極致個性化的問題。

整體思路是利用元學習在云端為每一個用戶部署一套個性化模型參數(shù),最終達到對成本和性能沒有損失的效果。

3、元學習(meta-learing)介紹

圖片

元學習指的是學習到通用知識來指導新任務的算法,使得網絡具有快速的學習能力。例如:上圖中的分類任務:貓和鳥、花朵和自行車,我們將這種分類任務定義成K-short N-class 的分類任務,希望通過元學習,學習到分類知識。在預估finetune過程,我們希望對于狗和水獺這樣的分類任務,用很少的樣本,進行微調就能得到極致的預估效果。再舉一例,我們在學習四則混合運算時,先學習加減,后學習乘除,當這兩個知識掌握了,我們就能夠學習這兩個知識融在一起如何來算,對于加減乘除混合運算,我們并不是分開來算,而是在加減乘除的基礎上,學習先乘除后加減的運算規(guī)則,再用一些樣本來訓練這個規(guī)則,以便快速了解這個規(guī)則,以至于在新的預估數(shù)據上得到比較好的效果。元學習的思路與此類似。

圖片

傳統(tǒng)的學習方法,目標是學習到使得所有數(shù)據達到最優(yōu)的θ,即全局最優(yōu)的θ。元學習是以task為維度,來學習場景上的通用圖片,在所有場景上面loss都能達到最優(yōu)。傳統(tǒng)的學習方法學到的θ,更靠近大場景的人群,對大場景預估更好,對中長尾預估效果一般;元學習是學習到各個場景都相近的一個點,在用每個場景的數(shù)據或新的場景的數(shù)據在這個點上進行微調,達到各個場景最優(yōu)的一個點。所以可以實現(xiàn),在每一個場景構建個性化的模型參數(shù),達到極致個性化的目標。上述實例中是以人群為task進行元學習,也適用于用戶或item為task進行建模。

圖片

元學習有三種分類:

  • 基于度量的方法(Metric-based):利用KNN、K-means等度量學習方法,來學習新的場景和當前已經存在的場景的距離,預估屬于哪一個分類,代表算法是Convolutional Siamese、Neural Network、Matching Networks、Prototypical Networks.
  • 基于模型的方法(Model_based):通過memory或RNN等快速學習模型參數(shù),代表算法是:Memeory-Augmented、Neural Networks
  • 基于優(yōu)化的方法(Optimization-based):這是近幾年比較流行的方法,利用梯度下降方法為每一個場景計算loss,來獲取最優(yōu)參數(shù),代表算法是MAML,目前是采用這種算法來進行個性化建模。

4、元學習算法

Model-Agnostic Meta-Learning(MAML)是與模型結構無關的算法,適合通用化,分為兩部分:meta-train和finetune。

meta-train有一個初始化θ,進行兩次采樣,場景采樣和場內樣本采樣。第一步,場景采樣在這一輪采樣過程中,全體樣本有十萬甚至上百萬的task,會從上百萬的task中采樣出n個task;第二步,在每個場景上,為這個場景采樣batchsize個樣本,把batchsize個樣本分為兩部分,一部分是Support Set,另一部分是Query Set;用Support Set 使用隨機梯度下降法更新每個場景的θ;第三步,再用Query Set為每個場景計算loss;第四步,把所有的loss相加,梯度回傳給θ;整體進行多輪計算,直到滿足終止條件。
其中,Support Set可以理解為訓練集合,Query Set理解為validation集合。

圖片

Finetune過程和meta-train過程很接近,θ放在具體的場景中,獲取場景的support set,利用梯度下降法(SGD),獲得場景的最優(yōu)參數(shù)圖片;使用圖片對task場景待打分的樣本(query set)產生預估結果。

5、元學習工業(yè)化挑戰(zhàn)

圖片

將元學習算法應用在工業(yè)化的場景中會有比較大的挑戰(zhàn):元學習算法的meta-train過程涉及到兩次采樣,場景采樣和樣本采樣。對于樣本而言,需要把樣本組織好,同時按照場景的順序存儲下來并進行處理,同時需要一個字典表來存儲樣本和場景的對應關系,這個過程十分消耗存儲空間和計算性能,同時需要將樣本放到worker中進行消費,這對工業(yè)化場景具有非常大的挑戰(zhàn)。

我們有如下的解決方法:

  • 解法1:在meta-train batch內進行樣本選擇,同時,對于千萬量級的模型訓練,我們修改無量框架,以便支持元學習樣本組織和千萬量級的模型訓練。傳統(tǒng)的模型部署方式是在每一個場景中都部署一套模型,這會導致千萬量級模型size非常大,訓練和serving成本增加。我們采用即調即用即釋放的方式,只存儲一套模型參數(shù),這樣可以避免增加模型大小。同時,為了節(jié)省性能,我們只學習核心網絡部分。
  • 解法2:在serving過程進行finetune,傳統(tǒng)的樣本存儲鏈路,使樣本的維護成本較高,因此我們摒棄傳統(tǒng)的方式,只存儲中間層的數(shù)據,作為元學習的輸入。

6、元學習方案

圖片

首先在meta-train中實現(xiàn)batch內場景和樣本的選擇,每個batch內會有多條數(shù)據,每個數(shù)據屬于一個task。在一個batch內,將這些數(shù)據按照task抽取出來,抽取出來的樣本放到meta-train訓練過程中,這樣就解決了需要獨立維護一套場景選擇和樣本選擇的處理鏈路的問題。

圖片

通過實驗調研以及閱讀論文,我們發(fā)現(xiàn),在fine-tune以及在元學習過程中,越接近預估層,對模型的預估效果影響越大,同時emb層對模型的預估效果影響較大,中間層對預估效果沒有很大的影響。所以我們的思路是,元學習只選取離預估層較近的參數(shù)就可以,從成本上考慮,emb層會導致學習的成本增加,對emb層就不進行元學習的訓練了。

圖片

整體訓練過程,如上圖中的mmoe的訓練網絡,我們對tower層的參數(shù)進行學習,其他場景的參數(shù)還是按照原始的訓練方式來學習。以user為維度來進行樣本的組織,每一個用戶有自己的訓練數(shù)據,把訓練數(shù)據分為兩部分,一部分是support set,一部分是query set。在support set中,只學習local側的內容進行tower update,進行參數(shù)訓練;再用query set數(shù)據對整體的網絡進行l(wèi)oss計算后梯度回傳,來更新整個網絡的參數(shù)。

因此,整個訓練過程是:整體網絡原訓練方式不變;元學習只學習核心網絡;從成本方面考慮,embedding不參與元學習;loss=原loss+元loss;fintune時,把emb進行存儲。serving過程,用emb微調核心網絡,同時可用開關來控制元學習隨開隨關。

對于傳統(tǒng)的樣本存儲方式,如果在serving過程,直接進行finetune,會存在較嚴重的問題:需要在線上維護一套樣本存儲鏈路;多套在線實驗需要維護多套樣本。同時,finetune過程,用原始樣本進行finetune,樣本要經過emb層、bottom layers層以及meta-learning層,但是元學習在serving過程僅需要學習meta-learning layers,不關心其他部分。我們考慮在serving過程,僅保存meta-learning input 存到模型中,這樣就能節(jié)省樣本鏈路的維護,同時達到一定的效果,如果只存emb這一部分,可節(jié)省該部分的計算成本和維護成本。

我們采用如下的方法:

把存儲放到模型的lookup table中,lookup table 會被認為是一個 dense 的 variables,存儲在ps中,所有的參數(shù)都會pull到worker 上,更新時,也會push到所有的 variables ,這樣會增加網絡的耗時。另一種方式是使用無量HashTable,HashTable是以key、value的形式存儲,key是場景,value是meta layer的input,這樣做的好處是,只需將所需要的場景的input layer從ps上進行push或者pull,整體會節(jié)省網絡的耗時,所以我們采樣該方法來存儲meta layer 的input。同時,如果將 meta-learning layers 存儲到模型中,會使得模型變大,也會遇到過期的問題,導致和目前的模型不匹配,我們使用時間淘汰極致來解決該問題,即淘汰掉過期embedding,這樣既使得模型變小,也能解決實時性的問題。

圖片

這個模型在 serving 階段,會使用embedding,embedding輸入到bottom layers,打分時,并不像原始的方式一樣,而是通過meta-learning layers拿到support set 中的數(shù)據,將該層的參數(shù)更新,使用更新后的參數(shù)進行打分。這個過程在GPU上無法進行計算,因此我們在CPU上執(zhí)行該過程。同時,無量GPU推理做了Auto Batch合并,將多個請求進行合并,合并后的請求在GPU上進行計算,這樣處理,梯度會隨著batch的增加而變化,針對該問題,我們在batch和grad的基礎上,增加一個num維度,計算梯度時,將grad進行相加,按照num 進行處理后,保持梯度的穩(wěn)定性。最終實現(xiàn)成本和性能可控,同時實現(xiàn)了千境千模。

7、元學習工業(yè)化實踐

圖片

借助框架、組件將元學習通用化,用戶接入時,只需修改模型代碼,用戶無需關心訓練和serving,只需調用我們已經實現(xiàn)好的接口,例如:support set讀寫接口、meta-train和finetune實現(xiàn)接口以及GPU serving適配接口等。用戶只需傳入loss、task inputs、label等業(yè)務相關參數(shù)。這樣設計,節(jié)省了算法工程師調研、開發(fā)、實驗和試錯的成本,提升了算法的迭代效率;同時,通用化的代碼,可服務多個業(yè)務場景,節(jié)省人力和資源成本。

元學習在雙塔召回場景下的使用,是以用戶為維度進行建模,包括user塔和item塔。模型的優(yōu)點是:可插拔,無需改動樣本和線上架構,穩(wěn)定無風險;缺點是support set是前一個小時的數(shù)據,存在實時性的問題。

圖片

元學習的另一個應用場景是在序列召回場景,該場景是以用戶為場景來建模,以用戶的行為序列作為support set,用戶行為序列只有正樣本,我們會維護一個負樣本隊列,采樣隊列中樣本做為負樣本,并拼接上正樣本作為support set。這樣做的好處是:實時性更強,成本更低。

圖片

最后,元學習也應用在排序場景中,如上圖中的mmoe精排模型,實現(xiàn)方式有兩種:僅使用finetune,以及同時使用meta-train和finetune。第二種實現(xiàn)方式效果更優(yōu)。

圖片

元學習在不同的場景中都取得了較好的收益。

二、跨域推薦

1、跨域推薦痛點

圖片

每個場景有多個推薦的入口,需要為每個場景都建立一套召回、粗排到精排的鏈路,成本較高。尤其小場景和中長尾流量數(shù)據稀疏,優(yōu)化空間受限。我們能否將一個產品內相似推薦入口的樣本、離線訓練和在線服務融合成一套,達到節(jié)省成本并提升效果的目的。

圖片

但是,這樣做也存在一定的挑戰(zhàn)。在瀏覽器上搜索谷愛凌,會出現(xiàn)相關搜索詞,點擊具體的內容并返回后,會出現(xiàn)結果點擊后的推薦,這兩種的流量占比、點擊率以及特征分布的差異都比較大,同時在預估目標上也有差異。

圖片

如果將跨域的模型使用多任務模型,就會產生比較嚴重的問題,并不能拿到比較好的收益。

圖片

在騰訊實現(xiàn)跨場景建模具有較大挑戰(zhàn)。首先在其他企業(yè),兩個場景的特征能夠一一對應,但在騰訊的跨域推薦領域兩個場景的特征無法對齊,一條樣本只能屬于一個場景,數(shù)據分布差異大,預估目標難對齊。

圖片

針對騰訊跨域推薦場景的個性化需求,采用上述方式進行處理。對于通用特征進行shared embedding,場景個性化的特征自己獨立 embedding空間,在模型部分,有共享的expert和個性化的expert,所有的數(shù)據都會流入共享的expert,每個場景的樣本會數(shù)據各自的個性化expert,通過個性化gate將共享expert和個性化expert融合,輸入到tower,用star的方式來解決不同場景的目標稀疏的問題。對于expert部分,可以采用任意的模型結構,例如Share bottom、MMoE、PLE,也可以是業(yè)務場景上的全模型結構。該方式的優(yōu)點是:模型的通用性強,適合各類模型融合接入;由于可以直接將場景expert遷移,對原場景效果無損,實現(xiàn)跨場景知識遷移效果提升;融合后模型減小,訓練速度提升,同時節(jié)省成本。

我們進行了通用化建設,紅色部分是需要個性化接入的內容,例如:個性化特征、個性化模型結構等,用戶只需寫入個性化的代碼即可。其他部分,我們已經將整套代碼接入ModelZoo,可直接繼承使用,并將其封裝成機器學習平臺工作流組件,可直接運行,該方式減少了多場景學習調研和接入成本。

圖片

這種方式使樣本量變多,模型結構變得復雜,但效率反而提升了。原因如下:由于一些特征是共享的,融合后的特征數(shù)比兩個場景特征數(shù)的加和要少;由于shared embedding的功能,batch內key均值,比兩個場景的加和要?。粶p小了從server端pull或push的時間,從而節(jié)省了通信耗時,整體降低了訓練耗時。

多場景的融合能使整體成本減少:離線樣本處理,能夠減少21%的成本;采用CPU追數(shù)據,會節(jié)省24%的成本,同時模型的迭代時間也會減少40%,在線訓練成本、在線服務成本、模型大小都會降低,所以使全鏈路的成本降低了。同時,將多個場景的數(shù)據融合在一起,更適合GPU計算,將兩個單場景的CPU融合到GPU上,節(jié)省的比例會更高。

圖片

跨域推薦可通過多種方式來使用。第一種,多場景單目標的模型結構,可直接使用多場景的建模架構,不建議使用tower側的star;第二種,多場景多目標的融合,可直接使用多場景的建模框架;第三種,同一個精排產品,不同目標模型融合,可直接使用多場景建??蚣?,不建議使用tower側的star;最后一種,同產品多個召回、粗排模型融合,目前正在進行中。

圖片

跨域推薦不僅在效果上有提升,在成本上也節(jié)省了很多。

責任編輯:姜華 來源: DataFunTalk
相關推薦

2021-04-27 15:20:41

人工智能機器學習技術

2022-08-31 10:04:28

模型算法

2019-04-10 10:32:16

CORSNginx反向代理

2018-11-26 14:52:12

Web前端跨域

2013-07-11 10:08:05

2023-12-01 08:28:29

推薦系統(tǒng)跨域多目標建模

2022-01-11 10:18:13

騰訊HR人才

2020-08-31 19:20:33

瀏覽器CORS跨域

2011-02-22 17:14:20

2021-06-15 07:32:59

Cookie和Sess實現(xiàn)跨域

2015-04-24 10:37:40

Web安全瀏覽器跨域訪問

2024-05-20 09:28:44

Spring客戶端瀏覽器

2023-12-20 14:42:59

2016-11-01 21:51:03

phpjavascript

2022-08-02 14:34:27

元宇宙Web3NFT

2023-04-05 00:08:03

2023-03-21 11:10:27

2021-07-05 07:02:33

前端跨域策略

2023-11-17 09:38:21

2011-07-05 10:48:41

javascript
點贊
收藏

51CTO技術棧公眾號