【讀書筆記】計算廣告(第3部分)

作者:LogM

本文原載於 https://segmentfault.com/u/logm/articles,不允許轉載~

文章中的數學公式若無法正確顯示,請參見:正確顯示數學公式的小技巧

本文是 計算廣告(第二版) 的讀書筆記。

該部分介紹在線廣告的關鍵技術,面向技術人員。

第9章 計算廣告技術概覽

9.1 個性化系統框架

  • 日誌 -> 數據高速公路 -> 流計算 -> 在線特徵 -> 投放引擎;
  • 日誌 -> 數據高速公路 -> 分佈式計算 -> 離線特徵 -> 投放引擎。

9.2 各類廣告系統優化目標

  • GD:滿足合約要求;
  • ADN:CPC,預估點擊率;
  • ADX:CPM;
  • DSP:預估點擊率+點擊價值。

9.3 計算廣告系統架構

  • 廣告投放引擎:

    • 廣告投放機(ad server):召回+排序+收益管理,要求QPS和延遲;
    • 檢索(ad retrieval):根據用戶標籤和頁面標籤,召回候選集;
    • 排序(ad ranking):計算eCPM,估計點擊率+點擊價值,排序;
    • 收益管理(yield management):目標全局收益最優;
    • 廣告請求接口:web請求或者SDK;
    • 定製化用戶劃分:廣告主對用戶的劃分數據。
  • 數據高速公路(data highway)
  • 離線數據處理:

    • 用戶會話日誌生成:以用戶ID進行統一整理;
    • 行爲定向:挖掘用戶日誌,打標籤;
    • 上下文定向:給上下文頁面打標籤;
    • 點擊率建模:爲CTR模型加工特徵;
    • 分配規劃:以全局收益最優爲目標,從日誌中挖掘合適的分配方案;
    • 商業智能系統:爲決策者提供數據(BI);
    • 廣告管理系統:廣告主工具(AE),管理投放方案。
  • 在線數據處理:

    • 在線反作弊:去除作弊流量;
    • 計費;
    • 在線行爲反饋:實時受衆定向、實時點擊反饋;
    • 實時索引:實時接收廣告數據,更新索引。

9.4 計算廣告系統主要技術

  • 算法優化:

    • 受衆定向;
    • eCPM預估,點擊率預測;
    • 在線分配(合約中的流量要求);
    • 定價策略:博弈中收益最大化;
    • 探索與利用(Explore and Exploit,E&E):更全面地採樣;
    • 個性化推薦。
  • 架構優化:

    • 實時索引;
    • NoSQL數據庫;
    • 分佈式計算+流計算;
    • 高併發、低延遲競價接口。

9.5 開源工具

  • Nginx:web服務器;
  • ZooKeeper:分佈式集羣管理;
  • Lucene:索引+檢索;
  • Thrift:跨語言通信,用於封裝各模塊的接口;
  • Flume:數據高速公路;
  • Hadoop:分佈式數據處理;
  • Redis:特徵在線緩存,屬於NoSQL數據庫;
  • Storm:流計算;
  • Spark:滿足各種計算方式,包括迭代計算、批處理計算、流式計算、圖計算、SQL關係查詢等。

第10章 基礎知識準備

10.1 信息檢索

  • 倒排索引:

    • 基本操作:向索引添加文檔;給定query,返回對應集合
  • 向量空間模型(vector space model,VSM):

    • TF-IDF構建向量,cos求距離

10.2 最優化方法

  • 拉格朗日法:帶約束的優化

    • 當原問題是凸優化問題,則滿足強對偶,即對偶問題的最優解是原問題最優解的下界;
    • 強對偶下,滿足KKT條件的點,即爲原問題解。
  • 下降單純形法:

    • 不可求導情況下,函數如果是連續的,可用該方法;
    • 有點像高維空間的二分法;
    • 又稱阿米巴變形蟲法。
  • 梯度下降法;
  • 擬牛頓法。

10.3 統計機器學習

  • 最大熵與指數族分佈:

    • 求最大熵的解等價於求對應指數分佈的最大似然解;
    • 指數族分佈是單模態的,不適合表達多因素並存的隨機量。
  • 混合模型和EM算法:

    • 解決指數族分佈單模態的問題;
    • 多個指數族分佈疊加爲混合模型。
  • 貝葉斯學習;
  • 深度學習:CNN、RNN、GAN。

第11章 合約廣告核心技術

11.1 廣告排期系統

  • CPT,非個性;
  • 防天窗廣告:廣告加載錯誤時的默認廣告。

11.2 擔保式投送系統

  • 流量預測:用歷史數據擬合未來的流量;
  • 頻次控制:一個用戶看到同個廣告次數越多,點擊率越低;實現方式是把頻次記錄到數據庫。

11.3 在線分配

  • 抽象爲二部圖匹配問題,引入廣告流量在各個週期內近似一致的假設,求解該問題。

第12章 受衆定向核心技術

12.1 受衆定向技術分類

  • 用戶標籤t(u):人口屬性定向、行爲定向;
  • 上下文標籤t(c):地域定向、頻道定向、上下文定向;
  • 定製化標籤t(a,u):特定廣告主對特定用戶的標籤,重定向、新客推薦。

12.2 上下文定向

  • 半在線抓取系統:上下文定向需要抓取上下文內容,但實時抓取延遲太大,全網爬蟲則成本太高;一般的解決方法是,當有某個頁面上下文標籤的請求時,進行抓取並放入緩存,該次廣告展示來不及使用該標籤就忽略,但以後相同頁面的上下文請求就可以在緩存中獲取。

12.3 文本主題挖掘

  • 主題模型(topic model)
  • LSA(latent semantic analysis,潛在語義分析),無監督方式,對 TF-IDF 矩陣做 SVD 分解,類似 PCA。
  • PLSI(probabilistic latent semantic indexing,概率潛在語義索引):假設有k個主題($z_1,z_2,..,z_k$),用k個多項式分佈的混合模型進行建模 $p(w_n|z,\beta)$,$\beta$ 是參數,共有k組,$w_n$ 是文檔中的每個詞;使用EM求解該混合模型。
  • LDA(latent dirichlet allocation,潛在狄利克雷分配):在 PLSI 的基礎上,引入貝葉斯,對數據不足時做平滑。
  • word2vec。

12.4 行爲定向

  • 建模:使用泊松分佈對某個用戶在某類定向廣告上的點擊次數建模;用線性模型聯繫泊松分佈的參數 $\lambda$ 和用戶行爲;整個模型相當於泊松分佈的廣義線性模型。
  • 特徵:用戶行爲映射到事先確定的標籤體系中,並用單位時間累積強度表示;使用滑動平均求時間窗口內的平均值;另外需要考慮:

    • 訓練集長度:爲了消除工作日帶來的週期性,一般訓練集天數選爲7的倍數;
    • 時間窗口大小:希望系統反應更即時,則使用窄的時間窗口。
  • 決策:整個模型是線性的,今天的得分可以由前幾天的得分滑動平均得到。
  • 評測:reach-ctr 曲線。

12.5 人口屬性預測

  • 機器學習中的多分類問題:性別、年齡、教育程度、收入水平。

12.6 數據管理平臺

第13章 競價廣告核心技術

13.1 競價廣告計價算法

  • GSP:廣義第二高價;
  • MRP:市場保留價(最終價格不能低於此價格);
  • 價格擠壓因子:控制最終的排序中點擊率和出價哪個影響大。

13.2 搜索廣告系統

  • 查詢拓展:

    • 基於推薦的方法:協同過濾;
    • 基於主題模型的方法:主題模型;
    • 基於歷史效果的方法:效果明顯。
  • 廣告放置:在一段時間內北區整體廣告條數約束的前提下,提高廣告的整體營收。

13.3 廣告網絡

  • 短時行爲反饋與流計算:

    • 實時反作弊;
    • 實時計費:預算用完的廣告及時下線;
    • 短時用戶標籤;
    • 短時動態特徵:CTR預測中的動態特徵。

13.4 廣告檢索

  • 布爾表達式的檢索;
  • 相關性檢索:WAND算法,TF-IDF算相關性+小頂堆快速檢索;
  • 基於DNN的語義建模:DSSM、Youtube個性化推薦模型;
  • 近似最近鄰語義檢索(ANN):

    • 哈希算法:局部敏感哈希(LSH);
    • 向量量化算法:層次K均值樹(HKM tree);
    • 基於圖的算法:NSW。

第14章 點擊率預測模型

  • 點擊率預測建模爲"迴歸問題"而不是"排序問題",因爲點擊率要用於預估eCPM以便出價。

14.1 點擊率預測

  • 基本模型:邏輯迴歸;
  • 優化算法:L-BFGS、置信域法;
  • 校正:正負樣本不平衡問題;
  • 特徵:

    • 特徵的非線性化:分桶、平方、log、根號;
    • 特徵組合;
    • 動態特徵:某個特徵組合的歷史點擊率;
    • 偏差與CoEC(click on expected click):

      • 原因:比如廣告位帶來的點擊率偏差,頂部廣告位和底部廣告位的點擊率差異很大;
      • 解決:對不同的廣告位預估"期望點擊率"(EC),CoEC=某廣告點擊率/廣告位期望點擊率。
      • 常見的偏差:廣告位位置、廣告位尺寸、廣告投放延遲、日期和時間、瀏覽器。
    • 平滑:特徵缺失問題、該特徵樣本不足時的統計平滑問題;
    • 評測:ROC;
    • 智能頻次控制:將EC計數或者頻次計數作爲特徵加入到模型,抑制高頻次廣告的投放。

14.2 其他點擊率模型

  • 因子分解機(factorization machine,FM);
  • GBDT;
  • 深度學習點擊率模型。

14.3 探索與利用

  • 當投放的總是最優的廣告的時候,一些長尾廣告的特徵的採樣就會不準確。
  • 強化學習:分出一部分流量用於強化學習的探索和利用(E&E),多臂老虎機問題(multi-arm bandit,MAB);

    • UCB方法(upper confidence bound,置信上界):在每次投放時不簡單選擇經驗上最優的廣告,而是考慮經驗估計的不確定性,選擇估計值上界最大的廣告;
    • 考慮上下文的bandit:LinUCB。

第15章 程序化交易核心技術

15.1 廣告交易平臺

  • cookie映射;
  • 詢價優化:每次詢價只對可能贏的DSP發起,減輕服務器壓力;但要避免某些DSP完全獲取不到流量的問題。

15.2 需求方平臺

  • 定製化用戶標籤;
  • 點擊率預估:增加CoPC(click on predicted click),真實點擊與預估點擊的比,對點擊率高估和低估的進行修正;
  • 點擊價值估計:CPS/CPA/ROI結算時使用,點擊價值 = 到達率 * 轉化率 * 轉化單價;
  • 出價策略:考慮預算約束。

15.3 供給方平臺

  • 網絡優化:動態決定將廣告請求發給哪個廣告網絡。

第16章 其他廣告相關技術

16.1 創意優化

  • 程序化創意:地域性創意(如把用戶所在地區的聯繫電話放到廣告中)、搜索重定向創意(如把用戶歷史搜索詞放到廣告的搜索框中)、個性化重定向創意(如淘寶的重定向廣告都是實時生成的);
  • 點擊熱力圖:統計一個創意的哪個區域最容易被用戶點擊;
  • 發展趨勢:視頻化、交互化,承載更多信息。

16.2 實驗框架

  • 以用戶來分桶,而不是隨機分桶(因爲多次廣告展示之間有相關性)。

16.3 廣告監測與歸因

  • 廣告監測:委託第三家覈對實際的展示數和點擊數;
  • 廣告安全:某些廣告放到特定媒體(如低俗媒體)上會有負面效果;媒體會僞裝自己的流量以次充好;要確認瀏覽器確實發生了渲染過程(即廣告確實對用戶可見);
  • 效果歸因:CPA/CPS/ROI結算的廣告,需要確認轉化數據的正確性,並確定該轉化用戶是從哪個媒體進入的。

16.4 作弊與反作弊

  • 作弊方法分類:

    • 作弊主體:

      • 媒體作弊:媒體自己構造虛假的點擊行爲;
      • 廣告平臺作弊:ADN或ADX構造虛假的點擊行爲;DSP構造虛假的點擊、展示、轉化行爲;
      • 廣告主競爭對手作弊:消耗廣告主預算;
    • 作弊原理:

      • 虛假流量作弊(non-human traffic,NHT):構造虛假的展示、點擊、轉化行爲;
      • 歸因作弊:將別人帶來的轉化行爲歸因到自己名下;
    • 作弊手段:機器作弊、人工作弊。
  • 常見作弊方法:

    • 服務器刷監測代碼:用爬蟲訪問網頁讓廣告主誤以爲曝光量很大;
    • 客戶端刷監測代碼:用戶訪問網頁時,網頁腳本讓用戶自動在後臺多訪問幾次,讓廣告主誤以爲曝光量很大;
    • 頻繁換用戶身份:與上面兩種方式結合使用;
    • 黑客:黑客控制被感染設備在後臺訪問網頁;
    • 流量劫持;
    • cookie填充:比如用戶在淘寶購物時,跳轉地址被修改,讓淘寶誤以爲用戶是第三方通過第三方網站點擊廣告過來的;
    • IP遮蓋:發現反作弊者時,隱藏自己;
    • 點擊濫用與點擊注入。

16.5 產品技術選型實戰

發佈了52 篇原創文章 · 獲贊 19 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章