億級推廣流量仍能精準推薦?解讀核心算法的應用實踐
原創(chuàng)【51CTO.com原創(chuàng)稿件】阿里媽媽,是一個想讓天下沒有難做的營銷的大數(shù)據(jù)平臺,它擁有阿里巴巴集團的核心商業(yè)數(shù)據(jù)。在這里,每天有超過50億的推廣流量完成超過3億件商品的推廣展現(xiàn),覆蓋高達98%的網(wǎng)民,實現(xiàn)數(shù)字媒體(PC端+無線端+互聯(lián)網(wǎng)電視端)的一站式觸達。
在這些鮮亮的數(shù)據(jù)背后,是什么樣的核心算法在起作用?它如何保證商家的產(chǎn)品得到最有效的推薦?本文將給大家詳解阿里媽媽 CTR 預估核心算法 MLR 的研發(fā)背景和應用實踐。
一、關鍵詞小知識
點擊通過率 CTR(Click-Through-Rate),指網(wǎng)絡廣告(圖片廣告/文字廣告/關鍵詞廣告/排名廣告/視頻廣告等)的點擊到達率,即該廣告的實際點擊次數(shù)除以廣告的展現(xiàn)量。
點擊率預估(Click-Through Rate Prediction)是互聯(lián)網(wǎng)主流應用(廣告、推薦、搜索等)的核心算法問題。
CTR 預估是互聯(lián)網(wǎng)計算廣告中的關鍵技術環(huán)節(jié),預估準確性直接影響商家的廣告收入。廣告領域的 CTR 預估面臨的是超高維離散特征空間中模式發(fā)現(xiàn)的挑戰(zhàn),即如何擬合現(xiàn)有數(shù)據(jù)的規(guī)律,同時又具備推廣性。
二、CTR預估算法
傳統(tǒng)CTR預估算法和非線性模型存在的不足
業(yè)界傳統(tǒng)的 CTR 預估解法是廣義線性模型 LR (logistic regression,邏輯斯特回歸)+人工特征工程。LR 使用了 Logit 變換將函數(shù)值映射到0~1區(qū)間,映射后的函數(shù)值就是 CTR 的預估值。LR 這種線性模型很容易并行化,處理上億條訓練樣本不是問題。
但這種解法的不足是線性模型的學習能力有限,需要引入大量的領域知識來人工設計特征以及特征之間的交叉組合來間接補充算法的非線性學習能力,非常消耗人力和機器資源,遷移性不夠友好。
另外,業(yè)界也有一些效果不錯的非線性模型不斷被提出來,并被工程實踐且取得不錯效果,但這些模型都或多或少存在一些不足。
-
Kernel 方法,因為復雜度太高而不易實現(xiàn)。
-
Tree based 方法,由 Facebook 團隊在2014年首先提出,有效地解決了 LR 模型的特征組合問題,但缺點仍然是對歷史行為的記憶,缺乏推廣性。
-
FM(factorization machine)模型,能自動學習高階屬性的權值,不用通過人工的方式選取特征來做交叉,但FM模型只能擬合特定的非線性模式,如最常用的 2 階 FM 只能擬合特征之間的線性關系和二次關系。
-
深度神經(jīng)網(wǎng)絡非線性擬合能力足夠強,但面對廣告這樣的大規(guī)模工業(yè)級稀疏數(shù)據(jù),適合數(shù)據(jù)規(guī)律的、具備推廣性的網(wǎng)絡結(jié)構業(yè)界依然在探索中,尤其是要做到端到端規(guī)模化上線,這里面的技術挑戰(zhàn)依然很大。
那么,挑戰(zhàn)來了,如何設計算法從大規(guī)模數(shù)據(jù)中挖掘出具有推廣性的非線性模式?
阿里媽媽自主研發(fā)的MLR算法
基于上述的算法的不足和商戶的實際需要,2011-2012年期間,阿里媽媽資深專家蓋坤(花名靖世)突破主流大規(guī)模線性模型的思路,提出了 MLR (mixed logistic regression, 混合邏輯斯特回歸)算法,給廣告領域 CTR 預估算法帶來了新升級。
MLR 算法基于數(shù)據(jù)自動發(fā)掘可推廣的模式,直接在原始空間學習特征之間的非線性關系,相比于人工來說提升了效率和精度。
MLR 可以看做是對 LR 的一個自然推廣,它采用分而治之的思路,用分片線性的模式來擬合高維空間的非線性分類面,其形式化表達如下:
這里超參數(shù)分片數(shù) m 可以較好地平衡模型的擬合與推廣能力。當 m=1 時,MLR 就退化為普通的 LR,m 越大,模型的擬合能力越強,但是模型參數(shù)規(guī)模隨 m 線性增長,相應所需的訓練樣本也隨之增長。
因此,實際應用中 m 需要根據(jù)實際情況進行選擇,一般 m 設定為12。下圖中,MLR 模型用 4 個分片完美地擬合出數(shù)據(jù)中的菱形分類面。
MLR 算法適合于工業(yè)級的大規(guī)模稀疏數(shù)據(jù)場景問題,優(yōu)勢體現(xiàn)在兩個方面:
-
端到端的非線性學習:從模型端自動挖掘數(shù)據(jù)中蘊藏的非線性模式,省去了大量的人工特征設計,可以端到端地完成訓練,使得在不同場景中的遷移和應用變得輕松。
-
稀疏性:MLR 在建模時引入了和范數(shù)正則,使得最終訓練出來的模型具有較高的稀疏度, 模型的學習和在線預測性能更好。
MLR算法高級特性
在具體的實踐應用中,阿里媽媽精準定向團隊進一步發(fā)展了 MLR 算法的多種高級特性,主要包括:
結(jié)構先驗。基于領域知識先驗,靈活地設定空間劃分與線性擬合使用的不同特征結(jié)構。它有助于幫助模型縮小解空間的探索范圍,收斂更容易。
例如精準定向廣告中驗證有效的先驗為:以 user 特征空間劃分、以 ad 特征為線性擬合。它符合人們的常規(guī)認知:不同人群具有聚類特性,同一類人群對廣告有類似的偏好,例如高消費人群喜歡點擊高客單價的廣告。
線性偏置。這個特性提供了一個較好的方法解決 CTR 預估問題中的 bias 特征,如位置、資源位等。實際應用中,工程師通過對位置 bias 信息的建模,獲得了 4% 的 RPM提升效果。
模型級聯(lián)。MLR 支持與 LR 模型的級聯(lián)式聯(lián)合訓練,這有點類似于 wide&deep learning。一些強 feature 配置成級聯(lián)模式有助于提高模型的收斂性。
典型的應用方法是:以統(tǒng)計反饋類特征構建第一層模型,它的輸出(如下圖中的 FBCtr)級聯(lián)到第二級大規(guī)模稀疏 ID 特征體系中去,能夠獲得更好的提升效果。
增量訓練。MLR 通過結(jié)構先驗進行 pretrain,然后再增量進行全空間參數(shù)尋優(yōu)訓練,會獲得進一步的效果提升。同時增量訓練模式下,模型達到收斂的步數(shù)更小,收斂更為穩(wěn)定。在阿里媽媽的實際應用中,增量訓練帶來的 RPM 增益達到了 3%。
大規(guī)模分布式實現(xiàn)
MLR 算法面向的是工業(yè)級的數(shù)據(jù),例如億級特征,百億級樣本。因此,工程師設計了一套分布式架構,以支持模型的高效并行訓練。
下圖是架構示意圖,它跟傳統(tǒng)的 parameter server 架構略有區(qū)別,主要不同點在于每一個分布式節(jié)點上同時部署了 worker 和 server 兩種角色,而不是將 server 單獨剝離出去部署。這樣做是為了充分利用每個節(jié)點的 CPU 和內(nèi)存,從而保證最大化機器的資源利用率。
此外,針對個性化廣告場景中數(shù)據(jù)的結(jié)構化特性,他們提出并實現(xiàn)了 common feature 的 trick,可以大幅度壓縮樣本存儲、加速模型訓練。
如下圖所見,在展示廣告中,一個用戶在一天之內(nèi)會看到多條廣告展現(xiàn),而一天之內(nèi)這個用戶的大量的靜態(tài)特征(如年齡、性別、昨天以前的歷史行為)是相同的,通過 common feature 壓縮,阿里媽媽對這些樣本只需要存儲一次用戶的靜態(tài)特征,其余樣本通過索引與其關聯(lián);在訓練過程中,這部分特征也只需要計算一次。在實踐中,他們應用 common feature trick 使得相比之前,使用近 1/3 的資源消耗獲得了 12 倍的加速。
三、業(yè)務應用實踐
從2013年起,MLR 算法在阿里媽媽及阿里集團多個 BU 的主要場景(包括阿里媽媽精準定向廣告、淘寶客、神馬商業(yè)廣告、淘寶主搜等等)被大規(guī)模地應用和嘗試,尤其是在阿里媽媽的精準定向廣告場景,算法模型創(chuàng)新帶來了業(yè)務上的重大突破,主要場景下的 CTR 和 RPM 均獲得 20% 以上的提升。
典型應用如下:
基于 MLR 的定向廣告 CTR 預估算法
基于 MLR 算法的非線性學習能力,阿里媽媽的定向廣告 CTR 預估采用了大規(guī)模原始ID 特征 + MLR 算法的架構。具體為刻畫一次廣告展現(xiàn)為特征向量,它由三部分獨立構成:
-
用戶部分特征(包括 userid、profile 信息、用戶在淘寶平臺上的歷史行為特征(瀏覽/購買過的寶貝/店鋪/類目上的 id 和頻次等)
-
廣告部分特征(包括 adid、campainid、廣告對應的賣家店鋪 id、類目 id 等)
-
場景部分特征(包括時間、位置、資源位等)
這些特征之間無傳統(tǒng)的交叉組合,維度在 2 億左右。然后,他們將數(shù)據(jù)直接喂給 MLR 算法,并且應用了結(jié)構化先驗、pretrain+ 增量訓練、線性偏置等高級技巧,讓模型從數(shù)據(jù)中自動去總結(jié)和擬合規(guī)律。相比于傳統(tǒng)的 LR+ 特征工程思路,這種解法更為高效和優(yōu)雅,模型精度更高,在實際生產(chǎn)中的可迭代更強。
基于 MLR 的定向廣告 Learning to Match 算法
Match 算法是定向廣告中的一個重要環(huán)節(jié),它的核心使命是基于用戶的人口屬性、歷史行為等信息來猜測用戶可能感興趣的廣告集合。傳統(tǒng)的 Match 算法更多采用的是規(guī)則匹配、協(xié)同過濾等方法,方法的擴展性不強。
在阿里媽媽定向廣告系統(tǒng)中,工程師研發(fā)了基于 MLR 的 learning to match 算法框架。簡單來說,用模型的方法基于用戶的行為歷史來學習用戶個性化的興趣,從而召回高相關性的候選廣告集。
同樣地,基于 MLR 算法的非線性能力,他們可以很容易地將不同的特征源、標簽體系融合到框架中,不需要過多地關注和設計特征的交叉組合,使得框架的靈活性大大增強。
四、總結(jié)和面臨的挑戰(zhàn)
阿里媽媽算法技術團隊自主創(chuàng)新的 MLR 模型和算法,在業(yè)務的大范圍推廣和應用中取得了比較好的效果,另外在大數(shù)據(jù)智能方面,因為省去特征工程,具備了從數(shù)據(jù)接入到應用的全自動功能。
但是未來面臨的挑戰(zhàn)也很多,比如:
-
初值問題、非凸問題的局部極值。雖然 MLR 比 LR 好,但不知道和全局最優(yōu)相比還有多遠;
-
在初值的 Pre-train 方面需要改進和優(yōu)化模型函數(shù)等;
-
目前規(guī)模化能力方面也需要能夠吞吐更多特征和數(shù)據(jù),比如采用更快的收斂算法等等;
-
整體的 MLR 算法的抽象能力也需進一步得到強化。
【51CTO原創(chuàng)稿件,合作站點轉(zhuǎn)載請注明原文作者和出處為51CTO.com】