點擊率預估綜述

點擊率預估綜述

作者:張紅林,騰訊高級工程師

背景

在計算廣告系統中,一個可以攜帶廣告請求的用戶流量到達後臺時,系統需

要在較短時間(一般要求不超過100ms)內返回一個或多個排序好的廣告列表;在廣告系統中,一般最後一步的排序score=bid*pctralpha;其中alpha參數控制排序傾向,如果alpha<1,則傾向於pctr,否則傾向於bid;這裏的核心因子pctr就是通常所說的點擊率(predicted click through rate)。

在推薦系統中,也有類似的需求,當用戶請求到達後臺的時候,我們需要返回一個排序好的文章列表或者feeds列表。早期的推薦系統主要以協同過濾和基於內容的推薦爲主,近年來推薦系統的主流形式也變成和廣告類似的兩步走模式:先召回一個候選隊列,然後排序;在排序這一步有很多種不同的策略,比如pair-wise的一些分類算法之類,但更多還是類似facebook、youtube之類的計算一個分數,然後排序;這個分數裏往往也少不了item的pctr這個關鍵因子。

綜上,在計算廣告、推薦系統等不同業務系統中都對預測物品的點擊率有需求,所以這方面的研究也比較多,本文試着梳理一下相關的技術脈絡。

problem formulation:迴歸問題vs分類問題

我們可以有很多種不同的方式來定義點擊問題,本文會列舉兩種方式;第一

種是將其看做一個分類問題;這種看法比較自然是因爲我們原始的日誌是曝光和點擊;通過簡單的歸約以後,我們把點擊看做正樣本,曝光看做負樣本的話,基於一段時間的數據樣本,我們可以訓練一個分類器,形式化來說,假設用戶u、物品i,上下文c,曝光和點擊類別e,每個樣本可以看成一個<u,i,c|e>的元組;其中e的取值只有01兩種,這時候對每一個用戶、物品、上下文組合<u,i,c>我們需要一個模型來對其分類,是點擊還是不點擊;

從分類角度出發,我們有很多算法可以用,比如貝葉斯分類器;svm、最大熵等等;我們也可以使用迴歸算法通過閾值來處理。

另一種看法假設每個<u,i,c>我們可以預測一個ctr(0-1之間的值),這時候就變成了一個迴歸問題,可以使用lr、fm、神經網絡等模型。

在本文的結尾部分可能會有其他的一些問題定義的方法,大家也可以看到在實際業務中,不同的問題定義方式不僅決定了可以使用的模型的範圍,甚至是決定了本質效果的差異。某個領域機器學習方法的進步,往往不只是模型的進步,有時候是先有問題定義的進步,然後纔有模型和算法的進步;而問題定義的進步來源於我門對業務場景的理解,所以做算法的同學也一定要多花時間和精力在業務場景的分析和挖掘上。

邏輯迴歸介紹

將用戶是否點擊一個物品看成迴歸問題以後,使用最廣泛的模型當屬邏輯回

歸,[1]是一篇很不錯的關於邏輯迴歸的綜述,這裏不打算展開講邏輯迴歸的細節,簡單做個介紹並說明實際使用中的一些注意點。

首先邏輯迴歸使用sigmoid函數來建模,函數如下:

該函數對應的圖像如下所示

lr的優點很明確,首先sigmoid函數的取值範圍是0-1,剛好可以解釋爲點擊概率,而輸入的範圍卻可以很寬廣。所以lr是歷史最悠久、使用最廣泛的點擊率、轉化率模型。

這裏重點說下使用lr需要注意的幾個事項,首先是訓練算法;如果使用離線訓練算法,有比較多的選擇,比如sgd、lbfgs、owlq、tron等等;其中sgd是一種非常通用的優化算法,但個人認爲理論研究模型的時候可以用sgd快速理解,但實際業務中往往不是最佳選擇,尤其是存在其他備選項的情況下;原因可以給一個直觀的解釋,從sigmoid函數圖像可以看出來,在x大於4或者小於-4以後,函數的取值已經接近於1或者0了,此時函數的梯度方向接近平行,說明梯度很小,那單個樣本對模型參數的貢獻也會接近於0,所以sgd的收斂速度越來越慢。這種收斂速度是敏感的,如果你跑一個模型幾個小時收斂不了,和另一個算法幾分鐘就收斂了,那時間的量變就會帶來模型性能指標的質變的。

除了訓練算法之外,lr模型最需要注意的是特徵的呈現方式,從sigmoid的解析式可以看到lr其實是廣義線性模型的一種(GLM),所以lr既不能很好的處理連續型特徵,也無法對特徵進行組合。相反對於categorical feature反而處理的很好。因此,使用lr模型的時候往往伴隨着大量特徵工程方面的工作,包括但不限於連續特徵離散化、特徵組合等

3.1特徵離散化

對於continous feature,如年齡、薪水、閱讀數、身高等特徵,如果要添加到lr模型中,則最好先進行離散處理,也叫one-hot編碼;離散化處理的方式有幾種,等值分桶、等頻分桶等;或者直接根據對業務的理解分桶。例如對於電商類,可能20歲以下的沒有什麼經濟能力,20-40的經濟能力差不多,這時候可以人工劃分。

等值分桶是指每個區間同樣大小,比如年齡每隔5歲爲一個桶,則年齡特徵變成一個20個區間(假設上限是100歲)的編碼,如15歲對應(0、0、1、0、0、0…)。

等頻分桶則是需要先對樣本做一個分佈統計,還是以年齡爲例,首先我們要基於統計得到一個年齡分佈直方圖,通常這類特徵都會大致符合一個正太分佈,這時候對於中間階段就需要多拆分幾個桶,而對於兩邊的部分可以少一點;如0-16一個區間,16-18一個區間,18-20一個區間,20-30一個區間。目標是使得每個區間裏的人數分佈基本持平。

特徵離散化的好處我理解是風險均攤,不把雞蛋放在一個籃子裏。舉個例子,如果年齡特徵對最終的預測結果很重要,則可能在lr模型中獲得一個比較大的權重w,這時候如果有一個異常數據,某個人年齡些的是200歲,就會一下子將函數值推到接近1的區域。這明顯不是我們想要的,相反如果通過離散化,年齡特徵的權重會分散到各個桶對應的特徵裏,這時候單個特徵的異常就不會造成很大的影響。

3.2特徵組合

假設模型裏有年齡、性別、身高三個特徵;這時候就會出現一個特徵組合的問題,比如年齡+性別可以作爲一個新的特徵,可能某類物品對於這種組合特徵有偏好,如16歲以下的小男孩對變形金剛很感興趣(我實在想不到什麼例子)。這種需求lr是沒有辦法自動完成的,只能人工來添加。

類似還有三階特徵、四階特徵等等,在比較長一段時間,特徵工程是算法那工程師的主要工作,後來特徵多到人力無法去進行有效組合的時候,又想出來了其他一些辦法,比如後面要介紹的GBDT+LR就是facebook提出的一種應對特徵組合的處理方式。

3.3 特徵設計

在這裏也單開一個小節來介紹特徵設計的內容,這塊沒有特別有效的現成方法,也沒有相關的書籍總結,但又很重要。如果特徵設計不好,很可能模型根本出不了效果,能給大家的建議就是多讀讀論文。從和自己業務需求相似的論文中去看別人設計特徵的方式,然後結合自己的業務看看能否借鑑。

從我自己閱讀的一些paper裏我總結了兩個所謂的“套路”。一個是獲取外部關聯信息,比如對於新廣告,我們要預測點擊率的話,因爲沒有歷史數據,我們可以從層次結構來獲取一些信息,比如這個廣告的publisher下面其他廣告的點擊情況,這個廣告的落地頁的url種的層次關係,比如xx.com/food/x.html這類url,我們是否可以對food做一個聚合,看看這類落地頁對應的廣告的數據情況,作爲我們新廣告的特徵。還有一種技巧,將廣告相關的文本,或者廣告購買的關鍵詞列表,丟到搜索引擎上去跑一下,取返回的top10頁面聚合以後做一個分類(類別體系可以提前設計),然後根據關鍵詞列表在不同類別上分佈形成的信息熵作爲一個feature,放到lr裏。在[2]中使用這種方法得到了一定的提升。

另一個套路是使用數據不同方面的信息,這個策略更加隱晦。舉個例子,我們可以根據用戶的資訊閱讀歷史計算一個興趣畫像,但是這個畫像我們可以分成幾個畫像,比如拿一週的歷史算一個,一個月的歷史算一個,然後通過實踐decay算一個歷史全量的。這樣場中短期分開的畫像可以作爲獨立的特徵放到模型中去。另一個例子是cf論文中一個很有意思的做法,在netflix的數據集裏,user-item矩陣嵌入了一個隱藏信息是user-打分item的對應關係,所以我們可以從user-rating矩陣裏提取一個二元取值的user-item關聯矩陣,如果u對i打分了,則這個矩陣對應ui的位置爲1,否則爲0.把這個矩陣作爲一個implicit feedback加入到cf裏,會有進一步的效果提升,這就是數據信息的不同facet。

特徵設計還有很多其他的技巧,這裏就不一一列舉了,還是需要去搜尋和自己業務場景相關的論文,閱讀、總結,後面我會再寫一篇協同過濾的綜述,那裏會介紹另外一些技巧。

3.4 評價指標

這一小節是後補的,主要介紹幾種常用的評價指標以及他們各自的優缺點,主要取材於[21]。這裏選取AUC、RIG、MSE三個來重點說下,其他的指標有需要的請參考原文。

AUC是ROC曲線下的面積,是一個[0,1]之間的值。他的優點是用一個值概括出模型的整體performance,不依賴於閾值的選取。因此auc使用很廣泛,既可以用來衡量不同模型,也可以用來調參。比如

 這是用auc來調超參的一個例子,橫座標是GBDT的樹的棵樹,縱座標是對應模型收斂後在test集和train集上的auc值,從圖中可以看到在120棵樹附近GBDT就開始出現過擬合情況了,不過兩個集合的auc都還在持續上升。除此之外,AUC還可以作爲一個在線監測的指標,來時刻監測在線模型的表現。

AUC指標的不足之處有兩點,一是隻反映了模型的整體性能,看不出在不同點擊率區間上的誤差情況;二是隻反映了排序能力,沒有反映預測精度;簡單說,如果對一個模型的點擊率統一乘以2,AUC不會變化,但顯然模型預測的值和真實值之間的offset擴大了。

Netflix比賽用的RMSE指標可以衡量預測的精度,與之類似的指標有MSE、MAE,以MSE爲例,計算公式如下

 公式裏的ci和pi分別對應真是的laber和預測的ctr值;前者用01表示曝光和點擊;後者用[0,1]之間的實值即可。MSE指標不僅可以用來調參,也可以在參數選定以後來分區間看模型的擬合程度;熟悉netflix比賽相關paper的同學可能知道缺點在哪,就是區分度的問題,很有可能MSE的很小的提升,對線上的效果,比如F值會有較大的變化,因此在業務優化的時候還可以參考其他更有區分度的指標。

如果我們要對比不同的算法的模型的精度怎麼辦呢?除了MSE有沒有其他選擇?這裏提供一個RIG

 這張圖直接取子[21],表示有點問題,我先留給大家來發現吧,正確的表達式在本文另一篇參考文獻裏有,先留個懸念:)

這裏要強調的一點是RIG指標不僅和模型的質量有關,還和數據集的分佈情況有關;因此千萬注意不可以使用RIG來對比不同數據集上生成的模型,但可以用來對比相同數據集上不同模型的質量差異。這一點尤爲注意

幾種常用點擊率模型介紹

BOPR

[3]是微軟內部競賽出來的一個算法,也被後續很多算法作爲對比的baseline。

 這個算法的細節可以直接去看原文,這裏只對優劣做一個簡單介紹。該算法的基本思想是參數w是一個先驗分佈爲正態分佈的分佈,參數爲u、ó;在貝葉斯框架下,每一個樣本都是在修正對應的分佈參數u、ó;對應的更新公式爲

該模型的優點是基於貝葉斯模型,因此可以做到在線學習,每個樣本都可以對參數進行微調,同時online learning帶來了在線學習的能力,可以及時應對用戶興趣的變化。

不足之處在於每個feature對應權重都需要兩個參數來描述,模型的尺寸是lr的兩倍,在複雜模型場景下這個成本可能比較難接受。

 從文末的評測來看,bopr和樸素貝葉斯相比,bopr能在比較寬的pctr維度很好的擬合經驗點擊率的情況。

GBDT+LR

[4]是14年facebook出的一篇ctr領域非常經典的論文,15年去北京參加

qcon大會時,機器學習方向的演講幾乎都提到了這篇論文,可見該方法的成功。

前文提到,隨着特徵的增加,特徵組合這件事將變得尤爲困難,人力很難應付。假如一個點擊率預測的系統涉及到100個特徵,則熟悉二項式定理的同學可以心算出來所有可能的組合特徵接近2100;這個數據有多恐怖呢?一張紙對着50次對應250,出來的高度是1125899906米,大約是幾十萬個珠穆朗瑪峯那麼高。而特徵組合是在特徵離散化以後做的,稍微幾個特徵分桶可能就不止100了,再組合,特徵就會爆炸掉。

特徵爆炸帶來兩個問題,一是不太可能再用人力的方式去做特徵組合的事,這簡直就是太平洋裏撈一個水分子了。另一個問題是維度災難,這個可以參考我km另一篇文章。

[4]就是嘗試提出一種解決特徵組合問題的方案,基本思路是利用樹模型的組合特性來自動做特徵組合,具體一點是使用了GBDT的特徵組合能力。整體架構如下:

 先在樣本集上訓練一個GBDT的樹模型,然後使用這個樹模型對特徵進行編碼,將原始特徵x對應的葉子節點按照01編碼,作爲新的特徵,疊加到lr模型裏再訓練一個lr模型。預測的時候也是類似的流程,先對原始特徵x通過GBDT計算一遍,得到葉子節點情況,以途中爲例,如果x落到第一棵樹的第二個節點,第二棵樹的第一個節點,則轉換後的輸入特徵爲(0、1、0、1、0);

GBDT+LR模型確實明顯優於單獨的LR模型,我們在瀏覽器多個場景做了測試,auc都有非常明顯的提升,接近10個百分點。從訓練來看,GBDT也確實像[5]所說那樣,很容易過擬合,但疊加lr以後卻能去的很不錯的性能。GBDT因爲是在函數空間對殘差進行連續的逼近,所以優點和缺點一樣的明顯;優點是可以逼近幾乎任何函數的任何精度,缺點就是很容易過擬合,需要根據業務場景注意在樹的棵數和深度上做一定的裁剪,才能平衡精度和過擬合。詳細的推導請參看論文,我也只大概看明白原理,因爲對泛函還不熟悉,以後有機會再來細講這個模型的原理。

FTRL

FTRL是從RDA、FOBOS等針對lr的在線學習算法改進而來,主要是工業界

強烈的在線學習的需求驅動而來。有意思的是前面提到的微軟的BOPR也是一種天然的支持在線學習的算法。爲什麼要做在線學習?有哪些注意點呢?

在線學習背後的理念是每個人的興趣是non-stationary的,離線訓練的模型在線上可能不能快速對用戶最新的行爲作出反應。爲了解決這個問題,一種做法是我們加快模型的頻率,比如原來一天更新一次,現在一個小時更新一次,這種做法有很明顯的瓶頸,比如如果我們的時間窗設置的比較長,用一個月或者兩個月數據來跑模型,則可能導致模型在更新間隙內完不成訓練;如果我們採用增量訓練的方式,則增量時間窗的設置是個技術活,太短,很多曝光對應的點擊還沒有上來,導致訓練數據的無效曝光比例偏高,如果太長,可能跟不上節奏;這也是在線學習的一個難點,在線學習一般也不會每一個迴流數據立馬更新模型,這會導致模型震盪頻繁,攢一小段時間是個不錯的選擇,爲此facebook的系統裏有一個online joiner的組件來做曝光和點擊的歸約。

今日頭條披露的資料來看,在模型更新方面他們採用了增量更新+定時校準的策略;類似於在線學習+定時離線校準。這種策略應該也可以用到點擊率的場景。

在線學習另外一個要重點解決的問題是學習率;離線訓練的時候sgd往往使用一個公用的學習率η,但是在線學習這樣做會帶來問題的;因爲樣本分佈不均衡,某些覆蓋不是很高的特徵對應的權重因爲樣本少得到的更新次數比較少,如果使用相同的學習率,則這些權重的收斂勢必落後於覆蓋率高的樣本的特徵對應的權重,尤其是有做學習率衰減的情況下;因此我們需要針對不同的權重來設置不同的學習率,做法也比較簡單,基本思路是統計該維度樣本數,多的衰減快點,少的衰減慢點以期能做到基本持平,詳見[6],相關的rda、fobos已經是前浪了,沒時間可以不看,有時間酌情。

這裏也順帶提一下ftrl和gbdt+lr的關係,ftrl主要是針對lr部分的online learning;gbdt+lr是兩種不同模型的級聯,這兩個方案是可以很方便的糅合在一起的變成gbdt+ftrl-lr;但這裏gbdt的更新沒法做到online learning;可以做定期更新。理論上這種做法可能會效果更好一點。

FM

[7]提出的fm是一種可以自有設置特徵組合度數的迴歸算法,通常d=2的fm

擬合公式如下

 選擇一種損失函數後很容易用sgd之類的優化算法來計算w和v;原文這塊的論述有點模糊,沒有指明目標函數的情況下對擬合公式使用了sgd,有興趣的同學可以一起探討。

Fm的優勢是因爲可以自動進行特徵間的組合,這解決了兩個問題,一個是係數數據因爲特徵組合而能得到不錯的backgroud model效果;另一個是特徵組合解決了人工組合的尷尬,GBDT+LR與此有異曲同工之妙,因此FM常常和GBDT+LR來一起討論;從應用範圍來看,業界GBDT+LR的使用範圍應該是比FM要廣的;國內我所知只有世紀佳緣[8]是使用FM替代了GBDT+LR。

FM的另一個優點是會算出每個feature對應的向量v;這個向量可以看做對feature的一種embeding,例如後面WDL的場景,或者是GBDT+LR裏對categorical feature做embeding,後者我們正在計劃嘗試;前者因爲可以通過joint learning直接學習最佳的embedding向量,所以一般不會單獨使用fm來對feature做embeding。

FM的不足之處是在dense數據集情況下,反而可能表現不佳,魚與熊掌不可兼得啊!

FFM

[9]介紹了FFM在美團的一些應用,個人理解是FM的一個小改版,不多說。

新用戶:MAB、CB、泛精準

對於系統的一個新用戶,在沒有歷史消費數據的情況下,想要預測用戶的點

擊率是一件比較困難的事;這裏提供一種按照數據豐富度劃分階段的思路;義工劃分爲四個階段:1.全新用戶;2.少量消費數據用戶;3.一般消費數據用戶;4.充分消費數據用戶;每一個新用戶和系統的交互分爲這四個階段,分段的標準可以根據具體場景的實驗數據來拍一下腦袋,在不同的階段,我們是用不同的策略來進行用戶數據的獲取。

全新用戶階段,將用戶和廣告的匹配看做一個多臂老虎機(MAB)問題,可供使用的bandit方法有UCB[10]、湯普森採樣[11]等。這兩者的區別在於ucb幾乎沒有隨機性,根據預估收益率+置信度作爲總的排序score,選擇最高的懸臂;湯普森採樣是貝葉斯框架,將每個懸臂的收益概率r視爲一個Beta分部;根據歷史情況修正分部的參數,而需要選擇的時候則對每個懸臂的分佈進行採樣,根據採樣結果排序來選擇懸臂,保持較好的隨機性;在一些內容推薦系統也會經常使用湯普森採樣來解決expolore&exploit問題。在點擊率場景的全新用戶階段,我們使用mab不失爲一個選擇。

在少量消費數據階段,我們可以使用CB[12],CB的核心思想是給用戶展示他消費過的物品最相思的物品,比如一個用戶消費了盜夢空間,則他有可能想繼續觀看泰坦尼克號。CB的難點在於對物品向量化。

對於第三個階段的用戶,有一定的數據又不是很多,此時可以採用[13]這種降級的ctr模型,並且對其中的一些特徵使用smooting技術,如貝葉斯平滑、指數平滑等;可以參看後面部分的接受。

第四個階段就是常規用戶,使用我們前面提到的各種點擊率模型就好了。

新廣告:lookalike、相關廣告信息挖掘

新廣告的點擊率預測是另一個比較大的話題,這裏我先簡單分爲兩類,一類

是臨時性投放,比如某個新廣告主偶然來試投一下汽車廣告。如果廣告主能提供一批種子用戶,我們可以使用lookalike的方法來優化之,可以參考fandy的[15],我理解是一個迭代處理,先基於種子用戶和採樣用戶訓練一個model,然後用model對採樣的用戶做一輪predict,把得分高的用戶刨除掉,剩下的用戶定義爲有效負用戶,然後再和種子用戶一起訓練一個新的model,將這個model作爲候選predict並圈取用戶的指示器。

另一類新廣告是廣告主或者代理商在廣告投放系統裏投放的一個新的素材,這個時候雖然廣告是全新的,但是我們任然可以從系統裏挖掘出大量相關的信息,比如該廣告對應的pushlisher的歷史信息,對應的advertiser的信息,對應類比的信息等,具體可以參考[14]。

rare event:貝葉斯平滑、指數平滑

這節單獨介紹下[16]這篇論文,和6不同,這篇文章主要是針對發生頻率比

較低的事情的一些優化,可以用於新廣告,但也可以用於比較老只是頻率低的廣告。

想法的初衷是我們經常需要使用一些點擊率特徵,比如曝光兩次點擊一次我們可以得出0.5點擊率,另一個廣告是曝光一萬次,點擊五千次,也可以得到0.5的點擊率,但是這兩個0.5代表的意義能一樣嗎?前者隨着曝光的增加,有可能會快速下滑,爲了解決經驗頻率和概率之間的這種差異,我們引入平滑的技巧。

[16]中使用了指數decay和beta分佈平滑兩種技巧,這兩個技巧也可以一起使用。對於decay,既可以將歷史信息融入到特種裏,又保持了對歷史信息的以往速度。是一個不錯的平衡,從各個實踐來看,使用平滑對模型性能都會有顯著的提升。

WDL介紹

隨着深度學習的火爆,在圖像識別、推薦系統等領域都出現了深度學習的模

型,那麼深度學習是否可以應用到點擊率模型呢?答案是肯定的,在國內公開的資料中可以查到深度學習點擊率的資料應該是kintocai所作,之前kinto也在內部做過一次分享,主要的出發點是google的這篇paper[17];核心的圖片截取如下

 從這張圖可以看出,在最上層還是使用了lr模型,和GBDT+LR對比可以看出兩個模型的相似性和區別,前者使用GBDT來做特徵的組合, 後者使用兩項不同的技術來處理,首先是對categorical feature進行embeding,然後和continous feature一起concatenate成一個向量,通過三層relu網絡來做特徵的表示學習;另一方面對於categorical feature還可以進行人工交叉組合,與左邊網絡自己學習到的特徵一起加入到頂層lr模型裏作爲最終的特徵。

這裏需要提到的一點是對於categorical feature的embeding,沒有使用獨立的FM之類的方法,而是通過joint learning直接學習出來的,具體做法是對最embeding層使用類似EM的做法,固定W後使用bp訓練向量,交替進行。和FM之類獨立訓練的embeding向量相比,爲什麼聯合訓練的向量可能會更好呢?這個思想起源是哪裏呢?

第一個問題我認爲聯合訓練的embeding向量確實會比FM單獨embeding出來的要好,原因比較細微,熟悉CF發展流程的同學應該知道,對傳統Item-based CF和User-based CF的一個改進就是將pearson係數替換爲可以聯合訓練的wij,以capture到數據之間interpolation信息。詳細的介紹可以參考我下一篇關於CF的綜述。

使用了類似joint learning以同時獲得embeding向量和權重矩陣的還有[18]。有興趣的可以參考。

關於WDL的性能,普遍認爲會比傳統LR高兩位數百分點,瀏覽器正在嘗試在app推薦場景下做一個橫屏,從目前初步結論來看,GBDT+LR相比於純LR大約是兩位數的提升,而WDL還沒有看到明顯效果,不過我們會進一步在參數調優上下些功夫,以期取得更好的效果。

WDL的缺陷主要體現在兩方面,一方面是在線predict時的性能瓶頸決定不能使用太寬、太深的網絡,另一方面是如果做online learning,這個問題據說百度鳳巢是有做過,具體方案不得而知。

強化學習

[19]對強化學習做了基本介紹,而國外對強化學習投入比較大也引起足夠關

注的應該是DeepMind以及阿爾法狗了。個人看來強化學習和監督學習的關係有如隨機過程和概率論的關係。前者強調的是動態過程,後者強調的是靜態概率。從這個角度講,前面所有的點擊率模型都是在追蹤靜態概率,哪怕使用online learning也只是做了某種程度的approximation。

是否可以直接使用強化學習來做點擊率或者推薦呢?答案我覺得是肯定的。這方面阿里應該是走在前沿,[20]中提到因爲採用深度強化學習和自適應學習的技術,阿里的雙十一銷量有20%-20%的提升。這是一個非常恐怖的數字,尤其是在阿里這樣的體量下。請允許我引用其中一段文字來做個簡單說明

“ 2014 年雙 11 通過排序特徵實時,引入商品實時轉化率,實時售罄率模型進入搜索 match 和 rank,讓售罄商品額無效曝光大幅減少,並實現了成交轉化的大幅提升;2015 年雙 11 推出雙鏈路實時計算體系,在特徵實時的基礎上,引入排序因子的在線學習,預測,以及基於多臂機學習的排序策略決策模型,在預熱期和雙 11 大幅提升了搜索流量的成交轉化效率;2016 年實時學習和決策能力進一步升級,實現了排序因子的在線深度學習,和基於強化學習的排序策略決策模型,從而使得淘寶搜索的智能化進化至新的高度,並在今年的雙 11,分桶測試效果表明,成交金額取得了近 20% 的大幅提升。”

從這段描述可以看出阿里的技術演進思路,特徵實時化->MAB->DL->RL。這套方案能否在鵝腸或者瀏覽器內部找到落地場景是我比較感興趣的一個地方,接下來也會花一些時間來調研強化學習的

結語

本文主要對筆者一段時間一來的閱讀做一個小結,在機器學習領域,書籍出版是遠遠落後於業界知識更新的,這就逼迫我們每個從業者都需要大量閱讀資料和論文,對一個已經工作幾年的後臺開發來說,是一個不小的挑戰。

筆者爲此做了不少的準備,包括話兩年的晚上時間把數學分析、概率論、線性代數、數值計算等數學基礎複習一遍;然後才能夠相對比較順利的閱讀paper。在領略了一些點擊率和算法的文章以後,深深感覺大家能看到的書籍太少,因此嘗試做一個總結,試着梳理一個脈絡,給後來者一個學習的roadmap。然而由於本人生性駑鈍,錯誤不實之處在所難免,唯望方家莫笑,以此頑石引出美玉,提升自己造福後人,如實而已。以上。

引用

  1. http://km.oa.com/group/17516/articles/show/159726?kmref=search&from_page=1&no=1
  2. Predicting Clicks:
Estimating the Click-Through Rate for New Ads;
  3. Web-Scale Bayesian Click-Through Rate Prediction for Sponsored Search Advertising in Microsoft’s Bing Search Engine;
  4. Practical Lessons from Predicting Clicks on Ads at Facebook;
  5. greedy function approximation:a gradient boosting machine
  6. Ad Click Prediction: a View from the Trenches
  7. Factorization Machines.Steffen Rendle
  8. http://www.csdn.net/article/2015-09-30/2825828
  9. http://tech.meituan.com/deep-understanding-of-ffm-principles-and-practices.html
  10. https://zhuanlan.zhihu.com/p/21388070
  11. An Empirical Evaluation of Thompson Sampling
  12. Content-based Recommendation Systems
  13. http://km.oa.com/group/16523/articles/show/291156?kmref=search&from_page=1&no=1
  14. Predicting Clicks:
Estimating the Click-Through Rate for New Ads
  15. http://km.oa.com/group/18268/articles/show/279490?kmref=search&from_page=1&no=2
  16. Click-Through Rate Estimation for Rare Events in Online Advertising
  17. Wide & Deep Learning for Recommender Systems;
  18. Deep Neural Networks for YouTube Recommendations
  19. Reinforcement Learning: An Introduction
  20. http://www.10tiao.com/html/639/201703/2247484414/1.html
  21. Predictive Model Performance: Offline and Online Evaluations

轉載自:《 點擊率預估綜述 | 我愛計算機 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章