CN105144625A - 隐私保护矩阵因子分解的方法和*** - Google Patents
隐私保护矩阵因子分解的方法和*** Download PDFInfo
- Publication number
- CN105144625A CN105144625A CN201480021770.2A CN201480021770A CN105144625A CN 105144625 A CN105144625 A CN 105144625A CN 201480021770 A CN201480021770 A CN 201480021770A CN 105144625 A CN105144625 A CN 105144625A
- Authority
- CN
- China
- Prior art keywords
- record
- circuit
- project
- user
- recsys
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/50—Oblivious transfer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Databases & Information Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
- Algebra (AREA)
Abstract
一种在推荐***中使用的通过矩阵因子分解来安全地对项目进行概况描述的方法和***,其通过:接收包括标志和项目的记录的集合作为输入,而不学习任何个体记录的内容;基于对记录的集合的矩阵因子分解来设计和评估混淆电路,以便以隐私保护的方式生成关于至少一个项目的项目概况描述,而不学习任何个体记录的内容或者除了项目概况描述之外的从记录提取的任何信息。该***包括三方:表示记录的来源的多个用户或数据库;将设计混淆电路的密码服务提供者以及将评估电路的推荐器***,使得记录以及除了项目概况描述之外的从记录提取的任何信息对除了它们的来源之外的各方保密。
Description
相关申请的交叉引用
本申请要求于2013年8月9日提交的序列号为61/864088并且标题为“AMETHODANDSYSTEMFORPRIVACYPRESERVINGMATRIXFACTORIZATION”、序列号为61/864085并且标题为“AMETHODANDSYSTEMFORPRIVACYPRESERVINGCOUNTING”、序列号为61/864094并且标题为“AMETHODANDSYSTEMFORPRIVACY-PRESERVINGRECOMMENDATIONTORATINGCONTRIBUTINGUSERSBASEDONMATRIXFACTORIZATION”以及序列号为61/864098并且标题为“AMETHODANDSYSTEMFORPRIVACY-PRESERVINGRECOMMENDATIONBASEDONMATRIXFACTORIZATIONANDRIDGEREGRESSION”的美国临时专利申请的权益和优先权。另外,本申请要求于2013年12月19日提交的序列号为PCT/US13/76353并且标题为“AMETHODANDSYSTEMFORPRIVACYPRESERVINGCOUNTING”的PCT专利申请以及于2013年3月4日提交的序列号为61/772404并且标题为“PRIVACY-PRESERVINGLINEARANDRIDGEREGRESSION”的美国临时专利申请的权益和优先权。出于所有目的,通过引用将所述临时申请和PCT申请的全部内容明确地并入本文。
技术领域
本原理涉及隐私保护推荐***和安全的多方计算,并且具体地涉及以隐私保护的方式,安全地执行被称作矩阵因子分解(matrixfactorization)的协同过滤(collaborativefiltering)技术,以便对项目进行概况描述(profile)。
背景技术
过去十年中的大量的研究和商业活动导致推荐***的广泛使用。这样的***向用户提供关于诸如电影、电视节目、音乐、书、酒店、餐馆等许多种类的项目的个性化推荐。图1例示一般推荐***100的组件:表示来源的许多用户110,以及处理用户的输入120并且输出推荐140的推荐器***(RecSys)130。为了接收有用的推荐,用户提供关于他们的偏好的大量的个人信息(用户的输入),信任推荐器将适当地管理该数据。
然而,诸如由B.Mobasher、R.Burke、R.Bhaumik和C.Williams(“Towardtrustworthyrecommendersystems:Ananalysisofattackmodelsandalgorithmrobustness”,ACMTrans.InternetTechn.,7(4),2007年)以及由E.G.Brassard、J.M.Fernandez和F.S.M.Onana(“ALAMBIC:Aprivacy-preservingrecommendersystemforelectroniccommerce”,Int.JournalInf.Sec.,7(5),2008年)进行的那些早期研究已经标识出推荐器可能滥用这样的信息或者将用户暴露于隐私威胁的许多方式。推荐器经常为了利益而被促使转售数据,而且还提取超出用户有意揭示的信息之外的信息。例如,即使是诸如电影评级或个人的TV观看历史这样的通常不被认为是敏感的用户偏好的记录也可以被用于推断用户的政治立场、性别等。随着新的数据挖掘和推断方法的发展,出于恶意或者善意的目的,可以根据推荐***中的数据来推断的隐私信息不断地进化。极端地,用户偏好的记录甚至可以被用于唯一地标识用户:A.Naranyan和V.Shmatikov在“Robustde-anonymizationoflargesparsedatasets”(IEEES&P,2008年)中通过对Netflix数据集去匿名化而惊人地证明了这一点。因此,即使推荐器不是恶意的,这样的数据的无意的泄露也使用户容易受到连锁攻击(linkageattack)(即,使用一个数据库作为辅助信息来危害不同的数据库中的隐私的攻击)的影响。
因为无法一直预见将来的推断威胁、意外的信息泄露或者知情人威胁(有目的的泄露),所以所关心的是建立一种推荐***,其中用户不会以明文的方式揭示他们的个人数据。现今没有在加密数据上操作的实际的推荐***。另外,所关心的是建立一种推荐器,其可以对项目进行概况描述,而永远不学习用户提供的评级,或者甚至用户已经对哪些项目进行了评级。本原理提出这样的安全的推荐***。
发明内容
本原理提出一种方法,其以隐私保护的方式,安全地执行被称作矩阵因子分解的协同过滤技术,以便对项目进行概况描述。具体地,所述方法接收用户对项目(例如电影、书)给出的评级作为输入,并且针对每个项目创建随后可以被用于预测用户可能对每个项目给出什么评级的概况描述。本原理允许基于矩阵因子分解的推荐器***执行该任务,而永远不学习用户的评级或者甚至用户已经对哪个项目进行了评级。
根据本原理的一个方面,提供一种通过矩阵因子分解来安全地对项目进行概况描述的方法,所述方法包括:接收来自来源的记录的集合(220),其中记录包含标志的集合和项目的集合,并且其中每个记录对除了所述来源之外的各方保密;接收至少一个单独项目(360);以及通过使用基于矩阵因子分解的混淆电路在推荐器(RecSys)(230)中评估记录的集合和所述至少一个单独项目(395),其中混淆电路的输出是所述至少一个单独项目的项目概况描述。所述方法还可以包括:在密码***提供者(Crypto-SystemProvider,CSP)中设计混淆电路以对记录的集合(380)和所述至少一个单独项目(360)执行矩阵因子分解,其中混淆电路输出所述至少一个单独项目的项目概况描述;以及将混淆电路传递(transfer)给RecSys(385)。所述方法中的设计的步骤可以包括:将矩阵因子分解操作设计为布尔电路(382)。所述方法中的设计矩阵因子分解电路的步骤可以包括:构造记录的集合的阵列(410);以及对阵列执行排序(420,440,470,490)、复制(430,450)、更新(470,480)、比较(480)以及计算梯度贡献(460)的操作。所述方法还可以包括:由所述CSP接收用于混淆电路的设计的参数的集合,其中参数由RecSys发送(330)。
根据本原理的一个方面,所述方法还可以包括:对记录的集合进行加密以创建加密的记录(330),其中在接收记录的集合的步骤之前执行加密的步骤。所述方法可以是这样的:公共加密密钥在CSP中生成并且发送给来源(320)。所述方法还可以包括:在CSP中生成公共加密密钥;以及将密钥发送给来源(320)。加密方案可以是部分同态加密(330),并且所述方法还可以包括:在RecSys中掩蔽加密的记录以创建经掩蔽的记录(340);以及在CSP中解密经掩蔽的记录以创建解密的经掩蔽的记录(350)。所述方法中的设计的步骤(380)可以包括:在处理解密的经掩蔽的记录之前在混淆电路内部对解密的经掩蔽的记录去掩蔽。所述方法还可以包括:在CSP与RecSys之间(392)执行健忘传递(390),其中RecSys接收解密的经掩蔽的记录的混淆值,并且记录对RecSys和CSP保密。
根据本原理的一个方面,所述方法还可以包括:接收每个记录的标志和项目的数量(220,310)。而且,所述方法可以包括:当每个记录的标志的数量小于表示最大值的值时,用空条目填充每个记录,以便创建标志的数量等于所述值的记录(312)。所述方法中的记录的集合的来源可以是数据库和用户的集合(210)中的一个,其中每个用户是一个记录的来源并且每个记录对除了它的相应的用户之外的各方保密。
根据本原理的一个方面,提供一种通过矩阵因子分解来安全地对项目进行概况描述的***,其包括将提供记录的集合的来源、将提供安全的矩阵因子分解电路的密码服务提供者(CSP)以及将评估记录的RecSys,使得记录对除了来源之外的各方保密,其中来源、CSP和RecSys每个都包括:处理器(602),用于接收至少一个输入/输出(604);以及与处理器进行信号通信的至少一个存储器(606,608),并且其中RecSys处理器被配置为:接收记录的集合,其中每个记录包括标志的集合和项目的集合,并且其中每个记录是保密的;接收至少一个单独项目;以及使用基于矩阵因子分解的混淆电路来评估记录的集合和所述至少一个单独项目,其中混淆电路的输出是所述至少一个单独项目的项目概况描述。***中的CSP处理器可以被配置为:设计混淆电路以对记录的集合和所述至少一个单独项目执行矩阵因子分解,其中混淆电路输出所述至少一个单独项目的项目概况描述;以及将混淆电路传递给RecSys。***中的CSP处理器可以通过被配置以将矩阵因子分解操作设计为布尔电路而被配置为设计混淆电路。***中的CSP处理器可以通过被配置以构造所述记录的集合的阵列以及对阵列执行排序、复制、更新、比较和计算梯度贡献的操作,而被配置为设计矩阵因子分解电路。***中的CSP处理器还可以被配置为:接收用于混淆电路的设计的参数的集合,其中参数由所述RecSys发送。
根据本原理的一个方面,所述***中的来源处理器可以被配置为:在提供所述记录的集合之前对记录的集合进行加密以创建加密的记录。所述***中的CSP处理器还可以被配置为:生成公共加密密钥;以及将密钥发送给来源。加密方案可以是部分同态加密,并且RecSys处理器还可以被配置为:掩蔽加密的记录以创建经掩蔽的记录;并且CSP处理器还可以被配置为:解密经掩蔽的记录以创建解密的经掩蔽的记录。所述***中的CSP处理器可以通过被配置以在处理解密的经掩蔽的记录之前在混淆电路内部对解密的经掩蔽的记录去掩蔽而被配置为设计混淆电路。RecSys处理器和CSP处理器还可以被配置为执行健忘传递,其中所述RecSys接收解密的经掩蔽的记录的混淆值,并且记录对RecSys和CSP保密。
根据本原理的一个方面,所述***中的RecSys处理器还可以被配置为:接收每个记录的标志的数量,其中由所述来源发送标志的数量。所述***中的来源处理器可以被配置为:当每个记录的标志的数量小于表示最大值的值时,用空条目填充每个记录,以便创建标志的数量等于所述值的记录。记录的集合的来源可以是数据库和用户的集合中的一个,其中如果来源是用户的集合,则每个用户包括用于接收至少一个输入/输出(604)的处理器(602)以及至少一个存储器(606,608),并且每个用户是一个记录的来源,其中每个记录对除了它的相应的用户之外的各方保密。
根据参照附图进行的对示例性实施例的详细描述,本原理的另外的特征和优点将变得显而易见。
附图说明
根据下面简要描述的以下示例性附图,可以更好地理解本原理:
图1例示现有技术推荐***的组件;
图2例示根据本原理的推荐***的组件;
图3(A、B和C)例示根据本原理的通过矩阵因子分解对项目进行概况描述的隐私保护方法的流程图;
图4(A、B和C)例示根据本原理的矩阵因子分解算法的流程图;
图5(A、B)例示根据本原理的通过矩阵因子分解算法构造的数据结构S;以及
图6例示被用于实现本原理的计算环境的框图。
具体实施方式
根据本原理,提供一种方法,其用于以隐私保护的方式,安全地执行被称作矩阵因子分解的协同过滤技术,以便对项目进行概况描述。
本原理的方法可以用作对记录的全集(corpus)中的至少一个项目进行概况描述的服务,每个记录包括标志和项目的集合。该集合或记录包括多于一个的记录,并且标志的集合包括至少一个标志。本领域技术人员在上面的示例中将认识到:记录可以表示用户;标志可以是用户对记录中的对应项目的评级。标志也可以表示与项目相关联的等级、权重或测量,并且项目可以表示人、任务或工作。例如,等级、权重或测量可以与个人的健康相关联,并且研究者试图关联人口的健康测量。或者它们可以与个人的生产力相关联,并且公司试图基于先前的历史来预测某些任务的时间表。但是,为了确保所涉及个人的隐私,服务希望做这件事,而不学习每个记录的内容或者除了项目概况描述之外的从记录提取的任何信息。具体地,服务不应当学习(a)每个标志/项目出现在哪些记录中,或者更不用说(b)在每个记录中出现什么标志/项目以及(c)标志的值。以下,可交换地使用例如“隐私保护”、“隐私的”和“安全的”这样的术语和措词,以指示被用户(记录)视为隐私的信息仅被用户知道。
存在与以隐私保护的方式来执行矩阵因子分解相关联的若干挑战。首先,为了处理隐私担忧,应当在推荐器未曾学习用户的评级或者甚至他们已经对哪些项目进行了评级的情况下执行矩阵因子分解。后者要求是关键:早期研究显示即使是知道用户已经对哪个电影进行了评级也可以被用于推断例如他们的性别。第二,这样的隐私保护算法应当是高效率的,并且随着用户提交的评级的数量而适度地(例如线性地)调整(scale)。隐私需求暗示着矩阵因子分解算法应当是数据健忘的(data-oblivious):它的执行不应当取决于用户输入。而且,由矩阵因子分解执行的操作是非线性的;因此,在这二个约束下,并不先验地清楚如何高效率地实现矩阵因子分解。最后,在实际的真实世界场景中,用户具有有限的通信和计算资源,并且在他们已经提供了他们的数据之后不应当被期待为保持在线。代替地,期望具有“发送并忘记(sendandforget)”类型的解决方案,其可以从推荐服务在离线和在线之间来回移动的用户存在时起作用。
作为矩阵因子分解的概述,在标准的“协同过滤”设置中,n个用户对m个可能项目(例如电影)的子集进行评级。对于用户的集合[n]:={1,...,n}以及项目的集合[m]:={1,...,m},由表示已经生成评级的用户/项目对,并且由表示评级的总数量。最后,对于由表示针对项目j由用户i生成的评级。在实际设置中,n和m两者都是很大的数,典型地,其范围在104与106之间。另外,所提供的评级是稀疏的,即,M=O(n+m),其比可能的评级的总数量n×m小得多。这与典型的用户行为一致,因为每个用户可能仅对有限数量的项目进行评级(不取决于m,即“目录”大小)。
给定中的评级,推荐器***希望针对中的用户/项目对来预测评级。矩阵因子分解通过在现有评级上拟合双线性模型来执行该任务。具体地,对于某个小的维度假设存在矢量i∈[n]以及j∈[m],使得
ri,j=<ui,vj>+εi,j(1)
其中εi,j是i.i.d.(independentandidenticallydistributed,独立同分布)高斯(Gaussian)随机变量。矢量ui和vj分别被称为用户概况描述和项目概况描述,并且<ui,vj>是矢量的内积。对于第i行包括用户i的概况描述的n×d矩阵,所使用的记法是并且对于第j行包括项目j的概况描述的m×d矩阵,所使用的记法是
给定评级推荐器通常执行下面的正则化最小二乘最小化来计算概况描述U和V:对于某个正的λ,μ>0,
本领域技术人员将认识到,假设在概况描述U和V上的高斯先验(Gaussianpriors),(2)中的最小化对应于U和V的最大似然估计。注意,具有用户和项目概况描述,推荐器可以随后预测评级使得对于用户i和项目j:
(2)中的正则化均方误差不是凸函数;已经在文献中提出用于执行该最小化的若干方法。本原理关注于作为在实际中所使用的流行方法的如下描述的梯度下降(gradientdescent)。用F(U,V)表示(2)中的正则化均方误差,梯度下降通过根据以下适配规则迭代地适配概况描述U和V来操作:
其中,γ>0是小的增益因子(gainfactor),并且
其中,U(0)和V(0)由均匀随机范数1的行(uniformlyrandomnorm1rows)构成(亦即,概况描述是从范数1的球(thenorm1ball)u.a.r.(uniformlyatrandom,随机均匀地)选择出的)。
本原理的另一个方面提出基于排序网络(sortingnetwork)和姚氏混淆电路(Yao'sgarbledcircuit)的用于矩阵因子分解的安全的多方计算(multi-partycomputation,MPC)算法。安全的多方计算(MPC)最初由A.Chi-ChihYao在二十世纪八十年代提出。姚氏协议(也被称为混淆电路)是用于安全的多方计算的通用方法。在它的由V.Nikolaenko、U.Weinsberg、S.Ioannidis、M.Joye、D.Boneh和N.Taft根据“Privacy-preservingRidgeRegressiononHundredsofmillionsofrecords”(IEEES&P,2013年)调整的变型中,协议在n个输入所有者的集合(其中,ai表示用户i的隐私输入,1≤i≤n)、希望评估f(a1,...,an)的评估器(Evaluator)以及第三方即密码服务提供者(Crypto-ServiceProvider,CSP)之间运行。在协议结束时,评估器学习f(a1,...,an)的值,但是没有一方学习比从该输出值揭示的更多的东西。协议要求函数f可以表现为布尔电路(Booleancircuit),例如表现为或(OR)、与(AND)、非(NOT)和异或(XOR)门的图表(graph),并且评估器和CSP不串通(collude)。
最近存在许多实现姚氏混淆电路的框架。一种通用MPC的不同方法基于秘密共享(secret-sharing)方案,另一种基于全同态加密(fully-homomorphicencryption,FHE)。已经针对多种线性代数操作提出秘密共享方案,诸如求解线性***、线性回归和拍卖(auctions)。秘密共享要求至少三个不串通的在线权限,它们平等地共享计算的工作量,并且通过多轮(overmultiplerounds)进行通信;只要它们中没有两个串通,则计算就是安全的。混淆电路假设仅两个不串通的权限以及少得多的通信,其更适合于评估器是云服务并且密码服务提供者(CSP)以可信硬件组件来实现的情况。
不管所使用的密码学原语如何,在构建用于安全的多方计算的高效率算法中的主要挑战在于以数据健忘的方式来实现算法,亦即,使得执行路径不取决于输入。一般地,可在有限时间T内执行的任何RAM程序可以转换成O(T^3)图灵机(Turingmachine,TM),这是由AlanTuring发明的理论计算机,其用作数学计算的理想化模型,其中O(T^3)表示复杂度与T3成比例。另外,任何有限T时间TM可以转换成大小为O(TlogT)的电路,其是数据健忘的。这暗示着任何有限T时间可执行的RAM程序可以转换成具有O(T^3logT)复杂度的数据健忘的电路。这样的复杂度太高,并且在多数应用中是禁止的。在W.Du和M.J.Atallah的“Securemulti-partycomputationproblemsandtheirapplications:Areviewandopenproblems”(NewSecurityParadigmsWorkshop,2001年)中可以找到针对不知道高效率的数据健忘的实现方式的算法的调查,矩阵因子分解问题宽泛地落入在数据挖掘总结问题(DataMiningsummarizationproblems)的范畴中。
排序网络最初被开发以允许排序并行化(sortingparallelization)以及高效率的硬件实现方式。这些网络是将输入序列(a1,a2,...,an)排序成单调增加的序列(a′1,a′2,...a′n)的电路。它们通过将比较并交换(compare-and-swap)电路(它们的主要构建块)布线在一起来构造。若干工作出于密码学目的而使用排序网络的数据健忘性。但是,加密并不总是足以确保隐私。如果对手可以观察你对加密存储的访问模式,则他们仍然可以学习关于你的应用正在做什么的敏感信息。健忘的RAM通过在它被访问时持续地置乱(shuffle)存储器来解决这个问题;从而完全隐藏什么数据正在被访问或者甚至是先前何时访问过它。在健忘的RAM中,排序被用作生成数据健忘的随机排列的手段。最近,它已经被用于执行凸包、所有最近近邻(all-nearestneighbor)以及加权集合交集(weightedsetintersection)的数据健忘的计算。
本原理提出基于安全的多方排序的方法,其接近于加权集合交集但是并入混淆电路。图2图示根据本原理的隐私保护矩阵因子分解***中的参与者或各方。它们如下:
I.推荐器***(RecSys)230,即执行隐私保护矩阵因子分解操作的实体。具体地,RecSys希望学习从对用户评级的矩阵因子分解所提取的项目概况描述V240,而不学习关于用户的或者除了项目概况描述之外的从用户数据提取的任何有用的东西。
II.密码服务提供者(CSP)250,其将使得能够进行安全计算,而不学习关于用户的或者从用户数据提取的任何有用的东西。
III.来源,其包括一个或多个用户210,每个具有针对项目的集合的评级的集合220。每个用户i∈[n]同意通过矩阵因子分解基于他们的评级对项目进行概况描述,但是不希望向推荐器揭示他们的评级或者甚至他们已经对哪些项目进行了评级。等同地,来源可以表示包含一个或多个用户的数据的数据库。
根据本原理,提出一种协议,其允许RecSys执行矩阵因子分解以提供项目概况描述,同时RecSys和CSP都不学习除了项目概况描述(亦即V,作为图2中的RecSys的唯一的输出)之外的任何东西。具体地,两者均不应当学习用户的评级或者甚至用户实际上已经对哪些项目进行了评级。本领域技术人员将清楚地认识到,允许推荐器学习用户和项目概况描述的协议揭示过多:在这样的设计中,推荐器可以根据(3)中的内积来很一般地推断用户的评级。因此,本原理提出推荐器仅学习项目概况描述的隐私保护协议。
项目概况描述可以被看作将项目定义为对用户/记录的集合的评级的函数的矩阵。类似地,用户概况描述可以被看作将用户定义为对用户/记录的集合的评级的函数的矩阵。在这个意义上,项目概况描述是项目的赞成/不赞成的测量,即项目的特征或特性的反映。并且用户概况描述是用户的喜欢/不喜欢的测量,即用户个性的反映。如果基于用户/记录的大集合来计算,则项目或用户概况描述可以分别被看作项目或用户的独立的测量。本领域技术人员将认识到,单独学习项目概况描述是实用的。首先,通过矩阵因子分解在中嵌入项目允许推荐器推断(并且编码)相似性:概况描述具有小的欧几里得距离(Euclideandistance)的项目是由用户相似地评级的项目。因此,在推荐的实际任务之外,学习项目概况描述的任务对于推荐器是感兴趣的。具体地,用户可能不需要或希望接收推荐,如果来源是数据库,则可能如此。第二,如果获得项目概况描述,则存在如下琐事:推荐器可以使用它们来提供相关的推荐,而不需要用户的任何另外的数据揭示。推荐器可以将V发送给用户(或者公开地发布它);知道她针对每个项目的评级,用户i可以通过关于她的(隐私)概况描述ui来求解(2),来推断她的(隐私)概况描述ui;对于给定的V(这是可分离的问题),并且每个用户可以通过在她的评级上执行岭回归(ridgeregression)来获得她的概况描述。具有ui和V,用户可以局部地通过(4)来预测她针对其他项目的所有评级。这是由发明人在与本申请相同的日期提交的、标题为“AMETHODANDSYSTEMFORPRIVACY-PRESERVINGRECOMMENDATIONBASEDONMATRIXFACTORIZATIONANDRIDGEREGRESSION”的共同未决申请的主题。
上面讨论的两个场景假定推荐器或用户都不反对V的公开发布。为了简单性并且由于对推荐器利用这样的协议,本原理允许推荐器学习项目概况描述。但是,如发明人在与本申请相同的日期提交的、标题为“AMETHODANDSYSTEMFORPRIVACY-PRESERVINGRECOMMENDATIONTORATINGCONTRIBUTIONUSERSBASEDONMATRIXFACTORIZATION”和“AMETHODANDSYSTEMFORPRIVACY-PRESERVINGRECOMMENDATIONBASEDONMATRIXFACTORIZATIONANDRIDGEREGRESSION”的共同未决申请中描述的那样,还存在扩展这种设计的方法,使得用户学习他们的预测的评级,同时推荐器不学习关于用户的或者从用户数据提取的任何有用的东西,甚至不学习V。
本领域技术人员将理解,通常,关于用户的概况描述V或评级预测的输出可以揭示关于其他用户的评级的一些事情。在例如仅存在两个用户的不合理的(pathological)情况下,两种揭示都可以让用户发现彼此的评级。本原理不关注这样的情况。当项目概况描述或个体评级的揭示的隐私暗示不可容忍时,诸如差别隐私(differentialprivacy)这样的技术可以被用于向这些输出添加噪声并且防范这样的泄露。
根据本原理,假设在诚实但好奇的(curious)威胁模型(threatmodel)下将保持安全性保障。换句话说,RecSys和CSP遵循所规定的协议;但是,这些有关各方可以选择分析协议转录本(protocoltranscripts)(甚至是离线地),以便推断某些另外的信息。另外假设推荐器和CSP不串通。
本原理的优选实施例包括满足图3中的流程图300并且通过下面的步骤描述的协议:
P1.来源向RecSys报告针对每个参与的记录将要提交多少对标志(评级)和项目315。该集合或记录包括多于一个的记录,并且针对每个记录的标志的集合包括至少一个标志。
P2.CSP生成用于部分同态方案的公共加密密钥ξ,并且将其发送给所有用户(来源)320。本领域技术人员将意识到,同态加密是一种形式的加密,其允许对密文执行特定类型的计算并且获得解密后匹配对明文执行的操作的结果的加密结果。例如,一个人可以添加两个加密的数,然后另一个人可以解密该结果,而他们中的任何一个都不能发现各个数的值。部分同态加密关于对明文的一个操作(加法或乘法)是同态的。部分同态加密可以关于对标量的加法和乘法是同态的。
P3.每个用户使用其密钥来加密其数据,并且将她的加密数据发送给RecSys330。具体地,对于每对(j,ri,j),其中j是项目id并且ri,j是用户i对j给出的评级,用户使用公共加密密钥来加密该对。
P4.RecSys将掩蔽(mask)η添加到加密数据,并且将经掩蔽和加密的数据发送给CSP340。本领域技术人员将理解,掩蔽是一种形式的数据迷惑(dataobfuscation),并且可以与添加随机数生成器或由随机数置乱一样简单。
P5.CSP解密经掩蔽的数据350。
P6.RecSys接收或确定项目360的单独的集合,在其上计算矩阵因子分解。项目的该集合可以包括全集中的所有项目、所有项目的子集或者甚至记录中不存在的项目。
P7.RecSys向CSP发送构建混淆电路所需的完整规范370,包括用户和项目概况描述的维度(亦即参数d)372、评级的总数量(亦即参数M)374、用户的总数量和项目的总数量376以及用于表示混淆电路中的实数的整数和小数部分的位的数量378。如果并非所有项目都存在于记录中,则项目的单独的集合将包括在参数中。
P8.CSP准备本领域技术人员已知的作为对关于项目的单独的集合的记录执行矩阵因子分解380的混淆电路。为了被混淆,首先将电路写为布尔电路382。给电路的输入包括RecSys用于掩蔽用户数据的掩蔽。在电路内部,掩蔽被用于对数据去掩蔽(unmask),然后执行矩阵因子分解。电路的输出是V,即项目概况描述。不获得关于任何个体记录的内容以及除了项目概况描述之外的从记录提取的任何信息的内容的知识。
P9.CSP将用于矩阵因子分解的混淆电路发送给RecSys385。具体地,CSP将门(gate)处理成混淆表(garbledtable)并且以由电路结构定义的次序将它们传送给RecSys。
P10.通过RecSys与CSP之间392的健忘传递390,RecSys学习经解密和掩蔽的记录的混淆值,而它自身或CSP都不学习实际值。本领域技术人员将理解,健忘传递是一种类型的传递,其中发送者将可能许多条的信息中的一条传递给接收者,其关于已经传递了哪条(如果有)保持是健忘的。
P11.RecSys评估计算项目概况描述V的混淆电路并且输出项目概况描述V395。
在技术上,除了V之外,该协议还泄露由每个用户提供的标志的数量。可以通过简单的协议修改来矫正312,例如通过适当地用“空”条目“填充”所提交的记录直至达到预先设置的最大数量为止。为了简单,在没有该“填充”操作的情况下描述协议。
因为混淆电路仅可以被使用一次,所以对相同评级的任何将来的计算将需要用户通过代理健忘传递来重新提交他们的数据。代理健忘传递是涉及3方或更多方的健忘传递。出于这个原因,本原理的协议采用了混合方法,将公共密钥加密与混淆电路相结合。
在本原理中,公共密钥加密被使用如下:每个用户i使用语义上安全的加密算法通过由CSP提供的公共密钥pkCSP来加密她的各个输入(j,ri,j),并且针对被评级的每个项目j,用户将具有的对(i,c)提交给RecSys,其中总共提交M个评级。提交了她的评级的用户可以离线。
CSP公共密钥加密算法是部分同态的:可以在不知道对应的解密密钥的情况下,将常量应用于加密的消息。显然,诸如Paillier或Regev这样的加法同态方案(additivelyhomomorphicscheme)也可以被用于添加常量,但是在该情况下,仅为部分同态的散列ElGamal(hash-ElGamal)就足够了,并且可以更高效率地实现。
当从用户接收M个评级时(记得加密是部分同态的)RecSys用随机掩蔽来遮掩它们,其中,η是随机或伪随机变量,并且是异或操作。RecSys将它们与构建混淆电路所需的完整规范一起发送给CSP。具体地,RecSys指定用户和项目概况描述的维度(亦即参数d)、评级的总数量(亦即参数M)、用户的总数量和项目的总数量以及用于表示混淆电路中的实数的整数和小数部分的位的数量。
只要RecSys希望在M个累积的评级上执行矩阵因子分解,它就将M报告给CSP。CSP可以向RecSys提供(a)解密输入、然后(b)执行矩阵因子分解的混淆电路。在V.Nikolaenko、U.Weinsberg、S.Ioannidis、M.Joye、D.Boneh和N.Taft的“Privacy-preservingridgeregressiononhundredsofmillionsofrecords”(IEEES&P,2013年)中,通过使用掩蔽和同态加密来避免在电路内的解密。本原理将这个想法用于矩阵因子分解,但是仅需要部分同态加密方案。
当接收加密时,CSP解密它们并且取得经掩蔽的值然后,使用矩阵因子分解作为蓝图(blueprint),CSP准备姚氏混淆电路,姚氏混淆电路:
(a)将与掩蔽η相对应的混淆值作为输入;
(b)从中去除掩蔽η以恢复对应的元组(i,j,ri,j);
(c)执行矩阵因子分解;以及
(d)输出项目概况描述V。
通过在(4)和(5)中概述的梯度下降的操作来计算矩阵因子分解涉及实数的加法、减法和乘法。这些操作可以在电路中被高效率地实现。梯度下降(4)的K次迭代对应于K个电路“层”,每个根据先前层中的值来计算概况描述的新的值。电路的输出是项目概况描述V,同时丢弃用户概况描述。
本领域技术人员将注意到,当以明文(例如以RAM模型)执行操作时,计算梯度下降的每次迭代的时间复杂度是O(M)。每个梯度(5)的计算涉及添加2M个项目,并且可以在O(n+m)=O(M)内执行概况描述更新(4)。
将梯度下降实现为电路的主要挑战在于高效率地做这件事。为了例示这一点,可以考虑下面的朴素的()实现方式:
Q1.对于每对(i,j)∈[n]×[m],生成根据输入来计算指标的电路,如果i对j进行了评级,则指标为1,否则为0。
Q2.在每次迭代时,使用这些电路的输出,分别计算每个项目和用户梯度作为m和n乘积的求和,其中:
不幸地,该实现方式是低效率的:梯度下降算法的每次迭代将具有O(n×m)的电路复杂度。当M<<n×m时(这是通常是实际中的情况),上面的电路比以明文的梯度下降的效率低得多。实际上,二次式的成本O(n×m)对于多数数据集是禁止的。朴素的实现方式的低效率性起因于不能在电路设计时标识哪些用户对项目进行评级以及哪些项目被用户进行了评级,减弱了利用数据中的固有的稀疏性的能力。
相反地,根据本原理的优选实施例,基于复杂度为O((n+m+M)log2(n+m+M))(亦即,在以明文的实现方式的多对数因子内)的排序网络来提供电路实现方式。总之,将与元组(i,j,ri,j)相对应的输入数据以及用于用户和项目概况描述这两者的占位符⊥一起存储在阵列中。通过适当的排序操作,用户或项目概况描述可以被置于靠近它们与之共享标识符的输入。线性通过数据允许梯度的计算以及概况描述的更新。在排序时,将占位符视为+∞,亦即大于任何其他数。
根据本原理的优选实施例的并且满足图4中的流程400的矩阵因子分解算法可以由下面的步骤描述:
C1.初始化矩阵S,410
算法接收集合或者等效地接收元组作为输入,并且构造元组的n+m+M阵列。S的前n个和m个元组分别用作用户和项目概况描述的占位符,同时剩余的M个元组存储输入Li。更具体地,对于每个用户i∈[n],算法构造元组(i,⊥,0,⊥,ui,⊥),其中是随机选择的用户i的初始概况描述。对于每个项目j∈[m],算法构造元组(⊥,j,0,⊥,⊥,vj,⊥),其中也是随机选择的项目j的初始概况描述。最后,对于每个对算法构造对应的元组(i,j,1,ri,j,⊥,⊥),其中ri,j是用户i对项目j的评级。得到的阵列如在图5(A)中所示。用表示第k个元组的第个元素,这些元素起到以下作用:
(a)s1,k:[n]中的用户标识符;
(b)s2,k:[m]中的项目标识符;
(c)s3,k:指示元组是“概况描述”还是“输入”元组的二元的标记;
(d)s4,k:“输入”元组中的评级;
(e)s5,k:中的用户概况描述;
(f)s6,k:中的项目概况描述。
C2.关于用户id(关于行1和3)以增加的次序对元组排序,420。如果两个id相等,则通过比较元组标记,亦即每个元组中的第三个元素,来打破平局。因此,在排序之后,每个“用户概况描述”元组继之以具有相同id的“输入”元组。
C3.复制用户概况描述(左侧通过(leftpass)),430:
s5,k←s3,k*s5,k-1+(1-s3,k)*s5,k对于k=2,...,M+n
C4.关于项目id(关于行2和3)以增加的次序对元组排序440。如果两个id相等,则通过比较元组标记,亦即每个元组中的第三个元素,来打破平局。
C5.复制项目概况描述(左侧通过)450:
s6,k←s3,k*s6,k-1+(1-s3,k)*s6,k对于k=2,...,M+m
C6.计算梯度贡献460
对于
C7.更新项目概况描述(右侧通过(rightpass)),470:
s6,k←s6,k+s3,k+1*s6,k+1+(1-s3,k)*3γμs6,k.对于k=M+n-1,...,1
C8.关于行1和3对元组排序,475
C9.更新用户概况描述(右侧通过),480:
s5,k←s5,k+s3,k+1*s5,k+1+(1-s3,k)*2γλs5,k对于k=M+n-1,...,1
C10.如果迭代的数量小于K,则转到C3,485
C11.关于行3和2对元组排序,490
C12.对于k=1,...,m,输出项目概况描述s6,k,495,其中输出可以被限制为至少一个项目概况描述。
梯度下降迭代包括下面三个主要的步骤:
A.复制概况描述:在每次迭代时,将每个相应的用户i和每个项目j的概况描述ui和vj复制到i和j出现的每个“输入”元组的对应的元素s5,k和s6,k。这在算法的步骤C2至C5中实现。为了复制例如用户概况描述,使用用户id(亦即s1,k)作为主索引并且使用标记(亦即s3,k)作为次索引对S排序。应用于S的初始状态的这样的排序的示例可以在图5(B)中找到。随后,如在算法的步骤C3中形式化地描述的那样,通过从左到右地遍历阵列(“左侧”通过)来复制用户id。这将s5,k从每个“概况描述”元组复制到它相邻的“输入”元组;类似地复制项目概况描述。
B.计算梯度贡献:在复制概况描述之后,与例如(i,j)相对应的每个“输入”元组存储在上一次迭代中所计算出的评级ri,j(在s4,k中)以及概况描述ui和vj(分别在s5,k和s6,k中)。根据这些,计算下面的量:vj(ri,j-<ui,vj>)和ui(ri,j-<ui,vj>),其可以被看作由(5)所给出的关于ui和vj的梯度中的元组的“贡献”。这些替换元组的s5,k和s6,k元素,如由算法的步骤C6所指示的那样。通过适当地使用标记,该操作仅影响“输入”元组,并且保持“概况描述”元组不变。
C.更新概况描述:最后,如在算法的步骤C7至C9中所示,更新用户和项目概况描述。通过适当的排序,使“概况描述”元组再次邻近它们与之共享id的“输入”元组。通过对阵列的从右至左的遍历(“右侧通过”)来计算更新的概况描述。该操作在其遍历“输入”元组时添加梯度的贡献。当遇到“概况描述”元组时,将总计的梯度贡献添加到概况描述,适当地调整。在通过概况描述之后,通过适当地使用标记s3,k,s3,k+1,从零重新开始梯度贡献的求和。
上面的操作重复K次,即梯度下降的期望的迭代的数量。最后,在最后的迭代终止时,阵列关于作为主索引的标记(亦即s3,k)和作为次索引的项目id(亦即s2,k)而被排序。这使得所有项目概况描述元组位于阵列中的前m个位置处,据此可以输出项目概况描述。而且,为了获得用户概况描述,在最后的迭代终止时,阵列关于作为主索引的标记(亦即s3,k)和作为次索引的用户id(亦即s1,k)而被排序。这使得所有用户概况描述元组位于阵列中的前n个位置处,据此可以输出用户概况描述。
本领域技术人员将意识到,上面的操作中的每个都是数据健忘的,并且可以作为电路来实现。复制和更新概况描述需要(n+m+M)个门,因此,由排序确定总的复杂度,例如使用Batcher电路的排序产生O((n+m+M)log2(n+m+M))的成本。算法的步骤C6中的排序和梯度计算是最为计算密集的操作;幸运地,二者都是可高度并行化的。另外,可以通过在每次迭代时重新使用先前计算的比较来对排序进行进一步优化。具体地,可以将该电路实现为布尔电路(例如,作为或、与、非和异或门的图表),如先前所解释的那样,这允许混淆该实现方式。
根据本原理,上述矩阵因子分解算法的实现方式与先前描述的协议一起提供以隐私保护的方式进行矩阵因子分解的新颖的方法。另外,通过使用排序网络,该解决方案产生复杂度在以明文执行的矩阵因子分解的多对数因子内的电路。而且,该实现方式的另外的优点是该电路的混淆和执行是可高度并行化的。
在根据本原理的***的实现方式中,混淆电路构造基于FastGC(一种公开可用的混淆电路框架)。FastGC是基于Java的开源框架,其使得能够使用基本的异或、或和与门进行电路定义。当电路被构造时,该框架处理混淆电路的混淆、健忘传递和完整评估。但是,在混淆和执行电路之前,FastGC将存储器中的整个未混淆的电路表示为Java对象的集合。相对于未混淆电路将引入的存储器占用(memoryfootprint),这些对象引起显著的存储器开销,因为在任意时间点,仅混淆和/或执行门的子集。而且,虽然FastGC如上所述地与执行处理并行地实行混淆,但是两个操作以顺序的方式发生:当它们的输入就绪时,门被一次一个地处理。本领域技术人员将清楚地认识到,该实现方式不能进行并行化。
因此,修改该框架以解决这两个问题,减少FastGC的存储器占用而且使得能够跨越多个处理器进行并行化的混淆和计算。具体地,引入将电路水平地划分成顺序的“层”的能力,每一个包括可以并行执行的垂直的“切片”的集合。仅当其所有输入就绪时,在存储器中创建层。一旦整个层被混淆并评估,就从存储器中去除整个层,并且可以构造随后的层,从而将存储器占用限制为最大的层的大小。使用调度器来进行层的执行,调度器将其切片分配给线程,使它们能够并行地运行。虽然在具有多个核的单个机器上实现并行化,但是该实现方式也可以被扩展到以直接的方式跨越不同机器来运行,因为假设切片之间没有共享的状态。
最后,为了在实现算法中概述的数值运算,扩展FastGC以支持在使用定点数表示的实数上的加法和乘法以及排序。为了排序,使用Batcher排序网络。定点表示引入了由截断造成的精确度损失和电路大小之间的折衷。
而且,以多种方式对算法的实现方式进行优化,具体地:
(a)通过重新使用在电路执行的开始时计算出的比较来降低排序的成本:
排序网络的基本构建块是比较并交换电路,其比较两个项目,并且如有必要则交换它们,使得输出对是有序的。矩阵因子分解算法的排序操作(行C4和C8)使用针对每次迭代完全相同的输入,在K次梯度下降迭代中的每次的元组之间执行相同的比较。实际上,每次排序在每次迭代时以完全相同的方式置换阵列S中的元组。通过仅一次地针对这些排序中的每个执行比较操作来利用该属性。具体地,在计算开始时(没有用户或项目概况描述的有效负荷)执行形式(i,j,标记,评级)的元组的排序,例如首先关于i和标记,j和标记,并且返回到i和标记。随后,比较电路的输出在这些排序的每个中被重新使用,作为对在梯度下降期间所使用的交换电路的输入。因此,在每次迭代时应用的“排序”网络不执行任何比较,而是仅仅置换元组(即,它是“置换”网络)。
(b)减小阵列S的大小:
预先计算所有比较还允许显著地减小S中的元组的大小。首先,本领域技术人员可以观察到,与用户或项目id相对应的行在矩阵因子分解算法中仅被用作排序期间的比较的输入。标记和评级在复制和更新阶段期间使用,但是它们的相对位置在每次迭代时是相同的。而且,这些位置可以被计算为计算开始时的元组(i,j,标记,评级)的排序的输出。因此,在每次迭代时执行的“置换”操作仅需要被应用于用户和项目概况描述;所有其他行可以从阵列S去除。另一个改进以另外的因子2来减少置换的成本:固定概况描述的一个集合,例如用户,并且只置换项目概况描述。然后,项目概况描述在两个状态之间轮换,每一个可以通过置换从另一个到达:在一个状态下,它们与用户概况描述对齐并且计算部分梯度,并且在一个状态下更新并复制项目概况描述。
(c)通过使用异或优化交换操作:
假定异或操作可以“自由地(free)”执行,则只要有可能,就通过使用异或来执行比较、交换、更新和复制操作的优化。本领域技术人员将认识到,可以在不使用相关联的混淆表和相应的散列或对称密钥操作的情况下混淆自由异或门(free-XORgate),在计算和通信方面表现出显著的改善。
(d)使计算并行化:
排序和梯度计算构成矩阵因子分解电路中计算的大部分(复制和更新贡献不多于执行时间的3%和非异或门的0.4%);这些操作通过FastGC的这种扩展而并行化。梯度计算显然是可并行化的;排序网络也是可高度并行化的(并行化是它们发展背后的主要动机)。而且,因为每个排序中的并行切片中的许多是相同的,所以在不同的输入的情况下重新使用定义电路切片的相同的FastGC对象,显著地减少在存储器中重复地创建和销毁对象的需求。
应当理解,可以以各种形式的硬件、软件、固件、专用处理器或其组合来实现本原理。优选地,本原理实现为硬件和软件的组合。而且,软件优选地实现为有形地实施在程序存储设备上的应用程序。应用程序可以上载到包括任何适当架构的机器并且由其执行。优选地,机器在具有诸如一个或多个中央处理单元(CPU)、随机存取存储器(RAM)和输入/输出(I/O)接口这样的硬件的计算机平台上实现。计算机平台还包括操作***和微指令代码。在本文中所描述的各种处理和功能可以是经由操作***执行的微指令代码的一部分或者应用程序的一部分(或其组合)。另外,诸如另外的数据存储设备和打印设备这样的各种其他***设备可以连接到计算机平台。
图6示出被用于实现本原理的最小计算环境600的框图。计算环境600包括处理器610以及至少一个(并且优选地,多于一个)I/O接口620。I/O接口可以是有线的或无线的,并且在无线实现方式中,用适当的无线通信协议来预先配置,以允许计算环境600在全球网络(例如因特网)上操作并且与其他计算机或服务器(例如基于云的计算或存储服务器)进行通信,以便使本原理能够例如作为远程地提供给终端用户的软件即服务(SAAS)特征来提供。在计算环境600内还设置一个或多个存储器630和/或存储设备(HDD)640。计算环境600或多个计算机环境600可以根据本原理一个实施例来实现协议P1-P11(图3)用于矩阵因子分解C1-C12(图4)。具体地,在本原理的实施例中,计算环境600可以实现RecSys230;单独的计算环境600可以实现CSP250,并且来源可以包含一个或多个计算机环境600,每个与不同的用户210相关联,包括但不限于台式计算机、蜂窝电话、智能电话、电话手表、平板计算机、个人数字助理(PDA)、上网本和膝上型计算机,用于与RecSys230和CSP250通信。另外,CSP250可以包括在来源中,或者等效地,包括在来源的每个用户210的计算机环境中。
还要理解的是,因为在附图中图示的构成***组件和方法步骤的一些优选地实现为软件,所以***组件(或处理步骤)之间的实际连接可能根据本原理编程的方式而不同。给出本文的教导,相关领域中普通技术人员将能够想到本原理的这些和类似的实现方式或配置。
虽然在本文中参考附图描述了示例性实施例,但是应当理解的是,本原理并不局限于那些精确的实施例,相关领域中的普通技术人员可以在不脱离本原理的范围或精神的情况下对其做出各种改变和修改。所有这样的改变和修改均将包括在如在所附权利要求书中所阐述的本原理的范围内。
Claims (26)
1.一种通过矩阵因子分解来安全地对项目进行概况描述的方法,所述方法包括:
接收来自来源的记录的集合(220),其中记录包含标志的集合和项目的集合,并且其中每个记录对除了所述来源之外的各方保密;
接收至少一个单独项目(360);以及
通过使用基于矩阵因子分解的混淆电路在推荐器(RecSys)(230)中评估所述记录的集合和所述至少一个单独项目(395),其中混淆电路的输出包括所述至少一个单独项目的项目概况描述。
2.根据权利要求1所述的方法,还包括:
在密码***提供者(CSP)中设计混淆电路以对所述记录的集合(380)和所述至少一个单独项目(360)执行矩阵因子分解,其中混淆电路输出包括所述至少一个单独项目的项目概况描述;以及
将混淆电路传递给RecSys(385)。
3.根据权利要求2所述的方法,其中设计的步骤包括:
将矩阵因子分解操作设计为布尔电路(382)。
4.根据权利要求3所述的方法,其中设计矩阵因子分解电路的步骤包括:
构造所述记录的集合的阵列(410);以及
对阵列执行排序(420,440,470,490)、复制(430,450)、更新(470,480)、比较(480)以及计算梯度贡献(460)的操作。
5.根据权利要求2所述的方法,还包括:
对记录的集合进行加密以创建加密的记录(330),其中在接收记录的集合的步骤之前执行加密的步骤。
6.根据权利要求5所述的方法,还包括:
在CSP中生成公共加密密钥;以及
将所述密钥发送给来源(320)。
7.根据权利要求5所述的方法,其中加密是部分同态加密(320),所述方法还包括:
在RecSys中掩蔽加密的记录以创建经掩蔽的记录(340);以及
在CSP中解密经掩蔽的记录以创建解密的经掩蔽的记录(350)。
8.根据权利要求7所述的方法,其中设计的步骤(380)包括:
在处理解密的经掩蔽的记录之前在混淆电路内部对解密的经掩蔽的记录去掩蔽。
9.根据权利要求7所述的方法,还包括:
在CSP与RecSys之间(392)执行健忘传递(390),其中RecSys接收解密的经掩蔽的记录的混淆值,并且记录对RecSys和CSP保密。
10.根据权利要求1所述的方法,还包括:
接收每个记录的标志和项目的数量(220,310)。
11.根据权利要求1所述的方法,还包括:
当每个记录的标志的数量小于表示最大值的值时,用空条目填充每个记录,以便创建标志的数量等于所述值的记录(312)。
12.根据权利要求1所述的方法,其中记录的集合的来源是数据库和用户的集合(210)中的一个,其中每个用户是一个记录的来源并且所述一个记录对除了所述每个用户之外的各方保密。
13.根据权利要求2所述的方法,还包括:
由所述CSP接收用于混淆电路的设计的参数的集合,其中参数由所述RecSys发送(370)。
14.一种通过矩阵因子分解来安全地对项目进行概况描述的***,所述***包括将提供记录的集合的来源、将提供安全的矩阵因子分解电路的密码服务提供者(CSP)以及将评估记录的RecSys,使得记录对除了所述来源之外的各方保密,其中所述来源、所述CSP和所述RecSys每个都包括:
处理器(602),用于接收至少一个输入/输出(604);以及
与所述处理器进行信号通信的至少一个存储器(606,608),并且其中RecSys处理器被配置为:
接收记录的集合,其中每个记录包括标志的集合和项目的集合,并且其中每个记录是保密的;
接收至少一个单独项目;以及
使用基于矩阵因子分解的混淆电路来评估所述记录的集合和所述至少一个单独项目,其中混淆电路的输出包括所述至少一个单独项目的项目概况描述。
15.根据权利要求14所述的***,其中CSP处理器还被配置为:
设计混淆电路以对所述记录的集合和所述至少一个单独项目执行矩阵因子分解,其中混淆电路输出所述至少一个单独项目的项目概况描述;以及
将混淆电路传递给RecSys。
16.根据权利要求15所述的***,其中CSP处理器通过如下配置而被配置为设计混淆电路:
将矩阵因子分解操作设计为布尔电路。
17.根据权利要求16所述的***,其中CSP处理器通过如下配置而被配置为设计矩阵因子分解电路:
构造所述记录的集合的阵列;以及
对阵列执行排序、复制、更新、比较以及计算梯度贡献的操作。
18.根据权利要求15所述的***,其中来源处理器被配置为:
在提供所述记录的集合之前对记录的集合进行加密以创建加密的记录。
19.根据权利要求18所述的***,其中CSP处理器还被配置为:
生成公共加密密钥;以及
将所述密钥发送给来源。
20.根据权利要求18所述的***,其中加密是部分同态加密,并且其中RecSys处理器还被配置为:
掩蔽加密的记录以创建经掩蔽的记录;并且CSP处理器还被配置为:
解密经掩蔽的记录以创建解密的经掩蔽的记录。
21.根据权利要求20所述的***,其中CSP处理器通过如下配置而被配置为设计混淆电路:
在处理解密的经掩蔽的记录之前在混淆电路内部对解密的经掩蔽的记录去掩蔽。
22.根据权利要求20所述的***,其中RecSys处理器和CSP处理器还被配置为执行健忘传递,其中所述RecSys接收解密的经掩蔽的记录的混淆值,并且记录对RecSys和CSP保密。
23.根据权利要求14所述的***,其中RecSys处理器还被配置为:
接收每个记录的标志的数量,其中由所述来源发送标志的数量。
24.根据权利要求14所述的***,其中来源处理器被配置为:
当每个记录的标志的数量小于表示最大值的值时,用空条目填充每个记录,以便创建标志的数量等于所述值的记录。
25.根据权利要求14所述的***,其中记录的集合的来源是数据库和用户的集合中的一个,并且其中如果来源是用户的集合,则每个用户包括用于接收至少一个输入/输出(604)的处理器(602)以及至少一个存储器(606,608),并且每个用户是一个记录的来源,其中所述一个记录对除了所述每个用户之外的各方保密。
26.根据权利要求15所述的***,其中CSP处理器还被配置为:
接收用于混淆电路的设计的参数的集合,其中参数由所述RecSys发送。
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361864085P | 2013-08-09 | 2013-08-09 | |
US201361864094P | 2013-08-09 | 2013-08-09 | |
US201361864098P | 2013-08-09 | 2013-08-09 | |
US201361864088P | 2013-08-09 | 2013-08-09 | |
US61/864,088 | 2013-08-09 | ||
US61/864,085 | 2013-08-09 | ||
US61/864,094 | 2013-08-09 | ||
US61/864,098 | 2013-08-09 | ||
USPCT/US2013/076353 | 2013-12-19 | ||
PCT/US2013/076353 WO2014137449A2 (en) | 2013-03-04 | 2013-12-19 | A method and system for privacy preserving counting |
PCT/US2014/036357 WO2014138752A2 (en) | 2013-03-04 | 2014-05-01 | A method and system for privacy preserving matrix factorization |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105144625A true CN105144625A (zh) | 2015-12-09 |
Family
ID=49955504
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480012517.0A Pending CN105103487A (zh) | 2013-08-09 | 2014-05-01 | 用于基于矩阵分解的到评级贡献用户的隐私保护推荐的方法和*** |
CN201480021770.2A Pending CN105144625A (zh) | 2013-08-09 | 2014-05-01 | 隐私保护矩阵因子分解的方法和*** |
CN201480012048.2A Pending CN105009505A (zh) | 2013-08-09 | 2014-05-01 | 基于矩阵因子分解和岭回归的隐私保护推荐的方法和*** |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480012517.0A Pending CN105103487A (zh) | 2013-08-09 | 2014-05-01 | 用于基于矩阵分解的到评级贡献用户的隐私保护推荐的方法和*** |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480012048.2A Pending CN105009505A (zh) | 2013-08-09 | 2014-05-01 | 基于矩阵因子分解和岭回归的隐私保护推荐的方法和*** |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3031165A2 (zh) |
JP (3) | JP2016510913A (zh) |
KR (1) | KR20160041028A (zh) |
CN (3) | CN105103487A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109643286A (zh) * | 2016-07-08 | 2019-04-16 | 伊法布雷思公司 | 用于混淆电路设计的***和方法 |
CN110363000A (zh) * | 2019-07-10 | 2019-10-22 | 深圳市腾讯网域计算机网络有限公司 | 识别恶意文件的方法、装置、电子设备及存储介质 |
CN110990871A (zh) * | 2019-11-29 | 2020-04-10 | 腾讯云计算(北京)有限责任公司 | 基于人工智能的机器学习模型训练方法、预测方法及装置 |
CN111553126A (zh) * | 2020-05-08 | 2020-08-18 | 北京华大九天软件有限公司 | 一种基于机器学习训练模型获取矩阵分解时间的方法 |
CN111837145A (zh) * | 2017-12-18 | 2020-10-27 | 米西克有限公司 | 用于将矩阵计算映射到矩阵乘法加速器的***和方法 |
CN112311546A (zh) * | 2020-12-25 | 2021-02-02 | 鹏城实验室 | 数据保密判定方法、装置、设备及可读存储介质 |
CN112528303A (zh) * | 2020-12-11 | 2021-03-19 | 重庆交通大学 | 一种基于ntru加密算法的多用户隐私推荐方法 |
CN114817999A (zh) * | 2022-06-28 | 2022-07-29 | 北京金睛云华科技有限公司 | 一种基于多密钥同态加密的外包隐私保护方法和设备 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3319001A1 (en) * | 2016-11-02 | 2018-05-09 | Skeyecode | Method for securely transmitting a secret data to a user of a terminal |
CN106548207B (zh) * | 2016-11-03 | 2018-11-30 | 北京图森未来科技有限公司 | 一种基于神经网络的图像处理方法及装置 |
CN107135061B (zh) * | 2017-04-17 | 2019-10-22 | 北京科技大学 | 一种5g通信标准下的分布式隐私保护机器学习方法 |
CN107302498B (zh) * | 2017-06-21 | 2019-08-27 | 安徽大学 | 一种SDN网络中支持隐私保护的多域QoS路径计算方法 |
EP4002754A1 (en) | 2017-08-31 | 2022-05-25 | Visa International Service Association | Single node multi-party encryption |
JP6759168B2 (ja) * | 2017-09-11 | 2020-09-23 | 日本電信電話株式会社 | 難読化回路生成装置、難読化回路計算装置、難読化回路生成方法、難読化回路計算方法、プログラム |
CN109756442B (zh) * | 2017-11-01 | 2020-04-24 | 清华大学 | 基于混淆电路的数据统计方法、装置以及设备 |
JP7177849B2 (ja) * | 2017-12-18 | 2022-11-24 | ユニバーシティ オブ セントラル フロリダ リサーチ ファウンデーション,インコーポレイテッド | パブリックコンピューターにおいて暗号化データに作用するコードを安全に実行する方法 |
CN110909356B (zh) * | 2018-09-18 | 2022-02-01 | 百度在线网络技术(北京)有限公司 | 安全多方计算方法、装置、设备及计算机可读介质 |
EP3881263A1 (en) | 2018-11-15 | 2021-09-22 | Ravel Technologies Sarl | Cryptographic anonymization for zero-knowledge advertising methods, apparatus, and system |
CN109992979B (zh) * | 2019-03-15 | 2020-12-11 | 暨南大学 | 一种岭回归训练方法、计算设备、介质 |
CN110209994B (zh) * | 2019-04-25 | 2022-12-23 | 广西师范大学 | 基于同态加密的矩阵分解推荐方法 |
CN110086717B (zh) * | 2019-04-30 | 2021-06-22 | 创新先进技术有限公司 | 用于进行数据安全匹配的方法、装置和*** |
CN110196944B (zh) * | 2019-05-07 | 2021-06-01 | 深圳前海微众银行股份有限公司 | 一种序列化信息的推荐方法及装置 |
CN110795631B (zh) * | 2019-10-29 | 2022-09-06 | 支付宝(杭州)信息技术有限公司 | 一种基于因子分解机的推送模型优化、预测方法和装置 |
CN111125517B (zh) * | 2019-12-06 | 2023-03-14 | 陕西师范大学 | 一种基于差分隐私和时间感知的隐式矩阵分解推荐方法 |
CN111259260B (zh) * | 2020-03-30 | 2023-06-02 | 九江学院 | 一种基于排序分类的个性化推荐中的隐私保护方法 |
CN111552852B (zh) * | 2020-04-27 | 2021-09-28 | 北京交通大学 | 基于半离散矩阵分解的物品推荐方法 |
CN111857649B (zh) * | 2020-06-22 | 2022-04-12 | 复旦大学 | 一种用于隐私保护机器学习的定点数编码及运算*** |
EP4014427B1 (en) * | 2020-08-14 | 2023-05-03 | Google LLC | Online privacy preserving techniques |
IL279406A (en) * | 2020-12-13 | 2022-07-01 | Google Llc | Privacy-preserving techniques for selecting and sharing content |
IL280056A (en) | 2021-01-10 | 2022-08-01 | Google Llc | Using secure mpc and vector computations to protect access to information in content distribution |
US11113707B1 (en) | 2021-01-22 | 2021-09-07 | Isolation Network, Inc. | Artificial intelligence identification of high-value audiences for marketing campaigns |
IL281328A (en) | 2021-03-08 | 2022-10-01 | Google Llc | Flexible content selection processes through multi-sided secure calculation |
CN113051587B (zh) * | 2021-03-10 | 2024-02-02 | 中国人民大学 | 一种隐私保护智能交易推荐方法、***和可读介质 |
KR20220140759A (ko) | 2021-04-09 | 2022-10-18 | 구글 엘엘씨 | 분류 정확도를 향상시키기 위한 기계 학습 모델링 데이터의 처리 |
IL283674B1 (en) | 2021-06-03 | 2024-05-01 | Google Llc | Distribution and monitoring of cross-disciplinary experimental groups to maintain privacy |
CN113779500B (zh) * | 2021-08-23 | 2024-01-30 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN114564742B (zh) * | 2022-02-18 | 2024-05-14 | 北京交通大学 | 一种基于哈希学习的轻量化联邦推荐方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090299996A1 (en) * | 2008-06-03 | 2009-12-03 | Nec Laboratories America, Inc. | Recommender system with fast matrix factorization using infinite dimensions |
CN102129462A (zh) * | 2011-03-11 | 2011-07-20 | 北京航空航天大学 | 一种通过聚合对协同过滤推荐***进行优化的方法 |
CN102129463A (zh) * | 2011-03-11 | 2011-07-20 | 北京航空航天大学 | 一种融合项目相关性的基于pmf的协同过滤推荐*** |
WO2012126741A2 (en) * | 2011-03-18 | 2012-09-27 | Telefonica, S.A. | Method for context-aware recommendations based on implicit user feedback |
CN102982107A (zh) * | 2012-11-08 | 2013-03-20 | 北京航空航天大学 | 一种融合用户、项目和上下文属性信息的推荐***优化方法 |
US20130073366A1 (en) * | 2011-09-15 | 2013-03-21 | Stephan HEATH | System and method for tracking, utilizing predicting, and implementing online consumer browsing behavior, buying patterns, social networking communications, advertisements and communications, for online coupons, products, goods & services, auctions, and service providers using geospatial mapping technology, and social networking |
US20130226839A1 (en) * | 2012-02-27 | 2013-08-29 | Xerox Corporation | Robust bayesian matrix factorization and recommender systems using same |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1864171A (zh) * | 2003-08-08 | 2006-11-15 | 皇家飞利浦电子股份有限公司 | 处理数据的***及其方法 |
EP1683298B1 (en) * | 2003-11-03 | 2008-09-17 | Koninklijke Philips Electronics N.V. | Method and device for efficient multiparty multiplication |
US8972742B2 (en) * | 2009-09-04 | 2015-03-03 | Gradiant | System for secure image recognition |
US8676736B2 (en) * | 2010-07-30 | 2014-03-18 | Gravity Research And Development Kft. | Recommender systems and methods using modified alternating least squares algorithm |
US8478768B1 (en) * | 2011-12-08 | 2013-07-02 | Palo Alto Research Center Incorporated | Privacy-preserving collaborative filtering |
-
2014
- 2014-05-01 JP JP2015561771A patent/JP2016510913A/ja active Pending
- 2014-05-01 CN CN201480012517.0A patent/CN105103487A/zh active Pending
- 2014-05-01 KR KR1020157023839A patent/KR20160041028A/ko not_active Application Discontinuation
- 2014-05-01 EP EP14731436.3A patent/EP3031165A2/en not_active Withdrawn
- 2014-05-01 JP JP2015561769A patent/JP2016510912A/ja active Pending
- 2014-05-01 CN CN201480021770.2A patent/CN105144625A/zh active Pending
- 2014-05-01 JP JP2015561770A patent/JP2016517069A/ja active Pending
- 2014-05-01 CN CN201480012048.2A patent/CN105009505A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090299996A1 (en) * | 2008-06-03 | 2009-12-03 | Nec Laboratories America, Inc. | Recommender system with fast matrix factorization using infinite dimensions |
CN102129462A (zh) * | 2011-03-11 | 2011-07-20 | 北京航空航天大学 | 一种通过聚合对协同过滤推荐***进行优化的方法 |
CN102129463A (zh) * | 2011-03-11 | 2011-07-20 | 北京航空航天大学 | 一种融合项目相关性的基于pmf的协同过滤推荐*** |
WO2012126741A2 (en) * | 2011-03-18 | 2012-09-27 | Telefonica, S.A. | Method for context-aware recommendations based on implicit user feedback |
US20130073366A1 (en) * | 2011-09-15 | 2013-03-21 | Stephan HEATH | System and method for tracking, utilizing predicting, and implementing online consumer browsing behavior, buying patterns, social networking communications, advertisements and communications, for online coupons, products, goods & services, auctions, and service providers using geospatial mapping technology, and social networking |
US20130226839A1 (en) * | 2012-02-27 | 2013-08-29 | Xerox Corporation | Robust bayesian matrix factorization and recommender systems using same |
CN102982107A (zh) * | 2012-11-08 | 2013-03-20 | 北京航空航天大学 | 一种融合用户、项目和上下文属性信息的推荐***优化方法 |
Non-Patent Citations (2)
Title |
---|
VALERIA NIKOLAENKO: "Privacy-Preserving Ridge Regression on Hundreds of Millions of Records", 《2013 IEEE SYMPOSIUM ON SECURITY AND PRIVACY》 * |
Y KOREN: "Matrix Factorization Techniques for Recommender Systems", 《IEEE》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109643286A (zh) * | 2016-07-08 | 2019-04-16 | 伊法布雷思公司 | 用于混淆电路设计的***和方法 |
CN109643286B (zh) * | 2016-07-08 | 2023-12-26 | 伊法布雷思公司 | 用于混淆电路设计的***和方法 |
CN111837145A (zh) * | 2017-12-18 | 2020-10-27 | 米西克有限公司 | 用于将矩阵计算映射到矩阵乘法加速器的***和方法 |
CN111837145B (zh) * | 2017-12-18 | 2024-02-02 | 米西克有限公司 | 用于将矩阵计算映射到矩阵乘法加速器的***和方法 |
CN110363000B (zh) * | 2019-07-10 | 2023-11-17 | 深圳市腾讯网域计算机网络有限公司 | 识别恶意文件的方法、装置、电子设备及存储介质 |
CN110363000A (zh) * | 2019-07-10 | 2019-10-22 | 深圳市腾讯网域计算机网络有限公司 | 识别恶意文件的方法、装置、电子设备及存储介质 |
CN110990871A (zh) * | 2019-11-29 | 2020-04-10 | 腾讯云计算(北京)有限责任公司 | 基于人工智能的机器学习模型训练方法、预测方法及装置 |
CN111553126A (zh) * | 2020-05-08 | 2020-08-18 | 北京华大九天软件有限公司 | 一种基于机器学习训练模型获取矩阵分解时间的方法 |
CN112528303A (zh) * | 2020-12-11 | 2021-03-19 | 重庆交通大学 | 一种基于ntru加密算法的多用户隐私推荐方法 |
CN112528303B (zh) * | 2020-12-11 | 2024-01-26 | 重庆交通大学 | 一种基于ntru加密算法的多用户隐私推荐方法 |
CN112311546B (zh) * | 2020-12-25 | 2021-04-09 | 鹏城实验室 | 数据保密判定方法、装置、设备及计算机可读存储介质 |
CN112311546A (zh) * | 2020-12-25 | 2021-02-02 | 鹏城实验室 | 数据保密判定方法、装置、设备及可读存储介质 |
CN114817999B (zh) * | 2022-06-28 | 2022-09-02 | 北京金睛云华科技有限公司 | 一种基于多密钥同态加密的外包隐私保护方法和设备 |
CN114817999A (zh) * | 2022-06-28 | 2022-07-29 | 北京金睛云华科技有限公司 | 一种基于多密钥同态加密的外包隐私保护方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
EP3031165A2 (en) | 2016-06-15 |
CN105009505A (zh) | 2015-10-28 |
JP2016517069A (ja) | 2016-06-09 |
KR20160041028A (ko) | 2016-04-15 |
CN105103487A (zh) | 2015-11-25 |
JP2016510912A (ja) | 2016-04-11 |
JP2016510913A (ja) | 2016-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105144625A (zh) | 隐私保护矩阵因子分解的方法和*** | |
US20160020904A1 (en) | Method and system for privacy-preserving recommendation based on matrix factorization and ridge regression | |
Chillotti et al. | Programmable bootstrapping enables efficient homomorphic inference of deep neural networks | |
Al Badawi et al. | Privft: Private and fast text classification with homomorphic encryption | |
CN112733967B (zh) | 联邦学习的模型训练方法、装置、设备及存储介质 | |
Cock et al. | Fast, privacy preserving linear regression over distributed datasets based on pre-distributed data | |
Abspoel et al. | Secure training of decision trees with continuous attributes | |
JP6034927B1 (ja) | 秘密計算システム、秘密計算装置、およびプログラム | |
Liu et al. | Secure model fusion for distributed learning using partial homomorphic encryption | |
CN114401079B (zh) | 多方联合信息价值计算方法、相关设备及存储介质 | |
CN112347500B (zh) | 分布式***的机器学习方法、装置、***、设备及存储介质 | |
Jayapandian et al. | Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption | |
Niu et al. | Secure federated submodel learning | |
CN106170943A (zh) | 使用部分同态加密和掩码的隐私保护岭回归 | |
CN111931947B (zh) | 一种用于分布式模型训练的训练样本重组方法及*** | |
Sielaff et al. | Evaluation Framework for the Use of Privacy Preserving Technologies for Production Data | |
Bao | Privacy-Preserving Cloud-Assisted Data Analytics | |
CN112199702B (zh) | 一种基于联邦学习的隐私保护方法、存储介质及*** | |
CN108475483B (zh) | 隐匿决定树计算***、装置、方法以及记录介质 | |
Liu et al. | Secure and Lightweight Feature Selection for Horizontal Federated Learning | |
Ajith | MPCLeague: Robust MPC Platform for Privacy-Preserving Machine Learning | |
CN116976462A (zh) | 数据处理方法、装置、设备及存储介质 | |
Chiang | LFFR: Logistic Function For (single-output) Regression | |
CN116596656A (zh) | 信用识别模型确定方法、信用识别方法、装置和设备 | |
Rodriguez | Genetic algorithm for cryptanalysis on the Vigenere cipher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151209 |