色屁屁www影院免费观看入口,欧美性猛交ⅹxxx乱大交妖精,欧美激情第5页,欧美性猛交xxxx三人,欧美一a级做爰片大开眼界

達觀動態(tài)

達觀愿與業(yè)內(nèi)同行分享 助力各企業(yè)在大數(shù)據(jù)浪潮來臨之際一起破浪前行

計算廣告系統(tǒng)算法與架構(gòu)綜述

1

前言

我們當今身處一個被廣告包圍的時代,無論是走在馬路上、收看電視劇、或者是玩手機游戲,都能看見形形色色的廣告。隨著時代和技術的發(fā)展,廣告的形式呈現(xiàn)出多樣化、立體化的趨勢,從最早的紙媒廣告發(fā)展到如今的網(wǎng)頁的展示、搜索廣告,廣告的定位也從原先的“廣而告之”發(fā)展成大數(shù)據(jù)時代的“精準營銷”,相應地,人們對廣告的態(tài)度也在悄然變化。這一切都得益于互聯(lián)網(wǎng)技術的快速發(fā)展以及用戶數(shù)據(jù)的爆炸式增長。作為IT從業(yè)者,自然想對廣告產(chǎn)業(yè)背后的產(chǎn)品、技術一探究竟,正如劉鵬博士在其《計算廣告》一書中所說的“不論你在做一款用戶產(chǎn)品還是商業(yè)產(chǎn)品,不深入了解在線 廣告,就不太可能全面地了解互聯(lián)網(wǎng)業(yè)務”,因此本文也希望能帶領讀者從產(chǎn)品、技術以及整個生態(tài)的角度深入淺出的了解計算廣告。

核心術語

首先,在深入了解計算廣告之前, 有必要先對一些核心術語做簡單的介紹。

  • 廣告主:有廣告需求的客戶公司,也稱為需求方

  • 媒體:可以是網(wǎng)站或者app,即有多余的廣告位可以出售,也稱為供給方

  • RTB(Real Time Bidding,實時競價):綜合利用算法、大數(shù)據(jù)技術在網(wǎng)站或移動應用上對在線的流量實時評估價值,然后出價的競價技術

  • DSP(需求方平臺):為各廣告主或者代理商提供實時競價投放平臺,可以在該平臺上管理廣告活動及其投放策略,并且通過技術和算法優(yōu)化投放效果,從中獲得收益

  • SSP(供應方平臺):為各媒體提供一致、集成的廣告位庫存管理環(huán)境

  • DMP(數(shù)據(jù)管理平臺):整合各方數(shù)據(jù)并提供數(shù)據(jù)分析,數(shù)據(jù)管理、數(shù)據(jù)調(diào)用等,用來指導廣告主進行廣告優(yōu)化和投放決策

  • Ad Exchange,簡稱Adx(廣告交易平臺):同時接入了大量的DSP和SSP,給雙方提供一個“交易場所”,將SSP方的廣告展示需求以拍賣的方式賣給DSP方。可以類比于股票交易中的證券大廳角色

  • CTR(點擊率):廣告點擊與廣告展現(xiàn)的比例,這是廣告主、各大DSP廠商都非常重視的一個數(shù)字,從技術角度看,這一數(shù)字可以影響到廣告的排序、出價等環(huán)節(jié),從業(yè)務來看,這是運營人員的考核指標之一

  • CVR(轉(zhuǎn)化率):轉(zhuǎn)化(主要由廣告主定義,可以是一次下單或是一次下載app等)次數(shù)與到達次數(shù)的比例

  • eCPM(千次展示期望收入):點擊率 * 點擊價值,這個數(shù)字在計算廣告中是核心指標,涉及到對召回廣告的排序策略,以及最終出價策略

  • CPM(Cost per mille):每千次展現(xiàn)收費,最常見的廣告模式,即不考慮點擊次數(shù)、轉(zhuǎn)化次數(shù),只要廣告在網(wǎng)站上被展現(xiàn)給一千個人看到就收費,是大型網(wǎng)站變現(xiàn)的最有效的方式。對廣告主來說,適合于注重推廣品牌的廣告,力求最快最廣的觸及大眾

  • CPC(Cost per click):每次點擊收費,無論廣告被展現(xiàn)了多少次,只要沒有產(chǎn)生點擊就不收費。對于廣告主來說選擇 CPC 模式可以有助于提升點擊量、發(fā)現(xiàn)潛在用戶,進而可以真正做到精準營銷;對于廣大DSP廠商來說,這種收費模式也是獲取利潤的最有效來源之一

  • CPA(Cost per action):每次動作收費,此處的動作一般定義為轉(zhuǎn)化,可以是注冊、咨詢、交易、下載、留言等等,按照轉(zhuǎn)化的數(shù)量來收費。對于廣告主來說,這是性價比較高的一種收費方式,但是對于DPS和媒體方來說,想要把這種收費做好,卻是有相當?shù)碾y度。因此,目前也只有大廠或者技術實力深厚的DSP廠商才有能力接這種單子

  • 其他的還有CPT(按展現(xiàn)時間收費)、CPL(按潛在線索收費)、CPS(按成功銷售收費)等模式,由于應用沒有那么廣泛,在此不一一介紹了。

競價流程

在RTB模式出現(xiàn)之后,我們發(fā)現(xiàn)展現(xiàn)的廣告越來越精準了,好像網(wǎng)站知道用戶是誰、用戶在做什么、用戶對什么感興趣,因此,在了解了上述這些核心術語之后,接下來就以網(wǎng)站用戶角度,從流程上解析RTB是如何做到精準展示廣告的。

  • 用戶通過瀏覽器訪問網(wǎng)站

  • 瀏覽器發(fā)送廣告請求給網(wǎng)站服務器,即SSP方

  • SSP將廣告展示需求發(fā)送給Adx

  • Adx組織一次競價,將本次的競價請求通知給所有DSP方,并傳輸用戶ID、用戶IP以及廣告位信息等等

  • 各家DSP監(jiān)聽服務收到Adx發(fā)來的競價請求后,根據(jù)發(fā)送來的當前用戶的信息、上下文信息、代理的廣告主信息對照投放需求,評估該請求

  • 各家DSP將根據(jù)評估結(jié)果決定是否參與出價,若參與,則將出價結(jié)果通知Adx

  • Adx收到所有出價響應后根據(jù)出價排序,通知出價最高的DSP勝出,同時將勝者的競價信息告知SSP

  • 勝者DSP會收到Adx發(fā)送的競價消息(WinNotice),表示該次展現(xiàn)已經(jīng)競價成功。DSP此時將廣告物料傳送至瀏覽器展示。至此,一次完整的競價流程就完成了

2

有兩點需要說明:

  • 以上流程需在100毫秒之內(nèi)完成,也就是一眨眼的功夫都不到,這樣才能讓訪問網(wǎng)站的用戶馬上看到廣告。

  • 雖然競價最后的勝者是出價最高的DSP,但其實際支付的價格是出價第二高的報價再加上一個最小值,這就是著名的廣義二階拍賣(GSP)。這種定價模式的好處主要是為了避免各家DSP在多次競價中,下一次的出價只需比上一次的勝出價格高一點點即可,從而導致出價越來越低。在GSP模式下,每個勝者只需要支付次高出價的金額,這樣各家DSP也就沒有動力相互壓價。GSP是一種穩(wěn)定的競價方式,可操作性很強,現(xiàn)階段幾乎所有的互聯(lián)網(wǎng)廣告平臺都使用這一種競價方式。

?

技術細節(jié)

縱觀計算廣告的發(fā)展會發(fā)現(xiàn),整個市場本質(zhì)上是計算驅(qū)動的,而計算背后最大的推動力正是互聯(lián)網(wǎng)以及大數(shù)據(jù),而大數(shù)據(jù)的發(fā)展動力又來自于硬件和軟件。因此接下來,就來剖析下技術細節(jié)。

1.架構(gòu)

一個典型的廣告系統(tǒng)架構(gòu)如下圖:

?3

?

結(jié)合上圖,廣告系統(tǒng)有以下幾個重要組成部分:

?

(1)受眾定向平臺:這部分一般為離線挖掘,是系統(tǒng)中最具算法挑戰(zhàn)的部分,利用數(shù)據(jù)挖掘、機器學習等技術進行受眾定向,點擊率預估等工作。具體還可以細分為以下幾個模塊:

?

  • 會話日志生成(Session loggeneration):從各個數(shù)據(jù)平臺收集日志,并最終根據(jù)用戶ID為主鍵匯集成一份統(tǒng)一存儲格式的日志,從而為后續(xù)的數(shù)據(jù)分析、算法研發(fā)提供數(shù)據(jù)來源。

  • 行為定向(Audience targeting):從會話日志中根據(jù)用戶的行為,利用數(shù)據(jù)挖掘、機器學習等算法建模,從而可以刻畫出用戶的行為模式、興趣點等,最終為用戶打上結(jié)構(gòu)化標簽,以供廣告定向投放使用。該模塊在整個系統(tǒng)具有非常關鍵的作用。

  • 點擊率建模(Click modeling):利用大數(shù)據(jù)工具以及算法,從會話日志中提取預定義的特征,訓練一個點擊率模型,加載到緩存中以供線上投放系統(tǒng)決策時使用。

  • 商業(yè)智能模塊(BusinessIntelligence):包括ETL(Extract-Transform-Load)過程、Dashboard、cube。BI系統(tǒng)可以為決策者提供直觀且即時的數(shù)據(jù)分析,而算法對決策者來說相當于黑盒,因此,設計一個良好的BI系統(tǒng)可以為決策提供有力的幫助。另外,在廣告投放中,除了技術之外,運營是非常重要的角色。所以,這一模塊也影響到了廣告運營的策略運行以及調(diào)整。

?

(2)高并發(fā)的投送系統(tǒng):也就是在線的廣告投放機(Ad server),主要任務是與各模塊交互,將它們串聯(lián)起來完成在線廣告的投放決策。特點是高并發(fā),要做到10ms級別的實時決策,百億次/天的廣告投放系統(tǒng)。具體可細分為以下幾個模塊:

?

  • 廣告檢索(Ad retrieval):也稱為廣告召回,即根據(jù)用戶屬性以及頁面上下文屬性從廣告索引(Ad index)中查找符合條件的廣告候選。

  • 廣告排序(Ad ranking):主要功能是對廣告檢索模塊送來的廣告候選集計算eCPM,并按照值的大小倒排。eCPM的計算依賴于受眾定向平臺離線計算好的點擊率。由于最終投放出的廣告都是來自于排序的結(jié)果,因此這一模塊也是至關重要,成為各種算法模型和策略大展身手的地方。

  • 收益管理(Yield management):將局部廣告排序的結(jié)果進一步優(yōu)化,以做到全局最優(yōu)收益。

(3)數(shù)據(jù)高速公路:聯(lián)系在線與離線的部分,可以用開源工具實現(xiàn)。作用是準實時地將日志推送到其它平臺上,目的一是快速地反饋到線上系統(tǒng)中,二是給BI人員快速看結(jié)果。它還可能收集其它平臺的日志,比如搜索廣告會收集搜索日志。

?

(4)流式計算平臺:主要功能是對在線數(shù)據(jù)的處理,做到準實時的挖掘和反饋,解決那些離線計算平臺無法快速響應的計算問題。具體又可分為:

 

  • 實時受眾定向(Real-timetargeting)實時點擊反饋(Real-time click feedback):對用戶的實時行為進行計算,如實時更新點擊率模型、動態(tài)調(diào)整用戶標簽,進而更好的適應線上環(huán)境。實踐表明,實時系統(tǒng)的作用對于最終效果提升明顯大于離線系統(tǒng),舉個簡單例子,當實時點擊反饋模塊發(fā)現(xiàn)當前用戶的行為與其歷史點擊行為有較大差異時,可以反饋給其他模塊并通知進行及時的更新,從而可以更好的滿足用戶變化的需求,最終提升效果。

  • 計費(Billing):該模塊掌管著廣告系統(tǒng)的“錢袋子”,運行的準確性和穩(wěn)定性直接影響了系統(tǒng)的收益。在廣告投放過程中,經(jīng)常會遇到投放預算用完的情況,這時計費模塊必須及時反應,采取例如通知索引系統(tǒng)暫時將廣告下線的辦法,避免帶來損失。

  • 反作弊(Anti-spam):利用算法和人工規(guī)則等實時判斷流量來源中是否有作弊流量,并將這部分流量從后續(xù)的計價和統(tǒng)計中去掉,是廣告業(yè)務非常重要的部分。

?

2.?硬件

?

在以上介紹的架構(gòu)圖中,都離不開大數(shù)據(jù)工具的作用,其中大多來自開源社區(qū),正所謂,工欲善其事,必先利其器。可以說,正是由于這些成熟的開源工具有力的保障了數(shù)據(jù)通信、數(shù)據(jù)傳輸、負載分配等底層架構(gòu)的健康運行,才使得上層的廣告算法和策略能快速發(fā)展。

?

(1)Hadoop:一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎架構(gòu),用戶可以輕松地在Hadoop上開發(fā)和運行處理海量數(shù)據(jù)的應用程序,主要優(yōu)點有:高可靠性、高擴展性、高容錯、低成本。Hadoop框架最核心的設計就是:HDFS和MapReduce。

?

  • HDFS是一種易于橫向擴展的分布式文件系統(tǒng),是分布式計算中數(shù)據(jù)存儲管理的基礎,適合應用于流數(shù)據(jù)模式訪問和處理超大文件的需求,不適合于要求低時間延遲數(shù)據(jù)訪問的應用、存儲大量的小文件、多用戶寫入。廣告系統(tǒng)中用戶生成的海量日志就是存在HDFS上,為各種離線計算提供服務。

  • MapReduce 是用于并行處理大數(shù)據(jù)集的軟件框架。MapReduce的根源是函數(shù)性編程中的 map 和 reduce 函數(shù)。它由兩個可能包含有許多實例(許多 Map 和 Reduce)的操作組成。Map函數(shù)接受一組數(shù)據(jù)并將其轉(zhuǎn)換為一個鍵/值對列表,輸入域中的每個元素對應一個鍵/值對。Reduce 函數(shù)接受 Map 函數(shù)生成的列表,然后根據(jù)它們的鍵(為每個鍵生成一個鍵/值對)縮小鍵/值對列表。在Spark出現(xiàn)之前,MapReduce是在大規(guī)模數(shù)據(jù)上計算點擊率預估、挖掘用戶行為、生成用戶畫像等的首選計算框架。

(2)Spark:一個用來實現(xiàn)快速而通用的集群計算的平臺,擴展了廣泛使用的MapReduce計算模型,Spark的一個重要特點就是能夠在內(nèi)存中計算,因而更快,即使在磁盤上進行的復雜計算,Spark依然比MapReduce更加高效。舉例來說,機器學習中很多算法都要迭代訓練多次才能達到收斂,例如聚類算法K-Means,每次迭代需要將K個中心點的位置保存下來,以進行下次的更新,傳統(tǒng)的MapReduce計算框架在Map階段和Reduce階段用硬盤進行數(shù)據(jù)交換,這就使得整個訓練過程效率很低,而Spark的做法則是將數(shù)據(jù)加載到內(nèi)存中,直接在內(nèi)存中更新K個中心點的位置,大大加快了訓練過程。Spark支持各種機器學習算法為代表的迭代型計算、流式實時計算、社交網(wǎng)絡中常用的圖計算、交互式即席查詢等。

?

(3)Lucene:用于全文檢索和搜索的開源程式庫,提供了一個簡單卻強大的應用程式接口,但它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構(gòu)。目前大多數(shù)的計算廣告采用的是檢索加排序模式,為了加快檢索的時間,可以對所有廣告的關鍵字建立倒排索引(主鍵為關鍵字,值為文檔ID),這樣在廣告召回時,便能快速地從規(guī)模巨大的廣告庫中返回結(jié)果。

?

(4)Storm:廣告系統(tǒng)中除了需要離線挖掘數(shù)據(jù),同樣還需要在線、準實時的處理數(shù)據(jù),例如反作弊處理、實時點擊反饋、實時查看某地區(qū)當前的廣告投放情況等,業(yè)界常用的工具是Storm。利用Storm可以很容易做到可靠地處理無限的數(shù)據(jù)流,像Hadoop批量處理大數(shù)據(jù)一樣,主要的特點有:

  • 高性能:應用于需要對廣告主的操作進行實時響應的場景.

  • 可擴展: 隨著業(yè)務發(fā)展,數(shù)據(jù)量和計算量越來越大,系統(tǒng)可水平擴展.

  • 消息不丟失:能夠保證每個消息都能得到處理.

  • 編程容易:任務邏輯與MapReduce類似,熟悉MapReduce框架的開發(fā)人員可以快速上手

?

(5)ZooKeeper:ZooKeeper是一個分布式的,開放源碼的分布式應用程序協(xié)調(diào)服務,是Hadoop和Hbase的重要組件,為分布式應用提供一致性服務。分布式應用程序可以基于 ZooKeeper 實現(xiàn)諸如數(shù)據(jù)發(fā)布/訂閱、負載均衡、命名服務、分布式協(xié)調(diào)/通知、集群管理、Master選舉、配置維護等功能。簡單來說ZooKeeper=文件系統(tǒng)+監(jiān)聽通知機制。在廣告系統(tǒng)中,大量的廣告投放機就是通過ZooKeeper進行管理,可以把所有機器的配置全部放到ZooKeeper上的某個目錄節(jié)點中,所有相關應用程序?qū)@個目錄節(jié)點進行監(jiān)聽。當需要增加一臺新的投放機時,配置信息發(fā)生了變化,應用程序就會收到 ZooKeeper 的通知,然后從 ZooKeeper 獲取新的配置信息應用到系統(tǒng)中。

?

3.核心算法

?

介紹完了上述的硬件架構(gòu)之后,接下來就要了解一下計算廣告背后的核心算法和技術。

?

CTR(點擊率)預估是所有廣告系統(tǒng)、推薦系統(tǒng)中非常重要的一個指標,可以反映出一個系統(tǒng)是否做的精準,是各個廣告系統(tǒng)的“必爭之地“。點擊率預估的目的是為了廣告排序,排序的依據(jù)是eCPM,即點擊率*點擊單價,然后再根據(jù)其他策略進行后續(xù)處理。

?

目前業(yè)界的點擊率預估方法,是利用系統(tǒng)中已有的大量用戶行為日志、根據(jù)規(guī)則抽取特征、離線訓練機器學習模型、將模型上線后對每一個請求計算其點擊廣告的概率值,值的范圍為4這里既然用到了模型,就不得不提其背后的兩個細節(jié)。

?

(1)特征:在實際的廣告系統(tǒng)中,其實有非常多的因素會決定廣告的點擊率,這些因素在模型中即稱為特征,主要分為三大類:

?

  • 廣告主側(cè)(Advertiser):比如廣告創(chuàng)意、廣告的表現(xiàn)形式、廣告主行業(yè)等。

  • 用戶側(cè)(User):如人群屬性、年齡、性別、地域、手機型號、WiFi環(huán)境、興趣等等。

  • 上下文側(cè)(Context):比如不同的廣告位、投放時間、流量分配機制、頻次控制策略等。

在有了用戶日志后,就需要根據(jù)上述三類特征進行特征工程。特征工程對于機器學習來說非常重要,可以使特征更好地在算法上發(fā)揮作用,一般包括特征選擇、特征提取、特征構(gòu)造。

?

1.1 特征選擇:在實際拿到的數(shù)據(jù)中一般都有非常多的特征,但并非每一個都能拿來訓練模型,可能有些特征有用,而另外一些特征就毫無作用,即冗余特征,特征選擇的作用就是從已有的特征全集中選擇出一部分的特征子集。

進行特征選擇有兩個重要的原因:

 

一、維數(shù)災難。若對所有特征不加篩選而一股腦全扔進模型,比如,用戶ID和設備ID交叉之后,特征的維度就會非常高,而其實這樣的組合特征完全可以只用一個特征來代替,進行特征選擇就會大大減少冗余特征,緩解維數(shù)災難問題。

二、去除冗余特征可以減輕模型的學習難度,直觀感受就是減少模型的訓練時間。常見的特征選擇方法主要有三種:過濾式、包裹式、嵌入式。

 

  • 過濾式:使用一些評價指標單獨地計算出單個特征跟類別變量之間的關系。如Pearson相關系數(shù),Gini-index(基尼指數(shù)),IG(信息增益)等。以Pearson系數(shù)為例,計算公式:

5

6描述的是兩個變量間線性相關強弱的程度,絕對值越大表明相關性越強。6的取值在-1與+1之間,若7,表明兩個變量是正相關,即一個變量的值越大,另一個變量的值也會越大;若8,表明兩個變量是負相關,即一個變量的值越大另一個變量的值反而會越小。

  • 包裹式:直接將模型要使用的性能(如AUC)作為特征子集的評價標準,只選擇模型性能表現(xiàn)最佳的特征,相對于過濾式來說,包裹式考慮了特征與特征之間的關聯(lián)性,最終的模型表現(xiàn)也更好。常用的有逐步回歸(Stepwise regression)、向前選擇(Forward selection)和向后選擇(Backward selection)。

  • 嵌入式:將特征選擇過程與模型訓練過程融為一體,即在訓練過程中自動地進行了特征選擇。例如,針對訓練樣本數(shù)量較少,而特征數(shù)量又比較多時,可以使用L1正則化,即在損失函數(shù)基礎上直接加上權(quán)重參數(shù)的絕對值:

9

在上式求解過程中,最初的特征全集中只有對應于非零權(quán)重的特征才會出現(xiàn)在最終模型中。這樣,L1正則化就起到了特征篩選的作用,其特征選擇過程與模型訓練過程融為一體,同時完成。

1.2 特征提?。?/span>將原始特征轉(zhuǎn)換為一組具有明顯物理意義(Gabor、幾何特征角點、不變量、紋理LBP HOG)或者統(tǒng)計意義或核的特征,比如通過變換特征取值來減少原始數(shù)據(jù)中某個特征的取值個數(shù)等。常用的方法有:

  • PCA: PCA的主要思想是將維特征映射到維上,這維是全新的正交特征也被稱為主成分,是在原有n維特征的基礎上重新構(gòu)造出來的維特征。其中,第一個新維度選擇原始數(shù)據(jù)中方差最大的方向,第二個新維度選取與第一維正交的平面中方差最大的,第三個新維度是與第1、2維正交的平面中方差最大的,依次類推,可以得到n個這樣的維度,最終,大部分方差都包含在前面k個維度中,而后面的維度所含的方差幾乎為。

  • ICA:PCA是將原始數(shù)據(jù)降維,并提取不相關的部分;而ICA是將原始數(shù)據(jù)降維并提取出相互獨立的屬性;尋找一個線性變換,使得線性變換的各個分量間的獨立性最大。ICA相比于PCA更能刻畫變量的隨機統(tǒng)計特性。

  • ?LDA:也叫做Fisher線性判別(Fisher Linear Discriminant ,FLD),是模式識別的經(jīng)典算法,基本思想是將高維的模式樣本投影到最佳判別空間,投影后保證模式樣本在新的子空間有最大的類間距離和最小的類內(nèi)距離,即模式在該空間中有最佳的可分離性。

?

1.3特征構(gòu)建:在經(jīng)過了特征選擇之后,確定了需要放入模型的特征后,接下來就要對特征進行處理,對特征進行轉(zhuǎn)換、加工、處理成模型能夠識別的格式。根據(jù)不同的數(shù)據(jù)類型,需要采取不同的處理方式:

?

  • 連續(xù)型:例如用戶年齡、反饋點擊率等。由于連續(xù)型數(shù)值的分布非常廣,各特征的取值范圍差別很大,如用戶的反饋點擊率一般為0到1之間,而用戶的年齡取值則遠遠大于1,所以,需要對連續(xù)特征進行特別處理,使特征值在同樣的量綱范圍內(nèi):

    Z-score標準化: 10?即求出樣本特征11的均值12標準差13,然后用來代替原特征。這樣新的特征值就變成了均值為0,方差為1。

    最大-最小標準化:?14求出樣本特征15的最大值16和最小值17,然后18用來代替原特征值。不過,這種方法有個問題,若預測集里的特征有小于19,或者大于20的數(shù)據(jù),會導致2122發(fā)生變化,需要重新計算。所以一般實際應用中,最大-最小標準化不如Z-score標準化魯棒。

    離散化:對于連續(xù)型特征,除了上述兩種標準化方法之外,還有一種常用的處理方式:離散化。和標準化不同的是,離散化可以加入人工經(jīng)驗,也可以是和業(yè)務緊密相關的規(guī)則,因此這種方法更容易被人類理解。

一般采用分桶或者分段的方式,即事先指定每個桶的取值范圍,然后將特征值劃分到桶中,最后用桶的編號作為新的特征值。對于桶的劃分又可以分為等頻(各個桶中的數(shù)量大致相同)、等寬(各個桶的上下界的差值相同)、人工指定。一般來說,等頻離散不會像等寬離散出現(xiàn)某些桶中數(shù)量極多或者極少。但是等頻離散為了保證每個區(qū)間的數(shù)據(jù)一致,很有可能將原本是相同的兩個數(shù)值卻被分進了不同的區(qū)間,會對最終模型效果產(chǎn)生一定影響。人工指定則需要根據(jù)過去的經(jīng)驗來進行劃分,例如對于反饋點擊率,發(fā)現(xiàn)過去的點擊率集中在1%和2%之間,因此,可以這樣劃分(python代碼):

?

23

  • 離散特征:例如廣告尺寸、廣告樣式、投放城市等等。對于離散特征一般采用One-hot(獨熱編碼)方式,即將所有樣本的離散特征放在一起,稱為特征空間,每個特征就轉(zhuǎn)換為一個特征空間大小的向量,其中該特征值對應下標的值為1,其余的都為0,從數(shù)學角度可以理解為將離散特征的取值擴展到了歐式空間,因為常用的距離或相似度的計算都是在歐式空間中進行,因此,One-hot對于離散特征來說是最合理的選擇。

  • 文本特征:例如廣告的標題、描述信息等等。對于文本型特征,可以用如下處理方法:

  • tf-idf:基于統(tǒng)計詞的出現(xiàn)頻次的方法,用以評估一個詞的重要程度,具體計算公式:

24

25

26

其中,?27反映的是該詞在當前文檔中的熱門程度,但是對于那些幾乎每篇文章都會出現(xiàn)的助詞來說,如“的”、“了”、“這”等等,就需要給它們降權(quán),從28的計算公式可以看出,包含該詞的文檔數(shù)越多,倒數(shù)就越小,從而就可以起到降權(quán)的作用。因此最終的乘積就可以認為是該詞在整篇文章的重要性。

  • Word2vec:在深度學習大熱之后,出現(xiàn)了Word2vec模型,可以將詞向量化,即轉(zhuǎn)化為低維度的連續(xù)值、稠密向量,從而使得意思相近的詞在向量空間中也處于相同的位置。Word2vec實際上是一個具有隱含層的神經(jīng)網(wǎng)絡,輸入是One-hot編碼的詞匯向量表,隱含層沒有激活函數(shù),也就是線性單元,輸出層使用Softmax回歸,但其實我們不關心輸出層的結(jié)果,只需要拿到隱藏層的輸出單元即是所需的向量。

Word2Vec其實訓練了一個語言模型,即通過前n 個字預測下一個字的概率,是一個多分類器,輸入一個one hot,然后連接一個全連接層、再連接若干個層,最后接一個Softmax分類器,就可以得到語言模型了,然后將大批量文本輸入訓練就行了,最后得到第一個全連接層的參數(shù),就是字、詞向量表。

Word2vec主要有兩個模型:

29

CBOW:主要用來從原始語句推測目標詞匯。CBOW用周圍詞預測中心詞,從而利用中心詞的預測結(jié)果情況。當訓練完成之后,每個詞都會作為中心詞。把周圍詞的詞向量進行了調(diào)整,這樣也就獲得了整個文本里面所有詞的詞向量。

Skip-gram:從目標詞匯推測原始語境。與CBOW相反的是,Skip-gram使用中心詞預測周圍詞,Skip-gram會利用周圍的詞的預測結(jié)果情況,不斷的調(diào)整中心詞的詞向量,最終所有的文本遍歷完畢之后,也就得到了文本所有詞的詞向量。對比而言,Skip-gram進行預測的次數(shù)多于CBOW的:因每個詞作為中心詞時,皆需使用周圍詞進行預測一回,訓練時間相對更長。

  • 動態(tài)特征:在計算廣告模型的特征中,除了有用戶年齡、地理位置、廣告尺寸等相對不變的靜態(tài)特征,還可以加入其他特征:如相同廣告尺寸的歷史點擊率、歷史到達率等,這類特征我們稱之為動態(tài)特征,因為這些特征的值隨著時間窗口的取值不同而不同。使用動態(tài)特征主要有兩個好處:1. 可以大大減少模型參數(shù)數(shù)目 2. 模型不必快速更新。

  • CoEC(Clickon Expected Click)特征:由于廣告在實際展示時,最終效果經(jīng)常會受到廣告位置的影響,例如一個展示在首頁頂端位置的廣告往往比另一個在內(nèi)容頁下端展示的廣告效果好的多,這其實是由于位置帶來的偏差,導致在位置上占據(jù)優(yōu)勢的廣告點擊率被嚴重高估。其他的影響因素還包括廣告位尺寸、廣告位類型、創(chuàng)意類型等,以上這些特征都稱為偏差因素。因此為了去除這些偏差等因素的影響,工業(yè)界的做法是:

    首先,訓練一個偏差模型,只用那些偏差因素訓練一個點擊率模型,稱為偏差模型。

    利用偏差模型,計算下式:

30

其中,31表示是否點擊(0或1),32為用戶端特征,33為上下文特征。這一式子其實是點擊與期望點擊的比值,因此稱為CoEc特征,該特征可以更準確的表征某部分流量上廣告投放的實際點擊率水平,比較適用于點擊反饋的動態(tài)特征。

(2)模型

經(jīng)過了上述特征工程處理之后,就需要將特征放入到具體的模型中。針對ctr預估問題,工業(yè)界也產(chǎn)生了很多的模型,由最初的邏輯回歸模型到目前非常熱門的深度學習模型,效果也隨之提升了很多。下面就來具體看下ctr預估模型的一路發(fā)展。

2.1LR(邏輯回歸)

LR是ctr預估模型的最基本的模型,也是工業(yè)界最喜愛使用的方案。LR 是廣義線性模型,與傳統(tǒng)線性模型相比,LR 使用了 Logit 變換將函數(shù)值映射到 0~1 區(qū)間,映射后的函數(shù)值就是 CTR 的預估值。

LR 利用了 Logistic 函數(shù),函數(shù)形式為:

34

優(yōu)點:由于LR 模型簡單,訓練時便于并行化,在預測時只需要對特征進行線性加權(quán),所以性能比較好,往往適合處理海量 id 類特征,模型的結(jié)果直觀易解釋。

缺點:LR 的缺點也很明顯,首先對連續(xù)特征的處理需要先進行離散化,如上文所說,對連續(xù)特征的分桶方式有很多種,各種方式都有差異。另外 LR 需要進行人工特征組合,這就需要開發(fā)者有非常豐富的領域經(jīng)驗,才能不走彎路。這樣的模型遷移起來比較困難,換一個領域又需要重新進行大量的特征工程。

2.2 FM(Factorization Machine)、FFM(Field-aware factorization machine)

在一般的線性模型中,各個特征獨立考慮的,沒有考慮到特征與特征之間的相互關系。但實際上,大量的特征之間是有關聯(lián)的。

?

一般的線性模型為:為了表述特征間的相關性,可以采用多項式模型。在多項式模型中,特征3536的組合用37表示。二階多項式模型如下:

38

其中39表示樣本的特征數(shù)量,這里的特征是離散化后的特征。與線性模型相比,F(xiàn)M的模型多了后面的特征組合的部分。

?

FM主要有如下特點:

1.可以在非常稀疏的數(shù)據(jù)中進行合理的參數(shù)估計

2.FM模型的時間復雜度是線性的

3.FM是一個通用模型,它可以用于任何特征為實值的情況

而FFM則是在FM的基礎上,考慮了特征交叉的field的特點,但是也導致它沒有辦法實現(xiàn)線性的時間復雜度,模型訓練要比FM慢一個量級,但是效果會比FM來得更好。在業(yè)界,目前已經(jīng)有公司線上利用FM去預測ctr。

?

2.3 LR + GBDT

?

在Facebook2014年的一篇論文中,提及到GBDT+LR的解決方案。即先使用GBDT對一些稠密的特征進行特征選擇,得到的葉子節(jié)點,再拼接離散化特征放進去LR進行訓練。在方案可以看成,利用GBDT替代人工實現(xiàn)連續(xù)值特征的離散化,而且同時在一定程度組合了特征,減少了人工的工作量。

40

從上圖可以看到,輸入x分別落到2顆樹的葉子節(jié)點上,每個葉子節(jié)點對應的編號就作為新的特征送入LR中,其中新的特征維度與樹的數(shù)目相同,在實際應用中,需要進行調(diào)參的有每棵樹的深度、樹的總數(shù)等。

?

另外,對于廣告來說,ID類特征在CTR預估中是非常重要的特征,直接將AD ID作為feature進行建樹不可行,可以考慮為每個AD ID建GBDT樹。具體做法,使用GBDT建兩類樹,非ID建一類樹,ID建一類樹。

1)非ID類樹:不以細粒度的ID建樹,此類樹作為base,即便曝光少的廣告、廣告主,仍可以得到有區(qū)分性的特征、特征組合。

2)ID類樹:以細粒度的ID建一類樹,用于發(fā)現(xiàn)那些曝光充分的ID有區(qū)分性的特征、特征組合。在實際應用中,效果略有提升,但是需要綜合考慮GBDT的性能問題。

?

2.4 Wide & Deep

?

Wide & Deep 模型是 Google在2016年發(fā)表的文章中提出的,并應用到了 Google Play 的應用推薦中。Wide & Deep模型的核心思想是結(jié)合線性模型的記憶能力(memorization)和 DNN 模型的泛化能力(generalization),在訓練過程中同時優(yōu)化 2 個模型的參數(shù),從而達到整體模型的預測能力最優(yōu)。

?

Wide & Deep模型中使用的特征包括兩大類: 一類是連續(xù)型特征,主要用于deep模型的訓練,包括連續(xù)值型的特征以及embedding類型的特征等;一類是離散型特征,主要用于Wide模型的訓練,包括稀疏類型的特征以及組合型的特征等。

模型結(jié)構(gòu):

41

模型特點:

記憶(memorization)通過特征叉乘對原始特征做非線性變換,輸入為高維度的稀疏向量。通過大量的特征叉乘產(chǎn)生特征相互作用的“記憶(Memorization)”,高效且可解釋。

泛化(generalization)只需要少量的特征工程,深度神經(jīng)網(wǎng)絡通過embedding的方法,使用低維稠密特征輸入,可以更好地泛化訓練樣本中未出現(xiàn)過的特征組合。

Memorization趨向于更加保守,推薦用戶之前有過行為的items。相比之下,generalization更加趨向于提高推薦系統(tǒng)的多樣性(diversity)。

?

2.5 DeepFM

?

DeepFM是由哈工大與華為諾亞方舟實驗室共同發(fā)表的論文中提出的,模型有效的結(jié)合了神經(jīng)網(wǎng)絡與因子分解機在特征學習中的優(yōu)點。DeepFM可以同時提取到低階組合特征與高階組合特征,并除了得到原始特征之外無需其他特征工程。

模型結(jié)構(gòu):42

?

比起Wide& Deep的LR部分,DeeFM采用FM作為Wide部分的輸出,F(xiàn)M部分如下圖:

43

Deep component 如下圖:

44

Deep Component是用來學習高階組合特征的。網(wǎng)絡里面黑色的線是全連接層,參數(shù)需要神經(jīng)網(wǎng)絡去學習。

?

由于ctr或推薦系統(tǒng)的數(shù)據(jù)One-hot之后特別稀疏,如果直接放入到DNN中,參數(shù)非常多,我們沒有這么多的數(shù)據(jù)去訓練這樣一個網(wǎng)絡。所以增加了一個Embedding層,用于降低緯度。

?

優(yōu)點:首先,F(xiàn)M提取低階組合特征,Deep提取高階組合特征。但是和Wide & Deep不同的是,DeepFM是端到端的訓練,不需要人工特征工程。

?

其次,共享feature embedding。FM和Deep共享輸入和feature embedding不但使得訓練更快,而且使得訓練更加準確。

?

相比之下,Wide & Deep的輸入vector非常大,里面包含了大量的人工設計的pairwise組合特征,因此增加了計算復雜度。

生態(tài)

?

說到整個程序化交易廣告的生態(tài)圈,除了以上介紹的SSP、DSP、Adx等,還有其他大大小小的角色在其中發(fā)揮著作用。在此,列舉幾個如下:

?

  • 廣告代理商:指由一些創(chuàng)作人員和經(jīng)營管理人員所組成的,能夠為廣告客戶制定廣告計劃、商業(yè)宣傳、制作廣告和提供其它促銷工具的一個獨立性機構(gòu),收入來源為服務費和合作的各大廣告平臺的返點。但最近幾年,隨著代理商之間的競爭激烈,加之返點模式也越來越被詬病,也導致了許多的代理商或轉(zhuǎn)型或退出這個行業(yè)。

  • 廣告網(wǎng)絡:在PC端介于想出售廣告資源的Web網(wǎng)站與想在PC端發(fā)布廣告的廣告主之間的平臺。擁有大量的媒體資源,一方面幫助媒體將廣告位資源整合打包出售,另一方面幫助廣告主定向目標人群。廣告主按照千次展示數(shù)或按點擊付費。

  • 數(shù)據(jù)交換平臺:是實現(xiàn)用戶標簽數(shù)據(jù)交換的平臺,服務項目包括為客戶提供統(tǒng)一CookieMapping技術解決方案,以及用戶標簽數(shù)據(jù)的私有交換,幫助企業(yè)客戶提高數(shù)據(jù)管理能力。

  • 第三方監(jiān)測公司:由于程序化廣告的交易模式是由多方參與其中,因此,為了保證數(shù)據(jù)的準確性、避免各方在結(jié)算時的數(shù)據(jù)差異,同時為廣告主有效評估在線廣告的接觸效果(包括接觸人數(shù)、頻次和目標受眾特征等)以及互聯(lián)網(wǎng)廣告的投入產(chǎn)出(ROI),需要引入第三方監(jiān)測公司。這些公司往往具有完整且成熟的產(chǎn)品或者解決方案,因此目前這些服務都是收費的。

?

目前國內(nèi)完整的生態(tài)圈如下圖:

?

45

關于趨勢,最近有國外的廣告科技前沿作者預測,媒體方削減推送給廣告交易平臺的流量并自主搭建與DSP的直接對接或許會成為趨勢,并預測,未來主流大型媒體通過程序化方式售賣的形態(tài)很可能是僅和二、三家廣告交易平臺對接,同時直接和十多家DSP對接,以獲得更好的利潤和控制權(quán)。此趨勢如發(fā)生,將進一步削弱開放式廣告交易平臺的作用并進一步減少優(yōu)質(zhì)庫存通過廣告交易平臺交易的機會。

?

對于獨立的移動廣告技術公司而言,出海的發(fā)展機會似乎大于固守本土的機會,2018年廣告技術公司上市的情況即是佐證。OTT和OOH以及音頻媒體庫存正在處于醞釀進入程序化模式的前夜,這或許是未來幾年的持續(xù)增長點。

?

參考文獻

 

  • 《計算廣告》 劉鵬 / 王超

  • 《機器學習》 周志華

  • https://clearcode.cc/blog/how-the-real-time-bidding-rtb-ad-exchange-works-infographic/

  • http://hadoop.apache.org/

  • http://spark.apache.org/

  • http://lucene.apache.org/

  • http://zookeeper.apache.org/

  • Practical Lessonsfrom Predicting Clicks on Ads at Facebook, 2014

  • DistributedRepresentations of Sentences and Documents, 2014

  • Word2vec Parameter LearningExplained, 2016

  • Wide & Deep Learningfor Recommender Systems, 2016

  • DeepFM: AFactorization-Machine based Neural Network for CTR Prediction, 2017

  • http://www.rtbchina.com/china-programmatic-ad-tech-landscape-2018-vq4.html

A

BOUT

關于作者

吳威駿:達觀推薦算法工程師,負責推薦算法的研究、應用。先后在SAP、力美、百度等公司從事數(shù)據(jù)挖掘和廣告系統(tǒng)的算法開發(fā),對機器學習算法、廣告系統(tǒng)有深入研究。