首页 / 专利库 / 电脑零配件 / 接口 / 用户界面 / 字符用户界面 / 使用计数均值草图的差分隐私

使用计数均值草图的差分隐私

阅读:135发布:2020-05-13

专利汇可以提供使用计数均值草图的差分隐私专利检索,专利查询,专利分析的服务。并且本文所述的实施方案提供了一种隐私机制,该隐私机制用于在将用户数据传输至估计此类数据在一组客户端设备中的 频率 的 服务器 时保护数据。在一个实施方案中,使用计数均值草图技术实现差分隐私机制,该技术在提供关于隐私和效用的可证明保证时可减少启用隐私所需的资源需求。例如,该机制可提供根据资源需求(例如,传输带宽和计算复杂性)定制效用(例如,估计的 精度 )的能 力 。,下面是使用计数均值草图的差分隐私专利的具体信息内容。

1.一种存储指令的非暂态机器可读介质,当由计算设备的一个或多个处理器执行时,所述指令使得所述计算设备执行包括下述各项的操作:
从客户端设备上收集的一组可能的用户数据值中选择要传输到服务器的用户数据值;
使用随机散列函数为所述用户数据值创建散列项,其中所述随机散列函数由随机选择的所述项的变体生成,并且其中对所述项的一组可能的变体编索引;
将所述值的所述散列项的至少一部分编码为矢量,其中所述编码包括在对应于所述散列的位置处更新所述矢量值;
通过以预定义的概率改变所述矢量值中的至少一些使所述矢量私有化;以及将所述私有化矢量和所述随机选择的变体的索引值传输到所述服务器,以使得所述服务器能够估计一组客户端设备上的所述用户数据值的频率
2.根据权利要求1所述的非暂态机器可读介质,其中:
所述项是字符串,并且所述随机选择的所述项的变体包括一个或多个字符,所述一个或多个字符表示附加到所述字符串的所述变体的所述索引值;
所述服务器通过更新由所述一组可能的变体编索引的频率表估计所述用户数据值的所述频率,并且用所述私有化矢量更新与所述随机散列函数的所述索引值对应的所述频率表的行或列;以及
所述服务器根据从所述一组客户端设备中累积的数据估计所述一组可能的用户数据值中的每一个的频率。
3.根据权利要求1所述的非暂态机器可读介质,其中所述编码包括使用统一的值和符号使所述矢量初始化,并且更新所述矢量值包括在与创建的散列值对应的所述位置处翻转所述值的所述符号。
4.根据权利要求3所述的非暂态机器可读介质,其中使所述矢量初始化包括将所述每个矢量值设置为表示常数的值,并且更新所述矢量值包括将在与创建的散列值对应的所述位置处的所述值设置为表示所述常数的符号翻转的值。
5.根据权利要求1所述的非暂态机器可读介质,其中所述随机散列函数用于在仅使用创建的散列值的所述部分时解决散列冲突,并且在维护所述用户数据值的隐私时减少创建频率表所需的计算次数。
6.根据权利要求1所述的非暂态机器可读介质,其中所述编码矢量是Hadamard矩阵,并且所述用户数据值表示由所述客户端设备的用户访问网站
7.根据权利要求1所述的非暂态机器可读介质,其中只有所述私有化矢量和所述随机选择的变体的所述索引值作为表示所述用户数据值的信息传输到所述服务器。
8.根据权利要求1所述的非暂态机器可读介质,其中使所述矢量私有化包括以预定义的概率改变所述矢量值中的至少一些,所述预定义的概率基于隐私参数。
9.根据权利要求8所述的非暂态机器可读介质,其中所述隐私参数表示隐私和精度之间的配置权衡。
10.根据权利要求8所述的非暂态机器可读介质,其中所述预定义的概率被定义为1/(1ε
+e),并且ε为所述隐私参数。
11.一种电子设备,包括:
一个或多个处理器;和
存储器,所述存储器耦接到所述一个或多个处理器,所述存储器存储指令,当由所述一个或多个处理器执行时,所述指令使得所述一个或多个处理器:
从客户端设备上收集的一组可能的用户数据值中选择要传输到服务器的用户数据值;
使用随机散列函数为所述用户数据值创建散列项,其中所述随机散列函数由随机选择的所述项的变体生成,并且其中对所述项的一组可能的变体编索引;
将所述散列项的至少一部分编码为矢量,其中对所述创建的散列的至少所述部分进行编码包括:在与创建的散列值对应的位置处更新所述矢量值;
通过以预定义的概率改变所述矢量值中的至少一些使所述矢量私有化;以及将所述私有化矢量和所述随机选择的变体的索引值传输到所述服务器,所述服务器估计一组不同客户端设备中的用户数据值的频率。
12.根据权利要求11所述的设备,所述服务器通过对由所述一组可能的变体编索引的频率表的更新估计所述频率,其中用所述私有化矢量更新与所述随机选择的变体的所述索引值对应的所述频率表的行或列。
13.根据权利要求12所述的设备,其中:
所述随机选择的变体在仅使用所述创建的散列值的所述部分时防止散列冲突,并且在维护所述用户数据值的隐私时减少所述服务器创建所述频率表所需的计算次数;
所述项是字符串,并且所述随机选择的所述项的变体包括一个或多个字符,所述一个或多个字符表示附加到所述字符串的所述变体的所述索引值;以及
所述编码包括使用统一的值和符号使所述矢量初始化,并且更新所述矢量值包括在与所述创建的散列值对应的所述位置处所述值的符号翻转。
14.一种数据处理系统,包括:
一个或多个处理器;和
存储器,所述存储器耦接到所述一个或多个处理器,所述存储器存储指令,当由所述处理器执行时,所述指令使得所述处理器执行包括下述各项的操作:
从客户端设备上收集的一组可能的用户数据值中选择要传输到服务器的用户数据值;
使用随机散列函数为所述用户数据值创建散列项,其中所述随机散列函数由随机选择的所述项的变体生成,并且其中对所述项的一组可能的变体编索引;
将所述散列项的至少一部分编码为矢量,其中所述编码包括:在与创建的散列值对应的位置处更新所述矢量值;
通过以预定义的概率改变所述矢量值中的至少一些使所述矢量差分私有化;以及将所述私有化矢量和所述随机选择的变体的索引值传输到所述服务器,其中所述服务器通过更新由所述一组可能的变体编索引的频率表估计所述用户数据值的频率。
15.根据权利要求19所述的数据处理系统,其中:
利用所述私有化矢量更新对应于所述随机选择的变体的所述索引值的所述频率表的行或列;
所述项是字符串,并且所述随机选择的所述项的变体包括一个或多个字符,所述一个或多个字符表示附加到所述字符串的所述变体的所述索引值,所述随机选择的变体在仅使用所述创建的散列值的所述部分时防止散列冲突,并且在维护所述用户数据值的隐私时减少所述服务器创建所述频率表所需的计算次数;
所述编码包括用统一的值和符号使所述矢量初始化;以及
更新所述矢量值包括在与所述创建的散列值对应的所述位置处翻转所述值的所述符号。
16.一种电子设备,包括:
非暂态机器可读介质,所述非暂态机器可读介质用于存储指令;
一个或多个处理器,所述一个或多个处理器用于执行所述指令;和
存储器,所述存储器耦接到所述一个或多个处理器,所述存储器用于存储所述指令,当由所述一个或多个处理器执行时,所述指令使得所述一个或多个处理器:
检测与应用程序相关的交互,所述交互响应于由所述应用程序展示的网页内的指令而执行,其中由所述应用程序展示的所述网页用于媒体项的展示;
基于所述交互将由所述应用程序展示的所述网页与类别相关联,所述类别选自与由所述应用程序展示所述网页的推断偏好相关的一组类别;
创建私有化编码,所述私有化编码包括由应用程序展示的所述网页的表示和所述类别的表示;以及
将所述私有化编码传输到至少一个服务器,所述服务器从多个设备累积私有化编码,以估计由所述应用程序展示的与所述多个设备中的所述类别相关联的所述网页的频率。
17.根据权利要求16所述的电子设备,其中响应于由所述网页或与所述网页相关联的web应用程序展示的媒体项的自动播放的启动、尝试启动或允许而提供所述响应,并且所述一组类别包括与启用所述媒体项的自动播放的推断的偏好相关的第一类别。
18.根据权利要求17所述的电子设备,其中所述响应包括在所述网页展示所述媒体项之后允许所述媒体项的自动播放超过预先确定的时间值,或者在针对所述媒体项启动自动播放之后使所述媒体项扩大或最大化。
19.根据权利要求17所述的电子设备,其中基于设置禁用由用户访问的所述网页的自动播放,并且所述响应包括选择播放所述网页尝试在所述媒体项的展示的预先确定的时间值内针对其启动自动播放的所述媒体项。
20.根据权利要求16所述的电子设备,其中响应于在所述网页或与所述网页相关联的web应用程序内的媒体项的自动播放的启动、尝试启动或允许而提供所述响应,并且所述一组类别包括第二类别,所述第二类别与推断禁用所述媒体内容的自动播放的用户偏好相关。
21.根据权利要求20所述的电子设备,其中所述响应包括使所述应用程序或与所述网页相关联的标签关闭或最小化。
22.根据权利要求20所述的电子设备,其中所述响应包括静音或降低系统音量。
23.根据权利要求20所述的电子设备,其中基于设置禁用所述网页的自动播放,并且所述响应包括在不回放所述媒体项的情况下导航离开所述媒体项目。
24.根据权利要求20所述的电子设备,其中所述响应包括在展示所述媒体项的所述网页的预先确定的时间值内中断所述媒体项的自动播放,并且其中中断所述自动播放包括使所述媒体项暂停、停止或静音,或者将所述媒体项的音量降至预先确定的平。
25.根据权利要求16所述的电子设备,所述指令进一步使得所述一个或多个处理器:
确定要由所述应用程序显示的网页上的内容包括逻辑,所述逻辑指示所述媒体内容被设置用于自动播放;以及
在由所述应用程序展示所述媒体内容之前调节所述媒体内容的一个或多个展示设置,其中调节所述一个或多个展示设置包括禁用自动播放、延迟所述自动播放、暂停所述自动播放或使所述媒体内容静音。
26.根据权利要求16所述的电子设备,其中为了创建所述私有化编码,所述指令将使得所述一个或多个处理器:
通过随机选择的散列函数创建所述网页的所述表示和所述类别的所述表示的散列值,通过在对应于所述散列值的位置处对矢量值进行符号翻转,对所述初始化矢量进行编码,并且
以基于隐私参数确定的预定义的概率改变所述初始化矢量值中的至少一些。
27.一种计算系统,包括:
一个或多个处理器;和
存储器,所述存储器耦接到所述一个或多个处理器,所述存储器存储指令,当由所述一个或多个处理器执行时,所述指令使得所述计算系统执行包括下述各项的操作:
从一组客户端设备中的每一个接收网页的私有化编码和与所述网页相关联的类别,其中所述类别涉及推断在所述网页上展示媒体内容的偏好;
从所述一组客户端设备累积私有化编码;以及
基于来自所述一组客户端设备的所述累积的私有化编码,估计与所述类别相关联的选定网页的频率。
28.根据权利要求27所述的计算系统,另外包括:
累积从所述一组客户端设备接收的所述私有化编码的草图,所述草图包括所述私有化编码的频率估计;以及
估计在所述私有化编码的所述草图中包括的所述频率中与所述类别相关联的所述选定网页的频率。
29.根据权利要求27所述的计算系统,其中估计所述选定网页的所述频率包括使用计数均值草图运算确定计数。
30.根据权利要求27所述的计算系统,其中所述类别涉及推断相对于使用阅读器模式显示所述网页上的内容的偏好,其中所述阅读器模式是不显示菜单项的模式。
31.根据权利要求27所述的计算系统,其中所述类别涉及推断对所述网页的内容阻止设置的偏好。
32.根据权利要求27所述的计算系统,其中所述类别涉及推断在所述网页上启用媒体内容自动播放的用户偏好。
33.根据权利要求32所述的计算系统,所述操作另外包括:基于提供对启用所述网页自动播放的偏好推断的用户的估计频率,将所述选定网页添加到白名单,其中所述白名单包括允许自动回放的网页列表。
34.根据权利要求33所述的计算系统,所述操作另外包括:基于提供对禁用所述网页自动播放的偏好推断的用户的所述估计频率,从所述白名单中移除所述选定网页或将所述选定网页添加到黑名单中,其中所述白名单包括允许自动播放的网页列表,并且所述白名单包括禁用自动播放的网页列表。
35.一种存储指令的非暂态机器可读介质,当由计算设备的一个或多个处理器执行时,所述指令使得所述计算设备执行包括下述各项的操作:
从一组客户端设备中的每一个接收网页的私有化编码和与所述网页相关联的类别,其中所述类别涉及推断在所述网页上启用媒体内容自动播放的用户偏好;
从所述一组客户端设备累积私有化编码;以及
基于来自所述一组客户端设备的所述累积的私有化编码,估计与所述类别相关联的选定网页的频率。
36.根据权利要求35所述的非暂态机器可读介质,所述操作另外包括:
累积从所述一组客户端设备接收的所述私有化编码的草图,所述草图包括所述私有化编码的频率估计;以及
估计在所述私有化编码的所述草图中包括的所述频率中与所述类别相关联的所述选定网页的频率。
37.根据权利要求35所述的非暂态机器可读介质,所述操作另外包括:基于提供对启用所述网页自动播放的偏好推断的用户的估计频率,将所述选定网页添加到白名单,其中所述白名单包括允许自动回放的网页列表。
38.根据权利要求37所述的非暂态机器可读介质,所述操作另外包括:基于提供对禁用所述网页自动播放的偏好推断的用户的所述估计频率,从所述白名单中移除所述选定网页或将所述选定网页添加到黑名单中,其中所述白名单包括允许自动播放的网页列表,并且所述白名单包括禁用自动播放的网页列表。
39.根据权利要求38所述的非暂态机器可读介质,其中估计所述选定网页的所述频率包括使用计数均值草图运算确定计数。
40.一种数据处理系统,包括:
非暂态机器可读介质,所述非暂态机器可读介质用于存储指令;
一个或多个处理器,所述一个或多个处理器用于执行所述指令;和
存储器,所述存储器耦接到所述一个或多个处理器,所述存储器用于存储所述指令,当由所述一个或多个处理器执行时,所述指令使得所述一个或多个处理器:
检测与所展示内容的内容项相关的与所述数据处理系统的交互,所述交互被确定为响应于展示所述内容项的指令的执行;
基于所述交互将所述展示的内容与类别相关联,所述类别选自与展示所述展示的内容的推断偏好相关的一组类别;
创建私有化编码,所述私有化编码包括所述展示的内容的表示和所述类别的表示;以及
将所述私有化编码传输到至少一个服务器,所述服务器从多个设备累积私有化编码,以估计与所述多个设备中的所述类别相关联的所述展示的内容的频率。
41.根据权利要求40所述的数据处理系统,其中所述展示的内容包括网页、web应用程序或应用程序的用户界面,并且所述内容项包括所述网页的用户界面元素、所述web应用程序的用户界面元素或所述应用程序的用户界面元素。
42.根据权利要求40所述的数据处理系统,其中所述内容项由应用程序展示,并且所述类别是由所述应用程序提供的设置选择。
43.根据权利要求42所述的数据处理系统,其中所述应用程序是web浏览器或用于查看所展示内容的另一个应用程序。
44.一种存储指令的非暂态机器可读介质,当由计算设备的一个或多个处理器执行时,所述指令使得所述计算设备执行包括下述各项的操作:
从一组客户端设备接收网页表示的私有化编码,每个网页被选择为响应于超过资源消耗阈值而被传输;
累积从所述一组客户端设备接收的私有化编码;
基于累积的私有化编码生成频率估计;以及
使用所述频率估计,估计所述网页中的选定网页的频率。
45.根据权利要求44所述的非暂态机器可读介质,其中所述网页的所述表示包括与所述网页相关联的网站,并且所述操作进一步包括基于与所述网站相关联的选定网页的所述频率估计网站的频率。
46.根据权利要求44所述的非暂态机器可读介质,所述操作进一步包括:基于对包括在所述频率估计中的一个或多个网页的估计频率的分析,调节所述资源消耗阈值,其中所述频率估计是从所述一组客户端设备接收的私有化编码的草图。
47.根据权利要求46所述的非暂态机器可读介质,其中所述私有化编码是差分私有化编码。
48.根据权利要求47所述的非暂态机器可读介质,其中估计所述选定网页的所述频率包括使用计数均值草图运算确定计数。
49.根据权利要求44所述的非暂态机器可读介质,其中所述资源消耗对应于所述计算设备的处理器或存储器的使用。
50.根据权利要求44所述的非暂态机器可读介质,其中所述资源消耗对应于电使用或数据传输带宽。
51.一种电子设备,包括:
一个或多个处理器;和
存储器,所述存储器耦接到所述一个或多个处理器,所述存储器存储指令,当由所述一个或多个处理器执行时,所述指令使得所述电子设备:
在从网站展示网页时,监视应用程序的资源消耗;
确定所述资源消耗超过资源消耗阈值;
生成所述网页的表示的私有化编码;以及
将所述网页的所述表示的所述私有化编码传输到服务器,其中所述服务器用于累积来自不同设备的私有化编码的草图,以估计所述网页在所述不同设备中超过所述资源消耗阈值的频率。
52.根据权利要求51所述的电子设备,其中所述服务器用于估计网站具有超过所述资源消耗的网页的所述频率。
53.根据权利要求51所述的电子设备,其中所述资源消耗对应于所述一个或多个处理器或耦接到所述一个或多个处理器的所述存储器的使用。
54.根据权利要求51所述的电子设备,其中所述资源消耗对应于所述电子设备的电力使用或所述电子设备的数据传输带宽消耗。
55.根据权利要求51所述的电子设备,其中访问所述网页的所述应用程序包括浏览器。
56.根据权利要求55所述的电子设备,其中监视访问所述网页的所述应用程序的所述资源消耗包括监视与所述网页对应的所述应用程序的标签的进程id的所述资源消耗。
57.根据权利要求51所述的电子设备,其中生成所述网页的所述表示的所述私有化编码包括:
使用随机选择的散列函数创建所述网页的散列值,
通过在对应于所述创建的散列值的位置处对矢量值进行符号翻转,对所述初始化矢量进行编码,并且
以预定义的概率改变所述矢量值中的至少一些。
58.根据权利要求57所述的电子设备,其中所述预定义的概率基于预先确定的隐私参数。
59.一种数据处理系统,包括:
一个或多个处理器;和
耦接到所述一个或多个处理器的存储器,所述存储器存储指令,当由所述处理器执行时,所述指令使得所述处理器执行包括下述各项的操作:
从一组客户端设备中的每一个接收网页表示的私有化编码,每个网页被选择为响应于超过资源消耗阈值而被传输;
累积从所述一组客户端设备接收的所述私有化编码的草图;以及
估计在所述草图中所包括的所述网页中的选定网页的频率。
60.根据权利要求59所述的数据处理系统,其中所述网页的所述表示包括与所述网页相关联的网站,并且所述操作进一步包括:基于在所述草图中所包括的与所述网站相关联的网页的所述频率,估计网站的频率。
61.根据权利要求59所述的数据处理系统,所述操作进一步包括:基于对所述草图中所包括的一个或多个网页的估计频率的分析,调节所述资源消耗阈值。
62.根据权利要求59所述的数据处理系统,其中所述资源消耗对应于一个或多个处理器或耦接到所述一个或多个处理器的存储器的使用。
63.根据权利要求59所述的数据处理系统,其中所述资源消耗对应于电力使用或数据传输带宽。

说明书全文

使用计数均值草图的差分隐私

[0001] 交叉引用
[0002] 本申请要求于2017年6月4日提交的美国临时专利申请No.62/514,933的优先权,该美国临时专利申请据此以引用方式并入本文。
[0003] 本申请还要求2017年11月7日提交的美国专利申请No.15/805,591的优先权,该专利申请据此以引用方式并入本文。
[0004] 本申请还要求2017年11月7日提交的美国专利申请No.15/805,611的优先权,该专利申请据此以引用方式并入本文。
[0005] 本申请还要求2017年11月7日提交的美国专利申请No.15/805,632的优先权,该专利申请据此以引用方式并入本文。

技术领域

[0006] 本公开整体涉及差分隐私领域。更具体地讲,本公开涉及一种系统,该系统在仍维护隐私和效用保证时实现有效的差分隐私机制。

背景技术

[0007] 随着在线环境中收集的信息量的增长,个人越来越保护提供各种形式的信息。因此,对于聚合在线信息的提供商而言,差分隐私已成为重要的考虑因素。在众包客户端/服务器环境中,本地差异隐私在客户端与服务器共享用户数据之前将随机性引入了用户数据。服务器可以从所有客户端的众包数据的聚合中学习,但是服务器不能学习任何特定客户端提供的数据。随着收集到更多的用户信息,一般模式开始出现,这可通知并增强用户体验。因此,差分隐私提供了来自大型数据集的见解,但是也有关于单个个体的信息保留私有的数学证明。
[0008] 当采用本地差分隐私时,客户端设备需要执行各种运算以创建私有化数据。客户端设备运算可包括编码数据,在某些情况下(例如,随机值的顺序达到数千或数百万的情况下),就计算成本和传输带宽而言可能是资源密集型的。此外,服务器还必须执行对应的密集运算处理私有化数据。因此,持续需要提供用于实现用户数据的本地差分隐私的有效机制。发明内容
[0009] 本文所述的实施方案提供了一种隐私机制,该隐私机制用于在将用户数据传输至估计此类数据在一组客户端设备中的频率的服务器时保护数据。在一个实施方案中,使用计数均值草图技术实现差分隐私机制,该技术在提供关于隐私和效用的可证明保证时可减少启用隐私所需的资源需求。例如,该机制可提供根据资源需求(例如,传输带宽和计算复杂性)定制效用(例如,估计的精度)的能
[0010] 一个实施方案提供了一种存储指令的非暂态机器可读介质,当由计算设备的一个或多个处理器执行时,该指令使计算设备执行运算,该运算包括从在客户端设备上收集的一组可能的用户数据值中选择要传输到服务器的用户数据值;使用随机散列函数为用户数据值创建散列项,其中该随机散列函数由随机选择的项的变体生成,并且其中对项的一组可能的变体编索引;将该值的散列项的至少一部分编码为矢量,其中该编码包括在对应于该散列的位置处更新该矢量值;通过以预定义的概率改变该矢量值中的至少一些使该矢量私有化;以及将私有化矢量和随机选择的变体的索引值传输到服务器,以使得服务器能够估计一组客户端设备上的用户数据值的频率。
[0011] 一个实施方案提供了一种电子设备,该电子设备包括一个或多个处理器和耦接到所述一个或多个处理器的存储器,该存储器存储指令,当由所述一个或多个处理器执行时,该指令使所述一个或多个处理器在客户端设备上收集的一组可能的用户数据值中选择要传输到服务器的用户数据值;使用随机散列函数为用户数据值创建散列项,其中该随机散列函数由随机选择的项的变体生成,并且其中对项的一组可能的变体编索引;将创建的散列值的至少一部分编码为矢量,其中对创建的散列的至少该部分进行编码包括:在与创建的散列值对应的位置处更新矢量值;通过以预定义的概率改变该矢量值中的至少一些使该矢量私有化;以及将私有化矢量和随机选择的变体的索引值传输到服务器,该服务器估计一组不同客户端设备中的用户数据值的频率。
[0012] 一个实施方案提供了一种数据处理系统,该系统包括一个或多个处理器和耦接到所述一个或多个处理器的存储器,该存储器存储指令,当由处理器执行时,该指令使该处理器执行运算,该运算包括从在客户端设备上收集的一组可能的用户数据值中选择要传输到服务器的用户数据值,该一组可能的用户数据值使用随机散列函数创建用户数据值的散列项,其中该随机散列函数由随机选择的项的变体生成,并且其中对该项的一组可能的变体编索引;将创建的散列值的至少一部分编码为矢量,其中编码包括:在与创建的散列值对应的位置处更新矢量值;通过以预定义的概率改变该矢量值中的至少一些使矢量差分私有化;以及将私有化矢量和随机选择的变体的索引值传输到服务器,其中该服务器通过更新由一组可能的变体编索引的频率表估计用户数据值的频率。
[0013] 通过附图以及通过以下具体实施方式,本实施方案的其他特征将显而易见。

附图说明

[0014] 本公开的实施方案以举例的方式而不是以限制的方式在各个附图的图示中进行说明,在附图中类似的附图标号是指类似的元件。
[0015] 图1是示出了根据本公开的实施方案的系统环境的示例性概要的框图
[0016] 图2是根据本公开的实施方案的用于使共享用户数据差分私有化的系统的框图。
[0017] 图3是根据本公开的实施方案的使用户数据的编码差分私有化的示例性过程流。
[0018] 图4示出了根据实施方案的用于将用户数据的私有化编码传输至用于频率估计的服务器的示例性数据流。
[0019] 图5至图6描述了根据本文所述的实施方案的差分隐私机制的数学算法
[0020] 图7是示出根据实施方案的使将要传输到服务器的用户数据的编码差分私有化的方法的示例性流程图
[0021] 图8A至图8F是根据实施方案的关于众包用户交互和设备资源消耗数据的示例性流程图和图示。
[0022] 图9是示出了可用于一些实施方案中的示例性API架构的框图。
[0023] 图10A至图10B是根据实施方案的示例性API软件栈的框图。
[0024] 图11是根据实施方案的移动设备架构的框图。
[0025] 图12是示出可以结合本公开的实施方案中的一个或多个使用的示例性计算系统的框图。

具体实施方式

[0026] 在各种情况下,计算设备的用户体验可通过尝试了解这些设备的当前使用趋势加以改善。例如,预测键盘的建议可通过确定哪些新单词是流行的或者哪些表情符号被最频繁地选择加以改进。可基于检测到的用户行为调整在浏览某些网站时web浏览器的行为。另外,可通过确定哪些网站当前表现出可能影响设备电池寿命的问题延长电池寿命。然而,此类数据对用户而言可视为个人的,并且应当加以私有化或以其他方式编码以掩蔽提供此类数据的用户的身份。本文所述的实施方案为用户数据提供了差分隐私编码,该差分隐私编码用于估计此类数据在一组客户端设备中的频率。此类实施方案提供了差分隐私技术,该技术在提供关于隐私和效用的可证明保证时可用于减少资源需求或增强用户体验。
[0027] 将参考以下论述的细节描述各种实施方案和方面,并且附图将对各种实施方案进行说明。以下说明书和附图为例示性的,并且不应被理解为限制性的。描述了许多具体细节,以提供对各个实施方案的全面理解。然而,在某些实例中,熟知的或常规的细节并未被描述,以便提供对实施方案的简明论述。
[0028] 在本说明书中提到的“一个实施方案”或“实施方案”或“一些实施方案”是指结合该实施方案所述的特定特征、结构或特性可被包括在至少一个实施方案中。在本说明书中的各个位置出现短语“实施方案”不一定都是指同一个实施方案。
[0029] 应当注意的是,本文描述的流程图或步骤(或操作)可以存在变化,而不脱离本文所述的实施方案。例如,步骤可以并行、同时或者按照不同的顺序执行,或者可以添加、删除或修改步骤。
[0030] 本公开认识到在本文技术中使用个人信息数据可用于使用户受益。例如,该个人信息数据可用于递送用户较感兴趣的目标内容。因此,使用此类个人信息数据使得能够对所递送的内容进行有计划的控制。此外,本公开还预期个人信息数据有益于用户的其他用途。
[0031] 本公开进一步设想负责此类个人信息数据的收集、分析、公开、传输、存储或其他用途的实体将遵守已确立的隐私政策和/或隐私做法。具体地讲,此类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。例如,来自用户的个人信息应当被收集用于实体的合法且合理的用途,并且不在这些合法用途之外共享或出售。另外,此类收集应当仅在用户知情同意之后进行。另外,此类实体应当采取任何所需的步骤,以保障和保护对此类个人信息数据的访问,并且确保能够访问个人信息数据的其他人遵守他们的隐私政策和程序。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。
[0032] 不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,就广告递送服务而言,本公开技术可被配置为在注册服务期间允许用户选择“选择加入”或“选择退出”参与对个人信息数据的收集。又如,用户可选择不为目标内容递送服务提供位置信息。再如,用户可选择不提供精确的位置信息,但是准许传输位置区域信息。
[0033] 差分隐私机制
[0034] 本文所述的实施方案提供了差分隐私机制,该差分隐私机制可用于使收集用于众包的用户数据私有化。作为一般概述,本地差分隐私在共享用户数据之前将随机性引入到客户端用户数据。与具有集中数据源D={d1,...,dn}相反,每个数据条目di属于单独的客户端i。鉴于与客户端i交互的转录物Ti,如果要将数据元素替换为null,则对手可能无法区分Ti与应当已经生成的转录物。不可区分程度(例如,隐私程度)由ε参数化,其为隐私参数,表示隐私保证的强度与公布结果的精度之间的权衡。通常,ε被认为是一个小常数。在一些实施方案中,该ε值可以基于待私有化的数据类型而变化,其中更敏感的数据被私有化到更高程度。以下是对本地差异隐私的正式定义。
[0035] 设n为客户端-服务器系统中的客户端数量,设Γ为从任何单个客户端-服务器交互生成的一组所有可能的转录物,并且设Ti为在与客户端i交互时由差异隐私算法A生成的转录物。设di∈S为客户端i的数据元素。如果对于所有子集 以下等式成立,则算法A为ε本地差异隐私:
[0036]
[0037] 此处,di=null是指移除客户端i的数据元素的情况。换句话讲,具有数据集的n-1个数据点的对手不能可靠地测试第n个数据点是否是特定值。因此,不能以使得能够确定任何特定用户数据的方式查询差分私有化数据集。
[0038] 本文公开的系统(和方法)包括ε本地差分私有的计数均值草图机制,该机制在保持用户隐私时可提供相对于客户端和服务器的精度、带宽和计算成本的改进。可在如本文所述的系统环境内提供私有的计数均值草图机制。在计数均值草图机制中使用平均值使得能够在处理时间和精度之间权衡。使用其他机制,诸如基于中位数的机制,增加的处理时间可能不导致精度提高。相反,计数均值草图机制可用于通过花费更多的处理时间获得更高的精度。
[0039] 图1是根据本公开的实施方案的此类系统100的概要的框图。如图所示,系统100可包括客户端设备110A-110C(或统称为110)和服务器130,其可经由网络120耦接。网络120可以是任何合适类型的有线或无线网络,诸如局域网(LAN)、广域网(WAN)或其组合。客户端设备110可以包括任何类型的计算设备,诸如台式计算机、平板计算机、智能电话、电视机顶盒或如下文在设备架构1100和/或系统1200中描述的其他计算设备。示例性客户端设备包括但不限于设备诸如 Watch、 TV或Apple Inc.(Cupertino,California)提供的其他计算设备。
[0040] 客户端设备110可与大量用户集(例如,众包)内的用户相关联。每个客户端设备110可将私有化用户数据112A-112C(统称为112)作为差分私有草图(或编码)传输。草图是用户数据值的计算编码表示。草图的目的是将用户数据的编码表示传输到服务器,以使得服务器不能直接学习由特定客户端传输的用户数据值。用户数据可为任何形式的信息,诸如与用户相关的信息或与在客户端设备上执行的用户动作相关的信息。例如,该值可包括所访问的网站、用户交互或行为数据、用户使用的单词或表情符号、深层链接、偏好、来自问卷的数据或用户可能希望或请求保留私有的任何其他数据。在一个实施方案中,用户数据可以是有限的并且来自已知集的任何形式的信息。例如,该已知集可包括服务器130已知的预定义的一组可能的值。
[0041] 服务器130可累积私有化用户数据112,并确定一组客户端设备110中的统计属性诸如用户数据频率估计131。如所述的,服务器130可从众包数据的聚合中学习,但是不能学习由任何特定客户端设备110提供的用户数据。服务器130可以是任何类型的服务器或服务器集群,并且可包括基于的服务器、应用服务器、后端服务器或其组合。
[0042] 图2是根据本公开的实施方案的用于使用户数据差分私有化的系统200的框图。客户端设备110可包括差分隐私引擎(DPE)228和多个应用程序230A-230C,该差分隐私引擎包括差分隐私守护进程225和差分隐私框架或应用编程接口(API)227。应用程序230A-230C中的一者或多者可创建用户数据205,并且DPE 228可使用各种工具诸如散列函数(或密码散列函数)以使用如本文进一步描述的差分隐私机制使用户数据205私有化。
[0043] 在一个实施方案中,客户端设备110可存储与用户和应用程序或服务的交互相关的信息。与用户和特定网站的交互相关的数据可包括与用户和网站的各种特征的交互相关的信息。例如,用户数据可包括与网站所提供的内容的展示设置相关的各种信息。例如,可分析与媒体内容的自动播放相关的用户交互数据,诸如用户是否停止或暂停自动播放的媒体内容。因此,可基于众包的用户交互模式调节各种自动播放设置和/或设备功能。
[0044] 在一个实施方案中,用户数据205可以差分私有形式存储在客户端设备上。私有化形式的该用户数据205可与服务器130共享(例如,二次采样),或者可用于其他目的,诸如用于使用和诊断目的。应当注意的是,即使当用户数据205不与服务器130共享时,它仍可以差分私有形式存储。
[0045] 在一个实施方案中,白名单存储其中启用了特定特征的网站(或网页)的列表。例如,白名单可包括其中启用了如本文进一步描述的自动播放的网站的列表。
[0046] 服务器130可包括接收模250和频率估计模块260,以确定可存储在各种数据结构诸如频率表中的频率估计131。接收模块250可异步地接收大量多个客户端设备110的用户数据的众包数据草图。接收模块250可从接收的草图数据中移除潜在性的标识符。潜在性的标识符可以包括IP地址、元数据、会话标识符或可以标识发送草图的特定客户端设备110的其他数据。频率估计模块260可使用运算诸如但不限于计数均值草图运算周期性地处理接收到的私有化用户数据205,该计数均值草图运算是使用平均值而不是最小值的计数最小值草图运算的变型。在一个实施方案中,频率估计模块260可更新频率表以确定频率估计131,如本文进一步所述。
[0047] 图3是根据本公开的实施方案的使要传输到服务器的用户数据的编码差分私有化的示例性过程流。如图300所示,可包括在如图1所示的客户端设备110内的系统可选择要传输到服务器的用户数据301值。在例示的示例中,用户数据301值对应于所访问的网站。然而,设想了任何类型的数据,并且用户数据301值可以任何合适的格式表示为项302。
[0048] 如图所示,该项可以是所访问网站的域名。然而,可使用其他类型的表示,诸如但不限于也可使用URI(统一资源标识符)或URL。该项也可以是网站的所访问网页,其中该表示可标识所访问网站的域名和该网站的特定网页。如本文所述,网页是从网站展示或由网站托管的单个页面或文档,但单个展示的网页可包括来自多个文档的内容。网站是以相同的名称、分组或组织展示的相关网页的集合。来自网站的网页通常(但不一定)由同一个域托管。单个域可托管多个网站,其中每个网站包括多个网页。如本文所述,在参考网站时,该参考也可适用于与该网站或与该网站相关联的域相关联的网页的集合。
[0049] 可使用散列函数将项302转换为数值。如图所示,在一个实施方案中使用了SHA256散列函数。然而,也可使用任何其他散列函数。例如,可以使用SHA或其他算法的变体,诸如具有各种位大小的SHA1、SHA2、SHA3、MD5、Blake2等。因此,任何散列函数(或分组密码)可以在具体实施中使用,只要它们对于客户端和服务器均是熟知的。
[0050] 如上所述,本公开的实施方案可减少差分隐私算法所需的计算资源和所需的带宽。在一个实施方案中,计算逻辑可以使用创建的散列值的一部分连同项302的变体304解决当由服务器执行频率计数时的潜在散列冲突,这在维护可证明的隐私平时提高计算效率。变体304可以对应于服务器已熟知的一组k值(或k个索引值)。在一个实施方案中,为了创建变体304,系统可以将索引值306的表示附加到项302。如该示例中所示,对应于索引值的整数(例如,“1,”)可以被附加到URL以创建变体(例如,“1,apple.com”或“apple.com1”等)。然后,系统可选择随机变体309(例如,在随机索引值r处的变体)。因此,系统可通过使用项304的变体(例如,随机变体309)生成随机散列函数307,从而使得能够通过使用变体生成一系列的k个散列函数。该系列散列函数对于服务器是熟知的,并且系统可以使用随机选择的散列函数307创建散列值303。在一个实施方案中,为了减少计算,系统可以仅创建随机选择的变体309的散列值303。另选地,系统可以创建完整的一组散列值(例如,k个散列值)或高达随机选择的变体r的散列值。应当注意的是,整数序列被示为索引值的示例,但是其他形式的表示(例如,各种数量的字符值)或函数(例如,另一个散列函数)也可以用作索引值,只要它们对于客户端和服务器均是熟知的。
[0051] 一旦生成了散列值303,系统就可以选择散列值308的一部分。在该示例中,可以选择16位部分,但也可以基于差分隐私算法的期望精度水平或计算成本预期其他大小(例如,8、16、32、64等位数)。例如,增加位数(或m)则增加计算(和传输)成本,但是可以获得精度的改善。例如,使用16位提供216-1(例如,约65k)个潜在唯一值(或m个值范围)。类似地,增加变体k的值则增加计算成本(例如,计算草图的成本),但是继而增加了估计的准确性。如所述的,系统可对该值进行编码,并且如图所示,编码可为矢量306的形式。例如,矢量306可具有
216-1的大小,并且矢量的每个位置可对应于创建的散列303的潜在数值。应当注意的是,为了方便和数学目的,本文描述了矢量,但是可以实现任何合适的数据结构,诸如位串、对象等。
[0052] 如图3的图350中所示,创建的散列值303(作为十进制数)可以对应于矢量/位位置305。因此,可以通过在位置305处更新值(例如,将位设置为1)对矢量306进行编码。为了考虑0或null值的任何潜在偏差,系统可以使用初始化矢量317。在一个实施方案中,初始化矢m
量317可以是矢量v←[-1]×cε,由此使得cε向初始化矢量添加平均值为0的噪声。噪声应当足够大,以掩蔽用户数据的各个项,但是应当小到足以允许数据集中的任何模式出现。应当注意的是,这些值用作数学项,但是可以使用位加以编码(例如,0=+cε,1=-cε,)。因此,矢量306可以使用初始化矢量317创建编码308,其中在位置305处的值(或位)被改变(或更新)。例如,可翻转在位置305处的值的符号,由此使得该值是cε(或+cε),并且所有其他值保留为-cε,如图所示(或反之亦然)。
[0053] 然后,系统可以通过以预先确定的概率313改变值中的至少一些创建私有化编码312。在一个实施方案中,系统可以预先确定的概率313翻转值的符号(例如,(-)到(+),或反之亦然)。如本文进一步所述,在一个实施方案中,预先确定的概率是1/(1+eε)。
[0054] 因此,用户数据301值现在表示为私有化编码312,其单独地维护用户的隐私。该私有化编码313可存储在客户端设备110上或传输到服务器130。私有化编码313可单独地或作为批的一部分传输。为进一步确保隐私,客户端设备110还可对数据进行子采样。例如,客户端设备110可仅在给定日期或任何其他时间段发送最频繁访问的网站。
[0055] 应当注意的是,可将附加位添加至上述编码以传输附加信息。例如,如本文进一步2
所述,可基于对用户数据值进行分类添加附加位。例如,添加2个位(例如,2)提供了对4个类别编码的能力。如上所述,差分隐私机制允许大量数据元素(例如,p),并且因此可提供用于传输如本文所述的数据的有效机制,该机制可能由于先前机制的资源要求而不实用。
[0056] 图4示出了根据实施方案的用于将用户数据的私有化编码传输至用于频率估计的服务器的示例性数据流400。如图所示,服务器130可从不同的客户端设备110A-B以私有化数据的形式累积用户数据。当传输信息时,每个客户端设备可传输用户数据的私有化编码312连同随机变量的索引值(或对索引值的引用)。例如,如图所示,客户端设备110A传输访问apple.com网站的私有化编码312。用于此类编码的随机变体对应于在索引值1处的随机变体。因此,客户端设备110A可将值“1”作为随机变体的索引值传输。类似地,客户端设备
110B传输访问itunes.com网站的私有化编码312连同用于编码的随机变体的对应索引值,该索引值在这种情况下为“15”。
[0057] 然后,累积的用户数据可由服务器处理(批量或作为数据流),以生成频率估计131。在一个实施方案中,服务器可维护草图形式的频率估计131,诸如频率表。频率表可以由一组可能的变体索引值k索引。然后利用私有化矢量更新对应于随机选择的变体的索引值的频率表的行。在一个实施方案中,频率估计可基于计数均值草图。对于特定的项(例如,如图3中的项302),服务器130可计算散列值系列的每个变体,并将对应的频率添加至列表。
服务器130可计算特定项的频率(例如,项apple.com)。例如,h1(apple.com)的散列值=SHA256(1,apple.com)=位置305b。服务器可获得在对应位置处的频率(例如,如图所示的
9)并将该频率添加至列表。服务器可获得所有值1-k的频率,以获得项的所有频率的列表。
然后,服务器可确定列表中的频率的平均值(例如,计数均值草图)。然而,应当注意的是,也可使用其他计数技术,诸如计数最小值草图、计数中值草图或计数最大值草图。所述机制使得能够进行具有准确的方差界限的频率估计,而先前的机制通常仅提供上限。例如,并且在一个实施方案中,服务器130可将任意元素s的频率估计为随机变量,其平均值等于由界定的真实计数和标准偏差,其中σ由以下公式定义:
[0058]
[0059] 图5至图6描述了根据实施方案的差分隐私机制的更正式的(数学的)算法。如所描述的,系统可创建草图(例如,私有化编码312)以提供简洁的数据结构,从而维持数据流D={d1,...}中存在的元素S={s1,...,sp}的域的频率。因此,可在服务器上使用计数均值草图的ε本地差分私有版本生成维护用户隐私的频率oracle。频率oracle是基于从n个客户端收到的数据D={d1,...}返回数据项s∈S的估计计数的函数。差分隐私机制可以是两种类型之一:(1)ε-本地差分私有实现ACLIENT,或(2)Hadamardε-本地差分私有实现ACLIENT-Hadamard。
[0060] 图5示出了根据本公开实施方案的ε-本地差分私有实现ACLIENT的过程500。过程500可通过由本文所述的处理逻辑执行的算法加以实现,该算法可包括软件、硬件或它们的组合。例如,可由系统(诸如,如图1中的系统100)执行过程500。
[0061] 客户端侧ε-本地差分私有算法ACLIENT可包括:(1)隐私参数ε;(2)散列范围,m;(3)索引值r;和(4)数据元素:d∈S。因此,系统(例如,客户端设备110)可实现算法ACLIENT,以基于以下运算生成ε-本地差分私有草图。
[0062] 在运算501中,该系统可计算常数 并使矢量v初始化:V←-cεm。常数cε允许噪声增加,以保持在零均值处的隐私,从而保留非偏置。
[0063] 在运算502中,系统可选择数据元素d的随机变体r。
[0064] 在运算503中,系统可设置n←散列(d的r)的部分。
[0065] 在运算504中,系统可设置v[n]←cε。
[0066] 在运算505中,系统可对矢量b∈{-1,+1}m进行采样,其中每个bj是独立的,并且具有概率为 的+1的相同分布。
[0067] 在运算506中,系统可生成
[0068] 在运算507中,系统可返回矢量vpriv和索引值r。
[0069] 图6示出了根据本公开实施方案的ε-本地差分私有实现的Hadamard版本ACLIENT-Hadamard的方法(或算法)600。ε-本地差分私有实现的客户端侧ACLIENT-Hadamard版本可包括:(1)隐私参数,ε;(2)散列范围,m;(3)索引值,r;和(4)数据元素:d∈S。因此,系统(例如,图1的系统100中的客户端设备110)可使用算法ACLIENT-Hadamard,以基于以下运算生成ε-本地差分私有实现的Hadamard版本。
[0070] 在运算601中,该系统可计算常数 并使矢量v初始化:v←[0]m。
[0071] 在运算602中,系统可选择数据元素d的随机变体r。
[0072] 在运算603中,系统可设置n←散列(d的r)的部分。
[0073] 在运算604中,系统可设置v[n]←cε。
[0074] 在运算605中,系统可生成矢量 其中Hm是维度为m的Hadamard矩阵。Hadamard矩阵是正方形矩阵,其条目不是+1就是-1并且其行相互正交
[0075] 在运算606中,该系统可对索引j和位b∈{-1,1}进行采样,索引j在[m]中独立且相同地分布,由此使得b是概率为 的+1。
[0076] 在运算607中,系统返回cε·b·vHad1amard[j],选择的索引j和索引值r。
[0077] 基于客户端设备所使用的特定算法(或方法),服务器(例如,服务器130)可生成频率表或其他数据结构,以对不同客户端设备中的用户数据值执行频率估计。如上所述,该估计可基于计数均值草图(例如,计数最小值草图的变型)。频率表的值可基于客户端是使用ε-本地差分私有草图算法ACLIENT还是Hadamardε-本地差分私有草图算法ACLIENT-Hadamard而递增。用于每种的运算如下所述。
[0078] 如果客户端使用ACLIENT算法累积草图,那么将矢量vpriv添加到匹配草图数据Wk,m,如下:
[0079] 对于对应于用于生成vpriv的所选变体的Wh行,将Wh设置为Wh+vpriv。
[0080] 如果客户端使用ACLIENT-Hadamard算法生成草图,那么将矢量vHadamard添加到匹配草图数据Wk,m,如下:
[0081] 1.对于对应于用于生成vHadamard的所选变体的Wh行,设置Wh=Wh+vHadamard。
[0082] 2.在确定计数均值草图W之前,将行从Hadamard基础转换为标准基础:
[0083] 其中Hm是维数为m的Hadamard矩阵。
[0084] 图7是示出根据本公开的实施方案的使将要传输到服务器的用户数据的编码差分私有化的过程700的示例性流程图。过程700可通过处理逻辑执行,该处理逻辑可包括软件、硬件或它们的组合。例如,过程700可由如图1中的系统100经由客户端设备110加以执行。
[0085] 在701中,该系统可在客户端设备上收集的一组可能的用户数据值中选择要传输到服务器的用户数据值。
[0086] 在702中,该系统可使用随机散列函数为用户数据值创建散列项。要生成随机散列函数,该系统可使用随机选择的项的变体进行散列。在一个实施方案中,可对该值的一组可能的变体编索引。在一个实施方案中,用户数据值可以是字符串,并且用户数据值的一组可能的变体包括一个或多个字符,其表示附加到字符串的变体的对应索引值。
[0087] 在703中,系统可将创建的散列值的至少一部分编码为矢量。在一个实施方案中,编码包括在对应于该表示的位置处更新矢量值。例如,可翻转在对应于该表示的位置处的值的符号。在一个实施方案中,编码可包括用统一的值和符号使矢量初始化。在一个实施方案中,使矢量初始化可进一步包括将每个矢量值乘以常数cε=(eε+1)/(eε-1)。此外,如上所述,编码的矢量也可以是Hadamard矩阵的形式。
[0088] 在704中,系统可通过以预定义的概率改变该矢量值中的至少一些使矢量差分私有化。在一个实施方案中,预定义的概率可以是1/(1+eε),其中ε是隐私参数。
[0089] 在705中,系统可将私有化矢量和随机选择的变体的索引值传输到服务器。如上所述,服务器可估计一组不同客户端设备中用户数据值的频率。服务器可通过更新由该一组可能的变体编索引的频率表估计用户数据值的频率。例如,可利用私有化矢量更新对应于随机选择的变体的索引值的频率表的行或列。此外,只有私有化矢量和随机选择的变体的索引值可作为表示用户数据值的信息传输到服务器。在一个实施方案中,随机选择的变体可在仅使用创建的散列值的该部分时防止散列冲突,并且在仍然维护用户数据值的ε-本地差分隐私时还可减少服务器创建频率表所需的计算次数。
[0090] 使用私有化众包数据改善用户体验
[0091] 在本公开的另一方面,描述了使用本文所述的差分隐私机制收集众包数据以增强用户体验的系统(和方法)。例如,用户体验可通过从分析众包的用户交互数据中推断潜在用户偏好加以增强。在一些实施方案中,可收集与特定网站、应用程序或服务有关的众包数据。例如,在一个实施方案中,可分析与内容诸如来自在线源的内容的展示有关的用户交互。此外,在一个实施方案中,在掩蔽有助于确定这些特征的用户的身份时可确定表现出特定特征的网站。例如,可使用私有化众包数据识别消耗一定程度客户端资源的网站。将数据收集到私有化众包数据集中,其中各个贡献者的身份被掩蔽。在传输贡献以包括在数据集中之前,可在贡献者的用户设备上掩蔽贡献者数据。可为众包数据集维护差分隐私,由此使得无法通过对数据集的多个结构化查询确定数据集的各个贡献者的身份。例如,可使数据集私有化,由此使得对数据集具有任何背景知识的对手无法推断输入数据集中的特定记录比其他输入记录的集合对观察到的输出负有显著更大的责任。
[0092] 给定用户在给定时间段内对众包数据集的贡献数量可为有限的。在一个实施方案中,针对特定类型的众包数据建立隐私预算。然后,基于隐私预算限制来自每个用户的贡献数量。特定类型的数据的隐私预算也可与私有化特定类型的数据时使用的ε值(隐私参数)相关联。例如,基于数据的敏感性,不同类型的数据的隐私预算和隐私参数可变化。
[0093] 尽管本文描述了差分隐私技术,但是可采用使用户数据私有化的其他方法作为本文所述的差分隐私技术的替代或补充。一些实施方案可以实施包括安全多方计算和/或同态加密的其他私有化技术。在保持这些输入私有时,安全多方计算使得多方能够共同计算输入功能。同态加密是一种加密形式,允许在密文(加密数据)上执行计算,从而生成加密结果,当解密时,该加密结果与明文上执行的运算的结果匹配。在所有实施方案中,将在传输之前清理有待用于众包的用户数据。另外,有待传输的用户数据可以私有化编码的方式本地存储。
[0094] 图8A至图8F是根据实施方案的关于众包用户交互和设备资源消耗数据的示例性流程图和图示。图8A是示出根据实施方案的众包用户交互数据的示例性流程图。图8B是示出根据实施方案的处理众包用户交互数据的方法的示例性流程图。图8C是示出根据实施方案的基于资源消耗的众包数据方法的示例性流程图。图8D是示出根据实施方案的基于资源消耗的处理众包数据的方法的示例性流程图。图8E显示了根据实施方案的示例性图示,其示出了可从众包资源消耗数据中导出的各种使用和频率信息。图8F示出了根据本文所述的实施方案的内容的展示,可针对该内容收集关于用户交互和资源消耗的众包数据。
[0095] 图8A示出了可使用处理逻辑的示例性过程800,该处理逻辑可包括软件、硬件或其组合。例如,过程800可由系统100的客户端设备110执行,如图1所示。
[0096] 在运算801中,系统可监视用户与应用程序、服务或域的交互。例如,系统可监视用户与网站(或web应用程序、应用程序、服务等)的交互。该系统可分析各种用户交互并确定(或推断)用户的偏好。例如,系统可确定(或推断)相对于特定网站启用或禁用自动播放媒体内容的偏好。又如,系统可确定相对于内容的显示设置的偏好。例如,系统可推断相对于阅读器模式的偏好(例如,不显示工具或菜单项的模式,例如,以模拟对书籍的阅读)。又如,系统可推断对内容阻止设置的偏好。例如,基于用户交互,系统可确定要阻止网站内的哪些类型的元素(例如,不安全的或恶意的)。
[0097] 如上所述,在一个实施方案中,系统可监视与发起或尝试发起媒体内容自动播放的网站相关的用户动作。如本文所指,自动播放涉及被设置为在没有来自用户的显式输入(例如,选择播放按钮)的情况下(例如,通过代码、脚本或与网站相关联的其他逻辑)自动开始播放的媒体内容。此外,在各种情况下也可发生自动播放。通常,自动播放在用户访问网站时启动,但是应当注意的是,自动播放也可在其他情况下启动,例如在用户滚动到网页的特定部分时或在媒体内容准备播放(例如,缓冲)时等。此外,如本文所指,媒体内容可包括各种多媒体,诸如可为各种格式的视频(带有或不带有音频)或音频。在一个实施方案中,媒体内容还可包括各种附加组件或插件,诸如 网站可响应于特定事件而启动自动播放。如上所述,网站通常在访问网站(例如,提交的URL)时启动自动播放。然而,应当注意的是,在某些情况下,可能需要花费一定量的时间加载媒体内容。因此,在某些情况下,用户可能能够在网站启动设置为自动播放的媒体内容的回放之前浏览该网站(例如,文本部分)。在此类实例中,系统可在媒体内容准备好(例如,被缓冲)以开始回放之后(或响应于此)监视用户交互。
[0098] 在运算802中,系统可对用户交互进行分类。在一个实施方案中,对用户交互进行分类包括基于用户交互将网站或网页关联到类别中。在监视与媒体内容的自动播放有关的用户交互时,系统可推断启用自动播放的偏好。因此,系统可监视各种用户交互,这些交互为偏好启用自动播放的用户提供指示。例如,用户交互可包括一旦向用户展示媒体内容,就允许媒体内容的自动播放超过预先确定的时间值。如本文所指,时间值可包括时间间隔(例如,10秒)或各种其他值诸如百分比(例如,观看超过内容项的长度的50%)。又如,用户交互可包括用户在访问网页的时间值内使媒体内容最大化或扩大。又如,用户交互可包括在访问网页的某个时间值内播放视频。例如,想要立即播放视频的用户可提供该用户可能偏好在该特定网站上启用自动播放的指示。
[0099] 此外,用户动作可包括选择播放禁用了自动播放的视频(例如,经由默认系统设置或偏好)。在一个实施方案中,这可包括选择播放在访问网页的预先确定的时间值内禁用了自动播放的视频。应当注意的是,本文的用户交互可在系统可自动调节自动播放的参数的环境中被收集。例如,系统可实现用于启用或禁用自动播放的用户偏好。又如,系统可调节一个或多个参数,诸如音量、静音、大小或延迟被设置为自动播放的媒体内容的展示。根据聚合数据设置自动播放偏好的另外的非限制性示例可见于2017年5月16日提交的标题为“Device,method,and graphical user interface for managing website presentation settings”的共同转让的美国专利申请号62/506,685,该专利申请的全部内容以引用方式并入本文。
[0100] 系统还可监视各种用户交互,这些交互为偏好禁用自动播放的用户提供指示。例如,用户动作可包括在将媒体内容展示给用户的预先确定的时间值内中断媒体内容的自动播放。例如,中断自动播放可包括停止或暂停媒体内容,以及静音或将音量降低到某一水平(例如,低于百分比或值形式的阈值)。又如,用户交互可包括使应用程序或与该网页相关联的标签关闭或最小化。此外,用户交互可包括执行系统功能,诸如启用系统静音或降低系统音量。又如,在禁用自动播放的情况下,用户交互可包括导航(例如,滚动)离开被设置为自动播放的内容项而不选择播放媒体内容。
[0101] 此外,用户交互可包括可利用设备的一个或多个传感器监视的各种交互。例如,设备上的各种传感器可监视用户参与或脱离。例如,用户位于设备附近并且与设备主动交互可推断一定程度的参与。相反地,用户将目光从设备移开或远离设备移动可推断一定程度的脱离。因此,可利用设备的一个或多个传感器确定或推断用户的行为。
[0102] 此外,应当注意的是,除了上面讨论的类别之外,也可使用其他类别。例如,也可使用提供一定程度的偏好的类别(例如,非常强、强、弱、非常弱)或任何其他分类技术。
[0103] 一旦收集了用户交互数据,就可将其发送到服务器进行分析。如本文所述,系统可通过实现差分隐私机制确保用户隐私。此外,为了进一步保护用户的隐私,只能将数据采样发送到服务器。
[0104] 因此,在803中,系统可使与用户交互(例如,网页或与该网页相关联的网站)和用户交互类别(例如,启用自动播放的偏好或禁用自动播放的偏好)相关联的实体的编码私有化。编码可利用本文所述的编码技术中的任一种,并且可使用各种私有化技术中的一种掩蔽数据的各个贡献者。在一个实施方案中,使用本文所述的技术使编码差分私有化。
[0105] 在804中,系统可将差分私有化编码传输到服务器,用于估计众包数据中实体的分类频率。如上所述,服务器可执行各种运算(例如,计数均值草图)以确定频率估计。服务器可基于分类方案确定频率估计。例如,可确定其中用户偏好针对特定网页或网站启用自动播放的频率估计,以及其中用户偏好针对该网页或网站禁用自动播放的频率估计。
[0106] 图8B是示出根据本公开的实施方案的处理众包用户交互数据的过程810的示例性流程图。过程810可使用处理逻辑,该处理逻辑可包括软件、硬件或其组合。例如,过程810可由如本文所述的服务器(例如,服务器130)执行。
[0107] 在运算811中,系统可从一组客户端设备中的每一个接收实体和相关联的类别的表示的私有化编码。实体可以是网页或与该网页相关联的网站。在一个实施方案中,实体可以是网页,并且表示(例如,URL)标识与该网页相关联的网站或域。在一个实施方案中,该类别可涉及推断在网站的网页上启用或禁用媒体内容自动播放的用户偏好。在一个实施方案中,该私有化编码可为网站的标识符或定位符。在一个实施方案中,交互数据可与包括web应用程序的应用程序相关,其中web应用程序是用诸如Java或JavaScript的语言编码的网站托管应用程序,或者可作为网页加载的基于HTML5的应用程序。
[0108] 在运算812中,系统可累积从该组客户端设备接收的私有化编码的频率估计。例如,系统可使用草图诸如图4所示的频率表。
[0109] 在运算813中,系统可估计草图中包括的频率中与类别相关联的选定实体的频率。例如,如上所述,系统可使用计数均值草图运算确定频率。
[0110] 在一些实施方案中,系统还可基于所确定的频率从白名单添加或移除特定实体(例如,网页、网站),如运算814所示。例如,可将有高用户百分比(例如,超过90%)推断偏好启用自动播放的网站添加到白名单中。类似地,可将用户百分比(例如,超过50%)表示偏好禁用自动播放的网站从白名单中移除(或者添加到黑名单中)。
[0111] 如上所述,在本公开的另一方面,用户体验可通过识别表现出特定特征的特定网站加以增强。在一个实施方案中,可识别与高资源消耗相关联的网站。例如,可基于特定资源(诸如CPU、存储器和电力使用)的阈值识别高资源消耗。通过识别此类网站,开发人员可以确定哪些网站可能有问题,或者哪些网站可能是开发工作的候选网站。
[0112] 图8C是示出根据实施方案的基于资源消耗的众包数据的过程820的示例性流程图。过程820可使用处理逻辑,该处理逻辑可包括软件、硬件或其组合。例如,过程820可由如本文所述的客户端设备110执行。
[0113] 在运算821中,系统可监视与应用程序相关联的资源消耗。该应用程序可以是在客户端设备上执行的本机应用程序,或者可以是在网站上执行的web应用程序。该应用程序也可以是基于网站上的内容执行的插件应用程序,并且系统在设备浏览网站时可以监视消耗的资源。在一个实施方案中,资源消耗可包括处理器(例如,CPU、图形处理器等)的使用、存储器使用、电力使用或传输带宽使用中的一者或多者。然而,可以设想,可监视任何其他使用或统计信息。
[0114] 在运算822中,系统可确定资源消耗超过阈值。例如,如果特定进程或应用程序或与网站相关联的进程或应用程序使用了一定百分比的CPU(例如,超过20%),则可超过资源阈值。
[0115] 在运算823中,系统可使用本文所述的任何编码方法使应用程序的标识符的编码私有化,并且在一个实施方案中,使一个或多个使用类别私有化。就web应用程序、插件或另一个web相关应用程序而言,标识符可包括网站或网页的名称或URL。尽管可使用其他私有化和/或匿名化技术,但该系统可使用本文所述的差分隐私技术使编码私有化。
[0116] 在运算824中,系统可将差分私有化编码传输至服务器。如上所述,服务器可执行各种运算(例如,计数均值草图)以确定频率估计。例如,服务器可确定超过特定阈值的应用程序和/或网站的频率。又如,服务器可确定落入特定阈值范围或存储区内的应用程序和/或网站的频率,如图8E所示。
[0117] 图8D是示出根据本公开的实施方案的基于资源消耗的处理众包数据的过程840的示例性流程图。过程840可使用处理逻辑,该处理逻辑可包括软件、硬件或其组合。例如,过程840可由如图1的系统100中的服务器130执行。
[0118] 在841中,系统可从一组客户端设备中的每一个接收应用程序或网站的标识符的私有化编码。响应于超过资源消耗阈值,选择每个应用程序或网站进行传输。该标识符可为应用程序名称、网站或应用程序名称和网站。
[0119] 在842中,系统可累积从该组客户端设备接收的私有化编码的频率估计。频率估计可包括草图,诸如如图4所示的频率表。
[0120] 在843中,系统可估计选定应用程序、网站或网站网页的超过特定阈值的频率。例如,如上所述,系统可使用计数均值草图运算确定频率。
[0121] 在一些实施方案中,844中的系统还可基于对资源消耗使用模式的分析调节资源消耗阈值。例如,系统可确定超过预先确定的阈值的网站的百分比在一段时间(例如,几个月)内已增加。因此,可基于对众包数据的持续分析动态地调节(例如,增加)触发指示高资源消耗的指示的预先确定的阈值。
[0122] 图8E显示了根据实施方案的示例性图示,其示出了可从众包资源消耗数据中导出的各种使用和频率信息。例如,如图所示,可确定在CPU使用率和内存使用率的特定层级内的网站数目852。此外,还可如图所示确定超过特定阈值的多个网站。又如,也可确定表现出特定特征的网站855的频率857。例如,可监视特定网站可能导致应用程序崩溃的频率,并且可跟踪对最受欢迎的网站的访问频率。应当注意的是,这些示例仅是例示性的,并且根据特定应用可使用无数的其他度量。
[0123] 图8F示出了根据本文所述的实施方案的内容的展示,可针对该内容收集关于用户交互和资源消耗的众包数据。如图所示,应用程序860可在本文所述的数据处理系统或电子设备诸如图1的客户端设备110上执行。应用程序860可为图2的应用程序230A-230C中的一个,并且可产生可被私有化并作为私有化众包数据提交的用户数据。在一个实施方案中,应用程序860是web浏览器应用程序,但是可以是在电子设备或数据处理系统上执行的任何应用程序,包括在移动、手持或可穿戴电子设备上执行的移动应用程序。在一个实施方案中,应用程序860生成相对于用户与应用程序相对于应用程序展示的内容的交互的用户数据。在一个实施方案中,应用程序860例如在该应用程序展示内容诸如网页或web应用程序时生成相对于应用程序的资源消耗的数据。
[0124] 在应用程序860是web浏览器的情况下,该应用程序可用于导航至在网络诸如互联网上托管的网站。应用程序860可显示多个标签861,每个标签展示相同或不同的内容870。内容870可从托管在网站(例如,www.example.com 863)上的网页(例如,example.html 
826)展示。网页862可以是网站上的若干网页之一,而网站863可以是托管在域(例如,example.com)上的若干网站之一。网页862、网站863或域名可被包括在私有化并传输到众包服务器的用户数据的表示中。内容870可包括各种类型的内容项,包括文本内容871、872和媒体内容880。媒体内容880可将媒体项882展示为内容项,以及用于启动、暂停或停止媒体项882的回放的媒体控件884。例如,如果针对媒体项882启用自动回放,则用户可使用媒体控件884暂停媒体项的回放。用户还可使用媒体控件882启动被设置为自动播放的媒体项的回放,但是由于内容870的显示设置而阻止了自动播放。应用程序860可包括可配置内容
870的显示的设置。例如,应用程序860可包括用户界面元素864,以启用如本文所述的阅读器模式设置864。阅读器模式设置可用于将内容870的展示限制为仅某些文本内容871、822。
另外,应用程序860可向用户提供阻止内容870的特定元素的选项。
[0125] 在一个实施方案中,基于检测到的与展示的内容870的内容项(例如,媒体项882)有关的交互收集私有化众包数据。基于交互,展示的内容870可基于交互而与类别相关联。该类别可从与对所展示内容的展示的推断偏好有关的一组类别中选择。例如,应用程序860可包括控制如何展示内容870的各种设置。交互可用于将内容870放入与推断的设置相关联的类别中。例如,基于交互,内容870可与和推断的偏好有关的类别相关联,以允许媒体项
882的自动播放。内容870还可与和推断的偏好有关的类别相关联,以阻止媒体项882的自动播放。在一个实施方案中,内容可与推断的偏好相关联以进入阅读器模式。在一个实施方案中,内容可与推断的偏好相关联以防止某些内容项的显示。可在客户端设备上创建私有化编码,该编码包括展示内容870的表示和展示内容所关联的类别的表示。然后可将私有化编码传输到服务器,该服务器可累积来自多个设备的私有化编码,以估计展示内容与特定类别相关联的频率。相对于用户与内容交互的私有化数据可用于众包与内容相关联的各种显示或展示设置。可相对于用户对缩放设置、亮度设置或任何应用程序或设备设置的偏好确定类别。在一个实施方案中,可基于关于用户与用户界面元素和内容项的交互的众包数据确定用于用户界面元素或内容项的一组期望的布局。
[0126] 应当注意的是,本文所述的数据采样是示例,并且因此可以设想,可以差分私有的方式采样(例如,收集)任何类型的数据以确定各种频率或统计。例如,上述方法可同样适用于可能与系统或应用程序或服务的各种组件发生的各种用户信息或用户交互。
[0127] 因此,如上所述,本公开的机制在维护用户隐私(例如,经由本地差分隐私机制)时利用众包数据的潜力,以潜在地获得用于开发工作的宝贵见解。
[0128] 示例性应用编程接口图
[0129] 本文所述的实施方案包括环境中的一个或多个应用编程接口(API),其中调用程序代码与通过一个或多个编程接口调用的其他程序代码进行交互。各种功能调用、消息或其他类型的调用可进一步包括各种参数,这些调用可以经由调用程序和被调用代码之间的API而传输。此外,API可以给调用程序代码提供使用在API中定义的、并在被调用程序代码中实现的数据类型或类别的能力。
[0130] API允许API调用组件的开发者(可以是第三方开发者)利用由API实现组件提供的指定特征。可以有一个API调用组件或可以有多于一个此类组件。API可以是计算机系统或程序库提供的源代码接口,以便支持来自应用程序的服务请求。操作系统(OS)可具有多个API,以允许运行于OS上的应用程序调用那些API中的一个或多个API,并且服务(例如程序库)可具有多个API,以允许使用服务的应用程序调用那些API中的一个或多个API。可按照在构建应用程序时能够解译或编译的编程语言指定API。
[0131] 在一些实施方案中,API实现组件可提供多于一个API,每个API提供不同视图或具有不同方面,该不同方面访问由API实现组件实现的功能的不同方面。例如,API实现组件的一个API可提供第一函数集,并可暴露于第三方开发者,并且API实现组件的另一个API可被隐藏(不暴露)并提供第一函数集的子集,并且还提供另一函数集,诸如不在第一函数集中的测试或调试函数。在其他实施方案中,API实现组件本身可经由下层API调用一个或多个其它组件,因而既是API调用组件又是API实现组件。
[0132] API定义在访问和使用API实现组件的指定特征时API调用组件所使用的语言和参数。例如,API调用组件通过被API暴露的一个或多个API调用或引用(例如由函数或方法调用实现)访问API实现组件的指定特征,并经由API调用或引用使用参数传递数据和控制信息。API实现组件可响应于来自API调用组件的API调用而通过API返回值。尽管API定义API调用的语法和结果(例如,如何引起API调用以及API调用能干什么),但API可不揭示API调用如何完成由API调用指定的函数。经由调用(API调用组件)和API实现组件之间的一个或多个应用编程接口传输各种API调用。传输API调用可包括发出、发起、引用、调用、接收、返回或响应函数调用或消息;换句话讲,传输能够描述API调用组件或API实现组件中的任一者的动作。API的函数调用或其它引用可通过参数列表或其它结构发送或接收一个或多个参数。参数可以是常数、键、数据结构、对象、对象类、变量、数据类型、指针、数组、列表或指向函数或方法的指针或援引要经由API传递的数据或其它项目的另一种方式。
[0133] 此外,数据类型或类可由API提供并由API实现组件实现。因此,API调用部件可利用API中提供的定义声明变量、使用指向此类类型或类的指针、使用或实例化此类类型或类的恒定值。
[0134] 通常,可使用API访问由API实现组件提供的服务或数据,或者启动执行由API实现组件提供的运算或计算。以举例的方式,API实现组件和API调用组件可各自为操作系统、库、设备驱动程序、API、应用程序或其它模块(应当理解,API实现组件和API调用组件可以是彼此相同或不同类型的模块)中的任一种。在一些情况下,可至少部分地在固件微码或其它硬件逻辑部件中实现API实现组件。在一些实施方案中,API可以允许客户端程序使用由软件开发工具包(SDK)库提供的服务。在其他实施方案中,应用程序或其他客户端程序可使用由应用程序框架提供的API。在这些实施方案中,应用程序或客户端程序可将调用结合到由SDK提供和由API提供的函数或方法中,或者使用SDK中定义并由API提供的数据类型或对象。在这些实施方案中,应用程序框架可为程序提供主要事件循环,其对框架定义的各种事件作出响应。API允许应用程序利用应用程序框架指定事件和对事件的响应。在一些具体实施中,API调用能够向应用程序报告硬件设备的能力或状态,包括与诸如输入能力和状态、输出能力和状态、处理能力、电源状态、存储容量和状态、通信能力等方面相关的能力或状态,并且API可部分地由固件、微码或部分地在硬件组件上执行的其它低电平逻辑部件实现。
[0135] API调用组件可以是本地组件(即与API实现组件在同一数据处理系统上)或远程组件(即在不同于API实现组件的数据处理系统上),所述组件经由网络通过API与API实现组件进行通信。应当理解,API实现组件也可充当API调用组件(即,它可对被不同API实现组件暴露的API进行API调用),并且API调用组件也可通过实现暴露于不同API调用组件的API充当API实现组件。
[0136] API可允许以不同编程语言编写的多个API调用组件与API实现组件通信(从而API可包括用于转换API实现组件和API调用组件之间的调用和返回的特征);不过,可以特定的编程语言实现API。在一个实施方案中,API调用组件可调用来自不同提供商的API,例如来自OS提供商的一组API和来自插件提供商的另一组API,以及来自另一提供商(例如软件库的提供商)或另一组API的创建者的另一组API。
[0137] 图9是示出示例性API架构的框图,该架构可在本文描述的一些实施方案中使用。API架构900包括实现API 920的API实现组件910(例如,操作系统、库、设备驱动程序、API、应用程序、软件或其他模块)。API 920指定可由API调用组件930使用的API实现组件的一个或多个函数、方法、类、对象、协议、数据结构、格式和/或其他特征。API 920可指定至少一个调用约定,该调用约定指定API实现组件中的函数如何从API调用组件接收参数以及函数如何向API调用组件返回结果。API调用组件930(例如操作系统、库、设备驱动程序、API、应用程序、软件或其他模块)通过API 920进行API调用,以访问并使用由API 920指定的API实现组件910的特征。API实现组件910可响应于API调用而通过API 920向API调用组件930返回值。
[0138] 应当理解,API实现组件910可包括未通过API 920指定且对于API调用组件930不可用的附加函数、方法、类、数据结构和/或其他特征。应当理解,API调用组件930可与API实现组件910在同一系统上,或者可远程定位并通过网络使用API 920访问API实现组件910。尽管图9示出了单个API调用组件930与API 920交互,但应当理解,可用不同语言(或相同语言)编写的与API调用组件930不同的其他API调用组件可使用API 920。
[0139] API实现组件910、API 920和API调用组件930可以存储在机器可读介质中,其包括用于以机器(例如计算机或其他数据处理系统)可读的形式存储信息的任何机构。例如,机器可读介质包括磁盘、光盘、随机存取存储器只读存储器、闪存存储器设备等。
[0140] 图10A至图10B是根据实施方案的示例性API软件栈1000、1010的框图。图10A示出了示例性API软件栈1000,其中应用程序1002可使用服务API对服务A或服务B进行调用以及使用OS API调用操作系统1004。此外,服务A和服务B可使用若干OS API调用操作系统1004。
[0141] 图10B示出了示例性软件栈1010,包括应用程序1、应用程序2、服务1、服务2和操作系统1004。如图所示,服务2具有两个API,其中一个(服务2API 1)从应用程序1接收调用并返回值,另一个(服务2API2)从应用程序2接收调用并返回值。服务1(例如,可以是软件库)向OS API 1进行调用并接收返回的值,并且服务2(例如,可以是软件库)向OS API 1和OS API 2均进行调用并接收返回的值。应用程序2对OS API 2进行调用并接收返回的值。
[0142] 附加的示例性计算设备
[0143] 图11是根据实施方案的用于移动或嵌入式设备的设备架构1100的框图。设备架构1100包括存储器接口1102、包括一个或多个数据处理器的处理系统1104、图像处理器和/或图形处理单元以及外围设备接口1106。各种部件可通过一条或多条通信总线或信号线耦接。各种部件可以是单独的逻辑部件或设备或可以集成在一个或多个集成电路,诸如片上系统集成电路。
[0144] 存储器接口1102可耦接到存储器1150,该存储器可包括高速随机存取存储器,诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)和/或非易失性存储器,诸如但不限于闪存存储器(例如,NAND闪存、NOR闪存等)。
[0145] 传感器、设备和子系统可耦接到外围设备接口1106以促进多个功能。例如,运动传感器1110、光传感器1112和接近传感器1114可耦接到外围设备接口1106以促进移动设备功能。还可存在一个或多个生物特征传感器1115,诸如用于指纹识别的指纹扫描器或用于面部识别的图像传感器。其他传感器1116也可连接至外围设备接口1106,诸如定位系统(例如,GPS接收器)、温度传感器、或其他感测设备以促进相关的功能。可利用相机子系统1120和光学传感器1122(如电荷耦合设备(CCD)或互补金属化物半导体(CMOS)光学传感器)促进相机功能,诸如拍摄照片和视频剪辑。
[0146] 可通过一个或多个无线通信子系统1124促进通信功能,这些无线通信子系统可包括射频接收器和发射器和/或光学(例如,红外)接收器和发射器。无线通信子系统1124的具体设计与实现可取决于移动设备打算通过其操作的通信网络。例如,包括示出的设备架构1100的移动设备可包括设计用于通过GSM网络、CDMA网络、LTE网络、Wi-Fi网络、Bluetooth网络或任何其他无线网络操作的无线通信子系统1124。具体地讲,无线通信子系统1124可提供通信机构,在该通信机构中,媒体回放应用程序可从远程媒体服务器检索资源或从远程日历或事件服务器检索调度事件。
[0147] 可将音频子系统1126耦接到扬声器1128和麦克1130以促进支持语音的功能,诸如语音识别、语音复制、数字记录和电话功能。在本文描述的智能媒体设备中,音频子系统1126可以是包括支持虚拟环绕声的高质量音频系统。
[0148] I/O子系统1140可包括触摸屏控制器1142和/或其他输入控制器1145。对于包括显示设备的计算设备,触摸屏控制器1142可耦接到触敏显示器系统1146(例如,触摸屏)。触敏显示系统1146和触摸屏控制器1142可例如使用多种触摸和压力感测技术的任何一种检测接触和运动或压力,触摸和压力感测技术包括但不限于电容性、电阻性、红外和表面声波技术,以及用于确定与触敏显示系统1146接触的一个或多个点的其他接近传感器阵列或其他元件。触敏显示系统1146的显示输出可由显示控制器1143生成。在一个实施方案中,显示控制器1143可以可变的速率向触敏显示器系统1146提供帧数据。
[0149] 在一个实施方案中,包括传感器控制器1144以监视、控制和/或处理从运动传感器1110、光传感器1112、接近传感器1114或其他传感器1116中的一者或多者接收的数据。传感器控制器1144可包括逻辑解释传感器数据,以通过分析来自传感器的传感器数据确定多个运动事件或活动中的一者的发生。
[0150] 在一个实施方案中,I/O子系统1140包括可耦接到其他输入/控制设备1148的一个或多个其他输入控制器1145,诸如一个或多个按钮、摇臂开关、拇指滚轮、红外端口、USB端口,和/或诸如触笔的指针设备,或诸如用于扬声器1128和/或麦克风1130的音量控制的上/下按钮的控制设备。
[0151] 在一个实施方案中,耦接到存储器接口1102的存储器1150可存储操作系统1152的指令,包括便携式操作系统接口(POSIX)兼容和不兼容的操作系统或嵌入式操作系统。操作系统1152可包括用于处理基础系统服务以及用于执行硬件相关任务的指令。在一些具体实施中,操作系统1152可以是内核
[0152] 存储器1150还可以存储通信指令1154以促进与一个或多个附加设备、一个或多个计算机和/或一个或多个服务器的通信,例如从远程web服务器获取web资源。存储器1150还可包括用户界面指令1156,包括图形用户界面指令以有利于图形用户界面处理。
[0153] 此外,存储器1150可存储传感器处理指令1158以促进传感器相关处理和功能;促进与电话相关的过程及功能的电话指令1160;促进与电子消息处理相关的过程及功能的即时消息指令1162;促进与网页浏览相关的过程及功能的网页浏览器指令1164;促进与媒体处理相关的过程和功能的媒体处理指令1166;位置服务指令包括GPS和/或导航指令1168和基于Wi-Fi的位置指令以促进基于位置的功能性;促进与相机相关的过程和功能的相机指令1170;和/或其他软件指令1172,以有利于其他过程和功能,例如安全过程和功能以及与系统相关的过程和功能。存储器1150还可以存储其他软件指令,诸如促进与web视频相关的过程和功能的web视频指令;和/或促进与网络购物相关的过程和功能的网络购物指令。在一些具体实施中,媒体处理指令1166分为音频处理指令和视频处理指令,以分别用于促进与音频处理相关的过程和功能以及与视频处理相关的过程和功能。移动设备标识符,诸如国际移动设备身份(IMEI)1174或类似的硬件标识符也可存储在存储器1150中。
[0154] 上面所识别的指令和应用程序中的每一者可对应于用于执行上述一个或多个功能的指令集。这些指令不需要作为独立的软件程序、过程或模块加以实现。存储器1150可包括附加指令或更少的指令。此外,可在硬件和/或软件中,包括在一个或多个信号处理和/或专用集成电路中,执行各种功能。
[0155] 图12是示出可以结合本文所述的实施方案中的一个或多个使用的计算系统1200的框图。所示计算系统1200可表示本文所述的执行本公开的任何过程、操作或方法的任何设备或系统(例如,客户端设备110、服务器130)。需注意,虽然计算系统例示了各种部件,但是其并不旨在表示部件的任何特定架构或者部件的互连方式,因为此类细节与本公开并无密切关系。还应理解,也可以将与图示相比具有更少或更多部件的其他类型的系统与本公开结合使用。
[0156] 如图所示,计算系统1200可包括总线1205,该总线可耦接到处理器1210、ROM(只读存储器)1220、RAM(或易失性存储器)1225和存储装置(或非易失性存储器)1230。处理器1210可从存储器1220、1225和1230中的一者或多者检索所存储的指令并执行指令,以执行本文所述的过程、操作或方法。这些存储器表示包含指令的非暂态机器可读介质(或者计算机可读介质)或存储装置,指令在通过计算系统(或者处理器)执行时使计算系统(或处理器)执行本文所述的操作、过程或方法。RAM 1225可以被实施为例如动态RAM(DRAM)或者需要持续供电以刷新或保持存储器内的数据的其他类型的存储器。存储装置1230可包括例如磁性存储装置、半导体存储装置、磁带存储装置、光学存储装置、可拆卸存储装置、不可拆卸存储装置以及其他类型的即使在去除对系统的供电之后仍然保持数据的存储装置。应当理解,存储装置1230可以相对于系统处于远程位置(例如,可经由网络访问)。
[0157] 显示控制器1250可以耦接到总线1205,以便接收将要在显示设备1255上显示的显示数据,该显示设备可显示用户界面特征或本文所述实施方案中的任一者,并且可以是本地或远程显示设备。计算系统1200还可包括一个或多个输入/输出(I/O)部件1265,包括鼠标、键盘、触摸屏、网络接口、打印机、扬声器和其他设备。通常,输入/输出部件1265通过输入/输出控制器1260耦接到系统。
[0158] 模块1270(或部件、单元、功能或逻辑)可表示上述任何功能或引擎,诸如差分隐私引擎228。模块1270可以完全或者至少部分地驻留在上文所述的存储器内,或者在计算系统对其执行期间驻留在处理器内。此外,模块1270可以被实施为软件、固件或计算系统内的功能电路或者它们的组合。
[0159] 在一些实施方案中,本文所述的散列函数(例如,SHA256)可利用系统(客户端设备或服务器)的专用硬件电路(或固件)。例如,该函数可以是硬件加速函数。此外,在一些实施方案中,系统可使用作为专用指令集的一部分的函数。例如,可使用指令集,该指令集可为针对特定类型的微处理器的指令集架构的扩展。因此,在一个实施方案中,该系统可提供用于执行SHA运算的硬件加速机制。因此,该系统可使用这些指令集提高执行本文所述功能的速度。
[0160] 此外,硬件加速引擎/功能被设想为包括硬件、固件或其组合中的任何实现,包括各种配置,这些配置可包括作为单独处理器集成到SoC中的硬件/固件,或者包括为专用CPU(或核心),或者集成到电路板上的协处理器中,或者包含在扩展电路板的芯片上,等等。
[0161] 因此,尽管不一定需要这种加速功能实现差分隐私,但是本文的一些实施方案可利用对这种功能(例如,密码功能)的专支持的普遍性潜在地提高实现的整体效率。
[0162] 应当注意的是,术语“约”或“大体上”可以在本文中使用,并且可以解释为“几乎尽可能”、“在技术的限制下”等。另外,除非另有说明,否则术语“或”的使用指示包含性的或(例如,和/或)。
[0163] 在前面的说明中,已经描述了本公开的示例性实施方案。显而易见的是,在不脱离本公开的更广泛的实质和范围的情况下,可对其进行各种修改。相应地,说明书和附图被视为是例示性意义而不是限定性意义。所提供的描述和示例中的具体细节可用于一个或多个实施方案中的任何地方。不同实施方案或示例的各种特征可与所包括的一些特征和排除的其他特征不同地组合,以适应多种不同的应用。示例可包括主题,诸如方法,用于执行该方法的行为的装置,包括指令的至少一种机器可读介质,所述指令在由机器执行时使得机器执行该方法的行为,或者根据本文所述的实施方案和示例执行装置或系统的动作。另外,本文描述的各种部件可以是用于执行本文描述的运算或功能的装置。
[0164] 在本公开的一个方面中,描述了一种系统(和方法),该系统(和方法)在将数据传输到估计一组客户端设备中的此类数据的频率的服务器时,确保差分隐私。差分隐私在仍然提供关于隐私和效用的可证明保证时可减少资源需求。例如,该机制可提供根据资源需求(例如,传输带宽和计算复杂性)定制效用(例如,估计的精度)的能力。为了考虑减少的资源需求(例如,减少的编码的位长度),该机制可使用计数均值草图估计数据的频率,如本文进一步所述。
[0165] 相对于资源需求,该机制可实现散列函数,该散列函数通过仅使用所生成的散列值的一部分提供减少计算需求的能力。为了避免散列冲突仅使用散列值的一部分,该机制可在对用户数据进行散列时使用变体。变体的使用允许该机制实现共享散列,以减少客户端和服务器必须执行的所需计算的数量。相对于效用,该机制在包括下限和上限的可预测偏差内提供频率估计。
[0166] 在本公开的另一方面,描述了使用本文所述的隐私机制收集众包数据以增强用户体验的系统和方法。例如,用户体验可通过从分析众包的用户交互数据中推断潜在用户偏好加以增强。基于对与各种特征或事件有关的用户交互的统计分析,可以相对于应用程序行为完善或增强开发工作。用于私有化众包用户数据的私有化技术不限于差分隐私技术。例如,可采用安全多方计算和/或同态加密实现众包数据的私有化。
[0167] 在一个实施方案中,可分析与内容诸如来自在线源的内容的展示有关的用户交互。例如,可基于众包用户交互数据定义展示设置或偏好。
[0168] 在一个实施方案中,展示设置可包括媒体内容的自动播放设置,从而使得能够分析与媒体内容的自动播放有关的众包数据。例如,系统可确定或推断相对于特定网站启用或禁用自动播放媒体内容的众包偏好。包括在访问网站时立即停止或静音自动播放媒体项的用户交互可被视为推断禁用自动播放的偏好。相反,当访问禁用了媒体内容的自动播放(例如,通过默认系统设置或偏好)的网页,并且用户选择播放禁用了自动播放的媒体内容时,可推断用户偏好在此类网站上启用自动播放。因此,从各种设备收集此类用户交互数据并在服务器上分析数据(例如,经由本地差分隐私机制)允许开发者潜在地获得对特定网站的有价值的见解。例如,可将具有提供启用自动播放偏好推断的高估计用户频率的网站添加到“白名单”(例如,允许或启用自动播放功能的网站的列表)。
[0169] 此外,还可分析与内容的展示有关的其他设置。例如,还可利用本文所述的差分隐私机制分析附加展示设置诸如内容显示设置(例如,阅读器模式设置)或内容阻止设置。
[0170] 在另一方面,用户体验还可通过识别表现出特定特征的特定网站加以增强。在一个实施方案中,可识别与高资源消耗相关联的网站。例如,可基于资源诸如CPU、存储器和电力使用的阈值识别高资源消耗。通过识别此类网站,开发人员可以确定哪些网站可能有问题,或者是用于分析的潜在候选网站,以识别高资源消耗的原因。
[0171] 在上述说明书中,已描述隐私技术。然而显而易见的是,在不脱离本发明的更广泛的实质和范围的情况下,可对其进行各种修改和变更。相应地,说明书和附图应被视为具有例示性的而非限制性的意义。所提供的描述和示例中的具体细节可用于一个或多个实施方案中的任何地方。不同实施方案或示例的各种特征可与所包括的一些特征和排除的其他特征不同地组合,以适应多种不同的应用。示例可包括主题,诸如方法,用于执行该方法的行为的装置,包括指令的至少一种机器可读介质,所述指令在由机器执行时使得机器执行该方法的行为,或者根据本文所述的实施方案和示例执行装置或系统的动作。此外,本文描述的各种部件可为用于执行根据实施方案所描述的运算或功能的装置。因此,在研究附图、说明书和所附权利要求时,这些实施方案的真正范围对于技能熟练的从业人员来说是显而易见的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈