Page 275 - 《软件学报》2026年第6期
P. 275

2594                                                       软件学报  2026  年第  37  卷第  6  期


                    为进一步保障用户隐私, 本文在子模型优化的基础上引入梯度扰动策略. 该策略通过在客户端上传的梯度中
                 加入拉普拉斯噪声, 以满足差分隐私需求, 防止中心服务器通过梯度信息推测用户的真实偏好. 梯度扰动步骤如下.
                                                                                      g item  进行裁剪, 将其限制
                    (1) 梯度裁剪与扰动: 为了防止单个用户梯度对全局模型产生过大影响, 首先对梯度
                 在预设阈值    C  内, 然后添加拉普拉斯噪声以满足差分隐私要求, 得到扰动后的梯度                   ˜ g item :

                                                          (      )     (  )
                                                              C         ∆f
                                              ˜ g item = g item ×min 1,  + Lap                       (10)
                                                             ||g item ||  ϵ 2
                 其中,  ||g item || 为梯度的  L 2  -范数,  C  为裁剪阈值,  ∆f  为梯度的敏感度,  ϵ 2  为隐私预算参数. 该公式将梯度裁剪与拉普
                 拉斯噪声添加整合, 确保上传的梯度信息在隐私保护范围内.
                    (2) 梯度上传: 客户端将扰动后的梯度          ˜ g item  上传至中心服务器, 服务器在聚合过程中仅接收到已扰动的梯度信
                 息, 实现了有效的隐私保护.
                    子模型优化与梯度扰动策略的结合, 使得算法在通信效率和隐私保护之间实现了有效的平衡. 通过子模型的
                 选择与下发, 客户端仅处理与自身交互数据相关的特征部分, 极大地减少了数据传输量, 也显著降低了本地训练过
                 程中实际参与计算的参数维度, 从而减少了总体计算开销; 梯度扰动策略则在数据传输过程中对裁剪后的子梯度
                 加入噪声, 以增强隐私保护, 同时避免了全局梯度带来的额外计算负担. 该方法不仅在通信和隐私保护之间取得了
                 良好权衡, 也在计算资源受限的场景中展现出较强的可扩展性.

                    下面概述    Priv-FedMF-Sub  算法, 该算法在  DP-SUB  子模型选择策略的基础上, 结合差分隐私机制与联邦矩阵
                 分解技术, 通过客户端和服务器的协作训练, 实现对用户特征向量和物品特征向量的高效更新, 同时兼顾用户隐私
                 保护与通信效率. 算法主要分为两部分: 客户端通过本地扰动用户梯度信息并上传至服务器, 服务器端对物品特征
                 向量进行全局聚合与更新, 并将子模型分发回客户端以完成新一轮训练. 算法                           2  为  Priv-FedMF-Sub (private
                 federated matrix factorization submodel) 算法的具体步骤.

                 算法  2. Priv-FedMF-Sub  算法.

                                                     T
                 输入: 客户端数量     n, 采样比例  k, 全局训练轮数  , 本地训练轮数       E, 隐私预算  , 裁剪阈值     C;
                                                                            ϵ 2
                 输出: 全局模型    V.
                 服务器端:
                 1. 初始化特征矩阵    V
                 2. for  t = 1 to   do  全局迭代
                           T
                 3.     V sub ⊆ V  由 t  DP-SUB  算法筛选下发子模型
                 4.   随机抽取    m 个客户端:   m = max(n×k,1), 其用户向量集合为   S t = {S 1 ,S 2 ,...,S m }
                 5.   下发  V sub  至用户向量  S t
                 6.   for  i = 1 to  m do

                 7.     用户向量     S t  接收扰动梯度   ˜ g item
                 8.     梯度更新:     v t+1  = v t  −α˜g item
                                   item  item
                 9.   end for
                 10.    服务器聚合形成新一轮全局模型          V  t+1
                 11. end for
                 客户端:
                 1. 初始化特征向量    u i , 下载子模型   V sub
                 2. for  e = 1 to  E do
                 3.   本地训练:   u e+1  = u −αg e u i
                                    e
                               i
                                    i
                 4.   for each  item ∈ V sub  do
                 5.     计算    item 梯度   g item
   270   271   272   273   274   275   276   277   278   279   280