衛夕 | 機器知道你會點廣告:寫給普通人的CTR預估科普

衛夕 | 機器知道你會點廣告:寫給普通人的CTR預估科普

來自專欄衛夕聊廣告9 人贊了文章

我們在刷微信和微博的時候,有時候會驚嘆廣告非常精準——「就是我想要的!」,有時候又會感覺廣告極其不靠譜——「我怎麼可能點呢?」,所有的這些背後,廣告的工程師們已經做了他們最大的努力——

即便在我們看來並不精準,但在所有定向給你的廣告中,他們已經挑出機器認為你最可能點的廣告,而這背後依賴的就是CTR預估技術。

CTR預估是競價廣告核心的邏輯之一,很多人認為CTR預估非常高深,根本搞不清其中的邏輯,的確,CTR預估作為一個純技術的模塊,要做一個簡單的科普並不容易。

致力於用簡潔語言描述複雜問題的衛夕今天嘗試用人話來解釋CTR預估的來龍去脈,放心,本文不會涉及到任何高深難懂的公式和技術邏輯,看得懂中文的同學都能明白其中的邏輯。

一、CTR在競價廣告系統中起神馬作用?

CTR(Click-Through-Rate)為點擊率,它是互聯網廣告中最基本的概念,我們先來看看點擊率對於一個競價廣告系統而言意味著神馬?

我們先來做一道簡單的題目——阿迪和耐克作為廣告主來競價,阿迪出2塊錢一個點擊,耐克出1塊錢一個點擊,假如微信廣告平台有100次曝光,它應該給誰?阿迪還是耐克?有人說,當然是給阿迪啊,它出的價錢高。

這個答案是不對的,如果阿迪的點擊率為1%,耐克的點擊率為5%,那麼給阿迪能產生1個點擊,每個點擊1塊錢,微信能賺2塊;給耐克則產生5個點擊,每個點擊1塊,微信能賺5塊,廣告平台不傻,當然要給耐克!

好,從這個簡單的案例中,我們可以看出幾點:

  1. 廣告平台關心自己的流量價值——即自己的流量曝光賣的貴還是便宜,一般用ECPM(earning cost per mille)這個指標來衡量,即每1000次曝光帶來收入。
  2. 廣告主一般按點擊進行扣費,即廣告主通常關心結果,出價原則就看一個點擊需要花多少錢。
  3. 廣告平台需要把點擊出價轉化成ECPM進行扣費和排序。
  4. CTR架起了從點擊到曝光的一座橋樑,為排序提供基礎。

總結起來就是一個簡單的公式——ECPM=1000*CTR*點擊出價,在上面這個案例中阿迪的ECPM=1000*1%*2=20,而耐克的ECPM=1000*5%*1=50,顯然耐克的ECPM大於阿迪的,因此耐克會在這次競價中勝出。

從這個案例中我們可以看到CTR是為廣告排序用的,而排序本身就是競價廣告的核心,因此CTR預估也是競價廣告的核心技術之一。

不僅廣告系統需要CTR預估來排序,推薦系統也需要CTR預估來排序,因此CTR預估應用其實比我們想像的要更加廣泛:

YouTube、亞馬遜、今日頭條等等涉及到個性化推薦的系統都會應用到CTR預估,即他們要把你最可能點的內容推薦給你。

而廣告系統的CTR預估在具體的數值上比推薦系統要求更高,比如推薦系統可能只需要知道A的CTR比B大就可以排序了,而廣告由於不是直接用CTR進行排序,還加上了出價,因此廣告系統不僅要知道A的CTR比B大,而且還需要知道A的CTR比B的CTR大多少。

二、為什麼要進行CTR預估?

到這裡大家已經明白CTR的重要性了,即CTR是廣告排序的前提,它連接了點擊和曝光,這時候大家又會有一個新的問題:那CTR為什麼要預估呢?多少投放一點不就知道了它的CTR了嗎?

「多少投放一點不就知道了它的CTR了嗎?」這句話大體上沒錯,但事情遠沒有這麼簡單,我舉一個例子你就知道了。

假如廣告平台有四個廣告主來投廣告,這個廣告平台總共有4000個用戶,這四個廣告主分別為賣布娃娃的、賣遊戲機的、賣西裝的和賣高跟鞋的,出價都是1塊錢一個點擊。

這時候我們不知道CTR的情況下,我們應該怎麼辦,於是我們試投了一下,每個廣告投了100個曝光最後發現他們的CTR都是25%,出價一樣、CTR一樣。

按照我們上面的公式,ECPM就一樣,而我們按ECPM來排序,因此我們就沒辦法排序——每個人ECPM都相同,因此最終就只能在廣告平台隨機出這四個廣告了。

ECPM=1000*CTR*點擊出價

但我們回去看一看實際情況,這個25%的點擊率是如何發生的我們就能明白總體CTR是不靠譜的,真相是平台總共有4000個用戶,而他們均勻分成了四組:

分別是1000為成熟男人;1000成熟女人、1000少女、1000少男,這四個人群只點擊他們喜歡的東西,如成熟男人只點擊西裝,他們對自己喜歡的東西的點擊率為100%,對自己不喜歡的點擊率為0%,當我們隨機投放的時候,每個人的點擊率都是25%。

好,現在你看到了,直接拿試投這個點擊率去預估導致的結果就是用群體數據代表了個體差異,即當一位成熟男人來請求廣告的時候,我們會認為投給他一個布娃娃和投給他一套西裝沒有任何區別。

因為在試投階段布娃娃和西裝的整體點擊率都是25%,儘管實際上他們的點擊率有天壤之別,一個是100%、另一個是0%。

因此,當我們通過特徵差異能正確地個性化預估CTR的時候,我們才能正確地排序,當一位成熟男人來請求廣告的時候,西裝這個廣告主就會在競價中勝出,因為我們知道它的CTR100%高於布娃娃、高跟鞋、遊戲機的0%。

所以從這個案例中我們就能明白,不能直接籠統地看試投的點擊率,而應該有針對性地針對個體單獨預估,試投這個階段依然存在,但我們會通過某個模型用交叉特徵地看每一個個體的點擊率,從而下一個擁有該特徵的人群來訪問的時候,我們就能相對更加準確地預估了。

同時,我們也從上面的案例中發現,正確預估提升了CTR,從原來的25%提升到了100%,同樣廣告平台的收入也會提升,這就是CTR預估的意義。

三、CTR預估是如何進行的?

通過這個案例我們看到,至少有三個特徵決定了一個廣告的點擊率——廣告主行業、用戶的年齡、用戶的性別,事實上,在實際的廣告系統中,有無數的因素決定了廣告的點擊率,我們把這些因素主要分成3類——

第一是廣告主側,比如廣告創意、廣告的表現形式、廣告主行業等,一個勞斯萊斯的廣告和一個可口可樂的廣告點擊率肯定有天壤之別。

第二是用戶側,如人群屬性,以上的案例是年齡和性別,事實上,決定創意的因素人群屬性極其多——年齡、性別、地域、手機型號、WiFi環境、興趣........

第三是廣告平台側,比如不同的廣告位、投放時間、流量分配機制、頻次控制策略等。

這些決定因素在CTR預估中被稱之為特徵,而CTR預估的第一步就是「特徵工程」,即把這些特徵找到並數據化。

特徵工程是一件複雜的工程,光判斷不同特徵能否對CTR產生影響就是一個浩大的工程,特徵工程的攻城獅們第一步得列出來不同的特徵可能對CTR產生影響,這有時候靠直覺,有時候靠經驗,

確定了特徵之後就需要對這些特徵進行處理——即把特徵數據化,比如把所有的特徵變成0和1的二值化,把連續的特徵離散化,把特徵的值平滑化、把多個特徵向量化.......

以上這一段看不懂?看不懂沒關係,你只需要明白,所有的這些特徵都會被攻城獅們編碼變成一串可計算的數組就行,特徵工程是一項重要的基礎工作,像今日頭條、百度這樣的廣告平台都有一個龐大的團隊來做特徵工程的工作。

好,特徵工程完成之後就開始建立模型了,很多同學看到「模型」二字就開始皺眉頭了,沒關係,你可以這樣理解模型:

模型就是一個黑盒子,在盒子的一方我們輸入一大堆參數,盒子的另一端就會輸入一個CTR的值。

比如我們輸入這樣的參數:一個高跟鞋廣告主、投放給北京地區、年齡20-30歲、對財經感興趣的女性用戶,在周末投放在微信的朋友圈第三位.......請給出一個CTR的值。模型就會根據不同特徵的值計算出一個值。

至於它是如何計算的,非技術同學理解起來難度會非常大,我們可以簡單理解為CTR是無數特徵的一個函數,CTR=f(x1,x2,x3,x4,x5……),而模型就是選擇神馬樣的函數來進預測。

我舉個大家最容易理解的線性函數:CTR=ax1+bx2+cX3+dx4+ex5……(這只是一個假設,實際上模型要比這個複雜N多倍)。

每一個函數都有相應的參數( 比如剛剛案例中的a、 b、c、d),而這些參數是如何確定的呢,就需要歷史數據進行訓練,就是把已經知道的一些數據去喂這個模型,模型根據這些數據不斷地調整參數,喂的越多調教的就越準確,最終預測的效果也就越好。

在所有的這些特徵中,有些特徵影響因子會大一些,有一些會小一些,比如搜索廣告中,搜索關鍵詞和廣告關鍵詞匹配程度就是一個影響因子極大的因子、歷史CTR也是一個影響因子極大的因子,其他因子會有不同程度上的影響。

工程師們每天的工作就是嘗試新特徵、嘗試新模型、訓練不同的模型參數,以便讓CTR預估更加準確,谷歌、Facebook、阿里、百度這些公司的工程師已經在這些領域發表了很多篇頂級論文。

四、如何評估CTR預估的效果?

好,接下來的一個問題,如何評估CTR預估的效果?工程師們會有特定的指標去衡量效果,對於非技術同學,有人會直觀地說,那當然是看CTR有沒有變高啊:

正確預估CTR不就是為了把真正高CTR的廣告挑出並展示出來么,錯誤地預估——把高的CTR低估或把低的CTR高估都會讓高的CTR不會排在最前面,從而會降低CTR。

這個說法在推薦系統中是成立的,但在廣告系統里是不準確的,因為廣告的排序不僅僅是CTR排序,它還綜合了出價進行排序,即ECPM進行排序,有時候CTR預估準確,反而(實際)CTR會降,我們看一個實際的例子:

這一大堆數字大家可能看不懂,我們只需要明白以下幾個邏輯就能看懂了:

  1. 廣告通過預估ECPM的大小來判斷誰勝出,而預估ECPM等於預估CTR*出價,在這個案例中,圖一CTR預測正確,阿迪的預測CTR30高於耐克的20因而勝出。
  2. 廣告實際ECPM是勝出者的ECPM,因為廣告平台把所有的曝光都給了勝出者,它等於勝出者的實際CTR*出價。
  3. 圖二里把耐克的CTR從2%錯誤地預估到了4%,導致其預測ECPM高而勝出,而實際上投放出來的CTR為2%。
  4. 這個情況中,預測正確反而CTR低,預測錯誤反而CTR高,但是沒關係圖一預估正確的情況下實際的ECPM30高於圖二預測錯誤ECPM20。

所以從這個案例中我們可以看到,從結果指標來看,ECPM是衡量CTR預估最為重要的指標當然,在實際的實踐過程中,CTR預測正確通常ECPM、CTR、收入這些指標通常都會漲。

另外一個很簡單的方法就是把預估CTR和真實CTR直接進行對比,由於預估CTR針對每一次廣告展示都會預估,比如這一次預估CTR為2%,但單次廣告真實CTR只有兩個結果,點或不點,即100%、0%,所以看單次結果是沒有意義的,我們應該從一個群體來看——

將每一次廣告曝光按照預測的CTR從小到大排序,然後按某個單位(比如每10000個曝光)分別統計平均預估CTR和實際CTR,就能知道預測CTR的準確程度了。

以上就是關於競價廣告中CTR預估入門級科普了,廣告是一個複雜的系統,裡邊有無數精妙、有意思的邏輯。

衛夕會在後續的文章中不定期給大家科普,喜歡請置頂本公眾號,衛夕保證每一篇都是乾貨長文。

作者衛夕,一名興趣極其廣泛的廣告產品經理

衛夕聊廣告,不止聊廣告」,只寫深度長文。

搜索並關注微信公眾號:weixiads衛夕聊廣告,每周一篇長文深度剖析廣告及互聯網的常識、邏輯或思維。

如果覺得有用,還請點贊支持,您的支持是我們更新的動力!

本文已進行版權登記,侵權必究,轉載請聯繫作者微信:huweixi

推薦閱讀:

圖像語義分割準確率度量方法總結
五分鐘明白Machine Learning是什麼
機器學習工程實踐之一、引言
推薦系統遇上深度學習(十一)--神經協同過濾NCF原理及實戰
視覺跟蹤(Visual Tracking)論文解讀之相關濾波(Correlation Filter)篇(1)數學基礎

TAG:機器學習 | 廣告 | 科普 |