計算廣告小窺[中]這孫子怎麼什麼都知道

計算廣告小窺[中]這孫子怎麼什麼都知道

原作:麪包包包包包包
修改:寒小陽 && 龍心塵
時間:2016年2月
出處:http://blog.csdn.net/breada/article/details/50697030
聲明:版權所有,轉載請聯繫作者並註明出處

1. 引言

提筆寫這篇博客,我的內心是惶恐的。原因很簡單,作爲一個資歷尚淺的研究生,是沒有資格對計算廣告這樣一個偉大的行業、領域和學科來評頭論足的。之所以這麼做,一是總結自己已掌握的知識,二是降低同學們的學習成本。本人能力有限,更缺乏實踐經驗,文章內容多爲書籍和論文的讀後感,若有不當或者錯誤之處,還望各位同學指出,我定悉心求教。在此,向編寫《計算廣告》的劉鵬和王超兩位老師致謝,向各位paper作者致謝。

[關於ML學分計劃]

  • 寒小陽龍心塵發起,一個互幫互助的機器學習知識共享平臺。
  • 我們是一羣對機器學習感興趣的小夥伴,對於神奇的機器學習經常有“一探究竟”的衝動,卻因爲孤身一人學習的寂寞、亦或繁忙考試工作之餘的小小拖延症,而沒有持續這份對知識的渴求和熱情。
  • 由於深感類似情況的小夥伴之多,我們希望建立一個“ML學分計劃”——機器學習的學習和分享計劃——來幫助我們一起更高效地學習、更集中地整理分享我們的知識和經驗。因爲我們也深信”證明自己真的透徹理解一個知識,最好的方法,是給一個不熟悉這個內容的人,講清楚這個內容“。

[關於原作@麪包包包包包包]

  • 畢業於北京郵電大學,研究生。
  • 關注計算廣告點擊率預估和競價算法,關注機器學習和深度學習。

(上)(中)(下)全文目錄

  1. 引言

  2. 廣告=>互聯網廣告:“您好,瞭解一下”

  3. 互聯網廣告=>計算廣告:指哪兒打哪兒!

  4. 計算廣告四君子:誰在弄潮?

  5. 計算廣告關鍵技術:這孫子怎麼什麼都知道?

  6. 廣告系統架構:要啥自行車,這裏有寶馬。

  7. 手把手系列之教你搭建一個最小廣告系統:mieSys


5. 計算廣告關鍵技術:這孫子怎麼什麼都知道?

一句話解釋關鍵技術:沒聲音,再好的戲也出不來。

廣告作爲一項商業活動,是需要資本來滋養的。作爲整個產業鏈的金主,只有廣告主花錢做廣告,使資金流動起來,整個廣告行業才能正常運轉。所謂關鍵技術,就是那些能讓廣告主覺得“這錢花的值”,讓媒體網站覺得“這錢掙的快”的技術。具體都有哪些呢?下面我們一一來表。

5.1 合約廣告關鍵技術:受衆定向

計算廣告發展到合約廣告階段,媒體網站依靠受衆定向技術給用戶打標籤,在實現了媒體網站廣告位的時分複用的同時,還提高了廣告主的投入產出比,極大的激發了廣告主在互聯網上做廣告的積極性。因此,受衆定向是合約廣告中的關鍵技術。

我們知道,只要描述物體的維度足夠高,那麼世間萬物都是獨一無二的。在廣告系統中,標籤就是描述用戶的維度。媒體網站爲了精準的刻畫用戶,標籤的種類和數量自然也不會少。爲了更加直觀地瞭解受衆定向技術,我們從用戶、上下文和廣告三個方面討論打標籤的思路和一般方法。

  • 用戶標籤:主要用性別、年齡、收入、地理位置、教育程度和用戶行爲等標籤來刻畫用戶,從而回答“你是誰”的問題。

  • 上下文標籤:主要用網頁的地域、主題和頻道等標籤來刻畫用戶當前所處的媒體網站環境,從而回答“你在看啥”的問題。

  • 廣告標籤:主要用廣告主、廣告創意、廣告計劃和廣告關鍵詞等標籤來刻畫廣告的相關內容,將廣告內容與用戶和上下文進行匹配後,從而回答“你該看啥”的問題。

5.1.1 用戶標籤關鍵技術

對一個用戶來說,性別是不會輕易變的,但是用戶的喜好和興趣卻是時刻都在變化的。根據標籤屬性的變化頻率,我們這裏私自將用戶標籤分爲靜態和動態兩類。靜態標籤主要指年齡、性別、地理位置、收入和教育程度等這種不變或者很長時間之內都不變的標籤,行話叫“人口屬性”;動態標籤則是指用戶的瀏覽、搜索和點擊等能夠反映用戶短時喜好和興趣的行爲標籤,行話叫“行爲定向(BT:Behaviroal Targeting)”。下面我們針對靜態和動態這兩類標籤分別討論。

一句話解釋靜態標籤和動態標籤的關係:價格圍繞價值上下波動。

  • 靜態標籤(人口屬性)

《計算廣告小窺[上]》中,我們曾簡要地提到過一種受衆定向的方法:

通過對點擊日誌的分析,媒體網站發現點擊過女性護膚品的用戶又點擊過媒體網站上其他女性品牌。在“女性用戶對女性品牌可能更感興趣”的合理假設下,判斷這些用戶的性別爲女,男性用戶同理。

現在我們可以更加清楚的認識到,上述媒體網站所打的標籤是靜態標籤中的“性別”,使用的是基於規則的方法,即:滿足了某種條件,就是某種人。這種基於規則的方法簡單並且易於實現,但也存在着致命的缺點:基於規則的方法對數據非常敏感,若數據本身存在噪音(如誤點擊),那麼標籤的品質也將大打折扣。這可如何是好?簡單的不行,那就來點複雜的嘛——用機器學習模型來實現(自帶音效:噹噹噹當,噹噹~~)。

假設我們已經知道一部分用戶的真實性別,那麼就可以用機器學習中有監督的二分類模型來預測用戶性別。首先,我們需要對原始數據進行清洗,合理地處理缺失值和奇異值,並劃分訓練集、交叉驗證集和測試集;其次,要在業務的指導下做特徵工程,利用統計或模型的方法構造特徵,並進行特徵選擇和特徵組合;然後,我們要選擇合適的模型(如SVM等),設置合適的評價標準並進行模型的訓練;最後,通過模型調參和模型融合,獲得性別預測模型。

  • 動態標籤(行爲定向)

一句話解釋行爲定向:唐伯虎喜歡如花多一些,還是鳳姐多一些?

“如果一定要比較一下,那唐伯虎是喜歡如花多一些,還是鳳姐多一些?”這個看似荒謬的問題,正是行爲定向要解決的。如果唐伯虎是異性戀,那他應該是喜歡鳳姐多一些的,否則是如花。這也就告訴我們,在行爲定向中,判斷的標準至關重要。下面我們藉助一個例子來分析該用戶的動態標籤究竟是什麼。

有數據顯示,某用戶在過去的三個月時間中,點擊廣告的標籤和次數如下表所示:

標準 單反愛好者 跑鞋愛好者 飲料愛好者 護膚品愛好者
點擊 25 4 2 1

對上述數據進行分析,我們可以輕而易舉的得到答案:該用戶的標籤應該是“單反愛好者”,因爲他的點擊行爲集中在這個標籤上。但是,這個答案是我們以用戶的點擊行爲作爲標準得來的,如果以用戶的瀏覽和搜索行爲做標準,答案也是“單反愛好者”嗎?我們再來看一下相關數據。

標準 單反愛好者 跑鞋愛好者 飲料愛好者 護膚品愛好者
瀏覽 15 2 0 0
標準 單反愛好者 跑鞋愛好者 飲料愛好者 護膚品愛好者
搜索 7 16 5 3

是不是出問題了?以點擊和瀏覽爲標準,該用戶標籤應該是“單反愛好者”,但是以搜索爲標準,標籤應該是“跑鞋愛好者”。如果該用戶的標籤只能有一個,那該選哪一個呢?爲了解決這個問題,我們從數學角度分析一下好了。嘿嘿,數學噢,前方高能預警!我會盡量讓這個過程變得簡單,大家跟上我的思路哈。

Step1. 泊松分佈

一句話解釋泊松分佈:猜猜我在哪兒~~~

我們先來介紹下泊松分佈。啊啊啊啊!一上來就是數學,我不聽我不聽我不聽,泊松分佈是什麼鬼?咳咳,那,那就先不丟公式了,咱們看圖解決問題好了,下面是泊松分佈繪出的曲線圖,實際工程中要解決的問題就是找到圖中的最高點,如下圖:

泊松分佈概率圖

這個肉眼找最高點的過程不要太簡單了!!!我們可以看到:圖中最高點的縱座標大約爲0.36,而對應的橫座標是1。OK,你就算會用泊松分佈了哦!那個,感興趣的同學們,可以一起來看看對應上圖的泊松分佈的公式。

pt(h)=λhteλth!

公式相對於圖,是有那麼點點複雜啦。不過,我們只需知道λt 影響泊松分佈的形狀,一個λt 對應一個泊松分佈就可以了。這個場景下要做的事情就是找到對應泊松分佈圖像的最高點。

Step2. 一個結論

一句話解釋這個結論:一個蘿蔔一個坑。

我們先說一個結論:在一個標準下,用戶在所有標籤上的概率分佈是滿足泊松分佈的。對於這個結論,有興趣的同學可以參見Stanford 《Introduction to Computational Advertising》講義Page-81,我們在這裏就直接拿來用了。而所謂“標準”,就對應泊松分佈公式中的λt ,在我們這裏的場景下與用戶行爲有關。我們有點擊、瀏覽和搜索三種行爲,也就對應三個λt ,繪出三條曲線如下。(此圖爲示例數據上繪出的圖像,非實際數據):

三種標準的概率分佈

我們可以清楚的看到,在以“點擊”和“瀏覽”爲標準時,圖像最高點都出現在5號標籤,用戶標籤應該是標籤5;以“搜索”爲標準時,圖像最高點出現在6號標籤,用戶標籤應該是標籤6,標籤發生了衝突。接下來,我們就要想辦法用數學方法去解決標籤衝突的問題,思路是這樣的:先選出一個最佳標準,然後以此標準畫正態分佈,最後找最高點對應的標籤即可。

Step3. 最佳標準

一句話解釋最佳標準:盲人摸象

“盲人摸象”比喻以偏概全,現在我們想要知道大象全貌,把每個人摸到的拼起來便是了。在廣告系統中,搜索、點擊和瀏覽三種行爲數據都只能從一個側面反映用戶的行爲,要想完整的刻畫一個用戶,我們虛要將這三種行爲融合起來之後找到一個最佳標準。提到融合,較爲常用的方法是投票,我們可以寫出下列公式:

λt=i=1nωiti where t()

簡單解釋一下:ti 是標準,分別代表了搜索、點擊和瀏覽行爲;ωi 是標準的權重,即該標準對於完整描述用戶行爲的貢獻。我們用機器學習中的廣義線性模型對該問題進行建模,模型訓練完成後可得各標準的權重ωi ,從而預測出最佳標準λt

Step4. 最終求解

通過廣義線性模型,我們找到了最佳標準λt 。現在,我們根據該λt 畫出相應泊松分佈,如下圖:

最佳標準泊松分佈

回顧Step2中的結論:在一個標準下,用戶在所有標籤上的概率分佈是滿足泊松分佈的。現在最佳標準下的泊松分佈我們已經畫了出來,該用戶在所有標籤中的概率分佈也應該符合這個分佈的。還是老步驟,我們找最高點所對應的標籤,即標籤5,所以該用戶的動態標籤是標籤5,問題完美解決。

在學習了泊松分佈和機器學習之後,媒體網站終於完成了用戶標籤的工作,看着那圓圓的餅圖,流下了激動了淚水,哽咽着說“嗯..終於..終於可以賣錢了..”沒錯,流量可以變現了,互聯網廣告一腳踏進合約廣告時代。但是僅僅知道“你是誰”,粒度還是太粗,賣不了好價錢。“要是知道你正在幹嘛就好了”媒體網站嘴裏嘟囔着,突然腦海中靈光一閃,大叫一聲:(圖片來自網絡)

我的天吶

5.1.2 上下文標籤關鍵技術

一句話解釋上下文標籤的做法:吃的是URL,擠的是標籤。

“我當然知道他在幹嘛!我有日誌啊!我有他正在訪問頁面的URL!啊哈哈哈哈哈!”有了用戶標籤的經驗,媒體網站處理起上下文標籤來就顯得輕車熟路了,總共分兩步:第一,根據用戶當前頁面的URL,抓取用戶當前瀏覽的頁面內容;第二,提取頁面內容的關鍵詞,作爲當前頁面的標籤。

通過URL獲得頁面內容是一個典型的爬蟲應用,與搜索引擎的爬蟲不同的是,廣告系統的爬蟲只抓取用戶請求的頁面,而非全網頁面。鑑於上述原因,廣告系統使用“半在線抓取系統”,該系統有三個特點。第一,僅對用戶發起請求的頁面進行抓取,節省了時間和成本;第二,將{URL:標籤}存儲下來,當其他用戶發起相同頁面請求時,直接返回標籤結果,避免重複抓取。第三,考慮到某些頻道頁面內容可能會更新(例如”舊浪體育”),還可設置合適時間,週期地更新已存頁面的標籤。

在抓取到頁面之後,如何提取標籤也有幾種常見方法。最簡單的是利用規則,在URL層面上人爲做映射,例如sports.oldna.com對應的頁面標籤就是”舊浪體育”。若用戶是通過搜索發起的頁面訪問,還可以根據搜索詞作爲頁面標籤。當然,在廣告系統使用範圍較廣的方法還是機器學習中的主題模型,得到頁面內容在幾個主題上的分佈,從而判斷頁面標籤。例如,sports.oldna.com頁面內容在”體育”、”財經”和”遊戲”三個主題上的概率分佈分別爲:

體育 財經 遊戲
0.85 0.10 0.05

我們可以很容易的看出sports.oldna.com的標籤是”體育”。這裏值得注意的是,如果想要加工出”體育”、”財經”和”遊戲”這種可解釋的標籤,通常需要採用有監督的主題模型。

能用的數據都用了,能打的標籤也都打了,知道了“你是誰”和“你在看什麼”之後,媒體網站這才感覺踏實了些。下面的工作就簡單了許多,把標籤賣給廣告主就可以了,也算是一勞永逸,深藏功與名。至於用戶會看到什麼,那是廣告主的地界,就不管媒體網站什麼事兒了。

5.1.3 廣告標籤關鍵技術

普通的廣告標籤就是廣告本身的屬性,如所屬廣告主、廣告大小、廣告類別和目標人羣等,當廣告和用戶兩兩匹配時,該廣告就會展示給用戶。但是,這裏我們想說的廣告標籤是在程序化交易中的“個性化標籤”。在《計算廣告小窺[上]》中我們提到:“程序化交易是廣告主爲實現個性化營銷舉行的海天盛筵。”品嚐過個性化營銷的甜頭之後,廣告主就想:“既然這些人是回頭客,那各方面表現和這些回頭客很像的人,有沒有可能也是我的回頭客呢?世界那麼大,我得去找找這種人。”

  • look-alike

一句話解釋look-alike:比葫蘆畫瓢。

這個技術的名字還挺洋氣呢,英文的,“看起來像”?說白了就是比葫蘆畫瓢,找到那些看起來像回頭客的新用戶,行話叫“新客推薦”。這裏一定要注意了,千萬不能翻譯成“看起來像”,那樣顯得逼格不夠,就叫英文的,look-alike~

關於look-alike的具體實現,市面上沒有統一的做法,畢竟我們正在經歷。這樣一來我的心也放下了,因爲即便我下面都是胡扯也不一定是錯的。

look-alike的核心是按着回頭客的樣子去找新用戶。那簡單呀,看看回頭客的標籤是什麼樣子,對着去找相同的不就行了?沒錯,這算一種方法,並且是一種基於規則的方法。但是直覺告訴我們這樣做粒度太粗,沒有充分考慮到廣告主因素,同時經驗也告訴我們,基於規則的不如基於模型的效果好,所以我們還可以得出一個基於模型的做法:將某用戶是否是潛在用戶建模成一個機器學習中的二分類問題,利用回頭客數據訓練模型,並在新用戶上做預測,是就是1不是就是0,也挺好理解的。

受衆定向關鍵技術我們就介紹到這裏了,現在我們來回顧一下。爲了更加精準的刻畫用戶,我們從用戶標籤、上下文標籤和廣告標籤三個方面來介紹受衆定向。雖說角度不同,但總的說來,不外乎兩種方法:基於規則和基於模型。在受衆定向技術的支持下,互聯網廣告進入合約廣告時代。在經見了在線分配的大坑之後,媒體網站發現合約不可保,便使用競價方式售賣流量,指定廣告主。那在競價廣告中,又有什麼關鍵技術呢?請看下一小節:競價廣告關鍵技術:點擊率預估。

5.2 競價廣告關鍵技術:點擊率預估

郭德碗:聊(bi)了(bi)了這麼久,想必衣食父母也都累了。
於 兼:是有點兒。
郭德碗:能堅持看到這兒的人不多。
於 兼:東西太難。
郭德碗:那就歇了吧,《計算廣告小窺》到此結束!
於 兼:給我回來!像話嘛這個!
郭德碗:還想怎麼着啊?
於 兼:說好的點擊率預估呢?大夥都衝這個來的。
郭德碗:真有衝這個來的?
(有!)
郭德碗:怎麼不提錢跟我說呢?
(籲~)
郭德碗:好了,玩笑歸玩笑,驢鞭歸於兼,下面呀,我..
於 兼:您等會兒,那玩意兒歸我幹嘛呀?
郭德碗:嘿嘿嘿。
(籲~)
郭德碗:你們都懂?
(籲~)
郭德碗:仁者見仁,污者見污喲。
(下去吧~)

我知道很多同學是衝着點擊率預估來的,所以不能讓你們白來不是,免費送您一小段兒,別跟我提錢哈哈。等最後聊到最小廣告系統,幫我貢獻幾次點擊就行,我也好收集一些高質量數據,訓練模型自己玩兒。言歸正傳,下面我們將從“是什麼”、“爲什麼”和“怎樣做”三方面來介紹點擊率預估。

5.2.1 點擊率預估是什麼

  • 點擊率

一句話解釋點擊率:0.1%

既然聊到點擊率預估,那我們先來看看什麼叫點擊率。點擊率這個概念我們是第一次提起,但其實我們早就知道它了。我們在《計算廣告小窺[上]》曾經提到:

“自從廣告上了互聯網,廣告的面貌就煥然一新。造成行業鉅變的原因,是因爲互聯網廣告的效果可以被衡量。”

如果接着往下說,以什麼標準來衡量呢?沒錯,最常用的衡量標準就是點擊率。點擊率(CTR:Click-Through Rate)是指的是媒體網站上某個廣告的點擊量/展示量。之所以使用點擊率來衡量廣告效果是有原因的,先來看分母:分母是某廣告的總展示量。在《計算廣告小窺[上]》中我們曰過,廣告展示機會是廣告主通過競價獲得的,展示機會越多,意味着廣告主的出價越高,所以總展示量可以用來表徵廣告主的廣告投入。再來看分子:分子是總點擊量,而點擊行爲代表了用戶的注意力,說明用戶渴望進一步瞭解廣告內容。因此點擊率越高,意味着廣告主在相同投入的情況下,收穫了更多的用戶注意力,完美詮釋了廣告主做廣告的初衷,所以點擊率是廣告主和媒體網站常用來衡量廣告效果的標準。我聽過一個數字,廣告平均點擊率爲千分之一,也就是每展示1000次廣告纔會收穫1次點擊,所以點擊率預估中數據都是很稀疏的。

  • 點擊率預估

一句話解釋點擊率預估:80%

瞭解了點擊率,我們再來看看什麼叫點擊率預估。從字面上理解,點擊率預估是預測媒體網站上某個廣告的點擊量/展示量,然而這樣理解並不是很準確,我先給出我的理解:點擊率預估,是指預測特定用戶點擊特定廣告的概率,例如小明點擊某信二手車廣告的概率是80%。

爲什麼對媒體網站廣告點擊率(0.1%)的預測,會變成了對用戶點擊某廣告概率(80%)的預測呢,接着往下看啦。

5.2.2 爲什麼要做點擊率預估

一句話解釋爲什麼要做點擊率預估:錢。

在競價廣告階段,廣告主與媒體網站之間以按點擊付費(CPC)的方式結算,因此我們可以用下列公式來表徵媒體網站在某次廣告活動中的收入:

媒體網站收入 = (點擊率 * 展示量) * 單次點擊價格 = 點擊量 * 單次點擊價格

我們知道,展示量單次點擊價格這兩部分都是廣告主參與競價後才能決定的,與媒體網站無關,所以媒體網站的收入就與點擊率直接掛鉤。在收益最大化的驅使下,媒體網站有提高點擊率的動力。點擊率的定義是點擊量/展示量展示量又是廣告主通過競價決定的,因此媒體網站只能想方設法提高點擊量

對於媒體網站而言,他所擁有的資源就是頁面上幾個固定的廣告位和海量的用戶。爲了提高點擊量,一種簡單明瞭的想法就是讓展示的廣告儘可能多的被點擊,即“指哪兒打哪兒”。爲了實現這個理想,亟需解決兩個問題:首先需要知道用戶感興趣的廣告有哪些,其次需要讓用戶儘可能多的點擊這些廣告。

第一個問題叫做“廣告檢索”,是指媒體網站根據用戶的定向標籤或其他方式檢索出符合用戶口味的廣告候選集合。這部分內容是搜索引擎的核心,在這裏我們就不展開討論了。我們來看第二個問題,假設我們已經得到了一個符合用戶口味的廣告候選集合,如何能讓用戶更多的點擊呢?很簡單,把用戶最可能點擊的廣告放在最顯眼的地方,爲了定量描述用戶最可能點擊的廣告,這便引出了點擊率預估的問題。因此我們說,點擊率預估並不是來預估媒體網站上點擊量/展示量,而是預測某個特定用戶點擊某個特定廣告的概率。OK,那預估完幹什麼呢?剛纔不是說了嘛,把最可能點擊的廣告放在最顯眼的地方呀!

  • 最顯眼的地方

一句話解釋最顯眼的地方:你也是柳巖的球迷?

爲了較爲直觀地描述用戶的注意力分佈,我找了一張LinkdIn的用戶注意力熱力分佈圖。(圖片來自網絡)

熱力分佈圖

圖中,顏色越紅代表用戶注意力越集中。可以看到,用戶最關注的是頁面的上半部分,其次是右半部分,最後是下半部分。這種注意力分佈基本我們日常的瀏覽習慣,即如果能在頁面靠前位置找到我們所需的信息,一般就不會再關注頁面其他地方。瞭解了注意力分佈,我們來看一下某度搜索頁面上的廣告位分佈。

百度

某度廣告位主要分佈在北區、東區和南區三部分,以LinkedIn頁面中的用戶注意力分佈來推測,用戶在某度頁面上注意力分佈從高到底分別是北區、東區和南區。假設某度共有10個廣告位,那麼將用戶最可能點擊的10個廣告按照點擊概率由高到低順序分別排在北區、東區和南區。然後還幹嘛?沒有了,萬事俱備,只欠點擊。

不知道您聽明白了沒,我來幫您捋捋。爲了提高媒體網站的收益,我們結合業務場景不斷簡化問題,從提高媒體網站點擊率入手,到提高總點擊量,再到獲得廣告候選集合,預測出了用戶點擊廣告的概率。僅僅預測點擊概率媒體網站還賺不着錢,因此媒體網站根據點擊概率在頁面廣告位上對廣告進行排序。所以爲什麼要做點擊率預估呢?都是爲了錢!都是爲了錢!都是爲了錢!

5.2.3 點擊率預估怎麼做

一句話解釋點擊率預估怎麼做:使盡渾身解數,只爲更懂你。

自計算廣告學誕生以來,點擊率預估就是一個在學術界和工業界被廣泛研究和實踐的課題。剝去種種具體場景,點擊率預估的本質其實還是一個機器學習中的二分類問題。一般來講,媒體網站點擊數據的數學分佈是非線性的。爲了擬合這種非線性關係,學術界側重於模型的研究,工業界側重於特徵的構造,雙方優勢互補,已取得了相當豐碩的成果。下面我們將先介紹展示廣告和搜索廣告這兩種互聯網廣告的主要形式,然後闡述二者在點擊率預估問題上的不同之處,最後介紹一些點擊率預估的方法。

  • 展示廣告

展示廣告(Display Advertising)是一種以“圖片+文字”的方式進行廣告宣傳的互聯網廣告形式。從廣告觸發方式來看,展示廣告是媒體網站根據用戶歷史行爲所做的推薦,對用戶而言廣告是被動接收的,如下圖。

展示廣告

  • 搜索廣告

搜索廣告(Sponsored Search)是一種以“標題+超鏈接”的方式進行廣告宣傳的互聯網廣告形式。從廣告觸發方式來看,搜索廣告是媒體網站針對用戶當前檢索所做的廣告匹配,廣告是用戶主動發起的,如下圖。

搜索廣告

根據上面我們對展示和搜索廣告的描述,我們可以對兩種廣告形式的點擊率預估有一個淺顯並直觀的認識:展示廣告的點擊率預估可以看作是一個推薦問題,根據歷史記錄推測用戶對哪些廣告更感興趣;搜索廣告的點擊率預估可以看作是一個檢索問題,根據用戶當前的查詢來做廣告匹配。前者推薦後者檢索,問題性質的不同也決定了點擊率預估所採用方式的不同。

  • 點擊率預估方法

有關展示廣告搜索廣告的實現算法和應用細節都是各家互聯網公司的商業機密,由於場景的不同,各家對點擊率的預估也是八仙過海各顯神通。作爲一個沒有實戰經驗的小屁孩兒,想要較爲流暢地闡述這個話題,還是力不從心,畢竟眼界太窄太年輕。爲了保證文章結構的完整,這部分還必須要寫,那麼我就拋開業務場景,僅從機器學習角度來和大家聊一聊我所知道的內容。寫的不好,還請各路大神多多指教,如有不當指出,請嚴厲指出,我定感激不盡!

上面我們提到過,從用戶瀏覽網頁到廣告獲得展示,要經過三個階段:用戶定向、廣告檢索和廣告排序。用戶定向和廣告檢索就不多說了,最終在廣告庫中可以找到符合你口味的廣告,即“萬里挑十”。在廣告排序階段,需要將這十個廣告位放置在頁面上,通常做法有兩種,一個是基於規則,一個是基於機器學習。我們這裏從機器學習的角度入手,但是各位千萬不要忽視了規則的能力。聊到機器學習,主要就是兩方面,特徵和模型。下面我就根據我所瞭解的內容,重點介紹一下線性模型+海量特徵的方法,然後簡單介紹一下點擊率預估的發展。

  • <1>線性模型 + 海量特徵

用於點擊率預估的數據主要是日誌數據,一般會有點擊行爲(點擊爲1,沒點爲0)、廣告信息(廣告位、廣告主id、廣告標籤和廣告描述等)、用戶信息(用戶id和用戶標籤等)、上下文信息和時間戳等。有了這些原始數據之後,需要對數據進行清洗,然後利用統計或模型的方法構造特徵,進而做特徵選擇和特徵組合,最終特徵的數量級大約在10億-100億維。完成了特徵工作之後,在模型方面,較爲經典的點擊率預估模型是線性模型Logistic Regression,由於LR在通過sigmoid之前是一個[0,1]之間的浮點數,利用LR的特點,我們可以將這個浮點數作爲用戶點擊該廣告的概率,把廣告按照這個概率從高到低放置在相應廣告位上,就完成了廣告排序。

爲什麼要造出維度這麼高的特徵向量呢?我的理解是這樣的。對於點擊數據來說,點擊行爲與其他特徵之間的關係是非線性的,爲了擬合這種非線性關係,我們依然可以從特徵和模型兩方面入手。通常來說,非線性模型的效果要更好一些,但是效率太低,不適合工業界的現實場景,所以快速簡單的線性模型就成爲了模型的首選。那線性模型如何擬合非線性關係呢?這就需要在特徵層面做文章,利用特徵工程的方法來構造出高階特徵,同樣可以實現非線性。這個思路理解起來還是不難的,如下面兩式對比:

y1=w1x1+w3x2+1

y2=w1x21+w2x1+w3x2+w4x1x2+1
  • <2>點擊率預估的發展

爲了構造出維度如此巨大的特徵向量,特徵工程幾乎佔據了70%的項目時間,並且主要是靠努力的程序員人工來實現的。那有沒有自動選擇特徵的方式呢?ADKDD’14有一篇Facebook的paper《Practical Lessons from Predicting Clicks on Ads at Facebook》提出了一種使用GBDT自動選擇特徵的方法,用每棵樹上的葉子節點來表達特徵,比如{1:2, 2:3}指的是第一棵樹上第2個節點和第2棵樹上第五個節點,根據每棵樹的節點個數用one-hot表示即可。多說一句,GBDT選特徵的方法已經經過實踐驗證,在Kaggle-Criteo點擊率預估大賽中,冠軍的解決方案便是GBDT+FFM的方法獲得的。

說到FFM,它是FM的一個變種。FM(Factorization Machine):因式分解機是最近比較火的一個模型,這個模型可以挖掘出特徵間的非線性關係,並且可以在O(n) 的時間內完成計算,非常吸引人。

最後就是深度學習了,在視頻、圖像和語音領域有較爲突出的成果。最新的聽說MSRA出了一個152層的網絡,OMG…國內在廣告領域應用深度學習最早的應該是百度IDL,據說有三十多層,評價指標提升了三個百分點,看來DL的能力還是很強的。我自己也在探索階段,期待能有好的結果,這裏就不多說了。

點擊率預估環節到這裏就結束了,以上內容不知是否和您心意。部分內容可能需要一些機器學習背景,對此感興趣的同學可以加入我們的QQ羣(初學者373038809,行業同學和研究者472059892),我們共同討論。好累呀,賣個萌再往下面寫吧。(圖片來自網絡)

賣個萌

5.3 程序化交易關鍵技術:出價策略

在上半部分中,我們曾經介紹過程序化交易中的參與者,除了用戶外,主要還有代表媒體網站利益的SSP、代表廣告主利益的DSP和小三ADX。通俗來講,SSP是管倉庫的,ADX是管傳話的,DSP是管花錢的,現在我們要開始聊程序化交易中的關鍵技術,您覺得我們應該把目光放在誰上面呢?已經講到現在了,我們要收起情懷,統一思想,當然是要重點關注DSP啦!你可能會想,花錢誰不會啊,這要啥技術?沒錯,花錢是沒什麼難的,但對於廣告主而言,花錢做廣告是一種投資,本質和風投股票文玩樓盤高利貸沒什麼區別,追求的就是高的投入產出比,真刀真槍的動起錢來,弄不好會走火入魔的。這錢,您還敢花嗎?

敢啊!

要是不敢我還怎麼寫博客嘛,哈哈哈哈哈~~~花錢不要緊,只要能掙就行了呀!那我們就來聊聊如何才能掙的比花的多吧。

5.3.1 出價原則

上面我們提到,廣告主花錢做廣告實際上是一種投資行爲,既然是投資,就要對風險進行評估。具體到DSP來說,“投資”是指廣告主投錢給DSP,讓其參與實時競價,期望獲得良好的廣告效果(點擊/購買/註冊/下載等);“風險”是指錢花了,但由於效果太差,沒見着收益。爲了規避風險,獲取較高的投入產出比,DSP在出價時需要進行“風險評估”,即預估本次廣告展示機會所能帶來的收益,以此作爲出價的參考。在出價時,要注意以下幾點原則,可能並不全面,還請行業內的同學補充。

  • 預算限制:廣告主一次就給這麼多,超了算你的。
  • 時間限制:到時間花不完就收回去了。
  • 花錢爲主:都說了是投資,能花了就別留着。
  • 見好就上:出價與流量品質成正相關。

這些出價原則理解起來沒什麼難的,但我想要着重說一下第四條見好就上,這纔是最關鍵的部分。如何定義流量品質,又如何出價呢,好戲馬上開始。

5.3.2 如何定義流量品質?

所謂流量品質,就是在此時此刻此情此景,用戶點擊廣告能爲廣告主帶來的收益,主要分爲兩部分:一是點擊率,二是點擊價值。點擊率的預估就不多說了,和媒體網站上點擊率預估是類似的,只不過在實時的場景下要求會更高一些。點擊價值是什麼意思?劉鵬老師在《計算廣告》中這樣解釋道:(有部分修改,括號內容爲我的解釋)

點擊價值可以分解爲到達率、轉化率和轉化單價三個量的乘積。到達率是指實際打開廣告次數與點擊次數的比例,這與廣告主網站的頁面你打開延遲關係最大,與媒體的屬性、特別是誤點情況也有一定關係;轉化率指的是到達廣告主頁以後,有多少比例產生了廣告主定義的轉化行爲(購買/註冊/下載等);轉化單價是指廣告主指定的轉化費用(即DSP做一單能掙多少)。

上述三個變量中,到達率和轉化單價都是很好統計的,只有轉化率的預估是比較困難的。轉化率預估的方法可以參照點擊率預估,但是由於轉化數據要比點擊數據少得多,除非是在有充足行業數據支持的情況下,否則用機器學習方法建模有較大困難。實踐中比較可行的辦法基本上都是簡單統計與運營經驗相結合來估算轉化率。

5.3.3 如何出價?

終於進入到了最核心的出價環節。按照“見好就上”的原則,出價與流量品質成正相關。那到底是採用線性策略好,還是非線性策略好呢?我們來仔細分析一下。

  • 線性出價策略

我們在CTR預估階段提到過用戶注意力,廣告位這個物理因素對點擊率的影響是十分顯著的。我曾看到過一個數字,同樣一個廣告,把它放在第一位所獲得點擊率是放在第二位時的兩倍。若採用線性出價策略,DSP在出價時就有必要出兩倍於第二位的價格去參與競價。這個思路很好理解,感興趣的同學可以參照KDD’12的paper《Bid Optimizing and Inventory Scoring in Targeted Online Advertising》

  • 非線性出價策略

非線性策略是我想說的重點,主要是想借着這個機會介紹一下限制條件下的優化問題以及其解法,這對於我們做科研或者工程項目都是很有幫助的,下面我們通過KDD’14《Optimal Real-Time Bidding for Display Advertising》一文來了解一下非線性出價策略的來龍去脈。以下內容是我對這篇paper的個人理解,可能並不到位,既然寫出來就不怕大家笑話啦,有錯就改嘛嘿嘿。

<1>. 文章大意

實時競價的場景中,在預算限制條件下如何設計出價策略是我們關注的焦點。爲了實現這一目標,分爲三步。第一,將現實問題用數學方法建模爲限制條件下的優化問題,並通過拉格朗日乘子法,求得出價策略的數學表達式;第二,利用品友RTB出價算法大賽的數據擬合出價策略中的參數;第三,驗證結果,發現了一個有意思的結論:相比少量高品質的展示機會,那些大量低品質的展示機會同樣可以具有較好的廣告效果,值得出價。這個發現對於那些預算不夠,同時又想做廣告的小廣告主來說,簡直就是福音。

<2>. 建立模型

在一切開始之前,讓我們先考慮清楚要解決的問題是什麼,簡單來說就一句話:選擇合適的出價策略,在預算的限制下實現廣告效果最大化,用數學語言描述就是下面這樣:

b()ORTB=argmaxb()NTxθ(x)w(b(θ(x),x),x)px(x)dx

subject to NTxb(θ(x),x)w(b(θ(x),x),x)px(x)dx

我靠

我靠!這一堆是什麼玩意兒!你TM在逗我?淡定。。看不懂就對了啊哈哈哈哈!下面我來做一下簡化,告訴你這個模型在我眼中長什麼樣。

b()ORTB=argmaxb() 

subject to  !<B

這下是不是好多了?反正我第一次看到這個模型就長這樣,把積分部分當作一大坨,就很容易看懂了。這個模型一共有兩個公式,我們一一來看。

b()ORTB=argmaxb() 

第一個公式是一個等式,等號左邊是我們想得到的出價策略函數b()ORTB ,等號右邊是argmaxb() 跟上一大坨,這裏argmaxb() 的意思是:當後面一大坨取最大值時,返回在最大值情況下的那個b() 。將等號左右兩邊連起來,這個等式所表達的意思就是:當後面一大坨取最大值時,返回在最大值情況下的那個b() 作爲我們要求的出價策略b()ORTB 。這個思路是不是有點眼熟?沒錯,在前面合約廣告關鍵技術——受衆定向中,講到用戶動態特徵時我們對泊松分佈的處理方式有些類似。綜上所述,對於這個等式而言,我們要做的工作就一個:求最大值。

subject to  !<B

第二個公式是一個不等式,subject to是“受限於”的意思。在這裏, !<B 想要表達的就是一個限制條件,在等式求最大時插上一腳。還記得我們在高中時學過的線性規劃嗎,一樣的道理。

現在我們的任務已經明確了:在限制條件下求等式最大值。那麼這個數學任務和我們的實際問題:選擇合適的出價策略,在預算的限制下實現廣告效果最大化是怎麼匹配上的呢?這就需要去看那兩大坨了。那一大坨全都是各種符號,我們看不懂,所以需要一張符號對照表,如下圖。爲了方便,我再把模型公式再貼一次。

符號對照表

b()ORTB=argmaxb()NTxθ(x)w(b(θ(x),x),x)px(x)dx

subject to NTxb(θ(x),x)w(b(θ(x),x),x)px(x)dx

有了符號定義和模型,我們開始聊(啃)一聊(啃)這兩大坨吧。先看第一坨,我們從右往左看。

  • dx :x代表一次bid request,是ADX發給DSP的競價請求“標識XXX,男性,20-25歲,跑鞋愛好者,廣告位爲首頁”,即一次廣告展示機會。之所以是dx 而不是x ,是因爲我們關注的是整個廣告推廣計劃中所有的競價過程,而非某一次競價。

  • px(x) :廣告展示機會的概率密度分佈,我的理解是在全網所有的競價中,滿足我DSP要求的、或者是我能收到的bid request所佔的比例。因此,px(x)dx 的物理意義是“我能收到的展示機會”。

  • θ(x)θ 是贏得此次競價所能帶來的收益(KPI),本文用CTR來衡量,CTR越高,收益就越高。

  • b(θ(x),x) :對於此次展示機會,在能帶來收益爲θ(x) 的情況下,我所出的價格bid。

  • ω(b(θ(x),x),x) :對於此次展示機會,在能帶來收益爲θ(x) 的情況下,我的出價bid能獲勝的概率是多少。因此,ω(b(θ(x),x),x)px(x)dx 的物理意義是“對於本次我所收到的這個展示機會來說,在該機會能帶來收益爲θ(x) ,我出價爲bid的情況下,我能打敗對手獲得此次展示機會的概率”。

  • θ(x) :依然收益。所以θ(x)ω(b(θ(x),x),x)px(x)dx 的物理含義是“我出價爲bid,贏得這次展示機會後,所能獲得的收益”。

  • NT :一次廣告推廣活動中所有的bid request。

有了上面的解釋,我們可以很容易的得出第一坨的物理意義:對於一次廣告推廣活動中的所有競價,我使用b() 的出價策略所能獲得的收益。和等式連起來,即:對於一次廣告推廣活動中的所有競價,我使用b() 的出價策略所能獲得最大收益時所對應的b() ,就是我們想要的出價策略。

有了第一坨的經驗,第二坨啃起來就容易多了。前面都不變,只有到最後把θ(x) 換成了b(θ(x),x) ,變爲b(θ(x),x)ω(b(θ(x),x),x)px(x)dx ,其物理意義爲:對於這次廣告展示機會,我出價爲bid且贏得這次展示機會所花費的預算。所以對於整個廣告推廣活動而言,所有的出價要小於預算。就這樣,我們順利的將預算限制寫進了數學模型裏。

好了,分析完兩大坨積分的含義之後,我們合起來解釋一下該模型(ORTB)所表達的物理意義:在整個廣告推廣活動中,在出價總和小於預算的限制條件下,當廣告收益取得最大值時所對應的那個出價策略,就是我們夢寐以求的出價策略b()ORTB。再來對照一下我們的任務:選擇合適的出價策略,在預算的限制下實現廣告效果最大化。這下匹配了吧!完美!(圖片來自網絡)

ORTB

<3>. 模型求解

截止到目前,我們已經得到了模型表達式,由一個等式和一個不等式組成。接下來我們就要開始求解了:求最大值。最大值有什麼好求的?讓導數等於0之後帶入極值點不就完了?你說的對,如果只有一個等式我們是這麼求的,但問題是我們現在除了一個等式,還有一個不等式,這種情況下怎麼來求最大值呢?用拉格朗日乘子法

通過拉格朗日乘子法,我們可以將不等式乘一個參數λ 後和等式寫進一個公式裏(化簡過程已省略),得到如下結果。

L(b(θ),λ)=θθw(b(θ))pθ(θ)λθb(θ)w(b(θ))pθ(θ)dθ+λBNT  (6)

有了這個公式,我們就可以對它進行求導等於0了,可得如下結果:

θpθ(θ)w(b(θ))b(θ)λpθ(θ)[w(b(θ))+b(θ)w(b(θ))b(θ)]=0  (7)

通過化簡,可得出價函數b() 與勝率函數w() 的關係:

λw(b(θ))=[θλb(θ)]w(b(θ))b(θ)  (8)

也就是說,我們想要的出價函數b() 與勝率函數w() 有關,那我們就來看看他們之間到底有什麼關係。通過對數據的統計,可以畫出出價函數b() 與勝率函數w() 的關係圖像:

w()-b()

從圖像中我們可以看出,出價函數b() 與勝率函數w() 的關係是非線性的,並且這個曲線的走勢和y=xc+x 很像,我們來對比一下,這裏c=3。

x/c+x

沒錯,的確很像。基於此,爲了達到消元的目的,作者做了一個出價函數b() 與勝率函數w() 之間的假設,仿照着y=xc+x 得到下面公式:

w(b(θ))=b(θ)c+b(θ)  (9)

將出價函數b() 與勝率函數w() 的9式關係帶入到倒數爲0的7式中,化簡可得:

bORTB1(θ)=cλ+c2c  (13)

就這樣,我們得到了我們的出價策略bORTB() 的表達式(公式13)。我們來看看這個公式裏有什麼。這個公式是由θcλ 組成的,其中cλ 都是常量,只有θ 一個變量。c 是出價函數b() 與勝率函數w() 之間的係數,λ 是拉格朗日乘子,而θ 是每次廣告展示的收益,按CTR高低來評判。我們來驗證一下:CTR越高,由該策略算出的出價也就越高,符合我們的預期,大功告成。

我們來梳理一下思路。在建模環節,我們已經得到了我們所需的模型:一個等式+一個不等式。我們的任務是要求等式的最大值,通常方法直接對等式求導等於0即可,由於我們這裏是一個限制條件下的優化問題,所以需要用到拉格朗日乘子法,將限制條件寫進等式中,構造出一個新的公式(公式6)。對於新的公式,我們就可以用求導等於0了(公式7)。在化簡過程中,我們發現了出價函數b() 與勝率函數w() 存在着數學關係(公式8),爲了消元,我們按照實際數據的分佈構造出出價函數b() 與勝率函數w() 的表達式(公式9),將公式9帶入公式7,繼續化簡就得到了我們的出價策略:bORTB() ,剩下的工作就是根據數據去擬合λc 即可,這裏就不多說了。這裏需要強調的是,這種限制條件下的優化方法在統計與機器學習中是很常見的,例如SVM的推導過程,感興趣的同學可以試一試,其實並不難。

<4>. 結果分析

既然有了公式,那我們就來看看ORTB的出價有什麼特點吧。

線性vs非線性

我們可以很直觀的看出,我們所得到的出價策略是一個非線性的。橫座標θ 代表了廣告展示計劃的品質,ORTB會對低價值的展示機會出高價,這樣的結果能爲我們帶來什麼,誰會去要那些低價值的展示機會呢?我們來看下面這張圖。

lambda

在此圖中,我們盯着一條曲線看,比如藍色的(1/32)。隨着λ 增加,收穫的點擊量是增加的,意味着λ 越高,我們的收益越高。對於我們獲得的出價策略而言,λ 越高,我們的出價是越低的,也就意味着這次展示機會的價值是很低的。這樣的結果值得我們深思,我們以爲低價值的展示機會是不值錢的,但數據說明,這些看似不值錢的展示所能帶來的回報還算不錯。特別地,在λ =1e-05時三條曲線的幾乎重合,而紅色代表有錢的廣告主,藍色代表窮廣告主,雖然預算差了16倍,但是獲得的收益是相同的,這個結論對於預算有限的小廣告主而言,是個天大的好消息:雖然我們錢不多,但只要我們出價合適,依然可以收穫很好的廣告效果,四兩撥千斤,極大的調動了小廣告主參加程序化交易的積極性。

我們知道,“二八原則”是客觀存在的,在廣告主中也不例外,如果能吸引這80%的小廣告主參與程序化交易,玩家一多,需求自然更多。爲了滿足金主的需求,勢必會推動相關計算技術的發展,這對於計算廣告的未來而言,是一件好事。

講完了非線性出價策略,程序化交易中的關鍵技術也接近尾聲了。出價策略之所以重要,是因爲就是DSP賴以生存的看家本領,沒有這些真本事,DSP是走不了多遠的。

到此,計算廣告關鍵技術就講完了,啥也不說了,給自己鼓個掌吧(圖片來自網絡)。

鼓掌


歷時大半個月,中間又加上過年,終於把這章給寫完了,沒想到這一章的內容要比上半部分全文都要多。在本篇《計算廣告小窺[中]這孫子怎麼什麼都知道》中,我們從理論的角度探討了計算廣告各階段的關鍵技術:在合約廣告中,我們討論了受衆定向技術,從用戶、上下文和廣告主三個方面簡單介紹了打標籤的常用思路和方法,爲計算廣告實現精準營銷打下了堅實的基礎;在競價廣告中,我們討論了點擊率預估的來龍去脈,感受到了互聯網人的智慧,爲媒體網站流量變現提供了直接保障;在程序化交易廣告中,我們通過學術論文了解了當下學術界領先的DSP出價策略,近距離地感受了一下科研的魅力。

曾有人嘆息到“我們這一代最聰明的人竟然都在這裏思考着怎樣讓人們去大量的點擊廣告,真衰。”我個人不認同這種說法,因爲在計算廣告這樣複雜的場景下,相關技術和解決方案的水準必然是頂尖的,稍加修改即可解決其他場景下的疑難雜症,這恰似軍工技術反哺民用,又恰似女生隨手甩一個不要了的護膚品給男生,那可都是寶。

受篇幅所限,原定於本篇要完成的第五章和第六章只好放在《計算廣告小窺[下]廣告系統架構:要啥自行車,這裏有寶馬。》中來寫了。在下篇中,我們將介紹一個通用的廣告系統架構,在領略在線和離線過程的同時,還將見到時下工業界最火熱的技術,譬如Nginx,Hadoop,Spark等在計算廣告領域的位置與應用。

除了廣告系統架構,我還將介紹一個我自己搭的最小廣告系統mieSys,可以先放出來給大家玩一玩,鏈接是http://115.159.33.50/。使用方法:用戶點擊頁面中廣告,等一段時間後刷新頁面,在頁腳處會顯示用戶的興趣標籤和性別,在第一行五個廣告位中會展示符合用戶口味的廣告。需要注意的是,由於目前缺少點擊數據,CTR模型並不準,爲了保證演示效果,暫時只能用離線代替在線,所以您在點擊過後預計要10分鐘(用戶多的話甚至更長)才能看到頁面效果,我後期會進行優化,還望輕拍,效果圖如下,第一張爲默認頁面,第二張爲結果頁面。

默認頁面

結果頁面

這個系統是我用大概20天的時間搭成的,目前來說基本的功能都有,但還是太簡單,並且算法沒有優化,我會逐步的往上面添加模塊和算法,目前思路已有,就差各位爲我提供點擊數據了[嘿嘿嘿嘿···]。如果您發現mieSys掛了,不是用戶太多就是我在調程序,在系統成熟的時候我會選擇開源,願意與有興趣的同學多交流。哦對了,至於爲什麼起名爲mieSys,因爲我女朋友屬咩,呵呵噠~

好了,我們《計算廣告小窺[下]》再見!

P.S. 馬上開學了,事情也多了起來,等暑期實習確定之後再開始寫下篇。預計到4月份,謝謝各位的關注!

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