使用Podium机制的数据隐私

文档序号:144482 发布日期:2021-10-22 浏览:11次 >En<

阅读说明:本技术 使用Podium机制的数据隐私 (Data privacy using a Podium mechanism ) 是由 V·皮赫尔 于 2020-02-28 设计创作,主要内容包括:提供了用于执行操作的系统和方法,该操作包括:存储输入数据集合;基于两步函数生成噪声分布,其中,两步函数的高度由隐私参数确定,两步函数的宽度通过最小化噪声分布的方差确定,其中,两步函数的均值由将要私有化的输入数据集的值确定;将噪声分布应用于输入数据集合以生成私有化的噪声输出数据;以及响应于对输入数据的一部分或完整集合的请求,发送所得的私有化的噪声输出数据。(Systems and methods are provided for performing operations comprising: storing the input data set; generating a noise distribution based on a two-step function, wherein a height of the two-step function is determined by a privacy parameter and a width of the two-step function is determined by minimizing a variance of the noise distribution, wherein a mean of the two-step function is determined by a value of an input data set to be privatized; applying a noise profile to the input data set to generate privatized noise output data; and transmitting the resulting privatized noisy output data in response to a request for a portion or the complete set of input data.)

具体实施方式

以下描述包括体现本公开的说明性实施例的系统、方法、技术、指令序列和计算机器程序产品。在以下描述中,为了解释的目的,阐述了许多具体细节以提供对各种实施例的理解。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节的情况下实践实施例。通常,不必详细显示众所周知的指令实例、协议、结构和技术。

典型的系统采用多种机制来保护它们收集的用户数据免于暴露。此类机制通常被称为差分隐私,该差分隐私将随机数据引入一组用户数据,以防止敏感用户信息的暴露。差分隐私是一种统计技术,其旨在提供一种手段,以最大化来自统计数据库的查询的准确性,同时衡量(并因此希望最小化)对其信息在数据库中的个人的隐私影响。

典型的系统将随机数据引入到一组存储的用户数据中以使用拉普拉斯机制或Staircase机制保护用户数据免于暴露。拉普拉斯机制通过添加来自均值为0且尺度的拉普拉斯分布的噪声来确保∈-差分隐私(也称为差分隐私),其中对于用户数据x集合并且∈是小于1的隐私参数。添加噪声使得:

其中L是具有如下定义的概率密度函数的随机变量:

Staircase机制从具有如下定义的概率密度函数的均匀随机变量的几何混合中采样:

其中

并且

该机制在几个假设下运作良好,并被推导出来最小化l1或l2(方差)损失函数。它假设输出的域是整条实线,并且输入具有Δ的灵敏度。Staircase机制的噪声分布不会根据输入x而变化,并且该机制针对使用相同分布的单个函数形式进行优化,无论噪声是否添加到0,或

虽然两种先前的方法通常都运行良好,但它们都在整条实线上生成值,这会由于极端异常值的可能性而导致效率损失。此外,Staircase机制涉及复杂的代数运算来计算其参数,这增加了计算复杂性和噪声生成的滞后。

所公开的实施例通过解决现有方法在用户数据中生成噪声的这些缺点来提高使用电子设备的效率。特别地,所公开的实施例使用例如从截断分布生成噪声的Podium分布或机制而不是在整个实线上生成噪声的拉普拉斯机制,来生成基于用户数据本身的噪声分布。所公开的方法通过提供较小的方差来提高表示用户数据优于现有方法的准确性。所公开的噪声分布从“截断”分布中采样,这意味着它的支持不是整条实线,而是通过以优于现有方法的改进方式聚焦噪声来尽可能接近地匹配灵敏度Δ。此外,分布的形状取决于输入值而变化,这确保噪声以x为中心。可以预先计算所公开的噪声分布的某些参数,当使用噪声分布生成噪声值时,这降低了运行期间的计算复杂性和滞后。

在一些实施例中,存储输入数据集合并且基于两步函数生成噪声分布。两步函数的高度由隐私参数确定,两步函数的宽度通过最小化噪声分布的方差确定,并且两步函数的均值由将要私有化的输入数据集合确定。噪声分布被应用于输入数据集合以生成私有化的噪声输出数据,并且响应于对输入数据的一部分或完整集合的请求而发送所得到的私有化的噪声输出数据。

图1是示出用于通过网络106交换数据(例如,消息和相关联内容)的示例消息传递系统100的框图。消息传递系统100包括多个客户端设备102,每个客户端设备托管多个应用,包括消息传递客户端应用104和数据隐私应用105。每个消息传递客户端应用104经由网络106(例如,互联网)通信地耦合到消息传递客户端应用104的其它实例、数据隐私应用105和消息传递服务器系统108。

因此,每个消息传递客户端应用104和数据隐私应用105能够经由网络106与另一个消息传递客户端应用104和数据隐私应用105以及与消息传递服务器系统108通信和交换数据。在消息传递客户端应用104、数据隐私应用105之间以及在消息传递客户端应用104和消息传递服务器系统108之间交换的数据包括功能(例如,调用功能的命令)以及有效载荷数据(例如,文本、音频、视频,或其它多媒体数据)。

数据隐私应用105是包括允许客户端设备102访问数据隐私系统124的一组功能的应用。在一些实现方式中,数据隐私应用105是作为消息传递客户端应用104的一部分的组件或特征。数据隐私应用105允许给定用户请求访问用户数据集合或对用户数据集合进行统计分析。例如,用户数据可以表示一组用户的年龄并且数据隐私应用105可以请求这组用户的平均年龄。数据隐私应用105与数据隐私系统124通信,该数据隐私系统124将噪声分布应用于数据集合(例如,使用Podium机制)以添加随机数据并生成与请求对应的结果。例如,结果可以表示考虑了添加的随机数据的用户的平均年龄。通过添加随机数据,特定用户的数据不会响应于请求而暴露。

消息传递服务器系统108经由网络106向具体消息传递客户端应用104提供服务器端功能。虽然消息传递系统100的某些功能在此被描述为由消息传递客户端应用104或由消息传递服务器系统108来执行,但是可以理解,消息传递客户端应用104或消息传递服务器系统108内的某些功能的位置是设计选择。例如,技术上优选的是在消息传递服务器系统108内初始部署某些技术和功能,但稍后在客户端设备102具有足够的处理能力的情况下将该技术和功能迁移到消息客户端应用104。

消息传递服务器系统108支持提供给消息传递客户端应用104的各种服务和操作。此类操作包括向消息传递客户端应用104发送数据,从消息传递客户端应用104接收数据、以及处理由消息传递客户端应用104生成的数据。该数据例如可包括消息内容、客户端设备信息、地理位置信息、媒体注释和覆盖、虚拟对象、消息内容持久性条件、社交网络信息和直播事件信息。消息传递系统100内的数据交换经由消息传递客户端应用104的用户界面(UI)可用的功能来调用和控制。

现在转到消息传递服务器系统108,应用程序接口(API)服务器110耦接到应用服务器112并向应用服务器112提供编程接口。应用服务器112通信地耦接到数据库服务器118,该数据库服务器118便于访问数据库120,在该数据库120中存储与由应用服务器112处理的消息相关联的数据。

具体地处理API服务器110,该服务器110在客户端设备102和应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,API服务器110提供可由消息传递客户端应用104调用或查询的一组接口(例如,例程和协议),以便调用应用服务器112的功能。API服务器110显现由应用服务器112支持的各种功能,各种功能包括账户注册;登录功能;经由应用服务器112从具体消息传递客户端应用104向另一个消息传递客户端应用104发送消息;从消息传递客户端应用104向消息传递服务器应用114发送媒体文件(例如,图像或视频),并且用于由另一消息传递客户端应用104的可能访问;设置媒体数据的集合(例如,故事);取得此类集合;取得客户端设备102的用户的朋友列表;取得消息和内容;对社交图添加和删除朋友;朋友在社交图内的定位;访问用户对话数据;访问存储在消息传递服务器系统108上的头像信息;以及打开应用事件(例如,与消息传递客户端应用104有关的事件)。

应用服务器112托管多个应用和子系统,包括消息传递服务器应用114、图像处理系统116、社交网络系统122以及数据隐私系统124。消息传递服务器应用114实现多种消息处理技术和功能,特别是与从消息传递客户端应用104的多个实例接收的消息中包括的内容(例如,文本和多媒体内容)的聚合和其它处理有关的技术和功能。如将进一步详细描述的,来自多个源的文本和媒体内容可以聚合成内容集合(例如,称为故事或图库(gallery))。然后,由消息传递服务器应用114使这些集合对于消息传递客户端应用104可用。鉴于用于其它处理器和存储器密集的数据处理的硬件要求,还可以由消息传递服务器应用114在服务器端执行此类处理。

应用服务器112还包括图像处理系统116,该图像处理系统116专用于执行各种图像处理操作,典型地执行针对在消息传递服务器应用114处的消息的有效载荷内接收的图像或视频的各种图像处理操作。图像处理系统116的一部分也可以由数据隐私系统124实现。

社交网络系统122支持各种社交网络功能服务,并使这些功能和服务对于消息传递服务器应用114可用。为此,社交网络系统122维护和访问数据库120内的实体图。由社交网络系统122支持的功能和服务的示例包括消息传递系统100中的与具体用户具有关系或特定用户“关注”的其它用户的标识,以及具体用户的其它实体和兴趣的标识。此类其他用户可称为用户的朋友。社交网络系统122可以访问与每个用户的朋友相关联的位置信息,以确定他们住在哪里或当前在地理上位于何处。社交网络系统122可以为用户的每个朋友维护位置简档,指示用户的朋友居住的地理位置。

应用服务器112通信地耦接到数据库服务器118,该数据库服务器118便于访问数据库120,在数据库120中存储与由消息传递服务器应用114处理的消息相关联的数据。数据库120可以是第三方数据库。例如,应用服务器112可以与第一实体相关联,并且数据库120或数据库120的一部分可以由不同的第二实体相关联和托管。在一些实现方式中,数据库120存储第一实体收集的关于由第一实体提供的服务的各个用户的用户数据。例如,用户数据包括用户名、密码、地址、朋友、活动信息、偏好、用户消费的视频或内容等。数据可由用户自愿提供或可由第一实体自动收集并存储在数据库120中。在一些实现方式中,数据由用户提供以用于使用第一实体提供的服务的具体功能。在一些情况下,同一数据可由第一实体提供的另一个新功能或特征或服务使用。用户可能对第一实体提供的新功能或特性或服务感兴趣,也可能不感兴趣,并且因此,在未经用户明确许可的情况下用户数据的使用方式可能会受到限制。通常根据隐私法规对这些使用进行控制和监管。

图2是示出根据某些示例实施例的可以存储在消息传递服务器系统108的数据库120中的数据的示意图200。虽然数据库120的内容被示为包括多个表,但是应当理解,数据可以存储在其它类型的数据结构中(例如,作为面向对象的数据库)。

数据库120包括存储在消息表214内的消息数据。实体表202存储实体数据,包括实体图204。实体(其记录被维护在实体表202内)可以包括个人、公司实体、组织、对象、地点、事件等。无论何种类型,与消息传递服务器系统108存储与其相关数据的任何实体可以是被识别的实体。每个实体被提供唯一标识符,以及实体类型标识符(未示出)。

实体图204另外存储关于实体之间的关系和关联的信息。仅用于示例,此类关系可以是社交的、专业的(例如,在共同的公司或组织工作)、基于兴趣的、或基于活动的。

消息表214可以存储用户与一个或多个朋友或实体之间的对话的集合。消息表214可以包括每个会话的各种属性,诸如参与者列表、会话大小(例如,用户数量和/或消息数量)、会话的聊天颜色、会话的唯一标识符,以及任何其他与对话相关的特征。

数据库120还在注释表212中以滤镜的示例形式存储注释数据。数据库120还存储在注释表212中接收的注释内容。滤镜(其数据存储在注释表212内)关联于并应用于视频(其数据存储在视频表210中)和/或图像(其数据存储在图像表208中)。在一个示例中,滤镜是在向接收者用户呈现期间显示为覆盖在图像或视频上的覆盖物。滤镜可以是各种类型的,包括来自滤镜图库的用户选择的滤镜,滤镜图库当发送用户编写消息时由消息传递客户端应用104向发送用户呈现。其它类型的滤镜包括地理位置滤镜(也称为地理滤镜),其可以基于地理位置呈现给发送用户。例如,基于由客户端设备102的全球定位系统(GPS)单元确定的地理位置信息,消息传递客户端应用104可以在UI内呈现特定于邻域或特定位置的地理位置滤镜。另一类型的滤镜是数据滤镜,其可以基于由客户端设备102在消息创建过程期间收集的其它输入或信息,由消息传递客户端应用104选择性地呈现给发送用户。数据滤镜的示例包括特定位置处的当前温度、发送用户正在行进的当前速度、客户端设备102的电池寿命或当前时间。

可以存储在图像表208内的其它注释数据是所谓的“镜头”数据。“镜头”可以是可以添加到图像或视频中的实时特殊效果和声音。

如上所述,视频表210存储视频数据,在一个实施例中,视频数据与消息(该消息的记录被维护在消息表214内)相关联。类似地,图像表208存储与消息(该消息的消息数据被存储在实体表202中)相关联的图像数据。实体表202可以将来自注释表212的各种注释与存储在图像表208和视频表210中的各种图像和视频相关联。

用户数据集合207存储先前收集的关于应用服务器112的多个用户的数据。此类数据包括由多个用户提供的任何个人信息和关于用户的交互数据。例如,数据表示每个用户已经观看或消费了哪些视频或内容,以及内容消费了多长时间。该数据表示以下中的任何一个:每个用户的头像特征、每个用户的当前位置、关于每个用户的人口统计信息、每个用户在社交网络系统122上的朋友列表、每个用户的出生日期、信用卡号、社会保障号、每个用户访问消息传递客户端应用104的频率、每个用户的一个或多个用户设备捕获的图片和视频、和/或其任何组合。

噪声分布参数209存储包括数据隐私系统124使用的参数和/或随机数据的数据库。例如,噪声分布参数209存储图8中所示的表,该表包括先前计算的噪声分布函数(例如,Podium机制)的参数。具体地,噪声分布参数209可以存储具有与不同隐私参数∈、分布参数d、输入数据集合的扩展Δ、两步函数的宽度w、乘性裕度m和无约束参数s对应的值的列表的表。通过存储预先计算的这些参数,可以提高由噪声分布生成随机变量的效率和速度。

故事表206存储关于消息的集合和被编译成集合(例如,故事或图库)的关联图像、视频或音频数据的数据。具体集合的创建可由具体用户(例如,在实体表202中为其维护记录的每个用户)发起。用户可以以该用户已经创建和发送/广播的内容集合的形式创建“个人故事”。为此,消息传递客户端应用104的UI可以包括用户可选择的图标以使得发送用户能够将特定内容添加到他或她的个人故事。

集合还可以构成“直播故事”,其是来自多个用户的通过手动、自动或使用手动和自动技术的组合创建的内容集合。例如,“直播故事”可以构成来自不同位置和事件的用户提交的内容的策展流。例如,可以经由消息传递客户端应用104的UI向用户(该用户的客户端设备启用了位置服务并且其在具体时间处于公共位置事件处)呈现选项,以针对具体的直播故事贡献内容。可以由消息传递客户端应用104基于他或她的位置向用户识别直播故事。最终结果是从共同体角度讲述的“直播故事”。

另一种类型的内容集合被称为“位置故事”,其使得用户(该用户的客户端设备102位于特定地理位置(例如,在学院或大学校园内))能够对特定集合做出贡献。在一些实施例中,对位置故事的贡献可能需要第二级认证,以验证终端用户属于特定组织或其它实体(例如,是大学校园中的学生)。

图3是示出根据一些实施例中的一些的消息300的结构的示意图,该消息300由消息传递客户端应用104生成,用于与另一消息传递客户端应用104或消息传递服务器应用114进行通信。具体消息300的内容用于填充存储在数据库120内可由消息传递服务器应用114访问的消息表214。类似地,消息300的内容作为客户端设备102或应用服务器112的“在途中”或“在飞行中”的数据存储在存储器中。消息300被示为包括以下组件:

·消息标识符302:识别消息300的唯一标识符。

·消息文本有效载荷304:由用户经由客户端设备102的UI生成并且包括在消息300中的文本。

·消息图像有效载荷306:由客户端设备102的相机组件捕获或从客户端设备102的存储器取得并且包括在消息300中的图像数据。

·消息视频有效载荷308:由相机组件捕获或从客户端设备102的存储器组件取得并且包括在消息300中的视频数据。

·消息音频有效载荷310:由麦克风捕获或从客户端设备102的存储器组件取得并且包括在消息300中的音频数据。

·消息注释312:表示要应用于消息300的消息图像有效载荷306、消息视频有效载荷308或消息音频有效载荷310的注释的注释数据(例如,滤镜、贴纸或其它增强)。

·消息持续时间参数314:参数值,指示消息的内容(例如,消息图像有效载荷306、消息视频有效载荷308、消息音频有效载荷310)将经由消息传递客户端应用104呈现或使用户可访问的以秒为单位的时间量。

·消息地理位置参数316:与消息的内容有效载荷相关联的地理位置数据(例如,纬度和经度坐标)。多个消息地理位置参数316值可以包括在有效载荷中,这些参数值中的每一个参数值关于内容(例如,消息图像有效载荷306内的特定图像,或消息视频有效载荷308中的特定视频)中包括的内容项相关联。

·消息故事标识符318:识别与消息300的消息图像有效载荷306中的特定内容项相关联的一个或多个内容集合(例如,“故事为)的标识符值。例如,消息图像有效载荷306内的多个图像可以各自使用标识符值与多个内容集合相关联。

·消息标签320:每个消息300可以用多个标签标记,该标签中的每个标签指示消息有效载荷中包括的内容的主题。例如,在消息图像有效载荷306中包括的特定图像描绘动物(例如,狮子)的情况下,标签值可以被包括在指示相关动物的消息标签320内。标签值可以基于用户输入手动生成,或者可以使用例如图像识别来自动生成。

·消息发送者标识符322:指示客户端设备102的用户的标识符(例如,消息传递系统标识符、电子邮件地址或设备标识符),在该客户端设备102上生成消息300并且从该客户端设备102发送消息300。

·消息接收者标识符324:指示消息300被寻址到的客户端设备102的用户的标识符(例如,消息传递系统标识符、电子邮件地址或装置标识符)。在多个用户之间进行对话的情况下,该标识符可以指示参与对话的每个用户。

消息300的各种组件的内容(例如,值)可以是指向其中存储内容数据值的表中的位置的指针。例如,消息图像有效载荷306中的图像值可以是指向图像表208内的位置(或地址)的指针。类似地,消息视频有效载荷308内的值可以指向存储在视频表210内的数据,存储在消息注释312内的值可以指向存储在注释表212中的数据,存储在消息故事标识符318内的值可以指向存储在故事表206中的数据,以及存储在消息发送者标识符322和消息接收者标识符324中的值可以指向存储在实体表202中的用户记录。

图4是示出根据示例实施例的示例数据隐私系统124的框图。数据隐私系统124包括用户数据输入模块414、噪声分布模块416、噪声分布模式选择模块417和结果生成模块418。

用户数据输入模块414与用户数据集合207和/或数据隐私应用105通信。用户数据输入模块414向噪声分布模块416提供输入数据集合,以向输入数据集合添加噪声或随机值。用户数据输入模块414还提供对从数据隐私应用105接收的输入数据集合的访问或统计分析的请求。不是仅使用输入数据集合以实际真实信息来响应请求,而是结果生成模块418使用附加数据来响应来自数据隐私应用105的请求,该附加数据是使用噪声分布模块416生成的。

噪声分布模块416实现Podium机制以基于从用户数据输入模块414接收的输入数据集合生成随机值。令X是从给定隐私预算或参数∈的本地隐私模型收集的连续随机变量。令M是随机机制(例如,Podium机制),该随机机制向每个原始数据点x添加方差为σ2的零均值噪声。令x′=M(x)是满足差分隐私属性的观察到的噪声数据点。在此类情况下,如果对于所有输入xi和xj以及所有输出x′,P(M(xi)=x′)≤eP(M(xj)=x′′,则随机机制M满足差分隐私。

数据收集的灵敏度(或数据的扩展)Δ可以在数据收集之前被定义为

Podium机制被实现为两步函数,其中步阶的高度由隐私参数确定,步阶的宽度通过最小化分布的方差来确定,并且其位置由输入值x或其均值指定。图6示出不同x值的四种说明性分布。具体地,图6示出对于不同输入值x(不同均值),Δ=1和E=log(9)的Podium机制。步阶从左(Δm/2)到右(Δm/2)针对介于两者之间的值呈现出不同形状。阴影区域突出显示输入值的范围。分布的支持由裕度m和灵敏度Δ定义。在该情况下,m=2.102601,并且宽度w=0.7540498。水平线602和604表示由噪声分布生成的随机值的概率,并且垂直线606表示与水平线602和604对应的值的均值。

除了隐私参数和数据集合的灵敏度之外,Podium分布还包括三个附加参数,m、w和t。第一个m是Δ上的乘性裕度,描述了分布的支持。在一些实施例中,该参数被生成为具有最小可能的m(即m=1)以允许噪声分布匹配输入和输出值的范围。例如,如果输入数据包括年龄,从13扩展到120(Δ=107),则噪声分布旨在输出相同范围内的相应噪声值。该参数仅取决于隐私参数,并通过最小化Podium分布的方差来确定。

第二参数w描述步阶的宽度。它的值也来自于方差优化。它取决于隐私参数和Δ,并且可以预先计算一次。第三参数t描述了在Podium分布的均值(μ)等于输入值x的约束下的步阶位置。该参数t的范围在Δm/2和Δm/2之间。由于它取决于x而变化,因此在收集过程期间每次都计算它(例如,每当从客户端设备102接收到对数据的请求时)。在实现方式中,为了避免受约束的优化,根据以下等式使用另一个无约束参数s对t进行参数化:

其将实际值s转换为区间[-Δm/2,Δm/2]。

在一些实施例中,为了导出Podium分布的噪声分布的形状,噪声分布模块416最小化其方差。噪声分布模块416取决于分布的均值而改变分布的形状和方差。噪声分布模块416在其均值等于Δ/2或其最极端形状的约束下执行此类最小化。噪声分布模块416分配裕度m以平衡分布。噪声分布是一种形状,其中第二参数w变成了t的函数,因为分布变成了两个均匀变量而不是三个的混合。该分布示意性地在图7中示出。如图7中所示的密度表示从对应的水平线生成值的可能性。两条水平线的比率被设置为隐私参数的函数(例如,eε)。

噪声分布模块416在Podium分布的最右边形状处执行方差优化计算并且具有两个未知数(m和s)和两个约束。第一约束是μ=Δ/2,并且第二约束是Podium函数下的面积加起来为1以成为适当分布。因为它是均值为μ的双分量混合分布,因此它的方差可以根据以下公式计算:

其中p是第一分量的比例,μ1和μ2是每个分量的均值,并且σ2和σ2是它们对应的方差。

首先,噪声分布模块416计算第一分量p的概率,其结果仅是微分参数∈和s的函数。令d为第一分量的密度(高度)。为了保证∈-差分隐私,第二分量必须等于de。在此类情况下,p可以根据以下公式计算:

噪声分布模块416可以简化该等式以确定:

此外,因为这些必须加起来为1以产生适当的密度函数,所以噪声分布模块416根据以下公式求解d:

将d代入第一分量概率得出以下等式:

这不取决于m或输入数据的范围。

由于每个分量只是区间[a,b]上的均匀随机变量,其均值由(a+b)/2给出,并且方差由(b-a)^2/12给出。因此,第一分量的均值由以下等式给出:

并且第二分量的均值由以下等式给出:

它们的方差可以根据以下等式来计算:

第二约束可以认为是该分布的均值等于Δ/2,这意味着:

并且噪声分布模块416根据以下等式计算m:

将各个部分代入上述总方差公式,在组合和重新排列项后得到:

并取一阶导数得到:

这是s中的四次函数(四次多项式)。设定等于0并求解s允许根据等式1计算s:

其中

A=(4(e2∈-e4∈))1/3

并且

二阶导数由给出,并且总是正的,因为cosh(x)的域>=1。这意味着该解是真正的全局最小值。s的值可以由s=∈/3近似,这不会影响Podium机制的隐私,并且只会影响其相对效率。

噪声分布模块416根据以下等式计算宽度参数w:

其中m和s二者对灵敏度或输入数据扩展不可知,而w与扩展成线性比例。

噪声分布模块416可以按照多种模式之一被配置以生成噪声分布。模式包括确切计算s值的确切模式和近似s值的近似模式。该模式由噪声分布模式选择模块417选择。

为了在给定收集参数∈和Δ的情况下从噪声分布模块416生成随机变量,噪声分布模块416可以预先计算m、w和d。这可以在收集过程开始之前完成一次。例如,如果噪声分布模式选择模块417选择确切模式,则s的值可以根据等式1计算或者可以从图8所示的先前存储的值表中取得。

如果噪声分布模式选择模块417选择近似模式,则s的值由噪声分布模块416计算为s=∈/3。在两种模式中,噪声分布模块416如下计算剩余参数并将它们存储在噪声分布参数209中:

结果生成模块418使用由噪声分布模块416生成的噪声分布来将噪声(例如,Podium噪声)添加到请求数据集合。在一些实施例中,由于分布的形状取决于输入值x,因此结果生成模块418对每个噪声添加来执行过程(如下所述)。唯一改变的形状参数是t,即步阶的位置。在计算t之后,结果生成模块418通过生成标准均匀随机变量来从三个混合分量中随机选择一个,并且然后在另一个均匀随机变量的帮助下从所选分量中随机选择。

在一些实施例中,结果生成模块418接收隐私参数∈、数据集合的范围Δ、参数m、w、d和x作为输入。x可以是由客户端设备102使用数据隐私应用105提供的值。结果生成模块418根据以下等式计算t:

结果生成模块418根据以下等式计算第一分量p1的概率和第二分量p2的概率:

p2=dew。

结果生成模块418生成在[0,1]中的均匀随机变量Y。结果生成模块418确定Y是否小于第一分量p1的概率。如果是,则结果生成模块418向隐私应用105返回中的均匀随机变量X1。如果Y不小于第一分量p1的概率,则结果生成模块418确定Y是否小于第一分量p1的概率和第二分量p2的概率之和。如果是,则结果生成模块418向隐私应用105返回[t,t+w)中的均匀随机变量X2。如果结果生成模块418确定Y不小于第一分量p1的概率和第二分量p2的概率之和,则结果生成模块418向隐私应用105返回中的均匀随机变量X3

由噪声分布模块416提供的噪声分布根据以下条件提供差分隐私:

当μ=0时噪声分布的方差根据以下等式计算:

在步阶最偏离中心位置的情况下,分布取最大的方差(例如,当质量的大部分位于尾部之一时,其均值等于),并且在此类情况下,根据以下等式计算方差:

在高隐私机变得制的情况下(例如,(∈→0)),步阶宽度w等于Δm(例如,Podium分布等价于区间上的均匀分布。在此类情况下,方差等于其表示完美的隐私。在低隐私机制(∈→∞)中,Podium机制具有在极右形状中等于的方差。这使得Podium机制比在低隐私机制中使用拉普拉斯机制的现有技术指数性地更高效。

图5是示出根据示例实施例的数据隐私系统124在执行过程500中的示例操作的流程图。过程500可以体现在计算机可读指令中,用于由一个或多个处理器执行,从而使得过程500的操作可以部分或全部由消息传递服务器系统108和/或数据隐私应用105的功能组件执行;相应地,下面通过参考其的示例的方式描述过程500。然而,在其它实施例中,过程500的至少一些操作可以部署在各种其它硬件配置上。因此,过程500不旨在限于消息传递服务器系统108并且可以全部或部分地由任何其它组件实现。过程500的一些或全部操作可以并行、乱序或完全省略。

在操作501处,数据隐私系统124存储输入数据集合。

在操作502处,数据隐私系统124基于两步函数生成噪声分布,其中两步函数的高度由隐私参数确定,两步函数的宽度通过最小化噪声分布的方差确定,并且其中,两步函数的均值由将要私有化的输入数据集合的值确定。

在操作503处,数据隐私系统124将噪声分布应用于输入数据集合以生成私有化的噪声输出数据。

在操作504处,数据隐私系统124响应于对输入数据的一部分或完整集合的请求而发送所得的私有化的噪声输出数据。

图8是示出示例软件架构806的框图,该软件架构可以与在此描述的各种硬件架构结合使用。图8是软件架构的非限制性示例,并且应当理解,可以实现许多其它架构以促进在此描述的功能。软件架构806可以在诸如图9的机器900的硬件上执行,该机器包括处理器904、存储器914和输入/输出(I/O)组件918等。代表性硬件层852被示出并且可以表示例如图9的机器900。代表性硬件层852包括具有相关联可执行指令804的处理单元854。可执行指令804表示软件架构806的可执行指令,包括在此所述的方法、组件等的实现方式。硬件层852还包括存储器和/或存储模块存储器/存储设备856,其也具有可执行指令804。硬件层852还可以包括其它硬件858。

在图8的示例架构中,软件架构806可以概念化为层的堆栈,其中每个层提供特定功能。例如,软件架构806可以包括诸如操作系统802、库820、框架/中间件818、应用816和呈现层814的层。在操作上,层内的应用816和/或其它组件可以通过软件堆栈调用API调用808,并响应于API调用1108接收消息812。所示的层本质上是代表性的,并且并非所有软件架构都具有所有层。例如,一些移动或专用操作系统可能不提供框架/中间件818,而其它操作系统可提供此类层。其它软件架构可以包括附加层或不同层。

操作系统802可以管理硬件资源并提供公共服务。操作系统802可以包括例如内核822、服务824和驱动器826。内核822可以充当硬件和其它软件层之间的抽象层。例如,内核822可以负责存储器管理、处理器管理(例如,调度)、组件管理、网络、安全设置等。服务824可以为其它软件层提供其它公共服务。驱动器826负责控制硬件或与底层硬件接口连接。例如,取决于硬件配置,驱动器826包括显示驱动器、相机驱动器、 驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(USB)驱动器)、驱动器、音频驱动器、电源管理驱动器等等。

库820提供由应用816和/或其它组件和/或层使用的公共基础结构。库820提供允许其它软件组件以比直接与底层操作系统802功能(例如,内核822、服务824和/或驱动器826)直接接口更容易的方式执行任务的功能。库820可以包括系统库844(例如,C标准库),其可以提供诸如存储器分配功能、字符串操作功能、数学功能等的功能。另外,库820可以包括API库846,诸如媒体库(例如,用于支持各种媒体格式的呈现和操作的库,媒体格式诸如MPREG4、H.264、MP3、AAC、AMR、JPG、PNG)、图形库(例如,可用于在显示器上的图形内容中呈现二维和三维的OpenGL框架)、数据库库(例如,可提供各种关系数据库功能的SQLite)、web库(例如,可提供web浏览功能的WebKit)等。库820还可以包括各种其它库848,以向应用816和其它软件组件/模块提供许多其它API。

框架/中间件818(有时也称为中间件)提供可由应用816和/或其它软件组件/模块使用的更高级别的公共基础结构。例如,框架/中间件818可以提供各种图形UI(GUI)功能、高级资源管理、高级位置服务等。框架/中间件818可以提供可以由应用816和/或其它软件组件/模块使用的广泛范围的其它API,其中的一些可以特定于特定操作系统802或平台。

应用816包括内置应用838和/或第三方应用840。代表性内置应用838的示例可包括但不限于联系人应用、浏览器应用、书籍阅读器应用、位置应用、媒体应用、消息传递应用和/或游戏应用。第三方应用840可以包括由特定平台的供应商以外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用,并且可以是在诸如IOSTM、ANDROIDTM的移动操作系统或其它移动操作系统上运行的移动软件。第三方应用840可以调用由移动操作系统(诸如操作系统802)提供的API调用808以促进在此描述的功能。

应用816可以使用内置操作系统功能(例如,内核822、服务824和/或驱动器826)、库820和框架/中间件818来创建UI以与系统的用户交互。可替代地或另外地,在一些系统中,与用户的交互可以通过呈现层(诸如呈现层814)发生。在这些系统中,应用/组件“逻辑”可以与和用户交互的应用/组件的方面分离。

图9是示出根据一些示例实施例的机器900的组件的框图,机器900能够从机器可读介质(例如,机器可读存储介质)读取指令并执行在此讨论的任何一个或多个方法。具体地,图9示出采用计算机系统的示例形式的机器900的图形表示,在该机器900内可以执行用于使机器900执行在此所讨论的任何一种或多种方法的指令910(例如,软件、程序、应用、小应用程序、应用软件或其它可执行代码)。这样,指令910可以用于实现在此描述的模块或组件。指令910将通用的未编程的机器900转换成被编程为以所描述的方式执行所描述和示出的功能的特定机器900。在替代实施例中,机器900作为独立装置操作或者可以耦接(例如,联网)到其它机器。在联网部署中,机器900可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力操作,或者作为对等(或分布式)网络环境中的对等机器操作。机器900可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能手机、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能家电)、其它智能设备、web装置、网络路由器、网络交换机、网络桥接器或能够顺序地或以其它方式执行指定机器900要采取的动作的指令910的任何机器。此外,尽管仅示出了单个机器900,但是术语“机器”还应被视为包括机器的集合,该机器的集合单独或联合执行指令910以实施在此所讨论的任何一种或多种方法。

机器900可以包括可以被配置为例如经由总线902彼此通信的处理器904、存储器/存储设备906和I/O组件918。在示例实施例中,处理器904(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另一处理器或其任何合适的组合)可包括例如处理器908和处理器912,它们可以执行指令910。术语“处理器”旨在包括多核处理器904,其可包括可同时执行指令的两个或更多个独立处理器(有时称为“核”)。虽然图9示出了多个处理器904,但是机器900可以包括具有单核的单处理器、具有多核的单处理器(例如,多核处理器)、具有单核的多处理器、具有多核的多处理器,或任何其组合。

存储器/存储设备906可以包括存储器914,诸如主存储器或其它存储器存储设备,以及存储单元916,两者都可由处理器904诸如经由总线902访问。存储单元916和存储器914存储体现在此描述的任何一种或多种方法或功能的指令910。指令910还可以在机器900的其执行期间完全或部分地驻留在存储器914内,存储单元916内,处理器904中的至少一个处理器内(例如,处理器的高速缓冲存储器内),或其任何合适的组合。因此,存储器914、存储单元916和处理器904的存储器是机器可读介质的示例。

I/O组件918可以包括各种各样的组件以接收输入,提供输出,产生输出,发送信息,交换信息,捕获测量等。在特定机器900中包括的特定I/O组件918将取决于机器的类型。例如,诸如移动电话的便携式机器可能包括触摸输入设备或其它此类输入机构,而无头服务器机器可能不包括此类触摸输入装置。应当理解,I/O组件918可以包括图9中未示出的许多其它组件。仅仅是为了简化以下讨论,根据功能对I/O组件918进行分组,并且分组决不是限制性的。在各种示例实施例中,I/O组件918可以包括输出组件926和输入组件928。输出组件926可以包括可视组件(例如显示器,诸如等离子显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、声学组件(例如扬声器)、触觉组件(例如,振动电动机、电阻机构)、其它信号发生器等。输入组件928可以包括字母数字输入组件(例如,键盘、配置为接收字母数字输入的触摸屏、光电键盘或其它字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其它指向仪器)、触觉输入组件(例如,物理按钮,提供触摸或触摸手势的位置和/或力的触摸屏,或其它触感输入组件)、音频输入组件(例如,麦克风)等。

在另外的示例实施例中,I/O组件918可以包括广泛的其它组件中的生物度量组件930、运动组件934、环境组件936或定位组件938。例如,生物度量组件939可以包括检测表达(例如手部表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗水或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件934可包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等。环境组件936可包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近度传感器组件(例如,检测附近物体的红外传感器)、气体传感器组件(例如,用于为了安全而检测危险气体浓度或测量大气中的污染物的气体检测传感器)或可能提供与周围物理环境相对应的指示、测量或信号的其它组件。定位组件938可包括定位传感器组件(例如,GPS接收器组件)、高度传感器组件(例如,高度计或气压计,其可以检测可以从哪个高度导出的空气压力)、取向传感器组件(例如,磁力计)等。

可以使用各种技术来实现通信。I/O组件918可以包括通信组件940,其可操作以分别经由耦接器924和耦接器922将机器900耦接到网络937或设备929。例如,通信组件940可以包括网络接口组件或其它合适的设备以与网络937接口。在进一步的示例中,通信组件940可以包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、组件(例如,低功耗)组件和其它通信组件,以经由其它模式提供通信。设备929可以是另一机器或各种外围设备中的任何一种(例如,经由USB耦接的外围设备)。

此外,通信组件940可以检测标识符或包括可操作以检测标识符的组件。例如,通信组件940可以包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,光学传感器,其用于检测诸如通用产品代码(UPC)条形码的一维条形码、诸如快速响应(QR)代码、Aztec代码、Data Matrix、Dataglyph、MaxiCode、PDF417、超码、UCC RSS-2D条形码的多维条形码,和其它光学代码),或声学检测组件(例如,用于识别标记的音频信号的麦克风)。此外,可以经由通信组件940来导出各种信息,例如经由互联网协议(IP)地理位置的位置、经由信号三角测量的位置、经由检测可以指示特定位置的NFC信标信号的位置等。

词汇表

在该上下文中的“载波信号”是指能够存储、编码或承载用于由机器执行的暂态或非暂态指令的任何无形介质,并且包括数字或模拟通信信号或其它无形介质以便于此类指令的通信。可以使用暂态或非暂态传输介质经由网络接口设备并使用许多众所周知的传输协议中的任何一个传输协议来通过网络发送或接收指令。

在该上下文中的“客户端设备”是指与通信网络接口连接以从一个或多个服务器系统或其它客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、台式计算机、膝上型计算机、PDA、智能电话、平板计算机、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器或可编程的消费电子产品、游戏控制台、机顶盒或用户可用于访问网络的任何其它通信设备。

在该上下文中的“通信网络”是指网络的一个或多个部分,该网络可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网、互联网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络、另一种类型的网络,或两个或两个以上此类网络的组合。例如,网络或网络的一部分可以包括无线或蜂窝网络,并且耦合可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或其它类型的蜂窝或无线耦接。在该示例中,耦合可以实现各种类型的数据传输技术中的任何一种,诸如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线服务(GPRS)技术、GSM演进增强型数据速率(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准制定组织定义的其它标准、其它远程协议或其它数据传输技术。

在该上下文中的“短时消息”是指可在时间限制的持续时间内访问的消息。短时消息可以是文本、图像、视频等。短时消息的访问时间可以由消息发送者设置。可替代地,访问时间可以是默队设置或由接收者指定的设置。无论设置技术如何,该消息都是暂态的。

在该上下文中的“机器可读介质”是指能够临时或永久地存储指令和数据的组件、识别或其它有形介质,并且可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪存、光学介质、磁介质、高速缓冲存储器、其它类型的存储器(例如,可擦除可编程只读存储器(EEPROM))和/或其任何合适的组合。术语“机器可读介质”应被视为包括能够存储指令的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”还应被视为包括能够存储由机器执行的指令(例如,代码)的任何介质或多个介质的组合,使得指令在由机器的一个或多个处理器执行时使机器执行在此描述的任何一种或多种方法。因此,“机器可读介质”是指单个存储装置或设备,以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。术语“机器可读介质”排除信号本身。

在该上下文中的“组件”是指具有由功能或子例程调用、分支点、API或提供特定处理或控制功能的分区或模块化的其它技术定义的边界的设备、物理实体或逻辑。组件可以经由它们的接口与其它组件组合以执行机器过程。组件可以是封装的功能硬件单元,其被设计用于与其它组件和通常执行相关功能的特定功能的程序的一部分一起使用。组件可以构成软件组件(例如,在机器可读介质上体现的代码)或硬件组件。“硬件组件”是能够执行某些操作的有形单元,并且可以以某种物理方式配置或布置。在各种示例实施例中,一个或多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或多个硬件组件(例如,处理器或一组处理器)可以通过软件(例如,应用或应用部分)将其配置为进行操作以执行如在此所述的某些操作的硬件组件。

硬件组件还可以机械地、电子地或其任何合适的组合来实现。例如,硬件组件可以包括永久配置为执行某些操作的专用电路或逻辑。硬件组件可以是专用处理器,诸如现场可编程门阵列(FPGA)或ASIC。硬件组件还可以包括由软件临时配置以执行某些操作的可编程逻辑或电路。例如,硬件组件可以包括由通用处理器或其它可编程处理器执行的软件。在由该软件配置后,硬件组件就成为特定的机器(或机器的特定组件),其被独特地定制以执行所配置的功能并且不再是通用处理器。应当理解,可以由成本和时间考虑来驱动在专用和永久配置的电路中或在临时配置的电路(例如,由软件配置)中机械地实现硬件组件的决定。因此,短语“硬件组件”(或“硬件实现的组件”)应该被理解为包含有形实体,即物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)的实体,以某种方式操作或执行在此所述的某些操作。考虑其中硬件组件被临时配置(例如,编程)的实施例,不需要在任何一个时刻配置或实例化硬件组件中的每个硬件组件。例如,在硬件组件包括由软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间被配置为相应的不同的专用处理器(例如,包括不同的硬件组件)。软件相应地配置特定的一个或多个处理器,例如,在一个时刻构成特定的硬件组件,并在不同的时刻构成不同的硬件组件。

硬件组件可以向其它硬件组件提供信息并从其接收信息。因此,所描述的硬件组件可以被视为通信地耦接。在同时存在多个硬件组件的情况下,可以通过在两个硬件组件之间或更多个硬件组件之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中在不同时间配置或实例化多个硬件组件的实施例中,例如通过在对多个硬件组件可访问的存储器结构中的信息的存储和取得,可以实现该硬件组件之间的通信。例如,一个硬件组件可以执行操作并将该操作的输出存储在与其通信耦接的存储设备中。然后,另一硬件组件可以稍后访问存储设备以取得和处理所存储的输出。

硬件组件还可以启动与输入或输出设备的通信,并且可以在资源(例如,信息集合)上操作。在此描述的示例方法的各种操作可以至少部分地由临时配置(例如,通过软件)或永久配置为执行相关操作的一个或多个处理器来执行。无论是临时配置还是永久配置,该处理器可以构成处理器实现的组件,其用于执行在此描述的一个或多个操作或功能。如在此所使用的,“处理器实现的组件”是指使用一个或多个处理器实现的硬件组件。类似地,在此描述的方法可以至少部分地由处理器实现,其中特定的一个处理器或多个处理器是硬件的示例。例如,方法的操作中的至少一些操作可以由一个或多个处理器或处理器实现的组件来执行。此外,一个或多个处理器还可以操作以支持“云计算”环境中的相关操作的性能或作为“软件即服务”(SaaS)。例如,操作中的至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可以经由网络(例如,因特网)并且经由一个或多个适当的接口(例如,API)访问。操作中的某些操作的性能可以在处理器之间分配,不仅驻留在单个机器内,而且部署在多个机器上。在一些示例实施例中,处理器或处理器实现的组件可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器群内)。在其它示例实施例中,处理器或处理器实现的组件可以分布在多个地理位置上。

在该上下文中的“处理器”是指根据控制信号(例如,“命令”、“操作码”、“机器代码”等)操纵数据值以及产生应用于操作机器的对应输出信号的任何电路或虚拟电路(由在实际处理器上执行的逻辑模拟的物理电路)。例如,处理器可以是中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、ASIC、射频集成电路(RFIC)或其任何组合。处理器可以进一步是具有可以同时执行指令的两个或更多个独立处理器(有时称为“核”)的多核处理器。

在该上下文中,“时间戳”是指识别特定事件何时发生的字符序列或编码信息,例如给出日期和一天中的时间,有时精确到秒的分数。

在不脱离本公开的范围的情况下,可以对所公开的实施例进行改变和修改。这些和其他改变或修改旨在被包括在本公开的范围内,如以下权利要求中所表达的。

31页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数据一般化装置、数据一般化方法、程序

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类