Page 196 - 《软件学报》2021年第12期
P. 196
3860 Journal of Software 软件学报 Vol.32, No.12, December 2021
其中,μ 2 为权重系数.由公式(12)和公式(13)可得到时刻 z 的下降梯度:
μ m
δ = 3 z (14)
z
V z
其中,μ 3 为梯度下降的权重系数.最后,根据下降梯度更新 z+1 时刻的学生模型参数ω z+1 :
ω z+1 =ω z −δ z (15)
由于基于动量的 Adam 算法会直接影响联邦学习的收敛效果,本文在学生模型训练过程前半段采用 Adam
优化,后半段采用 SGD 优化,同时解决训练过程中相关性导致的模型收敛困难和收敛速度慢的问题.其中,优化
算法的切换条件及切换后 SGD 的学习率为该分段策略的两个关键点.
(1) 算法切换条件.
联邦学习中,利用自适应学习率的方法(如 Adam)存在切换时间选择困难的问题:如切换过快,则无法提升
收敛速度;切换过慢,则可能陷入局部最优解,影响收敛效果.受 Wang 等人提出的从 Adam 切换到 SGD 的条件 [38]
的启发,当满足迭代轮数大于 1 且修正后的学习率与原始的学习率的绝对值小于指定阈值ξ时进行切换,即:
|η − η SGD | ξ < (16)
z z
其中,η z 为每个迭代都计算的修正后的 SGD 学习率,与原始的学习率η SGD 之差的绝对值小于阈值,则认为已经
z
满足切换条件,则切换为 SGD 并以调整后的学习率继续训练.接下来介绍如何确定 SGD 切换后的学习率.
(2) 切换算法后,SGD 的学习率.
SGD 阶段需确定的学习率包括初始学习率及修正后的学习率.Wang 等人提出将 SGD 下降的方向分解为
Adam 下降的方向和其正交方向上的两个方向之和 [38] ,本文方法与前者的区别在于对正交分解后的方向进行修
正.由于 Adam 计算学习率使用的是二阶动量的累积,要想计算出 SGD 阶段学习率大小,需要对 SGD 的下降方
向进行分解.本文将 SGD下降的方向分解为 Adam下降的方向和其正交方向上的两个方向分别乘以 0.5(cos60°)
再求和,其余部分与 Wang 等人的方法一致 [38] .假设模型优化已由 Adam 切换为 SGD 阶段,首先要沿着模型预测
k
方向(p )走一步,而后沿着其正交方向走完相应步数.在当前时刻 z,正交分解后的 SGD 在 Adam 下降方向上的
正交投影为 proj SGD ,等价于 Adam 的下降方向η Adam ,即:
z η z
proj SGD = η Adam (17)
z η z
求解该方程,得到 SGD 阶段的初始学习率η SGD :
z
(η Adam T Adam
) η
η SGD = z z (18)
z (η Adam T
) R
z z
为了减少扰动,使用移动平均值来修正对学习率的估计,修正后的学习率如下:
η SGD
η = z (19)
z
1 σ−
其中,σ为 SGD 权重系数.
3 实验及分析
3.1 数据集及实验设置
我们在 Movielens [42] 数据集和同花顺 Level2 数据集上验证 AFD 及策略的有效性.Movielens 数据集包含
2 000 个用户及用户特征、3 300 部电影以及电影的标签属性信息.实验中,选取电影评价数大于 15 的电影和评
价电影数量大于等于 10 的用户作为训练样本 [43] .本文还在同花顺真实场景金融数据集中进行验证,数据集主要
包含用户对 Level2 产品的购买情况统计,特征包括了用户 ID、用户历史购买信息、设备信息、用户对该产品
的评价、用户自身属性特征、产品特征等.其中,离散特征 18 项,连续特征 22 项.实验中对特征进行预处理,包括
缺失特征补全、去掉用户编码和标签字段缺失的用户、去掉用户非空特征数量小于 3 的数据等.预处理完成后,
训练集共有 32 万用户及 40 项特征,共 78 万条样本数据;测试集共有 12 万用户,40 项特征共 25 万条样本数据.