「基于联邦学习的推荐系统」最新2022研究综述
随着互联网和移动计算等技术的发展, 人们的在线行为产生了越来越多的数据, 想要从海量数 据中挑选出用户可能喜欢的物品, 推荐系统不可或缺. 然而传统的推荐算法需要将用户数据收集到服 务端才能构建模型, 这会泄露用户隐私. 最近, 谷歌针对机器学习任务中需要收集用户数据才能进行建 模的问题, 提出了一种新的学习范式 —— 联邦学习. 联邦学习与推荐系统相结合, 使得联邦推荐算法 能够在模型构建过程中, 始终将用户数据保留在客户端本地, 从而保护了用户隐私. 本文主要对联邦学 习与推荐系统相结合的研究工作进行综述, 并从架构设计、系统的联邦化和隐私保护技术的应用 3 个 角度重点分析联邦推荐算法的研究进展. 最后, 对基于联邦学习的推荐系统可研究的方向进行展望.
https://www.sciengine.com/SSI/article?doi=10.1360/SSI-2021-0329&scroll=
引言
在当今互联网大数据的背景下, 推荐系统能够利用海量的数据解决信息过载问题, 给用户带来便 利的同时也给企业带来经济效益, 进而实现用户和企业的双赢. 许多企业将推荐系统应用在了各自的 业务场景中, 例如, 淘宝的 “猜你喜欢”、网易云音乐的 “每日推荐”、腾讯视频的 “今日热门” 等, 类似 的服务在人们日常的互联网生活中随处可见, 这些商业服务的建立离不开推荐算法.
随着通用数据保护条例 (general data protection regulation, GDPR) [1] 等隐私和数据保护法律法 规的颁布, 以及人们隐私保护意识的提高, 用户数据中的隐私安全愈发受到重视. GDPR 等法律法规 要求, 在未经用户同意的情况下, 任何组织和机构不得收集数据主体的个人数据. 然而传统的机器学 习算法在没有获取足够多的用户数据的情况下, 往往难以通过训练得到一个有效的模型. 为了解决用 户数据的隐私问题, 以及在不直接获取用户原始数据的前提下得到一个有效的模型, 谷歌 (Google) 提出了联邦学习范式[2, 3] . 联邦学习使得在模型训练的整个过程中, 用户的原始数据始终保留在用户 (客 户端) 本地, 服务端和用户之间通过共享加密的或不包含隐私信息的中间参数的方式, 进行模型训练 和参数更新, 进而在保护用户隐私的前提下构建一个有效的机器学习模型. 此外, 谷歌还将联邦学习 应用在 Gboard 产品上, 用于表情符号预测 [4] 和下一个单词的预测 [5] , 并且取得了不错的效果. Yang 等[1] 进一步将联邦学习分为横向联邦学习、纵向联邦学习和联邦迁移学习. 横向联邦学习是指在参与 联合训练的多方中, 特征重叠较多, 样本重叠较少; 纵向联邦学习是指在参与联合训练的多方中, 特征 重叠较少, 样本重叠较多; 而联邦迁移学习是指在参与联合训练的多方中, 特征重叠和样本重叠都较 少. 目前对联邦学习的研究大多是基于横向联邦学习和纵向联邦学习, 而对联邦迁移学习的研究相对较少。
在推荐系统中, 用户的数据通常是指用户对物品的交互行为和用户的个人信息. 在传统的推荐算 法中, 为了构建一个全局的模型, 通常需要收集所有用户的原始数据并上传至服务端, 这样的做法往往 存在用户隐私泄漏的问题. 为了解决这一问题, 一些研究工作 [6, 7] 将联邦学习应用于推荐算法的设计 中, 使得用户在不上传自己的原始数据的前提下仍能得到良好的个性化服务. 近年来, 随着联邦学习技 术的发展, 对基于联邦学习的推荐算法 (以下称 “联邦推荐”) 的研究也越发受到工业界和学术界的关 注. 在 2019 年的神经信息处理系统大会 (NeurIPS) 上, 微众银行以联邦推荐为主题介绍了他们的多 个应用场景, 同时还基于自主研发的企业级联邦学习平台 FATE (federated AI technology enabler) [8] 提出了联邦矩阵分解和联邦因子分解机等算法, 引起了众多研究人员的关注. 目前, 对联邦推荐的研究 仍处于起步阶段, 大多数联邦推荐算法通过设计不同的联邦训练策略对传统的推荐模型进行联邦化, 从而保护用户的隐私, 这也是本文论述的一个重点. 值得注意的是, 联邦学习领域中的一些重要问题, 如通信成本、计算效率和激励机制等, 在联邦推荐算法的设计中还较少涉及, 但它们在模型的训练和 部署等方面有较大影响, 这也是本文关注的另一个重点.
本文主要对基于联邦学习的推荐系统的研究进行综述. 第 2 节首先简要介绍经典的和前沿的推荐 算法, 其次从模型的架构、模型的联邦化、模型的优化和隐私保护技术的应用 4 个角度介绍联邦学习 技术, 最后概述联邦推荐技术. 第 3∼5 节分别从架构设计、系统的联邦化和隐私保护技术的应用 3 个 角度重点分析基于联邦学习的推荐系统的研究进展. 第 6 节展望基于联邦学习的推荐算法的研究趋 势. 第 7 节是结束语.
2. 概述
2.1 推荐系统概述
传统的推荐方法主要包括基于内容的推荐、基于协同过滤 (collaborative filtering, CF) 的推荐和 混合推荐. 基于内容的推荐算法的核心思想是给用户推荐与其历史交互过的物品相似的物品, 它能够 解决物品的冷启动问题. 其中物品特征的提取较为关键, 只要能构建出新物品的特征描述, 该新物品就 有可能被推荐给用户. 由于推荐的物品通常是与用户交互过的物品较为相似的物品, 因此基于内容的 推荐算法难以推荐一些新颖的物品. 基于协同过滤的推荐算法的核心思想是给用户推荐与其历史偏 好相似的用户群体交互过的物品, 其主要包括基于邻域的推荐算法和基于模型的推荐算法. 其中, 基 于邻域的推荐算法主要分为两大类: 基于用户的协同过滤推荐算法 [9] 和基于物品的协同过滤推荐算 法 [10] . 矩阵分解 (matrix factorization, MF) [11] 是协同过滤推荐算法中最受欢迎的算法之一, 其以高 维的 (用户, 物品) 评分矩阵为输入, 输出一个低维的用户特征矩阵和一个低维的物品特征矩阵, 通过用户特征矩阵和物品特征矩阵的内积计算得到用户对物品的评分矩阵. 与基于内容的推荐算法相比, 基于协同过滤的推荐算法考虑了不同用户偏好之间的关系, 但存在用户和物品的冷启动问题. 混合推 荐算法将多种推荐算法以一定的方式组合起来, 以解决单一推荐算法存在的问题. 例如, 将基于内容的 推荐算法和基于协同过滤的推荐算法结合起来的混合推荐算法, 能够解决物品的冷启动问题, 同时考 虑了用户之间的偏好关系, 从而构建一个更好的推荐模型.
近年来, 随着深度学习在计算机视觉、语音识别和自然语言处理等领域的快速发展, 深度学习也成 为推荐系统领域的一项重要技术. 与传统的推荐算法相比, 基于深度学习的推荐算法表达能力更强, 能 够更好地挖掘数据的潜在特征, 获取深层次的用户和物品的特征描述. 基于深度学习的推荐算法主要 利用一些深度学习技术, 如: 自编码器[12]、受限玻尔兹曼机 (restricted Boltzmann machine, RBM)[13]、 卷积神经网络 (convolutional neural network, CNN) [14] 和循环神经网络 (recurrent neural network, RNN)[15] 等, 来构建推荐模型. AutoRec [12] 是较为简单的基于深度学习的推荐算法, 其将自编码器技 术应用到协同过滤中, 输入是某个用户对所有物品的评分构成的向量或所有用户对某个物品的评分构 成的向量, 通过一个包含单隐层的神经网络, 让输出向量尽可能逼近输入向量, 从而预测输入向量中的 缺失值, 进而实现对物品的排序和推荐. 但是 AutoRec [12] 没有很好地解决特征交叉问题, 模型的表达 能力有一定的局限. Deep crossing [16] 设计了包含 embedding 层、stacking 层、multiple residual units 层和 scoring 层的网络结构, 通过多层残差网络对特征向量进行多次特征交叉, 从而捕捉更多非线性 的特征信息. NCF (neural collaborative filtering)[17] 使用多层神经网络来代替矩阵分解中的内积操作, 使得用户特征向量和物品特征向量之间的交互更加丰富, 从而提高模型的表达能力. Wide&Deep [18] 和 Deep&Cross [19] 等通过组合不同特性的神经网络来提高模型的综合能力. DIN (deep interest network) [20] 等将注意力机制与基于深度学习的推荐算法结合, 使得模型能更好地捕捉用户的兴趣点. BERT4Rec [21] 将基于 Transformer 的双向编码器表征应用在序列推荐中, 用于捕捉用户行为序列上 下文的关系, 以此来预测用户可能会喜欢的下一物品. NGCF (neural graph collaborative filtering) [22] 将 (用户, 物品) 表示为二部图, 将图神经网络 (graph neural network, GNN) 应用到协同过滤算法中, 并对 (用户, 物品) 的高阶交互历史行为进行建模.
上述推荐算法是基于集中式架构设计的, 其中客户端 (即用户) 仅充当数据产生者和数据传输者 的角色, 而数据处理和模型构建的过程由服务端来实现. 由于客户端需要将用户的原始数据上传到服 务端, 因此存在用户隐私泄露的风险. 同时, 为了充分利用数据的价值, 挖掘更高维的潜在特征, 服务 端构建的推荐模型越来越复杂. 此外, 当用户数据增长到一定的数量级, 传统的集中式推荐系统通常 难以满足越来越高的存储成本和计算成本的要求. 分布式推荐系统将用户数据或模型参数分布在各个 数据节点或者计算节点中, 通过使用分布式计算和并行计算等技术来加快模型的训练, 从而支持更大 规模的数据的处理和更复杂的推荐模型的构建 [23] . 需要说明的是, 隐私保护不是设计分布式推荐系 统时首要关注的问题, 因而服务端通常可以收集各个节点的原始数据和模型参数.
在推荐系统的应用场景中, 可以将原始数据划分为用户个人信息、物品属性信息和用户与物品之 间的交互信息. 对用户而言, 隐私信息包括用户的个人信息 (例如, 性别、年龄和地理位置等)、用户对 物品的显式反馈 (例如, 用户对物品的评分等) 和用户对物品的隐式反馈 (例如, 用户对物品的点击、 收藏和购买等) 等. 一般认为, 同一组织内部的物品属性信息是共享的, 不属于用户的个人隐私. 而对 不同组织, 物品属性信息以及模型参数可能涉及公司的商业机密, 因此通常不能直接与其他组织共享.
2.2 联邦学习概述
联邦学习本质上是一种既联合多方又不共享各方原始数据的分布式学习框架, 在保护各个参与方数据中的隐私的前提下, 联合各个参与方共同训练, 得到一个共享的模型 [24] . 需要说明的是, 与传统 的分布式学习框架相比, 联邦学习中的各个参与方通常对自己的数据具有绝对的控制权. 因此, 服务 端在训练过程中需要满足各个参与方不同程度的隐私保护的要求. 联邦学习可按模型的架构、模型的 联邦化、模型的优化和隐私保护技术的应用 4 个角度进行分类, 见表 1 [1∼3, 25∼54] . 其中, 模型的架构 取决于不同的部署环境, 不同的架构在对模型进行联邦化时需要设计不同的训练流程. 对不同模型的 联邦化的研究是联邦学习的研究重点, 而隐私保护技术是在模型联邦化过程中需要使用的重要技术手 段. 对于联邦化后的模型, 考虑到不同的业务需求, 例如, 提高通信效率和模型性能等, 可以设计不同的模型优化策略.
2.2.1 模型的架构
通常, 在联邦学习中使用的架构可以分为客户端 – 服务端架构和去中心化架构. 如图 1 所示, 对 于客户端 – 服务端架构, 较为通用的训练流程为: (1) 服务端初始化模型参数, 并将模型参数发送给 各个客户端; (2) 客户端利用本地数据以及从服务端接收到的最新的模型参数进行训练, 并将中间参 数发送给服务端; (3) 服务端聚合中间参数, 更新全局模型, 再把模型回传给客户端; (4) 重复步骤 (2) 和 (3), 直到模型收敛. 对于去中心化架构, 较为通用的训练流程为: (1) 服务端初始化模型参数, 然后 将模型参数发送给各个客户端; (2) 客户端利用本地数据进行模型训练并更新本地的模型参数; (3) 客户端选取一些其他客户端, 发送本地的中间参数, 同时接收其他客户端的中间参数, 并更新本地的模 型; (4) 重复步骤 (2) 和 (3), 直到模型收敛. 需要说明的是, 不同组织之间的联邦应用场景, 例如, 纵向 联邦学习和联邦迁移学习, 可以看作特殊的去中心化架构. 在这些场景中, 若引入第三方服务器, 则又 可视为特殊的客户端 – 服务端架构.
客户端 – 服务端架构能够利用服务端的计算资源, 减少客户端的计算压力, 但容易发生单点故障. 同时, 对于好奇的服务端, 其可能根据客户端上传的中间参数推断客户端的隐私信息, 从而泄露客户 端的隐私. 相比客户端 – 服务端架构, 去中心化架构不使用服务端或者服务端仅提供初始化模型参数 和协助客户端之间通信的功能, 而不对模型进行更新. 去中心化架构的主要优势包括以下 3 个方面. (1) 匿名性 [55] . 在模型训练过程中, 客户端能以匿名的方式发送中间参数给其他客户端, 从而解决客 户端之间的隐私泄露问题. (2) 节省服务端的资源. 服务端仅需初始化模型参数, 将模型参数分发给各 个客户端, 不需要参与模型的更新. (3) 高可用性. 不存在单点故障, 即不会因为服务端的某一个部件 出错而导致整个联邦学习系统中止训练. 客户端 – 服务端架构和去中心化架构的相同之处在于客户端的原始数据不离开本地, 通过服务端 与客户端之间的通信或客户端与客户端之间的通信, 以发送中间参数的训练方式来得到一个共享的模 型. 在实际应用中, 考虑到不同模型的优化需求, 使用这两种架构时的训练流程会有所不同, 例如, 为 了减少通信成本, 一些基于客户端 – 服务端架构的联邦学习算法会采用在客户端多次训练后再将中间 参数上传给服务端的训练方式 [3, 36, 37, 56] . 我们将在 2.2.3 小节关于模型的优化中, 介绍一些对训练流 程进行改进的方法.
2.3 联邦推荐系统概述
申明:本文转自计算机学报,分享仅供学习参考,版权归属原作者,若有不当请联系我们处理。
往期内容:
欢迎投稿
邮箱:pet@openmpc.com
参与更多讨论,请添加小编微信加入交流群