<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          阿里媽媽搜索廣告CTR模型的“瘦身”之路

          共 6175字,需瀏覽 13分鐘

           ·

          2021-06-12 15:54

          ?  前言

          隨著號稱“地表最強”的千億參數(shù)規(guī)模GPT-3模型在 NLP 領域橫掃各大數(shù)據(jù)榜單,大力出奇跡的暴力美學似乎成為了大數(shù)據(jù)場景建模的不二法門。搜索、推薦和廣告場景的 CTR 模型也不例外,同樣動輒千億參數(shù)規(guī)模、上T體積大小的 CTR 模型成為了同行爭相追逐的建模標配。但是無論面對生產運維環(huán)境,還是實驗迭代環(huán)境,它對存儲規(guī)模和計算性能的要求都是巨大的挑戰(zhàn)。而且隨著存量算力的逐漸耗盡和增量算力的趨勢放緩,它的“大力暴力”成為了業(yè)務算法迭代的沉重負擔。阿里媽媽搜索廣告模型團隊通過系統(tǒng)性的算法實踐讓原本龐大笨重的 CTR 模型輕盈轉身,搖身一變“小巧且精悍”,數(shù)T模型壓縮成幾十G規(guī)模且預估精度無損,開辟了一條“小而美”的嶄新的優(yōu)化方向。

          ?  1. 超大規(guī)模模型演進之路的辯證思考

          阿里媽媽搜索廣告的 CTR 模型伴隨直通車業(yè)務的發(fā)展持續(xù)迭代多年,主要包括兩個優(yōu)化路徑,分別是特征優(yōu)化和模型結構優(yōu)化。特征優(yōu)化主要包括多模態(tài)特征的豐富、高階特征的升級和動態(tài)特征的引入等;模型結構優(yōu)化主要包括圍繞搜索意圖挖掘的序列建模 Transformer 系列和圖建模 GNN 系列的改造等。因為同時期享受到硬件算力的增長紅利,所以算法迭代顯得非常闊綽,結合工程基建的迅猛發(fā)展,CTR 模型逐年變得既寬又深。直通車的日常 CTR 模型已經到了數(shù)T規(guī)模,暗合了“模型越大、預估能力越強”暴力美學的發(fā)展路徑。
          阿里搜索廣告特征模型優(yōu)化發(fā)展路徑
          但是日益臃腫的 CTR 模型不僅給工程實現(xiàn)帶來艱巨的挑戰(zhàn),也開始制約算法創(chuàng)新的迭代效率。單套模型所依賴的存儲和計算資源開銷不菲,考慮到多人迭代的實驗場景,多套并行對系統(tǒng)壓力更大。另外,真實的迭代環(huán)境是存量算力逐漸耗盡、增量算力又顯著放緩。因此,我們不得不重新審視算法迭代的資源利用率問題,開始重視投入產出比對模型迭代效率的影響;而且重新思考超大規(guī)模的 CTR 模型是否具有普世價值,畢竟還有諸多中小場景的業(yè)務依賴模型提效,但能夠配備如此規(guī)模的機器資源和工程能力是一種奢望。
          于是,為了在有限資源的約束下,模型仍然能夠高效迭代支撐業(yè)務快速發(fā)展,直通車 CTR 模型開始走上了“減肥瘦身”之路??紤]到廣告場景的特殊性,模型預估能力的微小下降會使得線上產生營收的真實損失,所以直通車 CTR 模型在瘦身的同時要求保持預估精度不降,這對模型精簡來說是個不小的挑戰(zhàn)。我們認為在龐大冗余的模型結構中應該存在不必要的信息編碼,且實踐證明類似 dropout 相關的操作還能使得模型的魯棒性和泛化性得以提升,這中間應該存在著“預估精度保持不變,模型規(guī)模顯著降低”的優(yōu)化空間。
          搜索、推薦和廣告場景的 CTR 模型的特點是高維、稀疏且離散,模型的絕大部分參數(shù)主要集中在特征的 Embedding 層,所以如何經濟有效地壓縮 Embedding 層的參數(shù)規(guī)模是 CTR 模型瘦身的關鍵。Embedding 層的壓縮主要有3個方向:
          1)行維度:即特征空間的壓縮
          2)列維度:即Embedding向量維度壓縮
          3)值精度:即FP16/Int8量化等


          我們在這3個方向都有充分實踐,本文主要介紹在行維度的特征壓縮,也是在直通車場景可以做到訓練過程中自壓縮,模型壓縮比有量級(其他兩個優(yōu)化方向只有倍數(shù)壓縮比)上的顯著收益且模型預估精度保持不變,下圖舉例說明。

          常用Embedding層壓縮思路

          ?  2. 小而美模型的蛻變之路

          直通車場景 Embedding 層的行維度即特征空間隨著常年的迭代,在提效的同時規(guī)模也一路狂奔。在線服務系統(tǒng)從單機到分布式,分布式又由數(shù)列擴到十幾列,系統(tǒng)復雜性和維護成本越來越高。雖然特征類型非常豐富,異構性也非常顯著,但從存儲規(guī)模的角度來說,整體服從冪律分布即少數(shù)類型的特征占據(jù)了存儲規(guī)模大頭。下面表格給出直通車主要特征的規(guī)模分布情況,因為存儲規(guī)模還受到另外兩個維度即 Embedding 維度數(shù)和值精度大小的影響,所以 Embedding 行占比和實際存儲占比是不一致的。從表中可以看出,以下幾類特征占據(jù)了不小的存儲規(guī)模,分別是:
          • 復合特征的隱式類型的id類特征,例如<user_age, item_id>交叉特征對應的 Embedding,這一類特征提供了更加微觀的id類特征的表征方式,在樣本規(guī)模較為充分的情況下能夠提供更加細膩的特征空間區(qū)分能力,實踐中效果較為顯著。

          • 復合特征的顯式類型的統(tǒng)計值特征,例如<user_age, item_id>交叉特征的歷史14天統(tǒng)計 CTR,這一類特征可以注入先驗的數(shù)據(jù)分布,提供一定的泛化能力,在實踐中效果較為明顯。

          • 單特征的核心id類特征,例如query_id,item_id,user_id等,這一類特征是模型預估的基石,隨著模型的演進我們也由有沖突 hash 升級到無沖突 hash 模式。雖然效果有提升,但為了控制住模型規(guī)模,系統(tǒng)需要配置相應的特征準入準出策略,當遇到數(shù)據(jù)分布變化劇烈的時期,例如季節(jié)變換或者大促時節(jié),策略需要頻繁調整,魯棒性較低。

          直通車特征分布情況
          針對上述主要特征,我們在真實業(yè)務環(huán)境下通過以下系統(tǒng)性實踐逐步精簡模型:
          • 設計關系網(wǎng)絡,取代復合特征的隱式類型的id類特征;
          • 設計基于 Graph 的預訓練網(wǎng)絡,取代復合特征的顯式類型的統(tǒng)計值特征;
          • 設計 Multi-Hash 通用的壓縮方案,升級單特征的核心id類特征;
          • 設計隨模型可學習的特征選擇方案,確保整體特征結構的精簡性,特征均有正向邊際收益;
          通過上述一系列解法,再結合樣本列存升級、異構計算優(yōu)化和增量特征迭代等系統(tǒng)改造,直通車 CTR 模型迭代環(huán)境大幅改善,模型規(guī)模從數(shù)T到幾十個G兩個數(shù)量級的精簡,在線機器也節(jié)省了幾百臺,而且模型訓練時長縮減50%,在線預估性能 QPS 提升100%,為未來技術升級的可持續(xù)發(fā)展打下堅實的基礎。
          2.1. 關系網(wǎng)絡
          直通車的特征體系中,復合特征是指由多個單特征組合而成的復雜特征類型,主要分為兩類:
          1)異構空間的交叉特征(例如<user_age, item_id>特征交叉);
          2)同構空間的匹配特征(例如<query,item_title>的term匹配個數(shù))。
          雖然深度學習的全連接層 MLP 具有萬能的擬合能力,但實踐表明如果沒有設計顯式的模型結構來針對性刻畫上述有待挖掘的特征交互關系,模型很難自己領悟到。這一類特征伴隨直通車 CTR 模型從 LR 升級到 DNN,提效均是非常顯著。但問題也顯而易見,笛卡爾積式的特征交互使得模型規(guī)模膨脹非常大,需要通過設置合理的閾值系數(shù)才能把規(guī)??刂频胶侠淼姆秶鷥取DP褪萆硎桩斊錄_就是設計關系網(wǎng)絡來改善這個問題。

          交叉特征的隱式 Embedding 表征是業(yè)界關注最多的話題,我們借鑒業(yè)界較為常用的特征交叉建模方案(例如 FM 系列,DCN[1],AutoInt[2]等),設計適配直通車場景的交叉網(wǎng)絡。該網(wǎng)絡的特點是參考 self-attention 結構,基于共享的交互強度矩陣,對稱性地雙視角建模兩兩特征的交叉關系。且根據(jù)實際情況,對交叉特征域做先驗設定(只保留流量需求側與供給側交互關系),整體交叉網(wǎng)絡作為 Deep 的一部分(實驗表明 Wide 設計效果不佳),大塊的矩陣線性計算也有利于 GPU 加速,整體很好地刻畫了交叉特征的 Embedding 表征。

          匹配特征一般刻畫特征交互的強度關系,主要有兩類:1)hard match,特征相同進行統(tǒng)計計數(shù);2)soft match,特征相似進行相似度計算。我們參考業(yè)界較為常用的特征匹配建模方案(例如 K-NRM[3],DRMM[4]等),設計 hard 和 soft 匹配相結合的交互強度分布的直方圖。該直方圖不僅作用在文本語義匹配,刻畫搜索意圖相似度;還作用在用戶歷史行為序列上,刻畫個性化的興趣強度。

          2.2. 基于 Graph 的預訓練網(wǎng)絡

          復合特征除了上述提到的隱式類型以外,另一類就是顯式的統(tǒng)計值,這類特征業(yè)務提效也非常明顯,是業(yè)界提效公開的秘密手段,存儲規(guī)模占比也不小,但是想做精簡卻無法像上述關系網(wǎng)絡擬合一樣來處理。舉例來說,<user_age, item_id>交叉特征的 Embedding,可以通過單特征各自 user_age 的 Embedding 和 item_id 的 Embedding 計算得到,但是<user_age, item_id>交叉特征的 CTR,無法拆解成 user_age 的 CTR 和 item_id 的 CTR 交互計算。

          為此,我們引入圖學習技術,提出 PCF-GNN(Pre-trained Cross Feature learning Graph Neural Networks)方法[9] ,用節(jié)點表示特征,邊表示特征交互的統(tǒng)計值,通過鏈邊預測的方式擬合交互節(jié)點的邊權重信息,從而顯式建模交叉語義表征。該方案在取得業(yè)務提效同時還顯著壓縮模型規(guī)模,具體工作可詳見:SIGIR 2021 | PCF-GNN:基于預訓練圖神經網(wǎng)絡的顯式交叉語義建模方案,歡迎關注。
          2.3. Multi-Hash 壓縮方案
          通過上述建模方案,我們成功將模型規(guī)模從T級別壓縮到百G級別,復合特征帶來的模型規(guī)模膨脹問題得到了很好的解決。剩下的主要問題就是核心id類特征的模型規(guī)模需要進一步壓縮,爭取在線預估服務由分布式改為單機模式,減少通信開銷,提升服務能力。直通車的核心id類特征設計是由單 hash有沖突模式升級為無沖突模式,好處是核心id特征得到唯一性刻畫,Embedding 學習保持獨立性,具備較快的 Embedding 收斂速度。這一升級帶來顯著業(yè)務提效,但于此同時系統(tǒng)復雜性也大大提升,除了增加分布式通信開銷以外,還需要設計復雜的特征準入準出策略,保證模型規(guī)模不會隨新特征的引入而線性無限膨脹。
          為了優(yōu)化上述系統(tǒng)問題,我們調研和實踐了業(yè)界常用的幾個方案,包括單 Hash 的商余互補法[5]和多 Hash 類的方法[6]和[7]等。通過長達多個月的樣本持續(xù)訓練,雖然單 hash 的商余互補法在理論上更優(yōu),但實驗表明它的模型收斂性在直通車場景越往后會越疲軟,長時間持續(xù)訓練效果不如基礎的 Multi-Hash 方法。我們最終采用簡單有效的 Multi-Hash 方案,該方案特點是雖然單 hash 是有沖突的,但通過多 Hash 的共同表征,使得整體沖突率大大降低,類似達到無沖突的效果。同時,不同 Hash 函數(shù)的選擇、Hash Embedding 是否共享、Hash Embedding 聚合方式等超參設計都會對最終的收斂結果產生影響。在規(guī)模極致壓縮的情況下,我們也略微擴大了 Embedding 維度數(shù),最終在效果不降的情況下將模型進一步壓縮一個量級,幾十G的”小巧且精悍“的 CTR 模型開始服役直通車。
          Multi-Hash Embedding

          2.4. Droprank 特征選擇

          上述方法將頭部特征的存儲規(guī)模做了顯著壓縮,剩下的特征中是否在效果上也存在著“濫竽充數(shù)”的角色呢?我們習慣的特征迭代方式,一般在對某一類特征做效果顯著性分析之后,就進行舉一反三的設計并批量引入模型訓練,其中必然會夾雜邊際收益極其微弱的特征設計。大規(guī)模離散稀疏模型,特征的 Embedding 不僅占據(jù)很大的存儲規(guī)模,在線 serving 階段除了模型的 inference,特征處理也占據(jù)了很大一部分的計算。
          所以,特征選擇非常重要。傳統(tǒng)特征選擇方法是偏啟發(fā)式,需要結合其他系統(tǒng)指標,進行模型優(yōu)化和特征選擇的獨立迭代,并且是多輪反復優(yōu)化,效率較低。我們借鑒 Dropout Feature Ranking[8] 方法,將特征的重要性融入到模型的學習過程中,使得特征選擇和模型優(yōu)化同步進行,不僅效率高還能使兩者優(yōu)化目標保持一致,特征選擇更加有效。我們不僅將該方法成功落地,作為日常特征迭代的常規(guī)評估手段,還基于該方法創(chuàng)新性提出 FSCD(Feature Selection method based on feature Complexity and variational Dropout)技術,引入先驗的系統(tǒng)算力因子,使得性能權衡、模型優(yōu)化和特征選擇三者可以同步優(yōu)化,成功推廣到新一代粗排模型 Pre-Ranking 中。該方法[10]具體細節(jié)可詳見:SIGIR 2021 | FSCD-PreRank:面向效率和效果更加均衡的交互式粗排模型,歡迎關注。

          ?  3. 總結與展望

          直通車 CTR 模型通過生產環(huán)境的系統(tǒng)性實踐充分論證了“小而美”模型優(yōu)雅演進的可能性,模型的瘦身是為了適配當下的業(yè)務階段和資源環(huán)境,算法未來的迭代依然會繼續(xù)考慮資源有效利用率這一不容忽視的系統(tǒng)問題。我們相信,沒有標準答案的迭代范式,只有適合自身業(yè)務發(fā)展的模型演進之路。


          參考文獻

          [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


          瀏覽 93
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青青草视频免费在线 | 99这里有精品 | 中文字幕一区二区三区乱码视频 | 日本无不卡中文字幕在线视频 | 五月婷婷深爱网 |