CN113836584B - 分布式隐私保护学习的推荐方法、设备和学习系统 - Google Patents
分布式隐私保护学习的推荐方法、设备和学习系统 Download PDFInfo
- Publication number
- CN113836584B CN113836584B CN202111405913.8A CN202111405913A CN113836584B CN 113836584 B CN113836584 B CN 113836584B CN 202111405913 A CN202111405913 A CN 202111405913A CN 113836584 B CN113836584 B CN 113836584B
- Authority
- CN
- China
- Prior art keywords
- user terminal
- noise
- user
- expression matrix
- matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Bioethics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种分布式隐私保护学习的推荐方法、设备和学习系统,其中:进行联邦学习的多个用户终端设备中的目标用户终端设备,获取目标用户对应的评分矩阵,在训练其对应的项目表达矩阵和用户表达矩阵的至少一次迭代中:确定当前迭代中项目表达矩阵对应的损失函数梯度,将加入第一噪声的损失函数梯度发送至服务器;若接收到服务器发送的存活通知,向服务器发送用于降低损失函数梯度上加入的噪声的第二噪声,以使服务器基于加入第一噪声的损失函数梯度以及第二噪声的聚合结果更新项目表达矩阵并将更新结果发送至各用户终端设备。根据训练截止时的用户表达矩阵和项目表达矩阵预测目标用户对多个项目的偏好程度并据此向目标用户推荐项目。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种分布式隐私保护学习的推荐方法、设备和学习系统。
背景技术
随着物联网、移动互联网等技术的不断发展,网络上充斥着各种各样的信息,为用户进行有效信息搜索提出了挑战。有鉴于此,现有技术中设计了各种推荐模型,以用于向用户进行其可能偏好的信息的推荐。
目前的推荐模型在训练过程中,会面临数据孤岛和数据安全的问题。业界持续面临重要的技术问题,即首先必须保护用户的隐私数据不被滥用和泄露,并同时为用户推荐更个性化的项目。因此,为提高推荐模型的性能,需要克服这些问题。为此,一种联邦学习的模型训练方式被提出。联邦学习是分布式机器学习的一种技术,是在多个数据汇集方之间共同开展的机器学习技术,其中,每个数据汇集方利用自身的数据对模型进行训练,随后将训练后的模型参数进行整合,这样,用于模型训练的数据可以不离开数据汇集方,或是在离开数据汇集方时被加密或消除敏感信息。联邦学习的目标是在法律要求的前提下,保证训练用数据的隐私、安全、合规使用,同时通过分布式训练的方式提高模型训练的效率。
但是,实际应用中还存在一种特殊的情形:参与联邦学习的各数据汇集方即为各个用户,每个用户的数据仅存储在自己的终端设备中,往往是移动终端设备中。这种情形为联邦学习提出了更大的挑战,其中之一就是可能用户终端设备随时可能退出联邦学习。因此,在这种情形下,如何完成推荐模型的学习训练并保证用户数据的隐私安全,是亟待解决的问题。
发明内容
本发明实施例提供一种分布式隐私保护学习的推荐方法、设备和学习系统,用于完成在用户终端设备可能退出联邦学习的情形下推荐模型的训练,并保证用户隐私安全。
第一方面,本发明实施例提供一种分布式隐私保护学习的推荐方法,应用于用于进行联邦学习的多个用户终端设备中的目标用户终端设备,所述目标用户终端设备对应于目标用户,所述方法包括:
本地获取与所述目标用户对应的目标评分矩阵,所述目标评分矩阵用于描述所述目标用户对多个项目的评分情况,所述多个用户终端设备各自收集的评分矩阵具有相同的项目集;
在本地迭代训练所述目标评分矩阵对应的项目表达矩阵和用户表达矩阵的至少一次迭代过程中,执行如下操作:
确定当前迭代中项目表达矩阵对应的损失函数梯度;
将加入第一噪声的损失函数梯度发送至服务器,以使所述服务器基于接收到的各用户终端设备发送的加入有所述第一噪声的损失函数梯度确定当前存活的用户终端设备;
响应于接收到所述服务器发送的存活通知,向所述服务器发送用于降低所述损失函数梯度上加入的噪声的第二噪声,以使所述服务器基于所述加入第一噪声的损失函数梯度以及所述第二噪声的聚合结果更新项目表达矩阵,并将更新后的项目表达矩阵发送至存活的用户终端设备;
根据所述更新后的项目表达矩阵和当前迭代中的用户表达矩阵,执行下一次迭代;
根据训练截止时得到的用户表达矩阵和项目表达矩阵预测所述目标用户对所述多个项目的偏好程度,以根据所述偏好程度为所述目标用户进行项目推荐。
第二方面,本发明实施例提供一种分布式隐私保护学习的推荐装置,应用于用于进行联邦学习的多个用户终端设备中的目标用户终端设备,所述目标用户终端设备对应于目标用户,所述装置包括:
获取模块,用于本地获取与所述目标用户对应的目标评分矩阵,所述目标评分矩阵用于描述所述目标用户对多个项目的评分情况,所述多个用户终端设备各自收集的评分矩阵具有相同的项目集;
训练模块,用于在本地迭代训练所述目标评分矩阵对应的项目表达矩阵和用户表达矩阵的至少一次迭代过程中,执行如下操作:确定当前迭代中项目表达矩阵对应的损失函数梯度;将加入第一噪声的损失函数梯度发送至服务器,以使所述服务器基于接收到的各用户终端设备发送的加入有所述第一噪声的损失函数梯度确定当前存活的用户终端设备;响应于接收到所述服务器发送的存活通知,向所述服务器发送用于降低所述损失函数梯度上加入的噪声的第二噪声,以使所述服务器基于所述加入第一噪声的损失函数梯度以及所述第二噪声的聚合结果更新项目表达矩阵,并将更新后的项目表达矩阵发送至存活的用户终端设备;根据所述更新后的项目表达矩阵和当前迭代中的用户表达矩阵,执行下一次迭代;
预测模块,用于根据训练截止时得到的用户表达矩阵和项目表达矩阵预测所述目标用户对所述多个项目的偏好程度,以根据所述偏好程度为所述目标用户进行项目推荐。
第三方面,本发明实施例提供一种用户终端设备,所述用户终端设备是用于进行联邦学习的多个用户终端设备中的目标用户终端设备,所述目标用户终端设备对应于目标用户,包括:处理器、显示屏;
所述处理器,用于本地获取与所述目标用户对应的目标评分矩阵,所述目标评分矩阵用于描述所述目标用户对多个项目的评分情况,所述多个用户终端设备各自收集的评分矩阵具有相同的项目集;在本地迭代训练所述目标评分矩阵对应的项目表达矩阵和用户表达矩阵的至少一次迭代过程中,执行如下操作:确定当前迭代中项目表达矩阵对应的损失函数梯度;将加入第一噪声的损失函数梯度发送至服务器,以使所述服务器基于接收到的各用户终端设备发送的加入有所述第一噪声的损失函数梯度确定当前存活的用户终端设备;响应于接收到所述服务器发送的存活通知,向所述服务器发送用于降低所述损失函数梯度上加入的噪声的第二噪声,以使所述服务器基于所述加入第一噪声的损失函数梯度以及所述第二噪声的聚合结果更新项目表达矩阵,并将更新后的项目表达矩阵发送至存活的用户终端设备;根据所述更新后的项目表达矩阵和当前迭代中的用户表达矩阵,执行下一次迭代;以及,根据训练截止时得到的用户表达矩阵和项目表达矩阵预测所述目标用户对所述多个项目的偏好程度,以根据所述偏好程度为所述目标用户进行项目推荐;
所述显示屏,耦合于所述处理器,用于显示为所述目标用户推荐的项目。
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被用户终端设备的处理器执行时,使所述处理器至少可以实现如第一方面所述的分布式隐私保护学习的推荐方法。
第五方面,本发明实施例提供一种分布式隐私保护学习系统,包括:
用于进行联邦学习的多个用户终端设备以及服务器;所述多个用户终端设备与多个用户一一对应;所述多个用户终端设备各自收集的评分矩阵具有相同的项目集;
所述多个用户终端设备中的目标用户终端设备,用于本地获取与目标用户对应的目标评分矩阵,在本地迭代训练所述目标评分矩阵对应的项目表达矩阵和用户表达矩阵的至少一次迭代过程中,执行如下操作:确定当前迭代中项目表达矩阵对应的损失函数梯度;将加入第一噪声的损失函数梯度发送至所述服务器,以使所述服务器基于接收到的各用户终端设备发送的加入有所述第一噪声的损失函数梯度确定当前存活的用户终端设备;响应于接收到所述服务器发送的存活通知,向所述服务器发送用于降低所述损失函数梯度上加入的噪声的第二噪声,以使所述服务器基于所述加入第一噪声的损失函数梯度以及所述第二噪声的聚合结果更新项目表达矩阵,并将更新后的项目表达矩阵发送至存活的用户终端设备;根据所述更新后的项目表达矩阵和当前迭代中的用户表达矩阵,执行下一次迭代;以及,根据训练截止时得到的用户表达矩阵和项目表达矩阵预测所述目标用户对所述多个项目的偏好程度,以根据所述偏好程度为所述目标用户进行项目推荐;
所述服务器,用于接收各用户终端设备在当前迭代中各自上传的加入所述第一噪声的损失函数梯度,确定当前存活的用户终端设备,并向所述当前存活的用户终端设备发送存活通知;以及,接收所述当前存活的用户终端设备发送的所述第二噪声,基于所述加入第一噪声的损失函数梯度以及所述第二噪声的聚合结果更新项目表达矩阵,并将更新后的项目表达矩阵发送至存活的用户终端设备。
在本发明实施例中,每个用户终端设备中存储有相应用户对设定的多个项目(如多个电影)的评价信息,据此,每个用户终端设备可以生成私有的评分矩阵。每个用户终端设备可以基于私有的评分矩阵,通过矩阵分解的方式,进行对应用户表达(userembedding)矩阵和项目表达(item embedding)矩阵的训练,最终得到的用户表达矩阵和项目表达矩阵即构成推荐模型需要被训练的模型参数。其中,评分矩阵可以被分解为用户表达矩阵和项目表达矩阵其中,项目表达矩阵用于描述项目的属性特征,用户表达矩阵用于描述用户的偏好特征。另外,为了保证每个用户终端设备最终得到的推荐模型的性能,在训练过程中,可以通过服务器对多个用户终端设备进行项目表达矩阵的联邦学习训练,从而使得每个用户终端设备最终会得到私有的用户表达矩阵以及共享的统一的项目表达矩阵。基于此,每个用户终端设备基于训练截止时得到的用户表达矩阵与项目表达矩阵的点乘结果,便可以预测其所对应用户对各个项目的评分值,根据评分值可以对多个项目进行排序,排序靠前的意味着该用户越有可能喜欢该项目,据此完成向用户的项目推荐。
在上述用户表达矩阵和项目表达矩阵的训练过程中,用户表达矩阵始终在用户终端设备本地进行迭代更新,而项目表达矩阵需要上传服务器进行聚合处理。针对项目表达矩阵来说,在当前一次迭代中,确定当前迭代中项目表达矩阵对应的损失函数梯度,之后对该损失函数梯度加入差分隐私噪声,称为第一噪声,将加入第一噪声的损失函数梯度发送至服务器。其中,第一噪声是为了应对在用户终端设备退出率很大的最恶劣情况下为保证服务器聚合的梯度仍旧满足差分隐私要求而加入的噪声。服务器在接收到各个用户终端设备发送的加入有第一噪声的上述损失函数梯度后,便观察到了当前存活的用户终端设备都有哪些,在观察到真正存活的用户终端设备情况后,向存活的用户终端设备发送存活。
通知,以告知各存活的用户终端设备目前有多少用户终端设备是存活的。对于接收到上述存活通知的用户终端设备,此时可以向服务器发送用于降低所述损失函数梯度上加入的噪声的第二噪声。服务器此时聚合各存活的用户终端设备发送的上述加入第一噪声的损失函数梯度以及第二噪声,根据聚合结果更新项目表达矩阵,并将更新后的项目表达矩阵发送至各存活的用户终端设备,使其根据该更新后的项目表达矩阵和当前迭代中的用户表达矩阵,执行下一次迭代。
由此可见,在一次迭代过程中,会涉及到用户终端设备与服务器之间的两轮交互:第一轮交互中,用户终端设备向服务器发送加入了较大噪声(第一噪声)的梯度,使得服务器在观察出当前真实的用户终端设备存活数(或者说真实退出率)后,向存活用户终端设备发送存活通知;第二轮交互中,存活的用户终端设备向服务器发送另一噪声(第二噪声),用于消除此前发送的第一噪声中的冗余噪声,使得服务器的聚合结果满足与真实的用户终端设备退出率相匹配的差分隐私要求,实现对用户隐私的保护。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种LFL下隐私边界的示意图;
图2为本发明实施例提供的一种分布式隐私保护学习系统的示意图;
图3为本发明实施例提供的一种终端与服务器间两轮交互过程的示意图;
图4为本发明实施例提供的一种终端与服务器间另一种两轮交互过程的示意图;
图5为本发明实施例提供的一种联邦学习过程的流程示意图;
图6为本发明实施例提供的一种联邦学习过程的应用示意图;
图7为本发明实施例提供的一种项目推荐装置的结构示意图;
图8为本实施例提供的一种用户终端设备的结构示意图;
图9为本实施例提供的另一种用户终端设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
矩阵分解(Matrix Factorization,简称MF)问题是推荐系统中的一个基础问题,顾名思义,矩阵分解就是将一个矩阵分解为两个或多个矩阵,使得分解的矩阵能够通过相乘得到原始矩阵。
实际上,推荐系统面临的问题可以表述为:可以收集大量用户(user)对大量项目(item)的评分情况而形成一个评分矩阵,其中,在该评分矩阵中,一般仅有部分评分值是确定已知的,很多评分值是缺省的,即只能收集到部分用户对部分项目的评分值。此时,需要训练出一个推荐模型,以便可以基于该推荐模型预测出缺省的评分值,可以理解的是,该推荐模型对已知评分值的预测结果应该尽可能地与已知评分值相等。这样,基于训练出的推荐模型就可以为其中的各个用户进行项目推荐:根据某用户对各个项目的评分值预测结果得知该用户对各个项目的偏好程度(评分值越高,越偏好),从而为该用户推荐其偏好的项目。实际应用中,项目可能是影视作品、商品、游戏产品,等等。
而上述推荐模型的训练,实际上就是一个MF问题:以评分矩阵作为输入,通过学习将用户和项目表示为低维度的表达(embedding)向量,由全部用户对应的用户表达向量构成用户表达矩阵,由全部项目对应的项目表达向量构成项目表达矩阵,因此,用户表达向量和项目表达向量的点积可以用于预测用户喜欢项目的程度。实际上,用户表达矩阵和项目表达矩阵即为推荐模型的模型参数,亦为评分矩阵被分解成的两个矩阵。
另外,在数据隐私安全监管日益加强和规划化的今天,互联网上诸多数据驱动的服务面临新的挑战和机遇,比如,当训练为用户进行信息推荐的推荐模型时,在模型训练过程中需要考虑数据安全问题。
在诸如推荐模型等机器学习场景中,面临的一个主要问题就是数据孤岛问题,即每个数据汇集方拥有的用于进行模型训练的数据比较少,仅基于一个数据汇集方拥有的数据来训练推荐模型,模型表现往往欠佳。因此,为了能够训练出一个性能更优的推荐模型,一种联邦学习的机器学习框架便应运而生。
可以将参与共同建模的每个参与方称为数据汇集方,在大部分联邦学习框架中,数据汇集方一般是一个企业、一个机构。根据不同数据汇集方之间数据分布特点的不同,可以将联邦学习划分为如下几种类型:纵向联邦学习(Vertical Federated Learning ,简称VFL)、横向联邦学习(Horizontal Federated Learning ,简称HFL)以及本地联邦学习(Local Federated Learning ,简称LFL)。
基于上述联邦学习的分类结果,可以在不同的联邦学习类型下进行矩阵分解问题的处理,即学习出与不同联邦学习类型对应的推荐模型。在每种联邦学习类型下,不同数据汇集方可以基于各自收集的评分矩阵联合建模而相互之间不泄露各自用户的隐私数据。
其中,在VFL下,所有的数据汇集方各自收集的评分矩阵共享相同的用户集,但是在项目集上没有交叉。一种典型的场景是:位于同一地区的两家公司,一家是在线内容平台,另一家是本地的零售商,两者拥有相同的客户群,但是各自拥有不同的客户行为信息。如果他们想合作训练一个推荐模型,则该推荐模型既可以学习用户对在线内容(如视频、音乐)的观看行为,又可以学习用户在当地零售店铺的购买行为。
在HFL下,每个数据汇集方都具有私有的一个用户集,但是,不同的数据汇集方具有相同的项目集。一种典型的场景是:不同医院具有的患者就诊记录是不同的,即就诊人员集合不同,但是不同医院具有相同的疾病集合。此时,不同医院想要合作训练一个疾病预测模型(本质也是一种推荐模型)。
LFL,可以视为是HFL的一个特例。在LFL下,每个用户即作为一个数据汇集方,拥有自身的评分矩阵。一种典型的场景是在移动应用中,每个用户仅仅将自己对一些项目的评分信息存储在自己的终端设备(device)中,并不想要与其他用户(数据汇集方)分享,当在一些移动应用场景中,需要联合众多用户私有的数据信息来训练一个推荐模型的情形,都属于LFL。
如上文所述,联邦学习框架下,需要联合多个数据汇集方来共同建模,如果直接让多个数据汇集方彼此交互各自拥有的用户数据来联合建模,会导致用户数据的安全性问题,尤其是需要在法律规定的条件下确保用户数据在未经授权的情况下不离开用户已授权的数据汇集方。因此,不同数据汇集方之间不能进行用户数据的共享。因此,需要技术手段来实现联合多个数据汇集方共同建模的目的,并同时避免用户数据离开数据汇集方,尤其是其中的用户隐私信息(敏感信息)不可被泄露出数据汇集方。
为避免不同数据汇集方直接的信息交互,在本发明实施例提供的联邦学习系统中,会设置有一个服务器,用于联合多个数据汇集方进行联邦学习训练。在联邦学习训练过程中,各数据汇集方会在本地进行迭代训练,本地训练过程中产生的一些模型参数需要共享给服务器,以使服务器联合各个数据汇集方共享的模型参数,进行模型参数的优化,以指导各数据汇集方更新本地训练得到的模型参数,这样,会使得各个数据汇集方最终得到的私有的推荐模型中融入了从其他数据汇集方的用户数据中学习到的语义信息,提高模型质量。
共享给服务器的模型参数中实际上隐含了用户的隐私信息,在不同联邦学习类型下,不同数据汇集方拥有的用户隐私信息是不同的,比如,在VFL下不同数据汇集方拥有的被评分项目是不同的,在HFL下不同数据汇集方拥有的用户集是不同的。在联邦学习过程中,不同数据汇集方之间共性的信息是需要被进行联合学习的,而差异性的信息不离开数据汇集方本地。因此,在VFL下需要共享给服务器的是各数据汇集方本地训练得到的用户表达矩阵,各数据汇集方共享出的用户表达矩阵可以被进行隐私保护;而在HFL下需要共享给服务器的是各数据汇集方本地训练得到的项目表达矩阵,因此各数据汇集方共享出的项目表达矩阵可以被进行隐私保护。比如可以采用差分隐私的方式来保护共享信息的安全性。而VFL下不需要被共享的项目表达矩阵在数据汇集方本地不断进行迭代训练更新,HFL下不需要被共享的用户表达矩阵在数据汇集方本地不断进行迭代训练更新。由于LFL作为HFL的特例情形,共享和私有的信息与HFL一致,即共享出的是项目表达矩阵的相关参数信息,而私有的是用户表达矩阵。
基于上文介绍的不同数据汇集方之间不能进行用户信息的共享,以及数据汇集方与服务器之间存在信息共享的情形,实际上,为保证用户信息的安全,在不同联邦学习类型下,可以设置不同的隐私边界。隐私边界,用于限定用户的隐私信息不能穿越的边界,或者在穿越时需要进行隐私保护。
比如,在VFL和HFL中,可以认为用户是信任各自对应的数据汇集方的,因此,用户可以将自己对多个项目的评分信息直接提供给对应的数据汇集方,此时认为用户与数据汇集方之间没有隐私边界。但是,对于不同数据汇集方来说,不同数据汇集方之间存在隐私边界,即要求不同数据汇集方之间不能直接进行信息交互。另外,不同的数据汇集方与服务器之间也可以存在隐私边界,用于要求数据汇集方共享给服务器的用户隐私信息被保护。在LFL中,用户数据不出自己的终端设备,所以隐私边界存在于各个用户终端设备之间以及存在与用户终端设备与服务器之间,如图1所示。本发明实施例中,针对推荐系统中一个经典技术问题——矩阵分解算法,提出有数据隐私理论保障的联邦学习框架,使得用户数据分布于不同数据汇集方(如用户终端设备)时,多方可以联合建模而相互之间不会泄露各自用户的隐私。
另外,本发明实施例中涉及到的数据汇集方,其实对应于用户个人的概念,即每个用户本身作为一个数据汇集方,拥有自己的数据,该数据通常存储在自己的用户终端设备(如手机等移动终端)中,而不会与其他用户分享。在本发明实施例中,每个用户拥有的数据可以是其对多个项目(比如多部电影)的评分值,因此,根据用户对多个项目的评分值,可以生成其对应的评分矩阵,通过联邦学习方式解决矩阵分解问题,便可以确定该评分矩阵对应的用户表达矩阵和项目表达矩阵,这两种表达矩阵即为推荐模型的模型参数。
实际上,这种情形相当于是一种完全分布式的设置情形:每个用户本地拥有自己的评分信息以及用户表达矩阵,而不会与其他用户分享,而所有用户最终会共享同一项目表达矩阵。
下面结合以下实施例对本申请提供的方案的执行过程进行详细说明。
图2为本发明实施例提供的一种分布式隐私保护学习系统的示意图,如图2所示,该系统包括用于进行联邦学习的多个用户终端设备以及服务器,为方便描述,图2中仅仅示意了包括第一用户终端设备、第二用户终端设备和第三用户终端设备的情形。
首先,每个用户终端设备基于本地收集的用户数据可以生成对应的评分矩阵。该评分矩阵反映相应用户对多个项目的评分情况。其中,每个用户终端设备具有相同的项目集,但因为各用户终端设备对应的用户不同,所以各用户终端设备具有不同的用户集。
实际应用中,在不同的推荐应用中,需要为用户进行推荐的项目有所不同,比如可以为用户推荐商品、音乐、电影,等等。因此,针对不同的信息推荐需求,用户终端设备需要本地收集的用户数据有所不同。比如,在商品推荐应用中,需要收集的是用户通过其用户终端设备上的某种电商类APP的商品下单数据;在音乐推荐应用中,需要收集的是用户通过其用户终端设备上的音乐APP的听歌数据;类似地,在视频推荐应用中,需要收集的是用户通过其用户终端设备观看、收藏的视频数据。
每个用户终端设备可以基于收集的上述用户数据,生成对应的评分矩阵。
比如,在上述商品推荐应用中,服务器可以确定需要被评价的多个商品(此时项目集为该商品集),将商品集通知各个用户终端设备,各用户终端设备基于本地收集的用户数据,如果发现收集到相应用户对其中某个商品的评分值,则该评分值即作为评分矩阵中与该商品对应的评分值,如果发现并未收集到相应用户对其中某些商品的评分值,则评分矩阵中对应的评分值设置为表示评分值未知的缺省值,比如符合“-”。
再比如,在上述电影推荐应用中,服务器可以确定需要被评价的多个电影(此时项目集为该电影集),将电影集通知各个用户终端设备,各用户终端设备基于本地收集的用户观影记录、电影票购买记录,生成对应的评分矩阵,其中,如果发现收集到相应用户观看或购买过某部电影,则评分矩阵中与该电影对应的评分值可以设为1,如果发现并未收集到相应用户对其中某些电影的观看或电影票购买记录,则评分矩阵中对应的评分值设置为表示评分值未知的缺省值。
上述评分矩阵中评分值的设置仅为举例,不以此为限。
图2中示意的服务器是指用于进行联邦学习的服务器,即联合各个用户终端设备以共同进行推荐模型训练的服务器。
实际应用中,该服务器可以位于云端。在云端可以部署有若干计算节点,每个计算节点中都具有计算、存储等处理资源。在云端,可以组织由多个计算节点来提供某种服务,当然,一个计算节点也可以提供一种或多种服务。云端提供该服务的方式可以是对外提供服务接口,用户调用该服务接口以使用相应的服务。服务接口包括软件开发工具包(Software Development Kit,简称SDK)、应用程序接口(Application ProgrammingInterface,简称API)等形式。
针对本发明实施例提供的方案,云端可以提供有模型训练服务的服务接口,用户终端设备通过调用该服务接口,以向云端触发对应的请求。云端确定响应该请求的计算节点,利用该计算节点中的处理资源执行本发明实施例中有关“服务器”的处理过程,此时,上述服务器即为响应该请求的计算节点。
概括来说,每个用户终端设备的评分矩阵最终通过联邦学习训练过程会被分解为用于预测相应用户对多个项目的评分值的用户表达矩阵和项目表达矩阵,因为每个用户终端设备的评分矩阵是相应用户的隐私数据,各个用户终端设备之间仅在被评分的项目集上有交集,因此,各个用户终端设备的评分矩阵以及用户表达矩阵在用户终端设备侧私有的,不会共享出去,而项目表达矩阵是共享的。因此,如图2中所示,推荐模型的训练结果是:各个用户终端设备得到自己私有的用户表达矩阵以及共享的一个项目表达矩阵,在图2中,示意的三个用户终端设备各自私有的用户表达矩阵分别表示为u1、u2、u3,共享的一个项目表达矩阵表示为V=[v1、v2…vm],其中,vi表示第i个项目对应的表达向量,这里假设一种m个项目。
其中,用户表达矩阵用于描述用户的偏好特征,即用户对具有什么属性特征的项目的感兴趣程度;项目表达矩阵用于描述项目的属性特征。针对一个评分矩阵来说,该评分矩阵近似等于其对应的用户表达矩阵和项目表达矩阵的点积相乘结果。
在上述举例中,比如针对第二用户终端设备来说,基于其对应的用户表达矩阵u2与项目表达矩阵V的点积结果,可以得知第二用户终端设备对应的用户2对m个项目的偏好程度(预测出的评分值即表示该偏好程度,分值越高,越偏好),从而,基于该偏好程度可以对这m个项目进行排序,根据排序结果为用户2推荐项目,比如推荐排序靠前的设定个数的项目。
如上文所述,本发明实施例中所要训练的推荐模型,其模型参数主要包括用户表达矩阵和项目表达矩阵。用户表达矩阵和项目表达矩阵是对评分矩阵进行矩阵分解得到的矩阵。也就是说,本发明实施例中,将推荐模型的训练转换为矩阵分解问题。在联邦学习框架下通过解决矩阵分解问题而实现推荐模型的训练,因此可以称为联邦矩阵分解方案。
本发明实施例中,不对推荐模型的实现结构进行限定,从功能角度来说,其主要包括嵌入层(embedding)以及输出层,其中,嵌入层用于对输入的评分矩阵进行编码以得到对应的用户表达(user embedding)矩阵和项目表达(item embedding)矩阵。输出层主要用于输出用户表达矩阵和项目表达矩阵的点积结果,计算损失函数。
可以理解的是,推荐模型的训练是通过循环迭代的方式不断进行训练的,也就是说,用户表达矩阵和项目表达矩阵会被不断的进行迭代更新,在每次迭代过程中,都会进行相应损失函数梯度的计算,以便通过诸如随机梯度下降法等反向传播算法进行相应表达矩阵的更新。
本发明实施例提供的联邦学习方式,并非是指服务器收集各个用户终端设备的评分矩阵,构成一个完整的评分矩阵,基于该完整的评分矩阵进行模型训练,最终将训练结果分发给各用户终端设备使用。而是各用户终端设备最终会基于各自收集的评分矩阵得到各自使用的一个推荐模型,每个用户终端设备私有的推荐模型因为其中的用户表达矩阵的不同而不同,只是在各自对应的推荐模型的训练过程中,需要借助于服务器来协助进行相关中间信息的聚合,以提高模型性能。
结合上述说明,在服务器联合多个用户终端设备进行各用户终端设备私有的推荐模型的训练过程中,概括来说,各用户终端设备以及服务器在训练过程中涉及到的主要操作如下:
目标用户终端设备,用于本地获取与目标用户对应的目标评分矩阵,在本地迭代训练所述目标评分矩阵对应的项目表达矩阵和用户表达矩阵的至少一次迭代过程中,执行如下操作:确定当前迭代中项目表达矩阵对应的损失函数梯度;将加入第一噪声的损失函数梯度发送至服务器,以使服务器基于接收到的各用户终端设备发送的加入有第一噪声的损失函数梯度确定当前存活的用户终端设备;响应于接收到服务器发送的存活通知,向服务器发送用于降低所述损失函数梯度上加入的噪声的第二噪声,以使服务器基于加入第一噪声的损失函数梯度以及第二噪声的聚合结果更新项目表达矩阵,并将更新后的项目表达矩阵发送至存活的用户终端设备;根据更新后的项目表达矩阵和当前迭代中的用户表达矩阵,执行下一次迭代;以及,根据训练截止时得到的用户表达矩阵和项目表达矩阵预测目标用户对多个项目的偏好程度,以根据该偏好程度为目标用户进行项目推荐。
服务器,接收各用户终端设备在当前迭代中各自上传的加入第一噪声的损失函数梯度,确定当前存活的用户终端设备,并向当前存活的用户终端设备发送存活通知;以及,接收所前存活的用户终端设备发送的第二噪声,基于加入第一噪声的损失函数梯度以及第二噪声的聚合结果更新项目表达矩阵,并将更新后的项目表达矩阵发送至存活的用户终端设备。
其中,目标用户终端设备是多个用户终端设备中的任一个用户终端设备,其对应的用户称为目标用户,其收集的评分矩阵称为目标评分矩阵。
由于在LFL中,用户终端设备共享给服务器的是项目表达矩阵对应的损失函数梯度信息,该损失函数梯度信息实际上可能会泄漏用户数据,因此,在向服务器的传输过程中通过引入噪声的方式进行保护,可以防止用户数据的泄漏,保证了用户数据的安全。
实际应用中,上述各用户终端设备的本地训练过程是通过训练迭代过程完成的,即会执行多次迭代过程,上述训练截止条件可以是达到设定的迭代次数。
在一次迭代过程中,会基于当前的用户表达矩阵和项目表达矩阵的点积结果输出一个预测评分值,通过对比该预测评分值与相应评分矩阵中的原始评分值的差异,可以得到损失函数值,进而计算损失函数的梯度,反向传播更新用户表达矩阵和项目表达矩阵,以进行下一轮的迭代。其中,损失函数的梯度包括与用户表达矩阵对应的梯度以及与项目表达矩阵对应的梯度。
在本发明实施例中,由于参与联邦学习训练的用户终端设备会非常多,而这些用户终端设备中可能很大部分是移动终端设备,其与服务器之间的网络连接状态可能不稳定,或者,有些用户终端设备在联合训练过程中需要忙于处理本地其他任务而突然拒绝参与训练,这都会导致用户退出(drop out)情况的发生,即用户终端设备变的不可用。因此,在联合众多用户终端设备进行联邦学习训练的过程中,在有用户终端设备退出的情况下,如何保证用户的隐私安全,是一个挑战。
可以采用差分隐私技术来保证用户的隐私安全。概括来说,采用差分隐私技术来保证用户隐私安全,主要就是在用户终端设备上传给服务器的训练参数中加入差分隐私噪声,其中,本发明实施例中,上述训练参数是指用户终端设备本地训练过程中得到的项目表达矩阵。
因此,需要确保在上述联邦学习训练中,即使有大量用户在一次或多次迭代中退出,差分隐私算法的隐私保证能力也保持不变。
先对差分隐私算法的隐私保证能力进行简单说明。
假设一共有n个用户(即n个用户终端设备)参与联邦学习,并假设n个用户终端设备并未不存在退出情况,那么在某一次迭代过程中,每个用户终端设备可以基于本次迭代中使用的用户表达矩阵和项目表达矩阵输出一个预测结果,基于该预测结果与对应的评分矩阵可以计算出损失函数,并计算出用户表达矩阵和项目表达矩阵分别对应的损失函数梯度,以便基于用户表达矩阵对应的损失函数梯度来更新用户表达矩阵以用于下一次迭代。而对于项目表达矩阵对应的损失函数梯度,则需要上传到服务器进行聚合处理。也就是说,服务器会聚合当前一次迭代中从各用户终端设备接收到的项目表达矩阵对应的损失函数梯度。而用户终端设备上传的项目表达矩阵对应的损失函数梯度可能泄露相应用户的评分情况,因此,在采用差分隐私算法来保证用户隐私信息时,在上传之前需要对该损失函数梯度加入差分隐私噪声。加入的差分隐私噪声是为了使得服务器的聚合结果满足差分隐私定义:(ε,δ)-DP。也就是说,n个用户终端设备上传的项目表达矩阵对应的损失函数梯度中各自包含的噪声的聚合结果满足:聚合后噪声的方差为σ2。那么,每个用户终端设备上传的上述损失函数梯度中需要加入的噪声的方差为σ2/n。由此可知,在没有用户终端设备退出的情况下,每个用户终端设备上传给服务器的梯度中仅需要加入方差为σ2/n的噪声,就可以使得聚合后梯度符合差分隐私要求。其中,ε为隐私保护预算,δ为设定的隐私置信度。
但是,实际应用中,用户终端设备退出的现象往往无法避免。而为了使得服务器侧聚合后梯度满足上述差分隐私要求,则需要得知用户终端设备的真实退出情况,因为退出情况会影响存活的用户终端设备在其得到的上述损失函数梯度上加入的噪声大小。其中,存活的用户终端设备是指没有退出(即可用)的用户终端设备。
因此,为了能够基于真实的用户终端设备退出情况来保证差分隐私要求,本发明实施例中提供了如下的方案:
以目标用户终端设备在多次迭代训练中的某一次迭代过程来说:对当前迭代中使用的用户表达矩阵和项目表达矩阵进行点积计算,得到预测结果,基于预测结果与目标评分矩阵的差异算出损失函数,并确定项目表达矩阵对应的损失函数梯度gv,将加入第一噪声的损失函数梯度gv’发送至服务器,以使服务器基于接收到的各用户终端设备发送的加入有第一噪声的损失函数梯度gv’确定当前存活的用户终端设备。服务器进而向存活的用户终端设备发送存活通知。假设目标用户终端设备接收到该存活通知,则向服务器发送用于降低损失函数梯度gv上加入的噪声的第二噪声。服务器最终对在本地迭代中接收到的全部的加入第一噪声的损失函数梯度gv’以及第二噪声进行聚合,基于聚合结果更新项目表达矩阵,并将更新后的项目表达矩阵发送至存活的用户终端设备,包括上述目标用户终端设备。目标用户终端设备根据接收的该更新后的项目表达矩阵和当前迭代中的用户表达矩阵,执行下一次迭代。
由此可见,在一次迭代过程中,会涉及到用户终端设备与服务器之间的两轮交互:第一轮交互中,用户终端设备向服务器发送加入了较大噪声(第一噪声)的梯度,使得服务器在观察出当前真实的用户终端设备存活数(或者说真实退出率)后,向存活用户终端设备发送存活通知;第二轮交互中,存活的用户终端设备向服务器发送另一噪声(第二噪声),用于消除此前发送的第一噪声中的冗余噪声,使得服务器的聚合结果满足与真实的用户终端设备退出率相匹配的差分隐私要求,实现对用户隐私的保护。
上述两轮交互策略的核心思想是:首先,为了应对最差的用户退出情形,先加入一个较大的噪声;之后,在观察到真实的用户退出情况后,再消除该较大噪声中“没有必要”的冗余噪声,以使得聚合后梯度符合差分隐私定义要求。
为便于描述,现在将第一用户终端设备和第二用户终端设备在某次迭代过程中计算出的项目表达矩阵对应的损失函数梯度分别表示为gv1和gv2,如图3中所示,将上述第一噪声表示为ξ,第一用户终端设备和第二用户终端设备可以在各自计算得到的上述梯度上分别加入该第一噪声:g'v1=gv1+ξ,g'v2=gv2+ξ。
实际应用中,可选地,第一噪声可以是零均值高斯噪声,表示为(0,ζ1σ2),σ2表示方差,ζ1表示方差系数。方差系数ζ1≥1/(1-w)n。其中,w为设定的用户退出率,n为用户终端设备总数,则(1-w)n表示设定存活数阈值。由此可见,能够容忍的用户退出率越高(越接近1),则为了保证差分隐私,需要加入的噪声越大。
如图3中所示,在第一轮交互(first round)中,第一用户终端设备和第二用户终端设备分别将g'v1以及g'v2发送至服务器。
服务器如果接收到第一用户终端设备发送的上述信息,则确定当前迭代中第一用户终端设备未退出(即是存活的),同理,确定当前迭代中第二用户终端设备是存活的,则服务器确定当前存活的用户终端数量为2,并向存活的第一用户终端设备和第二用户终端设备发送存活通知,该存活通知中可以包含当前存活的用户终端设备数量。
第一用户终端设备和第二用户终端设备在接收到上述存活通知后,触发与服务器的第二轮交互(second round):将第二噪声表示为Е,确定E=-ξ+ξ’,其中,ξ’称为第三噪声,则第二噪声为第三噪声与上述第一噪声的差值。第三噪声ξ’也可以是零均值高斯噪声,表示为(0,ζ2σ2),ζ2是第三噪声具有的方差系数,其取值位于当前存活的用户终端设备数量的倒数与所定存活数阈值的倒数之间。也即是,如果将当前存活的用户终端设备数量表示为U1,则(1/U1)≤ζ2≤1/(1-w)n。由此可见,第三噪声小于第一噪声。
之后,服务器在收到第一用户终端设备和第二用户终端设备各自上传的第二噪声E后,对g'v1,g'v2,-ξ+ξ’, -ξ+ξ’进行聚合处理,最终加和结果为gv1+gv2+ξ’+ ξ’。由此可见,实现了将原本加入的大噪声替换为基于真实的用户存活情况而确定的小噪声,使得存活用户终端设备的聚合后梯度符合差分隐私要求。之后,基于上述聚合结果更新项目表达矩阵,更新后的项目表达矩阵发送至各个用户终端设备。
上述举例中提到“目标用户终端设备在本地迭代训练目标评分矩阵对应的项目表达矩阵和用户表达矩阵的至少一次迭代过程中,可以执行上述两轮交互的梯度更新过程”,这里需要说明的是,首先,这里的梯度更新过程仅针对项目表达矩阵进行,而用户表达矩阵始终在用户终端设备本地,不会发送到服务器;其次,是在一次迭代过程中会涉及到用户终端设备与服务器之间的两轮通信交互过程,并非在不同次迭代中分别进行这两轮交互过程;再次,实际应用中,用户终端设备可以在每次迭代过程中都执行向服务器上报梯度的该处理过程,但是,也可以在每隔设定迭代次数之后执行一次,避免用户终端设备与服务器的过于频繁的交互,比如总迭代次数为200次,每隔10次执行一次上述两轮交互的处理过程,也就是说,每个10次迭代过程中的前9次都仅执行本地迭代更新的过程,第10次迭代过程算出的项目表达矩阵对应的损失函数梯度在上传服务器进行聚合。
以上介绍的是通过差分隐私机制来保障用户隐私安全的方案。本发明实施例中,还提供一种增强的用户隐私保障方案,该方案通过结合差分隐私机制和安全聚合(SecureAggregation,简称SA)机制来实现,通过SA机制,可以保证用户终端设备与服务器之间的通信安全。实际应用中,可以根据需求选择具体采用的SA算法,比如可以是单掩码策略、双掩码策略、秘密分享策略、密钥交换策略,等等。
概括来说,安全聚合的核心思想是:使用某种掩码或密钥对用户终端设备发出的梯度信息进行保护,即用户终端设备发出的梯度信息在达到服务器之前是被保密的,在服务器侧,其无法从单个用户终端设备上报的梯度信息中学习到任何内容,只有在聚合所有用户终端设备上传的梯度信息后,掩码或密钥被消除,服务器仅可见聚合后的梯度信息,从而不能区分各个用户终端设备上传的梯度信息。
为便于理解,结合图4来示例性说明上述安全聚合与差分隐私相结合使用的情形。
承接于图3所示实施例中的假设,将第一用户终端设备和第二用户终端设备在某次迭代过程中计算出的项目表达矩阵对应的损失函数梯度分别表示为gv1和gv2,如图4中所示,将上述第一噪声表示为ξ,第一用户终端设备和第二用户终端设备可以在各自计算得到的上述梯度上分别加入该第一噪声g'v1=gv1+ξ,g'v2=gv2+ξ。
如图4中所示,在第一轮交互(first round)中,第一用户终端设备和第二用户终端设备分别将g'v1以及g'v2发送至服务器。只是,在发送之前,第一用户终端设备和第二用户终端设备分别对加入第一噪声的梯度信息进行安全聚合的相关处理,简单来说就是对该梯度信息进行加密保护,具体加密措施根据采用的具体安全聚合策略而定,这里将第一用户终端设备和第二用户终端设备各自的加密结果表示为:SA(g'v1), SA(g'v2)。之后,将加密结果上传服务器。
服务器如果接收到第一用户终端设备发送的上述加密信息,则确定当前迭代中第一用户终端设备是存活的,同理,确定当前迭代中第二用户终端设备是存活的,则服务器确定当前存活的用户终端设备数量为2,并向存活的第一用户终端设备和第二用户终端设备发送存活通知,该存活通知中可以包含当前存活的用户终端设备数量。除此之外,服务器可以基于与用户终端设备侧采用的安全聚合策略相对应的处理方式,对收到的全部加密结果进行解码处理,以实现各用户终端设备上传的加入第一噪声后的梯度信息的聚合,在图4中,聚合结果表示为g'v= g'v1+ g'v2。也就是说,服务器得到的是两个用户终端设备的加入第一噪声后的梯度信息的加和结果,而并不得知具体的这两个梯度信息,因为这两个梯度信息被各自对应的密钥/掩码保护着。另外,服务器在确定出当前存活的用户终端设备数量后,判定该存活数量是否小于(1-w)n,若小于,则安全聚合算法停止处理,进入下一次迭代过程,否则,才向上述存活的第一用户终端设备和第二用户终端设备发送存活通知。
第一用户终端设备和第二用户终端设备在接收到上述存活通知后,触发与服务器的第二轮交互(second round):将第二噪声表示为Е,确定E=-ξ+ξ’,其中,ξ’称为第三噪声,则第二噪声为第三噪声与上述第一噪声的差值。第三噪声ξ’也可以是零均值高斯噪声,表示为(0,ζ2σ2),ζ2是第三噪声具有的方差系数,其取值位于当前存活的用户终端设备数量的倒数与所定存活数阈值的倒数之间。也即是,如果将当前存活的用户终端设备数量表示为U1,则(1/U1)≤ζ2≤1/(1-w)n。由此可见,第三噪声小于第一噪声。需要说明的是,由于第二轮交互中上传的仅为噪声信息,不包含用户隐私相关信息,因此此时用户终端设备可以以明文方式直接上传E到服务器。
之后,服务器在收到第一用户终端设备和第二用户终端设备各自上传的第二噪声E后,对g'v以及各用户终端设备上传的E进行聚合处理,最终聚合结果为gv1+gv2+ξ’+ ξ’。之后,基于上述聚合结果更新项目表达矩阵,更新后的项目表达矩阵发送至各个用户终端设备。
在一可选实施例中,服务器基于聚合后梯度更新项目表达矩阵后,可以在更新后
的项目表达矩阵上加入差分隐私噪声,将加入噪声的项目表达矩阵发送给各用户终端设
备,以保护用户隐私安全。此时加入的差分隐私噪声可以称为第四噪声,可选地,可以根据
差分隐私算法定义的参数以及训练过程设定的迭代次数,确定差分隐私噪声的方差。该第
四噪声可以是符合零均值高斯分布的高斯噪声,其方差可以设为:
在另一可选实施例中,为了避免模型训练过程中可能出现的过拟合问题,本发明实施例中还提供了一种表达裁剪(embedding clipping)策略。
实际上,每次迭代过程使用的用户表达矩阵、项目表达矩阵的变化程度会影响梯度的变化程度,如果梯度的变化程度过于敏感,则容易导致过拟合问题,因此,需要限制梯度的灵敏度。为了防止模型训练的过拟合问题,传统方案提供的策略是对梯度进行裁剪,以限制梯度的取值范围,比如限制在[-1,1]这个取值范围。比如当梯度较大时,通过这种梯度剪裁方式,将大梯度剪裁为更小的梯度,容易导致有效更新信息的丢失。
本发明实施例中提出了一种新的解决方案,表达裁剪:限制用户表达矩阵、项目表达矩阵中各个元素取值的范围。具体地,在基于各自对应的损失函数梯度更新上次迭代过程中使用的项目表达矩阵和用户表达矩阵后,即基于更新结果执行下一次迭代之前,可以根据多个用户终端设备各自收集的评分矩阵中的评分值上限,对本次更新后的项目表达矩阵和用户表达矩阵进行裁剪处理,以限制其中的向量取值。
举例来说,在根据第i-1次迭代过程中计算出的项目表达矩阵的损失函数梯度以及用户表达矩阵的损失函数梯度对第i-1次迭代过程中使用的项目表达矩阵和用户表达矩阵进行更新,以得到将在第i次迭代中使用的用户表达矩阵和项目表达矩阵之后,可以根据多个用户终端设备各自收集的评分矩阵中的评分值上限,对该第i次迭代对应的用户表达矩阵和项目表达矩阵进行映射处理,以限制该第i次迭代对应的用户表达矩阵和项目表达矩阵中各向量的取值。
假设多个用户终端设备由第一用户终端设备和第二用户终端设备构成,第一用户终端设备对应的第一评分矩阵中评分值的取值范围为[1,5], 第二用户终端设备对应的第二评分矩阵中评分值的取值范围为[1,3],则上述评分值上限为5。用户表达矩阵和项目表达矩阵中各向量的范数的平方值被限定在[0,5]这个范围,其中,可以采用2范数。也就是说,每次迭代过程中用户表达矩阵和项目表达矩阵中各向量的范数的平方值都在该范围之内,不同次迭代过程中用户表达矩阵和项目表达矩阵的变化程度有限,从而引起的损失函数梯度的变化程度有限。
以第i次迭代对应的用户表达矩阵和项目表达矩阵为例,对第i次迭代对应的用户表达矩阵和项目表达矩阵可以进行如下映射处理:
将其中的负数元素取值转换为零,即每个向量中的各个负数元素被转换为0;之后,对其中的每个向量:确定该向量的范数与所述评分值上限的平方根之间的比值,根据所述比值对所述向量中的元素进行归一化处理。
也就是说,对经过负数元素转换为0处理后的该向量中的各个元素,都处于上述分母的部分,实现对该向量的归一化处理。
以上对本发明实施例中提供的为保证用户隐私安全的差分隐私和安全聚合策略进行了介绍,下面整体上介绍一种联邦学习的整体流程的可选实现方案:
以参与联邦学习的多个用户终端设备中的任一用户终端设备(称为目标用户终端设备)为例,在训练过程中,其需要执行如下步骤:
本地随机初始化用户表达矩阵,以及获取服务器共享的初始化项目表达矩阵;
固定初始化项目表达矩阵不变,对用户表达矩阵执行设定迭代次数(如Tp次)的预训练,其中,每次更新的用户表达矩阵被基于多个用户终端设备各自收集的评分矩阵中的评分值上限进行了裁剪处理,以限制其中的向量取值;
之后,执行如下迭代训练过程,直到迭代次数达到设定值:
确定当前迭代中项目表达矩阵对应的损失函数梯度;
将加入第一噪声的损失函数梯度发送至服务器,以使所述服务器基于接收到的各用户终端设备发送的加入有所述第一噪声的损失函数梯度确定当前存活的用户终端设备;
响应于接收到所述服务器发送的存活通知,向所述服务器发送用于降低所述损失函数梯度上加入的噪声的第二噪声,以使所述服务器基于所述加入第一噪声的损失函数梯度以及所述第二噪声的聚合结果更新项目表达矩阵,并将更新后的项目表达矩阵发送至存活的用户终端设备;
根据所述更新后的项目表达矩阵和当前迭代中的用户表达矩阵,执行下一次迭代;
根据训练截止时得到的用户表达矩阵和项目表达矩阵预测所述目标用户对所述多个项目的偏好程度,以根据所述偏好程度为所述目标用户进行项目推荐。
为了能够直观的理解上述联邦学习的整体流程,下面结合图5示例性说明。
先对图5中示意的变量含义进行说明,其中,U(i)和V(i)分别用于表示第i次迭代过程使用的用户表达矩阵和项目表达矩阵,X(i)用于表示U(i)和V(i)的点积结果,Gu(i)和Gv(i)分别用于表示用户表达矩阵对应的损失函数梯度以及项目表达矩阵对应的损失函数梯度。另外,将第一噪声表示为ξ,第二噪声表示为E,其中,E= -ξ+ξ’,ξ’为上述第三噪声。用Z()代表上文中所述的表达裁剪处理,SA()表示上文所述的安全聚合上报处理。除此之外,还需要配置迭代次数。在本发明实施例中,可选地,可以设置两种迭代次数的变量,分别表示为Tp和T,其中,Tp表示预训练迭代次数,T用于表示预训练之后的总的迭代次数。下文中假设Tp=15, T=200。
在一可选实施例中,还可以将T拆分为两个变量:T1,T2,其中,T1表示将T划分成的组数,T2表示每组内包含的迭代次数。即T=T1*T2。之所以进行T1和T2的设置,是为了降低用户终端设备与服务器之间的交互次数,也就是说,用户终端设备不必在每次迭代后都将当前得到的项目表达矩阵上传服务器进行聚合处理,只需要在本地每迭代完T2次(小批量迭代)后才将此时得到的项目表达矩阵上传服务器进行聚合处理,从而降低用户终端设备与服务器之间的通信开销以及服务器的计算量。可以理解的是,当T2的上限取值为1时,即为每次迭代都将对应的项目表达矩阵上传服务器进行聚合的情形。
在进行模型训练过程中,首先,针对目标用户终端设备来说,需要进行作为模型参数的用户表达矩阵和项目表达矩阵的初始化。由于多个用户终端设备共享相同的项目集,但每个用户终端设备对应的用户是不同的,因此,用户表达矩阵可以在目标用户终端设备本地进行随机初始化处理,将初始化的用户表达矩阵表示为U(0),而项目表达矩阵由服务器进行初始化设置,并将初始化的用户表达矩阵分发给各用户终端设备,也就是说,各用户终端设备具有相同的初始化项目表达矩阵,而具有不同的初始化用户表达矩阵。初始化的项目表达矩阵表示为V(0)。
之后,目标用户终端设备可以先进行用户表达矩阵的预训练,此时,固定初始化的项目表达矩阵V(0)不变,每次迭代训练过程中仅更新用户表达矩阵,假设经过Tp=15次的预训练后得到的用户表达矩阵为U(15),此时的项目表达矩阵仍旧为V(0)。
在预训练阶段,可以仅执行上文所述的表达裁剪处理而不进行加噪声的处理。举例来说,如图5中所示,在第一次迭代过程中,目标用户终端设备基于初始化的U(0)和V(0)可以得到点积结果X(0),基于该点积结果与目标用户终端设备收集的目标评分矩阵的对比,可以计算得到用户表达矩阵对应的损失函数梯度:Gu(0),基于该损失函数梯度可以更新初始化的用户表达矩阵,更新结果为:U(1)。之后,对该用户表达矩阵进行裁剪处理,得到如下结果:Uz(1)=Z(U(1))。其中,裁剪处理如上文所述,是基于多个用户终端设备各自收集的评分矩阵中的评分值上限对更新后的用户表达矩阵中各向量的取值进行了裁剪处理,以限制其中的向量取值。以此类推,知道完成预训练阶段,最终得到如图5中示意的Uz(15)。
在经过上述预训练阶段之后,可以进行用户表达矩阵和项目表达矩阵的联合训练阶段。
那么如图5中所示,在 T=1时,目标用户终端设备基于Uz(15)和V(0)可以得到点积结果X(15),基于该点积结果与目标用户终端设备收集的目标评分矩阵的对比,可以计算得到损失函数梯度:Gu(15)和Gv(15),基于损失函数梯度Gu(15)可以更新用户表达矩阵得到U(16)。但是,对于项目表达矩阵的更新过程将执行如下操作:
目标用户终端设备将执行上述“两轮交互”过程:在Gv(15)上加入第一噪声ξ,并通过安全聚合方式将加入第一噪声的该梯度上报给服务器,在图5中表示为:SA(Gv(15) +ξ),以及在收到服务器发送的存活通知时,将第二噪声E= -ξ+ξ’发送到服务器。服务器聚合T=1时从各个存活的用户终端设备接收的上述两种信息,得到聚合后梯度,根据此时的聚合后梯度更新初始的V(0)以得到更新后的项目表达矩阵V(16),并将V(16)发送给当前存活的各用户终端设备。这里假设目标用户终端设备是存活的,因此,其在接收到V(16)后,可以对本地更新得到的U(16)以及从服务器接收到的V(16)进行表达裁剪处理,得到Uz(16)和Vz(16)。之后继续进行下一次迭代,以此类推,直到迭代次数达到T=200。
综上,本发明实施例提供的方案,针对推荐系统中一个经典技术问题即矩阵分解算法,提出有数据隐私理论保障的联邦学习框架。尤其针对联合多个用户各自的用户终端设备进行联邦训练的情形,提出了上述两轮交互机制,基于观察到的真实的用户退出率确定需要为各用户终端设备对应的梯度所加入的差分隐私噪声,以保证服务器端的梯度聚合结果满足差分隐私要求,从而实现用户隐私信息的保护。
上文中提到,本发明实施例提供的项目推荐方案可以适用于为用于进行商品推荐、影视作品推荐等各种信息推荐场景中。下面结合图6示例性说明为用户进行电影推荐的执行过程。
在图6中,假设n用户终端设备各自都收集有相应的n个用户的电影观看信息,基于各自收集的电影观看信息可以各自生成评分矩阵。比如,预先设定一个评分标准(不以该举例为限):如果某用户看过某部电影,则这部电影在相应评分矩阵中对应的评分值可以设为1,如果没有收集到该用户对某部电影的观看记录,则这部电影对应的评分值设为缺省值。在n个用户终端设备中各自生成有对应的评分矩阵之后,如图6中所示,n个用户终端设备可以先保持共享的初始化项目表达矩阵不变,在本地进行用户表达矩阵的多次(Tp次)迭代训练(即预训练用户表达矩阵)。之后,n个用户终端设备进行本地的多轮小批量训练,其中,小批量训练即为上文中的一组多次迭代训练。在一组内的每次迭代过程中,会进行用户表达矩阵和项目表达矩阵所对应的损失函数梯度计算、基于梯度更新用户表达矩阵和项目表达矩阵以及对更新后的用户表达矩阵和项目表达矩阵进行裁剪处理。另外,在每组的最后一次迭代过程中,可以针对当前得到的项目表达矩阵,进行“两轮交互”处理:通过安全聚合算法上传加入第一噪声的项目表达矩阵;收到存活通知后,上传第二噪声。这样,服务器基于当前这次迭代过程中接收到的各用户终端设备的上传信息,得到聚合梯度,并进行项目表达矩阵的更新,将更新后的项目表达矩阵发送给各用户终端设备,用户终端设备进而对本次迭代最终得到的用户表达矩阵和项目表达矩阵进行裁剪处理,进行下一次迭代。
在全部迭代完成之后,每个用户终端设备都可以得到各自私有的用户表达矩阵以及共享的项目表达矩阵。基于此,比如针对某用户i,可以通过使用其对应的用户表达矩阵与项目表达矩阵进行点乘,从而得到用户i对该项目表达矩阵对应的各个电影的预测评分值,该预测评分值即反映用户的偏好程度,分值越高越偏好,据此可以向用户推荐其更为偏好的电影。
以下将详细描述本发明的一个或多个实施例的项目推荐装置。本领域技术人员可以理解,这些装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图7为本发明实施例提供的一种项目推荐装置的结构示意图,该项目推荐装置位于用于进行联邦学习的多个用户终端设备中的任一用户终端设备,如图7所示,该装置包括:获取模块11、训练模块12、预测模块13。
获取模块11,用于本地获取与所述目标用户对应的目标评分矩阵,所述目标评分矩阵用于描述所述目标用户对多个项目的评分情况,所述多个用户终端设备各自收集的评分矩阵具有相同的项目集。
训练模块12,用于在本地迭代训练所述目标评分矩阵对应的项目表达矩阵和用户表达矩阵的至少一次迭代过程中,执行如下操作:确定当前迭代中项目表达矩阵对应的损失函数梯度;将加入第一噪声的损失函数梯度发送至服务器,以使所述服务器基于接收到的各用户终端设备发送的加入有所述第一噪声的损失函数梯度确定当前存活的用户终端设备;响应于接收到所述服务器发送的存活通知,向所述服务器发送用于降低所述损失函数梯度上加入的噪声的第二噪声,以使所述服务器基于所述加入第一噪声的损失函数梯度以及所述第二噪声的聚合结果更新项目表达矩阵,并将更新后的项目表达矩阵发送至存活的用户终端设备;根据所述更新后的项目表达矩阵和当前迭代中的用户表达矩阵,执行下一次迭代。
预测模块13,用于根据训练截止时得到的用户表达矩阵和项目表达矩阵预测所述目标用户对所述多个项目的偏好程度,以根据所述偏好程度为所述目标用户进行项目推荐。
可选地,所述第一噪声是零均值高斯噪声,所述第一噪声具有第一方差系数,所述第一方差系数大于或等于设定存活数阈值的倒数,所述设定存活数阈值根据设定的退出率和所述多个用户终端设备的总数确定。
可选地,所述存活通知中包括所述当前存活的用户终端设备数量;所述第二噪声是第三噪声与所述第一噪声的差值,所述第三噪声是零均值高斯噪声,所述第三噪声具有第二方差系数,所述第二方差系数的取值位于所述当前存活的用户终端设备数量的倒数与所述设定存活数阈值的倒数之间。
可选地,在将加入第一噪声的损失函数梯度发送至服务器的过程中,所述训练模块12具体用于:采用设定的安全聚合算法,对所述加入第一噪声的损失函数梯度进行加密处理,将加密结果发送至所述服务器。
可选地,在根据所述更新后的项目表达矩阵和当前迭代中的用户表达矩阵,执行下一次迭代之前,所述训练模块12还用于:根据所述多个用户终端设备各自收集的评分矩阵中的评分值上限,对所述更新后的项目表达矩阵和当前迭代中的用户表达矩阵进行裁剪处理,以限制其中的向量取值。
其中,可选地,所述裁剪处理包括:将其中的负数取值转换为零;对其中的每个向量:确定所述向量的范数与所述评分值上限的平方根之间的比值;根据所述比值对所述向量中的元素进行归一化处理。
可选地,目标评分矩阵对应的项目表达矩阵和用户表达矩阵的本地迭代训练过程,所述训练模块12还用于:
本地随机初始化用户表达矩阵,以及获取所述服务器共享的初始化项目表达矩阵;
固定所述初始化项目表达矩阵不变,对所述用户表达矩阵执行设定迭代次数的预训练,其中,每次更新的用户表达矩阵被基于所述多个用户终端设备各自收集的评分矩阵中的评分值上限进行了裁剪处理,以限制其中的向量取值。
图7所示装置可以执行前述实施例中用户终端设备执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图7所示项目推荐装置的结构可实现为一用户终端设备,比如智能手机、PC机、平板电脑等,所述用户终端设备是用于进行联邦学习的多个用户终端设备中的任一用户终端设备。如图8所示,该用户终端设备可以包括:处理器21、显示屏22。
处理器21,用于本地获取与所述目标用户对应的目标评分矩阵,所述目标评分矩阵用于描述所述目标用户对多个项目的评分情况,所述多个用户终端设备各自收集的评分矩阵具有相同的项目集;在本地迭代训练所述目标评分矩阵对应的项目表达矩阵和用户表达矩阵的至少一次迭代过程中,执行如下操作:确定当前迭代中项目表达矩阵对应的损失函数梯度;将加入第一噪声的损失函数梯度发送至服务器,以使所述服务器基于接收到的各用户终端设备发送的加入有所述第一噪声的损失函数梯度确定当前存活的用户终端设备;响应于接收到所述服务器发送的存活通知,向所述服务器发送用于降低所述损失函数梯度上加入的噪声的第二噪声,以使所述服务器基于所述加入第一噪声的损失函数梯度以及所述第二噪声的聚合结果更新项目表达矩阵,并将更新后的项目表达矩阵发送至存活的用户终端设备;根据所述更新后的项目表达矩阵和当前迭代中的用户表达矩阵,执行下一次迭代;以及,根据训练截止时得到的用户表达矩阵和项目表达矩阵预测所述目标用户对所述多个项目的偏好程度,以根据所述偏好程度为所述目标用户进行项目推荐。
所述显示屏22,耦合于处理器21,用于显示为所述目标用户推荐的项目。
如图8中所示,该用户终端设备还包括通信接口23,用于与服务器进行通信。
图9为本实施例提供的另一种用户终端设备的结构示意图,如图9所示,用户终端设备800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/ O)接口812,传感器组件814,以及通信组件816。
处理组件802通常控制用户终端设备800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述目标终端设备执行的方法步骤中的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在用户终端设备800的操作。这些数据的示例包括用于在用户终端设备800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为用户终端设备800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为用户终端设备800生成、管理和分配电力相关联的组件。
多媒体组件808包括在用户终端设备800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当用户终端设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当用户终端设备800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
输入/输出接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为用户终端设备800提供各个方面的状态评估。例如,传感器组件814可以检测到用户终端设备800的打开/关闭状态,组件的相对定位,例如所述组件为电子设备800的显示器和小键盘,传感器组件814还可以检测用户终端设备800或用户终端设备800一个组件的位置改变,用户与用户终端设备800接触的存在或不存在,用户终端设备800方位或加速/减速和用户终端设备800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于用户终端设备800和其他设备之间有线或无线方式的通信。用户终端设备800可以接入基于通信标准的无线网络,如WiFi,2G或3G或4G或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,用户终端设备800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由用户终端设备800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被用户终端设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的项目推荐方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种分布式隐私保护学习系统,其特征在于,包括:
用于进行联邦学习的多个用户终端设备以及服务器;所述多个用户终端设备与多个用户一一对应;所述多个用户终端设备各自收集的评分矩阵具有相同的项目集;
所述多个用户终端设备中的目标用户终端设备,用于本地获取与目标用户对应的目标评分矩阵,在本地迭代训练所述目标评分矩阵对应的项目表达矩阵和用户表达矩阵的至少一次迭代过程中,执行如下操作:确定当前迭代中项目表达矩阵对应的损失函数梯度;将加入第一噪声的损失函数梯度发送至所述服务器,以使所述服务器基于接收到的各用户终端设备发送的加入有所述第一噪声的损失函数梯度确定当前存活的用户终端设备;响应于接收到所述服务器发送的存活通知,向所述服务器发送用于降低所述损失函数梯度上加入的噪声的第二噪声,以使所述服务器基于所述加入第一噪声的损失函数梯度以及所述第二噪声的聚合结果更新项目表达矩阵,并将更新后的项目表达矩阵发送至存活的用户终端设备;根据所述更新后的项目表达矩阵和当前迭代中的用户表达矩阵,执行下一次迭代;以及,根据训练截止时得到的用户表达矩阵和项目表达矩阵预测所述目标用户对多个项目的偏好程度,以根据所述偏好程度为所述目标用户进行项目推荐;
所述服务器,用于接收各用户终端设备在当前迭代中各自上传的加入所述第一噪声的损失函数梯度,确定当前存活的用户终端设备,并向所述当前存活的用户终端设备发送存活通知;以及,接收所述当前存活的用户终端设备发送的所述第二噪声,基于所述加入第一噪声的损失函数梯度以及所述第二噪声的聚合结果更新项目表达矩阵,并将更新后的项目表达矩阵发送至存活的用户终端设备。
2.根据权利要求1所述的系统,其特征在于,所述第一噪声是零均值高斯噪声,所述第一噪声具有第一方差系数,所述第一方差系数大于或等于设定存活数阈值的倒数,所述设定存活数阈值根据设定的退出率和所述多个用户终端设备的总数确定;
所述存活通知中包括所述当前存活的用户终端设备数量;所述第二噪声是第三噪声与所述第一噪声的差值,所述第三噪声是零均值高斯噪声,所述第三噪声具有第二方差系数,所述第二方差系数的取值位于所述当前存活的用户终端设备数量的倒数与所述设定存活数阈值的倒数之间。
3.根据权利要求1所述的系统,其特征在于,在将加入第一噪声的损失函数梯度发送至服务器的过程中,所述目标用户终端设备用于:采用设定的安全聚合算法,对所述加入第一噪声的损失函数梯度进行加密处理,将加密结果发送至所述服务器。
4.一种分布式隐私保护学习的推荐方法,其特征在于,应用于用于进行联邦学习的多个用户终端设备中的目标用户终端设备,所述目标用户终端设备对应于目标用户,所述方法包括:
本地获取与所述目标用户对应的目标评分矩阵,所述目标评分矩阵用于描述所述目标用户对多个项目的评分情况,所述多个用户终端设备各自收集的评分矩阵具有相同的项目集;
在本地迭代训练所述目标评分矩阵对应的项目表达矩阵和用户表达矩阵的至少一次迭代过程中,执行如下操作:
确定当前迭代中项目表达矩阵对应的损失函数梯度;
将加入第一噪声的损失函数梯度发送至服务器,以使所述服务器基于接收到的各用户终端设备发送的加入有所述第一噪声的损失函数梯度确定当前存活的用户终端设备;
响应于接收到所述服务器发送的存活通知,向所述服务器发送用于降低所述损失函数梯度上加入的噪声的第二噪声,以使所述服务器基于所述加入第一噪声的损失函数梯度以及所述第二噪声的聚合结果更新项目表达矩阵,并将更新后的项目表达矩阵发送至存活的用户终端设备;
根据所述更新后的项目表达矩阵和当前迭代中的用户表达矩阵,执行下一次迭代;
根据训练截止时得到的用户表达矩阵和项目表达矩阵预测所述目标用户对所述多个项目的偏好程度,以根据所述偏好程度为所述目标用户进行项目推荐。
5.根据权利要求4所述的方法,其特征在于,所述第一噪声是零均值高斯噪声,所述第一噪声具有第一方差系数,所述第一方差系数大于或等于设定存活数阈值的倒数,所述设定存活数阈值根据设定的退出率和所述多个用户终端设备的总数确定。
6.根据权利要求5所述的方法,其特征在于,所述存活通知中包括所述当前存活的用户终端设备数量;
所述第二噪声是第三噪声与所述第一噪声的差值,所述第三噪声是零均值高斯噪声,所述第三噪声具有第二方差系数,所述第二方差系数的取值位于所述当前存活的用户终端设备数量的倒数与所述设定存活数阈值的倒数之间。
7.根据权利要求4所述的方法,其特征在于,所述将加入第一噪声的损失函数梯度发送至服务器,包括:
采用设定的安全聚合算法,对所述加入第一噪声的损失函数梯度进行加密处理,将加密结果发送至所述服务器。
8.根据权利要求4所述的方法,其特征在于,所述根据所述更新后的项目表达矩阵和当前迭代中的用户表达矩阵,执行下一次迭代之前,还包括:
根据所述多个用户终端设备各自收集的评分矩阵中的评分值上限,对所述更新后的项目表达矩阵和更新后的用户表达矩阵进行裁剪处理,以限制其中的向量取值。
9.根据权利要求8所述的方法,其特征在于,所述裁剪处理包括:
将其中的负数取值转换为零;
对其中的每个向量:确定所述向量的范数与所述评分值上限的平方根之间的比值;根据所述比值对所述向量中的元素进行归一化处理。
10.根据权利要求4所述的方法,其特征在于,所述目标评分矩阵对应的项目表达矩阵和用户表达矩阵的本地迭代训练过程,还包括:
本地随机初始化用户表达矩阵,以及获取所述服务器共享的初始化项目表达矩阵;
固定所述初始化项目表达矩阵不变,对所述用户表达矩阵执行设定迭代次数的预训练,其中,每次更新的用户表达矩阵被基于所述多个用户终端设备各自收集的评分矩阵中的评分值上限进行了裁剪处理,以限制其中的向量取值。
11.一种用户终端设备,其特征在于,所述用户终端设备是用于进行联邦学习的多个用户终端设备中的目标用户终端设备,所述目标用户终端设备对应于目标用户,包括:处理器、显示屏;
所述处理器,用于本地获取与所述目标用户对应的目标评分矩阵,所述目标评分矩阵用于描述所述目标用户对多个项目的评分情况,所述多个用户终端设备各自收集的评分矩阵具有相同的项目集;在本地迭代训练所述目标评分矩阵对应的项目表达矩阵和用户表达矩阵的至少一次迭代过程中,执行如下操作:确定当前迭代中项目表达矩阵对应的损失函数梯度;将加入第一噪声的损失函数梯度发送至服务器,以使所述服务器基于接收到的各用户终端设备发送的加入有所述第一噪声的损失函数梯度确定当前存活的用户终端设备;响应于接收到所述服务器发送的存活通知,向所述服务器发送用于降低所述损失函数梯度上加入的噪声的第二噪声,以使所述服务器基于所述加入第一噪声的损失函数梯度以及所述第二噪声的聚合结果更新项目表达矩阵,并将更新后的项目表达矩阵发送至存活的用户终端设备;根据所述更新后的项目表达矩阵和当前迭代中的用户表达矩阵,执行下一次迭代;以及,根据训练截止时得到的用户表达矩阵和项目表达矩阵预测所述目标用户对所述多个项目的偏好程度,以根据所述偏好程度为所述目标用户进行项目推荐;
所述显示屏,耦合于所述处理器,用于显示为所述目标用户推荐的项目。
12.一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被用户终端设备的处理器执行时,使所述处理器执行如权利要求4至10中任一项所述的分布式隐私保护学习的推荐方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111405913.8A CN113836584B (zh) | 2021-11-24 | 2021-11-24 | 分布式隐私保护学习的推荐方法、设备和学习系统 |
US17/993,832 US20230161905A1 (en) | 2021-11-24 | 2022-11-23 | Firecommendation method, device, and system for distributed privacy-preserving learning |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111405913.8A CN113836584B (zh) | 2021-11-24 | 2021-11-24 | 分布式隐私保护学习的推荐方法、设备和学习系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113836584A CN113836584A (zh) | 2021-12-24 |
CN113836584B true CN113836584B (zh) | 2022-04-15 |
Family
ID=78971578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111405913.8A Active CN113836584B (zh) | 2021-11-24 | 2021-11-24 | 分布式隐私保护学习的推荐方法、设备和学习系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230161905A1 (zh) |
CN (1) | CN113836584B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI800304B (zh) * | 2022-03-16 | 2023-04-21 | 英業達股份有限公司 | 使用同義資料的聯邦學習系統 |
CN116361561A (zh) * | 2023-05-30 | 2023-06-30 | 安徽省模式识别信息技术有限公司 | 一种基于变分推理的分布式跨界服务推荐方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209994A (zh) * | 2019-04-25 | 2019-09-06 | 广西师范大学 | 基于同态加密的矩阵分解推荐方法 |
CN112633356A (zh) * | 2020-12-18 | 2021-04-09 | 平安科技(深圳)有限公司 | 推荐模型的训练方法、推荐方法、装置、设备及存储介质 |
-
2021
- 2021-11-24 CN CN202111405913.8A patent/CN113836584B/zh active Active
-
2022
- 2022-11-23 US US17/993,832 patent/US20230161905A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209994A (zh) * | 2019-04-25 | 2019-09-06 | 广西师范大学 | 基于同态加密的矩阵分解推荐方法 |
CN112633356A (zh) * | 2020-12-18 | 2021-04-09 | 平安科技(深圳)有限公司 | 推荐模型的训练方法、推荐方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
"融合社交信息的矩阵分解推荐方法研究综述";刘华锋等;《软件学报》;20180228(第2期);第1001-1006页 * |
Also Published As
Publication number | Publication date |
---|---|
US20230161905A1 (en) | 2023-05-25 |
CN113836584A (zh) | 2021-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI717923B (zh) | 面部識別方法及裝置、電子設備和儲存介質 | |
CN113836584B (zh) | 分布式隐私保护学习的推荐方法、设备和学习系统 | |
US20170024611A1 (en) | Systems and methods for identifying users in media content based on poselets and neural networks | |
CN111178538A (zh) | 垂直数据的联邦学习方法及装置 | |
CN111489155B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114401154B (zh) | 一种数据处理方法、装置、密文计算引擎和用于数据处理的装置 | |
CN109977860A (zh) | 图像处理方法及装置、电子设备和存储介质 | |
CN114884645B (zh) | 一种隐私计算方法、装置和可读存储介质 | |
CN113033717B (zh) | 一种模型生成方法、装置以及用于模型生成的装置 | |
US11797888B2 (en) | System and method for automatically retraining machine learning models to predict bias in a data input | |
CN113821732B (zh) | 保护用户隐私的项目推荐方法、设备和学习系统 | |
CN112487415B (zh) | 计算任务的安全性检测方法及装置 | |
CN113779501B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
Alzahrani et al. | Maintaining user security in consumer electronics-based online recommender systems using federated learning | |
CN112580064B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
US11531916B2 (en) | System and method for obtaining recommendations using scalable cross-domain collaborative filtering | |
CN113821764B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
Xiao et al. | Privacy aware recommendation: Reinforcement learning based user profile perturbation | |
CA3038430A1 (en) | System and method for controlling visibility of elements of displayed electronic content | |
CN113779500B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112580063B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
US20240161559A1 (en) | Condition-enabling quick entry to enclosed structures and methods of use thereof | |
US11164247B2 (en) | Computer-implemented systems configured for providing real-time credit offers and credit negotiation for specified transactions and methods of use thereof | |
CN117034094B (zh) | 一种账户类型预测方法及账户类型预测装置 | |
CN117575763A (zh) | 交易处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |