Page 195 - 《软件学报》2021年第12期
P. 195

谌明  等:一种基于注意力联邦蒸馏的推荐方法                                                           3859


         值;而当一个用户有多个非零特征时,重点特征的权重值反而难以取得较高的得分.本文方法将得到的搜索矩阵
         Q 做矩阵变换,首先将权重系数矩阵由[b,1,r]转为[b×r,1],再利用矩阵乘法将结果与[1,m]相乘得到[b×r,m],再将
         权重系数矩阵转为[b,m,r].其中,m 为新增加的 Attention 的维度.对于每个特征,有 m 个等长于 r 的 Attention 值,
         变换后矩阵的大小由[b,1,r]变为[b,m,r],从而增加 Attention 的维度 m,促使不同的 Attention 关注不同的部分,减
         少了因召回商品数量不同造成的影响.通过求均值,将[b,m,r]变为[b,1,r],得到 Attention 值 a i ,再根据权重系数对
         V i 进行加权求和,得到搜索矩阵 Q 的 Attention 值.具体如下:
                                         Attention (,Q K  , )V = ∑ r  aV                      (9)
                                                   i  i   i= 1 i i
             虽然特征 Attention 编码能够丰富编码信息,提升模型精度,但由于增加了特征维度,可能会降低模型的训练
         速度.最后,本文提出一种分段自适应学习率训练策略,通过切换不同的优化器来加快模型收敛速度.
         2.5   分段自适应学习率策略
             目前,已有文献实证发现:在联邦学习及分布式训练中,Adam 等基于动量的优化方法会直接影响到联邦学
         习的效果.尤其在非独立同分布(non-IID)数据下,本地设备模型的更新方向可能与全局模型差别较大,从而造成
         全局模型效果下降       [33,34] .同时,推荐系统是一个复杂的非线性结构,属于非凸问题,存在很多局部最优点                     [35] .
             Bottou等人指出:SGD虽然可以加快训练速度,但因为 SGD更新比较频繁,会造成严重的震荡陷入局部最优
         解 [36,37] .联邦学习需要在典型的异构数据的情况下,通过全局数据优化每台设备上的模型,因此需要一种快速、
         能适应稀疏和异构分布数据的优化策略.Gao 等人提出了多种自适应方法来缩放梯度,解决了在数据稀疏的情
         况下存在性能差的问题,但仅仅通过平均梯度平方值的方法无法提升收敛速度                            [38,39] .Shazeer 等人提出了一种分
         段调整学习率方法,采用分段训练的方式,在不损失精度的情况下提升了训练速度,但需要根据经验来选择切换
         的时机和切换后的学习率          [40,41] .
             针对以上问题,本文基于 Wang 等人的工作            [38] ,提出了一种分段自适应学习率优化方法,该方法的主要创新
         点为:1)  优化梯度下降过程,改进动量的计算方法,解决正相关性带来的收敛困难问题;2)  让算法在训练过程中
         自动由 Adam 无缝转换到 SGD 的混合优化策略,从而保留两种优化算法的各自优势,大幅缩短联合损失函数的
         收敛时间,并且保证了模型的准确性.
             本地设备学生模型的目标函数为最小化联合损失(见公式(3)),即 minGL,ω为学生模型参数(如神经网络模
         型中的 Weights,Bias 等),则在时刻 z 目标函数关于模型参数的梯度 R z 为
                                                 R z =∇GL                                    (10)
             在基于动量的优化算法中,动量表示参数在参数空间移动的方向和速率.目标函数关于参数的梯度二阶动
                                                                                            2
         量等价于当前所有梯度值的平方和.目标函数关于模型参数的一阶动量 m z 和二阶动量 V z 分别为 R z 和 R 的指
                                                                                            z
         数移动平均.二阶动量 V z 通过除以 V 实现对 R z 尺度的缩放控制,反映了梯度下降的速率.但在 Adam 算法中,
                                       z
         动量的计算本质上为动量 V z 与梯度 R z 的正相关性计算,会导致大梯度的影响减弱,小梯度的影响增强,最终会让
         收敛变得困难.本文假设过去时刻的参数梯度相互独立,因此可以利用过去 q 时刻的参数梯度 R z−q 计算 V z ,而无
         需引入相关性计算.具体地,该策略从最近的 q 时刻的参数梯度中选择一个最优值,即:
                                       φ (R z q−  2  ) =  max{R 2 z q−  ,R 2 z q−  +  1 ,...,R 2 z  }  (11)
             为解决上面讨论的正相关性计算带来的收敛困难问题,本文提出了优化后的二阶动量计算方法:
                                         V =  μ  V  (1 μ  −  ) (Rφ +  2  )                   (12)
                                           z  1 zq−    1   z q−
         其中,μ 1 为权重参数.公式(12)使用最近 q 时刻的最优梯度代替当前梯度,避免了计算二阶动量所需的相关性计
         算.同样地,一阶动量的计算也可去相关性,即:在计算一阶动量时,也利用最近 q 时刻的参数梯度来更新 m z .具体
         如下:
                                                 ∑ z   μ 2 R i
                                                    =−
                                             m =   iz q                                      (13)
                                                  ∑ iz q  μ 2
                                                    z
                                               z
                                                     =−
   190   191   192   193   194   195   196   197   198   199   200