業餘草推薦阿里媽媽自研廣告點選率預估核心演算法MLR

業餘草發表於2017-09-13

業餘草推薦阿里媽媽自研廣告點選率預估核心演算法MLR。

小編覺得CTR(廣告點選率)預估的能力對於廣告系統的意義和重要性,類似於在證券市場上預測股價的能力,優秀的CTR預測,通向美好和財富...(以下轉載內容部分較為乾貨,文科生不易看懂是正常的,靜靜地欣賞數學之美即可...)

阿里媽媽國內領先的大資料營銷平臺,擁有阿里巴巴集團核心商業資料。在這裡每天有超過50億的推廣流量完成超過3億件商品的推廣展現,覆蓋高達98%的網民,實現數字媒體的一站式觸達。在這些鮮亮數字背後,是什麼樣的核心演算法在起作用?如何保證商家的產品得到最有效的推薦,今天,就為大家探祕阿里媽媽CTR預估核心演算法MLR的研發背景和應用實踐!

一、 技術背景

CTR(Click-Through-Rate)即點選通過率,是網際網路廣告常用的術語,指網路廣告(圖片廣告/文字廣告/關鍵詞廣告/排名廣告/視訊廣告等)的點選到達率,即該廣告的實際點選次數除以廣告的展現量。點選率預估(Click-Through Rate Prediction)是網際網路主流應用(廣告、推薦、搜尋等)的核心演算法問題,包括Google、Facebook等業界巨頭對這個問題一直進行著持續投入和研究。

CTR預估是網際網路計算廣告中的關鍵技術環節,預估準確性直接影響公司廣告收入。廣告領域的CTR預估問題,面臨的是超高維離散特徵空間中模式發現的挑戰——如何擬合現有資料的規律,同時又具備推廣性。

二、 CTR預估演算法現狀及進展

2.1 傳統CTR預估演算法及不足

業界傳統的CTR預估解法是廣義線性模型LR(logistic regression,邏輯斯特迴歸)+人工特徵工程。LR使用了Logit變換將函式值對映到0~1區間,對映後的函式值就是CTR的預估值。LR這種線性模型很容易並行化,處理上億條訓練樣本不是問題。但這種解法的不足是,因為線性模型的學習能力有限,需要引入大量的領域知識來人工設計特徵以及特徵之間的交叉組合來間接補充演算法的非線性學習能力,非常消耗人力和機器資源,遷移性不夠友好。

另外,目前業界也有一些效果不錯的非線性模型不斷被提出來,並被工程實踐且取得不錯效果,但這些模型都或多或少存在一些不足。比如Kernel方法,因為複雜度太高而不易實現;比如Tree based方法,這個是由Facebook團隊在2014年首先提出,有效地解決了LR模型的特徵組合問題,但缺點就是仍然是對歷史行為的記憶,缺乏推廣性;還有FM(factorization machine)模型,能自動學習高階屬性的權值,不用通過人工的方式選取特徵來做交叉,但FM模型只能擬合特定的非線性模式,如最常用的2階FM只能擬合特徵之間的線性關係和二次關係。深度神經網路非線性擬合能力足夠強,但面對廣告這樣的大規模工業級稀疏資料,適合資料規律的、具備推廣性的網路結構業界依然在探索中,尤其是要做到端到端規模化上線,這裡面的技術挑戰依然很大。

那麼挑戰來了,如何設計演算法從大規模資料中挖掘出具有推廣性的非線性模式?

2.2 阿里媽媽自主研發MLR演算法

2011-2012年期間,阿里媽媽資深專家蓋坤(花名靖世)突破了主流大規模線性模型的思路,創新性地提出了MLR(mixed logistic regression, 混合邏輯斯特迴歸)演算法,引領了廣告領域CTR預估演算法的全新升級。MLR演算法創新地提出並實現了直接在原始空間學習特徵之間的非線性關係,基於資料自動發掘可推廣的模式,相比於人工來說效率和精度均有了大幅提升。

MLR可以看做是對LR的一個自然推廣,它採用分而治之的思路,用分片線性的模式來擬合高維空間的非線性分類面,其形式化表達如下:

這裡面超引數分片數m可以較好地平衡模型的擬合與推廣能力。當m=1時MLR就退化為普通的LR,m越大模型的擬合能力越強,但是模型引數規模隨m線性增長,相應所需的訓練樣本也隨之增長。因此實際應用中m需要根據實際情況進行選擇。例如,在我們的場景中,m一般選擇為12。下圖中MLR模型用4個分片可以完美地擬合出資料中的菱形分類面。

MLR演算法適合於工業級的大規模稀疏資料場景問題,如廣告CTR預估。背後的優勢體現在兩個方面:

1)端到端的非線性學習:從模型端自動挖掘資料中蘊藏的非線性模式,省去了大量的人工特徵設計,這 使得MLR演算法可以端到端地完成訓練,在不同場景中的遷移和應用非常輕鬆。

2)稀疏性:MLR在建模時引入了L1和L2,1範數正則,可以使得最終訓練出來的模型具有較高的稀疏度, 模型的學習和線上預測效能更好。當然,這也對演算法的優化求解帶來了巨大的挑戰,具體細節參見我們的論文(見文章尾部)。

2.3 MLR演算法高階特性

在具體的實踐應用中,阿里媽媽精準定向團隊進一步發展了MLR演算法的多種高階特性,主要包括:

1)結構先驗。基於領域知識先驗,靈活地設定空間劃分與線性擬合使用的不同特徵結構。例如精準定向 廣告中驗證有效的先驗為:以user特徵空間劃分、以ad特徵為線性擬合。直觀來講這是符合人們的認知的:不同人群具有聚類特性,同一類人群對廣告有類似的偏好,例如高消費人群喜歡點選高客單價的廣告。結構先驗有助於幫助模型縮小解空間的探索範圍,收斂更容易。

2)線性偏置。這個特性提供了一個較好的方法解決CTR預估問題中的bias特徵,如位置、資源位等。實際應用中我們對位置bias資訊的建模,獲得了4%的RPM提升效果。

3)模型級聯。MLR支援與LR模型的級聯式聯合訓練,這有點類似於wide&deep learning。在我們的實踐經驗中,一些強feature配置成級聯模式有助於提高模型的收斂性。例如典型的應用方法是:以統計反饋類特徵構建第一層模型,它的輸出(如下圖中的FBCtr)級聯到第二級大規模稀疏ID特徵體系中去,這樣能夠有助於獲得更好的提升效果。

4)增量訓練。實踐證明,MLR通過結構先驗進行pretrain,然後再增量進行全空間引數尋優訓練,會獲得進一步的效果提升。同時增量訓練模式下模型達到收斂的步數更小,收斂更為穩定。在我們的實際應用中,增量訓練帶來的RPM增益達到了3%。

2.4 大規模分散式實現

MLR演算法面向的是工業級的資料,例如億級特徵,百億級引數,千億級樣本。因此我們設計了一套分散式架構,以支援模型的高效並行訓練。下圖是架構示意圖,它跟傳統的parameter server架構略有區別,主要不同點在於我們在每一個分散式節點上同時部署了worker和server兩種角色,而不是將server單獨剝離出去部署。這背後的考慮是充分利用每個節點的CPU和記憶體,從而保證最大化機器的資源利用率。

此外,針對個性化廣告場景中資料的結構化特性,我們提出並實現了common feature的trick,可以大幅度壓縮樣本儲存、加速模型訓練。例如下圖示意,在展示廣告中,一般來說一個使用者在一天之內會看到多條廣告展現,而一天之內這個使用者的大量的靜態特徵(如年齡、性別、昨天以前的歷史行為)是相同的,通過common feature壓縮,我們對這些樣本只需要儲存一次使用者的靜態特徵,其餘樣本通過索引與其關聯;在訓練過程中這部分特徵也只需要計算一次。在實踐中應用common feature trick使得我們用近1/3的資源消耗獲得了12倍的加速。

我的部落格:CODE大全www.codedq.net業餘草www.xttblog.com愛分享www.ndislwf.comifxvn.com

三、 MLR在阿里媽媽業務應用現狀

從2013年起,MLR演算法在阿里媽媽及阿里集團多個BU的主要場景(包括阿里媽媽精準定向廣告、淘寶客、神馬商業廣告、淘寶主搜等等)被大規模地應用和嘗試,尤其是在阿里媽媽的精準定向廣告場景,演算法模型創新帶來了業務上的重大突破,主要場景下的CTR和RPM均獲得20%以上的提升。典型應用如下:

3.1 基於MLR的定向廣告CTR預估演算法

基於MLR演算法的非線性學習能力,阿里媽媽的定向廣告CTR預估採用了大規模原始ID特徵+MLR演算法的架構。具體地,我們刻畫一次廣告展現為特徵向量,它由三部分獨立構成:使用者部分特徵(包括userid、profile資訊、使用者在淘寶平臺上的歷史行為特徵(瀏覽/購買過的寶貝/店鋪/類目上的id和頻次等)、廣告部分特徵(包括adid、campainid、廣告對應的賣家店鋪id、類目id等)、場景部分特徵(包括時間、位置、資源位等)。這些特徵之間無傳統的交叉組合,維度在2億左右。然後我們將資料直接餵給MLR演算法,並且應用了結構化先驗、pretrain+增量訓練、線性偏置等高階技巧,讓模型從資料中自動去總結和擬合規律。實踐證明,相比於傳統的LR+特徵工程思路,這種解法更為高效和優雅,模型精度更高,在實際生產中的可迭代更強。

3.2 基於MLR的定向廣告Learning to Match演算法

Match演算法是定向廣告中的一個重要環節,它的核心使命是基於使用者的人口屬性、歷史行為等資訊來猜測使用者可能感興趣的廣告集合。傳統的Match演算法更多采用的是規則匹配、協同過濾等方法,方法的擴充套件性不強。在阿里媽媽定向廣告系統中,我們研發了基於MLR的learning to match演算法框架。簡單來說,用模型的方法基於使用者的行為歷史來學習使用者個性化的興趣,從而召回高相關性的候選廣告集。同樣地,基於MLR演算法的非線效能力,我們可以很容易地將不同的特徵源、標籤體系融合到框架中,不需要過多地關注和設計特徵的交叉組合,使得框架的靈活性大大增強。

四、 總結和挑戰

總的來說,阿里媽媽演算法技術團隊自主創新的MLR模型和演算法,在阿里媽媽業務中大範圍推廣和應用帶來了非常好的效果,另外在大資料智慧方面,因為省去特徵工程,具備了從資料接入到應用的全自動功能。

雖然目前取得了非常不錯的成績,但是未來的挑戰也不小:比如初值問題、非凸問題的區域性極值、雖然MLR比LR好,但不知道和全域性最優相比還有多遠;第二,在初值的Pre-train方面需要改進和優化模型函式等等;第三,目前規模化能力方面也需要能夠吞吐更多特徵和資料,比如採用更快的收斂演算法等等;最後,整體的MLR演算法的抽象能力也需進一步得到強化。


相關文章