处理数据的系统及其方法

文档序号:6496110阅读:233来源:国知局
专利名称:处理数据的系统及其方法
技术领域
本发明涉及到处理数据的系统,该系统包括具有第一数据的第一源、具有第二数据的第二源、和服务器。本发明还涉及到处理数据的方法及处理数据的服务器。
包含多个用于存储表达用户对媒体内容、购买、等等的喜好的用户数据的用户设备的信息系统是已知的。这样的信息系统通常包括一个收集用户数据的服务器。用户数据被加以分析以便确定用户数据之间的相关性,并且向一个或多个用户提供特定的服务。例如,合作筛选技术(collaborative filtering technique)是一种把大的用户集团的兴趣组合起来的内容推荐方法。
以存储为基础的合作筛选技术是以确定在不同用户之间的相关性(相似性)为基础的,为此,每一个用户的评价与每一个其他用户的评价进行比较。这些相似性被用于预测一个特定的用户对内容的特定部分喜欢到什么程度。对于该预测步骤,存在着不同的可供选择的办法。除确定在用户之间的相似性以外,按照从用户接收到的评价模式,人们可以确定在项目之间的相似性。
在这个含义下的一个问题是保护用户隐私的问题,用户不希望把他们的兴趣显示给服务器或者其他用户。
本发明的一个目的是要消除现有技术的系统的缺陷,并且,提供一种处理数据的系统,其中,用户隐私得以保护。这一目的是通过包括下列内容的系统实现的-用于加密第一数据的第一源,和用于加密第二数据的第二源,-一个配置成获得加密的第一和第二数据的服务器,该服务器被阻止为加密的第一和第二数据解密,并且,被阻止相互显示第一和第二源的身份,-计算装置,用于对加密的第一和第二数据进行计算,以获得在第一和第二数据之间的相似性值,使得第一和第二数据对第二和第一源分别是匿名的,相似性值提供在第一和第二数据之间的相似性的指示。
在本发明的一个实施例中,使用皮尔逊相关性(Pearsoncorrelation)或卡帕统计数值(Kappa statistic)来获得相似性值。在另一个实施例中,计算装置是使用利用公钥共享模式的Paillier密码系统或者阈Paillier密码系统而实现的。
确定相似性值所需要的计算步骤包括例如矢量内积以及共享和(sums of shares)的计算。在计算以后,把加密技术运用到数据上以保护它们。在某种意义上,这意味着仅把加密的信息发送到服务器、以及所有的计算都在加密域内进行。
在本发明的又一个实施例中,第一或第二数据分别包括第一或第二用户的用户简档,用户简档表明第一或第二用户对媒体内容项目的用户喜好。在另一个实例中,第一或第二数据包括各个内容项目的用户评价。
本发明的优点是用户信息得到保护。本发明能够被用于各种类型的推荐服务中,例如音乐或者TV表演推荐,但也能够被用于医学或金融推荐应用中,其中保护隐私是非常重要的。
本发明的目的也在一种处理数据的方法中实现,该方法包括下列步骤,这些步骤能够-对第一源的第一数据加密,和对第二源的第二数据加密,-向服务器提供加密的第一和第二数据,该服务器被阻止给加密的第一和第二数据解密,并且,被阻止相互显示第一和第二源的身份,-对加密的第一和第二数据进行计算以获得在第一和第二数据之间的相似性值,使得第一和第二数据对第二和第一源分别是匿名的,该相似性值提供在第一和第二数据之间的相似性的指示。
该方法说明本发明的系统的操作。
在一个实施例中,该发明还包括使用相似性值以获得对第一或第二源的内容项目的推荐的步骤。例如,假定我们要预测对活动用户a的项目i的记分1.首先,我们计算在用户a和每一个其他用户x之间的相关性。这是通过计算在用户a的评价矢量和每一个其他用户x之间的内积经由服务器的交换实现的。按照这种方法,用户知道每一个其他用户x=1,2,...,n的相关性值,但是不知道用户x=1,2,...,n是谁。另一方面,服务器知道用户x=1,2,...,n是谁,但是不知道相关性值。
2.其次,通过取这一项目的用户x=1,2,...,n的评价的某种加权平均值,我们为用户a对项目i计算预测,其中,加权值由相关性值给出。其过程是这样的用户a把相关性值加密并发送它们到服务器,服务器把它们转发到各个用户x=1,2,...,n。每一个用户x=1,2,...,n把他接收的加密的相关性值乘以他给予项目i的评价,并且把结果发送回服务器。然后,服务器仍然不能够对任何数据进行解密,于是把用户x=1,2,...,n的加密的乘积组合成为加密的和,并且,把这一终结结果发送回用户a,他能够对它解密以获得需要的结果。
权利要求6说明包括第一和第二源以及服务器的系统的操作。权利要求12指明服务器的操作,该服务器确保用户的隐私,并且,能够在加密域中进行相似性值的计算。两项权利要求是相关的,并且指明实际同一个发明。
参考下面的附图,本发明的这些和其他的方面将进一步被解释和说明

图1是按照本发明的系统的一个实施例的功能框图。
图2是按照本发明的方法的一个实施例。
按照本发明的一个实施例,系统100被表示在图1中。该系统包括一个第一设备110(第一源),和多个第二设备190、191...199(第二源)。服务器150被耦合到第一设备和第二设备。第一设备具有第一数据,例如,媒体内容的用户评价、或者与销售的商品有关的用户喜好、或者指明给出对某些食品喜好的药方的用户的医学记录、等等。第二设备具有第二数据,例如,第二数据与第二用户的喜好相关。
在一个实例中,第一设备是一个安排成存储TV节目的用户评价的TV机顶盒。第一设备还被安排成获得EPG(电子节目指南)数据,指明如相应的TV节目的广播时间、频道、标题等等。第一设备被安排成存储用户简档,用户简档存储各个TV节目的用户评价。用户简档不可能包括对EPG数据中所有节目的评价。为了确定用户是否会喜欢用户未评价的特定的节目,可以使用各种推荐技术。例如,使用合作筛选技术。然后,第一设备与存储包含有第二用户简档的第二数据的第二设备合作,以便找出第二简档是否与第一简档相似(使用相似性值),并且包括对特定节目的评价。如果在第一和第二简档之间的相似性值高于预定的阈值,那么,包括在第二简档中的评价被用于确定第一设备的用户将会喜欢或者不喜欢那个特定节目(预测步骤)。
例如,卡帕统计数值或皮尔逊相关性可以被用于确定在第一和第二简档之间的相似性量度。
相似性可以是在两个简档之间的距离,在两个简档之间的相等选票(vote)的数量的相关性或量度。对于预测计算,如果用户具有相同的嗜好那么相似性是高的,而如果用户具有相反的嗜好那么相似性是低的,这是必然的。例如,该距离计算在用户之间的选票的总的差值。若用户具有完全相同的嗜好则该距离是零。若用户行为举止完全相反则距离大。因此,我们必需进行这样的调整若用户投票相同则权值是高的。距离的简单量度是已知的曼哈顿(Manhattan)距离。
在一个实例中,如果第二简档足够相似于第一简档(以相似性值为基础),在第一简档中未作评价的所有的内容项目(TV节目)却在第二简档中被找到。所说的这些项目就被推荐到与第一简档相关的用户。该推荐可以基于在第二简档中的项目的评价,在第一和第二简档之间的相似性值的基础上为第一简档的用户计算项目的预测评价的方法,等等。
应该注意到相似性值不仅能够用于合作筛选技术的前后关系中(在内容推荐领域中),而且一般地能用于媒体内容的个性化、用户的目标广告、配对服务和其它应用。
用户的隐私问题将会提出,因为在现有技术的系统中,相似性值的计算需要把第一设备的第一数据和/或第二设备的第二数据分别传送到第二设备和第一设备或者服务器。
第一设备加密第一数据,并且,第二设备加密第二数据。第一和第二数据被发送到服务器。服务器不能够把加密的第一和第二数据解密。另外,服务器确保当第二设备获得加密的第一数据时,第二设备不识别第一设备的身份。进而,当第一设备接收第二数据时,第一设备不能够识别加密的第二数据源自第二设备。因此,服务器被阻止给加密的第一和第二数据解密,并且,阻止相互显示第一和第二源的身份。
例如,服务器存储包含第一设备的第一标识符和第二设备的第二标识符的数据库。当第一设备通过服务器传送加密的第一数据到第二设备时,服务器去掉附于加密的第一数据的第一标识符,并且,服务器仅传递加密的第一数据到第二设备,没有第一标识符。
应该注意到关于加密的第一和第二数据的计算,可以按多个替换方式执行。例如,第一设备加密第一数据并通过服务器发送加密的第一数据到第二设备。第二设备计算在第一加密的数据和第二数据之间的加密的内积。第二设备通过服务器发送加密的内矢量到第一设备。第一设备给加密的内积解密,并且,计算在第一和第二数据之间的相似性值。第一设备获得相似性,但是,第一设备不能够识别第二数据的源。
另外,计算是全部在已经获得加密的第一数据和加密的第二数据的服务器上执行的。在另一种替换方式中,计算的一部分在服务器上执行,而一部分由第二设备执行。第一设备仅把内积加密,并获得相似性值。也能够获得其它的替换方式。
图2表示本发明的方法的一个实施例。在步骤210中,第一源的第一数据被加密,并且,第二源的第二数据被加密。在步骤220中,加密的第一和第二数据被提供到服务器150。服务器被阻止给加密的第一和第二数据解密,并且,阻止相互显示第一和第二源的身份。在步骤230中,对加密的第一和第二数据执行计算以获得在第一和第二数据之间的相似性值,使得第一和第二数据分别对第二和第一源是匿名的。相似性值提供在第一和第二数据之间的相似性的指示。任选地,在步骤240中,相似性值被用于获得向第一或第二源的内容项目的推荐。步骤210、220、230和240的另外的实施例在下面的段落中详细讨论。
这些方法存在下面两个问题1.给出两个用户,每一个用户具有整数的秘密矢量,要确定在矢量之间的内积而没有任何用户必需透露特定的信息。
2.给出一组用户,每一个用户具有秘密数,要确定数量之和而没有任何用户必需透露该数。
例如,通过Paillier密码系统,第一个问题被解决。第二个问题是通过使用密钥分享模式(也称Paillier)来处理的,其中,只有在有足够数量的用户合作的情况下才能够实现解密(这时,只有和被揭示,但没有详细的信息)。
基于存储的合作筛选大多数存储基础合作筛选方法是通过首先确定在用户之间的相似性而工作的,为此,要比较它们的共同评价的项。其次,通过在这一项目的其他用户的评价间的插值,这些相似性被用于预测特定项目的用户的评价。通常,在用户请求推荐时,由服务器执行所有的计算。
紧接上述的被称为基于用户的方法,人们也能够遵循一个基于项目方法。然后,首先,通过比较各项目已经从不同的用户获得的评价,在项目之间确定相似性,并且,其次,通过对某一用户已经为其他项目给出的评价间进行插值来预测该用户对某一项目的评价。
在讨论基于两种方法的公式以前,我们首先引入一些符号。我们假定用户组U和项目组I。用户u∈U是否已经对项目i∈I作出过评价是用布尔变量bvl表示的,这里,若用户已这样做,则布尔变量bvl等于1,否则为0。在前一种情况中,也给出评价rul,例如,按照从1到5的数值的范围。已经给项目I评价过的用户组用Ui表示,而由用户u评价过的项目组用Iu表示。
基于用户的方法合作筛选算法广泛使用用户基础算法。如上所述,有两个主要步骤确定相似性和计算预测。对于两者,我们讨论通常使用的公式,对此,我们以后会表明,他们全部能够对加密的数据进行计算。
相似性量度许多相似性量度已经被表示在著作中,例如,相关性量度、距离量度、和计数量度。
已知的皮尔逊相关性系数由下面的公式给出s(u,v)=Σi∈Iu∩Iv(rui-r‾u)(rvi-r‾v)Σi∈Iu∩Iv(rui-r‾u)2Σi∈Iu∩Iv(rvi-r‾v)2---(1)]]>这里,ru表示用户u对已由他评价过的各个项目的平均评价。在这一等式中的分子获得对每一个项目的正的基值(contribution),对于该每一个项目,两个用户u和v的评价或者都在平均数以上,或者都在平均数以下。如果一个用户对一个项目的评价在平均数以上,而另一个用户在平均数以下,那么,我们获得一个负的基值。在等式中的分母把相似性归一化,使其落入在间隔[-1;1]中,这里,值1表示完全的对应,而-1表示完全相反的嗜好。
通过使用中间评价(例如3,如果使用从1到5的数值范围的话)或者用0,通过替换在(1)中的ru,就可获得相关的相似性量度。在后一种情况中,这种量度被称为矢量相似性或余弦,并且,如果全部评价是非负值,那么,得到的相似性值将位于0和1之间。
距离量度通过在两个用户的评价之间的距离,给出另一种量度,例如通过下面的公式给出均方(mean-square)差Σi∈Iu∩Iv(rui-rvi)2|Iu∩Iv|---(2)]]>或者通过下面的公式给出标准化的曼哈顿(Manhattan)距离Σi∈Iu∩Iv|rui-rvi||Iu∩Iv|---(3)]]>如果用户对他们的重叠项目的评价是相同的,那么这个距离是零,否则就较大。一个简单的转换把距离转换为量度如果用户的评价是相似的,那么量度就高,否则就低。
计数量度计数量度是以对两个用户的评价(接近于)相同的项目的数量进行计数作为基础。一个简单的计数量度是由下面的公式给出的多数票数的量度s(u,v)=(2-γ)cuvγduv---(4)]]>这里,0<γ<1,cuv=|{i∈Iu∩Iv|rui≈rvi}|给出由u和v评价‘相同’的项目的数量,而duv=|Iu∩Iv|-cuv给出评价‘不相同’的项目的数量。这里,关系≈可以被定义为精确的相等,但是,接近匹配的评价也可以被考虑为足够相等。
加权的卡帕统计数值会给出另一种计数量度,这被定义为在两个用户之间观察到的一致性和最大可能的一致性之间的比率,这里,两者都对因偶然而出现的一致性作了校正。
预测公式在合作筛选中的第二个步骤是使用相似性来计算某些用户-项目对的预测。而且,对于这一步骤,存在几个不同的形式。对于所有的公式,我们假定存在已经对给定项目作了评价的用户;否则不能够实现预测。
加权和。下面的公式给出我们所表明的第一预测公式r^ui=r‾u+Σv∈Uis(u,v)(rvi-r‾v)Σv∈Ui|s(u,v)|---(5)]]>所以,预测是用户u的平均评价加上对平均数的偏差的加权和。在这一加权和中,所有的用户被认为已经对项目i作了评价。或者,人们可以把他们限制为与用户u同样具有足够高的相似性的各个用户,即,我们以Ui(t)={v∈Ui|s(u,v)≥t}对所有用户对某个阈值t求和。
作为一种选择,稍微较简单的预测公式由下面的公式给出r^ui=Σv∈Uis(u,v)rviΣv∈Ui|s(u,v)|---(6)]]>注意若所有的评价是正的,则这一公式仅对所有相似性值都是非负的才是有意义的,这可以通过选择非负的阈值来实现。
最大的总计相似性就像多数投票方法所做的那样,第二种预测公式是通过选择使得某种总相似性最大化的评价而给出的,这通过下面的公式给出r^ui=argmaxx∈XΣv∈Uixs(u,v)---(7)]]>其中,Uix={v∈Ui|rvi≈x}]]>是给项目i一个类似于值x的评价的用户组。同样,这种关系可以被定义为正好相等,但是,近于匹配的评价也可以允许。而且,在这一公式中,可以使用Ui(t)代替Ui,以便把人们限制在足够相似的用户中。
时间复杂性基于用户的合作筛选的时间复杂度是O(m2n),其中m=|U|是用户数,并且,n=|I|是项目数,如下面所示。对于第一步骤,在每一对用户(O(m2))之间,要计算相似性,他们中的每一个需要浏览所有的项目(O(n))。如果对所有用户都要对缺失评价的所有项目给出预测,那么这需要O(mn)(要计算的预测),它们的每一个需要O(m)项目的和。
基于项目的方法如这里提到的,基于项目的算法首先计算在项目之间的相似性,例如,通过使用下面的相似性量度公式s(i,j)=Σu∈Ui∩Uj(rui-r‾u)(ruj-r‾u)Σu∈Ui∩Uj(rui-r‾u)2Σu∈Ui∩Uj(ruj-r‾u)2---(8)]]>注意与(1)比较,用户和项目的交换是不完全的,因为仍然要从评价中减去平均评价γk。如此做的理由是这个减法补偿了这样一个事实一些用户给出比其他用户更高的评价,而对于项目没有必要做这样的纠正。将要用作第二步骤的标准的基于项目的预测公式,由下面的公式给出r^ui=r‾i+Σj∈Ius(i,j)(ruj-r‾j)Σj∈Iu|s(i,j)|---(9)]]>我们为基于用户的方法提出的其它的相似性量度和预测公式,原则上,也能够被变换为基于项目的另外形式,但是我们将不在这里进行说明。
同样在对基于项目的合作筛选的时间复杂性中,与基于用户的方法比较,用户和项目进行了角色交换,如期待的那样。因此,(O(mn2))代替了(O(m2n))给出时间复杂性。如果用户的数量m比项目的数量n大得多,那么,基于项目的方法的时间复杂性优于基于用户的合作筛选。
在这一情况中的另一个优点是相似性通常以更多的部件为基础,这给出更可靠的量度。基于项目的合作筛选的另一个优点是在项目之间的相关性可以比在用户之间的相关性更稳定。
加密在下面的段落中,我们说明为合作筛选提出的公式怎样能够对加密的评价进行计算。在这样做以前,我们提出我们使用的加密系统,以及它拥有的允许对加密的数据进行计算的特定的性质。
公钥加密系统我们使用的加密系统是由Paillier提出的公钥加密系统。我们简要地说明数据是怎样加密的。
首先,要生成密钥。为此,两个大的质数p和q被随机选取,并且,我们计算n=pq和λ=lcm(p-1;q-1)。此外,由p和q计算出生成器g(详细信息参见P.Paillier.Public-key cryptosystems based oncomposite degree residuosity classes。Advances in Cryptology-EUROCRYPT’99,Lecture Notes in Computer Science,1592223-238,1999)。现在,一个对(n;g)形成加密系统的公钥,它被发送到每一个用户,并且λ形成私钥,被用于解密,它被保守秘密。
其次,想要发送消息m∈Zn={0,1,...,n-1}到具有公钥(n,g)的接收者的发送者,通过下面的公式计算密文ε(m)ε(m)=gmrnmodn2,(10)这里,γ是从 随机抽取的数。
这一γ防止通过简单地将所有可能的值m(在这种情况中,仅能够假定几个值)译成密码而解密,并且比较最终的结果。因此,Paillier系统被叫做随机化加密系统。
密文c∈m的解密通过计算下面的公式实现m=L(cλmodn2)L(gλmodn2)modn,]]>这里,对具有x≡1(modn)的任何0<x>n2,L(x)=(x-1)/n。在解密期间,随机数γ取消。
注意在上述的加密系统中,消息m是整数。然而,通过用足够大的数字与它们相乘并且舍成整数,有理数的值是可能的。例如,如果我们要使用具有两位小数的消息,那么,我们简单地用100与它们相乘并且取整。通常,范围Zn是足够大以允许用于这一乘法运算。
性质上面提出的加密模式具有下列良好的性质。第一个性质是ϵ(m1)ϵ(m2)≡gm1r1ngm2r2n≡g(m1+m2)(r1r2)n≡ϵ(m1+m2)(modn2),]]>它允许我们对加密的数据计算和。第二个性质是ϵ(m1)m2≡(gm1r1n)m2≡gm1m2(r1m2)n≡ϵ(m1m2)(modn2),]]>它允许我们对加密的数据计算积。具有这两种性质的加密模式叫做同态的(homomorphic)加密模式。Paillier系统是一个同态的加密模式,但存在有一个以上的模式。当相似性量度和预测需要时,使用下面的公式,我们能够使用上述的性质计算积的和Πjϵ(aj)bj≡Πjϵ(ajbj)≡ϵ(Σjajbj)(modn2).---(11)]]>所以,按照下面的方法,两个用户a和b能够使用它来计算在他们的每一个的矢量之间的内积。首先,用户a加密他的项目aj并发送它们到b。然后,用户b计算(11),如由左边的项给出的,并且,发送结果回到a。其次,用户a把该结果解密,获得所需要的内积。
注意用户a和用户b都不能够观察另一个用户的数据,用户a获知的唯一东西是内积。
我们要提及的最后性质是ϵ(m1)ϵ(0)≡gm1r1ng0r2n≡gm1(r1r2)n≡ϵ(m1)(modn2),]]>被叫做(再次)遮蔽((re)blinding)的这个动作,依靠随机数r2∈Zn*]]>的平均值,也能够被用于避免试凑攻击,如上面讨论过的。今后我们还将使用它。
加密的基于用户的算法将进一步解释为了计算某些用户u和项目i的预测 怎样能对加密的数据执行基于用户的合作算法。我们考虑如在图1中所示的设置,其中,第一设备110(用户u)通过服务器150与第二设备190、191、199(其他用户v)通信。此外,每一个用户已经生成他自己的密钥,并且,已经公布它的公开部分。当我们要计算用户u的预测时,下面的步骤将使用密钥u。
对加密的数据计算相似性首先,我们执行相似性计算步骤,为此,我们用在(1)中给出的皮尔逊相关性作为开始。虽然我们已经解释了怎样对加密的数据计算内积,但是,我们必需解决这样的问题,即在(1)里的和中的迭代数i仅在Iu∩Iv中运算,并且,这一交集(intersection)对任何一个用户都是不知道的。因此,我们首先引入 并且,把(1)重写成s(u,v)=Σi∈IquiqviΣi∈Iqui2bviΣi∈Iqvi2bui]]>我们利用的思想是任何iIu∩Iv对三个和中的任何一个都没有影响,因为,在对应的项目里的因子中的至少一个将是零。因此,我们已经把相似性重写为由三个内积组成的形式,每一个在u和v的矢量之一之间。
现在,规程如下执行。首先,使用(10),用户u为所有的i∈I计算加密的项目ε(qui),ε(qui2),ε(qui),并且,发送它们到服务器。服务器转发这些加密的项目到每一个其他的用户v1,...,vm-1。其次,每一个用户vJ,j=1,...,m-1,使用(11)来计算ε(∑i∈Iquiqvji),ε(∑i∈Iqui2bvji),ε(∑i∈Iqvji2bui),并且,发送这三个结果回到服务器,服务器转发它们到用户u。用户u能够给全部的3(m-1)个结果解密,并且对所有的j=1,...,m-1计算相似性s(u,vJ)。注意用户u现在知道其他m-1用户的相似性值,但是,他不需要知道每一个用户j=1,...,m-1是谁。另一方面,服务器知道每一个用户j=1,...,m-1是谁,但是,它不知道相似性值。
对于其它的相似性量度,我们也能够仅使用加密的数据来获得计算方案。对于均方距离,我们能够重写(2)为Σi∈Iu∩Iv(rui2-2ruirvi+rvi2)|Iu∩Iv|=Σi∈Irui2bvi+2Σi∈Irui(-rvi)+Σi∈Irvi2buiΣi∈Ibuibvi]]>这里,为了具有明确定义的值,我们另外定义若bui=0,则rui=0。所以,通过四个内积的平均值,也能够计算这一距离量度。归一化的曼哈顿距离的计算更复杂一些。假定一组可能的评价用X给出,首先,我们为每一个评价定义x∈X, 并且 现在,(3)能够被重写为Σi∈IΣx∈XbuixavixΣi∈Ibuibvi=Σx∈XΣi∈IbuixavixΣi∈Ibuibvi]]>所以,根据|X|+1内积能够计算标准化的曼哈顿距离。此外,用户v能够计算
Πx∈Xϵ(Σi∈Ibuixavix)≡ϵ(Σx∈XΣi∈Ibuixavix)]]>并且,把这一结果与加密的分母一起,发送回用户u。
通过下面的定义,按照上述的方法,也能够计算多数票数的量度 然后,在(4)中使用的cuv可用下面的公式给出cuv=Σx∈XΣi∈Ibuixavix]]>它能够同样按照如上所述的方法计算。此外,duv=Σi∈Ibuibvi-cuv]]>最后,我们考虑加权的卡帕量度。同样,通过下面的定义能够计算ouv 并然后,计算ouv=Σx∈XΣi∈IbuixavixΣi∈Ibuibvi]]>此外,如果用户u为所有的x∈X把Pu(x)加密并发送它们到每一个其他用户v,那么就能按照加密的方式计算euv,然后,用户v能够计算Πx∈XΠy∈Xϵ(pu(x))pv(y)w(x,y)≡ϵ(euv)]]>
并且发送回到u以用于解密。
对加密的数据计算预测对于合作筛选的第二步骤,用户u按照下面的方法能够计算项目i的预测。首先,我们把在(5)中的商重写成Σv∈Us(u,v)qviΣv∈U|s(u,v)|bvi]]>所以,首先,用户u为每一个其他用户vj加密s(u,vj)和|s(u,vj)|,j=1,...,m-1,并且,把它们发送到服务器。然后,服务器转发每一对ε(s(u,vj)),ε(|s(u,vj)|)到各个用户vj,用户vj计算ϵ(s(u,vj))qvjiϵ(0)≡ϵ(s(u,vj)qvji)]]>和ϵ(|s(u,vj)|)bvjiϵ(0)≡ϵ(|s(u,vj)|bvji),]]>这里,他使用再遮蔽以防止服务器通过尝试几个可能的值而从往返于用户vj的数据中获得知识。每一个用户vj然后发送结果回到服务器,然后服务器计算Πj=1m-1ϵ(s(u,vj)qvjix)=ϵ(Σj=1m-1s(u,vj)qvjix)]]>和Πj=1m-1ϵ(|s(u,vj)|bvji)=ϵ(Σj=1m-1|s(u,vj)|bvji)]]>并且,把这些结果发送回用户u。然后,用户u能够对这些消息解密并使用它们计算预测。按照相似的方法能够处理简单的预测公式(6)。由(7)给出的最大的总计相似性预测能够如下处理。
首先,我们重写Σv∈Uixs(u,v)=Σj=1m-1s(u,vj)avjix]]>
这里,avjix是由(12)定义的。其次,用户u为每一个其他用户vj加密s(u,vj),j=1,...,m-1,并且,发送它们到服务器。然后,服务器转发每一个ε(s(u,vj))到各个用户vj,用户vi对每一个评价x∈X使用再遮蔽来计算ϵ(s(u,vj))avjixϵ(0)≡ϵ(s(u,vj)avjix).]]>其次,每一个用户vj发送这些|X|结果返回到服务器,然后,服务器为每一个x∈X计算Πj=1m-1ϵ(s(u,vj)avjix)=ϵ(Σj=1m-1s(u,vj)avjix)]]>并且发送|X|结果返回到用户u。最后,用户u给这些结果解密并且确定具有最好结果的评价x。
加密的基于项目的算法使用Paillier加密系统的阈系统,也能够对加密的数据进行基于项目的合作筛选。在这样的系统中,解密密钥在数量为1的用户被共享,并且,只有当多于阈值t的用户合作时,才能够解密密文。在这一系统中,密钥的生成以及解密机构都较为复杂。对于在阈密码系统中的解密过程,首先,要选择至少t+1个用户的子集,它们将涉及到解密。其次,这些用户中的每一个使用他自己的共享密钥以接收密文并计算解密共享分量。最后,组合这些解密共享分量来计算原来的消息。只要至少有t+1用户已经组合了他们的解密共享分量,那么,原来的消息能够被重新建立。
基于项目的方法的通常工作的与基于用户的方法比较稍微有些差别,首先是服务器确定项目之间的相似性,其次是利用它们进行预测。
与已知的合作筛选的设置相比较,执行合作筛选的按照本发明的实施例设备110、190、191、199需要起更积极的作用。这意味着作为现有技术中的运行一个算法的一个(单独的)服务器的替代,现在,我们要有一个运行分布算法的系统,其中,所有的节点积极地涉及到算法的各个部分。算法的时间复杂性基本保留在同一水平,但为一些相似性量度和预测公式而另加的因子|X|以及新的设置允许平行计算这一事实除外。
各种计算机程序产品可以执行本发明的设备和方法的功能,并且,可以按照几种方法与硬件结合,或者位于不同的其他设备中。
在本发明的基本原理的范围内能够对描述的实施例进行变化和修改。例如,在图1中的服务器150可以包括计算装置以获得在第一数据和第二数据之间的加密的内积,或者在相似性值中的第一和第二数据的共享分量加密的和,并且,服务器被耦合到公钥解密服务器以便为加密的内积以及共享分量和解密,并获得相似性值。作为另一个实例,本发明的一般原理能够以多种方式被映射到价值链(value chain)上,即通过最终能够给消费者提供服务的不同的合法实体的连锁贸易活动的商业模型。本发明的一个实施例涉及通过数据网络例如因特网,能够使消费者提供代表消费者的加密的数据和标识符。为了提供隐私,在不同的消费者的标识符和加密的数据之间的关系被打破。例如,在传递加密的数据以前,服务器替换另一个(例如,临时的以及与会话相关的)标识符。然后,消费者的加密的数据是在加密域中处理的以便计算相似性值,这或者在专用的服务器处,或者在另一个消费者处进行处理,但是,两者均不能够给加密的数据解密。
动词“包括”及其它的的各个变化形式的使用,不排除在权利要求中所规定以外的部件和步骤的存在。通过包括几个分开的部件的硬件装置以及通过合适程序设计的计算机装置,都能够实现本发明。在列举几个装置的系统权利要求中,这些装置中的几个可以通过一个和相同硬件来体现。
‘计算机程序’将被理解为指的是存储在计算机可读介质例如软盘上的、通过网络如因特网可下载的、或者按照任何其他方式适于销售的任何软件产品。
权利要求
1.一种用于处理数据的系统(100),该系统包括-用于加密第一数据的第一源(110),和用于加密第二数据的第二源(190、191、199),-配置成获得加密的第一和第二数据的服务器(150),服务器被阻止为加密的第一和第二数据解密,并被阻止相互显示第一和第二源的身份,-计算装置(110、150、190、191、199),用于对加密的第一和第二数据进行计算以获得在第一和第二数据之间的相似性值,使得第一和第二数据对第二和第一源分别是匿名的,该相似性值提供在第一和第二数据之间的相似性的指示。
2.按照权利要求1的系统,其中,第二源包括计算装置以便-获得在第一数据和第二数据之间的加密的内积,和-经由服务器提供加密的内积给第一源,第一源被配置成对加密的内积进行解密以获得相似性值。
3.按照权利要求1的系统,其中,使用Paillier密码系统或者使用公钥共享模式的阈Paillier密码系统来实现计算装置。
4.按照权利要求1的系统,其中,服务器包括用于获得在第一和第二数据之间的加密的内积、或者在相似性值中的第一和第二数据的加密的共享分量的和的计算装置,以及服务器被耦合到公钥解密服务器,公钥解密服务器为加密的内积或者共享分量的和解密,并获得相似性值。
5.按照权利要求1到4中的任何一项的系统,其中,使用皮尔逊相关性或卡帕统计数值获得相似性值。
6.一种处理数据的方法,该方法包括下列使能步骤以便-(210)加密第一源的第一数据,和加密第二源的第二数据,-(220)向服务器提供加密的第一和第二数据,服务器被阻止给加密的第一和第二数据解密,并且,被阻止相互显示第一和第二源的身份,-(230)对加密的第一和第二数据进行计算以获得在第一和第二数据之间的相似性值,使得第一和第二数据对第二和第一源分别是匿名的,相似性值提供在第一和第二数据之间的相似性的指示。
7.按照权利要求6的方法,其中,第一或第二数据分别包括第一或第二用户的用户简档,用户简档指明第一或第二用户对媒体内容项目的用户喜好。
8.按照权利要求6的方法,其中,第一或第二用户数据包括对各个内容项目的用户评价。
9.按照权利要求6的方法,还包括使用相似性值获得第一或第二源的内容项目推荐的步骤(240)。
10.按照权利要求9的方法,其中,推荐是使用合作筛选技术执行的。
11.一种用于处理数据的服务器(150),服务器被配置成-获得第一源(110)的加密的第一数据和第二源(190、191、199)的加密的第二数据,服务器被阻止为加密的第一和第二数据解密,并且,阻止相互显示第一和第二源的身份,-使得能对加密的第一和第二数据进行计算以获得在第一和第二数据之间的相似性值,从而使第一和第二数据对第二和第一源分别是匿名的,相似性值提供在第一和第二数据之间的相似性的指示。
12.一种处理数据的方法,该方法包括下列的步骤-(220)通过服务器(150)获得第一源(110)的加密的第一数据和第二源(190、191、199)的加密的第二数据,服务器被阻止为加密的第一和第二数据解密,并且,被阻止相互显示第一和第二源的身份,-(230)使得能对加密的第一和第二数据进行计算以获得在第一和第二数据之间的相似性值,从而使第一和第二数据对第二和第一源分别是匿名的,相似性值提供在第一和第二数据之间的相似性的指示。
13.一种计算机程序产品,使得可编程的设备当执行所述的计算机程序产品时能按权利要求1中所定义的系统时那样工作。
全文摘要
本发明涉及到一种处理数据的方法,该方法包括下列步骤(210)对第一源的第一数据加密,和对第二源的第二数据加密,(220)把加密的第一和第二数据提供给服务器,服务器被阻止给加密的第一和第二数据解密,并且,阻止相互显示第一和第二源的身份,(230)对加密的第一和第二数据进行计算以获得在第一和第二数据之间的相似性值,使得第一和第二数据对第二和第一源分别是匿名的,相似性值在第一和第二数据之间提供相似性指示。该方法还可以包括使用该相似性值来为第一或第二源获得内容项的推荐的步骤(240)。第一或第二数据可以包括用户简档或内容项目的用户评价。该方法的应用之一可以是在合作筛选系统中。
文档编号G06Q30/00GK1864171SQ200480029585
公开日2006年11月15日 申请日期2004年8月5日 优先权日2003年8月8日
发明者W·F·J·弗海格, A·E·M·范杜伊恩霍芬, J·H·M·科尔斯特, P·T·图尔斯 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1