Factorization Machines & Online Optimization
Outline
- Online Optimization
- TG
- FOBOS
- RDA
- FTRL
- Factorization Machines
- Model
- Training
Outline Learning
- Online Learning 是工业界比较常用的机器学习算法,在很多场景下都能有很好的效果。
- Online Learning 能够根据线上反馈数据,实时快速地进行模型调整,使得模型及时反映线
上的变化,提高线上预测的准确率。 Batch Learning vs. Online Learning
Batch Learning 更新模型的周期较长,
Online Learning 能够实时更新模型。
Batch Learning 对硬件资源要求高,
Online Learning 对硬件资源要求低。
Batch Learning 假设样本服从 IID 分布,
Online Learning 对样本分布无要求。
最优化问题
- 通常最优化问题可以形式化地表示为:
- 其中, Z是观测样本集合(训练集),是第 j 个样本的特征向量, 是第j个样本的预测值。是特征向量到预测值的映射函数。是最优化求解的目标函数,即损失函数,通常表示为为各个样本损失函数的累加,即。W是特征权重,也就是需要求解的参数。
Batch/Stochastic Gradient Descent
模型稀疏性的好处
- 特征选择,易于解释
- 减少模型预测的时间复杂度,降低存储模型的空间占用
- 更加符合奥卡姆剃刀原理
如何在 Online Learning 中得到稀疏模型?
- 简单截断法
- 截断梯度法(TG)
- FOBOS算法
- RDA算法
- FTRL算法
简单截断法
- 以k为窗口,当t/k不为整数时采用标准的SGD进行迭代,当t/k为整数时,采用如下权重更新方式:
- 这种方法实现起来很简单 , 也容易理解。但实际中 ( 尤其在 OGD 里面 )W 的某个系数比较小可能是因为该维度训练不足引起的,简单进行截断会造成这部分特征的丢失。
梯度截断法(TG)
- TG 同样是以 k 为窗口,每 k 步进行一次截断。当 t/k 不为整数时 λ (t) = 0 ,当 t/k 为整数时 λ (t) = kλ 。从下面公式可以看出, λ 和 θ 决定了 W 的稀疏程度,这两个值越大,则稀疏性越强。尤其令 λ = θ 时 , 只需要通过调节一个参数就能控制稀疏性。
简单截断法和梯度截断法比较
FOBOS算法
在 FOBOS 算法中,权重的更新分为两步:
前一个步骤实际上是一个标准的梯度下降步骤,后一个步骤可以理解为对梯度下降的结果进行微调。
观察第二个步骤,发现对 W 的微调也分为两部分 :
(1) 前一部分保证微调发生在梯度下降结果的附近 ;
(2) 后一部分则用于处理正则化,产生稀疏性。
L1-FOBOS 算法
在L1的正则化下,有 。为简化,用向量 来表示 。用标量 来表示 。因此,可得,
由于求和公式的每一项都大于等于零,所以可以按每一维度单独求解,
RDA
在 RDA 中,权重的更新策略是
其中,线性项 包含之前所有梯度与 W 乘积的平均值,正则项 额外正则项,是一个非负且非递减序列, h(W) 是一个辅助的严格凸函数。
L1—RDA
- 在 L1-FOBOS 中,截断的判定条件是
通常,定义 为与 正相关的函数。因此, L1-FOBOS 的截断阈值是,随着 t 的增加,这个阈值会逐渐降低。而, L1-RDA 中的截断阈值是一个常数,不随着 t 的变化而变化。因此,可以认为 L1-RDA 比 L1-FOBOS 在截断判定上更加 aggressive ,也就是说,更容易产生稀疏性。 - 不同于 TG 和 L1-FOBOS 仅采用单次梯度对权重进行更新, L1-RDA 公式中包含了梯度的累加平均值,因此,可以避免某些维度由于训练不足导致被截断的问题,在精度和稀疏性上的表现更加均衡。
FTRL
Per-Coordinate Learning Rate
在 FTRL 中,每一个维度上的学习率是单独考虑的:如果特征 1 比特征 2 变化的快,那么特
征 1 上的学习率应该下降的更快。
其中, α 和 β 是需要人为指定的超参数。
Factorization Machines
在现实世界中,许多应用问题(如文本分析,推荐系统等)会产生高度稀疏的(特征)数据
,即特征向量中大多数的分量都为 0 。这里,我们以电影评分系统为例。
考虑电影评分系统中的数据,它的每一条记录都包含了用户 u∈U 在什么时候 t∈R 对哪部电
影 i∈I 打了多少分 r∈{1, 2, 3, 4, 5} 。
模型方程
- 线性回归
- 引入特征之间的关系( interaction )
- 引入辅助向量
特征交叉( Feature Cross )
线性模型无法学习到特征之间的相关性。例如,特征“ Country=USA” 与特征 “Day=26/11/15” ,
特征“ Country=China” 与特征 “Day=19/2/15” 这样的关联特征,对用户的点击有着正面的影响。
实际问题中,还存在“化妆品”特征与“女性”特征,“球类运动配件”特征与“男性”特征等等。