不利用可信初始化器的秘密共享的制作方法

文档序号:18943043发布日期:2019-10-23 01:18阅读:229来源:国知局
不利用可信初始化器的秘密共享的制作方法

随着技术和数据分析的发展,许多在线平台收集不同类型的数据。例如,电影评级平台从用户收集评级数据,而社交媒体平台从用户收集社交网络数据。这些收集的数据是有价值的,并且通常由相应的平台作为隐私信息保存。平台越来越关注数据隐私,并且并不想共享它们收集的数据,至少不共享原始形式的数据。



技术实现要素:

本公开描述了不利用可信初始化器在例如两个平台之间共享秘密以提供社交推荐的方法和系统。

在实施方式中,计算机实现的方法,包括:对象评级和推荐平台识别评级数据,所述评级数据包括针对多个用户的多个对象的对应评级;所述对象评级和推荐平台识别包括多个用户特征的用户特征数据,所述用户特征有助于针对所述多个用户的所述多个对象的所述对应评级;所述对象评级和推荐平台经由不利用可信初始化器的秘密共享方案,从社交网络平台接收基于社交网络数据和多个第一随机变量计算得到的多个经操作的社交网络数据,其中,所述社交网络数据表示所述多个用户中的任意两个用户之间的社交关系,其中,在所述不利用可信初始化器的秘密共享方案中,所述社交网络平台与所述对象评级和推荐平台共享所述多个经操作的社交网络数据而不公开所述社交网络数据;以及由所述对象评级和推荐平台基于所述评级数据和所述多个所述经操作的社交网络数据更新用户特征数据。

前述实施方式可使用计算机实现的方法、非暂态计算机可读介质以及计算机实现的系统实现;所述非暂态计算机可读介质存储用于执行所述计算机实现的方法的计算机可读指令;所述计算机实现的系统包括计算机存储器,所述计算机存储器与硬件处理器互操作地耦接,被配置成执行所述计算机实现的方法/存储在所述非暂态计算机可读介质上的指令。

本文中描述的主题可以在特定实施方式中实现,以便实现以下优点中的一个或多个。首先,所描述的技术允许不同的平台在秘密共享中安全地协作,而不公开隐私数据或敏感数据,这鼓励平台之间的集成和协作,而不危及数据隐私。第二,由于在应用所述秘密共享方案之前,许多工作可以由各种平台完成,因此所描述的技术允许更有效的公共开发活动(例如,关于时间、处理器周期、存储器使用和网络带宽/拥塞)或当前在线平台不支持的活动。第三,所描述的技术可以提供所述对象评级和推荐平台的改进的推荐模型,并且提供更有针对性的推荐(诸如,电影推荐平台通过利用从社交媒体平台获得的社交网络数据向用户提供更有针对性的相关推荐)。第四,所描述的技术允许所述平台在没有可信管理机构的监控的情况下协作。其它优点对于本领域的普通技术人员来说是显而易见的。

在具体实施方式、权利要求书、附图和权利要求书中阐述了本文所述主题的一个或多个实施方式的细节。从具体实施方式、权利要求书和附图来看,所述主题的其它特征、方面和优点将变得显而易见。

附图说明

图1是示出根据本公开实施方式的不利用可信初始化器在平台a和平台b之间共享秘密的示例性系统的框图。

图2是示出根据本公开实施方式的平台a和平台b之间不利用可信初始化器的示例性秘密共享方法的流程图,以由平台a生成推荐。

图3是示出根据本公开的实施方式的平台a和平台b之间的秘密共享方案的流程图,以通过不利用可信初始化器的秘密共享方案来计算矩阵a和矩阵b的矩阵乘积的元素zij。

图4是示出根据本公开实施方式的由对象评级和推荐平台通过不利用可信初始化器的秘密共享方案来生成推荐的示例性方法的流程图。

图5是示出根据本公开实施方式的用于提供与如本公开中描述的所述算法、方法、函数、处理、流程和程序相关联的计算功能的示例性计算机系统的框图。

各附图中的相同的附图标记和名称表示相同的元件。

具体实施方式

以下具体实施方式描述了不利用可信初始化器的秘密共享,例如在两个平台之间基于社交网络数据用于向用户提供推荐,并且该秘密共享被呈现以使得本领域的任何技术人员能够在一个或多个特定实施方式的上下文中做出以及使用所公开的主题。可以对所公开的实施方式进行各种修改、变更和置换,这些修改、变更和置换对于本领域的普通技术人员来说是显而易见的,并且在不脱离本公开的范围的情况下所定义的一般原理可以应用于其它实施方式和应用。在一些示例中,可以省略获得对所描述的主题的理解所不必要的细节,以使不必要的细节不会模糊一个或多个所描述的实施方式,并且这样的细节在本领域普通技术人员的技术范围内。本公开的目的不限于所描述或示出的实施方式,而是被赋予与所描述的原理和特征一致的最宽范围。

在许多在线平台中,不同的平台可以累积不同类型的数据。例如,诸如netflix或imdb的对象评级和推荐平台累积来自用户的关于电影和电视连续剧的评级数据。诸如facebook或twitter的社交媒体或社交网络平台累积来自用户及其朋友的社交网络数据。因为亲密的朋友倾向于具有类似的偏好,所以社交信息可以改善推荐系统的性能。基于推荐方法的现有社交假定对象的用户评级数据和用户之间的社交数据是共享的。然而,出于数据隐私或其它考虑,在线平台通常不与其他方共享其原始数据。

描述了示例性技术,所述技术允许平台在基于评级数据和社交网络数据构建改进的推荐系统时安全地协作,而每个平台的隐私数据不向其他平台公开。例如,可以基于评级数据和社交网络数据经由对象评级和推荐平台与社交网络平台之间的秘密共享方案来训练社交推荐模型。在秘密共享方案下,平台之间的数据交换是经操作的形式,而不是它们的原始形式。交换的数据经操作,使得不能从经操作的数据中恢复或解码出原始数据。

秘密共享方案不同于用于安全数据传输的编码、加密或其它方案,在这些方案中,数据源(例如,作为发送端)在传输之前将原始数据编码或加密成编码形式,并且预期的接收端可以例如基于已知的安全密钥或相应的解码算法从接收到的编码数据中解码出或恢复原始数据。秘密共享方案保护原始数据,甚至不被预期的接收端所知。这样,数据源可以保护原始数据的隐私。

因此,秘密共享方案鼓励不同平台之间的协作,并且可以帮助实现互惠共赢,而不危及数据隐私。例如,利用所公开的秘密共享方案,对象评级和推荐平台可以利用来自社交网络平台的社交网络信息来更好地预测用户的需要并向用户提供有针对性的推荐,从而增强用户体验并为对象评级和推荐平台带来潜在利润回报。

图1是示出根据本公开实施方式的在平台a102和平台b104之间的秘密共享的示例性系统100的框图。平台a102可以包括但不限于娱乐、零售、服务和其他行业或部门中的对象评级和推荐平台,用户可以在平台上对产品、服务或其他对象进行评级。对象评级和推荐平台的示例包括例如amazon、netflix或imdb。平台a102可以从其用户收集评级数据r。评级数据r可包括用户给出的一个或多个对象(例如,产品或服务)的一个或多个实际评级,或者基于用户对于对象的点击、购买、搜索或其它历史活动的一个或多个映射评级。该评级可以反映用户对对象的需求、喜好或偏好。评级可以具有特定范围(例如,[0,1],或[1,5])。在一些实施方式中,评级数据r可以在具有维度m*n的矩阵中表示,其中m表示用户的数目、n表示对象的数目、条目rij表示用户i对对象j的评级。

平台a102还可以包括用户数据,用户数据可以包括例如用户的姓名、年龄、性别、地址或任何其他账户信息或个人资料信息、购买历史、浏览历史或用户在平台a102处的搜索历史。平台a102还可包括对象数据,对象数据可包括例如与对象有关的名称、类别、价格、关键字、指令等。

在一些实施方式中,所收集的评级数据r可以是稀疏矩阵,因为仅有少量(与m*n相比)的条目rij具有评级或基于与对象有关的现有用户活动的映射评级。在一些实施方式中,平台a102可以预测对象的已知评级,以便向用户提供对象的目标推荐。在一些实施方式中,平台a102可以例如根据机器学习或统计算法,基于用户数据和对象数据预测对象的已知评级。作为示例,平台a102可根据矩阵因式分解方法或其它技术基于用户特征数据u(也称为用户因素数据)和对象特征数据v(也称为对象因素数据)提供对象的推荐。具体地,每个用户(例如,用户i)可以通过诸如年龄、性别、地理位置、访问模式等的用户特征的向量(例如,ui)来表征。每个对象(例如,对象j)可以以诸如类别、关键字、主题、价格等的对象特征的向量(例如,vj)来表征。用户特征和对象特征可以是影响给定用户评级、选择或购买给定对象的因素。在一些实施方式中,用户给出的对象评级可以近似为用户特征的向量和对象特征的向量的点积。例如,

rij≈uitvj(1)

其中ui表示与用户i对应的用户特征数据的向量;vj表示与对象j对应的对象特征数据的向量;rij表示用户i对对象j的评级。

在一些实施方式中,用户特征向量(例如,ui)和对象特征向量(例如,vj)是可以从训练数据(例如,已知的评级数据)中学习的潜在向量。

平台b104可以包括但不限于社交媒体平台(诸如facebook、twitter或instragram)。平台b104可以从其用户收集社交网络数据s。社交网络数据可以包括例如姓名、年龄、性别、地址、工作、关系、爱好、状态、评论、博客、浏览历史、或平台b处的用户的其他人口统计、职业、娱乐信息以及用户的朋友、家人、同事等的对应信息。这样的社交网络数据s可以向平台a提供用于预测对象的用户评级并提供推荐的信息。

例如,平台a可以通过求解如等式(2)所示的优化问题预测用户的评级:

其中sik表示社交网络数据s中用户i和用户k之间的社交关系;λ1表示与社交网络数据相关联的预定义权重;以及λ2表示防止过拟合的预定义权重。

在该示例中,等式(2)右侧的目标函数包括3项。第一项表示已知评级数据与基于用户特征数据(例如u=[u1,u2,…,um])和对象特征数据(例如,v=[v1,v2,…,vn])计算得到的近似评级之间的误差或距离。第二项表示社交网络数据s对用户特征向量的影响。例如,两个用户的社交关系越密切或越强,则两个用户特征向量越相似。在一些实施方式中,sik越大,两个用户的社交关系越密切或越强。第三项用于防止过度拟合。可以预先确定权重λ1和权重λ2的值。权重越大,相应对象对目标函数的影响越大。

例如,通过梯度下降或另一种算法可以求解上述使目标函数最小化的优化问题。例如,对潜在向量u和v求导可以得出以下两个等式(2):

为求解上述等式(3)和式(4)中的u和v,矩阵乘积u·diag(s·im)和u·s的结果是足够的,无需分别知道u和s的值。这样,平台a和平台b可以使用秘密共享方案来获得矩阵乘积u·diag(s·im)和u·s的结果。在秘密共享方案下,平台a可以向平台b公开经操作的u,而不向平台b公开原始u;以及平台b可以向平台a公开经操作的s,而不向平台a公开原始s。

在一些实施方式中,秘密共享方案可以在利用或不利用可信初始化器的情况下实现。在利用可信初始化器的情况下,可以由可信初始化器建立公共初始点,并将公共初始点发送到两个平台以辅助它们的数据交换。在不利用可信初始化器的情况下,两个平台可以各自生成随机数作为它们各自的初始点,以帮助它们的数据交换。平台可以受益于协作且无需共享敏感的私有信息。

图2是示出根据本公开实施方式的在平台a和平台b之间不利用可信初始化器的示例性秘密共享方法200的流程图,以由平台a生成推荐。平台a可以是图1中描述的平台a,平台b可以是图1中描述的平台b。在一些实施方式中,示例性秘密共享方法可以在迭代算法中实现。迭代次数t可以是例如预定值或基于某些标准(例如,在不同的迭代之后,该算法是收敛还是更新或u或v的差异是否低于阈值)确定。在202,平台a识别用户评级数据r和初始用户特征数据u和对象特征数据v,以及迭代次数t。在204,平台b识别社交网络数据s。对于第t个迭代(t<t),在208,平台a和平台b可以执行不利用可信初始化器的秘密共享方案,以获得矩阵乘积u·diag(s·im)和u·s。在206,平台a例如根据式(3)和式(4)基于矩阵乘积u·diag(s·im)和u·s更新u或v。在t次迭代之后,在210,平台a对象特征基于更新的用户特征数据u和对象特征数据v生成推荐。

在一些实施方式中,令矩阵z为矩阵a与矩阵b的乘积。即z=a·b。zij代表z的条目/元素中的第i行第j列。例如,zij可以根据等式(5)来计算,例如可以计算矩阵乘积u·diag(s·im)和u·s,

zij≈aitbj(5)

其中ait表示矩阵a的第i行,bj表示矩阵b的第j列。

图3是示出根据本公开实施方式的在平台a和平台b之间示例性秘密共享方法300的流程图,以通过不利用可信初始化器的秘密共享方案来计算矩阵a和矩阵b的乘积的元素zij。在不利用可信初始化器的秘密共享方案中,两个平台都会在一系列步骤和计算中生成随机数,这些随机数将取代对可信初始化器的需求。

在304,平台a获得初始向量x=(x1,x2,…,x_2k),其可以是矩阵a的第i行ait。在324,平台b322获得初始向量y=(y1,y2,…,y_2k),其可以是表示矩阵b的第j列的bj。向量x和y可以具有相同维度2k。向量x和y可以包括例如随机变量、全零值、预定值或其他初始值。

在一些实施方式中,平台a和b都通过循环k次350来计算输出。在第k次迭代,在306,平台a302生成随机值aj和cj,使得总和(aj+cj)不等于0。例如,如308所示,可以重复生成随机生成的值aj和cj,直到aj+cj不等于0。当发现aj+cj不等于0时,平台a302计算将被操作并随后发送到平台b322的值。如310所示,平台a302的计算的值可包括但不限于pj=aj+cj,x'[2j-1]=x[2j-1]+aj,以及x'[2j]=x[2j]+cj。在311,将值{pj,x’[2-1],x’[2j]}发送到平台b322用于计算。类似地,在326,平台b322生成随机值bj和dj,使得总和(bj+dj)不等于0。例如,如328所示,可以重复生成随机生成的值bj和dj,直到bj+dj不等于0。如330所示,平台b322的计算的值可以包括但不限于qj=bj+dj,y'[2j-1]=y[2j-1]+bj,以及y'[2j]=y[2j]+dj。在331,将值{qj,y'[2-1],y'[2j]}发送到平台a302用于计算。

在平台彼此发送经操作的数据之后,当仍然在第k次循环中时,两个平台计算最终总计为输出值的值。如312所示,平台a302计算hj=y'[2j-1](x[2j-1]+2aj)+y'[2j](x[2j]+2cj)+qj(aj+2cj)。如332所示,平台b322计算gj=x'[2j-1](2y'[2j-1]-bj)+x'[2j](2y[2j]-dj)+pj(dj-2bj)。在314,平台a302通过对所有hj求和来获得值h,即,如314所示。在332,平台b322通过对所有gj求和来获得值g,即如334所示。

在315,平台a可以从平台b接收值g。h和g的和等于向量x和y的乘积。也就是说,xy=h+g。这样,在315,平台a从平台b接收值g。在335,平台a向平台b发送值h。在316,平台a可以通过计算h和g的和来计算向量x和y的乘积,h和g为向量x和y的经操作的数据。类似地,在336,平台b还可以通过计算h和g的和来计算向量x和y的乘积。

假定x可以是矩阵a的第i行zit,以及y可以是矩阵b的第j列bj,则可以获得矩阵a和矩阵b的乘积的元素zij为zij=aitbj=xy。因此,可以获得矩阵a和矩阵b的矩阵乘积z。

通过用a代替矩阵u,并用b代替diag(s·im),可以获得矩阵乘积s·diag(s·im)。类似地,通过用a代替矩阵u,并用b代替s,可以获得矩阵乘积u·s。利用矩阵乘积u·diag(s·i_m)和u·s,平台a可以例如根据图2中的206所描述的等式(3)和(4)更新u或v。

因此,平台a302可以基于更新的用户特征数据和对象特征数据生成预测评级数据。在一些实施方式中,除其他功能外,平台a302可以基于预测的评级数据生成针对特定客户的特定对象的推荐。在不需要可信机构作为监管的情况下可以实现上述技术和计算。

图4是根据实施方式的由对象评级和推荐平台通过使用不利用可信初始化器的秘密共享方案生成对用户的推荐的示例性方法400的流程图。为了清楚地呈现,以下在本文的其它附图的背景中一般地描述方法400。例如,对象评级和推荐平台可以是针对图1至图3所描述的平台a。然而,应当理解,方法400可以由例如任何适当的系统、环境、软件和硬件,或者系统、环境、软件和硬件的组合来适当地执行。在一些实施方式中,方法400的各个步骤可以并行、组合、循环地或以任何顺序执行。

在402处,由对象评级和推荐平台识别评级数据,该评级数据包括但不限于针对多个用户的多个对象的对应评级。识别评级数据包括(例如,从另一设备)接收、从存储器检索或加载、或基于对方法400的一个或多个输入来确定评级数据。评级数据可包括针对图1至图3描述的评级数据r。例如,评级数据可以包括实际评级或基于与对象有关的现有用户活动的映射评级。方法400从402进行到404。

在404,由对象评级和推荐平台识别包括多个用户特征的用户特征数据,所述用户特征有助于针对多个用户的多个对象的对应评级。识别用户特征数据包括(例如,从另一设备)接收、从存储器检索或加载、或基于对方法400的一个或多个输入确定用户特征数据。在一些实施方式中,用户特征数据可以由矩阵u表征。用户特征数据可以包括针对图1至图3所描述的用户特征数据u。方法400从404进行到406。

在406,由对象评级和推荐平台识别包括多个对象特征的对象特征数据,所述对象特征有助于针对多个用户的多个对象的对应评级。在一些实施方式中,识别对象特征数据包括(例如,从另一设备)接收、从存储器检索或加载、或基于对方法400的一个或多个输入确定对象特征数据。对象特征数据可以包括对象特征数据v。对象特征数据可以包括针对图1至图3描述的对象特征数据v。方法400从406进行到408。

在408,对象评级和推荐平台经由不利用可信初始化器的秘密共享方案从社交网络平台接收基于来自社交网络平台的社交网络数据(例如,社交网络数据矩阵s的向量y)计算得到的多个经操作的社交网络数据(例如,针对图3描述的g)。此外,社交网络数据表明多个用户中的任何两个之间的社交关系。在不利用可信初始化器的秘密共享方案中,社交网络平台与对象评级和推荐平台共享多个经操作的社交网络数据(例如,g)而不公开社交网络数据(例如,y),其中经操作的社交网络数据是基于社交网络数据和多个第一随机变量(例如,bj,dj)计算得到的。在一些实施方式中,在不利用可信初始化器的秘密共享方案中,对象评级和推荐平台与社交网络平台共享多个经操作的用户特征数据(例如,h)而不公开用户特征数据(例如,用户特征数据矩阵u的向量x),其中所述多个经操作的用户特征数据是基于用户特征数据和多个第二随机变量(例如,aj,cj)计算得到的。在一些实施方式中,经操作的社交网络数据被以一方不能从经操作的社交网络数据中恢复原始社交网络数据的方式操作。

在一些实施方式中,不利用可信初始化器的秘密共享方案用于解决例如针对图3所描述的等式(2)所描述的优化问题。例如,在不利用可信初始化器的秘密共享方案中,对象评级和推荐平台获得用户特征数据(例如,x)的向量,并基于用户特征数据(例如,x)的向量和多个第二随机变量(例如,aj,cj)生成第一经操作的用户特征数据(例如,x’)。对象评级和推荐平台向社交网络平台发送第一经操作的用户特征数据(例如,x'),并从社交网络平台接收基于社交网络数据(例如,y)和多个第一随机变量(例如,bj,dj)计算得到的第一经操作的社交网络数据(例如,y')。

对象评级和推荐平台可以基于第一经操作的用户特征数据(例如,x')、第一经操作的社交网络数据(例如,y')或多个第二随机变量(例如,aj,cj)中的两个或更多个,来生成一个经操作的用户特征数据(例如,h)。类似地,社交网络平台可以生成一个经操作的社交网络数据(例如,g),所述经操作的社交网络数据是基于第一经操作的用户特征数据(例如,x')、第一经操作的社交网络数据(例如,y')或多个第一随机变量(例如,bj,dj)中的两个或多个计算得到的。方法400从408进行到410。

在410,对象评级和推荐平台向社交网络平台发送多个经操作的用户特征数据(例如,多个h),而不公开用户特征数据(例如,x或u的任何向量),例如针对图3所描述的。方法400从410进行到412。

在412,对象评级和推荐平台基于评级数据和多个经操作的社交网络数据来更新用户特征数据。在一些实施方式中,更新用户特征数据包括通过计算多个经操作的用户特征数据(例如,h)之一与多个经操作的社交网络数据(例如,g)之一的总和来计算用户特征数据和社交网络数据的乘积。此外,所述计算可以包括在不利用社交网络数据的情况下,针对计算用户特征数据和社交网络数据的乘积中的每项,以及计算多个经操作的用户特征数据之一和多个经操作的社交网络数据之一。在一些实施方式中,用户特征数据包括解决优化问题以使如等式(2)所示的预测评级数据和评级数据之间的差、社交网络数据加权的用户特征数据以及防止过度拟合的项的加权和最小化。在一些实施方式中,更新用户特征数据包括根据关于图3描述的示例性技术更新用户特征数据。方法400从412进行到414。

在414,例如根据关于图3描述的示例性技术,对象评级和推荐平台基于评级数据和用户特征数据更新对象特征数据。方法400从414进行到416。

在416,基于用户特征数据和对象特征数据的乘积生成的针对多个用户的多个对象的预测评级数据。在一些实施方式中,例如,可以根据等式(1)基于用户特征数据和对象特征数据的乘积来生成预测评级数据。在一些实施方式中,由于结合了社交网络,所生成的评级可以更好地与用户的需求或偏好一致。方法400从416进行到418。

在418,基于预测评级数据生成针对特定用户的特定对象推荐。在一些实施方式中,可以向特定用户推荐具有关于特定用户的最高预测评级的一个或多个对象。特定对象的推荐可以是电影或购物对象的推荐。例如,netflix可以更好地推荐电影,或者amazon可以基于社交网络数据更好地推荐对象。在一些实施方式中,可以例如经由用户接口(ui)输出针对特定对象的推荐。在一些实施方式中,所选择的主题可以在图形用户界面(gui)或其他ui中的聊天框、弹出窗口等中显示,以供用户查看和考虑。方法400从418停止。

图5是根据实施方式的用于提供与如本公开中所描述的算法、方法、函数、处理、流程和过程相关联的计算功能的示例性计算机系统500的框图。所示计算机502旨在包括诸如服务器、台式计算机、膝上型/笔记本计算机、无线数据端口、智能电话、个人数据助理(pda)、平板计算设备、这些设备内的一个或多个处理器、或任何其它合适的处理设备,包括计算设备的物理或虚拟实例(或两者)的任何计算设备。此外,计算机502可包括这样的计算机:所述计算机包括诸如小型键盘、键盘、触摸屏或可接受用户信息的其它设备等的输入设备,以及传达与计算机502的操作相关联的信息的输出设备,所述信息包括数字数据、视觉或音频信息(或信息的组合)、或图形类型用户界面(ui)(或gui)。

计算机502可以充当客户端、网络组件、服务器、数据库或其它持久性设备、或用于执行本公开中所描述的主题的计算机系统的任何其它组件的角色(或角色的组合)。所示计算机502与网络530可通信地耦接。在一些实施方式中,计算机502的一个或多个组件可以被配置成在包括基于云计算的环境、本地环境、全局环境或其他环境(或环境的组合)的环境内操作。

在高层级处,计算机502是可操作用于接收、发送、处理、存储或管理与所描述的主题相关联的数据和信息的电子计算设备。根据一些实施方式,计算机502还可以包括或应用服务器、电子邮件服务器、web服务器、高速缓存服务器、流数据服务器或其他服务器(或服务器的组合)或与其可通信地耦接。

计算机502可以通过网络530从客户端应用(例如,在另一计算机502上执行)接收请求,并通过使用适当的软件应用处理所接收的请求以响应所接收的请求。此外,请求也可以从内部用户(例如,从命令控制台或通过其他适当的访问方法)、外部或第三方、其他自动化应用、以及任何其他适当的实体、个人、系统或计算机被发送到计算机502。

计算机502的每个组件可以使用系统总线503进行通信。在一些实施方式中,计算机502的任何或所有组件、硬件或软件(或硬件和软件的组合)可以使用应用程序接口(api)512或服务层513(或api512和服务层513的组合)通过系统总线503彼此相连或与接口504(或两者的组合)相连。api512可以包括例程的规范、数据结构和对象类。api512可以是独立或依赖于计算机语言的,并且是指完整的接口、单个函数、或甚至一组api。服务层513向计算机502提供软件服务或向可通信地耦接到计算机502的其它组件(无论是否示出)提供软件服务。计算机502的功能对使用该服务层的所有服务消费者可以是可访问的。诸如由服务层513提供的软件服务通过定义的接口提供可重用的、定义的功能。例如,接口可以是以java、c++或以可扩展标记语言(xml)格式或其它适当格式提供数据的其它适当语言编写的软件。虽然示出了api512或服务层513为计算机502的集成组件,但可选实施方式示出api512或服务层513为与计算机502的其它组件相关的独立组件或与可通信地耦接到计算机502的其它组件(无论是否示出)相关的独立组件。此外,在不脱离本公开的范围的情况下,api512或服务层513的任何或所有部分可以被实现为另一软件模块、企业应用或硬件模块的子模块(childorsub-modules)。

计算机502包括接口504。尽管在图5中示出了单个接口504,但是根据计算机502的特定需要、期望或特定实施方式,可以使用两个或更多个接口504。接口504由计算机502使用以用于与分布式环境中连接至网络530(无论是否示出)的其它系统通信。通常,接口504包括编码在软件或硬件(或软件和硬件的组合)中的逻辑,并且可操作以与网络530通信。更具体地,接口504可以包括支持与通信相关联的一个或多个通信协议的软件,使得网络530或接口的硬件在所示计算机502之内和之外可操作地通信物理信号。

计算机502包括处理器505。尽管在图5中示出了单个处理器505,但是根据计算机502的特定需要、期望或特定实施方式,可以使用两个或更多个处理器。通常,处理器505执行指令并操作数据,以执行计算机502的操作和如本公开中描述的任何算法、方法、功能、处理、流程和程序。

计算机502还包括可为计算机502或可连接到网络530(无论是否示出)的其它组件(或两者的组合)保存数据的数据库506。例如,数据库506可以是存储符合本公开数据的内存数据库、常规数据库或其它类型的数据库。在一些实施方式中,根据计算机502的特定需要、期望或特定实施方式以及所描述的功能,数据库506可以是两个或更多个不同数据库类型的组合(例如,内存中的和常规数据库的混合)。尽管在图5中示出单个数据库506,但根据计算机502的特定需要、期望或特定实施方式以及所描述的功能,可使用(相同类型的或类型组合的)两个或多个数据库。虽然示出了数据库506为计算机502的集成组件,但在可选实施方式中,数据库506可以位于计算机502外部。如所示,数据库506保存先前描述的评级数据516、用户特征数据518、对象特征数据526和社交网络数据528。

计算机502还包括可以为计算机502保存数据或为可以连接到网络530的其它组件(或两者的组合)保存数据的存储器507(无论是否示出)。存储器507可以存储符合本公开的任何数据。在一些实施方式中,根据计算机502的特定需要、期望或特定实施方式以及所描述的功能,存储器507可以是两种或更多种不同类型的存储器的组合(例如,半导体存储器和磁存储器的组合)。尽管在图5中示出了单个存储器507,但是根据计算机502的特定需要、期望或特定实施方式以及所描述的功能,可以使用(相同的或类型组合的)两个或更多存储器507。尽管示出了存储器507为计算机502的集成组件,但在可选实施方式中,存储器507可以位于计算机502外部。

应用508是根据计算机502的特定需要、期望或特定实施方案提供功能,尤其是关于本公开中所描述的功能的算法软件引擎。例如,应用508可以用作一个或多个组件、模块或应用程序。此外,尽管示出单个应用508,但应用508可被实现为计算机502上的多个应用508。另外,尽管示出了应用508集成到计算机502,但在可选实施方式中,应用508可以位于计算机502外部。

计算机502还可包括电源514。电源514可以包括可以被配置为用户可更换的可再充电电池或用户不可更换的不可再充电电池。在一些实施方式中,电源514可以包括功率转换或管理电路(包括再充电、待机或其他功率管理功能)。在一些实施方式中,电源514可以包括电源插头,以允许计算机502的插头插入到墙壁插座或其他电源中,从而例如为计算机502供电或为可充电电池再充电。

可以存在任意数量个计算机502,计算机502与包含计算机502的计算机系统相关联,或者在包含计算机502的计算机系统的外部,每个计算机502通过网络530通信。此外,在不脱离本公开的范围的情况下,术语“客户端”、“用户”和其它适当的术语可以互换地合理使用。此外,本公开预期许多用户可以使用一个计算机502,或者一个用户可以使用多个计算机502。

所描述的主题的实施方式可以单独地或组合地包括一个或多个特征。

例如,在第一实施方式中,计算机实现的方法,包括:通过对象评级和推荐平台识别评级数据,所述评级数据包括针对多个用户的多个对象的对应评级;所述对象评级和推荐平台识别包括多个用户特征的用户特征数据,所述用户特征有助于针对所述多个用户的多个对象的对应评级;所述对象评级和推荐平台经由不利用可信初始化器的秘密共享方案从社交网络平台接收基于社交网络数据和多个第一随机变量计算得到的多个经操作的社交网络数据,其中,所述社交网络数据表示所述多个用户中的任意两个用户之间的社交关系,其中,在所述不利用可信初始化器的秘密共享方案中,社交网络平台与对象评级和推荐平台共享多个经操作的社交网络数据而不公开社交网络数据;以及由对象评级和推荐平台基于评级数据和多个经操作的社交网络数据更新用户特征数据。

在第二实施方式中,非暂态计算机可读介质存储可由计算机系统执行的一个或多个指令以执行操作,包括:通过对象评级和推荐平台识别评级数据,所述评级数据包括针对多个用户的多个对象的对应评级;所述对象评级和推荐平台识别包括多个用户特征的用户特征数据,所述用户特征有助于针对所述多个用户的多个对象的对应评级;所述对象评级和推荐平台经由不利用可信初始化器的秘密共享方案从社交网络平台接收基于社交网络数据和多个第一随机变量计算得到的多个经操作的社交网络数据,其中,所述社交网络数据表示所述多个用户中的任意两个用户之间的社交关系,其中,在所述不利用可信初始化器的秘密共享方案中,社交网络平台与对象评级和推荐平台共享多个经操作的社交网络数据而不公开社交网络数据;以及由对象评级和推荐平台基于评级数据和多个经操作的社交网络数据更新用户特征数据。

在第三实施方式中,由计算机实现的系统,包括:一个或多个计算机;以及一个或多个计算机存储设备,所述计算机存储设备与所述一个或多个计算机交互操作地耦接,并且具有存储指令的有形的、非暂态的、机器可读介质,当由所述一个或多个计算机执行所述指令时,执行操作包括:通过对象评级和推荐平台识别评级数据,所述评级数据包括针对多个用户的多个对象的对应评级;所述对象评级和推荐平台识别包括多个用户特征的用户特征数据,所述用户特征有助于针对所述多个用户的多个对象的对应评级;所述对象评级和推荐平台经由不利用可信初始化器的秘密共享方案从社交网络平台接收基于社交网络数据和多个第一随机变量计算得到的多个经操作的社交网络数据,其中,所述社交网络数据表示所述多个用户中的任意两个用户之间的社交关系,其中,在所述不利用可信初始化器的秘密共享方案中,社交网络平台与对象评级和推荐平台共享多个经操作的社交网络数据而不公开社交网络数据;以及由对象评级和推荐平台基于评级数据和多个经操作的社交网络数据更新用户特征数据。

前述实施方式和其它描述的实施方式可以各自可选地包括以下特征中的一个或多个:

第一特征,可与以下特征中的任何特征组合,其中,在所述不利用可信初始化器的秘密共享方案中,对象评级和推荐平台与社交网络平台共享多个经操作的用户特征数据而不公开用户特征数据,其中多个经操作的用户特征数据是基于用户特征数据和多个第二随机变量计算得到的。

第二特征,可与先前或以下特征任意组合,其中更新用户特征数据包括基于所述多个经操作的用户特征数据中的一个和多个经操作的社交网络数据中的一个的总和来计算所述用户特征数据和所述社交网络数据的乘积。

第三特征,可与先前或以下特征任意组合,其中通过在不利用所述社交网络数据的情况下计算所述多个经操作的用户特征数据中的一个和所述多个经操作的社交网络数据中的一个的总和来计算所述用户特征数据和所述社交网络数据的乘积包括:针对所述用户特征数据和社交网络数据的乘积中的每项,在不利用所述社交网络数据的情况下计算所述多个经操作的用户特征数据中的一个和所述多个经操作的社交网络数据中的一个。

第四特征,可与先前以下特征任意组合,所述方法和所述操作还包括:识别包括多个对象特征的对象特征数据,所述对象特征有助于针对多个用户的多个对象的各自评级。其中所述用户特征数据和所述对象特征数据的乘积导致对所述评级数据的评估;以及基于所述评级数据、所述用户特征数据、和所述多个经操作的社交网络数据更新所述对象特征数据。

第五特征,可与先前或以下特征任意组合,所述方法和所述操作还包括:基于所述用户特征数据和所述对象特征数据的乘积生成针对所述多个用户的所述多个对象的预测评级数据;以及基于所述预测的评级数据生成针对特定用户的特定对象的推荐。

第六特征,可与先前或以下特征任意组合,其中更新所述用户特征数据包括求解优化问题,以使所述预测评级数据和所述评级数据之间的差异、由所述社交网络加权的所述用户特征数据,以及防止过度拟合项的加权和最小化。

第七特征,可与先前或以下任意特征组合,其中求解优化问题包括求解以下等式:

其中:ui表示与用户i对应的用户特征数据的向量;vj表示与对象j对应的对象特征数据的向量;rij表示用户i对对象j的评级;sik表示用户i和用户k之间的社交关系;λ1表示与社交网络数据相关联的预定义权重;λ2表示防止过

拟合的预定义权重。

第八特征,可与先前或以下任意特征组合,所述方法或所述操作还包括:在不利用可信初始化器的秘密共享方案中,通过对象评级和推荐平台获取用户特征数据的向量;通过对象评级和推荐平台,基于所述用户特征数据的向量和多个第二随机变量,生成第一经操作的用户特征数据;通过对象评级和推荐平台向社交网络平台传输第一经操作的用户特征数据;从社交网络平台由对象评级和推荐平台,接收基于所述社交网络数据和多个第一随机变量计算得到的第一经操作的社交网络数据;以及,通过对象评级和推荐平台,基于第一经操作的用户特征数据、第一经操作的社交网络数据或多个第二随机变量中的两个或更多个来生成所述经操作的用户特征数据中的一个。

本文中描述的主题和功能性操作的实施方式可以在数字电子电路中、在有形体现的计算机软件或固件中,在包括本文中公开的结构及其结构等同物的计算机硬件中,或者它们中的一个或多个的组合中实现。所描述的主题的软件实施方式可以被实现为一个或多个计算机程序,即,在有形的、非暂态的、计算机可读的计算机存储介质上编码的一个或多个计算机程序指令,用于由数据处理装置执行或控制数据处理装置的操作。可选地或附加地,所述程序指令可以被编码在例如,机器生成的电、光或电磁信号等的人工生成的传播信号中/之上,所述人工生成的传播信号被生成以编码用于传输到适当的接收器装置以便由数据处理装置执行的信息。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或计算机存储介质的组合。配置一个或多个计算机意味着一个或多个计算机已经安装了硬件、固件或软件(或硬件、固件和软件的组合),使得当所述软件由一个或多个计算机执行时,执行特定的计算操作。

术语“实时”、“实时(快速)时间(rft)”、“近实时(nrt)”、“准实时”或类似术语(如所属领域的技术人员所了解的)意指操作和响应在时间上接近,使得个体大体上同时感知到所述操作和所述响应发送。例如,在个人访问数据的操作之后,用以显示数据的响应(或启动显示)的时间差可以小于1毫秒、小于1秒、或小于5秒。尽管所请求的数据不需要被即时显示(或被启动以显示),但是考虑到所描述的计算系统的处理限制以及例如收集、精确测量、分析、处理、存储或发送数据所需的时间,在没有任何故意延迟的情况下显示(或被启动以显示)所请求的数据。

术语“数据处理装置”、“计算机”或“电子计算机设备”(或本领域普通技术人员所理解的等同物)指的是数据处理硬件,并且包括用于处理数据的所有种类的设备、装置和机器,例如包括可编程处理器、计算机或多个处理器或计算机。所述设备还可以是或进一步包括专用逻辑电路,例如,中央处理单元(cpu)、fpga(现场可编程门阵列)或asic(专用集成电路)。在一些实施方式中,数据处理设备或专用逻辑电路(或数据处理设备或专用逻辑电路的组合)可以是基于硬件或软件的(或基于硬件和软件两者的组合)。所述装置可以可选地包括创建用于计算机程序的执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或执行环境的组合的代码。本公开预期使用具或不具有例如linux、unix、windows、macos、android、ios的常规操作系统的或任何其它合适的常规操作系统的数据处理装置。

计算机程序,也可被称为或描述为程序、软件、软件应用、模块、软件模块、脚本或代码,可以以任何形式的编程语言来编写,包括编译或演绎性语言、说明或程序性语言,并且计算机程序可以被配置为任何形式,包括作为独立程序或作为模块、组件、子例程、或适于在计算环境中使用的其它单元。计算机程序可以但非必须对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本;专用于所讨论的程序的单个文件或多个协同文件中,例如,存储一个或多个模块、子程序或代码部分的文件中。计算机程序可以被部署为在一个计算机上执行,或者在位于一个地点或分布在多个地点并通过通信网络互连的多个计算机上执行。

尽管示出了在各图中示出的程序的各部分为通过各种对象、方法或其它过程实现各种特征和功能的各个模块,但程序适当地包括多个子模块、第三方服务、组件、库等。相反,各种组件的特征和功能可以适当地被组合成单个组件。用于进行计算确定的阈值可以静态地、动态地、或静态和动态地确定。

本文中描述的方法、处理或逻辑流程可以由一个或多个计算机执行程一个或多个可编程计算机程序来执行,以通对输入数据进行操作并生成输出来执行功能。方法、过程或逻辑流程也可以由专用逻辑电路执行,并且装置也可以被实现为专用逻辑电路,例如cpu、fpga或asic。

适于执行计算机程序的计算机可以基于通用微处理器或专用微处理器、两者、或任何其它种类的cpu。通常,cpu从存储器接收指令和数据,并将指令和数据写入存储器。计算机的基本元件是用于进行或执行指令的cpu,以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还包括或者可操作地耦接到用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,耦接以从一个或多个大容量存储设备接收数据和/或向其传送数据。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器、或便携式存储设备中,例如通用串行总线(usb)闪存驱动器中,这里仅举几个例子。

适于存储计算机程序指令和数据的计算机可读介质(适当地,暂态或非暂态)包括所有形式的永久性/非永久性或易失性/非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如随机存取存储器(ram)、只读存储器(rom)、相变存储器(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)和闪存设备;磁性设备,例如磁带、盒式磁带、内部/可移动磁盘;磁光盘;以及光学存储设备,例如,数字视频盘(dvd)、cd-rom、dvd+/-r、dvd-ram、dvd-rom、hd-dvd和bluray,以及其它光学存储技术。存储器可以存储各种对象或数据,包括高速缓存、类、框架、应用、模块、备份数据、作业、网页模板、数据结构、数据库表、存储动态信息的储存库、以及包括任何参数、变量、算法、指令、规则、约束或引用的任何其它适当信息。另外,存储器可以包括任何其他适当的数据,例如日志、策略、安全或访问数据、报告文件以及其他数据。处理器和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。

为了提供与用户的交互,在本文中描述的主题的实施方式可以在计算机上实现,该计算机具有:用于向用户显示信息的显示设备,例如,crt(阴极射线管)、lcd(液晶显示器)、led(发光二极管)或等离子体监视器以及键盘和用户可以用来向计算机提供输入的例如,鼠标、跟踪球或轨迹板等的指针设备。还可以使用触摸屏向计算机提供输入,诸如具有压力灵敏度的平板计算机表面、使用电容或电感的多触摸屏、或其它类型的触摸屏。也可使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从该设备接收文档来与用户交互;例如通过响应于从web浏览器接收的请求而向用户的客户端设备上的web浏览器发送网页。

术语“图形用户界面”或“gui”可以单数或复数使用,以描述一个或多个图形用户界面和特定图形用户界面的每个显示。因此,gui可以表示任何图形用户界面,包括但不限于web浏览器、触摸屏或处理信息并有效地向用户呈现信息结果的命令行界面(cli)。一般而言,gui可包括多个用户界面(ui)元素、与web浏览器相关联的某些或全部元素,诸如交互字段、下拉列表和按钮。这些ui元素和其它ui元素可以与web浏览器的功能相关或表示web浏览器的功能。

本文中描述的主题的实施方式可以在包括后端组件例如作为数据服务器的计算系统中、或者包括例如应用服务器的中间件组件的计算系统中、或者包括例如具有图形用户界面或web浏览器的客户端计算机的前端组件的计算系统中、或者包括一个或多个这样的后端组件、中间件组件或前端组件的任何组合的计算系统中实现,其中用户可以通过图形用户界面或web浏览器与本文中描述的主题的实施方式进行交互。系统的组件可以通过有线或无线数字数据通信(或数据通信的组合)的任何形式或介质(例如通信网络)来互连。通信网络的示例包括局域网(lan)、无线电接入网(ran)、城域网(man)、广域网(wan)、微波接入全球互通(wimax)、使用例如802.11a/b/g/n或802.20(或802.11x和802.20的组合或与本公开一致的其它协议)的无线局域网(wlan)、因特网的全部或一部分、或任何其它通信系统或在一个或多个位置处的系统(或通信网络的组合)。例如,网络可以与网络地址之间的因特网协议(ip)分组、帧中继帧、异步传输模式(atm)单元、语音、视频、数据或其它适当信息(或通信类型的组合)通信。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络交互。客户端和服务器的关系借助运行在各自的计算机上并且彼此具有客户端-服务器关系的计算机程序产生。

虽然本文包含许多具体实现细节,但是这些细节不应被解释为对任何发明的范围或对所要求保护的范围的限制,而应被解释为对特定发明的特定实施方式所特有的特征的描述。在单独实施方式的上下文中在本说明书中描述的某些特征也可以在单个实施方式中组合地实现。相反,在单个实施方式的上下文中描述的各种特征也可以在多个实施方式中单独地或以任何合适的子组合来实现。此外,尽管先前描述的特征可被描述为以某些组合起作用,甚至最初也这样要求保护,但是在一些情况下,来自所要求保护的组合的一个或多个特征可从该组合中去除,并且所要求保护的组合可针对子组合或子组合的变型。

已经描述了主题的特定实施方式。所描述的实施方式的其它实现、变更和置换在所附权利要求的范围内,这对于本领域技术人员来说是显而易见的。虽然在附图或权利要求中以特定顺序描述了操作,但是这不应当被理解为要求以所示的特定顺序或以顺序执行这样的操作,或者要求执行所有所示的操作(可以认为一些操作是可选的),以实现期望的结果。在某些情况下,可以认为多任务或并行过程(或多任务和并行过程的组合)可能是有利的,并且被适当地执行。

此外,在前述实施方式中描述的各种系统模块和组件的分离或集成不应理解为在所有实施方式中都需要这样的分离或集成,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件项中或者被打包到多个软件项中。

因此,先前描述的示例实施方式不限定或约束本发明。在不脱离本发明的精神和范围的情况下,其它改变、替换和变更也是可能的。

此外,可认为任何要求保护的实施方式可应用于至少一种计算机实现方法;存储用于执行所述计算机实现方法的计算机可读指令的非暂态计算机可读介质;以及包括被配置成执行计算机实现方法或存储在非暂态计算机可读介质上的指令的与硬件处理器可互操作地耦接的计算机存储器的计算机系统。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1