实用指南:广告推荐模型1:逻辑回归(Logistic Regression,LR)
目录
一、LR模型的核心思想:为什么它是广告点击率预估的基石?
逻辑回归(Logistic Regression)本质上是一个广义线性模型,它克服的是二分类问题,尤其是输出为概率的问题。
:就是在广告推荐中,核心问题之一就“给这个用户在这个位置上展示这个广告,他/她点击的概率有多大?”应对该问题的绝佳起点。就是这是一个典型的二分类问题(点击/不点击)。LR正
它的工作流程可以分解为三步:
1.线性加权求和:将输入的特征(如用户年龄、广告类别等)乘以对应的权重(w),再加上一个偏置项(b),得到一个线性分数 z。
z = w₁*x₁ + w₂*x₂ + ... + wₙ*xₙ + bw的大小代表了特征的重要性。w越大,说明这个特征对是否点击的影响越大。
2.Sigmoid函数映射:将这个线性分数 z 通过一个Sigmoid函数,压缩到0和1之间,得到一个概率值。
p = Sigmoid(z) = 1 / (1 + e^{-z})这个
p就是模型预测出的点击概率(pCTR)。
3.决策与学习:设定一个阈值(通常为0.5),如果 p > 0.5,则预测为“点击”,否则预测为“不点击”。模型通过梯度下降等算法,利用实际点击数据(标签)来不断调整权重 w 和 b,使得预测概率 p 越来越接近真实情况。
二、一个详细的例子:预测用户是否会点击游戏广告
假设我们是某个短视频平台(比如TikTok),要决定是否给用户Alice在信息流中展示一条《王者荣耀》的游戏广告。
第一步:特征工程(Feature Engineering)—— LR模型成功的关键
最费功夫的一步。就是LR模型本身无法理解“男”、“游戏”这些类别数据,我们必须将其转化为数值特征(数字化)。这是最核心也
(1)用户特征(User Features):
性别:男-> 由于是类别特征,我们将其One-Hot编码。x_gender_male = 1x_gender_female = 0
年龄:23岁-> 连续特征,可以直接使用,也可以进行分桶(binning)。x_age = 23
历史行为:过去一周点击过3次游戏广告-> 统计特征,非常重要。x_historical_game_clicks = 3
(2)广告特征(Ad Features):
广告类别:游戏-> 同样是类别特征,One-Hot编码。x_category_game = 1x_category_e-commerce = 0x_category_education = 0
广告主评级:知名公司(如腾讯)-> 可以转换为数值,比如评级分数4.8(满分5分)。x_advertiser_score = 4.8
(3)上下文特征(Context Features):
时间段:晚上8点-> 可以视为连续特征,或者将其归类为“晚间高峰”并编码。x_hour = 20
设备:iOS-> One-Hot编码。x_os_ios = 1x_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=3和x_category_game=1),模型会适当增加它们的权重w_historical_game_clicks和w_category_game,下次看到类似特征时预测概率会更接近1。同时,可能会轻微调整其他特征的权重。
通过在海量的“展示-点击/不点击”数据上反复进行这个过程,模型最终学习到各个特征权重的最佳值。
三、LR在广告平台中的优缺点
优点:
可解释性极强:你能清楚地知道哪个特征在多大程度上影响了预测结果(
w的大小和正负)。这对于商业决策和调试模型至关重要。计算效率高:模型方便,训练和预测速度非常快,适合需要高并发、低延迟响应的广告系统(每秒要处理百万次请求)。
概率输出:天然输出概率,该pCTR值可以直接用于后续的广告排序(如按
pCTR * bid计算ECPM进行排序)。鲁棒性:不容易过拟合,尤其在大规模稀疏数据集上表现稳定。
缺点:
无法自动特征交叉:这是它最核心的缺陷。它无法自动学习到“年轻男性在晚上对游戏广告的偏好”这种组合效应。必须依靠算法工程师手动构造
is_young_male_at_night_viewing_game这样的组合特征,耗费大量人力且难以穷尽。线性假设:它假设特征和最终结果之间存在线性关系,但现实世界很多关系是非线性的。

浙公网安备 33010602011771号