实用指南:广告推荐模型1:逻辑回归(Logistic Regression,LR)

目录

广告点击率预估的基石?就是一、LR模型的核心思想:为什么它

二、一个详细的例子:预测用户是否会点击游戏广告

三、LR在广告系统中的优缺点


一、LR模型的核心思想:为什么它是广告点击率预估的基石?

逻辑回归(Logistic Regression)本质上是一个广义线性模型,它克服的是二分类问题,尤其是输出为概率的问题。

:就是在广告推荐中,核心问题之一就“给这个用户在这个位置上展示这个广告,他/她点击的概率有多大?”应对该问题的绝佳起点。就是这是一个典型的二分类问题(点击/不点击)。LR正

它的工作流程可以分解为三步:

1.线性加权求和:将输入的特征(如用户年龄、广告类别等)乘以对应的权重(w),再加上一个偏置项(b),得到一个线性分数 z

  • z = w₁*x₁ + w₂*x₂ + ... + wₙ*xₙ + b

  • w 的大小代表了特征的重要性。w 越大,说明这个特征对是否点击的影响越大。

2.Sigmoid函数映射:将这个线性分数 z 通过一个Sigmoid函数,压缩到0和1之间,得到一个概率值。

  • p = Sigmoid(z) = 1 / (1 + e^{-z})

  • 这个 p 就是模型预测出的点击概率(pCTR)。

3.决策与学习:设定一个阈值(通常为0.5),如果 p > 0.5,则预测为“点击”,否则预测为“不点击”。模型通过梯度下降等算法,利用实际点击数据(标签)来不断调整权重 wb,使得预测概率 p 越来越接近真实情况。

二、一个详细的例子:预测用户是否会点击游戏广告

假设我们是某个短视频平台(比如TikTok),要决定是否给用户Alice在信息流中展示一条《王者荣耀》的游戏广告。

第一步:特征工程(Feature Engineering)—— LR模型成功的关键

最费功夫的一步。就是LR模型本身无法理解“男”、“游戏”这些类别数据,我们必须将其转化为数值特征(数字化)。这是最核心也

(1)用户特征(User Features)

  • 性别:男 -> 由于是类别特征,我们将其One-Hot编码

    • x_gender_male = 1

    • x_gender_female = 0

  • 年龄:23岁 -> 连续特征,可以直接使用,也可以进行分桶(binning)。

    • x_age = 23

  • 历史行为:过去一周点击过3次游戏广告 -> 统计特征,非常重要。

    • x_historical_game_clicks = 3

(2)广告特征(Ad Features)

  • 广告类别:游戏 -> 同样是类别特征,One-Hot编码。

    • x_category_game = 1

    • x_category_e-commerce = 0

    • x_category_education = 0

  • 广告主评级:知名公司(如腾讯) -> 可以转换为数值,比如评级分数4.8(满分5分)。

    • x_advertiser_score = 4.8

(3)上下文特征(Context Features)

  • 时间段:晚上8点 -> 可以视为连续特征,或者将其归类为“晚间高峰”并编码。

    • x_hour = 20

  • 设备:iOS -> One-Hot编码。

    • x_os_ios = 1

    • x_os_android = 0

最终,我们得到一个非常长的、稀疏的(大部分为0)特征向量来表示这次展示请求:
X = [x_gender_male=1, x_gender_female=0, x_age=23, x_historical_game_clicks=3, x_category_game=1, ..., x_os_ios=1, ...]

第二步:模型预测(Inference)

假设我们的LR模型已经训练好了,它学到了一些权重(w)。权重的大小代表了模型认为该特征对“点击”的贡献度

模型学到的权重可能如下:

  • w_gender_male = 0.1 (男性可能稍微更爱点游戏)

  • w_historical_game_clicks = 0.5 (历史点击游戏广告的行为非常重要!)

  • w_category_game = 0.3 (游戏类广告本身的点击概率较高)

  • w_advertiser_score = 0.4 (知名广告主更吸引人)

  • w_hour = 0.05 (晚上8点大家比较空闲)

  • ...

  • b (偏置项) = -2.1 (一个全局的基础偏置)

现在,我们将特征值(X)和权重(W)对应相乘并求和,计算线性分数 z
z = (1 * 0.1) + (23 * 0.01) + (3 * 0.5) + (1 * 0.3) + (4.8 * 0.4) + (20 * 0.05) + (1 * 0.1) + ... - 2.1

假设我们计算出 z = 1.6

然后将 z 代入Sigmoid函数:
p = 1 / (1 + e^{-1.6}) ≈ 1 / (1 + 0.2019) ≈ 0.832

结论:模型预测Alice点击这个《王者荣耀》广告的概率高达83.2%!平台会认为这是一个高质量的展示机会,很可能将此广告排在信息流的前列。

第三步:模型训练(Training)

如果这次展示的真实情况是:Alice确实点击了
那么真实标签 y = 1。模型预测值 p = 0.832,虽然预测正确,但还不完美(理想值是1.0)。

损失函数(Loss Function):使用对数损失(Log Loss)来计算预测值与真实值的差距。

  • Loss = - [y * log(p) + (1-y) * log(1-p)]

  • 代入计算:Loss = - [1 * log(0.832) + 0] ≈ 0.184 (这是一个较小的损失)

梯度下降(Gradient Descent):模型会根据这个损失值,反向传播误差,微调所有权重(w)和偏置(b

  • 对于那些贡献大的特征(比如因为x_historical_game_clicks=3x_category_game=1),模型会适当增加它们的权重 w_historical_game_clicksw_category_game,下次看到类似特征时预测概率会更接近1。

  • 同时,可能会轻微调整其他特征的权重。

通过在海量的“展示-点击/不点击”数据上反复进行这个过程,模型最终学习到各个特征权重的最佳值。

三、LR在广告平台中的优缺点

优点:

  1. 可解释性极强:你能清楚地知道哪个特征在多大程度上影响了预测结果(w的大小和正负)。这对于商业决策和调试模型至关重要。

  2. 计算效率高:模型方便,训练和预测速度非常快,适合需要高并发、低延迟响应的广告系统(每秒要处理百万次请求)。

  3. 概率输出:天然输出概率,该pCTR值可以直接用于后续的广告排序(如按 pCTR * bid 计算ECPM进行排序)。

  4. 鲁棒性:不容易过拟合,尤其在大规模稀疏数据集上表现稳定。

缺点:

  1. 无法自动特征交叉:这是它最核心的缺陷。它无法自动学习到“年轻男性晚上游戏广告的偏好”这种组合效应。必须依靠算法工程师手动构造 is_young_male_at_night_viewing_game 这样的组合特征,耗费大量人力且难以穷尽。

  2. 线性假设:它假设特征和最终结果之间存在线性关系,但现实世界很多关系是非线性的。

posted @ 2025-09-04 12:14  wzzkaifa  阅读(64)  评论(0)    收藏  举报