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

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



                                                      表 1 实验数据集

                                   数据集                  MovieLens 100K         MovieLens 1M
                                   用户数量                     943                    6 040
                                   电影数量                     1 682                  3 900
                                   评分数量                    100 000               1 000 209
                                用户平均评分数                    106.04                 165.57
                               电影平均被评分数                     59.45                 256.47
                                评分矩阵密度 (%)                  6.30                   4.25

                    MovieLens 100K  数据集包含  943  名用户对  1 682  部电影的  100 000  条评分记录, 评分范围为   1–5  的整数值, 评
                 分矩阵的稀疏度为       6.30%. 此外, 数据集还包括用户的基本属性          (如性别、年龄、职业和邮编) 以及电影的分类标
                 签  (如流派). 该数据集的特点是规模较小, 稀疏性较高, 适合快速验证算法在稀疏数据场景中的表现及其在小规模
                 场景中的收敛性.
                    MovieLens 1M  数据集包含  6 040  名用户对  3 900  部电影的  1 000 209  条评分记录, 评分矩阵的稀疏度为     4.25%,
                 相较于   MovieLens 100K  显著降低. 用户属性更为详细, 除性别、年龄、职业外, 还涵盖了更多样化的电影标签信
                 息. 该数据集的规模更大、评分密度更高, 能够更有效地评估算法在复杂和高维场景中的扩展能力和鲁棒性.
                    在实验中, 两个数据集按照用户进行划分, 每个用户的数据被视为一个独立的客户端. 客户端仅保留本地评分
                 记录及相关属性数据, 并按照         8:2 的比例将数据分为训练集和测试集, 以模拟分布式环境下的数据训练与测试过程.
                  6.2   评价指标及基准模型
                    在本文中, 我们采用      HR@10  和  NDCG@10  作为衡量推荐算法可用性的核心评价指标, 并引入传输总参数量
                 作为评估通信开销的重要指标, 从推荐性能与通信效率两个维度对算法进行全面评估.
                    HR@10 (hit ratio at 10) 是用来衡量推荐算法覆盖用户实际兴趣的能力的重要指标, 其定义为推荐列表中是否
                 包含用户真实喜好的条目. 该指标能够直观反映推荐算法的实用性和有效性, 值越高说明推荐结果越符合用户需
                 求. NDCG@10 (normalized discounted cumulative gain at 10) 则进一步考虑了推荐条目的排名位置对用户体验的影
                 响, 其值越高表明推荐算法对用户兴趣的排序更精准, 从而提升了推荐结果的用户满意度. 传输总参数量反映了联
                 邦学习过程中客户端与服务器之间交换的参数数据总量, 参数量越小表明通信效率越高, 有助于减少带宽占用和
                 降低通信成本.
                    实验针对所提出的两种方法, 分别选取了目前具有代表性的基线方法进行对比. 在矩阵分解推荐方法中, 基线
                 方法包括: (1) FedMF [23] : 一种传统的联邦矩阵分解推荐算法, 所有客户端按照传统联邦学习的方式协同训练全局模
                 型; (2) DP-FedMF [17] : 一种具有本地差分隐私保护的联邦矩阵分解推荐算法, 客户端在本地上传梯度时加入满足差
                 分隐私的噪声. 在深度学习推荐方法中, 基线方法包括: (1) FedNCF             [23] : 一种传统的联邦深度学习推荐算法, 所有客
                 户端按照传统联邦学习的方式协同训练全局模型; (2) DP-FedNCF              [55] : 一种具有本地差分隐私保护的联邦深度学习
                                                                                      [38]
                 推荐算法, 客户端在本地上传梯度时加入满足差分隐私的高斯噪声; (3) DP-FedNCF-DGC                      : 在  DP-FedNCF  的基
                 础上采用深度梯度压缩策略, 以显著降低通信成本并保持模型性能. 上述基线方法覆盖了联邦矩阵分解和深度学习
                 推荐场景下的主流方法, 为实验提供了多角度的对比参考, 验证了所提方法在隐私保护和通信效率方面的综合优势.
                  6.3   实现细节
                    实验环境基于 Ubuntu 20.04.6 LTS 操作系统, 硬件配置包括 2 块 32 GB V100 GPU, Intel(R) Xeon(R) Gold 5118
                 CPU@2.30 GHz 处理器, 内存容量为 256 GB. 实验中, 潜在特征向量维度均设置为            32, 批量大小分别为    256 (MovieLens
                 100K) 和  512 (MovieLens 1M), 负样本比例为  1:4. 每轮通信时, 分别从  MovieLens 100K  和  MovieLens 1M  中采样
                 100  和  200  个客户端参与本地训练, 每个客户端进行         5  轮本地迭代后进行全局模型更新, 通信总轮数为              400. 优化
                 器方面, 矩阵分解算法采用       SGD  优化器, 学习率设置为     0.001, 深度学习算法采用    Adam  优化器, 学习率设置为     0.000 5.
                 梯度裁剪阈值统一设置为         C=1.0, 客户端隐私预算设置为       2. 本实验所有程序代码使用        Python  语言编写  (相关的实
                 验代码公开发布于       https://github.com/Drxdx/FL_recommend).
   274   275   276   277   278   279   280   281   282   283   284