网络环境中的用户信息处理和资源推荐的方法和系统的制作方法

文档序号:6576880阅读:174来源:国知局
专利名称:网络环境中的用户信息处理和资源推荐的方法和系统的制作方法
技术领域
本发明涉及网络环境中的用户信息处理,尤其是网络环境中用户隐私的保护,更具体涉及一种用于网络网络中的用户信息处理的方法和装置,以及一种用于向用户推荐网络资源的方法和系统。

背景技术
向量内积可表示向量之间的相似性和相关性,因此,在机器学习、信息检索(Information Retrieval)、推荐系统(Recommender System)等中得到了广泛的使用。例如,网络环境中的推荐系统,通过计算用户的偏好向量之间的内积来测量它们之间的相似性,从而发现用户的邻居并将用户聚类为组。余弦相关性和皮尔森相关性(Pearson Correlation)是常见的相似性度量。尽管它们的公式是不同的,但它们的实质部分都是向量内积。支持向量机(SVM)仅使用向量内积来构造决策超平面。向量内积的计算公式非常简单。如果向量A=(a1,a2,...,an),B=(b1,b2,...,bn),则它们的内积是 然而,在某些情况下向量内积的计算涉及隐私问题。例如,上述推荐系统所用的用户的偏好向量往往包含了用户的稳私信息,例如个人简档、交易记录、下载列表、浏览历史等等。在集中式系统中,中央服务器保存着所有用户的隐私信息,在这种情况下,用户只能寄希望于中央服务器是可信的。而在有的国家,当公司破产时,用户的信息可以被合法地出售以偿还债务。在p2p推荐系统中,用户必须承担将其隐私信息与其他信用并不可靠的用户共享的风险。另一个具体的例子是SmallBlue系统,该系统可收集用户的电子邮件内容中的词。尽管该系统无法得到用户电子邮件的完整内容,但关键词可也以显示出用户的兴趣。
涉及到网络环境中用户隐私信息保护的另一种场景是推荐系统的推荐过程。在该推荐过程中,推荐系统使用用户的邻居的资源偏好向量来形成该用户的推荐列表,所述资源偏好向量包含了诸如浏览历史、下载日志、交易、个人简档等隐私信息。在传统的推荐系统的推荐过程中,用户的邻居的隐私信息将暴露给该用户或中央服务器。
可见,在本领域中需要一种在网络环境中计算用户偏好向量的内积以及推荐系统的推荐过程中等场景中保护用户隐私的解决方案。


发明内容
根据本发明的一个方面,提供了一种用于网络环境中的用户信息处理的方法,包括在第一用户设备处对表示与第一用户有关的信息的第一向量进行正交变换,从而得到第一变换向量;在所述第一用户设备处将所述第一变换向量划分为至少两个部分,其中,当将所述第一变换向量划分为两个部分时将所述第一变换向量划分为第一变换向量的第一部分和第二部分,其中由所述第一变换向量的第一部分或第二部分无法获得所述第一向量或其部分;从所述第一用户设备将所述第一变换向量的第二部分发送给与所述第一用户设备通过网络连接的第二用户设备,以及从所述第二用户设备接收第二变换向量的第一部分,其中所述第二变换向量的第一部分是通过在所述第二用户设备处对表示与第二用户有关的信息的第二向量进行所述正交变换从而得到第二变换向量,并将所述第二变换向量相应地划分为第二变换向量的第一部分和第二部分而得到的,其中由所述第二变换向量的第一部分或第二部分无法获得所述第二向量或其部分;在所述第一用户设备处计算所述第一变换向量的第一部分与所述第二变换向量的第一部分的内积,从而获得第一内积;从所述第二用户设备接收第二内积,其中所述第二内积是通过在所述第二用户设备处计算所述第一变换向量的第二部分与所述第二变换向量的第二部分的内积而得到的;以及在所述第一用户设备处将所述第一内积和第二内积相加,作为所述第一向量和第二向量的内积。
根据本发明的另一个方面,提供了一种用于网络环境中的用户信息处理的装置,包括变换模块,用于在第一用户设备处对表示与第一用户有关的信息的第一向量进行正交变换,从而得到第一变换向量;划分模块,用于在所述第一用户设备处将所述第一变换向量划分为至少两个部分,其中,当所述第一变换向量被划分为两个部分时所述划分模块用于将所述第一变换向量划分为第一变换向量的第一部分和第二部分,其中由所述第一变换向量的第一部分或第二部分无法获得所述第一向量或其部分;发送接收模块,用于从所述第一用户设备将所述第一变换向量的第二部分发送给与所述第一用户设备通过网络连接的第二用户设备,以及从所述第二用户设备接收第二变换向量的第一部分,其中所述第二变换向量的第一部分是通过在所述第二用户设备处对表示与第二用户有关的信息的第二向量进行所述正交变换从而得到第二变换向量,并将所述第二变换向量相应地划分为第二变换向量的第一部分和第二部分而得到的,其中由所述第二变换向量的第一部分或第二部分无法获得所述第二向量或其部分;计算模块,用于在所述第一用户设备处计算所述第一变换向量的第一部分与所述第二变换向量的第一部分的内积,从而获得第一内积;所述发送接收模块还用于从所述第二用户设备接收第二内积,其中所述第二内积是通过在所述第二用户设备处计算所述第一变换向量的第二部分与所述第二变换向量的第二部分的内积而得到的;以及相加模块,用于在所述第一用户设备处将所述第一内积和第二内积相加,作为所述第一向量和第二向量的内积。
根据本发明的又一个方面,提供了一种用于在网络环境中向用户推荐资源的方法,包括以下步骤在该用户的两个或更多个邻居中的每一个邻居的设备处对该邻居的资源偏好向量执行自同构的变换,从而生成该邻居的变换向量;在所述每一个邻居的设备处将所述变换向量以同样方式划分为两个或更多个部分,其中由任何一个部分无法得出所述资源偏好向量或其部分;从所述每一个邻居的设备处将所述两个或更多个部分中的每一个分别发送到所述用户的设备、其他邻居的设备或一个或多个其他设备处,或保留在该邻居的设备处,从而使得所有邻居的变换向量的相应的部分都存在于所述用户的设备、所述两个或更多个邻居的设备以及所述一个或多个其他设备中的相应的同一个设备处,并且除了在每一个邻居的设备处所存在的该邻居的变换向量外,在所述用户的设备、所述两个或更多个邻居的设备以及所述一个或多个其他设备中的每一个处都不存在任何其他的变换向量的所有部分;在所述用户的设备、所述每一个邻居的设备或所述一个或多个其他设备中的每一个处分别计算所有变换向量的相应部分的和;从所述每一个邻居的设备或所述一个或多个其他设备中的每一个处分别将所计算的所有变换向量的相应部分的和发送到所述用户的设备;在所述用户的设备处将所计算的所有变换向量的所有相应部分的和集成为所有变换向量的和;以及在所述用户的设备处对所有变换向量的和执行逆变换,从而生成将向该用户推荐的资源偏好向量。
根据本发明的再一个方面,提供了一种用于在网络环境中向用户推荐资源的系统,包括位于该用户的两个或更多个邻居中的每一个邻居的设备处的变换模块,用于对该邻居的资源偏好向量执行自同构的变换,从而生成该邻居的变换向量;位于所述每一个邻居的设备处的划分模块,用于将所述相应的变换向量以同样方式划分为两个或更多个部分,其中由任何一个部分无法得出所述资源偏好向量或其部分;位于所述每一个邻居的设备处的发送模块,用于将所述两个或更多个部分中的每一个分别发送到所述用户的设备、其他邻居的设备或一个或多个其他设备处,或保留在该邻居的设备处,从而使得所有邻居的变换向量的相应的部分都存在于所述用户的设备、所述两个或更多个邻居的设备以及所述一个或多个其他设备中的相应的同一个设备处,并且除了在每一个邻居的设备处所存在的该邻居的变换向量外,在所述用户的设备、所述两个或更多个邻居的设备以及所述一个或多个其他设备中的每一个处都不存在任何其他的变换向量的所有部分;位于所述用户的设备、所述每一个邻居的设备或所述一个或多个其他设备中的每一个处的计算模块,用于分别计算所有变换向量的相应部分的和;位于所述每一个邻居的设备或所述一个或多个其他设备中的每一个处的发送模块,用于分别将所计算的所有变换向量的相应部分的和发送到所述用户的设备;位于所述用户的设备处的集成模块,用于将所计算的所有变换向量的所有相应部分的和集成为所有变换向量的和;以及位于所述用户的设备处的逆变换模块,用于对所有变换向量的和执行逆变换,从而生成所有邻居的资源偏好向量的和,作为向该用户推荐的资源偏好向量。
本发明的优点在于既能够在网络环境中计算表示与用户有关的信息的向量的内积或根据对用户的邻居的资源偏好向量的计算向用户推荐资源,同时又保护了用户及其邻居的隐私。



所附权利要求中阐述了被认为是本发明的特点的创造性特征。但是,通过参照附图阅读下面对说明性实施例的详细说明可更好地理解发明本身以及其优选使用模式、目标、特征以及优点,在附图中 图1示出了根据本发明的实施例的用于网络环境中的用户信息处理的方法; 图2示意性地例示了根据本发明的实施例的用于网络环境中的用户信息处理的方法的过程; 图3示出了根据本发明的进一步的实施例的方法中用于在计算向量内积之前压缩内积长度的附加步骤; 图4示意性地例示了根据本发明的进一步的实施例的方法中用于在计算向量内积之前压缩内积长度的过程; 图5示出了根据本发明的进一步的实施例的用于网络环境中的用户信息处理的方法; 图6示出了根据本发明的实施例的用于网络环境中的用户信息处理的装置; 图7示出了根据本发明的实施例的用于在网络环境中向用户推荐资源的方法; 图8示出了根据本发明的进一步的实施例的方法中用于压缩资源偏好向量的长度以及将资源偏好向量中的元素与相应的资源项目相关联的附加步骤; 图9示出了根据本发明的实施例的方法中用于实现关联步骤的具体步骤; 图10示意性地例示了根据本发明的实施例的用于在网络环境中向用户推荐资源的方法的过程; 图11A和11B示意性地例示了根据本发明的实施例的将资源偏好向量中的元素与相应的项目相关联的附加步骤的实现过程;以及 图12示出了根据本发明的实施例的用于在网络环境中向用户推荐资源的系统。

具体实施例方式 本发明的基本思想在于在相关用户的计算设备处使用特定变换将表示与用户有关的信息的初始向量变换为新的向量,将该新的向量划分为不同的部分,所述变换和/或所述划分具有这样的性质,即根据任何部分无法计算出初始向量;然后将各个部分分布到不同用户的计算机中进行应用场景所要求的操作;最后,将各个操作结果集中到一个计算设备中进行合并,并在需要时进行逆变换,从而获得最终的结果,所述最终的结果与当使用用户的初始向量进行应用场景所要求的操作时的结果是相同的。这样,既获得了对用户向量进行应用场景所要求的操作的结果,同时,在任何用户的计算设备处都无法获得其他的用户向量,从而保护了用户的隐私。
下面参照附图来说明本发明的实施例。在下面的说明中,阐述了许多具体细节以便更全面地了解本发明。但是,对于本技术领域内的技术人员明显的是,本发明的实现可不具有这些具体细节中的一些。在下面的说明中出现的“第一”、“第二”、“第三”等词语仅是为叙述方便而使用的,而不代表任何顺序。此外,应当理解的是,本发明并不限于所介绍的特定实施例。相反,可以考虑用下面的特征和要素的任意组合来实施本发明,而无论它们是否涉及不同的实施例。因此,下面的方面、特征、实施例和优点仅作说明之用而不应被看作是所附权利要求的要素或限定,除非权利要求中明确提出。
在本发明的一个方面,提供了一种用于网络环境中的用户信息处理的方法。图1示出了根据本发明的实施例的用于网络环境中的用户信息处理的方法。如图所示,该方法包括以下步骤 在步骤101,在第一用户设备处对表示与第一用户有关的信息的第一向量进行正交变换,从而得到第一变换向量。所述第一向量可表示诸如用户的下载列表、浏览历史等等与用户有关的信息。正交变换可以将向量从一个内积空间变换到另一个内积空间,而向量的内积的值却不变。优选地,可以使用具有良好的分散性(decompaction)的正交变换。分散性可确保变换后的向量的任何部分无法用来重构原始向量,甚至无法用来重构原始向量的一部分或近似的向量。在本发明的一个实施例中,使用离散余弦变换(Discrete Cosine Transformation)作为所述正交变换。优选地,可进一步使用二重离散余弦变换,即在使用离散余弦变换对原向量进行变换后,对变换后的向量再次使用离散余弦变换进行变换,这样可进一步改进分散性。当然,这并非是对本发明的限制,本发明的方法也可以使用任何其他适当的正交变换。
在本发明的另一个实施例中,所述正交变换是使用随机正交矩阵实现的,即每次正交变换计算是使用不同的正交矩阵实现的。具体地,为了实现每次正交变换计算使用不同的正交变换,可以采用协商的方式在每次计算前生成一个正交矩阵。以两个节点的计算为例,生成正交矩阵的步骤可以如下 在第一步,节点A和节点B分别生成一个伪随机数,互相交换后求和或者进行其他运算,得到一个新的数,作为伪随机数生成器的种子。
在第二步,节点A和节点B使用相同的伪随机数发生器和协商好的种子,生成相同的矩阵M。
在第三步,节点A和节点B检查这个矩阵M是不是满秩的,如果不是,则重复第一、二步,如果是进行下一步操作。
在第四步,节点A和节点B分别使用斯密特正交化方法求矩阵M的标准正交基,求得的标准正交基就是一个正交矩阵N,可用以实现所述正交变换。
返回图1,在步骤102,在所述第一用户设备处将所述第一变换向量划分为第一变换向量的第一部分和第二部分,其中由所述第一变换向量的第一部分或第二部分无法获得所述第一向量。可以任何方式将第一变换向量划分为第一部分和第二部分。例如,所述第一部分和第二部分可包含相同数量的元素或不同数量的元素。此外,为了确保由第一变换向量的任何部分无法获得第一向量,除了如上所述采用具有良好分散性的正交变换外,还可进一步地在进行划分时将第一变换向量的偶数位置的元素和奇数位置的元素分别划分到第一部分和第二部分。
在步骤103,从所述第一用户设备将所述第一变换向量的第二部分发送给与所述第一用户设备通过网络连接的第二用户设备,以及从所述第二用户设备接收第二变换向量的第一部分,其中所述第二变换向量的第一部分是通过在所述第二用户设备处对表示与第二用户有关的信息的第二向量进行所述正交变换从而得到第二变换向量,并将所述第二变换向量相应地划分为第二变换向量的第一部分和第二部分而得到的。所述第二向量与所述第一向量具有相同数量的元素,且第二向量中的每个元素与第一向量中的每个元素具有相同的意义,例如代表同一个资源项目。
在步骤104,在第一用户设备处计算第一变换向量的第一部分与第二变换向量的第一部分的内积,从而获得第一内积。
在步骤105,从所述第二用户设备接收第二内积,其中所述第二内积是通过在所述第二用户设备处计算所述第一变换向量的第二部分与所述第二变换向量的第二部分的内积而得到的。
在步骤106,在所述第一用户设备处将所述第一内积和第二内积相加,作为所述第一向量和第二向量的内积。所述第一向量和第二向量的内积反映了第一向量和第二向量之间的相似性。
根据本发明的一实施例,本发明的该方法还包括附加的步骤107,用于根据所述第一向量和第二向量的内积确定所述第一用户和第二用户是否为相邻用户。
本发明的上述方法可用来在推荐系统中通过计算两个用户的偏好向量的内积来确定两个用户是否是为相邻用户,也可用来在诸如p2p环境中的机器学习、数据挖掘、信息检索、应用场景中计算不同用户的信息之间的相似性或相关性,还可用来在诸如SmallBlue等系统中通过计算与不同用户的邮件内容有关的向量之间的内积来确定这些邮件内容的相似性和相关性,并进而构建社会网络(social network)。在所有上述应用场景中,本发明的方法均能够确保用户的隐私信息不被暴露。
图2示意性地例示了根据本发明的实施例的用于网络环境中的用户信息处理的方法的过程。如图所示,在第1步,网络中的两个计算设备PeerA和Peer B分别使用离散余弦变换(DCT)将原始向量Va(5,1,2,0,3,4)和Vb(3,0,4,0,2,1)变换为新的向量Da(6.1237,0.04,3.5,0.4082,0.866,2.0813)和Db(4.0825,0.8966,0,0,1.1547,3.3461)。
在第2步,Peer A将Da划分为两个部分Da1(6.1237,0.04)和Da2(3.5,0.4082,0.866,2.0813)。Peer B也以同样方式将Db划分为两个部分Db1(4.0825,0.8966)和Db2(0,0,1.1547,3.3461)。
在第3步,Peer A将Da1发送给Peer B;Peer B将Db2发送给PeerA。
在第4步,Peer A计算Da2和Db2的内积<Da2,Db2>=25.0359;PeerB计算Da1和Db1的内积<Da1,Db1>=7.9641。
在第5步,Peer A和Peer B交换两个内积<Da2,Db2>和<Da1,Db1>。
在第6步,Peer A和PeeB分别将两个内积相加,获得向量Da和Db的内积<Da,Db>=33,该值与原始向量Va和Vb的内积<Va,Vb>的值相同。
上述方法包含了本发明的该技术方案的所有必要技术特征。然而,在实际系统中,该方法可能会产生性能上的问题。例如,假设向量包含用户的下载列表,由于每个用户的下载列表通常较小,而可能的下载项目的数量却非常巨大,例如可能是数百万甚至数千万,又由于该方法要求每个用户的向量的大小相同,因此如果使用相同大小的向量来表示用户的下载列表,则会得到极其巨大而稀疏的向量,从而给系统带来很大的计算负荷。为此,在本发明的进一步的实施例中,该方法还包括在计算向量内积之前用于压缩内积长度的附加步骤。图3示出了根据本发明的该进一步的实施例的该方法中的附加步骤。
如图所示,在步骤301,从所述第一用户设备将表示与第一用户有关的信息的第一原始向量的长度或更大的长度发送给所述第二用户设备,且从所述第二用户设备接收表示与第二用户有关的信息的第二原始向量的长度或更大的长度。
在步骤302,在所述第一用户设备处创建长度等于或大于所述第一原始向量的长度和第二原始向量的长度之和的第一零元素向量。
在步骤303,在所述第一用户设备处使用散列函数根据所述第一原始向量中各元素所属的项目编号将各元素映射到所述第一零元素向量的相应位置,从而形成所述第一向量;其中所述第二向量是通过在所述第二用户设备处创建与所述第一零元素向量相同长度的第二零元素向量,并使用所述散列函数根据所述第二原始向量中各元素所属的项目编号将各元素映射到所述第二零元素向量的相应位置而形成的。任何能够将项目编号映射到所述零元素向量的某个元素位置的散列函数都是可行的,换言之,任何散列函数,只要其对不同数值进行散列所得到的不同散列值的数量等于或小于所述零元素向量的大小,都是可行的。
图4示意性地例示了根据本发明的该进一步实施例的用于在计算向量内积之前压缩内积长度的过程。如图所示,Peer A处的列表为ListA{1:5,4:1,6:2,7:3,9:4},表示编号分别为1、4、6、7、9的5个项目的值分别为5、1、2、3、4;Peer B处的列表为ListB{1:3,6:4,7:2,9:1},表示编号分别为1、6、7、9的4个项目的值分别为3、4、2、1。在第1步,Peer A和Peer B相互交换其各自的列表的长度La=5和Lb=4。实际上,Peer A和Peer B不必将其列表的真实长度告知对方。任何大于其列表的真实长度的数量都是可行的。在第2步,Peer A和Peer B各创建一个长度相同的零元素向量,且每个零元素向量的长变等于各自列表的长度之和或更大,即Va(0,0,0,0,0,0,0,0,0)和Vb(0,0,0,0,0,0,0,0,0)。然后,Peer A和PeerB分别使用相同的散列函数根据其各自列表List A和List B中各项目的编号将其各自列表中的项目映射到各自零元素向量的相应位置,从而形成向量Va(5,0,0,0,2,0,0,3,4)和Vb(3,0,0,0,4,0,0,2,1)。也就是说,所述散列函数将项目编号1映射为元素位置0,将项目编号4映射为元素位置2,将项目编号6映射为元素位置4,将项目编号7映射为元素位置7,将项目编号9映射为元素位置8。
另外,如何划分变换向量以及将变换向量的部分分布在何处也不会改变本发明的方法的本质。例如,可以将每个变换向量划分为三个部分。并将它们分别发送到三个其他设备中来计算每个部分的内积。图5示出了根据本发明的进一步的实施例的用于网络环境中的用户信息处理的方法。如图所示,该方法包括如下步骤。
在步骤501,与上述步骤101相同,在第一用户设备处对表示与第一用户有关的信息的第一向量进行正交变换,从而得到第一变换向量。
在步骤502,在第一用户设备处将第一变换向量划分为第一变换向量的第一部分、第二部分和一个或多个第三部分,其中由第一变换向量的第一部分、第二部分和一个或多个第三部分中的任何一个无法获得所述第一变换向量。
在步骤503,从第一用户设备将第一变换向量的第二部分发送给与第一用户设备通过网络连接的第二用户设备,将第一变换向量的一个或多个第三部分分别发送给一个或多个与第一用户设备和第二用户设备通过网络连接的第三设备,以及从第二用户设备接收第二交换向量的第一部分,其中所述第二变换向量的第一部分是通过在第二用户设备处对表示与第二用户有关的信息的第二向量进行所述正交变换从而得到第二变换向量,并将所述第二变换向量相应地划分为第二变换向量的第一部分、第二部分和一个或多个第三部分而得到的。
在步骤504,与步骤104相同,在第一用户设备处计算第一变换向量的第一部分与第二变换向量的第一部分的内积,从而获得第一内积。
在步骤505,从第二用户设备接收第二内积,以及从一个或多个第三设备分别接收一个或多个第三内积,其中所述第二内积是通过在第二用户设备处计算第一变换向量的第二部分与第二变换向量的第二部分的内积而得到的,且所述一个或多个第三内积分别是通过在一个或多个第三设备中的每一个处计算第一变换向量的相应的第三部分与第二变换向量的相应的第三部分的内积而得到的。以及 在步骤505,在第一用户设备处将所述第一内积、第二内积和一个或多个第三内积相加,作为所述第一向量和第二向量的内积。
以上描述了根据本发明的实施例的用于网络环境中的用户信息处理的方法,应指出的是,以上描述仅为示例,而不是对本发明的限制。在本发明的其他实施例中,该方法可具有更多、更少或不同的步骤,且各步骤之间的顺序可以与所描述的不同,或可以并行执行。
下面参照图6,其示出了根据本发明的实施例的用于网络环境中的用户信息处理的装置。该装置可用来执行如上所述的本发明的方法,为简明起见,在以上描述中省略了与以上重复的部分细节。因此,可参照以上描述获得对本发明的装置的更详细的了解。如图所示,该装置包括如下模块 变换模块601,用于在第一用户设备处对表示与第一用户有关的信息的第一向量进行正交变换,从而得到第一变换向量; 划分模块602,用于在所述第一用户设备处将所述第一变换向量划分为第一变换向量的第一部分和第二部分,其中由所述第一变换向量的第一部分或第二部分无法获得所述第一向量; 发送接收模块603,用于从所述第一用户设备将所述第一变换向量的第二部分发送给与所述第一用户设备通过网络连接的第二用户设备,以及从所述第二用户设备接收第二变换向量的第一部分,其中所述第二变换向量的第一部分是通过在所述第二用户设备处对表示与第二用户有关的信息的第二向量进行所述正交变换从而得到第二变换向量,并将所述第二变换向量相应地划分为第二变换向量的第一部分和第二部分而得到的; 计算模块604,用于在所述第一用户设备处计算所述第一变换向量的第一部分与所述第二变换向量的第一部分的内积,从而获得第一内积; 所述发送接收模块603还用于从所述第二用户设备接收第二内积,其中所述第二内积是通过在所述第二用户设备处计算所述第一变换向量的第二部分与所述第二变换向量的第二部分的内积而得到的;以及 相加模块605,用于在所述第一用户设备处将所述第一内积和第二内积相加,作为所述第一向量和第二向量的内积。
为了提高本发明的装置涉及巨大而稀疏的向量的情况的性能,根据本发明的进一步实施例,本发明的该装置还包括以下可选模块或特征 所述发送接收模块603还用于从所述第一用户设备将表示与第一用户有关的信息的第一原始向量的长度或更大的长度发送给所述第二用户设备,且从所述第二用户设备接收表示与第二用户有关的信息的第二原始向量的长度或更大的长度; 创建模块606,用于在所述第一用户设备处创建长度等于或大于所述第一原始向量的长度和第二原始向量的长度之和的第一零元素向量;以及 散列模块607,用于在所述第一用户设备处使用散列函数根据所述第一原始向量中各元素所属的项目编号将各元素映射到所述第一零元素向量的相应位置,从而形成所述第一向量; 其中所述第二向量是通过在所述第二用户设备处创建与所述第一零元素向量相同长度的第二零元素向量,并使用所述散列函数根据所述第二原始向量中各元素所属的项目编号将各元素映射到所述第二零元素向量的相应位置而形成的。
根据本发明的实施例,所述正交变换为离散余弦变换,进一步优选地,所述正交变换为二重离散余弦变换。
为简明起见,在图6中仅详细示出了第一用户设备的结构,然而可理解的是,第二用户设备具有相同的结构。此外,尽管在图6的图示以及以上描述中仅包括两个用户设备,并且在每个用户设备处,变换向量被划分为两个部分,并且其中的一部分被发送给另一个用户设备,然而如何划分变换向量以及将变换向量的部分分布在何处以及在两个用户设备之外是否还存在其他设备也不会改变本发明的方法的本质。例如,可以将每个变换向量划分为三个部分。并将它们分别发送到三个其他设备中来计算每个部分的内积。
因此,根据本发明的另一实施例,所述划分模块602用于在所述第一用户设备处将所述第一变换向量划分为第一变换向量的第一部分、第二部分和一个或多个第三部分,其中由所述第一变换向量的第一部分、第二部分和一个或多个第三部分中的任何一个无法获得所述第一变换向量; 所述发送接收模块603用于从所述第一用户设备将所述第一变换向量的第二部分发送给所述第二用户设备,将所述第一变换向量的一个或多个第三部分分别发送给一个或多个与所述第一用户设备和第二用户设备通过网络连接的第三设备,以及从所述第二用户设备接收所述第二变换向量的第一部分,其中所述第二变换向量的第一部分是通过在所述第二用户设备处对表示与第二用户有关的信息的第二向量进行所述正交变换从而得到第二变换向量,并将所述第二变换向量相应地划分为第二变换向量的第一部分、第二部分和一个或多个第三部分而得到的; 所述发送接收模块603还用于从所述第二用户设备接收第二内积,以及从所述一个或多个第三设备分别接收一个或多个第三内积,其中所述第二内积是通过在所述第二用户设备处计算所述第一变换向量的第二部分与所述第二变换向量的第二部分的内积而得到的,并且所述一个或多个第三内积分别是通过在所述一个或多个第三设备中的第一个处计算所述第一变换向量的相应的第三部分与所述第二变换向量的相应的第三部分的内积而得到的;以及 所述相加模块605用于在所述第一用户设备处将所述第一内积、第二内积和一个或多个第三内积相加,作为所述第一向量和第二向量的内积。
根据本发明的实施例,本发明的该装置还包括可选的确定模块608,用于根据所述第一向量和第二向量的内积确定所述第一用户和第二用户是否为相邻用户。
以上描述了根据本发明的实施例的用于网络环境中的用户信息处理的装置。应指出的是,以上描述仅为示例,而不是对本发明的限制。在本发明的其他实施例中,该装置可具有更多、更少或不同的模块,且各模块之间的连接、包含和功能关系可以与所描述和图示的不同。
在本发明的另一个方面,还提供了一种用于在网络环境中向用户推荐资源的方法。该方法能够基于一个用户的邻居、伙伴或朋友的信息向该用户推荐资源,而不暴露他们的隐私信息。现参照图7描述根据本发明的实施例的用于网络环境中向用户推荐资源的方法。
如图所示,在步骤701,在该用户的两个或更多个邻居中的每一个邻居的设备处对该邻居的资源偏好向量执行自同构的变换,从而生成该邻居的变换向量。该用户的邻居是指与该用户具有相近的资源偏好的用户。可以使用本领域中已知的多种方法来发现该用户的邻居,例如可以通过使用以上描述的本发明的用于网络环境中的用户信息处理的方法或者现有技术的方法计算该用户与其他用户的资源偏好向量之前的相似性来发现该用户的邻居,或通过由该用户构建朋友列表的方法来确定该用户的邻居,等等。资源偏好向量可以来自于用户的各种资源访问和使用信息,例如用户的浏览历史、下载日志、交易记录、个人简档等。每个邻居的资源偏好向量应当具有相同的大小,即包含相同数量的元素。如本领域中所知的,自同构的变换满足如下公式 a+b=T-1(T(a)+T(b)), 其中,a和b是两个大小相同的向量,T是自同构的变换,T-1是其逆变换。优选地,所述变换还应当满足如下要求,即变换后向量的任何部分无法用来重构原向量。在本发明的一实施例中,使用了二重离散余弦变换;当然,这并非是对本领域的限制。
在步骤702,在所述每一个邻居的设备处将所述变换向量以同样方式划分为两个或更多个部分,其中由任何一个部分无法得出所述资源偏好向量。也就是说,将每个邻居的变换向量划分为相同数量和大小的部分,且划分的方式和/或变换本身的性质使得无法从任何部分得出原资源偏好向量。
在步骤703,从所述每一个邻居的设备处将所述两个或更多个部分中的每一个分别发送到所述用户的设备、其他邻居的设备或一个或多个其他设备处,或保留在该邻居的设备处,从而使得所有邻居的变换向量的相应的部分都存在于所述用户的设备、所述两个或更多个邻居的设备以及所述一个或多个其他设备中的相应的同一个设备处,并且除了在每一个邻居的设备处所存在的该邻居的变换向量外,在所述用户的设备、所述两个或更多个邻居的设备以及所述一个或多个其他设备中的每一个处都不存在任何其他的变换向量的所有部分。
在步骤704,在所述用户的设备、所述每一个邻居的设备或所述一个或多个其他设备中的每一个处分别计算所有变换向量的相应部分的和。
在步骤705,从所述每一个邻居的设备或所述一个或多个其他设备中的每一个处分别将所计算的所有变换向量的相应部分的和发送到所述用户的设备。
在步骤706,在所述用户的设备处将所计算的所有变换向量的所有相应部分的和集成为所有变换向量的和。
在步骤707,在所述用户的设备处对所有变换向量的和执行逆变换,从而生成将向该用户推荐的资源偏好向量。
根据本发明的实施例,该方法还包括可选步骤708,其中,在所述用户的设备处根据所生成的资源偏好向量中元素的值对该资源偏好向量中的元素进行排序,以便向该用户推荐。例如,可将排序后的资源偏好向量中的前若干个元素即资源项目推荐给用户。
根据本发明的实施例,该方法还包括可选步骤709,其中,在每一个邻居的设备处对该邻居的资源偏好向量执行自同构的变换之前,将该邻居的资源偏好向量乘以该邻居与所述用户之间的相似性权重。这样,该用户的不同邻居将根据其与该用户的相似程度而不同程度地影响到对该用户的推荐。
为了提高本发明的方法在涉及巨大而稀疏的用户偏好向量的情况下的性能,根据本发明的进一步的实施例,该方法还包括在每个邻居的设备处对资源偏好向量执行变换之前用于压缩资源偏好向量的长度以及将在所述用户的设备处所生成的资源偏好向量中的元素与相应的资源项目相关联的附加步骤。图8示出了根据本发明的该进一步的实施例的该方法中的这些附加步骤。
如图所示,在步骤801,该用户的两个或更多个邻居的设备相互之间交换各自的原始资源偏好向量的长度或更大的长度。
在步骤802,在每个邻居的设备处创建长度相同且等于或大于每个邻居的原始资源偏好向量的长度之和的零元素向量。
在步骤803,在每个邻居的设备处使用相同的散列函数根据该邻居的原始资源偏好向量中各元素所属的项目编号将各元素映射到所述零元素向量的相应位置,从而形成该邻居的所述资源偏好向量以便进行所述自同构变换。也就是说,在步骤803之后,将针对所形成的资源偏好向量执行图7所示的步骤701-707。
在步骤804,将在所述用户的设备处所生成的资源偏好向量中的元素与相应的项目编号相关联,以便向该用户推荐。也就是说,步骤804将在图7所示的步骤707之后执行。
存在着多种实现所述关联步骤804方法。图9示出了根据本发明的实施例的用于实现所述关联步骤的具体步骤。
如图所示,在可选步骤901,在每个邻居的设备处使用所述散列函数将该邻居的原始资源偏好向量中各元素所属的项目编号映射为所述零元素向量中相应位置的“1”元素,从而生成项目编号出现向量。也就是说,对原始资源偏好向量中各元素所属的项目编号执行所述散列函数,所生成的散列值作为所述零元素向量中的相应位置,并将该位置处的零元素置1。当然,如果所述原始资源向量的元素的值为“0”或“1”,例如用以表示用户是否浏览、下载或付费了某个项目,则所述项目编号出现向量与在上述步骤803中形成的资源偏好向量是一致的,从而可以没有该步骤901,而使用在上述步骤803中形成的所述资源偏好向量作为所述项目编号出现向量。
在步骤902,在每个邻居的设备处使用所述散列函数将该邻居的原始资源偏好向量中各元素所属的项目编号映射到所述零元素向量中相应的位置,从而生成项目编号向量。也就是说,对原始资源偏好向量中各元素所属的项目编号执行所述散列函数,所生成的散列值作为所述零元素向量中的相应位置,并在该位置处放置所述项目编号。
在步骤903,针对所述项目编号出现向量和项目编号向量分别执行如以上所述针对所述资源偏好向量执行的步骤701-707,从而在所述用户的设备处生成合成项目编号出现向量和合成项目编号向量。
在步骤904,使用所述合成项目编号出现向量中的每一个非零元素除所述合成项目编号向量中的相应元素,从而生成反映了所述资源偏好向量中的各元素位置与项目编号之间的对应关系的最终项目编号向量。
在步骤905,通过所述最终项目编号向量将所生成的资源偏好向量中的元素与相应的项目编号相关联。也就是说,由于所述最终项目编号向量中的每个元素的值是某个项目编号,而该元素所在的位置是与在步骤707中生成的资源偏好向量中的相应元素所在的位置一致的,因此就可以通过所述最终项目编号向量获知所述在步骤707中生成的资源编好向量中每个元素所对应的项目编号。
通过以上步骤,实现了资源偏好向量中的元素与相应的项目编号之间的关联,而又没有暴露邻居的隐私信息。
图10示意性地例示了根据本发明的实施例的用于在网络环境中向用户推荐资源的方法的过程。如图所示,该用户具有两个邻居,A和B,邻居A的资源偏好向量为Na(1,0,0,1,0,1),邻居B的资源偏好向量为Nb(1,1,0,1,0,1),其中每个资源偏好向量中的元素值“1”可表示用户浏览、下载或付费了某个项目,而“0”可表示没有;当然,资源偏好向量中的元素也可以是“0”和“1”之外的具有其他含义的数值。
在第一步,邻居A和B分别将其资源偏好向量Na(1,0,0,1,0,1)和Nb(1,1,0,1,0,1)执行相同的离散余弦变换,从而得到变换向量TNa(1.2247,-0.1494,0.5,0.4082,0.8660,-0.5577)和TNb(1.633,0.2588,0.5,0,0.2887,-0.9659)。
在第二步,邻居A和B分别对变换向量TNa和TNb进行相同的划分,从而分别得到TNa1(1.2247,-0.1494,0.5)、TNa2(0.4082,0.8660,-0.5577)以及TNb1(1.633,0.2588,0.5)、TNb2(0,0.2887,-0.9659)。
在第三步,邻居A将TNa1发送给用户,邻居B将TNb1也发送给用户,并将TNb2发送给邻居A。
在第四步,用户将TNa1和TNb1相加,从而得到TR1(2.8577,0.1094,1),而邻居A将TNa2和TNb2相加,从而得到TR2(0.4082,1.1547,-1.5236)。
在第五步,邻居A将TR2发送给用户。
在第六步,用户将TR1和TR2合并,从而得到TR(2.8577,0.1094,1,0.4082,1.1547,-1.5236)。
在第七步,对TR执行逆离散余弦变换,从而得到将向用户推荐的资源偏好向量R(2,1,0,2,0,2)。该向量R(2,1,0,2,0,2)正是邻居A和B的资源偏好向量Na(1,0,0,1,0,1)和Nb(1,1,0,1,0,1)的和。当在用户的设备处得到该向量R后,可进一步根据用户自己的资源偏好向量U(1,0,0,0,1,1)从R中过滤掉用户已经浏览、下载或付费的项目,并将R中剩余的元素进行排序,从而生成将提供给用户的推荐列表,例如生成由R中的前若干个元素组成的推荐列表。
通过使用以上过程,用户、邻居A和邻居B都无法得到其他用户的偏好向量;用户和邻居A得到了邻居B的部分变换向量,但他们无法由所述部分变换向量重构B的资源偏好向量或其一部分;但最终用户获得了邻居A和B的变换向量的和,并对其执行逆变换,而得到了向量R,该向量R正是A和B的资源偏好向量的和。事实上,以上过程使用了公式a+b=T-1(T(a)+T(b))。
如本领域技术人员可理解的,以上过程仅为示例,而不是对本发明的限制。本发明的方法的过程可具有许多变形。事实上,只要能确保在每一个设备处除该设备中原来的资源偏好向量和变换向量外,不存在来自其他设备的完整的变换变量,从而任何设备无法重构其他设备中的资源偏好向量;同时,所有邻居的资源变换向量的相应部分都存在于某一个设备上,以便由该设备对所有邻居的资源变换向量的相应部分求和,然后将所求得的和发送到用户设备,以便由用户设备将各部分的和集成为所有变换向量的和,并进行逆变换,则都能实现本发明的目的。例如,在以上第三步中,也可以不是由邻居A和邻居B分别将TNa1和TNb1发送到用户设备处,并第四步中在用户设备处对TNa1和TNb1进行求和,而是由邻居A将TNa1发送给邻居B,由邻居B在第四步中对TNa1和TNb1,从而获得TR1,并在第五步中与邻居A将TR2发送到用户设备处同时地将TR1发送到用户设备处。或者,在第三步中,由邻居A和B分别将TNa1和TNb1发送到除用户、邻居A和邻居B之外的其他设备处,在该设备处求和,并将所求得的和发送给用户设备。当然,也可以存在两个其他设备,这样,邻居A和B可以分别将TNa1和TNb1发送给第一其他设备,而将TNa2和TNb2分别发送给第二其他设备,且第一其他设备和第二其他设备分别对TNa1和TNb1以及TNa2和TNb2求和,并分别将所求得的和发送给用户设备。此外,还可以分别将邻居A和B的变换向量TNa和TNb同样地划分为三个或以上部分,并将这些部分分别发送给用户、邻居A、邻居B以及其他设备中的不同设备进行求和,然后各设备将所求得的和发送到用户设备,以便将其集成为变换向量TNa和TNb的和。再者,本发明的方法也适用于两个以上邻居的情况,在这种情况下,仅作为示例,各邻居可将其变换向量划分为两部分,并将第一部分都发送到用户设备,而将第二部分都发送到邻居A,等等。所有这些变化都处于本发明的精神和范围之内。
图11A和11B示意性地例示了根据本发明的实施例的包含了压缩资源偏好向量的长度的方法中将在所述用户的设备处生成的资源偏好向量中的元素与相应的项目相关联的附加步骤的实现过程。
如图11A所示,邻居A的资源偏好向量中各元素的项目编号列表为{9,23,99},其资源偏好向量的长度为La=3。邻居B的资源偏好向量中各元素的项目编号列表为{9,12,23,99},其资源偏好向量的长度为Lb=4。邻居A和B的资源偏好向量中各元素的值未示出,其可以为“0”或“1”,也可以是其他值。
邻居A和B已通过交换资源偏好向量的长度获得了零元素向量的长度La+Lb=7,并分别生成了零元素向量。邻居A使用散列函数将其项目编号列表中的各编号映射为零元素向量中的相应位置,并将该位置处的元素的值置为1。这就是说,邻居A对9执行散列函数,得到值4,因此,将零元素向量中的第4个元素置1;对23执行散列函数,得到值0,因此,将零元素向量中的第0个元素置1;对99执行散列函数,得到值6,因此,将零元素向量中的第6个元素置1,而其他元素保持为0,这样就得到了项目编号出现向量A(1,0,0,0,1,0,1)。同理,邻居B根据其项目编号列表生成了项目编号出现向量B(1,0,1,0,1,0,1)。然后,针对邻居A和B处的项目编号出现向量A(1,0,0,0,1,0,1)和B(1,0,1,0,1,0,1),邻居A和B以及用户的设备通过前文中所述、图7中所示并在图10中例示的方法,在用户的设备处生成合并项目编号出现向量TR(2,0,1,0,2,0,2)。
应指出的是,在邻居A和B的资源偏好向量中的元素的值仅由0或1表示的情况下,邻居A和B的资源偏好向量与其项目编号出现向量是一致的,所生成的用户A的资源偏好向量与合并项目编号出现向量也是一致的,因此,用于生成用户A的资源偏好向量的过程与用于生成用户A的设备处的合并项目编号出现向量的过程可以是同一个过程。在邻居A和B的资源偏好向量中的元素的值不是仅由0或1表示的情况下,邻居A和B的资源偏好向量与其项目编号出现向量是不一致的,因此,必须在用于生成用户A的资源偏好向量的过程之外,存在一个单独的用于生成用户A的设备处的合并项目编号出现向量的过程。
进一步参照图11B,当邻居A和B已通过交换其资源偏好向量的长度生成长度为7的零元素向量后,邻居A使用所述散列函数将其项目编号列表中的各元素分别映射到该零元素向量中的相应位置。也就是说,邻居A对9执行散列函数,得到值4,因此,将项目编号9放置到零元素向量中的第4个元素位置;对23执行散列函数,得到值0,因此,将项目编号23放置到零元素向量中的第0个元素位置;对99执行散列函数,得到值6,因此,将项目编号99放置到零元素向量中的第6个元素位置,而其他元素保持为0,这样就得到了项目编号向量A(23,0,0,0,9,0,99)。同理,邻居B根据其项目编号列表生成了项目编号向量B(23,0,12,0,9,0,99)。然后,针对邻居A和B处的项目编号向量A(23,0,0,0,9,0,99)和B(23,0,12,0,9,0,99),邻居A和B以及用户的设备通过前文中所述、图7中所示并在图10中例示的方法,在用户的设备处生成合并项目编号向量N(46,0,12,0,18,0,198)。接着,使用所述合并项目编号出现向量TR(2,0,1,0,2,0,2)中的各元素除所述合并项目编号向量N(46,0,12,0,18,0,198)中的相应元素,得到最终的项目编号向量O(23,0,12,0,9,0,99)。该最终的项目编号向量中的各元素的值为项目编号,而各元素的位置与在用户的设备处生成的资源偏好向量中的相应项目所在的位置是一致的,这样就可以通过该最终的项目编号向量得到在用户的设备处所生成的资源偏好向量中各元素所对应的资源项目。例如,假设在用户的设备处所生成的资源偏好向量为TR(2,0,1,0,2,0,2),则通过最终的项目编号向量O(23,0,12,0,9,0,99)可以得知,资源偏好向量TR中的第0个元素2对应于资源项目编号23,第2个元素对应于资源项目编号12,第4个元素对应于资源项目编号9,第6个元素对应于资源项目编号99,这样,就可以向用户提供有意义的资源推荐列表。
以上描述了根据本发明的实施例的用于在网络环境中向用户推荐资源的方法,应指出的是,以上描述仅为示例,而不是对本发明的限制。在本发明的其他实施例中,该方法可具有更多、更少或不同的步骤,且各步骤之间的顺序可以与所描述的不同,或者可并行执行。
图12示出了根据本发明的实施例的用于在网络环境中向用户推荐资源的系统。如图所示,该系统包括如下模块 位于该用户的两个或更多个邻居中的每一个邻居的设备处的变换模块1201,用于对该邻居的资源偏好向量执行自同构的变换,从而生成该邻居的变换向量; 位于所述每一个邻居的设备处的划分模块1202,用于将所述相应的变换向量以同样方式划分为两个或更多个部分,其中由任何一个部分无法得出所述资源偏好向量或其部分; 位于所述每一个邻居的设备处的发送模块1203,用于将所述两个或更多个部分中的每一个分别发送到所述用户的设备、其他邻居的设备或一个或多个其他设备处,或保留在该邻居的设备处,从而使得所有邻居的变换向量的相应的部分都存在于所述用户的设备、所述两个或更多个邻居的设备以及所述一个或多个其他设备中的相应的同一个设备处,并且除了在每一个邻居的设备处所存在的该邻居的变换向量外,在所述用户的设备、所述两个或更多个邻居的设备以及所述一个或多个其他设备中的每一个处都不存在任何其他的变换向量的所有部分; 位于所述用户的设备、所述每一个邻居的设备或所述一个或多个其他设备中的每一个处的计算模块1204,用于分别计算所有变换向量的相应部分的和; 位于所述每一个邻居的设备或所述一个或多个其他设备中的每一个处的发送模块1203,用于分别将所计算的所有变换向量的相应部分的和发送到所述用户的设备; 位于所述用户的设备处的集成模块1205,用于将所计算的所有变换向量的所有相应部分的和集成为所有变换向量的和;以及 位于所述用户的设备处的逆变换模块1206,用于对所有变换向量的和执行逆变换,从而生成所有邻居的资源偏好向量的和,作为向该用户推荐的资源偏好向量。
在本发明的一实施例中,该系统还包括位于所述用户的设备处的排序模块(未示出),用于根据所生成的资源偏好向量中元素的值对该资源偏好向量中的元素进行排序,以便向该用户推荐。
在本发明的一实施例中,该系统还包括位于每一个邻居的设备处的加权模块(未示出),用于在对该邻居的资源偏好向量执行自同构的变换之前,将该邻居的资源偏好向量乘以该邻居与所述用户之间的相似性权重。
在本发明的一实施例中,所述变换为二重离散余弦变换。
在本发明的一实施例中,该系统还包括图中未示出的如下模块 位于每个邻居的设备中的长度交换模块,用于在该用户的两个或更多个邻居的设备相互之间交换相应邻居的原始资源偏好向量的长度或更大的长度; 位于每个邻居的设备中的零元素向量创建模块,用于创建长度相同且等于或大于每个邻居的原始资源偏好向量的长度之和的零元素向量; 位于每个邻居的设备中的散列模块,用于使用相同的散列函数根据该邻居的原始资源偏好向量中各元素所属的项目编号将各元素映射到所述零元素向量的相应位置,从而形成该邻居的所述资源偏好向量以便进行所述自同构变换;以及 位于所述用户设备处的关联模块,用于对所有变换向量的和执行逆变换之后,将所生成的资源偏好向量中的元素与相应的项目编号相关联,以便向该用户推荐。
在本发明的实施例中,该系统还包括如下技术特征 位于每个邻居的设备处的所述散列模块还用于使用所述散列函数将该邻居的原始资源偏好向量中各元素所属的项目编号映射为所述零元素向量中相应位置的“1”元素,从而生成项目编号出现向量; 位于每个邻居的设备处的所述散列模块还用于使用所述散列函数将该邻居的原始资源偏好向量中各元素所属的项目编号映射到所述零元素向量中相应的位置,从而生成项目编号向量; 位于每一个邻居的设备处的所述变换模块1201、划分模块1202、发送模块1203,位于所述用户的设备、每一个邻居的设备或所述一个或多个其他设备中的每一个处的计算模块1204,位于每一个邻居的设备或所述一个或多个其他设备中的每一个处的发送模块1203,位于所述用户的设备处的集成模块1205、逆变换模块1206,还用于针对所述项目编号出现向量和项目编号向量分别执行相应操作,从而在所述用户的设备处生成合成项目编号出现向量和合成项目编号向量; 且该系统还包括位于所述用户的设备处的除法模块,用于使用所述合成项目编号出现向量中的每一个非零元素除所述合成项目编号向量中的相应元素,从而生成反映了所述资源偏好向量中的各元素位置与项目编号之间的对应关系的最终项目编号向量, 且其中,所述关联模块通过所述最终项目编号向量将所生成的资源偏好向量中的元素与相应的项目编号相关联。
以上描述了根据本发明的实施例的用于在网络环境中向用户推荐资源的系统,需要指出的是,以上描述以及图示仅为示例,而不是对本发明的限制。本发明的系统可具有更多、更少或不同的模块,且各模块之间的关系可以与所描述和图示的不同。此外,在本发明的不同实施例中,该系统可涉及两个邻居设备或更多个邻居设备,可涉及其他设备或不涉及其他设备,并且该系统的一个或多个模块可以位于用户的设备、邻居设备以及其他设备中的不同设备中。所有这些变换都处于本发明的精神和范围之内。
本发明可以硬件、软件、或硬件与软件的结合的方式实现。本发明可以集中的方式在一个计算机系统中实现,或以分布方式实现,在这种分布方式中,不同的部件分布在若干互连的计算机系统中。适于执行本文中描述的方法的任何计算机系统或其它装置都是合适的。一种典型的硬件和软件的组合可以是带有计算机程序的通用计算机系统,当该计算机程序被加载和执行时,控制该计算机系统而使其执行本发明的方法,并构成本发明的装置。
本发明也可体现在计算机程序产品中,该程序产品包含使能实现本文中描述的方法的所有特征,并且当其被加载到计算机系统中时,能够执行所述方法。
尽管已参照优选实施例具体示出和说明了本发明,但是本领域内的那些技术人员应理解,可在形式和细节上对其进行各种改变而不会背离本发明的精神和范围。
权利要求
1.一种用于网络环境中的用户信息处理的方法,包括
在第一用户设备处对表示与第一用户有关的信息的第一向量进行正交变换,从而得到第一变换向量;
在所述第一用户设备处将所述第一变换向量划分为至少两个部分,其中,当所述第一变换向量被划分为两个部分时
将所述第一变换向量划分为第一变换向量的第一部分和第二部分,其中由所述第一变换向量的第一部分或第二部分无法获得所述第一向量或其部分;
从所述第一用户设备将所述第一变换向量的第二部分发送给与所述第一用户设备通过网络连接的第二用户设备,以及从所述第二用户设备接收第二变换向量的第一部分,其中所述第二变换向量的第一部分是通过在所述第二用户设备处对表示与第二用户有关的信息的第二向量进行所述正交变换从而得到第二变换向量,并将所述第二变换向量相应地划分为第二变换向量的第一部分和第二部分而得到的,其中由所述第二变换向量的第一部分或第二部分无法获得所述第二向量或其部分;
在所述第一用户设备处计算所述第一变换向量的第一部分与所述第二变换向量的第一部分的内积,从而获得第一内积;
从所述第二用户设备接收第二内积,其中所述第二内积是通过在所述第二用户设备处计算所述第一变换向量的第二部分与所述第二变换向量的第二部分的内积而得到的;以及
在所述第一用户设备处将所述第一内积和第二内积相加,作为所述第一向量和第二向量的内积。
2.根据权利要求1的方法,还包括
从所述第一用户设备将表示与第一用户有关的信息的第一原始向量的长度或更大的长度发送给所述第二用户设备,且从所述第二用户设备接收表示与第二用户有关的信息的第二原始向量的长度或更大的长度;
在所述第一用户设备处创建长度等于或大于所述第一原始向量的长度和第二原始向量的长度之和的第一零元素向量;以及
在所述第一用户设备处使用散列函数根据所述第一原始向量中各元素所属的项目编号将各元素映射到所述第一零元素向量的相应位置,从而形成所述第一向量;
其中所述第二向量是通过在所述第二用户设备处创建与所述第一零元素向量相同长度的第二零元素向量,并使用所述散列函数根据所述第二原始向量中各元素所属的项目编号将各元素映射到所述第二零元素向量的相应位置而形成的。
3.根据权利要求1的方法,其中所述正交变换为二重离散余弦变换。
4.根据权利要求1的方法,其中所述正交变换是使用随机正交矩阵实现的。
5.根据权利要求1方法,其中,当所述第一变换向量被划分为两个以上的部分时
在所述第一用户设备处将所述第一变换向量划分为第一变换向量的第一部分、第二部分和一个或多个第三部分,其中由所述第一变换向量的第一部分、第二部分和一个或多个第三部分中的任何一个无法获得所述第一变换向量或其部分;
从所述第一用户设备将所述第一变换向量的第二部分发送给与所述第一用户设备通过网络连接的第二用户设备,将所述第一变换向量的一个或多个第三部分分别发送给一个或多个与所述第一用户设备和第二用户设备通过网络连接的第三设备,以及从所述第二用户设备接收第二交换向量的第一部分,其中所述第二变换向量的第一部分是通过在所述第二用户设备处对表示与第二用户有关的信息的第二向量进行所述正交变换从而得到第二变换向量,并将所述第二变换向量相应地划分为第二变换向量的第一部分、第二部分和一个或多个第三部分而得到的,其中由所述第二变换向量的第一部分、第二部分和一个或多个第三部分中的任何一个无法获得所述第二变换向量或其部分;
从所述第二用户设备接收第二内积,以及从所述一个或多个第三设备分别接收一个或多个第三内积,其中所述第二内积是通过在所述第二用户设备处计算所述第一变换向量的第二部分与所述第二变换向量的第二部分的内积而得到的,且所述一个或多个第三内积分别是通过在所述一个或多个第三设备中的每一个处计算所述第一变换向量的相应的第三部分与所述第二变换向量的相应的第三部分的内积而得到的;以及
在所述第一用户设备处将所述第一内积、第二内积和一个或多个第三内积相加,作为所述第一向量和第二向量的内积。
6.根据权利要求1的方法,还包括根据所述第一向量和第二向量的内积确定所述第一用户和第二用户是否为相邻用户。
7.一种用于网络环境中的用户信息处理的装置,包括
变换模块,用于在第一用户设备处对表示与第一用户有关的信息的第一向量进行正交变换,从而得到第一变换向量;
划分模块,用于在所述第一用户设备处将所述第一变换向量划分为至少两个部分,其中,当所述第一变换向量被划分为两个部分时
所述划分模块用于将所述第一变换向量划分为第一变换向量的第一部分和第二部分,其中由所述第一变换向量的第一部分或第二部分无法获得所述第一向量或其部分;
发送接收模块,用于从所述第一用户设备将所述第一变换向量的第二部分发送给与所述第一用户设备通过网络连接的第二用户设备,以及从所述第二用户设备接收第二变换向量的第一部分,其中所述第二变换向量的第一部分是通过在所述第二用户设备处对表示与第二用户有关的信息的第二向量进行所述正交变换从而得到第二变换向量,并将所述第二变换向量相应地划分为第二变换向量的第一部分和第二部分而得到的,其中由所述第二变换向量的第一部分或第二部分无法获得所述第二向量或其部分;
计算模块,用于在所述第一用户设备处计算所述第一变换向量的第一部分与所述第二变换向量的第一部分的内积,从而获得第一内积;
所述发送接收模块还用于从所述第二用户设备接收第二内积,其中所述第二内积是通过在所述第二用户设备处计算所述第一变换向量的第二部分与所述第二变换向量的第二部分的内积而得到的;以及
相加模块,用于在所述第一用户设备处将所述第一内积和第二内积相加,作为所述第一向量和第二向量的内积。
8.根据权利要求7的装置,还包括
所述发送接收模块还用于从所述第一用户设备将表示与第一用户有关的信息的第一原始向量的长度或更大的长度发送给所述第二用户设备,且从所述第二用户设备接收表示与第二用户有关的信息的第二原始向量的长度或更大的长度;
创建模块,用于在所述第一用户设备处创建长度等于或大于所述第一原始向量的长度和第二原始向量的长度之和的第一零元素向量;以及
散列模块,用于在所述第一用户设备处使用散列函数根据所述第一原始向量中各元素所属的项目编号将各元素映射到所述第一零元素向量的相应位置,从而形成所述第一向量;
其中所述第二向量是通过在所述第二用户设备处创建与所述第一零元素向量相同长度的第二零元素向量,并使用所述散列函数根据所述第二原始向量中各元素所属的项目编号将各元素映射到所述第二零元素向量的相应位置而形成的。
9.根据权利要求7的装置,其中所述正交变换为二重离散余弦变换。
10.根据权利要求7的装置,其中所述正交变换是使用随机正交矩阵实现的。
11.根据权利要求7的装置,其中,当所述第一变换向量被划分为两个以上的部分时
所述划分模块用于在所述第一用户设备处将所述第一变换向量划分为第一变换向量的第一部分、第二部分和一个或多个第三部分,其中由所述第一变换向量的第一部分、第二部分和一个或多个第三部分中的任何一个无法获得所述第一变换向量或其部分;
所述发送接收模块用于从所述第一用户设备将所述第一变换向量的第二部分发送给所述第二用户设备,将所述第一变换向量的一个或多个第三部分分别发送给一个或多个与所述第一用户设备和第二用户设备通过网络连接的第三设备,以及从所述第二用户设备接收所述第二变换向量的第一部分,其中所述第二变换向量的第一部分是通过在所述第二用户设备处对表示与第二用户有关的信息的第二向量进行所述正交变换从而得到第二变换向量,并将所述第二变换向量相应地划分为第二变换向量的第一部分、第二部分和一个或多个第三部分而得到的,其中由所述第二变换向量的第一部分、第二部分和一个或多个第三部分中的任何一个无法获得所述第二变换向量或其部分;
所述发送接收模块还用于从所述第二用户设备接收第二内积,以及从所述一个或多个第三设备分别接收一个或多个第三内积,其中所述第二内积是通过在所述第二用户设备处计算所述第一变换向量的第二部分与所述第二变换向量的第二部分的内积而得到的,并且所述一个或多个第三内积分别是通过在所述一个或多个第三设备中的第一个处计算所述第一变换向量的相应的第三部分与所述第二变换向量的相应的第三部分的内积而得到的;以及
所述相加模块用于在所述第一用户设备处将所述第一内积、第二内积和一个或多个第三内积相加,作为所述第一向量和第二向量的内积。
12.根据权利要求7的装置,还包括确定模块,用于根据所述第一向量和第二向量的内积确定所述第一用户和第二用户是否为相邻用户。
13.一种用于在网络环境中向用户推荐网络资源的方法,包括以下步骤
在该用户的两个或更多个邻居中的每一个邻居的设备处对该邻居的资源偏好向量执行自同构的变换,从而生成该邻居的变换向量;
在所述每一个邻居的设备处将所述变换向量以同样方式划分为两个或更多个部分,其中由任何一个部分无法得出所述资源偏好向量或其部分;
从所述每一个邻居的设备处将所述两个或更多个部分中的每一个分别发送到所述用户的设备、其他邻居的设备或一个或多个其他设备处,或保留在该邻居的设备处,从而使得所有邻居的变换向量的相应的部分都存在于所述用户的设备、所述两个或更多个邻居的设备以及所述一个或多个其他设备中的相应的同一个设备处,并且除了在每一个邻居的设备处所存在的该邻居的变换向量外,在所述用户的设备、所述两个或更多个邻居的设备以及所述一个或多个其他设备中的每一个处都不存在任何其他的变换向量的所有部分;
在所述用户的设备、所述每一个邻居的设备或所述一个或多个其他设备中的每一个处分别计算所有变换向量的相应部分的和;
从所述每一个邻居的设备或所述一个或多个其他设备中的每一个处分别将所计算的所有变换向量的相应部分的和发送到所述用户的设备;
在所述用户的设备处将所计算的所有变换向量的所有相应部分的和集成为所有变换向量的和;以及
在所述用户的设备处对所有变换向量的和执行逆变换,从而生成将向该用户推荐的资源偏好向量。
14.根据权利要求13的方法,还包括
在所述用户的设备处根据所生成的资源偏好向量中元素的值对该资源偏好向量中的元素进行排序,以便向该用户推荐。
15.根据权利要求13的方法,还包括
在每一个邻居的设备处对该邻居的资源偏好向量执行自同构的变换之前,将该邻居的资源偏好向量乘以该邻居与所述用户之间的相似性权重。
16.根据权利要求13的方法,其中所述变换为二重离散余弦变换。
17.根据权利要求13的方法,还包括
该用户的两个或更多个邻居的设备相互之间交换各自的原始资源偏好向量的长度或更大的长度;
在每个邻居的设备处创建长度相同且等于或大于每个邻居的原始资源偏好向量的长度之和的零元素向量;
在每个邻居的设备处使用相同的散列函数根据该邻居的原始资源偏好向量中各元素所属的项目编号将各元素映射到所述零元素向量的相应位置,从而形成该邻居的所述资源偏好向量以便进行所述自同构变换;以及
在所述用户的设备处对所有变换向量的和执行逆变换之后,将所生成的资源偏好向量中的元素与相应的项目编号相关联,以便向该用户推荐。
18.根据权利要求17的方法,其中所述将所生成的资源偏好向量中的元素与相应的项目编号相关联的步骤包括
在每个邻居的设备处使用所述散列函数将该邻居的原始资源偏好向量中各元素所属的项目编号映射为所述零元素向量中相应位置的“1”元素,从而生成项目编号出现向量;
在每个邻居的设备处使用所述散列函数将该邻居的原始资源偏好向量中各元素所属的项目编号映射到所述零元素向量中相应的位置,从而生成项目编号向量;
重复执行权利要求13所述的各个步骤,其中以所述项目编号出现向量代替资源偏好向量,从而在所述用户的设备处生成合成项目编号出现向量;
重复执行权利要求13所述的各个步骤,其中以所述项目编号向量代替资源偏好向量,从而在所述用户的设备处生成合成项目编号向量;
使用所述合成项目编号出现向量中的每一个非零元素除所述合成项目编号向量中的相应元素,从而生成反映了所述资源偏好向量中的各元素位置与项目编号之间的对应关系的最终项目编号向量;以及
通过所述最终项目编号向量将所生成的资源偏好向量中的元素与相应的项目编号相关联。
19.一种用于在网络环境中向用户推荐网络资源的系统,包括
位于该用户的两个或更多个邻居中的每一个邻居的设备处的变换模块,用于对该邻居的资源偏好向量执行自同构的变换,从而生成该邻居的变换向量;
位于所述每一个邻居的设备处的划分模块,用于将所述相应的变换向量以同样方式划分为两个或更多个部分,其中由任何一个部分无法得出所述资源偏好向量或其部分;
位于所述每一个邻居的设备处的发送模块,用于将所述两个或更多个部分中的每一个分别发送到所述用户的设备、其他邻居的设备或一个或多个其他设备处,或保留在该邻居的设备处,从而使得所有邻居的变换向量的相应的部分都存在于所述用户的设备、所述两个或更多个邻居的设备以及所述一个或多个其他设备中的相应的同一个设备处,并且除了在每一个邻居的设备处所存在的该邻居的变换向量外,在所述用户的设备、所述两个或更多个邻居的设备以及所述一个或多个其他设备中的每一个处都不存在任何其他的变换向量的所有部分;
位于所述用户的设备、所述每一个邻居的设备或所述一个或多个其他设备中的每一个处的计算模块,用于分别计算所有变换向量的相应部分的和;
位于所述每一个邻居的设备或所述一个或多个其他设备中的每一个处的发送模块,用于分别将所计算的所有变换向量的相应部分的和发送到所述用户的设备;
位于所述用户的设备处的集成模块,用于将所计算的所有变换向量的所有相应部分的和集成为所有变换向量的和;以及
位于所述用户的设备处的逆变换模块,用于对所有变换向量的和执行逆变换,从而生成所有邻居的资源偏好向量的和,作为向该用户推荐的资源偏好向量。
20.根据权利要求19的系统,还包括
位于所述用户的设备处的排序模块,用于根据所生成的资源偏好向量中元素的值对该资源偏好向量中的元素进行排序,以便向该用户推荐。
21.根据权利要求19的系统,还包括
位于每一个邻居的设备处的加权模块,用于在对该邻居的资源偏好向量执行自同构的变换之前,将该邻居的资源偏好向量乘以该邻居与所述用户之间的相似性权重。
22.根据权利要求19的系统,其中所述变换为二重离散余弦变换。
23.根据权利要求19的系统,还包括
位于每个邻居的设备中的长度交换模块,用于在该用户的两个或更多个邻居的设备相互之间交换各自的原始资源偏好向量的长度或更大的长度;
位于每个邻居的设备中的零元素向量创建模块,用于创建长度相同且等于或大于每个邻居的原始资源偏好向量的长度之和的零元素向量;
位于每个邻居的设备中的散列模块,用于使用相同的散列函数根据该邻居的原始资源偏好向量中各元素所属的项目编号将各元素映射到所述零元素向量的相应位置,从而形成该邻居的所述资源偏好向量以便进行所述自同构变换;以及
位于所述用户设备处的关联模块,用于对所有变换向量的和执行逆变换之后,将所生成的资源偏好向量中的元素与相应的项目编号相关联,以便向该用户推荐。
24.根据权利要求19的系统,其中,
位于每个邻居的设备处的所述散列模块还用于使用所述散列函数将该邻居的原始资源偏好向量中各元素所属的项目编号映射为所述零元素向量中相应位置的“1”元素,从而生成项目编号出现向量;
位于每个邻居的设备处的所述散列模块还用于使用所述散列函数将该邻居的原始资源偏好向量中各元素所属的项目编号映射到所述零元素向量中相应的位置,从而生成项目编号向量;
位于每一个邻居的设备处的所述变换模块、划分模块、发送模块,位于所述用户的设备、每一个邻居的设备或所述一个或多个其他设备中的每一个处的计算模块,位于每一个邻居的设备或所述一个或多个其他设备中的每一个处的发送模块,位于所述用户的设备处的集成模块、逆变换模块,还用于以所述项目编号出现向量代替资源偏好向量执行相应的功能,从而在所述用户的设备处生成合成项目编号出现向量,以及以所述项目编号向量代替资源偏好向量执行相应的功能,从而在所述用户的设备处生成合成项目编号向量;
且该系统还包括位于所述用户的设备处的除法模块,用于使用所述合成项目编号出现向量中的每一个非零元素除所述合成项目编号向量中的相应元素,从而生成反映了所述资源偏好向量中的各元素位置与项目编号之间的对应关系的最终项目编号向量,且其中,所述关联模块通过所述最终项目编号向量将所生成的资源偏好向量中的元素与相应的项目编号相关联。
全文摘要
公开了一种网络环境的用户信息处理的方法和装置,该方法包括在第一和第二用户设备处分别对表示与第一和第二用户有关的信息的第一和第二向量进行正交变换,从而得到第一和第二变换向量;分别将其划分为第一和第二部分,其中由第一或部分无法获得第一或第二向量或其部分;第一用户设备与第二用户设备交换第一变换向量的第一部分与第二变换向量的第二部分;第一用户设备和第二用户设备分别计算两个变换向量的第一部分的内积与第二部分的内积,并在相互交换后,分别将两个内积相加,作为第一向量和第二向量的内积。还公开了一种用于在网络环境中向用户推荐资源的方法和系统。
文档编号G06Q30/00GK101819570SQ200910118068
公开日2010年9月1日 申请日期2009年2月27日 优先权日2009年2月27日
发明者张夏天, 赵石顽, 王涛, 袁泉, 傅荣耀, 高伟 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1