1. 程式人生 > >億級推廣流量仍能精準推薦?解讀核心算法的應用實踐

億級推廣流量仍能精準推薦?解讀核心算法的應用實踐

阿裏 算法 mlr 模型

阿裏媽媽,是一個想讓天下沒有難做的營銷的大數據平臺,它擁有阿裏巴巴集團的核心商業數據。在這裏,每天有超過50億的推廣流量完成超過3億件商品的推廣展現,覆蓋高達98%的網民,實現數字媒體(PC端+無線端+互聯網電視端)的一站式觸達。

在這些鮮亮的數據背後,是什麽樣的核心算法在起作用?它如何保證商家的產品得到最有效的推薦?本文將給大家詳解阿裏媽媽 CTR 預估核心算法 MLR 的研發背景和應用實踐。

一、關鍵詞小知識

點擊通過率 CTR(Click-Through-Rate),指網絡廣告(圖片廣告/文字廣告/關鍵詞廣告/排名廣告/視頻廣告等)的點擊到達率,即該廣告的實際點擊次數除以廣告的展現量。

點擊率預估(Click-Through Rate Prediction)是互聯網主流應用(廣告、推薦、搜索等)的核心算法問題。

CTR 預估是互聯網計算廣告中的關鍵技術環節,預估準確性直接影響商家的廣告收入。廣告領域的 CTR 預估面臨的是超高維離散特征空間中模式發現的挑戰,即如何擬合現有數據的規律,同時又具備推廣性。

二、CTR預估算法

傳統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 算法適合於工業級的大規模稀疏數據場景問題,優勢體現在兩個方面:

  1. 端到端的非線性學習:從模型端自動挖掘數據中蘊藏的非線性模式,省去了大量的人工特征設計,可以端到端地完成訓練,使得在不同場景中的遷移和應用變得輕松。

  2. 稀疏性: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 倍的加速。

技術分享

三、業務應用實踐

從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 算法的非線性能力,他們可以很容易地將不同的特征源、標簽體系融合到框架中,不需要過多地關註和設計特征的交叉組合,使得框架的靈活性大大增強。

四、總結和面臨的挑戰

阿裏媽媽算法技術團隊自主創新的 MLR 模型和算法,在業務的大範圍推廣和應用中取得了比較好的效果,另外在大數據智能方面,因為省去特征工程,具備了從數據接入到應用的全自動功能。

但是未來面臨的挑戰也很多,比如:

  • 初值問題、非凸問題的局部極值。雖然 MLR 比 LR 好,但不知道和全局最優相比還有多遠;

  • 在初值的 Pre-train 方面需要改進和優化模型函數等;

  • 目前規模化能力方面也需要能夠吞吐更多特征和數據,比如采用更快的收斂算法等等;

  • 整體的 MLR 算法的抽象能力也需進一步得到強化。

技術分享


本文出自 “12562290” 博客,請務必保留此出處http://12572290.blog.51cto.com/12562290/1948408

億級推廣流量仍能精準推薦?解讀核心算法的應用實踐