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