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