阿里妈妈搜索广告CTR模型的“瘦身”之路
??前言
隨著號(hào)稱(chēng)“地表最強(qiáng)”的千億參數(shù)規(guī)模GPT-3模型在 NLP 領(lǐng)域橫掃各大數(shù)據(jù)榜單,大力出奇跡的暴力美學(xué)似乎成為了大數(shù)據(jù)場(chǎng)景建模的不二法門(mén)。搜索、推薦和廣告場(chǎng)景的 CTR 模型也不例外,同樣動(dòng)輒千億參數(shù)規(guī)模、上T體積大小的 CTR 模型成為了同行爭(zhēng)相追逐的建模標(biāo)配。但是無(wú)論面對(duì)生產(chǎn)運(yùn)維環(huán)境,還是實(shí)驗(yàn)迭代環(huán)境,它對(duì)存儲(chǔ)規(guī)模和計(jì)算性能的要求都是巨大的挑戰(zhàn)。而且隨著存量算力的逐漸耗盡和增量算力的趨勢(shì)放緩,它的“大力暴力”成為了業(yè)務(wù)算法迭代的沉重負(fù)擔(dān)。阿里媽媽搜索廣告模型團(tuán)隊(duì)通過(guò)系統(tǒng)性的算法實(shí)踐讓原本龐大笨重的 CTR 模型輕盈轉(zhuǎn)身,搖身一變“小巧且精悍”,數(shù)T模型壓縮成幾十G規(guī)模且預(yù)估精度無(wú)損,開(kāi)辟了一條“小而美”的嶄新的優(yōu)化方向。
?? 1. 超大規(guī)模模型演進(jìn)之路的辯證思考
阿里媽媽搜索廣告的 CTR 模型伴隨直通車(chē)業(yè)務(wù)的發(fā)展持續(xù)迭代多年,主要包括兩個(gè)優(yōu)化路徑,分別是特征優(yōu)化和模型結(jié)構(gòu)優(yōu)化。特征優(yōu)化主要包括多模態(tài)特征的豐富、高階特征的升級(jí)和動(dòng)態(tài)特征的引入等;模型結(jié)構(gòu)優(yōu)化主要包括圍繞搜索意圖挖掘的序列建模 Transformer 系列和圖建模 GNN 系列的改造等。因?yàn)橥瑫r(shí)期享受到硬件算力的增長(zhǎng)紅利,所以算法迭代顯得非常闊綽,結(jié)合工程基建的迅猛發(fā)展,CTR 模型逐年變得既寬又深。直通車(chē)的日常 CTR 模型已經(jīng)到了數(shù)T規(guī)模,暗合了“模型越大、預(yù)估能力越強(qiáng)”暴力美學(xué)的發(fā)展路徑。
阿里搜索廣告特征模型優(yōu)化發(fā)展路徑
但是日益臃腫的 CTR 模型不僅給工程實(shí)現(xiàn)帶來(lái)艱巨的挑戰(zhàn),也開(kāi)始制約算法創(chuàng)新的迭代效率。單套模型所依賴(lài)的存儲(chǔ)和計(jì)算資源開(kāi)銷(xiāo)不菲,考慮到多人迭代的實(shí)驗(yàn)場(chǎng)景,多套并行對(duì)系統(tǒng)壓力更大。另外,真實(shí)的迭代環(huán)境是存量算力逐漸耗盡、增量算力又顯著放緩。因此,我們不得不重新審視算法迭代的資源利用率問(wèn)題,開(kāi)始重視投入產(chǎn)出比對(duì)模型迭代效率的影響;而且重新思考超大規(guī)模的 CTR 模型是否具有普世價(jià)值,畢竟還有諸多中小場(chǎng)景的業(yè)務(wù)依賴(lài)模型提效,但能夠配備如此規(guī)模的機(jī)器資源和工程能力是一種奢望。
于是,為了在有限資源的約束下,模型仍然能夠高效迭代支撐業(yè)務(wù)快速發(fā)展,直通車(chē) CTR 模型開(kāi)始走上了“減肥瘦身”之路。考慮到廣告場(chǎng)景的特殊性,模型預(yù)估能力的微小下降會(huì)使得線(xiàn)上產(chǎn)生營(yíng)收的真實(shí)損失,所以直通車(chē) CTR 模型在瘦身的同時(shí)要求保持預(yù)估精度不降,這對(duì)模型精簡(jiǎn)來(lái)說(shuō)是個(gè)不小的挑戰(zhàn)。我們認(rèn)為在龐大冗余的模型結(jié)構(gòu)中應(yīng)該存在不必要的信息編碼,且實(shí)踐證明類(lèi)似 dropout 相關(guān)的操作還能使得模型的魯棒性和泛化性得以提升,這中間應(yīng)該存在著“預(yù)估精度保持不變,模型規(guī)模顯著降低”的優(yōu)化空間。
搜索、推薦和廣告場(chǎng)景的 CTR 模型的特點(diǎn)是高維、稀疏且離散,模型的絕大部分參數(shù)主要集中在特征的 Embedding 層,所以如何經(jīng)濟(jì)有效地壓縮 Embedding 層的參數(shù)規(guī)模是 CTR 模型瘦身的關(guān)鍵。Embedding 層的壓縮主要有3個(gè)方向:
1)行維度:即特征空間的壓縮
2)列維度:即Embedding向量維度壓縮
3)值精度:即FP16/Int8量化等
我們?cè)谶@3個(gè)方向都有充分實(shí)踐,本文主要介紹在行維度的特征壓縮,也是在直通車(chē)場(chǎng)景可以做到訓(xùn)練過(guò)程中自壓縮,模型壓縮比有量級(jí)(其他兩個(gè)優(yōu)化方向只有倍數(shù)壓縮比)上的顯著收益且模型預(yù)估精度保持不變,下圖舉例說(shuō)明。
常用Embedding層壓縮思路
?? 2. 小而美模型的蛻變之路
直通車(chē)場(chǎng)景 Embedding 層的行維度即特征空間隨著常年的迭代,在提效的同時(shí)規(guī)模也一路狂奔。在線(xiàn)服務(wù)系統(tǒng)從單機(jī)到分布式,分布式又由數(shù)列擴(kuò)到十幾列,系統(tǒng)復(fù)雜性和維護(hù)成本越來(lái)越高。雖然特征類(lèi)型非常豐富,異構(gòu)性也非常顯著,但從存儲(chǔ)規(guī)模的角度來(lái)說(shuō),整體服從冪律分布即少數(shù)類(lèi)型的特征占據(jù)了存儲(chǔ)規(guī)模大頭。下面表格給出直通車(chē)主要特征的規(guī)模分布情況,因?yàn)榇鎯?chǔ)規(guī)模還受到另外兩個(gè)維度即 Embedding 維度數(shù)和值精度大小的影響,所以 Embedding 行占比和實(shí)際存儲(chǔ)占比是不一致的。從表中可以看出,以下幾類(lèi)特征占據(jù)了不小的存儲(chǔ)規(guī)模,分別是:
-
復(fù)合特征的隱式類(lèi)型的id類(lèi)特征,例如<user_age, item_id>交叉特征對(duì)應(yīng)的 Embedding,這一類(lèi)特征提供了更加微觀的id類(lèi)特征的表征方式,在樣本規(guī)模較為充分的情況下能夠提供更加細(xì)膩的特征空間區(qū)分能力,實(shí)踐中效果較為顯著。
-
復(fù)合特征的顯式類(lèi)型的統(tǒng)計(jì)值特征,例如<user_age, item_id>交叉特征的歷史14天統(tǒng)計(jì) CTR,這一類(lèi)特征可以注入先驗(yàn)的數(shù)據(jù)分布,提供一定的泛化能力,在實(shí)踐中效果較為明顯。
-
單特征的核心id類(lèi)特征,例如query_id,item_id,user_id等,這一類(lèi)特征是模型預(yù)估的基石,隨著模型的演進(jìn)我們也由有沖突 hash 升級(jí)到無(wú)沖突 hash 模式。雖然效果有提升,但為了控制住模型規(guī)模,系統(tǒng)需要配置相應(yīng)的特征準(zhǔn)入準(zhǔn)出策略,當(dāng)遇到數(shù)據(jù)分布變化劇烈的時(shí)期,例如季節(jié)變換或者大促時(shí)節(jié),策略需要頻繁調(diào)整,魯棒性較低。
直通車(chē)特征分布情況
針對(duì)上述主要特征,我們?cè)谡鎸?shí)業(yè)務(wù)環(huán)境下通過(guò)以下系統(tǒng)性實(shí)踐逐步精簡(jiǎn)模型:
-
設(shè)計(jì)關(guān)系網(wǎng)絡(luò),取代復(fù)合特征的隱式類(lèi)型的id類(lèi)特征;
-
設(shè)計(jì)基于 Graph 的預(yù)訓(xùn)練網(wǎng)絡(luò),取代復(fù)合特征的顯式類(lèi)型的統(tǒng)計(jì)值特征;
-
設(shè)計(jì) Multi-Hash 通用的壓縮方案,升級(jí)單特征的核心id類(lèi)特征;
-
設(shè)計(jì)隨模型可學(xué)習(xí)的特征選擇方案,確保整體特征結(jié)構(gòu)的精簡(jiǎn)性,特征均有正向邊際收益;
通過(guò)上述一系列解法,再結(jié)合樣本列存升級(jí)、異構(gòu)計(jì)算優(yōu)化和增量特征迭代等系統(tǒng)改造,直通車(chē) CTR 模型迭代環(huán)境大幅改善,模型規(guī)模從數(shù)T到幾十個(gè)G兩個(gè)數(shù)量級(jí)的精簡(jiǎn),在線(xiàn)機(jī)器也節(jié)省了幾百臺(tái),而且模型訓(xùn)練時(shí)長(zhǎng)縮減50%,在線(xiàn)預(yù)估性能 QPS 提升100%,為未來(lái)技術(shù)升級(jí)的可持續(xù)發(fā)展打下堅(jiān)實(shí)的基礎(chǔ)。
2.1. 關(guān)系網(wǎng)絡(luò)
直通車(chē)的特征體系中,復(fù)合特征是指由多個(gè)單特征組合而成的復(fù)雜特征類(lèi)型,主要分為兩類(lèi):
1)異構(gòu)空間的交叉特征(例如<user_age, item_id>特征交叉);
2)同構(gòu)空間的匹配特征(例如<query,item_title>的term匹配個(gè)數(shù))。
雖然深度學(xué)習(xí)的全連接層 MLP 具有萬(wàn)能的擬合能力,但實(shí)踐表明如果沒(méi)有設(shè)計(jì)顯式的模型結(jié)構(gòu)來(lái)針對(duì)性刻畫(huà)上述有待挖掘的特征交互關(guān)系,模型很難自己領(lǐng)悟到。這一類(lèi)特征伴隨直通車(chē) CTR 模型從 LR 升級(jí)到 DNN,提效均是非常顯著。但問(wèn)題也顯而易見(jiàn),笛卡爾積式的特征交互使得模型規(guī)模膨脹非常大,需要通過(guò)設(shè)置合理的閾值系數(shù)才能把規(guī)模控制到合理的范圍內(nèi)。模型瘦身首當(dāng)其沖就是設(shè)計(jì)關(guān)系網(wǎng)絡(luò)來(lái)改善這個(gè)問(wèn)題。
交叉特征的隱式 Embedding 表征是業(yè)界關(guān)注最多的話(huà)題,我們借鑒業(yè)界較為常用的特征交叉建模方案(例如 FM 系列,DCN[1],AutoInt[2]等),設(shè)計(jì)適配直通車(chē)場(chǎng)景的交叉網(wǎng)絡(luò)。該網(wǎng)絡(luò)的特點(diǎn)是參考 self-attention 結(jié)構(gòu),基于共享的交互強(qiáng)度矩陣,對(duì)稱(chēng)性地雙視角建模兩兩特征的交叉關(guān)系。且根據(jù)實(shí)際情況,對(duì)交叉特征域做先驗(yàn)設(shè)定(只保留流量需求側(cè)與供給側(cè)交互關(guān)系),整體交叉網(wǎng)絡(luò)作為 Deep 的一部分(實(shí)驗(yàn)表明 Wide 設(shè)計(jì)效果不佳),大塊的矩陣線(xiàn)性計(jì)算也有利于 GPU 加速,整體很好地刻畫(huà)了交叉特征的 Embedding 表征。
匹配特征一般刻畫(huà)特征交互的強(qiáng)度關(guān)系,主要有兩類(lèi):1)hard match,特征相同進(jìn)行統(tǒng)計(jì)計(jì)數(shù);2)soft match,特征相似進(jìn)行相似度計(jì)算。我們參考業(yè)界較為常用的特征匹配建模方案(例如 K-NRM[3],DRMM[4]等),設(shè)計(jì) hard 和 soft 匹配相結(jié)合的交互強(qiáng)度分布的直方圖。該直方圖不僅作用在文本語(yǔ)義匹配,刻畫(huà)搜索意圖相似度;還作用在用戶(hù)歷史行為序列上,刻畫(huà)個(gè)性化的興趣強(qiáng)度。
2.2. 基于 Graph 的預(yù)訓(xùn)練網(wǎng)絡(luò)
復(fù)合特征除了上述提到的隱式類(lèi)型以外,另一類(lèi)就是顯式的統(tǒng)計(jì)值,這類(lèi)特征業(yè)務(wù)提效也非常明顯,是業(yè)界提效公開(kāi)的秘密手段,存儲(chǔ)規(guī)模占比也不小,但是想做精簡(jiǎn)卻無(wú)法像上述關(guān)系網(wǎng)絡(luò)擬合一樣來(lái)處理。舉例來(lái)說(shuō),<user_age, item_id>交叉特征的 Embedding,可以通過(guò)單特征各自 user_age 的 Embedding 和 item_id 的 Embedding 計(jì)算得到,但是<user_age, item_id>交叉特征的 CTR,無(wú)法拆解成 user_age 的 CTR 和 item_id 的 CTR 交互計(jì)算。
為此,我們引入圖學(xué)習(xí)技術(shù),提出 PCF-GNN(Pre-trained Cross Feature learning Graph Neural Networks)方法[9] ,用節(jié)點(diǎn)表示特征,邊表示特征交互的統(tǒng)計(jì)值,通過(guò)鏈邊預(yù)測(cè)的方式擬合交互節(jié)點(diǎn)的邊權(quán)重信息,從而顯式建模交叉語(yǔ)義表征。該方案在取得業(yè)務(wù)提效同時(shí)還顯著壓縮模型規(guī)模,具體工作可詳見(jiàn):SIGIR 2021 | PCF-GNN:基于預(yù)訓(xùn)練圖神經(jīng)網(wǎng)絡(luò)的顯式交叉語(yǔ)義建模方案,歡迎關(guān)注。
2.3. Multi-Hash 壓縮方案
通過(guò)上述建模方案,我們成功將模型規(guī)模從T級(jí)別壓縮到百G級(jí)別,復(fù)合特征帶來(lái)的模型規(guī)模膨脹問(wèn)題得到了很好的解決。剩下的主要問(wèn)題就是核心id類(lèi)特征的模型規(guī)模需要進(jìn)一步壓縮,爭(zhēng)取在線(xiàn)預(yù)估服務(wù)由分布式改為單機(jī)模式,減少通信開(kāi)銷(xiāo),提升服務(wù)能力。直通車(chē)的核心id類(lèi)特征設(shè)計(jì)是由單 hash有沖突模式升級(jí)為無(wú)沖突模式,好處是核心id特征得到唯一性刻畫(huà),Embedding 學(xué)習(xí)保持獨(dú)立性,具備較快的 Embedding 收斂速度。這一升級(jí)帶來(lái)顯著業(yè)務(wù)提效,但于此同時(shí)系統(tǒng)復(fù)雜性也大大提升,除了增加分布式通信開(kāi)銷(xiāo)以外,還需要設(shè)計(jì)復(fù)雜的特征準(zhǔn)入準(zhǔn)出策略,保證模型規(guī)模不會(huì)隨新特征的引入而線(xiàn)性無(wú)限膨脹。
為了優(yōu)化上述系統(tǒng)問(wèn)題,我們調(diào)研和實(shí)踐了業(yè)界常用的幾個(gè)方案,包括單 Hash 的商余互補(bǔ)法[5]和多 Hash 類(lèi)的方法[6]和[7]等。通過(guò)長(zhǎng)達(dá)多個(gè)月的樣本持續(xù)訓(xùn)練,雖然單 hash 的商余互補(bǔ)法在理論上更優(yōu),但實(shí)驗(yàn)表明它的模型收斂性在直通車(chē)場(chǎng)景越往后會(huì)越疲軟,長(zhǎng)時(shí)間持續(xù)訓(xùn)練效果不如基礎(chǔ)的 Multi-Hash 方法。我們最終采用簡(jiǎn)單有效的 Multi-Hash 方案,該方案特點(diǎn)是雖然單 hash 是有沖突的,但通過(guò)多 Hash 的共同表征,使得整體沖突率大大降低,類(lèi)似達(dá)到無(wú)沖突的效果。同時(shí),不同 Hash 函數(shù)的選擇、Hash Embedding 是否共享、Hash Embedding 聚合方式等超參設(shè)計(jì)都會(huì)對(duì)最終的收斂結(jié)果產(chǎn)生影響。在規(guī)模極致壓縮的情況下,我們也略微擴(kuò)大了 Embedding 維度數(shù),最終在效果不降的情況下將模型進(jìn)一步壓縮一個(gè)量級(jí),幾十G的”小巧且精悍“的 CTR 模型開(kāi)始服役直通車(chē)。
Multi-Hash Embedding
2.4. Droprank 特征選擇
上述方法將頭部特征的存儲(chǔ)規(guī)模做了顯著壓縮,剩下的特征中是否在效果上也存在著“濫竽充數(shù)”的角色呢?我們習(xí)慣的特征迭代方式,一般在對(duì)某一類(lèi)特征做效果顯著性分析之后,就進(jìn)行舉一反三的設(shè)計(jì)并批量引入模型訓(xùn)練,其中必然會(huì)夾雜邊際收益極其微弱的特征設(shè)計(jì)。大規(guī)模離散稀疏模型,特征的 Embedding 不僅占據(jù)很大的存儲(chǔ)規(guī)模,在線(xiàn) serving 階段除了模型的 inference,特征處理也占據(jù)了很大一部分的計(jì)算。
所以,特征選擇非常重要。傳統(tǒng)特征選擇方法是偏啟發(fā)式,需要結(jié)合其他系統(tǒng)指標(biāo),進(jìn)行模型優(yōu)化和特征選擇的獨(dú)立迭代,并且是多輪反復(fù)優(yōu)化,效率較低。我們借鑒 Dropout Feature Ranking[8] 方法,將特征的重要性融入到模型的學(xué)習(xí)過(guò)程中,使得特征選擇和模型優(yōu)化同步進(jìn)行,不僅效率高還能使兩者優(yōu)化目標(biāo)保持一致,特征選擇更加有效。我們不僅將該方法成功落地,作為日常特征迭代的常規(guī)評(píng)估手段,還基于該方法創(chuàng)新性提出 FSCD(Feature Selection method based on feature Complexity and variational Dropout)技術(shù),引入先驗(yàn)的系統(tǒng)算力因子,使得性能權(quán)衡、模型優(yōu)化和特征選擇三者可以同步優(yōu)化,成功推廣到新一代粗排模型 Pre-Ranking 中。該方法[10]具體細(xì)節(jié)可詳見(jiàn):SIGIR 2021 | FSCD-PreRank:面向效率和效果更加均衡的交互式粗排模型,歡迎關(guān)注。
?? 3. 總結(jié)與展望
直通車(chē) CTR 模型通過(guò)生產(chǎn)環(huán)境的系統(tǒng)性實(shí)踐充分論證了“小而美”模型優(yōu)雅演進(jìn)的可能性,模型的瘦身是為了適配當(dāng)下的業(yè)務(wù)階段和資源環(huán)境,算法未來(lái)的迭代依然會(huì)繼續(xù)考慮資源有效利用率這一不容忽視的系統(tǒng)問(wèn)題。我們相信,沒(méi)有標(biāo)準(zhǔn)答案的迭代范式,只有適合自身業(yè)務(wù)發(fā)展的模型演進(jìn)之路。
參考文獻(xiàn)
[1] Deep & Cross Network for Ad Click Predictions
[2] AutoInt:?Automatic Feature Interaction Learning via Self-Attentive Neural Networks
[3] End-to-end neural ad-hoc ranking with kernel pooling
[4] A Deep Relevance Matching Model for Ad-hoc Retrieval
[5] Compositional Embedding Using Complementary Partitions For Memory-Efficient Recommendation Systems
[6] Hash Embeddings for Efficient Word Representations
[7] Model Size Reduction Using Frequency Based Double Hashing for Recommender Systems
[8] Dropout Feature Ranking for Deep Learning Models
[9] Explicit Semantic Cross Feature Learning via Pre-trained Graph Neural Networks for CTR Prediction
[10] Towards a Better Tradeoff between Effectiveness and Efficiency in Pre-Ranking: A Learnable Feature Selection based Approach
總結(jié)
以上是生活随笔為你收集整理的阿里妈妈搜索广告CTR模型的“瘦身”之路的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: HBase删除和修改操作
- 下一篇: 使用 cProfile 和火焰图调优 P