从 L1/L2 到 Dropout:深度解析正则化,为何推荐系统“只能练一次”?

10 阅读1分钟

从 L1/L2 到 Dropout:深度解析正则化,为何推荐系统“只能练一次”?

前言:

在机器学习面试中,“正则化”是一个出现率极高的话题。很多人能背出“L1产生稀疏解,L2防止过拟合”,但如果面试官追问:“从微积分角度解释为什么L1能稀疏?”或者“在推荐系统中,过拟合了能通过增加 Epoch 解决吗?” 很多人就会卡壳。

今天,我们从几何直观到数学本质,再到工业界实战,彻底把“抗过拟合”这套组合拳讲清楚。

一、 为什么我们需要正则化?

在训练模型时,我们经常面临一个核心矛盾:我们希望模型在训练集上表现好(Loss低),但又怕它“记性太好”(过拟合)。

过拟合(Overfitting)的本质是模型学会了“死记硬背”。它记住了训练数据中的噪声和偶然特征,导致在面对从未见过的测试集时表现糟糕。

为了解决这个问题,我们在损失函数中引入了正则项(Penalty):

Target=Loss+λPenaltyTarget = Loss + \lambda \cdot Penalty

这里的 λ\lambda 是一个超参数,用来控制惩罚的力度。


二、 L1 vs L2:几何与数学的双重降维打击

这是正则化最经典的双子星:Lasso (L1)Ridge (L2)

1. 几何直观:圆与菱形的碰撞

我们在二维平面上观察(假设只有两个参数 w1,w2w_1, w_2):

  • L2 正则化 (w12+w22Cw_1^2 + w_2^2 \le C) :约束区域是一个
  • L1 正则化 (w1+w2C|w_1| + |w_2| \le C) :约束区域是一个菱形(旋转45度的正方形)。

模型训练的过程,就是损失函数的等高线(绿圈)不断膨胀,去接触约束区域(黄色图形)的过程。

  • L2的圆通常在圆弧边缘被切到,接触点很少落在坐标轴上,所以参数 ww 只是变小,但不会为 0。
  • L1的菱形有尖锐的角(Corner) ,且这些角都在坐标轴上。等高线极大概率会先碰到这些尖角,直接导致某个 ww 变为 0。

2. 数学本质:恒定力 vs 衰减力

如果面试官让你写出梯度下降的更新公式,这才是拉开差距的地方。

  • L2 的权重衰减 (Weight Decay):

    在梯度下降中,L2 的更新公式隐含了一个系数:

    θnew=θold(1αλn)αGradient\theta_{new} = \theta_{old}(1 - \alpha\frac{\lambda}{n}) - \alpha \cdot \text{Gradient}

    这里的 (1αλn)(1 - \alpha\frac{\lambda}{n}) 通常是一个像 0.990.99 这样的数。这意味着:每次更新前,L2 都会按比例“缩小”旧权重。这种力是线性的,越接近 0,拉力越小,所以很难减到 0。

  • L1 的恒定推力:

    L1 的导数包含符号函数 sgn(w)\text{sgn}(w)

    θnew=θoldαλsgn(w)nαGradient\theta_{new} = \theta_{old} - \frac{\alpha\lambda \text{sgn}(w)}{n} - \alpha \cdot \text{Gradient}

    这意味着:无论 ww 是大是小,L1 都施加一个恒定的力把它推向 0。如果推过了头,符号函数反向,瞬间锁死在 0。这就是 L1 具备特征选择能力的数学原理。

特性L1 正则化L2 正则化
解的性质稀疏解 (Sparse)稠密解 (Dense)
核心作用特征选择,去除无用噪声权重平滑,防止过拟合
适用场景高维稀疏特征 (如NLP)通用场景,保持模型鲁棒性

三、 深度学习时代的“核武器”:Dropout

到了神经网络时代,模型参数动辄上亿,我们需要更暴力的手段——Dropout

什么是 Dropout?

简单说,就是在训练过程中,按照一定概率(比如 50%)随机“删号” ,让神经元暂时停止工作(输出置为 0)。

为什么它有效?

  1. 拒绝“抱大腿”: 模型不能依赖某个特定的强力神经元,因为该神经元随时可能下线。这强迫所有神经元都学会独立提取特征,增强了鲁棒性。
  2. 低配版集成学习: 每次 Dropout 后的网络结构都不同。训练一个 Dropout 网络,相当于训练了 2n2^n 个子网络,最后预测时取平均,这天然就是一种 Ensemble Learning。

四、 工业界实战:推荐系统中的“One-Epoch”悖论

这是书本上学不到的实战经验。

问题: 如果你的推荐模型(如 DeepFM)出现了欠拟合,能否像 CV/NLP 那样,通过增加训练轮数(Epochs)来解决?

答案:绝对不行。推荐算法的数据通常只能训练一次(One-Epoch)。

深度剖析

推荐系统主要依赖 ID 类特征(User ID, Item ID)。这些特征是极度稀疏的。

  1. 过拟合风险极高: ID 特征太具体了。如果同一个 User ID 对应的样本被模型看了两遍,模型会迅速“死记硬背”住这个用户的历史行为,而不是学习他的兴趣偏好。这会导致严重的过拟合。
  2. 数据分布漂移 (Distribution Shift): 用户的兴趣是流动的。昨天的数据和今天的数据分布可能完全不同。推荐系统追求的是 Online Learning,数据像流水一样过一遍即可,模型要永远追逐最新的数据分布,而不是在旧数据上反复纠缠。

正确的改进方向:

正如资料中所述,如果你在推荐系统中遇到性能瓶颈,不要加 Epoch,而应该:

  • 添加新特征: 给模型更多信息量。
  • 增加网络复杂度: 提升模型的容量。
  • 调参: 减小正则化系数 λ\lambda

五、 总结

  • L1 是屠龙刀,砍掉无用特征,留下稀疏骨架。
  • L2 是紧箍咒,限制权重膨胀,保持模型稳重。
  • Dropout 是分身术,通过随机失活实现集成效果。
  • 推荐系统是特种兵,面对稀疏 ID 特征,切记 One-Epoch 原则,不要贪杯。

掌握了这些,你不仅能应对面试中的连环追问,更能理解工业界模型设计的底层逻辑。