線上廣告讓廣告主競標並投放廣告,換取曝光、點擊與轉換。核心是預測「這則廣告會不會被這個使用者點擊」,用點擊機率排序後投放,把相關廣告推到使用者面前來提升收益。
📋 Requirements
- 商業目標:最大化收益。廣告僅放在使用者動態時報上,每次點擊產生相同收益。
- 資料集由使用者與廣告資料構建,標籤基於互動行為。
- 模型需持續在新互動資料上訓練——實驗顯示即使更新延遲 5 分鐘也可能損害效能。
- 假設沒有疲勞期;支援「隱藏此廣告」,暫不支援「封鎖此廣告主」。
🧠 Core Ideas
TIP
把問題定式為排序問題,並用逐點 LTR (pointwise Learning to Rank) 起步:以二元分類模型吃 ⟨user, ad⟩ 配對,預測是否會被點擊,再依點擊機率排出廣告清單。
系統以使用者為輸入,輸出依點擊機率排序的廣告排名清單。損失函數用交叉熵。標籤策略:廣告展示後 t 秒內被點擊記為正、未點擊記為負(t 為超參數)。
⚖️ Reference Design
特徵工程
- 廣告特徵:ID 類(廣告主/活動/廣告群組/廣告 ID,經 embedding layer 轉密集向量)、圖片/影片(預訓練模型如 SimCLR 轉特徵向量)、類別與子類別、曝光數與點擊數。
- 使用者特徵:人口統計(年齡、性別、城市、國家)、情境(裝置、時段)、互動相關(已點擊的廣告、歷史互動統計)。
- 挑戰:大量高基數分類特徵(廣告主 ID、使用者 ID 可達數百萬唯一值),特徵空間龐大且稀疏。
模型選擇
- LR:訓練快、易實作,但無法解非線性、無法捕捉特徵交互——常用來建基線。
- Feature crossing + LR:手動交叉特徵捕捉成對交互,但需人工與領域知識、加重稀疏性。
- GBDT / GBDT + LR:可解釋、可做特徵選擇與提取,但不利持續學習、無法用 embedding layer。
- DCN:deep + cross 兩平行網路,自動學 feature crosses(Google 2017 提出)。
- FM / DeepFM:FM 用 embedding 內積自動建模成對交互;DeepFM 再結合 DNN 捕捉高階交互。
- 實務做法:先用 LR 建基線,再實驗業界廣用的 DCN 與 DeepFM。
服務架構 (Serving)
- 資料準備 pipeline:批次計算靜態特徵(圖片、類別)存入 feature store;查詢時計算動態特徵(曝光/點擊數);並從新互動持續產生訓練資料。
- 持續學習 pipeline:在新資料上微調模型、評估,指標改善才部署。
- 預測 pipeline:因依賴動態特徵,採線上預測逐一處理;兩階段——候選生成(用廣告定向條件縮小廣告池)→ 排序模型(取靜態+動態特徵預測點擊機率排序)→ 重新排序(加啟發式規則,如移除相似廣告增加多樣性)。
🔑 Takeaways
- 定式為排序 → 逐點 LTR → 二元分類,是這類 ML 系統的標準起手式。
- 高基數、稀疏的分類特徵是主要難點;embedding layer 與 FM/DeepFM 類模型正是為此而生。
- 離線指標:交叉熵 (CE)、標準化交叉熵 (NCE,與背景 CTR 基線相比,<1 才勝過基線)。
- 線上指標:CTR、轉換率、收益提升、隱藏率(反映不相關廣告造成的偽陽性)。
- 持續學習是硬需求:模型需不斷吃新互動資料(見串流處理),但要留意災難性遺忘。
No notes yet — jot your takeaways or Q&A here.