掌桥专利:专业的专利平台
掌桥专利
首页

用于用户标识符集合的交集的私密性保护确定的系统和方法

文献发布时间:2023-06-19 10:55:46


用于用户标识符集合的交集的私密性保护确定的系统和方法

本申请要求下述的权益和优先权:

2019年10月3日提交的美国专利申请No.16/592,110,其本身是下述的继续,并要求其优先权:

2019年9月9日提交的美国专利申请No.16/564,130,其本身要求下述的权益和优先权:

2019年7月22日提交的美国临时专利申请No.62/877,251和2019年7月5日提交的美国临时专利申请No.62/870,970;

2019年10月3日提交的美国专利申请No.16/592,110也要求下述的权益和优先权:

2019年7月22日提交的美国临时专利申请No.62/877,251和2019年7月5日提交的美国临时专利申请No.62/870,970;并且

本申请还要求下述的权利和优先权:

2019年7月22日提交的美国临时专利申请No.62/877,251和2019年7月5日提交的美国临时专利申请No.62/870,970。

上述每个已标识的申请的内容通过引用整体并入本文。

背景技术

在诸如互联网的计算机联网环境中,第三方内容提供商提供第三方内容项以在终端用户计算设备上显示。这些第三方内容项,例如广告,可以被显示在与相应发布者相关联的网页上。这些第三方内容项可以包括标识提供该内容项的第三方内容提供者的内容。

发明内容

由本公开解决的一个技术问题是在维护用户的私密性的同时由第三方确定用户与来自两个不同的内容递送平台的内容项集合之间的交互的总数中的困难。例如,第三方可能想要估计与跨两个单独的内容递送平台的某个内容项集合的用户交互的总数。然而,从每个内容递送平台向第三方发送关于用户及其交互的所有信息将向第三方提供关于每个用户的私人信息。本公开中解决的挑战涉及向第三方提供足够的数据以估计与某个内容项集合的用户交互的总数,同时维护每个内容递送平台的用户的私密性。

通过使每个用户交互散列化,一个人能够在维护关于用户交互的一些信息的同时保护用户的私密性。这种信息是能够在进一步运算中使用的确定性位集合,但是不包含关于个别用户或其交互的具体信息。这些散列的碎片能够用于构造被称作矢量的数据结构。因为在用户交互数据上使用的散列运算是确定性的,所以存在于两个不同的内容递送平台上的用户交互将对每个平台的矢量具有相同的定量贡献。能够将矢量发送到第三方,该第三方能够处理来自两个不同的内容递送平台的矢量,以使用统计分析来估计与跨两个平台的内容项集合的用户交互的总数。

本申请要求于2019年7月5日提交的临时申请62/870970和于2019年7月22日提交的临时申请62/877251的优先权。每个申请的内容通过引用并入于此。

至少一个方面涉及一种用于估计与由不同的内容递送平台提供的内容项集合的独特用户交互的数目的方法。该方法包括经由网络向第一内容递送平台传送散列函数集合。该方法还包括经由网络将散列函数集合传送到第二内容递送平台。该方法还包括经由网络从第一内容递送平台接收第一矢量,该第一矢量的每个坐标等于基于多个散列的和,其中每个散列是从经由第一内容递送平台发生的与内容项集合的多个用户交互中的一个计算出的。该方法还包括经由网络从第二内容递送平台接收第二矢量,该第二矢量的每个坐标等于基于多个散列的和,其中每个散列是从经由第二内容递送平台发生的与内容项集合的多个用户交互中的一个计算出的。该方法还包括基于第一矢量的元素之和来估计经由第一内容递送平台发生的与内容项集合的用户交互的数目。该方法还包括基于第二矢量的元素之和来估计经由第二内容递送平台发生的与内容项集合的用户交互的数目。该方法还包括基于经由第一内容递送平台发生的与内容项集合的用户交互的数目、经由第二内容递送平台发生的与内容项集合的用户交互的数目以及第一矢量和第二矢量的点积来估计与由第一内容递送平台和第二内容递送平台两者提供的内容项集合的独特用户交互的数目。

在一些实施方式中,该方法包括经由网络向第一内容递送平台传送对第一矢量的第一请求。在一些实施方式中,该方法包括经由网络向第二内容递送平台传送对第二矢量的第二请求。在一些实施方式中,第一请求包括散列函数集合。在一些实施方式中,第二请求包括散列函数集合。在一些实施方式中,该方法包括基于第一矢量中的所有坐标的和除以第一矢量中的坐标的数目的两倍来估计经由第一内容递送网络发生的与内容项集合的用户交互的总数。在一些实施方式中,该方法包括基于第二矢量中的所有坐标的和除以第二矢量中的坐标的数目的两倍来估计经由第二内容递送网络发生的与内容项集合的用户交互的总数。在一些实施方式中,该方法包括基于经由第一内容递送平台发生的与内容项集合的用户交互的数目、经由第二内容递送平台发生的与内容项集合的用户交互的数目以及第一矢量和第二矢量的协方差来估计与由第一内容递送平台和第二内容递送平台两者提供的内容项集合的独特用户交互的数目。

至少另一方面涉及一种用于提供关于与内容项集合的用户交互的匿名数据的方法。该方法包括经由网络接收用于标识散列函数集合的数据。该方法还包括检索多个用户标识符,这些用户标识符中的每个标识由多个用户中的相应用户与内容项集合的交互。该方法还包括:对于多个用户标识符中的每个,生成用户标识符的k个散列,每个散列与散列函数集合中的一个对应;以及生成用户矢量,该用户矢量的每个坐标与相应散列的位值对应。该方法还包括通过对多个生成的用户矢量求和来生成交互矢量。该方法还包括经由网络将所生成的交互矢量传送到请求方。

至少另一方面涉及一种用于提供关于与内容项集合的用户交互的匿名数据的方法。该方法包括经由网络从请求方接收对交互矢量的请求,该请求包括用于标识散列函数的数据。该方法还包括检索多个用户标识符,这些用户标识符中的每个标识由多个用户中的相应用户与内容项集合的交互。该方法还包括:对于多个用户标识符中的每个,使用包括在请求中的散列函数来生成用户标识符的散列值;确定散列值的前m位的值;以及递增与该值对应的寄存器的计数,该寄存器是k个寄存器之一,其中k=2^m。该方法还包括生成交互矢量,该交互矢量的每个坐标等于对应的第k个寄存器的计数。该方法还包括经由网络将所生成的交互矢量传送到请求方。

在另一方面中,本公开涉及一种系统,该系统包括一个或多个处理器,该处理器被配置成估计与由不同的内容递送平台提供的内容项集合的独特用户交互的数目。在一些实施方式中,一个或多个处理器被配置成经由网络向第一内容递送平台传送散列函数集合。在一些实施方式中,一个或多个处理器被配置成经由网络将散列函数集合传送到第二内容递送平台。在一些实施方式中,一个或多个处理器被配置成经由网络从第一内容递送平台接收第一矢量,该第一矢量的每个坐标等于基于多个散列的和,其中每个散列是从经由第一内容递送平台发生的与内容项集合的多个用户交互中的一个计算出的。在一些实施方式中,一个或多个处理器被配置成经由网络从第二内容递送平台接收第二矢量,该第二矢量的每个坐标等于基于多个散列的和,其中每个散列是从经由第二内容递送平台发生的与内容项集合的多个用户交互中的一个计算出的。在一些实施方式中,一个或多个处理器被配置成基于第一矢量的元素之和来估计经由第一内容递送平台发生的与内容项集合的用户交互的数目。在一些实施方式中,一个或多个处理器被配置成基于第二矢量的元素之和来估计经由第二内容递送平台发生的与内容项集合的用户交互的数目。在一些实施方式中,一个或多个处理器被配置成基于经由第一内容递送平台发生的与内容项集合的用户交互的数目、经由第二内容递送平台发生的与内容项集合的用户交互的数目以及第一矢量和第二矢量的点积来估计与由第一内容递送平台和第二内容递送平台两者提供的内容项集合的独特用户交互的数目。

在另一方面中,本公开涉及一种系统,该系统包括一个或多个处理器,该处理器被配置成提供关于与内容项集合的用户交互的匿名数据。在一些实施方式中,一个或多个处理器被配置成经由网络接收用于标识散列函数集合的数据。在一些实施方式中,一个或多个处理器被配置成检索多个用户标识符,这些用户标识符中的每个均标识由多个用户中的相应用户与内容项集合的交互。在一些实施方式中,一个或多个处理器被配置成对于多个用户标识符中的每个,生成用户标识符的k个散列,每个散列与散列函数集合中的一个对应,并且生成用户矢量,该用户矢量的每个坐标与相应散列的位值对应。在一些实施方式中,一个或多个处理器被配置成通过计算多个生成的用户矢量的和来生成交互矢量。在一些实施方式中,一个或多个处理器被配置成经由网络传送所生成的交互矢量。

在另一方面中,本公开涉及一种系统,该系统包括一个或多个处理器,该处理器被配置成提供关于与内容项集合的用户交互的匿名数据。在一些实施方式中,一个或多个处理器被配置成经由网络接收用于标识散列函数集合的数据。在一些实施方式中,一个或多个处理器被配置成检索多个用户标识符,这些用户标识符中的每个均标识由多个用户中的相应用户与内容项集合的交互。在一些实施方式中,一个或多个处理器被配置成对于多个用户标识符中的每个,使用包括在请求中的散列函数来生成用户标识符的散列值,确定散列值的前m位的值,并且递增与该值对应的寄存器的计数,该寄存器是k个寄存器中的一个,其中k=2^m。在一些实施方式中,一个或多个处理器被配置成生成交互矢量,该交互矢量的每个坐标等于对应的第k个寄存器的计数。在一些实施方式中,一个或多个处理器被配置成经由网络传送所生成的交互矢量。

这些和其他方面以及实施方式在下面详细讨论。前述信息和以下详细描述包括各种方面和实施方式的说明性示例,并且提供用于理解所要求保护的方面和实施方式的本质和特点的概述或框架。附图提供对各种方面和实施方式的说明和进一步的理解,并且被并入本说明书中并构成本说明书的一部分。

附图说明

附图并非旨在按比例绘制。在各个附图中,相似的附图标记和名称指示相似的元素。为了清楚起见,并非在每个附图中都标记了每个组件。在附图中:

图1描绘根据说明性实施方式的联网计算机系统的示例性实施方式的框图。

图2示出流程图,该流程图图示用于估计跨第一内容递送平台和第二内容递送平台的与内容项集合的独特用户交互的数目的方法的一个实施例。

图3示出第一用户标识符集合和第二用户标识符集合的交集的一个实施例的图形表示。

图4A示出流程图,该流程图图示用于基于多个散列函数生成和传送表示与内容项集合的用户交互的交互矢量的方法的一个实施例。

图4B图示如在图4A中所示的方法中基于用户交互数据的散列来生成k长度矢量的一个实施例。

图5A示出流程图,该流程图示用于基于单个散列函数生成和传送表示与内容项集合的用户交互的交互矢量的方法的一个实施例。

图5B图示基于用户交互数据的散列的m位来生成k长度矢量的一个实施例,其中,k=2^m,如图5A中所示的方法。

图6示出从如在图4A中示出的方法生成交互矢量的内容项集合中添加与n个用户标识符对应的n k长度矢量的示意图的一个实施例。

图7示出用于确定两个用户标识符集合的交集的估计的混合方法的示意图的一个实施例。

图8示出可以被采用以实现本文所讨论的任何计算机系统的说明性计算机系统的总体架构。

图9示出来自架构的非限制性实施例的实验数据,该架构被实现为在变化矢量大小和集合基数的同时测试联合基数估计的准确性。

图10示出来自架构的非限制性实施例的实验数据,该架构被实现为在相对于另一个增加集合中的一个的基数的同时测试联合基数估计的准确性。

图11示出来自架构的非限制性实施例的实验数据,该架构被实现为在变化两个集合的交集的大小的同时测试联合基数估计的准确性。

图12示出来自架构的非限制性实施例的实验数据,该架构被实现为在变化添加到矢量上的拉普拉斯噪声的标度的同时测试联合基数估计的准确性。

具体实施方式

以下是与用户标识符集合的交集的私密性保护确定的方法、装置和系统有关的各种概念以及其实施方式的更详细的描述。因为所描述的概念不限于任何特定的实施方式,所以可以以多种方式中的任何一种来实现上面介绍的以及下面将更详细讨论的各种概念。

图1描绘联网计算机系统100的示例实施方式的框图。系统100包括第一数据计算系统102、第二数据计算系统104和第三数据计算系统106。系统100还能够包括多个用户设备108a-108e(被统称为用户设备108)。第一数据计算系统102、第二数据计算系统104和第三数据计算系统106以及用户设备108能够通过网络110通信,该网络能够包括局域网、广域网、专用网络、公用网络和互联网中的一个或多个。在一些示例中,第一数据计算系统102可以是能够提供用于在用户设备108上分发和渲染的内容项的内容项(例如,广告)提供商。第二数据计算系统104和第三数据计算系统可以是基于例如提供给用户设备的内容将内容项分发给用户设备的内容项分发系统。作为示例,能够向用户设备108上的用户提供诸如例如网页或视听内容的内容。内容能够包括用于连同内容一起显示内容项的内容项槽(例如,位置的或时间的)。用于在内容项槽中显示内容项的请求能够由内容项分发系统接收。请求能够包括标识用户设备108的用户设备标识符以及与用户设备有关的附加信息、提供给用户设备108的内容等。内容项分发系统能够利用包括在内容项请求中的信息来选择内容项,并且将该内容项提供给用户设备108以连同所提供的内容一起被渲染。被提供给用户设备108的内容项可以是由例如第一数据计算系统102运行的内容项活动的一部分。

内容项分发系统或诸如第一数据计算系统104和第二数据计算系统106的内容递送平台能够保持与被提供给用户设备108的内容项有关的用户标识符的记录。这些记录能够包括例如与用户或用户设备相关联的用户标识符的列表,其与特定内容项集合一起被渲染或者与该内容项交互(例如,点击)。用户标识符的这些列表有时被称为“草图”。诸如第一数据计算系统102的发布者能够通过分析从内容项分发系统接收到的草图来确定内容项或内容项活动的有效性。例如,发布者能够通过确定在内容项活动中与内容项交互的用户的数目来确定内容项活动的有效性。发布者能够请求内容项分发系统向发布者提供与内容项活动相关联的草图。草图能够包括与内容项活动交互的用户或用户设备的用户标识符。发布者可以添加被包括在所接收到的草图中的用户标识符的数目以确定与内容项交互的用户的数目。然而,从两个不同的内容项分发系统接收到的草图可能包括重复的用户标识符,从而导致对重复的用户标识符进行计数两次,并且因此,导致不准确的计数。重复的标识符可以是例如相同的用户或用户设备与由两个内容项分发系统分发的相同内容项交互的结果。为了确定与内容项交互的用户的实际数目,发布者需要移除重复的用户标识符。移除重复的标识符的一种方法可以是确定两个草图的交集,其中交集包括为两个草图所共有的用户标识符,然后从草图的和移除该数目以得出与内容项交互的用户的独特用户标识符的实际计数。

然而,确定两个用户标识符集合的交集可能是计算昂贵的。例如,在一些实例中,每个草图能够包括数十万个用户标识符如果不是数百万个用户标识符。从两个大集合中确定独特用户标识符集合可能是计算昂贵的或甚至不可行的。在一些实例中,能够利用基数估计算法来确定草图中的用户标识符的独特数目的估计。基数估计算法的示例能够包括超级日志、具有随机平均的概率计数(PCSA)、第k个最小值(KMV)等。这些算法中的每个能够以计算高效的方式估计基数,即多集合中的成员的独特数目。然而,这些算法能够指示关于草图的个别成员的信息。

下文讨论能够在以计算高效的方式确定草图的交集时利用的方法的集合,其还保护草图中的用户标识符的私密性。特别地,讨论了三种方法:二项式矢量方法、计数矢量方法和混合方法,每种方法都能够确定两个草图的交集处的用户标识符,同时保护那些草图中的用户标识符的私密性。

图2示出方法200的流程图,该方法是用于估计与由不同的内容递送平台提供的内容项集合的独特用户交互的数目的方法的示例实施例。能够在系统100上执行方法200以确定例如图3所示的第一用户标识符集合302和第二用户标识符集合304的交集306。此过程阶段能够例如由第一数据处理系统102执行,该第一数据处理系统能够接收图3所示的第一用户标识符集合302和第二用户标识符集合304。

在图2的简要概述中,用于估计独特用户交互的数目的方法可以包括:向第一内容递送平台202传送散列集合。第一内容递送平台可以计算表示与由第一内容递送平台216提供的内容项集合的用户交互的矢量。该方法可以将散列集合传送到第二内容递送平台204。第二内容递送平台可以计算表示与由第二内容递送平台220提供的内容项集合的用户交互的矢量。第一内容递送平台可以传送表示由第一内容递送平台218提供的用户交互的矢量。该方法可以从第一内容递送平台206接收表示用户交互的矢量。第二内容递送平台可以传送表示由第二内容递送平台222提供的用户交互的矢量。该方法可以从第二内容递送平台208接收表示用户交互的矢量。该方法可以从第一内容递送平台210估计用户交互的数目。该方法可以从第二内容递送平台212估计用户交互的数目。该方法可以最后使用对两个矢量214的点积运算来估计与跨第一内容递送平台和第二内容递送平台两者的内容项集合的独特用户交互的数目。

在步骤202的进一步细节中,向第一内容递送平台传送散列集合。散列集合可以包含许多散列。散列集合可以仅包含一个散列。散列集合可以包含身份散列函数。可以从第一内容递送平台将散列集合作为对用户交互数据的请求的一部分传送。可以通过网络110传送散列集合。在一些实施方式中,散列函数集合可以是指示第一内容递送平台使用某些散列函数的标识符。在一些实施方式中,散列函数集合可以是包含用于执行散列函数集合的计算机指令的单个二进制文件。在一些实施方式中,散列函数集合可以是许多二进制文件,每个二进制文件包含用于执行散列函数的计算机指令。在一些实施方式中,散列函数集合可以是许多二进制文件,每个二进制文件包含用于执行散列函数集合中的散列函数的子集的代码。

在步骤204的进一步细节中,向第二内容递送平台传送散列集合。散列集合可以包含许多散列。散列集合可以仅包含一个散列。散列集合可以包含身份散列函数。可以从第一内容递送平台将散列集合作为对用户交互数据的请求的一部分传送。可以通过网络110传送散列集合。在一些实施方式中,散列函数集合可以是指示第二内容递送平台使用某些散列函数的标识符。在一些实施方式中,散列函数集合可以是包含用于执行散列函数集合的计算机指令的单个二进制文件。在一些实施方式中,散列函数集合可以是许多二进制文件,每个二进制文件包含用于执行散列函数的计算机指令。在一些实施方式中,散列函数集合可以是许多二进制文件,每个二进制文件包含用于执行散列函数集合中的散列函数的子集的代码。

在步骤206的进一步细节中,该方法从第一内容递送平台接收表示用户交互的第一矢量。在一些实施方式中,矢量可以是二项式计数矢量。在一些实施方式中,矢量中的坐标的数目等于散列函数集合中的散列函数的数目。在一些实施方式中,矢量中的每个坐标可能对应于散列函数集合中的散列函数。在一些实施例中,矢量的每个坐标可能等于由第一内容递送平台提供的每个用户标识符的散列的单个位的和,其中每个坐标对应于散列函数集合中的散列函数。在一些实施方式中,矢量中的坐标的数目可能等于2^k,其中k是散列函数集合中的散列函数的数目。在一些实施方式中,在从第一内容递送平台接收表示用户交互的第一矢量的同时,方法200还可以从第一内容递送平台接收与内容项集合交互的用户标识符的数目。

在步骤208的进一步细节中,该方法从第二内容递送平台接收表示用户交互的第二矢量。在一些实施方式中,矢量可以是二项式计数矢量。在一些实施方式中,矢量中的坐标的数目等于散列函数集合中的散列函数的数目。在一些实施方式中,矢量中的每个坐标可能对应于散列函数集合中的散列函数。在一些实施例中,矢量的每个坐标可能等于由第一内容递送平台提供的每个用户标识符的散列的单个位的和,其中每个坐标对应于散列函数集合中的散列函数。在一些实施方式中,矢量中的坐标的数目可能等于2^k,其中k是散列函数集合中的散列函数的数目。在一些实施方式中,在从第二内容递送平台接收表示用户交互的第二矢量的同时,方法200还可以从第二内容递送平台接收与内容项集合交互的用户标识符的数目。

在一些实施方式中,第一矢量和第二矢量的基数可以是相同的。在一些实施方式中,第一矢量和第二矢量的基数将是不同的。第一矢量的基数可以是二的幂。第二矢量的基数可以是二的幂。在一些实施例中,方法200可以确定第一矢量具有比第二矢量大的基数或者第二矢量具有比第一矢量大的基数。在这种实施例中,方法200可以对两个矢量中的较大者进行下采样以与两个矢量中中较小者的基数匹配。在这种实施例中,矢量可以都具有等于二的幂的基数。可以通过对与较小矢量的基数的模数全等的较大矢量的坐标中的值求和来执行下采样。在非限制性示例中,考虑具有基数8的第一矢量和具有基数4的第二矢量。为了使第一矢量和第二矢量的基数相等,对第一矢量执行下采样。在此非限制性示例实施例中,通过将第一矢量的最后四个坐标与第一矢量的前四个坐标求和来执行下采样,以生成具有基数四的矢量。

在步骤210的进一步细节中,该方法估计来自第一内容递送平台的用户交互的总数。在一些实施方式中,用户交互的数目基于在步骤206中由第一内容递送平台提供的矢量。能够通过将由第一内容递送平台提供的用户交互的矢量中的每个坐标求和并且将该和除以矢量中的坐标的数目来估计用户交互的数目。能够通过将由第一内容递送平台提供的用户交互的矢量中的每个坐标求和、将该数字乘以二并且除以矢量中的坐标的数目来估计用户交互的数目。还能够例如通过网络110从第一内容递送平台接收用户交互的估计数目。在一些实施例中,还能够例如通过网络110从第一内容递送平台接收用户交互的确切数目。在这种实施例中,确切值由方法200用作估计值。

在步骤212的进一步细节中,该方法估计来自第二内容递送平台的用户交互的总数。在一些实施方式中,用户交互的数目基于在步骤208中由第二内容递送平台提供的矢量。通过将由第二内容递送平台提供的用户交互的矢量中的每个坐标求和并且将该和除以矢量中的坐标的数目来估计用户交互的数目。用户交互的数目是通过计算由第二内容递送平台提供的用户交互的矢量中的每个坐标的和、将该数字乘以二并且除以矢量中的坐标的数目来估计的。还能够例如通过网络110从第二内容递送平台接收用户交互的估计数目。在一些实施例中,还能够例如通过网络110从第二内容递送平台接收用户交互的确切数目。在这种实施例中,确切值由方法200用作估计值。

在步骤214的进一步细节中,该方法能够使用点积来估计与由第一内容递送平台和第二内容递送平台提供的内容项集合的独特用户交互的数目。独特用户交互的数目的估计能够等于来自第一内容递送平台和第二内容递送平台的用户交互的估计数目的和减去集合306的交集。在一些实施方式中,点积用于基于在步骤206和208中接收到的矢量计算集合306的交集。在一些实施方式中,通过将在步骤206和208中接收到的矢量的点积乘以四并且除以矢量中的坐标的数目来计算集合306之间的交集。在一些实施方式中,通过将在步骤206和208中接收到的矢量的协方差乘以四来计算集合306之间的交集。在一些实施方式中,能够通过取多个计数矢量的点积并且取多个点积的平均值来计算集合306之间的交集。

在步骤214的非限制性示例实施例中,必须首先基于分别在步骤206和208中接收到的第一矢量和第二矢量来计算集合206的交集。在本文描述的示例实施例中,第一矢量和第二矢量两者都是使用方法500生成的计数矢量。因为每个矢量基于用户标识符的和,所以能够将每个矢量认为是以下三个不同的矢量的和:表示存在于第一内容递送平台和第二内容递送平台上的用户标识符的矢量(在下面表示为z)、表示对第一内容递送平台或第二内容递送平台独特的用户标识符的矢量(在下面表示为u)和噪声矢量(在下面表示为e)。第一矢量和第二矢量的点积的预期值(即估计)能够由以下等式表示:

E(v

当以扩展形式编写时,能够将以上等式编写为:

E(v

在此示例中,如果噪声项是从零中心分布得出的并且与所有其他项无关,则其点积的其预期值等于零。因此,以上等式中包含来自第一矢量(e

E(v

在以上非限制性示例的进一步细节中,考虑来自第一内容递送平台的用户标识符具有对第一矢量的任何一个坐标做出贡献的概率1/k,其中第一矢量的基数为k。为了此非限制性示例的利益,除了基于来自第二内容递送平台的用户标识符之外,对于第二矢量做出相同的假定。在此示例中,第一矢量和第二矢量的每个坐标近似具有概率为1/k并且试验次数为N

Var[v

在以上等式中,v

在以上等式中,z(j)表示上面定义的矢量z的第j个坐标。基于我们先前的分析,还必须用高斯分布近似z(j)。因此,在此非限制性示例中,我们能够将以上等式简化为在下面提供的等式。

在以上等式中,N

因此,在此非限制性示例中,基于以上做出的假定,一个人可能通过使用点积来计算出为两个内容递送平台所共有的用户交互的数目。在一些实施例中,此示例可能用作步骤214的一部分以计算出跨第一内容递送平台和第二内容递送平台两者的独特用户交互的数目。在此示例中,在以下等式中描述为两个内容递送平台所共有的用户交互的数目的估计值的方差。

在以上等式中,ε等于拉普拉斯噪声标度的倒数。

在步骤216的进一步细节中,第一内容递送平台能够计算出表示与由第一内容递送平台提供的内容项集合的用户交互的矢量。在本说明书稍后详细说明用于计算出表示与由第一内容递送平台提供的内容项集合的用户交互的矢量的系统和方法。在步骤218的进一步细节中,第一内容递送平台能够通过网络例如网络110来传送表示在步骤216中计算出的用户交互的矢量,以用在方法200中。在一些实施方式中,步骤218还可以包括发送通过矢量表示的用户交互的确切数目以用在方法200中。在一些实施方式中,步骤218还可以包括发送通过矢量表示的用户交互的数目的估计以用在方法200中。在本说明书中稍后详细说明用于计算出并且传送表示与由第一内容递送平台提供的内容项集合的用户交互的矢量的系统和方法。

在步骤220的进一步细节中,第一内容递送平台能够计算出表示与由第一内容递送平台提供的内容项集合的用户交互的矢量。在本说明书中稍后详细说明用于计算出表示与由第一内容递送平台提供的内容项集合的用户交互的矢量的系统和方法。在步骤222的进一步细节中,第一内容递送平台能够通过网络来传送表示在方法220中计算出的用户交互的矢量以用在方法200中。在一些实施方式中,步骤222还可以包括发送通过矢量表示的用户交互的数目以用在方法200中。在本说明书中稍后详细说明用于计算出并且传送表示与由第一内容递送平台提供的内容项集合的用户交互的矢量的系统和方法。

在一些实施例中,第一数据处理系统执行方法200。在一些实施例中,第一数据处理系统102能够基于以下表达式确定图3的交集306:

其中r表示出现在第一用户标识符集合302和第二用户标识符集合304两者中的用户标识符的数目的估计。在一些实施方式中,第一数据处理系统102能够在生成r的值之前从第一矢量和第二矢量中的每个位置减去n/2的预期值。在这种实例中,第一数据处理系统102能够基于以下表达式确定交集r:

在一些实施例中,第一数据处理系统102能够基于k长度第一矢量Zx

在一些实施例中,能够在方法200的步骤210和步骤212中使用先前的表达式。在一些实施例中,作为以上表达式的一部分运算的和由第二数据处理系统104或第三数据处理系统106运算。第一数据处理系统102能够基于第二k长度矢量Zy

方法200能够包括基于第一矢量Vx

由于矢量的确定基于所对应的用户标识符集合中的所有用户标识符的聚合统计,所以聚合移除矢量的值与用户的身份之间的任何相关性。因此,用于确定交集的估计的矢量是私密性安全的。

在一些实施例中,执行方法200的数据处理系统能够在执行步骤214的同时基于使用相同散列函数生成的计数矢量的逐对点积来确定交集的中间估计。因此例如,第一数据处理系统102能够如图7所示基于V1x

在一些实施例中,执行方法200的数据处理系统能够从矢量V1x

在非限制性示例实施例中,用于实现方法200的各部分的代码可以看来像下列的:

def ComputeVocIntersetion(voc1,voc2,n1,n2,k):

“““

Args:

voc1、voc2:集合1和2的计数矢量

n1、n2:集合1和2的基数

k:计数矢量的大小

Returns:

两个集合的交集的基数。

”””

assert len(voc1)==len(voc2)==k

return sum((voc[i]–n1/k)*(voc2[i]-n2/k),for I in range(k))

图3示出两个用户标识符集合及其交集的简图。特别地,图3示出第一用户标识符集合302和第二用户标识符集合304。第一用户标识符集合302和第二用户标识符集合304分别可以由第二数据处理系统104和第三数据数据处理系统106生成。第一用户标识符集合302包括n个用户标识符x

在一些实施方式中,第二数据处理系统104和第三数据处理系统106可能分别将第一用户标识符集合302和第二用户标识符集合304传送到第一数据处理系统102以用于确定独特且不重复的用户标识符集合。然而,仅仅传送第一用户标识符集合302和第二用户标识符集合304能够将用户的身份暴露给第一数据处理系统,从而破坏与用户标识符相关联的用户的私密性。例如,可以将一个或多个用户的内容项交互的整个历史暴露给第一数据处理系统102。在一些实施方式中,能够利用诸如私有集合交集(PSI)的加密技术来允许诸如第一数据处理系统102的第三方确定第一用户标识符集合302和第二用户标识符集合304的交集,同时维护私密性。然而,PSI实施方式涉及数据计算系统之间的大量通信开销,从而增加计算时间。在一些实施方式中,能够利用以上提及的诸如超级日志的基数估计器来确定第一用户标识符集合302和第二用户标识符集合304的并集,其中该并集能够用于确定两个集合的交集。然而,超级日志不是私密性安全的。

图4A示出方法400的流程图,该方法图示用于生成表示与内容项集合的用户交互的矢量的方法的示例实施例。方法400能够例如由第二数据处理系统104或第三数据处理系统106执行。能够例如执行方法400以对于集合的每个项生成如图4B所示的用户矢量420。例如,集合可能是如图3所示的用户标识符集合302或用户标识符集合304。方法400包括接收用于标识散列函数集合401的数据。例如,此步骤能够例如由第二数据处理系统104或第三数据处理系统106执行,该第二数据处理系统或该第三数据处理系统能够经由网络110从第一数据处理系统102接收用于标识散列函数集合的数据。方法300包括检索多个用户标识符402。在一些实施方式中,能够从第二数据处理系统104本地的存储中或者从第三数据处理系统106本地的存储中检索多个用户标识符。在一些实施方式中,能够经由网络110从远程存储中检索多个用户标识符。在一些实施方式中,能够从数据库或数据中心中检索多个用户标识符。

方法400包括选择第i个用户标识符404。此步骤能够例如由第二数据处理系统104或第三数据处理系统106执行以处理在步骤402中检索到的用户标识符集合。图4B示出描绘方法400的一部分的处理的简图。特别地,图4B示出对第一用户标识符x

方法400包括生成所选择的用户标识符406的k个散列。第二数据处理系统104或第三数据处理系统106能够生成所选择的用户标识符x

在一些实施例中,可以将盐度(salt)添加到所选择的用户标识符中的每个以增强用户的私密性。盐度可以是能够与包含所选择的用户标识符的数据结构级联或以某种方式组合的随机地生成的位串。在一些实施方式中,盐度可以是预先确定的。在这种实施例中,盐度可以由经由网络110连接到系统100的实体预先确定。在一些实施例中,由方法400选择的每个用户标识符与相同的盐度级联。在一些实施例中,由方法400选择的每个用户标识符与不同的盐度级联。在一些实施例中,执行方法400的数据处理系统,例如104或106,可以将每个用户标识符与相同的盐度级联。在一些实施例中,执行方法400的两个数据处理系统可以使用不同的盐度。

在一些实施例中,盐度由第三方提供商通过执行方法400的数据处理系统接收。在一些实施例中,在将盐度与每个用户标识符级联之前,使用预先确定的散列函数来使盐度散列化。在这种实施例中,预先确定的散列函数可以由提供盐度的第三方确定。在一些实施例中,提供盐度的第三方可以基于固定时间段提供新盐度。例如,第三方盐度提供商可以在一个小时、两个小时、一天、两天、一周、两周、一月、两个月或一年之后提供新盐度。在一些实施例中,第三方盐度提供商可以用属于执行方法400的数据处理系统的公共密钥对盐度进行签名。

方法400包括生成第一k长度矢量,其中第一k长度矢量的坐标值等于所对应的第k个散列408的位值。如图4B所示,第二数据处理系统104或第三数据处理系统106能够生成第一k长度矢量420,其中k长度矢量420的每个坐标的值等于k个散列418的位值。在一些实施例,诸如图4B所示的实施例中,k长度矢量420的第k个位的值能够等于k个散列418的对应的第k个散列的最低有效位的位值。在一些实施例中,代替最低有效位,能够利用任何其他位位置。在一些实施例中,k长度矢量418的至少两个位能够对应于它们相应的散列的两个不同的位位置。例如,k长度矢量中的一个位的位值能够等于所对应的第k个散列的最低有效位,然而k长度矢量中的另一位的位值能够等于所对应的第k个散列的最高有效位。能够预先确定被指派成提供k长度矢量的第k个位的位值的第k个散列的位位置。在一些实施例中,在步骤401中能够与用于标识散列函数集合的数据一起接收被指派成提供k长度矢量的第k个位的位值的第k个散列的位位置。无论使用什么方法学来从k个散列中选择k长度矢量的位值,都可以确保从第二用户标识符集合304生成k长度矢量遵循相同的方法学。在一些实施例中,第二数据处理系统104或第三数据处理系统106能够利用少于k个散列来生成k长度矢量402。例如,第二数据处理系统104或第三数据处理系统106能够基于散列h

方法400包括生成与在步骤402中检索到的多个用户标识符中的所有用户标识符对应的k长度矢量。例如,第二数据处理系统104或第三数据处理系统106能够确定当前生成的k长度矢量是否是第n个k长度生成的矢量410。如果否,则第二数据处理系统104或第三数据处理系统106能够递增计数器i 312,并且从在步骤402中检索到的多个用户标识符中选择下一个用户标识符,并且生成如以上所讨论的k长度矢量。以这种方式,第二数据处理系统104或第三数据处理系统106能够生成n个k长度矢量,其中n个k长度矢量中的每个均与在步骤402中检索到的多个用户标识符中的用户标识符对应。

方法400包括对n个k长度矢量求和以生成交互矢量414。这能够被称作二项式矢量方法。第二数据处理系统104和第三数据处理系统106能够对与在步骤402中检索到的多个用户标识符中的n个用户标识符对应的n个k长度矢量求和。第二数据处理系统104或第三数据处理系统106能够对n个k长度矢量V

方法400包括经由网络416传送交互矢量。在一些实施例中,第二数据处理系统104或第三数据处理系统106将在步骤414中生成的交互矢量传送到第一数据处理系统102。在一些实施例中,传送交互矢量包括经由加密通信信道例如HTTPS传送矢量。在一些实施例中,在传送交互矢量之前,从交互矢量中的每个坐标中减去n/2。在一些实施例中,用户交互的数目n连同交互矢量一起被传送。在一些实施例中,传送交互矢量包括传送多个计数矢量。在这种实施例中,在传送多个计数矢量之前,从多个计数矢量中的每个中的每个坐标中减去n/2。

图5A示出方法500的流程图,该方法图示用于生成表示与内容项集合的用户交互的矢量的方法的示例实施例。计数矢量方法500能够例如由第二数据处理系统104或第三数据处理系统106执行。能够例如执行方法500以对于集合的每个项生成如图5B所示的用户矢量520。例如,集合可能是如图3所示的用户标识符集合302或用户标识符集合304。在一些实施例中,接收用于标识散列函数集合的数据能够包括接收包含单个散列函数的散列函数集合。在一些实施例中,用于标识散列函数集合的数据可以是包含基于输入值生成散列的可执行计算机指令的二进制文件。方法500包括检索多个用户标识符502。在一些实施方式中,能够从第二数据处理系统104本地的存储中或者从第三数据处理系统106本地的存储中检索多个用户标识符。在一些实施方式中,能够经由网络110从远程存储中检索多个用户标识符。在一些实施方式中,能够从数据库或数据中心中检索多个用户标识符。

方法500包括选择第i个用户标识符504。此步骤能够例如由第二数据处理系统104或第三数据处理系统106执行以处理第一用户标识符集合302或第二用户标识符集合304。图5B示出描绘方法500的一部分的处理的简图。特别地,图5B示出由第二数据处理系统104或第三数据处理系统106对第一用户标识符x

方法500包括生成所选择的用户标识符506的散列。第二数据处理系统104或第三数据处理系统106能够使用散列函数来生成散列。在一些实施例中,散列函数基于在步骤501中标识散列函数集合的数据。在一些实施例中,如果在步骤501中接收到的散列函数集合中存在多于一个散列函数,则该方法可以选取散列函数集合中的散列函数中的一个来执行散列计算。在非限制性示例中,该方法可以选取散列函数集合中的第一散列函数。例如,如图5B所示,第二数据处理系统104或第三数据处理系统106基于散列函数h()生成散列h(x

在一些实施例中,能够将盐度添加到所选择的用户标识符中的每个以增强用户的私密性。在一些实施例中,盐度是与包含所选择的用户标识符的数据结构级联的随机地生成的位串。在一些实施方式中,盐度可以是预先确定的。在一些实施例中,盐度可以由经由网络110连接到系统100的第三方预先确定。在一些实施例中,由方法500选择的每个用户标识符与相同的盐度级联。在一些实施例中,由方法500选择的每个用户标识符与不同的盐度级联。在一些实施例中,执行方法500的数据处理系统例如104或106可以将每个用户标识符与相同的盐度级联。在一些实施例中,执行方法400的两个数据处理系统可以使用不同的盐度。

在一些实施例中,盐度由第三方提供商通过执行方法500的数据处理系统接收。在一些实施例中,在将盐度与每个用户标识符级联之前,使用预先确定的散列函数来使盐度散列化。在这种实施例中,预先确定的散列函数可以由提供盐度的第三方确定。在一些实施例中,提供盐度的第三方可以基于固定时间段提供新盐度。例如,第三方盐度提供商可以在一个小时、两个小时、一天、两天、一周、两周、一月、两个月或一年之后提供新盐度。在一些实施例中,第三方盐度提供商可以用属于执行方法500的数据处理系统的公共密钥对盐度进行签名。

方法500包括递增与散列值508的m位对应的寄存器的计数。第二数据处理系统104或第三数据处理系统106能够选择散列值的位集合来确定要递增的适当的寄存器。例如,如图5B所示,第二数据处理系统104或第三数据处理系统106能够选择散列值的前3位来确定寄存器。但是在一些其他实施例中,第二数据处理系统104或第三数据处理系统106能够选择散列值的任何其他位集合来确定寄存器值。因为第一用户标识符x

方法500包括对于第一用户标识符集合中的所有用户标识符生成散列并且递增计数或寄存器。这被称作计数矢量方法。例如,第二数据处理系统104或第三数据处理系统106能够确定当前生成的散列值是否是针对第n个用户标识符510的。如果否,则执行该方法的数据处理系统能够递增计数器i 512,并且从在步骤502中检索到的多个用户标识符中选择下一个用户标识符。例如,参考图5B,执行该方法的数据处理系统能够基于第三用户标识符x

在一些实施例中,方法500可以将噪声添加到寄存器集合520中的寄存器中的一个或多个。在一些实施例中,方法500可以基于寄存器集合520将噪声添加到矢量表示的一个或多个坐标。在这些实施例中,方法500可以将拉普拉斯噪声添加到寄存器集合520中的寄存器中的一个或多个。在一些实施例中,方法500可以将拉普拉斯噪声添加到寄存器集合520中的所有寄存器。在一些实施例中,方法500可以基于寄存器集合520将拉普拉斯噪声的矢量添加到交互矢量。在这些实施例中,拉普拉斯噪声的矢量可以具有与基于寄存器集合520的交互矢量相同的基数。在某些实施例中,方法500可以从每个寄存器的内容中减去每个寄存器的预期值。在这种实施例中,每个寄存器的预期值可能等于寄存器集合520的总计数除以寄存器集合520中的寄存器的数目,在图5B中被指定为k。

在非限制性示例实施例中,用于实现方法500的各部分的代码可以看来像下列的:

def ComputeVectorOfCounts(k,b,user_set):

“““

Args:

k:要返回的矢量的大小。

b:拉普拉斯噪声的标度因子。

user_set:用户ID的重复删除集合。

Returns:

给定用户集合的大小k的计数矢量

集合,其中添加了标度b的拉普拉斯噪声。

”””

hashed_user_set=get_hashed_user_set(user_set)

user_buckets=[get_last_k_digits(id,k),for id in hashed_user_set]

voc=[]

for i in range(k):

voc.append(user_buckets.count(i)+generate_laplace_noise(b))

return voc

在一些实施例中,方法500可以使用混合方法来生成多个交互矢量。特别地,在混合方法中,执行方法500的数据处理系统能够如在计数矢量方法中一样不仅使用一个散列函数来生成计数矢量,而且可以使用p个散列函数来生成p个计数矢量。在一些实施例中,多个散列函数通过在步骤501中接收的数据来标识。图9示出由第二数据处理系统104或第三数据处理系统106基于在步骤502中检索到的用户标识符集合(例如第一用户标识符集合302或第二用户标识符集合304)执行而生成的p个计数矢量V1x

方法500包括基于寄存器值514生成k长度交互矢量。如以上所提及的,寄存器520的计数的值能够表示k长度矢量Vx

图6示出用于从k个散列函数和n个用户标识符生成交互矢量的二项式计数矢量方法的简图。在一些实施例中,简图中概述的过程能够由执行方法400的数据处理系统执行。表示散列化用户交互信息的矢量602中的每个均能够具有表示k个散列函数的基数k。矢量602中的每个均能够表示用户标识符集合中的单个用户标识符。能够例如在方法400中一起对矢量602求和,以生成具有基数k的交互矢量604。在一些实施例中,交互矢量604的每个坐标能够大约等于n/2,其中n是用户标识符的数目。

图7示出用于确定两个用户标识符集合的交集的估计的混合方法的简图,该混合方法在一些实施例中由执行方法200的步骤214的数据处理系统执行。混合方法组合以上讨论的二项式矢量方法和计数矢量方法的特征。特别地,在混合方法中,执行方法200的数据处理系统能够如在计数矢量方法中一样不仅使用一个散列函数来生成计数矢量,而且使用p个散列函数来生成p个计数矢量。

在一些实施例中,系统100能够应用附加技术来改进以上讨论的方法的私密性。例如,在一些实施例中,第二数据处理系统104和第三数据处理系统106能够在生成以上关于图5-7讨论的计数矢量时向计数添加噪声。向计数矢量添加噪声能够包括向计数矢量的每个元素添加随机数。第二数据处理系统104和第三数据处理系统106能够各自在将计数矢量发送到确定交集的估计的第一数据处理系统102之前,将噪声添加到它们相应的计数矢量。在一些实施例中,第二数据处理系统104和第三数据处理系统106能够将诸如例如高斯噪声、几何噪声等的各种类型的噪声添加到由二项式矢量方法生成的矢量中。在一些实施例中,第二数据处理系统104和第三数据处理系统106能够向由计数矢量方法生成的矢量添加例如拉普拉斯噪声。向无论是由二项式矢量方法还是计数矢量方法生成的矢量添加噪声能够改进用户标识符的有差异的私密性。能够实现以上讨论的二项式矢量方法和计数矢量方法的差异私密性,同时牺牲比先前现有的差异专用基数估计器低的准确性。

在又一方法中,能够在生成以上关于图3-4B讨论的矢量之前对用户标识符进行加密或散列化。例如,第二数据处理系统104和第三数据处理系统106能够对第一用户身份集合302和第二用户身份集合304中的用户身份中的每个的散列进行加密或计算。然后第二数据处理系统104和第三数据处理系统106能够基于经加密的用户身份集合生成矢量(二项式矢量或计数矢量)。在生成矢量之前对用户标识符进行加密能够改进用户身份的私密性。在矢量由相同的用户身份形成的一些实例中,矢量的交集可以仍然包括与用户身份有关的一些信息。通过在生成矢量之前对用户身份进行加密或散列化,能够降低信息的泄漏风险。

在一些实施例中,能够在将矢量传递到第一数据处理系统102之前对计数矢量中的计数进行置换。例如,第二数据处理系统104能够在将矢量传递到第一数据处理系统102之前对矢量Vx

图8示出根据一些实施方式的可以被采用以实现本文所讨论的任何计算机系统(包括系统100及其组件,诸如第一数据处理系统102、第二数据处理系统104、第三数据处理系统106以及用户设备108)的说明性计算机系统800的总体架构。计算机系统800可以用于经由网络110提供信息以供显示。图8的计算机系统800包括通信地耦合到存储器825的一个或多个处理器820、一个或多个通信接口805、以及一个或多个输出设备810(例如,一个或多个显示单元)和一个或多个输入设备815。处理器820可以被包括在数据处理系统100或诸如第一数据处理系统102、第二数据处理系统104、第三数据处理系统106和用户设备108的系统100的其他组件中。

在图8的计算机系统800中,存储器825可以包括任何计算机可读存储介质,并且可以存储诸如用于为相应系统实现本文所述的各种功能性的处理器可执行指令的计算机指令,以及由此生成或经由通信接口或输入设备(如果存在)接收的与其相关的任何数据。再次参考图1的系统100,数据处理系统可以包括存储器825,以存储与用户标识符集合、所生成的矢量等有关的信息。图8中所示的处理器820可以被用于执行存储在存储器825中的指令,并且这样做还可以从存储器中读取或向存储器写入用于指令的执行而处理和/或生成的各种信息。

图8中所示的计算机系统800的处理器820还可以通信地耦合到通信接口805或控制通信接口805以用于指令的执行传送或接收各种信息。例如,通信接口805可以耦合到有线或无线网络、总线或其他通信装置,并且因此可以允许计算机系统800向其他设备(例如,其他计算机系统)传送信息或从其他设备接收信息。虽然在图8的系统中未明确示出,一个或多个通信接口促进在系统800的组件之间信息流动。在一些实施方式中,通信接口可以被配置(例如,经由各种硬件组件或软件组件)以提供网站作为对计算系统800的至少一些方面的访问门户。通信接口805的示例包括用户接口(例如,网页),用户可以通过该用户接口与数据处理系统800进行通信。

例如,可以提供图8所示的计算机系统800的输出设备810,以允许结合指令的执行来查看或以其他方式感知各种信息。可以提供输入设备815,例如,以允许用户在指令执行期间进行手动调整、进行选择、键入数据或以各种方式与处理器交互。本文进一步提供了与可用于本文所讨论的各种系统的通用计算机系统架构有关的附加信息。

本说明书中描述的主题和操作的实施方式可以在数字电子电路中或在包括在本说明书中公开的结构及其等同结构的有形介质、固件或硬件上体现的计算机软件中或其中一种或多种的组合实现。本说明书中描述的主题的实施方式可以被实现为一个或多个计算机程序,即,计算机程序指令的一个或多个组件,其被编码在计算机存储介质上以由数据处理装置执行或控制数据处理装置的操作。可以在人工生成的传播信号,例如,机器生成的电、光或电磁信号上编码程序指令,该信号被生成以对信息进行编码以传输到合适的接收器设备以由数据处理设备执行。计算机存储介质可以是或被包括在计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以包括以人工生成的传播信号编码的计算机程序指令的源或目的地。计算机存储介质还可以是一个或多个单独的物理组件或介质(例如,多个CD、磁盘或其他存储设备)或被包含在其中。

本文公开的特征可以在智能电视模块(或连接的电视模块、混合电视模块等)上实现,该智能电视模块可以包括处理模块,该处理模块被配置成将互联网连接与更传统的电视节目源(例如,经由电缆、卫星、无线或其他信号接收)集成在一起。智能电视模块可以物理地合并到电视机中,或者可以包括单独的设备,诸如机顶盒、蓝光或其他数字媒体播放器、游戏机、酒店电视系统以及其他配套设备。智能电视模块可以被配置成允许观众搜索和查找web上、本地有线电视频道上、卫星电视频道或存储在本地硬盘上的视频、电影、照片和其他内容。机顶盒(STB)或机顶单元(STU)可以包括信息家电设备,其可以包含调谐器并连接到电视机和外部信号源,将信号调谐为内容,然后将该内容显示在电视屏幕上或其他显示设备上。智能电视模块可以被配置成提供主屏幕或最高级屏幕,其包括用于多个不同应用,诸如web浏览器和多个流媒体服务的图标、连接的电缆或卫星媒体源、其他Web频道等等。智能电视模块可以进一步被配置成向用户提供电子节目指南。智能电视模块的伴随应用可以在移动计算设备上操作,以向用户提供有关可用节目的附加信息,以允许用户控制智能电视模块等。在可替代实施方式中,可以在膝上型计算机或其他个人计算机、智能手机、其他移动电话、掌上计算机、平板电脑或其他计算设备上实施特征。

本说明书中描述的操作可以被实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收到的数据执行的操作。

术语“数据处理装置”、“数据处理系统”、“用户设备”或“计算设备”涵盖用于处理数据的所有类型的装置、设备和机器,例如包括前述的可编程处理器、计算机、片上系统、或多个或组合。该装置可以包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为在讨论中的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或其中一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础结构,诸如web服务、分布式计算和网格计算基础设施。

计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用包括编译或解释语言、声明性或过程语言的任何形式的编程语言编写,并且可以以包括作为独立程序或作为模块、组件、子例程、对象或其他适合在计算环境中使用的单元的任何形式部署。计算机程序可以但是不必对应于文件系统中的文件。程序可以被存储在保存其他程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)、专用于讨论中的程序的单个文件、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。可以将计算机程序部署为在位于一个站点或分布在多个站点并通过通信网络互连的一个计算机或多个计算机上执行。

可以通过执行一个或多个计算机程序的一个或多个可编程处理器来执行本说明书中描述的处理和逻辑流程,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路,例如,FPGA(场可编程门阵列)或ASIC(专用应用集成电路)执行,并且装置也可以被实现为该专用逻辑电路。

例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或可操作地耦合至大容量存储设备以从中接收数据或对其传输数据,或者两者。然而,计算机不必具有此类设备。此外,计算机可以嵌入到另一个设备,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器)。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器能够由专用逻辑电路补充或被并入专用逻辑电路中。

为了提供与用户的交互,本说明书中描绘的主题的实施方式能够在具有显示设备和键盘与定点设备的计算机上实现,该显示设备例如是CRT(阴极射线管)、等离子体、或者LCD(液晶显示器)监视器,用于向用户显示信息,定点设备例如为鼠标和轨迹球,用户能够通过其向计算机提供输入。其它类型的设备也能够用于提供与用户的交互;例如,提供给用户的反馈可以包括任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机能够通过向用户使用的设备发送文档以及从用户使用的设备接收文档来与用户进行交互;例如,通过响应于从web浏览器接收到的请求将网页发送到用户客户端设备上的web浏览器。

本说明书描述的主题的实施方式可以在包括例如作为数据服务器的后端组件或包括例如应用服务器的中间件组件或包括例如具有图形用户界面或web浏览器的客户端计算机,用户可以通过该图形用户界面或web浏览器与本说明书中描述的主题的实施方式进行交互的前端组件或者一个或多个此类后端、中间件或前端组件的组合的计算系统中实现。系统的组件可以通过数字数据通信的任何形式或介质,例如,通信网络互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、网际网络(例如,互联网)和对等网络(例如,ad hoc对等网络)。

诸如数据处理系统102、104、106以及108的计算系统可以包括客户端和服务器。例如,数据处理系统102、104、106以及108可以包括一个或多个数据中心或服务器场中的一个或多个服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系是通过在相应计算机上运行并彼此具有客户端-服务器关系的计算机程序而产生。在一些实施方式中,服务器将数据(例如,HTML页面)传送到客户端设备(例如,出于向与客户端设备交互的用户显示数据并从其中接收用户输入的目的)。可以从服务器处的客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。

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

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者执行所有图示的操作以实现期望的结果。在一些情况下,可以以不同的顺序执行权利要求中引用的动作,并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。

在某些情况下,多任务和并行处理可能是有利的。此外,在上述实施方式中的各种系统组件的分离不应被理解为在所有实施方式中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以被一起集成在单个软件产品中或打包到多种软件产品。例如,数据处理系统102、104、106以及108可以是单个模块、具有一个或多个处理模块的逻辑设备、一个或多个服务器或搜索引擎的一部分。

现在已经描述了一些说明性的实施方式和实施方式,显然的是,前述内容是说明性的而非限制性的,已经通过示例的方式呈现。特别地,尽管本文呈现的许多示例涉及方法动作或系统元素的特定组合,但是可以以其他方式组合那些动作和那些元素以实现相同的目标。仅结合一种实施方式讨论的动作、元素和特征不旨在被排除在其他实施方式或实施方式中的类似作用之外。

本文使用的措词和术语是出于描述的目的,而不应被认为是限制性的。本文中“包括”、“包含(comprising)”、“具有”、“包含(containing)”、“涉及”、“特征为”、“特征在于”及其变体的使用意在涵盖其后列出的项目、其等同物以及附加项目,以及仅由其后列出的项目组成的替代实施方式。在一个实施方式中,本文描述的系统和方法由所描述的元素、动作或组件中的一个、多于一个的每种组合或全部组成。

对本文中以单数形式提及的系统和方法的实现或元素或动作的任何引用也可以包含包括多个这些元素的实现,并且在本文中对任何实现或元素或动作的复数形式的任何引用也可以包含仅包括单个元素的实现。单数或复数形式的引用无意将当前公开的系统或方法、它们的组件、动作或元素限制为单个或多个配置。对基于任何信息、动作或元素的任何动作或元素的引用可以包括其中该动作或元素至少部分基于任何信息、动作或元素的实现。

本文公开的任何实施方式可以与任何其他实施方式组合,并且对“实施方式”、“一些实施方式”、“可替代实施方式”、“各种实施方式”、“一个实施方式”等的引用不一定是互斥的,并且旨在指示结合实施方式描述的特定特征、结构或特性可以被包括在至少一个实施方式。如本文所使用的这样的术语不一定全部指代相同的实施方式。任何实施方式可以以与本文公开的方面和实施方式一致的任何方式与任何其他实施方式包含性地或排他性地组合。

对“或”的引用可以被解释为包含性的,使得使用“或”描述的任何术语可以指示单个、一个以上以及所有所描述术语中的任何一个。

对于附图、详细描述或任何权利要求中的技术特征之后跟有附图标记的情况,附图标记已被包括用于增加附图、详细描述和权利要求的可理解性的单独目的。因此,附图标记或其缺失对任何权利要求元素的范围没有任何限制作用。

在不脱离其特性的情况下,本文中描述的系统和方法可以以其他特定形式来实现。尽管本文提供的示例涉及控制信息资源内容的显示,但是本文描述的系统和方法可以包括应用于其他环境。前述实施方式是说明性的,而不是限制所描述的系统和方法。因此,本文描述的系统和方法的范围由所附权利要求而不是前面的描述指示,并且在权利要求的等同含义和范围内的改变被涵盖在其中。

进一步对于以上描述,可以为用户提供控件,这些控件允许用户选出本文描述的系统、程序或特征是否且何时可以启动收集信息(例如,关于用户社交网络、社交动作或活动、职业、用户偏好或用户当前位置的信息)以及是否从服务器向用户发送内容或通信。此外,某些数据可以在其被存储或使用之前以一种或多种方式进行处理,使得删除个人身份信息。例如,可以处理用户身份,使得无法针对该用户确定任何个人可标识信息,或者在获得位置信息的情况下,用户的地理位置可以被概括化(诸如城市、邮政编码或州级),以便无法确定用户的特殊位置。因此,用户可以控制关于用户收集哪些信息、如何使用该信息以及向用户提供哪些信息。

更详细地并且作为示例,本文中可以描述来自不同架构和模型参数之间的比较的结果。本文描述的结果并不意味着限制本发明的范围。本文所实现的所有架构都可以由组成系统100的元素组成。在本文所述的非限制性示例实施例中,数据处理系统102负责估计两个用户数据集合302和304之间的并集。数据处理系统104负责使用例如方法500和集合302来生成第一交互矢量。数据处理系统106负责使用例如方法500和集合304来生成第二交互矢量。在此示例实施例中,数据处理系统102、104和106可以通过网络110进行通信。本文描述的非限制性示例实施例使用计数矢量方法。

在示例性实施例中,用于估计两个用户标识符集合例如302和304的并集的大小的准确性可能取决于设定基数及其交集的幅度。在一些示例性实施例中,用于估计两个用户标识符集合的并集的大小的准确性可能取决于例如在方法400或方法500中生成的交互矢量的大小。在一些示例性实施例中,用于估计两个用户标识符集合的并集的大小的准确性可能取决于被添加到交互矢量的噪声的标度。

在不限制本发明的范围的用于实现并且测试各种架构的非限制性示例性实施例中,在改变交互矢量基数以及用户标识符集合302和304的大小的同时测试实施方式的准确性。来自此示例实验的数据被图示在图9中。在此非限制性示例性实施例中,两个集合的交集306的大小是第一用户标识符集合302的大小的十分之一。假定两个用户标识符集合具有相同的基数。在此示例性实施例中应用的拉普拉斯噪声的标度被固定在ε=ln(3),其中拉普拉斯噪声的标度等于b=1/ε。图9示出包含两个用户标识符集合302和304的并集基数(306)的估计的恒定分数标准误差的轮廓曲线的曲线图。如图9所图示的,轮廓912具有10%标准误差,轮廓910具有5%标准误差,轮廓908具有3%标准误差,轮廓906具有2%标准误差,轮廓904具有1%标准误差。图9中的轮廓指示具有设定基数N

图9中包括的图示出了非限制性示例性实施例能够在矢量大小k的正确选择情况下确保1-5%量级的准确性。图9中的图还示出了准确性轮廓在改变设定大小N

在不限制本发明的范围的另一非限制性示例性实施例中,在改变N

如由图10中包括的图所演示的,此非限制性示例实施例示出随着两个集合(302和304)的基数变得更加不相等,保持固定标准误差变得相当更容易。这是因为,在此非限制性示例实施例中,绝对误差是交集大小的函数,并且标准误差是相对于并集大小的。进一步讨论从此实施例获得的结果,随着集合基数差增加,相对于并集大小的交集大小减小,因为交集大小受到较小集合的大小限制。

在不限制本发明的范围的另一非限制性示例性实施例中,在改变由N

来自图11所图示的此非限制性示例实施例的数据示出,增加集合N

在不限制本发明的范围的用于实现并且测试各种架构的另一非限制性示例性实施例中,在改变拉普拉斯噪声的标度(b=1/ε)的同时测试实施方式的准确性。在本文描述的示例实施例中,两个用户标识符集合N

来自图12所图示的此非限制性示例实施例的数据示出,矢量大小k上用于确保准确性的下界几乎不依赖于噪声标度。相对于此示例实施例,这意味着数据处理系统104和106能够在不相对它们选取的噪声标度的情况下选取矢量大小k的下界。图12中的数据还指示,最佳矢量大小k随误差标度增加而显著地减小。

相关技术
  • 用于用户标识符集合的交集的私密性保护确定的系统和方法
  • 用于用户标识符集合的交集的私密性保护确定的系统和方法
技术分类

06120112734736