一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于内容分发和分析的隐私保护机器学习的制作方法

2022-11-12 23:19:02 来源:中国专利 TAG:


1.本说明书涉及一种使用安全多方计算来训练和使用机器学习模型的隐私保护机器学习平台。


背景技术:

2.一些机器学习模型是基于从多个源(例如,跨多个网站和/或本机应用)收集的数据来训练的。然而,该数据可能包括不应该被共享或允许泄露给其他方的私有或敏感数据。


技术实现要素:

3.数字组件提供者常常受益于能够限制向其显示数字组件的受众。此类限制对用户来说是有益的,因为能够给他们显示更多相关内容。此类限制能够是基于受众的人口统计。内容平台给数字组件提供者提供了将其活动的数字组件分发给特定用户组(例如特定人口统计组的用户)的能力。内容平台常常通过使用户的cookie(例如第三方cookie)与人口统计组之一相关联来这样做,这甚至在用户未登录到显示数字组件的网站的情况下也能够被执行。内容平台可以促进在内容提供者的网站或其他网站(例如第三方网站,其是由除了内容提供者平台以外的实体托管的网站)上显示数字组件。为了保持跟踪用户的浏览偏好,内容平台使用相同cookie来追踪用户跨不同网站的浏览历史。内容平台使用从该cookie中提取的数据来(a)将每个用户归类到特定人口统计中以便出于使向该用户示出的数字组件的功效最大化的目的适当地以该用户为目标,并且(b)向数字组件提供者报告数字组件的有效性。然而,cookie的使用是不利的,因为其他网站可以能够访问该cookie,并且因此跨不同网站的用户偏好能够由那些网站中的每一个网站访问。通过许多网站对用户行为的这种访问可能有时被视为侵入用户的隐私。为了避免这种侵入性,存在在不使用此类cookie的情况下优化由内容平台执行的基于人口统计的数字组件分发和报告的需要。另外,一些浏览器阻止第三方cookie的使用,使得通常跨多个网站收集的浏览信息是不再可用的。因此,依靠通过第三方cookie(例如,来自与用户当前正在查看的web页面的域不同的域的cookie)收集的信息的任何功能性,诸如调节数据到客户端设备的分发,是不再可用的。
4.本公开涉及使用安全多方计算来训练和使用机器学习模型的隐私保护机器学习平台。特别地,本公开描述用于在不使用第三方cookie的情况下将用户归类到特定人口统计组中并且报告用于将数字组件分发给至少部分地基于人口统计信息的用户组的活动的有效性的系统和技术。
5.在一个方面中,客户端设备的应用能够从一个或多个计算机接收识别应用的用户的推断的人口统计特征的数据。应用能够显示数字内容,该数字内容包括用于报告与数字内容相关的事件的计算机可读代码、指定允许的基于人口统计的用户组标识符的集合的数据、以及针对数字内容的活动标识符。应用能够确定给定推断的特征与给定允许的基于人口统计的用户组标识符匹配。响应于确定给定推断的人口统计特征与给定允许的基于人口统计的用户组标识符匹配,计算机可读代码能够用于生成并且发送更新针对数字内容和给
定允许的基于人口统计的用户组标识符的一个或多个事件计数的请求。
6.在一些实现方式中,能够按照任何合适的组合附加地或替换地实现下列中的一个或多个。接收识别应用的用户的推断的人口统计特征的数据能够包括在客户端设备处接收针对将用户添加到的基于人口统计的用户组的推断的基于人口统计的用户组标识符。能够向一个或多个计算机发送包括用户的用户简档的推断请求。能够响应于推断请求而从一个或多个计算机接收推断的人口统计用户组标识符。一个或多个计算机能够包括多个多方计算(mpc)服务器。向一个或多个计算机发送推断请求能够包括向多个mpc服务器中的每一个发送用户简档的相应秘密份额。多个mpc服务器能够使用一个或多个机器学习模型来执行安全mpc过程以生成推断的基于人口统计的用户组标识符的秘密份额并且将推断的基于人口统计的用户组标识符的秘密份额传送到应用。
7.应用能够向一个或多个计算机发送对识别应用的用户的推断的人口统计特征的数据的推断请求。推断请求能够包括用户的用户简档以及与以下各项中的至少一个相关的场境信号:(i)在其中显示数字内容的数字内容槽或(ii)数字内容,其中,响应于推断请求而从一个或多个计算机接收推断的人口统计用户组标识符,或(iii)包括数字内容的资源的统一资源定位符(url)、客户端设备的位置、应用的口语语言设置。使用计算机可读代码来生成并且发送更新针对数字内容和给定允许的基于人口统计的用户组标识符的一个或多个事件计数的请求能够包括:生成包括活动标识符和给定允许的基于人口统计的用户组标识符的聚合键;以及与请求一起传送聚合键。使用计算机可读代码来生成并且传送更新针对数字内容和给定允许的基于人口统计的用户组标识符的一个或多个事件计数的请求能够包括调用应用的应用编程接口(api)来发送请求。
8.实现以上指出的特征的方法、系统、装置、计算机可编程产品等也在本公开的范围内。例如,在一些方面中,描述了一种系统,该系统包括:至少一个可编程处理器;以及存储指令的机器可读介质,这些指令在由至少一个可编程处理器执行时使至少一个可编程处理器执行操作,这些操作包括:由客户端设备的应用从一个或多个计算机接收识别应用的用户的推断的人口统计特征的数据;由应用显示数字内容,该数字内容包括用于报告与数字内容相关的事件的计算机可读代码、以及指定允许的基于人口统计的用户组标识符的集合的数据、以及针对数字内容的活动标识符;由应用确定给定推断的特征与给定允许的基于人口统计的用户组标识符匹配;以及响应于确定给定推断的人口统计特征与给定允许的基于人口统计的用户组标识符匹配,使用计算机可读代码来生成并且发送更新针对数字内容和给定允许的基于人口统计的用户组标识符的一个或多个事件计数的请求。
9.类似地,在某些方面中,描述了一种非暂时性计算机程序产品,该非暂时性计算机程序产品能够存储指令,这些指令在由至少一个可编程处理器执行时使至少一个可编程处理器执行操作,这些操作能够包括:由客户端设备的应用从一个或多个计算机接收识别应用的用户的推断的人口统计特征的数据;由应用显示数字内容,该数字内容包括用于报告与数字内容相关的事件的计算机可读代码、指定允许的基于人口统计的用户组标识符的集合的数据、以及针对数字内容的活动标识符;由应用确定给定推断的特征与给定允许的基于人口统计的用户组标识符匹配;以及响应于确定给定推断的人口统计特征与给定允许的基于人口统计的用户组标识符匹配,使用计算机可读代码来生成并且发送更新针对数字内容和给定允许的基于人口统计的用户组标识符的一个或多个事件计数的请求。
10.在一些方面中,一个或多个处理器能够执行操作,这些操作包括:从数字内容提供者的第一浏览器接收识别数字内容的数据和要针对其执行人口统计报告的一个或多个人口统计类别的第一集合;使正在其上显示数字内容的客户端设备的用户与一个或多个人口统计类别的第二集合相关联;如果一个或多个人口统计类别的第一集合和一个或多个人口统计类别的第二集合具有至少一个共同的人口统计类别,则向api传送在客户端设备上输入的浏览事件和至少一个共同的人口统计类别,其中,api将浏览事件和至少一个共同的人口统计类别与其他用户的至少一个浏览事件和作为一个或多个人口统计类别的第一集合中的一个人口统计类别的相关的至少一个人口统计类别组合以生成聚合数据;从api接收聚合数据;以及生成包括聚合数据的报告。
11.使用户与一个或多个人口统计类别的第二集合相关联能够包括:接收由用户在第一浏览器上对一个或多个人口统计类别的第二集合的自我识别;以及将用户映射到一个或多个人口统计类别的第二集合。使用户与一个或多个人口统计类别的第二集合相关联能够包括:向多方计算集群传送用户的浏览历史;从多方计算集群内的机器学习模型接收由机器学习模型输出的推断,这些推断包括人口统计类别的第二集合;以及将用户映射到一个或多个人口统计类别的第二集合。生成报告能够包括:将聚合数据布置在表中;基于聚合数据来生成分析;以及在报告中提供表和分析。能够响应于对报告的请求或者以预设时间间隔自动地生成报告。对报告的请求能够由开发并且提供第一浏览器的数字内容提供者、内容平台、安全多方计算集群或发布者中的一个或多个生成。能够以预设时间间隔自动地或者在事件的计数超过预设阈值后生成对报告的请求。
12.识别数字内容的数据和一个或多个人口统计类别的第一集合能够被包括在聚合键中。识别数字内容的数据能够包括显示数字内容的资源的统一资源定位符(url)。这些操作能够进一步包括:确定与用户相关的人口统计类别的第三集合;以及将客户端设备的第一浏览器限制为显示由相应的数字内容提供者指示为与人口统计类别的第三集合中的类别相关联的数字内容。确定一个或多个人口统计类别的第三集合能够包括接收由用户在第一浏览器上对与用户相关的一个或多个人口统计类别的第三集合的自我识别。确定一个或多个人口统计类别的第三集合能够包括:向多方计算集群传送用户的浏览历史;以及从多方计算集群接收识别人口统计类别的第三集合的数据。
13.实现以上指出的特征的方法、系统、装置、计算机可编程产品等也在本公开的范围内。例如,在一些方面中,描述了一种系统,该系统能够包括:至少一个可编程处理器;以及存储指令的机器可读介质,这些指令在由至少一个可编程处理器执行时使至少一个可编程处理器执行操作,这些操作包括:从数字内容提供者的第一浏览器接收识别数字内容的数据和要针对其执行人口统计报告的一个或多个人口统计类别的第一集合;使正在其上显示数字内容的客户端设备的用户与一个或多个人口统计类别的第二集合相关联;如果一个或多个人口统计类别的第一集合和一个或多个人口统计类别的第二集合具有至少一个共同的人口统计类别,则向api传送在客户端设备上输入的浏览事件和至少一个共同的人口统计类别,其中,api将浏览事件和至少一个共同的人口统计类别与其他用户的至少一个浏览事件和作为一个或多个人口统计类别的第一集合中的一个人口统计类别的相关的至少一个人口统计类别组合以生成聚合数据;从api接收聚合数据;以及生成包括聚合数据的报告。
14.类似地,在另一方面中,描述了一种非暂时性计算机程序产品,该非暂时性计算机程序产品能够存储指令,这些指令在由至少一个可编程处理器执行时使至少一个可编程处理器执行操作,这些操作包括:从数字内容提供者的第一浏览器接收识别数字内容的数据和要针对其执行人口统计报告的一个或多个人口统计类别的第一集合;使正在其上显示数字内容的客户端设备的用户与一个或多个人口统计类别的第二集合相关联;如果一个或多个人口统计类别的第一集合和一个或多个人口统计类别的第二集合具有至少一个共同的人口统计类别,则向api传送在客户端设备上输入的浏览事件和至少一个共同的人口统计类别,其中,api将浏览事件和至少一个共同的人口统计类别与其他用户的至少一个浏览事件和作为一个或多个人口统计类别的第一集合中的一个人口统计类别的相关的至少一个人口统计类别组合以生成聚合数据;从api接收聚合数据;以及生成包括聚合数据的报告。
15.能够在特定实施例中实现本说明书中描述的主题以便实现以下优点中的一个或多个。本文档中描述的数字组件分发技术能够识别具有类似兴趣的用户并且扩展用户组成员资格同时保护用户的隐私,例如,而不将用户的在线活动泄露给任何计算系统。这相对于此类平台保护用户隐私并且保护数据的安全免于在传输到平台或从平台传输期间破坏。诸如安全多方计算(mpc)的密码技术使得能够在不使用第三方cookie的情况下基于用户简档中的相似度来扩展用户组,这保护用户隐私而不负面地影响扩展用户组的能力,并且在一些情况下基于比使用第三方cookie可实现的更完整简档来提供更好的用户组扩展。mpc技术能够确保,只要mpc集群中的一个计算系统是诚实的,用户数据就不能由任何计算系统或另一方以明文获得。因此,本文描述的方法允许以安全方式对用户数据进行识别、分组和传输,而不需要使用第三方cookie来确定用户数据之间的任何关系。这是与通常需要第三方cookie来确定数据之间的关系的传统方法截然不同的方法。通过以这种方式对用户数据进行分组,因为不需要传送与特定用户不相关的数据内容,所以改进向用户设备传送数据内容的效率。特别地,不需要第三方cookie,从而避免第三方cookie的存储,改进存储器使用率。指数衰减技术能够用于在客户端设备处构建用户简档以减小构建用户简档所需的原始数据的数据大小,从而降低数据存储需求。
16.人口统计报告技术涉及基于用户的用户组成员资格向数字组件提供者生成报告以指示他们的数字组件针对特定用户组表现如何。通过使用安全mpc机器学习技术来预测用户人口统计,报告能够在不牺牲用户隐私的情况下更准确地反映基于人口统计的用户组的性能。用于生成此类报告的过程不会将个体用户的数据泄露给任何实体,从而保护用户隐私。报告框架的结构设计不使用cookie,并且防止用户数据的泄露。
17.下面参考各图描述前述主题的各种特征和优点。根据本文描述的主题和权利要求,附加特征和优点是显而易见的。
附图说明
18.图1是其中安全mpc集群训练机器学习模型并且机器学习模型用于扩展用户组的环境的框图。
19.图2是用于训练机器学习模型并且使用机器学习模型来将用户添加到用户组的示例过程的泳道图。
20.图3是图示用于生成用户简档并且向mpc集群发送用户简档的份额的示例过程的
流程图。
21.图4是图示用于生成机器学习模型的示例过程的流程图。
22.图5是图示用于使用机器学习模型来将用户添加到用户组的示例过程的流程图。
23.图6是用于生成针对用户简档的推断结果的示例性框架的概念图。
24.图7是用于以提升的性能生成针对用户简档的推断结果的示例性框架的概念图。
25.图8是图示用于在mpc集群处以提升的性能生成针对用户简档的推断结果的示例过程的流程图。
26.图9是图示用于在mpc集群处准备并且执行第二机器学习模型的训练以便提升推断性能的示例过程的流程图。
27.图10是用于评价第一机器学习模型的性能的示例性框架的概念图。
28.图11是图示用于在mpc集群处评价第一机器学习模型的性能的示例过程的流程图。
29.图12是图示用于在mpc集群的计算系统处以提升的性能生成针对用户简档的推断结果的示例过程的流程图。
30.图13是图示人口统计报告的流程图,该人口统计报告是用于——向数字组件提供者——报告数字组件的有效性的过程。
31.图14是图示由客户端设备执行以促进基于人口统计的数字组件分发和人口统计报告的示例过程的流程图。
32.图15是示例计算机系统的框图。
33.在各个附图中相同的附图标号和名称指示相同的元件。
具体实施方式
34.一般而言,描述了允许在不使用第三方cookie的情况下将用户归类到特定人口统计组中并且报告用于向至少部分地基于人口统计信息的用户组分发数字组件的活动的有效性的系统和技术。
35.基于人口统计的用户组扩展
36.本文档中描述的机器学习平台使得内容平台能够生成并且扩展至少部分地基于人口统计信息(例如,年龄范围、地理位置、口语语言等)的用户组。这些用户组使得数字组件提供者能够到达为其创建用户组的用户的特定集合。例如,经营专门针对女人的健身工作室的数字组件提供者可以受益于向女人的用户组的成员分发数字组件,这能够帮助避免示出与男人更相关的数字组件。为了在不需要或者使用cookie的情况下实现这种定向内容分发,用户组被形成并且随后使用隐私保护机器学习系统和技术来扩展。此类系统和技术被用于训练并且使用机器学习模型来扩展用户组成员资格,同时保护用户隐私并且确保数据安全。
37.一般而言,不是在诸如内容平台的其他实体的计算系统处创建并且维护用户简档,而是在用户的客户端设备处维护用户简档。为了训练机器学习模型,用户的客户端设备能够可选地经由内容平台将他们的加密用户简档(例如,作为用户简档的秘密份额)连同其他数据一起发送到安全多方计算(mpc)集群的多个计算系统。例如,每个客户端设备能够生成用户简档的两个或更多个秘密份额并且向每个计算系统发送相应秘密份额。mpc集群的
计算系统能够使用mpc技术来训练机器学习模型以便以防止mpc集群的任一计算系统(或不是用户其本身的其他方)以明文(其还能够被称为纯文本)获得任何用户的简档从而保护用户隐私的方式基于用户的简档为用户建议用户组。机器学习模型可以是k-最近邻(k-nn)模型。在一些实现方式中,机器学习模型能够是通过其他机器学习模型(例如,神经网络模型或梯度提升决策树)扩增(例如经由梯度提升)的k-nn。
38.在训练机器学习模型之后,机器学习模型能够用于基于每个用户的简档为每个用户建议一个或多个用户组。例如,用户的客户端设备能够向mpc集群查询针对该用户建议的用户组或者确定是否应该将用户添加到特定用户组。能够使用诸如二元分类、回归(例如,使用算术均值或均方根)和/或多类分类的各种推断技术来识别用户组。能够以隐私保护和安全方式使用用户的用户组成员资格来向用户提供内容。
39.用于生成并且使用机器学习模型的示例系统
40.图1是其中安全mpc 130集群训练机器学习模型并且机器学习模型用于扩展用户组的环境100的框图。示例环境100包括数据通信网络105,诸如局域网(lan)、广域网(wan)、因特网、移动网络或其组合。网络105连接客户端设备110、安全mpc集群130、发布者140、网站142和内容平台150。示例环境100可以包括许多不同的客户端设备110、安全mpc集群130、发布者140、网站142、内容平台150、数字组件提供者160和聚合系统180。
41.客户端设备110是能够通过网络105通信的电子设备。示例客户端设备110包括个人计算机、移动通信设备(例如,智能电话)以及能够通过网络105发送和接收数据的其他设备。客户端设备110还能够包括数字助理设备,该数字助理设备通过麦克风接受音频输入并且通过扬声器输出音频输出。当数字助理检测到激活麦克风以接受音频输入的“热词”或“热短语”时,能够将数字助理置于收听模式(例如,准备好接受音频输入)。数字助理设备还能够包括相机和/或显示器以捕获图像并且在视觉上呈现信息。能够在包括可穿戴设备(例如,手表或眼镜)、智能电话、扬声器设备、平板设备或另一硬件设备的不同形式的硬件设备中实现数字助理。客户端设备110还能够包括数字媒体设备,例如,插入到电视或其他显示器中以将视频流式传输到电视的流式传输设备。
42.客户端设备110通常包括应用112,诸如web浏览器和/或本机应用,以促进通过网络105发送和接收数据。本机应用是为特定平台或特定设备(例如,具有特定操作系统的移动设备)开发的应用。发布者140能够开发并且向客户端设备110提供本机应用,例如,使本机应用可供下载。web浏览器能够从托管发布者140的网站142的web服务器请求资源145,例如,响应于客户端设备110的用户在web浏览器的地址栏中输入资源145的资源地址或者选择引用资源地址的链接。类似地,本机应用能够从发布者的远程服务器请求应用内容。
43.一些资源、应用页面或其他应用内容能够包括用于与资源145或应用页面一起呈现数字组件的数字组件槽。如贯穿本文档使用的,短语“数字组件”是指数字内容或数字信息的离散单元(例如,视频剪辑、音频剪辑、多媒体剪辑、图像、文本或另一内容单元)。能够将数字组件作为单个文件或以文件的集合电子地存储在物理存储器设备中,并且数字组件能够采取视频文件、音频文件、多媒体文件、图像文件或文本文件的形式并且包括广告信息,使得广告是一种数字组件。例如,数字组件可以是旨在补充由应用112呈现的web页面或其他资源的内容的内容。更具体地,数字组件可以包括与资源内容相关的数字内容(例如,数字组件可以涉及与web页面内容相同的主题,或者涉及相关话题)。数字组件的供应因此
能够补充并且通常增强web页面或应用内容。
44.当应用112加载包括一个或多个数字组件槽的资源(或应用内容)时,应用112能够为每个槽请求数字组件。在一些实现方式中,数字组件槽能够包括使应用112从数字组件分发系统请求数字组件的代码(例如,脚本),该数字组件分发系统选择数字组件并且将该数字组件提供给应用112以供呈现给客户端设备110的用户。
45.内容平台150能够包括供应侧平台(ssp)和需求侧平台(dsp)。一般而言,内容平台150代表发布者140和数字组件提供者160管理数字组件的选择和分发。
46.一些发布者140使用ssp来管理为其资源和/或应用的数字组件槽获得数字组件的过程。ssp是在使为资源和/或应用获得数字组件的过程自动化的硬件和/或软件中实现的技术平台。每个发布者140能够具有对应ssp或多个ssp。一些发布者140可以使用同一ssp。
47.数字组件提供者160能够创建(或以其他方式发布)在发布者的资源和应用的数字组件槽中呈现的数字组件。数字组件提供者160能够使用dsp来管理其数字组件的供应以便在数字组件槽中呈现。dsp是在使分发用于与资源和/或应用一起呈现的数字组件的过程自动化的硬件和/或软件中实现的技术平台。dsp能够代表数字组件提供者160与多个供应侧平台ssp交互,以提供用于与多个不同发布者140的资源和/或应用一起呈现的数字组件。一般而言,dsp能够接收对数字组件的请求(例如,来自ssp),基于该请求为由一个或多个数字组件提供者创建的一个或多个数字组件生成(或者选择)选择参数,并且将与数字组件相关的数据(例如,数字组件其本身)和选择参数提供给ssp。ssp然后能够选择用于在客户端设备110处呈现的数字组件并且向客户端设备110提供使客户端设备110呈现数字组件的数据。
48.在一些情况下,对用户而言接收与由用户先前访问和/或与之交互的web页面、应用页面或其他电子资源相关的数字组件是有益的。为了将此类数字组件分发给用户,当用户访问特定资源或者在该资源处执行特定动作(例如,与web页面上呈现的特定项目交互或者将该项目添加到虚拟购物车)时,能够将用户指配给用户组,例如,用户兴趣组、类似用户的群组或涉及类似用户数据的其他组类型。用户组能够由数字组件提供者160生成。也就是说,每个数字组件提供者160能够在用户访问数字组件提供者160的电子资源时将用户指配给他们的用户组。在一些实现方式中,发布者140、内容平台150或mpc集群130还能够将用户指配给选择的用户组。
49.为了保护用户隐私,能够在用户的客户端设备110处维护用户的组成员资格,例如,由应用112之一或客户端设备110的操作系统维护,而不是由数字组件提供者、内容平台或其他方维护。在特定示例中,可信程序(例如,web浏览器或操作系统能够为使用该web浏览器或另一应用的用户维护用户组标识符的列表(“用户组列表”)。用户组列表能够包括针对用户已经被添加到的每个用户组的组标识符。创建用户组的数字组件提供者160或内容平台(例如,dsp)能够为他们的用户组指定用户组标识符。针对用户组的用户组标识符能够描述组(例如,女性组)或表示组的代码(例如,非描述性的字母数字序列)。一般而言,用户组可以是基于人口统计的组。基于人口统计的用户组能够与一个或多个人口统计特征相关联并且包括具有一个或多个人口统计特征(例如,基于自我报告)或者使用隐私保护机器学习模型被预测和/或分类为具有人口统计特征的用户作为成员。这样的用户组还能够具有例如与活动或产品相关的其他非人口统计特征。用户的用户组列表能够被存储在客户端设
备110处的安全存储设备中并且/或者能够在存储时被加密以防止其他人访问该列表。
50.当应用112呈现与数字组件提供者160相关的资源或应用内容、或网站142上的web页面时,资源能够请求应用112向用户组列表添加一个或多个用户组标识符。作为响应,应用112能够将一个或多个用户组标识符添加到用户组列表并且安全地存储用户组列表。
51.内容平台150能够使用用户的用户组成员资格来选择可能为用户感兴趣的或者可能以另一方式对用户/用户设备有益的数字组件或其他内容。例如,此类数字组件或其他内容可以包括改进用户体验、改进用户设备的运行或者以某种其他方式使用户或用户设备受益的数据。然而,能够以防止内容平台150使用户组标识符与特定用户相关的方式提供用户的用户组列表的用户组标识符,从而在使用用户组成员资格数据来选择数字组件时保护用户隐私。在一些实现方式中,安全和隐私保护能够甚至更强大。例如,计算系统mpc1和mpc2可以不串通,并且仅应用112可以被许可以明文查看用户组标识符。
52.应用112能够将来自用户组列表的用户组标识符提供给与内容平台150交互的可信计算系统,以基于用户组成员资格以防止内容平台150或不是用户其本身的任何其他实体知道任何用户的用户组成员资格的方式选择用于在客户端设备110处呈现的数字组件。
53.在一些情况下,对用户而言并且对数字组件提供者而言扩展用户组以包括具有与已经为用户组的成员的用户类似的兴趣或其他类似数据(例如,类似人口统计)的用户是有益的。有用的是,这可以在不使用第三方cookie的情况下实现。例如,第一用户可以对滑雪感兴趣并且可以是特定滑雪胜地的用户组的成员。第二用户也可以对滑雪感兴趣,但是不知道此滑雪胜地并且不是该特定滑雪胜地的用户组的成员。如果两个用户具有类似兴趣或数据,例如,类似用户简档,则可以将第二用户添加到该特定滑雪胜地的用户组,使得第二用户接收与该滑雪胜地相关并且可能为第二用户或其用户设备感兴趣或以其他方式对第二用户或其用户设备有益的内容,例如,数字组件。换句话说,可以扩展用户组以包括具有类似用户数据的其他用户。在特定示例中,能够扩展基于人口统计的用户组以包括具有与基于人口统计的用户组相关联的相同或类似人口统计的其他用户。
54.安全mpc集群130能够训练机器学习模型,该机器学习模型基于用户的简档来向用户(或其应用112)建议用户组,或者能够用于基于用户的简档来向用户(或其应用112)生成用户组的建议。安全mpc集群130包括执行安全mpc技术以训练机器学习模型的两个计算系统mpc1和mpc2。尽管示例mpc集群130包括两个计算系统,但是还能够使用更多计算系统,只要mpc集群130包括不止一个计算系统即可。例如,mpc集群130能够包括三个计算系统、四个计算系统或另一适当数目的计算系统。在mpc集群130中使用更多计算系统能够提供更多安全性和容错性,但是还可能增加mpc过程的复杂性。
55.计算系统mpc1和mpc2能够由不同实体操作。以这种方式,每个实体可能无法以明文访问用户简档。明文是以能够在无需密钥或其他解密设备或其他解密过程的情况下查看或使用的形式的未经计算上标记、特殊格式化或以代码或数据(包括二进制文件)编写的文本。例如,计算系统mpc1或mpc2之一能够由与用户、发布者140、内容平台150和数字组件提供者160不同的可信方操作。例如,行业组、政府组或浏览器开发者可以维护并且操作计算系统mpc1和mpc2之一。另一个计算系统可以由这些组中的不同组操作,使得不同可信方操作每个计算系统mpc1和mpc2。优选地,操作不同计算系统mpc1和mpc2的不同方不具有要串通以危害用户隐私的动机。在一些实现方式中,计算系统mpc1和mpc2在架构上分开并且被监测以在
执行本文档中描述的安全mpc过程之外不与彼此通信。
56.在一些实现方式中,mpc集群130针对每个内容平台150和/或针对每个数字组件提供者160来训练一个或多个k-nn模型。例如,每个内容平台150能够针对一个或多个数字组件提供者160来管理数字组件的分发。内容平台150能够请求mpc集群130针对内容平台150针对其管理数字组件的分发的一个或多个数字组件提供者160来训练k-nn模型。一般而言,k-nn模型表示一组用户的用户简档(和可选地附加信息)之间的距离。内容平台的每个k-nn模型能够具有独特模型标识符。在图4中图示并且在下面描述用于训练k-nn模型的示例过程。
57.在针对内容平台150训练k-nn模型之后,内容平台150能够查询或者使客户端设备110的应用112查询k-nn模型以为客户端设备110的用户识别一个或多个用户组。例如,内容平台150能够查询k-nn模型以确定最接近用户的阈值数目的“k”个用户简档是否是特定用户组的成员。如果是,则内容平台150可以将用户添加到该用户组。如果为用户识别了用户组,则内容平台150或mpc集群130能够请求应用112将用户添加到用户组。如果被用户和/或应用112批准,则应用112能够将针对用户组的用户组标识符添加到存储在客户端设备110处的用户组列表。
58.在一些实现方式中,应用112能够提供使得用户能够管理用户被指配到的用户组的用户接口。例如,用户接口能够使得用户能够移除用户组标识符,防止所有或特定资源145、发布者140、内容平台150、数字组件提供者160和/或mpc集群130将用户添加到用户组(例如,防止实体将用户组标识符添加到由应用112维护的用户组标识符的列表)。这为用户提供更好的透明度、选择/同意和控制。
59.除了贯穿本文档的描述之外,还可以给用户提供允许用户关于本文描述的系统、程序或特征是否并且何时可以使得能够收集用户信息(例如,关于用户的社交网络、社交动作或活动、职业、用户的偏好或用户的当前位置的信息)以及是否从服务器给用户发送内容或通信二者做出选择的控件(例如,用户能够与之交互的用户接口元件)。另外,某些数据可以在它被存储或者使用之前以一个或多个方式被处理,使得个人可识别信息被移除。例如,用户的身份可以被处理,使得无法确定用户的个人可识别信息,或者可以在获得位置信息的情况下使用户的地理位置一般化(诸如到城市、邮政编码或州级别),使得无法确定用户的特定位置。因此,用户可以控制关于用户收集什么信息、如何使用该信息、以及向用户提供什么信息。
60.在一些实现方式中,示例环境100还能够促进由相应人口统计类别中的各种用户对诸如浏览事件的数据的报告,浏览事件诸如展示、点击和/或转化。在此类情况下,内容平台150(例如,dsp或ssp,并且在某些实现方式中为单独的报告平台)能够实现报告api或者与报告api进行通信,该报告api能够与将浏览事件(例如,展示、点击和/或转化、和/或其缺少/不存在)和人口统计类别组合以生成聚合数据的聚合系统180进行通信。聚合系统180能够将聚合数据以报告的形式或者以能够容易地组合和插入在报告中的数据的形式传送到内容平台150(或单独的报告平台)。
61.用于生成并且使用机器学习模型的示例过程
62.图2是用于训练机器学习模型并且使用机器学习模型来将用户添加到用户组的示例过程200的泳道图。过程200的操作能够例如由客户端设备110、mpc集群130的计算系统
mpc1和mpc2以及内容平台150实现。过程200的操作还能够被实现为存储在可以是非暂时性的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理装置对指令的执行能够使一个或多个数据处理装置执行过程200的操作。尽管在两个计算系统mpc集群130方面描述过程200和以下其他过程,但是具有不止两个计算系统的mpc集群也能够用于执行类似过程。
63.内容平台150能够通过请求在客户端设备110上运行的应用112为其相应用户生成用户简档并且将用户简档的秘密共享和/或加密版本上传到mpc集群130来发起对其机器学习模型之一的训练和/或更新。出于本文档的目的,能够将用户简档的秘密份额认为是用户简档的加密版本,因为秘密份额不是明文的。一般而言,每个应用112能够存储用户简档的数据并且响应于从内容平台150接收到请求而生成更新后的用户简档。由于用户简档的内容和机器学习模型对于不同内容平台150来说不同,因此在用户的客户端设备110上运行的应用112能够维护多个用户简档的数据并且生成多个用户简档,每个用户简档特定于特定内容平台或由特定内容平台拥有的特定模型。
64.在客户端设备110上运行的应用112为客户端设备110的用户构建用户简档(202)。用户的用户简档能够包括与由用户发起的事件和/或能够已经由用户相对于电子资源(例如,web页面或应用内容)发起的事件相关的数据。事件能够包括电子资源的视图、数字组件的视图、用户与电子资源或数字组件的交互(例如,对其的选择)、或用户与电子资源或数字组件的交互(例如,对其的选择)的缺少、在用户与电子资源交互之后发生的转化、和/或与用户和电子资源相关的其他适当的事件。
65.用户的用户简档能够特定于内容平台150或由内容平台150拥有的选择的机器学习模型。例如,如在下面参考图3更详细地描述的,每个内容平台150能够请求应用112生成或更新特定于该内容平台150的用户简档。
66.用户的用户简档能够是以特征向量的形式。例如,用户简档能够是n维特征向量。n个维度中的每一个能够对应于特定特征并且每个维度的值能够是针对用户的特征的值。例如,一个维度可以是针对特定数字组件是否被呈现给用户(或者由用户与之交互)。在此示例中,该特征的值在数字组件被呈现给用户(或者由用户与之交互)的情况下能够是“1”,或者在数字组件尚未被呈现给用户(或者由用户与之交互)的情况下能够是“0”。在图3中图示并且在下面描述了用于为用户生成用户简档的示例过程。
67.在一些实现方式中,内容平台150可能想要基于附加信号来训练机器学习模型,附加信号诸如场境信号、与特定数字组件相关的信号、或与应用112可能不知道或者应用112可能无法访问的用户相关的信号,诸如在用户的位置处的当前天气。例如,内容平台150可能想要训练机器学习模型以预测在特定数字组件在特定场境中被呈现给用户的情况下用户是否将与该数字组件交互。在此示例中,对于数字组件对用户的每次呈现,场境信号能够包括客户端设备110当时的地理位置(如果用户授予许可)、描述数字组件随之一起呈现的电子资源的内容的信号、以及描述数字组件的信号,例如,数字组件的内容、数字组件的类型、数字组件被呈现在电子资源上的位置等。在另一示例中,一个维度可以是针对呈现给用户的数字组件是否具有特定类型。在此示例中,值能够是针对旅行的1、针对美食的2、针对电影的3等。为了便于后续描述,pi将表示用户简档以及与第i个用户简档相关联的附加信号(例如,场境信号和/或数字组件级信号)二者。
68.应用112为用户生成用户简档pi的份额(204)。在此示例中,应用112生成用户简档pi的两个份额,针对mpc集群130的每个计算系统各一个。注意,每个份额本身能够是本身不揭示关于用户简档的任何内容的随机变量。将需要组合两个份额以得到用户简档。如果mpc集群130包括参与机器学习模型的训练的更多计算系统,则应用112将生成更多份额,针对每个计算系统各一个。在一些实现方式中,为了保护用户隐私,应用112能够使用伪随机函数来将用户简档pi拆分成份额。也就是说,应用112能够使用伪随机函数prf(pi)来生成两个份额{[p
i,1
],[p
i,2
]}。确切拆分能够取决于由应用112使用的秘密共享算法和密码库。
[0069]
在一些实现方式中,应用112还能够向mpc集群130提供一个或多个标签。尽管可以在训练某种架构(例如k-nn)的机器学习模型时不使用标签,但是标签能够用于微调控制模型训练过程的超参数(例如,k的值),或者评价训练后的机器学习模型的质量,或者做出预测,即确定是否为用户建议用户组。标签能够包括例如针对用户并且内容平台150能够访问的用户组标识符中的一个或多个。也就是说,标签能够包括针对由内容平台150管理或者内容平台150能够读取访问的用户组的用户组标识符。在一些实现方式中,单个标签包括针对用户的多个用户组标识符。在一些实现方式中,针对用户的标签能够是异构的并且包括包含用户作为成员的所有用户组和附加信息,例如,用户是否与给定数字组件交互。这使得k-nn模型能够用于预测另一用户是否将与给定数字组件交互。针对每个用户简档的标签能够指示与用户简档相对应的用户的用户组成员资格。
[0070]
针对用户简档的标签预测与输入相对应的用户将被或者应该被添加到的用户组。例如,与输入用户简档的k个最近邻用户简档相对应的标签例如基于用户简档之间的相似度来预测与输入用户简档相对应的用户将或者应该加入的用户组。这些预测标签能够用于向用户建议用户组或者请求应用将用户添加到与标签相对应的用户组。
[0071]
如果包括标签,则应用112还能够将每个labeli拆分成份额,例如[label
i,1
]和[label
i,2
]。以这种方式,在没有计算系统mpc1和mpc2之间的串通的情况下,计算系统mpc1和mpc2均不能够从[p
i,1
]或[p
i,2
]重构pi或者从[label
i,1
]或[label
i,2
]重构labeli。
[0072]
应用112对用户简档pi的份额[p
i,1
]或[p
i,2
]和/或每个标签labeli的份额[label
i,1
]或[label
i,2
]进行加密(206)。在一些实现方式中,应用112生成用户简档pi的第一份额[p
i,1
]和标签labeli的第一份额[label
i,1
]的复合消息并且使用计算系统mpc1的加密密钥来对该复合消息进行加密。类似地,应用112生成用户简档pi的第二份额[p
i,2
]和标签labeli的第二份额[label
i,2
]的复合消息并且使用计算系统mpc2的加密密钥来对该复合消息进行加密。能够将这些函数表示为pubkeyencrypt([p
i,1
]||[label
i,1
],mpc1)和pubkeyencrypt([p
i,2
]||[label
i,2
],mpc2),其中,pubkeyencrypt表示使用mpc1或mpc2的对应公钥的公钥加密算法。符号“||”表示从多个简单消息组成复杂消息的可逆方法,例如,javascript对象表示法(json)、简明二进制对象表示(cbor)或协议缓冲区。
[0073]
应用112将加密份额提供到内容平台150(208)。例如,应用112能够将用户简档和标签的加密份额传送到内容平台150。由于使用计算系统mpc1或mpc2的加密密钥来对每个份额进行加密,因此内容平台150不能访问用户的用户简档或标签。
[0074]
内容平台150能够从多个客户端设备接收用户简档的份额和标签的份额。内容平台150能够通过将用户简档的份额上传到计算系统mpc1和mpc2来发起对机器学习模型的训练。尽管可以在训练过程中不使用标签,但是内容平台150能够将标签的份额上传到计算系
统mpc1和mpc2以用于在优化训练过程(例如,超参数调谐)、评价模型质量或者稍后查询模型时使用。
[0075]
内容平台150将从每个客户端设备110接收到的第一加密份额(例如,pubkeyencrypt([p
i,1
]||[label
i,1
],mpc1))上传到计算系统mpc1(210)。类似地,内容平台150将第二加密份额(例如,pubkeyencrypt([p
i,2
]||[label
i,2
],mpc2))上传到计算系统mpc2(212)。两次上传能够批量进行并且能够包括在用于训练机器学习模型的特定时间段期间接收到的用户简档和标签的加密份额。
[0076]
在一些实现方式中,内容平台150将第一加密份额上传到计算系统mpc1的次序必须与内容平台150将第二加密份额上传到计算系统mpc2的次序匹配。这使得计算系统mpc1和mpc2能够适当地与相同秘密的两个份额(例如相同用户简档的两个份额)匹配。
[0077]
在一些实现方式中,内容平台150可以将相同的伪随机地或顺序地生成的标识符显式地指配给相同秘密的份额以促进匹配。虽然一些mpc技术能够依靠输入或中间结果的随机混洗,但是本文档中描述的mpc技术可以不包括此类随机混洗并且可以替代地依靠上传次序来匹配。
[0078]
在一些实现方式中,操作208、210和212能够由其中应用112直接将[p
i,1
]||[label
i,1
]上传到mpc1并且将[p
i,2
]||[label
i,2
]上传到mpc2的替代过程替换。此替代过程能够降低内容平台150支持操作208、210和212的基础设施成本,并且减小开始在mpc1和mpc2中训练或更新机器学习模型的时延。
[0079]
计算系统mpc1和mpc2生成机器学习模型(214)。每次基于用户简档数据来生成新的机器学习模型能够被称为训练会话。计算系统mpc1和mpc2能够基于从客户端设备110接收到的用户简档的加密份额来训练机器学习模型。例如,计算系统mpc1和mpc2能够使用mpc技术以基于用户简档的份额来训练k-nn模型。
[0080]
为了最小化或至少减少密码计算,并且因此最小化或至少减少置于计算系统mpc1和mpc2上的计算负担,以在模型训练和推断二者期间保护用户隐私和数据,mpc集群130能够使用随机投影技术,例如simhash,以快速地、安全地且概率地量化两个用户简档pi和pj之间的相似度。能够通过确定表示两个用户简档pi和pj的simhash的结果的两个比特向量之间的汉明(hamming)距离来确定两个用户简档pi和pj之间的相似度。这种汉明距离以高概率与两个用户简档之间的余弦距离成反比。
[0081]
概念上,对于每个训练会话,能够生成m个随机投影超平面u={u1,u2,

,um}。还能够将随机投影超平面称为随机投影平面。计算系统mpc1和mpc2之间的多步骤计算的一个目标是为在k-nn模型的训练中使用的每个用户简档pi创建长度m的比特向量bi。在此比特向量bi中,每个比特b
i,j
表示投影平面之一uj和用户简档pi的点积的符号,即,对所有j∈[1,m]来说b
i,j
=sign(uj⊙
pi),其中,

表示相等长度的两个向量的点积。也就是说,每个比特表示用户简档pi位于平面uj的哪一侧。比特值一表示正符号,而比特值零表示负符号。在一些实现方式中,为了保护用户隐私,能够在加密的(例如以秘密份额形式的)用户简档和/或投影超平面上执行以上simhash算法,使得mpc1和mpc2均不能够以明文访问用户简档和/或投影矩阵。
[0082]
在一些实现方式中,在训练期间应用随机投影之前,mpc1和mpc2协作地计算训练数据集中的所有用户简档的平均值(其还被称为均值),即mean_p。为了隐私保护,mean_p的计
算能够是在秘密份额中。mpc1和mpc2然后从每个用户简档pi中减去mean_p,然后随机地投影结果,即p
i-mean_p。能够将减法步骤称为“零均值”。为了隐私保护,也能够在秘密份额中执行零均值步骤。如果在训练过程中应用零均值,则mpc1和mpc2还将在预测时间应用零均值,即对于要预测的请求中的用户简档p,mpc1和mpc2将计算p-mean_p,即在训练期间计算的相同mean_p,然后对p-mean_p应用随机投影(在训练期间选取的秘密份额中使用相同的随机投影矩阵)。
[0083]
在每次多步骤计算结束时,两个计算系统mpc1和mpc中的每一个生成中间结果,该中间结果包括明文的每个用户简档的比特向量、每个用户简档的份额、以及针对每个用户简档的标签的份额。例如,计算系统mpc1的中间结果能够是下表1中所示的数据。计算系统mpc2将具有类似的中间结果,但是每个用户简档和每个标签的份额不同。为了添加额外的隐私保护,mpc集群130中的两个服务器中的每一个仅能够以明文得到m维比特向量的一半,例如,计算系统mpc1得到所有m维比特向量的第一m/2维度,计算系统mpc2得到所有m维比特向量的第二m/2维度。明文是以能够在无需密钥或其他解密设备或其他解密过程的情况下查看或使用的形式的未经计算上标记、特殊格式化或以代码或数据(包括二进制文件)编写的文本。
[0084]
明文的比特向量针对pi的mpc1份额针对labeli的mpc1份额
………bi
……bi 1
……………
[0085]
表1
[0086]
给定单位长度i≠j的两个任意用户简档向量pi和pj,已经表明两个用户简档向量pi和pj的比特向量bi和bj之间的汉明距离以高概率与用户简档向量pi和pj之间的余弦距离成比例,假定随机投影数m足够大。
[0087]
基于以上示出的中间结果并且因为比特向量bi是明文,所以每个计算系统mpc1和mpc2能够例如通过训练独立地创建使用k-nn算法的相应k-nn模型。计算系统mpc1和mpc2能够使用相同或不同的k-nn算法。在图4中图示并且在下面描述用于训练k-nn模型的示例过程。一旦k-nn模型被训练,应用112就能够查询k-nn模型以确定是否将用户添加到用户组。
[0088]
应用112向mpc集群130提交推断请求(216)。在此示例中,应用112将推断请求传送到计算系统mpc1。在其他示例中,应用112能够将推断请求传送到计算系统mpc2。应用112能够响应于来自内容平台150的提交推断请求的请求而提交推断请求。例如,内容平台150能够请求应用112查询k-nn模型以确定是否应该将客户端设备110的用户添加到特定用户组,例如,添加到基于人口统计的用户组。能够将此请求称为推断是否应该将用户添加到用户组的推断请求。
[0089]
为了发起推断请求,内容平台150能够向应用112发送推断请求令牌m
infer
。推断请求令牌m
infer
使得mpc集群130中的服务器能够证实应用112被授权以查询由特定域拥有的特定机器学习模型。如果模型访问控制是可选的,则推断请求令牌m
infer
是可选的。推断请求令牌m
infer
能够具有在下表2中示出和描述的以下项。
[0090][0091]
表2
[0092]
在此示例中,推断请求令牌m
infer
包括七个项和使用内容平台150的私钥基于七个项生成的数字签名。etld 1是有效顶级域(etld)加上比公共后缀多一级。示例etld 1是“example.com”,其中“.com”是顶级域。
[0093]
为了请求对特定用户的推断,内容平台150能够生成推断请求令牌m
infer
并且将该令牌发送到在用户的客户端设备110上运行的应用112。在一些实现方式中,内容平台150使用应用112的公钥对推断请求令牌m
infer
进行加密,使得仅应用112能够使用其与公钥相对应的机密私钥来对推断请求令牌m
infer
进行解密。也就是说,内容平台能够向应用112发送pubkeyenc(m
infer
,application_public_key)。
[0094]
应用112能够对推断请求令牌m
infer
进行解密和验证。应用112能够使用其私钥来对加密的推断请求令牌m
infer
进行解密。应用112能够通过以下步骤来验证推断请求令牌m
infer
:(i)使用与用于生成数字签名的内容平台150的私钥相对应的内容平台150的公钥来验证数字签名以及(ii)确保令牌创建时间戳不是陈旧的,例如,由时间戳指示的时间在验证正在进行的当前时间的阈值时间量内。如果推断请求令牌m
infer
有效,则应用112能够查询mpc集群130。
[0095]
概念上,推断请求能够包括机器学习模型的模型标识符、当前用户简档pi、k(要取出的最近邻的数目)、可选地附加信号(例如,场境信号或数字组件信号)、聚合函数和聚合函数参数。然而,为了防止将用户简档pi以明文形式泄露给计算系统mpc1或mpc2,从而保护用户隐私,应用112能够将用户简档pi拆分成分别针对mpc1和mpc2的两个份额[p
i,1
]和[p
i,2
]。应用112然后能够例如随机地或伪随机地选择两个计算系统mpc1或mpc2之一以进行查询。如果应用112选择计算系统mpc1,则应用112能够向具有第一份额[p
i,1
]和第二份额的加密版本(例如,pubkeyencrypt([p
i,2
],mpc2))的计算系统mpc1发送单个请求。在此示例中,应用112使用计算系统mpc2的公钥来对第二份额[p
i,2
]进行加密以防止计算系统mpc1访问[p
i,2
],这将使得计算系统mpc1能够从[p
i,1
]和[p
i,2
]重构用户简档pi。
[0096]
如在下面更详细地描述的,计算系统mpc1和mpc2协作地计算到用户简档pi的k个最近邻。计算系统mpc1和mpc2然后能够使用若干可能的机器学习技术(例如,二元分类、多类分类、回归等)中的一种以基于k个最近邻用户简档来确定是否将用户添加到用户组。例如,聚合函数能够识别机器学习技术(例如,二元、多类、回归)并且聚合函数参数能够是基于聚合函数。
[0097]
在一些实现方式中,聚合函数参数能够包括内容平台150正在为用户查询k-nn模型的用户组的用户组标识符。例如,内容平台150可能想要知道是否将用户添加到与远足相关并且具有用户组标识符“远足”的用户组。在此示例中,聚合函数参数能够包括“远足”用户组标识符。一般而言,计算系统mpc1和mpc2能够基于作为用户组的成员的k个最近邻的数目,例如基于它们的标签,来确定是否将用户添加到用户组。
[0098]
mpc集群130向应用112提供推断结果(218)。在此示例中,接收到查询的计算系统mpc1将推断结果发送到应用112。推断结果能够指示应用112是否应该将用户添加到零个或多个用户组。例如,用户组结果能够为用户组指定用户组标识符。然而,在此示例中,计算系统mpc1将知道用户组。为了防止这一点,计算系统mpc1可以计算推断结果的份额并且计算系统mpc2可以计算相同推断结果的另一份额。计算系统mpc2能够向计算系统mpc1提供其份额的加密版本,其中份额使用应用112的公钥来加密。计算系统mpc1能够向应用112提供其推断结果的份额以及用户组结果的计算系统mpc2的份额的加密版本。应用112能够对计算系统mpc2的份额进行解密并且从这两个份额计算推断结果。在图5中图示并且在下面描述用于查询k-nn模型以确定是否将用户添加到用户组的示例过程。在一些实现方式中,为了防止计算系统mpc1伪造计算系统mpc2的结果,计算系统mpc2在使用应用112的公钥来对其结果进行加密之前或之后对其结果进行数字签名。应用112使用mpc2的公钥来验证计算系统mpc2的数字签名。
[0099]
应用112更新针对用户的用户组列表(220)。例如,如果推断结果是将用户添加到特定用户组,则应用112能够将用户添加到用户组。在一些实现方式中,应用112能够提示用户以许可将用户添加到用户组。
[0100]
应用112传送对内容的请求(222)。例如,应用112能够响应于加载具有数字组件槽的电子资源而向内容平台150传送对数字组件的请求。在一些实现方式中,请求能够包括包括用户作为成员的用户组的一个或多个用户组标识符。例如,应用112能够从用户组列表获得一个或多个用户组标识符并且在请求的情况下提供用户组标识符。在一些实现方式中,能够使用技术来防止内容平台能够使用户组标识符与从其接收请求的用户、应用112和/或客户端设备112相关联。
[0101]
内容平台150向应用112传送内容(224)。例如,内容平台150能够基于用户组标识符来选择数字组件并且将该数字组件提供给应用112。在一些实现方式中,内容平台150与应用112协作基于用户组标识符来选择数字组件,而不将用户组标识符从应用112中泄露出去。
[0102]
应用112显示或者以其他方式实现接收到的内容(226)。例如,应用112能够将接收到的数字组件显示在电子资源的数字组件槽中。
[0103]
用于生成用户简档的示例过程
[0104]
图3是图示用于生成用户简档并且将用户简档的份额发送到mpc集群的示例过程300的流程图。过程300的操作能够例如由图1的客户端设备110实现,例如由在客户端设备110上运行的应用112实现。过程300的操作还能够被实现为存储在可以是非暂时性的一个或多个计算机可读介质的指令,并且由一个或多个数据处理装置对指令的执行能够使该一个或多个数据处理装置执行过程300的操作。
[0105]
在用户的客户端设备110上执行的应用112接收针对事件的数据(302)。事件可以
是例如电子资源在客户端设备110处的呈现、数字组件在客户端设备110处的呈现、在客户端设备110处与电子资源或数字组件的用户交互、或针对数字组件的转化、或与所呈现的电子资源或数字组件的用户交互或针对所呈现的电子资源或数字组件的转化的缺少。当发生事件时,内容平台150、发布者140或数字组件提供者160能够将与事件相关的数据提供给应用112以用于在生成用户的用户简档中使用。
[0106]
应用112能够为每个内容平台150生成不同的用户简档。也就是说,用户的并且针对特定内容平台150的用户简档可以仅包括从特定内容平台150接收到的事件数据。这通过不与内容平台共享与其他内容平台的事件相关的数据来保护用户隐私。在一些实现方式中,应用112根据内容平台150的请求可以为由内容平台150拥有的每个机器学习模型生成不同的用户简档。基于设计目标,不同的机器学习模型可能需要不同的训练数据。例如,第一模型可以用于确定是否将用户添加到用户组。第二模型可以用于预测用户是否将与数字组件交互。在此示例中,用于第二模型的用户简档能够包括用于第一模型的用户简档不具有的附加数据,例如,用户是否与数字组件交互。
[0107]
内容平台150能够以简档更新令牌m
update
的形式发送事件数据。简档更新令牌m
update
具有下表3中示出和描述的以下项。
[0108][0109][0110]
表3
[0111]
模型标识符识别机器学习模型,例如,k-nn模型,对其来说用户简档将用于训练或者用于进行用户组推断。简档记录是n维特征向量,其包括特定于事件的数据,例如事件的类型、电子资源或数字组件、发生事件的时间和/或内容平台150想要在训练机器学习模型并且进行用户组推断中使用的其他适当的事件数据。数字签名是使用内容平台150的私钥基于七个项来生成的。
[0112]
在一些实现方式中,为了在传输期间保护更新令牌m
update
,内容平台150在将更新令牌m
update
发送到应用112之前对更新令牌m
update
进行加密。例如,内容平台150能够使用应用的公钥来对更新令牌m
update
进行加密,例如,pubkeyenc(m
update
,application_public_key)。
[0113]
在一些实现方式中,内容平台150能够将事件数据以简档更新令牌m
update
的形式发送到应用112,而不对事件数据或更新请求进行编码。例如,源自在应用112内部运行的内容平台150的脚本可以经由脚本api将事件数据和更新请求直接传送到应用112,其中,应用112依靠基于万维网联盟(w3c)源的安全模型和/或(安全超文本转移协议)https来保护事件数据和更新请求免于伪造或泄露。
[0114]
应用112存储针对事件的数据(304)。如果事件数据被加密,则应用112能够使用其与用于对事件数据进行加密的公钥相对应的私钥来对事件数据进行解密。如果以更新令牌m
update
的形式发送事件数据,则应用112能够在存储事件数据之前验证更新令牌m
update
。应用112能够通过以下步骤来验证更新令牌m
update
:(i)使用与用于生成数字签名的内容平台150的私钥相对应的内容平台150的公钥来验证数字签名并且(ii)确保令牌创建时间戳不是陈旧的,例如,由时间戳指示的时间在验证正在进行的当前时间的阈值时间量内。如果更新令牌m
update
有效,则应用112能够存储事件数据,例如,通过存储n维简档记录。如果任何验证失败,则应用112可以忽视更新请求,例如,通过不存储事件数据。
[0115]
对于每个机器学习模型,例如,对于每个独特模型标识符,应用112能够存储针对该模型的事件数据。例如,应用112能够针对每个独特模型标识符维护包括一组n维特征向量(例如,更新令牌的简档记录)的数据结构,并且针对每个特征向量,维护过期时间。模型标识符的示例数据结构被示出在下表4中。
[0116]
特征向量过期n维特征向量过期时间
……
[0117]
表4
[0118]
在接收到有效的更新令牌m
update
后,应用112能够通过将更新令牌m
update
的特征向量和过期时间添加到数据结构来更新包括在更新令牌m
update
中的模型标识符的数据结构。周期性地,应用112能够从数据结构中清除过期的特征向量以减小存储大小。
[0119]
应用112确定是否生成用户简档(306)。例如,应用112可以响应于来自内容平台150的请求而生成针对特定机器学习模型的用户简档。请求可以是生成用户简档并且将用户简档的份额返回给内容平台150。在一些实现方式中,应用112可以将所生成的用户简档直接上传到mpc集群130,例如,而不是将它们发送到内容平台150。为了确保生成并且返回用户简档的份额的请求的安全,内容平台150能够向应用112发送上传令牌m
upload

[0120]
上传令牌m
upload
能够具有与更新令牌m
update
类似的结构,但是具有不同操作(例如,“更新服务器”而不是“累积用户简档”)。上传令牌m
upload
还能够包括用于操作延迟的附加项。操作延迟能够指示应用112延迟计算并且上传用户简档的份额,同时应用112累积更多事件数据,例如,更多特征向量。这使得机器学习模型能够紧接在一些关键事件(例如,加入用户组)之前和之后捕获用户事件数据。操作延迟能够指定延迟时间段。在此示例中,能够使用内容平台的私钥基于表3中的其他七个项和操作延迟来生成数字签名。内容平台150能够使用应用的公钥来以与更新令牌m
update
类似的方式对上传令牌m
upload
进行加密,例如,pubkeyenc(m
upload
,application_public_key),以在传输期间保护上传令牌m
upload

[0121]
应用112能够接收上传令牌m
upload
,在它被加密的情况下对上传令牌m
upload
进行解密,并且验证上传令牌m
upload
。此验证能够类似于用来验证更新令牌m
update
的方式。应用112
能够通过以下步骤来验证上传令牌m
upload
:(i)使用与用于生成数字签名的内容平台150的私钥相对应的内容平台150的公钥来验证数字签名并且(ii)确保令牌创建时间戳不是陈旧的,例如,由时间戳指示的时间在验证正在进行的当前时间的阈值时间量内。如果上传令牌m
upload
有效,则应用112能够生成用户简档。如果任何验证失败,则应用112可以忽视上传请求,例如,通过不生成用户简档。
[0122]
在一些实现方式中,内容平台150能够请求应用112以简档上传令牌m
upload
的形式上传用户简档,而不对上传请求进行编码。例如,源自在应用112内部运行的内容平台150的脚本可以经由脚本api将上传请求直接传送到应用112,其中,应用112依靠基于w3c源的安全模型和/或https来保护上传请求免于伪造或泄露。
[0123]
如果做出不生成用户简档的确定,则过程300能够返回到操作302并且等待来自内容平台150的附加事件数据。如果做出生成用户简档的确定,则应用112生成用户简档(308)。
[0124]
应用112能够基于所存储的事件数据(例如,存储在表4中所示的数据结构中的数据)来生成用户简档。应用112能够基于包括在请求中的模型标识符(例如,上传令牌m
upload
的第1项的内容平台etld 1域和第2项的模型标识符)来访问适当的数据结构。
[0125]
应用112能够通过聚合尚未过期的学习时段中的数据结构中的n维特征向量来计算用户简档。例如,用户简档可以是尚未过期的学习时段中的数据结构中的n维特征向量的平均值。结果是在简档空间中表示用户的n维特征向量。可选地,应用112可以例如使用l2规范化来将n维特征向量规范化为单位长度。内容平台150可以指定可选学习时段。
[0126]
在一些实现方式中,衰减速率能够用于计算用户简档。由于可以存在使用mpc集群130来训练机器学习模型的许多内容平台150并且每个内容平台150可以具有多个机器学习模型,因此存储用户特征向量数据可以产生显著数据存储需求。使用衰减技术能够出于生成用户简档以用于训练机器学习模型的目的基本上减少在每个客户端设备110处存储的数据量。
[0127]
假定对于给定机器学习模型,存在k个特征向量{f1,f2,
…fk
}以及其对应的年龄(record_age_in_secondsi),每个特征向量是n维向量。应用112能够使用以下关系式1来计算用户简档:
[0128]
关系式1:
[0129]
在此关系式中,参数record_age_in_secondsi是简档记录fi已经被存储在客户端设备110处的以秒为单位的时间量并且参数decay_rate_in_seconds是以秒为单位的简档记录的衰减速率(例如,在更新令牌m
update
的第6项中接收)。以这种方式,越新的特征向量承载越大的权重。这还使得应用112能够避免存储特征向量并且仅存储具有恒定存储的简档记录。应用112仅必须为每个模型标识符存储n维向量p和时间戳user_profile_time,而不是为每个模型标识符存储多个个体特征向量。
[0130]
为了初始化n维向量用户简档p和时间戳,应用能够将向量p设置为n个维度的向量,其中每个维度的值为零,并且将user_profile_time设置为纪元。为了随时用新特征向量f
x
更新用户简档p,应用112能够使用以下关系式2:
[0131]
关系式2:
[0132]
当利用关系式2更新用户简档时,应用112还能够将用户简档时间更新为当前时间(current_time)。注意,如果应用112利用以上衰减速率算法计算用户简档,则省略操作304和308。
[0133]
应用112生成用户简档的份额(310)。应用112能够使用伪随机函数来将用户简档pi(例如,n维向量p)拆分成份额。也就是说,应用112能够使用伪随机函数prf(pi)来生成用户简档pi的两个份额{[pi,1],[p
i,2
]}。确切拆分能够取决于由应用112使用的秘密共享算法和密码库。在一些实现方式中,应用使用shamir秘密共享方案。在一些实现方式中,应用使用加性秘密共享方案。如果正在提供一个或多个标签的份额,则应用112也能够同样生成标签的份额。
[0134]
应用112对用户简档pi的份额{[p
i,1
],[p
i,2
]}进行加密(312)。例如,如上所述,应用112能够生成包括用户简档和标签的份额的复合消息并且对该复合消息进行加密以获得加密结果pubkeyencrypt([p
i,1
]||[label
i,1
],mpc1)和pubkeyencrypt([p
i,2
]||[label
i,2
],mpc2)。使用mpc集群130的加密密钥来对份额进行加密防止内容平台150能够以明文访问用户简档。应用112将加密份额传送到内容平台(314)。注意,如果应用112将秘密份额直接传送到计算系统mpc1和mpc2,则省略操作314。
[0135]
用于生成并且使用机器学习模型的示例过程
[0136]
图4是图示用于生成机器学习模型的示例过程400的流程图。过程400的操作能够例如由图1的mpc集群130实现。过程400的操作还能够被实现为存储在可以是非暂时性的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理装置对指令的执行能够使该一个或多个数据处理装置执行过程400的操作。
[0137]
mpc集群130获得用户简档的份额(402)。内容平台150能够请求mpc集群130通过将用户简档的份额传送到mpc集群130来训练机器学习模型。内容平台150能够访问在给定时间段内为机器学习模型从客户端设备110接收的加密份额并且将那些份额上传到mpc集群130。
[0138]
例如,内容平台150能够向计算系统mpc1传送用户简档的加密的第一份额和其标签的加密的第一份额(例如,针对每个用户简档pi的pubkeyencrypt([p
i,1
]||[label
i,1
],mpc1))。如本文所描述的标签以及本公开中的其他流程图能够是或者包括用户组标识符或人口统计特征。类似地,内容平台150能够向计算系统mpc2传送用户简档的加密的第二份额和其标签的加密的第二份额(例如,针对每个用户简档pi的pubkeyencrypt([p
i,2
]||[label
i,2
],mpc2))。
[0139]
在应用112向mpc集群130直接发送用户简档的秘密份额的一些实现方式中,内容平台150能够通过向mpc集群130传送训练请求来请求mpc集群130训练机器学习模型。
[0140]
计算系统mpc1和mpc2创建随机投影平面(404)。计算系统mpc1和mpc2能够协作地创建m个随机投影平面u={u1,u2,

,um}。这些随机投影平面应该保持为两个计算系统mpc1和mpc2之间的秘密份额。在一些实现方式中,计算系统mpc1和mpc2使用diffie-hellman密钥交换技术来创建随机投影平面并且维护其保密性。
[0141]
如在下面更详细地描述的,计算系统mpc1和mpc2将每个用户简档的它们的份额投
影到每个随机投影平面上并且对于每个随机投影平面确定用户简档的份额是否在随机投影平面的一侧上。每个计算系统mpc1和mpc2然后能够基于每个随机投影的结果从用户简档的秘密份额构建秘密份额中的比特向量。用户对比特向量的部分知识,例如,用户简档pi是否在投影平面uk的一侧上允许计算系统mpc1或mpc2获得关于pi的分布的一些知识,这是对用户简档pi具有单位长度的先验知识的增长。为了防止计算系统mpc1和mpc2获得对此信息的访问(例如,在这是对于用户隐私和/或数据安全需要或优选的实现方式中),在一些实现方式中,随机投影平面在秘密份额中,因此计算系统mpc1和mpc2均不能够以明文访问随机投影平面。在其他实现方式中,能够使用秘密共享算法来在随机投影结果上应用随机比特翻转模式,如可选操作406-408中描述的。
[0142]
为了演示如何经由秘密份额使比特翻转,假定存在两个秘密x和y,它们的值以相等概率为零或一。相等性运算[x]==[y]在y==0的情况下将使x的比特翻转,并且在y==1的情况下将保持x的比特。在此示例中,运算将以50%概率随机地使比特x翻转。此运算能够需要两个计算系统mpc1和mpc2之间的远程过程调用(rpc),并且轮数取决于选择的数据大小和秘密共享算法。
[0143]
每个计算系统mpc1和mpc2创建秘密m维向量(406)。计算系统mpc1能够创建秘密m维向量{s1,s2,

sm},其中,每个元素si以相等概率具有零或一的值。计算系统mpc1将其m维向量拆分成两个份额,即第一份额{[s
1,1
],[s
2,1
],

[s
m,1
]}和第二份额{[s
1,2
],[s
2,2
],

[s
m,2
]}。计算系统mpc1能够保持第一份额秘密并且将第二份额提供给计算系统mpc2。计算系统mpc1然后能够丢弃m维向量{s1,s2,

sm}。
[0144]
计算系统mpc2能够创建秘密m维向量{t1,t2,

tm},其中,每个元素ti具有零或一的值。计算系统mpc2将其m维向量拆分成两个份额,即第一份额{[t
1,1
],[t
2,1
],

[t
m,1
]}和第二份额{[t
1,2
],[t
2,2
],

[t
m,2
]}。计算系统mpc2能够保持第一份额秘密并且将第二份额提供给计算系统mpc1。计算系统mpc2然后能够丢弃m维向量{t1,t2,

tm}。
[0145]
两个计算系统mpc1和mpc2使用安全mpc技术来计算比特翻转模式的份额(408)。计算系统mpc1和mpc2能够使用在计算系统mpc1和mpc2之间具有多次往返的秘密份额mpc相等性测试来计算比特翻转模式的份额。比特翻转模式能够是基于上述运算[x]==[y]。也就是说,比特翻转模式能够是{s1==t1,s2==t2,

sm==tm}。令每个sti=(si==ti)。每个sti具有零或一的值。在mpc操作完成之后,计算系统mpc1具有比特翻转模式的第一份额{[st
1,1
],[st
2,1
],

[st
m,1
]}并且计算系统mpc2具有比特翻转模式的第二份额{[st
1,2
],[st
2,2
],

[st
m,2
]}。每个sti的份额使得两个计算系统mpc1和mpc2能够以对两个计算系统mpc1和mpc2中的任何一个不透明的方式使比特向量中的比特翻转。
[0146]
每个计算系统mpc1和mpc2将每个用户简档的其份额投影到每个随机投影平面上(410)。也就是说,对于计算系统mpc1接收到份额的每个用户简档,计算系统mpc1能够将份额[p
i,1
]投影到每个投影平面uj上。对于用户简档的每个份额并且对于每个随机投影平面uj执行此操作产生z x m维度的矩阵r,其中z是可用的用户简档的数目并且m是随机投影平面的数目。能够通过计算投影平面uj与份额[p
i,1
]之间的点积来确定矩阵r中的每个元素r
i,j
,例如,r
i,j
=uj⊙
[p
i,1
]。运算

表示相等长度的两个向量的点积。
[0147]
如果使用比特翻转,则计算系统mpc1能够使用在计算系统mpc1和mpc2之间秘密地共享的比特翻转模式来修改矩阵中的一个或多个元素r
i,j
的值。对于矩阵r中的每个元素ri,j
,计算系统mpc1能够计算[st
j,1
]==sign(r
i,j
)作为元素r
i,j
的值。因此,元素r
i,j
的符号将在其在比特翻转模式中的比特[st
j,1
]中的对应比特具有零值的情况下被翻转。此计算能够需要对计算系统mpc2进行多个rpc。
[0148]
类似地,对于计算系统mpc2接收到份额的每个用户简档,计算系统mpc2能够将份额[p
i,2
]投影到每个投影平面uj上。对于用户简档的每个份额并且对于每个随机投影平面uj执行此操作产生z x m维度的矩阵r’,其中z是可用的用户简档的数目并且m是随机投影平面的数目。能够通过计算投影平面uj与份额[p
i,2
]之间的点积来确定矩阵r’中的每个元素r
i,j’,例如,r
i,’j
=uj⊙
[p
i,2
]。运算

表示相等长度的两个向量的点积。
[0149]
如果使用比特翻转,则计算系统mpc2能够使用在计算系统mpc1和mpc2之间秘密地共享的比特翻转模式来修改矩阵中的一个或多个元素r
i,j’的值。对于矩阵r中的每个元素r
i,j’,计算系统mpc2能够计算[st
j,2
]==sign(r
i,j’)作为元素r
i,j’的值。因此,元素r
i,j’的符号将在其在比特翻转模式中的位stj中的对应比特具有零值的情况下被翻转。此计算能够需要对计算系统mpc1进行多个rpc。
[0150]
计算系统mpc1和mpc2重构比特向量(412)。计算系统mpc1和mpc2能够基于具有完全相同大小的矩阵r和r’来为用户简档重构比特向量。例如,计算系统mpc1能够将矩阵r的列的一部分发送到mpc2并且计算系统mpc2能够将矩阵r’的列的剩余部分发送到mpc1。在特定示例中,计算系统mpc1能够将矩阵r的列的前半部发送到计算系统mpc2并且计算系统mpc2能够将矩阵r’的列的后半部发送到mpc1。尽管在此示例中使用列进行水平重构并且优选列来保护用户隐私,但是在其他示例中能够使用行进行垂直重构。
[0151]
在此示例中,计算系统mpc2能够将矩阵r’的列的前半部与从计算系统mpc1接收到的矩阵r的列的前半部组合以用明文重构比特向量的前半部(即,m/2维度)。类似地,计算系统mpc1能够将矩阵r的列的后半部与从计算系统mpc2接收到的矩阵r’的列的后半部组合以用明文重构比特向量的后半部(即,m/2维度)。概念上,计算系统mpc1和mpc2现在已经组合两个矩阵r和r’中的对应份额以用明文重构比特矩阵b。此比特矩阵b将包括为机器学习模型从内容平台150接收其份额的每个用户简档的投影结果(投影到每个投影平面上)的比特向量。mpc集群130中的两个服务器中的每一个以明文拥有比特矩阵b的一半。
[0152]
然而,如果使用比特翻转,则计算系统mpc1和mpc2已经按针对机器学习模型固定的随机模式使矩阵r和r’中的元素的比特翻转。此随机比特翻转模式对两个计算系统mpc1和mpc2中的任何一个不透明,使得计算系统mpc1和mpc2均不能够从投影结果的比特向量推断原始用户简档。密码设计进一步防止mpc1或mpc2通过水平地分割比特向量来推断原始用户简档,即计算系统mpc1以明文保持投影结果的比特向量的后半部并且计算系统mpc2以明文保持投影结果的比特向量的前半部。
[0153]
计算系统mpc1和mpc2生成机器学习模型(414)。计算系统mpc1能够使用比特向量的后半部来生成k-nn模型。类似地,计算系统mpc2能够使用比特向量的前半部来生成k-nn模型。使用矩阵的比特翻转和水平分割来生成模型应用深度防御原理来保护用于生成模型的用户简档的保密性。
[0154]
一般而言,每个k-nn模型表示一组用户的用户简档之间的余弦相似度(或距离)。由计算系统mpc1生成的k-nn模型表示比特向量的后半部之间的相似度,而由计算系统mpc2生成的k-nn模型表示比特向量的前半部之间的相似度。例如,每个k-nn模型能够定义其比
特向量的一半之间的余弦相似度。
[0155]
能够将由计算系统mpc1和mpc2生成的两个k-nn模型称为k-nn模型,该k-nn模型具有如上所述的独特模型标识符。计算系统mpc1和mpc2能够存储它们的模型以及针对用于生成模型的每个用户简档的标签的份额。内容平台150然后能够查询模型以针对用户来对用户组进行推断。在一些实现方式中,为了保护用户隐私,标签例如以秘密份额的形式加密。
[0156]
用于使用机器学习模型来推断用户组的示例过程
[0157]
图5是图示用于使用机器学习模型来将用户添加到用户组的示例过程500的流程图。过程500的操作能够例如由图1的mpc集群130和客户端设备110(例如,在客户端设备110上运行的应用112)实现。过程500的操作还能够被实现为存储在可以是非暂时性的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理装置对指令的执行能够使该一个或多个数据处理装置执行过程500的操作。
[0158]
mpc集群130接收对给定用户简档的推断请求(502)。在用户的客户端设备110上运行的应用112能够例如响应于来自内容平台150的请求而将推断请求传送到mpc集群130。例如,内容平台150能够向应用112传送推断请求令牌m
infer
以请求应用112将推断请求提交到mpc集群130。推断请求能够是询问是否应该将用户添加到任何数目的用户组。
[0159]
推断请求令牌m
infer
能够包括用户的给定用户简档的份额、机器学习模型(例如,k-nn模型)的模型标识符以及要用于推断的所有者域、要用于推断的给定用户简档的最近邻的数目k、附加信号(例如,场境或数字组件信号)、要用于推断的聚合函数和要用于推断的任何聚合函数参数、以及由所有者域使用所有者域机密隐私密钥创建的所有以上信息上的签名。
[0160]
如上所述,为了防止将给定用户简档pi以明文形式泄露给计算系统mpc1或mpc2,从而保护用户隐私,应用112能够将给定用户简档pi拆分成分别针对mpc1和mpc2的两个份额[p
i,1
]和[p
i,2
]。应用112然后能够与给定用户简档的第一份额[p
i,1
]和给定用户简档的第二份额的加密版本(例如,pubkeyencrypt([p
i,2
],mpc2))一起向计算系统mpc1发送单个推断请求。推断请求还可以包括推断请求令牌m
infer
,使得mpc集群130能够对推断请求进行认证。通过发送包括第一份额和加密的第二份额的推断请求,由应用112发送的传出请求的数目减少,从而导致在客户端设备110处的计算、带宽和电池节省。
[0161]
在其他实现方式中,应用112能够将给定用户简档的第一份额[p
i,1
]发送到计算系统mpc1并且将给定用户简档的第二份额[p
i,2
]发送到计算系统mpc2。通过在不经过计算系统mpc1的情况下将给定用户简档的第二份[p
i,2
]发送到计算系统mpc2,第二份额不需要被加密以防止计算系统mpc1访问给定用户简档的第二份额[p
i,2
]。
[0162]
每个计算系统mpc1和mpc2在秘密份额表示中识别给定用户简档的k个最近邻(504)。计算系统mpc1能够使用给定用户简档的第一份额[p
i,1
]来计算给定用户简档的比特向量的其一半。为了生成比特向量,计算系统mpc1能够使用图4的过程400的操作410和412。也就是说,计算系统mpc1能够使用针对k-nn模型生成的随机投影向量来投影给定用户简档的份额[p
i,1
]并且创建针对给定用户简档的比特向量的秘密份额。如果使用比特翻转来生成k-nn模型,则计算系统mpc1然后能够使用用于生成k-nn模型的比特翻转模式的第一份额{[st
1,1
],[st
2,1
],

[st
m,1
]}来修改针对给定用户简档的比特向量的秘密份额的元素。
[0163]
类似地,计算系统mpc1能够向计算系统mpc2提供给定用户简档的加密的第二份额
pubkeyencrypt([p
i,2
],mpc2)。计算系统mpc2能够使用其私钥来对给定用户简档的第二份额[p
i,2
]进行解密并且使用给定用户简档的第二份额[p
i,2
]来计算针对给定用户简档的比特向量的其一半。也就是说,计算系统mpc2能够使用针对k-nn模型生成的随机投影向量来投影给定用户简档的份额[p
i,2
]并且创建针对给定用户简档的比特向量。如果使用比特翻转来生成k-nn模型,则计算系统mpc2然后能够使用用于生成k-nn模型的比特翻转模式的第二份额{[st
1,2
],[st
2,2
],

[st
m,2
]}来修改针对给定用户简档的比特向量的元素。计算系统mpc1和mpc2然后利用水平分割重构比特向量,如图4中的操作412中描述的。在重构完成之后,计算系统mpc1具有针对给定用户简档的整体比特向量的前半部并且计算系统mpc2具有针对给定用户简档的整体比特向量的后半部。
[0164]
每个计算系统mpc1和mpc2使用针对给定用户简档的比特向量的其一半以及其k-nn模型来识别k’个最近邻用户简档,其中,k’=
ɑ
×
k,其中,
ɑ
是基于实际生产数据和统计分析凭经验确定的。例如
ɑ
=3或另一适当的数。计算系统mpc1能够计算整体比特向量的前半部与针对k-nn模型的每个用户简档的比特向量之间的汉明距离。计算系统mpc1然后基于所计算的汉明距离来识别k’个最近邻,例如,具有最低汉明距离的k’个用户简档。换句话说,计算系统mpc1基于给定用户简档的份额和使用多个用户简档训练的k-最近邻模型来识别一组最近邻用户简档。在下表5中示出了表形式的示例结果。
[0165]
行id汉明距离(明文)用户简档的份额标签的份额id
i,1
[p
i,1
][label
i,1
]
…………
[0166]
表5
[0167]
在表5中,每行是针对特定最近邻用户简档的并且包括针对每个用户简档的比特向量的前半部与针对由计算系统mpc1计算的给定用户简档的比特向量之间的汉明距离。针对特定最近邻用户简档的行还包括该用户简档的第一份额以及与该用户简档相关联的标签的第一份额。如本文所描述的,标签能够是或者包括用户组标识符或人口统计特征。
[0168]
类似地,计算系统mpc2能够计算整体比特向量的后半部与针对k-nn模型的每个用户简档的比特向量之间的汉明距离。计算系统mpc2然后基于所计算的汉明距离来识别k’个最近邻,例如,具有最低汉明距离的k’个用户简档。在下表5中示出了表形式的示例结果。
[0169]
行id汉明距离(明文)用户简档的份额标签的份额jd
j,2
[p
j,2
][label
j,2
]
…………
[0170]
表6
[0171]
在表6中,每行是针对特定最近邻用户简档的并且包括该用户简档与由计算系统mpc2计算的给定用户简档之间的汉明距离。针对特定最近邻用户简档的行还包括该用户简档的第二份额以及与该用户简档相关联的标签的第二份额。
[0172]
计算系统mpc1和mpc2能够与彼此交换行标识符(行id)的列表和汉明距离对。此后,每个计算系统mpc1和mpc2能够用相同算法和输入数据独立地选择k个最近邻。例如,计算系统mpc1能够找到对来自计算系统mpc1和mpc2二者的部分查询结果共同的行标识符。对于共同的行标识符中的每个i,计算系统mpc1从两个部分汉明距离计算组合的汉明距离di,例如,di=d
i,1
d
i,2
。计算系统mpc1然后能够基于组合的汉明距离di来对共同的行标识符进行排序
并且选择k个最近邻。能够将用于k个最近邻的行标识符表示为id={id1,

idk}。能够证明的是,如果
ɑ
足够大,则在以上算法中确定的k个最近邻以高概率是真正的k个最近邻。然而,
ɑ
的较大值导致高计算成本。在一些实现方式中,mpc1和mpc2参与私有集合交集(psi)算法以确定对来自计算机系统mpc1和mpc2二者的部分查询结果共同的行标识符。此外,在一些实现方式中,mpc1和mpc2参与增强私有集合交集(psi)算法以对于来自计算机系统mpc1和mpc2二者的部分查询结果共同的行标识符计算di=d
i,1
d
i,2
,并且不向mpc1或mpc2揭示任何内容而是通过di确定的前k个最近邻。
[0173]
做出是否将用户添加到用户组的确定(506)。能够基于k个最近邻简档以及其相关联的标签来做出此确定。该确定还是基于所使用的聚合函数和用于该聚合函数的任何聚合参数。能够基于机器学习问题的性质,例如二元分类、回归(例如,使用算术均值或均方根)、多类分类和加权k-nn,来选取聚合函数。确定是否将用户添加到用户组的每个方式能够包括mpc集群130与在客户端110上运行的应用112之间的不同交互,如在下面更详细地描述的。将不同用户添加到共同的用户组能够有利地确保具有类似人口统计的用户被归类在一起。
[0174]
如果做出不将用户添加到用户组的确定,则应用112可以不将用户添加到用户组(508)。如果做出将用户添加到用户组的确定,则应用112能够将用户添加到用户组,例如,通过更新在客户端设备110处存储的用户组列表以包括用户组的用户组标识符(510)。
[0175]
如以上所指出的,应用112能够向mpc集群130提交推断请求,该mpc集群130作为响应能够查询机器学习模型(例如,k-nn模型)以发送能够指示应用112是否应该将用户添加到零个或多个用户组的推断结果。在一些实现方式中,在推断结果指示应用112应该将用户添加到多个用户组的情况下,mpc集群130能够在生成或者传送推断结果之前防止用户被添加到相反组(即,分类在相反组中)(例如,如果用户被自我声明或者确定为30-35岁,则用户可以不被归类在针对50-60岁的用户组中)。
[0176]
示例二元分类推断技术
[0177]
对于二元分类,推断请求能够包括threshold、l
true
和l
false
作为聚合函数参数。标签值是布尔类型,即真或假。threshold参数能够表示为了将用户添加到用户组l
true
而必须具有真值的标签的k个最近邻简档的阈值百分比。否则用户将被添加到用户组l
false
。在一种方法中,如果具有为真的标签值的最近邻用户简档的数目大于threshold和k的乘积,则mpc集群130能够指示应用112将用户添加到用户组l
true
(否则l
false
)。然而,计算系统mpc1将学习推断结果,例如,用户应该加入的用户组。
[0178]
为了保护用户隐私,推断请求能够包括明文的阈值、针对计算系统mpc1的第一份额[l
true,1
]和[l
false,1
]、以及针对计算系统mpc2的加密的第二份额pubkeyencrypt([l
true,2
]||[l
false,2
]||application_public_key,mpc2)。在此示例中,应用112能够从[l
true,2
]、[l
fasle,2
]和应用112的公钥生成复合消息,如由符号||所表示的,并且使用计算系统mpc2的公钥来对此复合消息进行加密。从计算系统mpc1到应用112的推断响应能够包括由计算系统mpc1确定的推断结果的第一份额[l
result,1
]和由计算系统mpc2确定的推断结果的第二份额[l
result,2
]。
[0179]
为了防止第二份额被计算系统mpc1访问并且因此使得计算系统mpc1能够以明文获得推断结果,计算系统mpc2能够向计算系统mpc1发送推断结果的第二份额[l
result,2
]的加密
(和可选地数字签名)版本,例如,pubkeysign(pubkeyencrypt([l
result,2
],application_public_key),mpc2),以用于包括在发送到应用112的推断响应中。在此示例中,应用112能够使用与用于生成数字签名的计算系统mpc2的私钥相对应的计算系统mpc2的公钥来验证数字签名,并且使用与用于对推断结果的第二份额[l
result,2
]进行加密的公钥(application_public_key)相对应的应用112的私钥来对推断结果的第二份额[l
result,2
]进行解密。
[0180]
应用112然后能够从第一份额[l
result,1
]和第二份额[l
result,2
]重构推断结果l
result
。使用数字签名使得应用112能够例如由计算系统mpc1检测来自计算系统mpc2的结果的伪造。取决于所期望的安全级别、什么方操作mpc集群130的计算系统和所假定的安全模型,可以不需要数字签名。
[0181]
计算系统mpc1和mpc2能够使用mpc技术来确定二元分类结果的份额[l
result,1
]和[l
result,2
]。在二元分类中,用于用户简档的label1的值是零(假)或一(真)。假定所选择的k个最近邻由标识符{id1,

idk}识别,计算系统mpc1和mpc2能够计算针对k个最近邻用户简档的标签之和(sum_of_labels),其中和通过以下关系式3来表示:
[0182]
关系式3:sum_of_labels=∑
i∈{id1,...idk}
labeli[0183]
为了确定和,计算系统mpc1将id(即,{id1,...idk})发送到计算系统mpc2。计算系统mpc2能够验证id中的行标识符的数目大于阈值以强制执行k-匿名。计算系统mpc2然后能够使用以下关系式4来计算标签之和[sum_of_labels2]的第二份额:
[0184]
关系式4:[sum_of_labels2]=∑i∈
{id1,...iak}
[label
i,2
]
[0185]
计算系统mpc1还能够使用以下关系式5来计算标签之和[sum_of_labels1]的第一份额:
[0186]
关系式5:[sum_of_labels1]=∑
i∈{id1,...idk}
[label
i,1
]
[0187]
如果标签之和sum_of_labels是计算系统mpc1和mpc2应该尽可能少知道的机密信息,则mpc1和mpc2能够执行密码协议来计算sum_of_labels1是否<threshold
×
k,即计算系统mpc1能够计算标签之和的第一份额[sum_of_labels1]是否低于阈值,例如,[below_threshold1]=[sum_of_labels1]<threshold
×
k。类似地,计算系统mpc2能够计算标签之和的第二份额[sum_of_labels2]是否低于阈值,例如,[below_threshold2]=[sum_of_labels2]<threshold
×
k。计算系统mpc1能够继续通过[below_threshold1]
×
[l
false,1
] (1-[below_threshold1])
×
[l
true,1
]来计算推断结果[l
result,1
]。类似地,计算系统mpc2能够通过[below_threshold2]
×
[l
false,2
] (1-[below_threshold2])
×
[l
true,2
]来计算[l
result,2
]。
[0188]
如果标签之和sum_of_labels不是机密信息,则计算系统mpc1和mpc2能够从[sum_of_labels1]和[sum_of_labels2]重构sum_of_labels。计算系统mpc1和mpc2然后能够将参数below_threshold设置为sum_of_labels<threshold
×
k,例如,如果它低于阈值则值为一或者如果不低于阈值则值为零。
[0189]
在计算参数below_threshold之后,计算系统mpc1和mpc2能够继续确定推断结果l
result
。例如,计算系统mpc2能够根据below_threshold的值来将[l
result,2
]设置为[l
true,2
]或[l
false,2
]。例如,计算系统mpc2能够在标签之和不低于阈值的情况下将[l
result,2
]设置为[l
true,2
]或者在标签之和低于阈值的情况下将[l
result,2
]设置为[l
false,2
]。计算系统mpc2然后能够将推断结果的加密的第二份额(pubkeyencrypt([l
result,2
],application_public_
能够从针对该标签的两个份额[frequency
i,1
]和[frequency
i,2
]重构frequencyi。计算系统mpc1和mpc2然后能够确定frequency
index
具有最大值的索引参数(index),例如,index=argmaxi(frequencyi)。
[0201]
计算系统mpc2然后能够在其查找表中查找与具有最高频率的标签相对应的份额[l
result,2
]并且将pubkeyencrypt([l
result,2
],application_public_key)返回给计算系统mpc1。计算系统mpc1能够在其查找表中类似地查找与具有最高频率的标签相对应的份额[l
result,1
]。计算系统mpc1然后能够向应用112发送包括两个份额(例如,[l
result,1
]和pubkeyencrypt([l
result,2
],application_public_key))的推断响应。如上所述,第二份额能够由mpc2数字签名以防止计算系统mpc1伪造计算系统mpc2的响应。应用112然后能够如上所述基于这两个份额来计算推断结果,并且将用户添加到通过推断结果识别的用户组。
[0202]
示例回归推断技术
[0203]
对于回归,与每个用户简档p相关联的标签必须是数值的。内容平台150能够指定阈值的有序列表,例如,(-∞<t0<t1<

<tn<∞),以及用户组标识符的列表,例如,{l0,l1,...ln,l
n 1
}。另外,内容平台150能够指定聚合函数,例如,算术均值或均方根。
[0204]
在找到的k个最近邻内,mpc集群130计算标签值的均值(result)并且然后使用result来查找映射以找到推断结果l
result
。例如,mpc集群130能够使用以下关系式8以基于标签值的均值来识别标签:
[0205]
关系式8:
[0206]
如果result≤t0,则l
result

l0;
[0207]
如果result>tn,则l
result

l
n 1

[0208]
如果t
x
<result≤t
x 1
,则l
result

l
x 1
[0209]
也就是说,如果结果小于或等于阈值to,则推断结果l
result
是l0。如果结果大于阈值tn,则推断结果l
result
是l
n 1
。否则,如果结果大于阈值t
x
并且小于或等于阈值t
x 1
,则推断结果l
result
是l
x 1
。计算系统mpc1然后请求应用112将用户添加到与推断结果l
result
相对应的用户组,例如,通过向应用112发送包括推断结果l
result
的推断响应。
[0210]
与上述其他分类技术类似,能够从计算系统mpc1和mpc2隐藏推断结果l
result
。为了这样做,来自应用112的推断请求能够包括针对计算系统mpc1的标签的第一份额[l
i,1
]和针对计算系统mpc2的标签的加密的第二份额[l
i,2
](例如,pubkeyencrypt([l
0,2
||

||l
n 1,2
||application_public_key,mpc2))。
[0211]
由计算系统mpc1发送的推断结果能够包括由计算系统mpc1生成的推断结果的第一份额[l
result1
]。与二元分类类似,为了防止第二份额被计算系统mpc1访问并且因此使得计算系统mpc1能够以明文获得推断结果,计算系统mpc2能够向计算系统mpc1发送推断结果的第二份额[l
result,2
]的加密(和可选地数字签名)版本(例如,pubkeysign(pubkeyencrypt([l
result,2
],application_public_key),mpc2))以用于包括在发送到应用112的推断结果中。应用112能够从[l
result,1
]和[l
result,2
]重构推断结果l
result

[0212]
当聚合函数是算术均值时,与二元分类类似,计算系统mpc1和mpc2计算标签之和sum_of_labels。如果标签之和是不敏感的,则计算系统mpc1和mpc2能够计算两个份额[sum_of_labels1]和[sum_of_labels2],并且然后基于这两个份额来重构sum_of_labels。计算系统mpc1和mpc2然后能够通过将标签之和除以最近邻标签的数量(例如,除以k)来计算标签的
平均值。
[0213]
计算系统mpc1然后能够使用关系式8来将平均值与阈值进行比较以识别与平均值相对应的标签的第一份额并且将第一份额[l
result,1
]设置为所识别的标签的第一份额。类似地,计算系统mpc2能够使用关系式8来将平均值与阈值进行比较以识别与平均值相对应的标签的第二份额并且将第二份额[l
result,2
]设置为标识符标签的第二份额。计算系统mpc2能够使用应用112的公钥来对第二份额[l
result,2
]进行加密,例如,pubkeyencrypt([l
result,2
],application_public_key),并且将加密的第二份额发送到计算系统mpc1。计算系统mpc1能够将第一份额和加密的第二份额(其能够可选地如上所述被数字签名)提供给应用112。应用112然后能够将用户添加到通过标签(例如,用户组标识符)l
result
识别的用户组。
[0214]
如果标签之和是敏感的,则计算系统mpc1和mpc2可能无法以明文构造sum_of_labels。替代地,计算系统mpc1能够针对计算掩码[mask
i,1
]=[sum_of_labels1]《ti×
k。此计算能够需要计算系统mpc1和mpc2之间的一次或多次往返。接下来,计算系统mpc1能够计算并且计算系统mpc2能够计算此操作中的相等性测试能够需要计算系统mpc1和mpc2之间的多次往返。
[0215]
另外,计算系统mpc1能够计算能够计算并且计算系统mpc2能够计算能够计算对于当且仅当acci==1时mpc集群130将返回li,而在use_default==1的情况下将返回l
n 1
。能够在以下关系式9中表示此条件。
[0216]
关系式9:
[0217]
对应的密码实现方式能够通过以下关系式10和11来表示。
[0218]
关系式10:
[0219]
关系式11:
[0220]
这些计算在li是明文的情况下不需要计算系统mpc1和mpc2之间的任何往返计算,而在li是在秘密份额中的情况下需要一次往返计算。计算系统mpc1能够将结果的两个份额(例如,[l
result,1
]和[l
result,2
])提供给应用112,其中第二份额由mpc2如上所述加密并且可选地数字签名。以这种方式,应用112能够在不用计算系统mpc1或mpc2学习关于中间或最终结果的任何内容的情况下确定推断结果l
result

[0221]
对于均方根,计算系统mpc1将id(即,{id1,

idk})发送到计算系统mpc2。计算系统mpc2能够验证id中的行标识符的数目大于阈值以强制执行k-匿名。计算系统mpc2使用以下关系式12来计算sum_of_square_labels参数(例如,标签值的平方和)的第二份额。
[0222]
关系式12:
[0223]
类似地,计算系统mpc1能够使用以下关系式13来计算sum_of_square_labels参数的第一份额。
[0224]
关系式13:
[0225]
假定sum_of_square_labels参数是不敏感的,计算系统mpc1和mpc2能够从两个份额[sum_of_square_labels1]和[sum_of_square_labels2]重构sum_of_square_labels参数。计算系统mpc1和mpc2能够通过将sum_of_squares_labels除以最近邻标签的数量(例如,除以k)、然后计算平方根来计算标签的均方根。
[0226]
不管平均值是经由算术均值还是均方根计算的,计算系统mpc1然后能够使用关系式8来将平均值与阈值进行比较以识别与平均值相对应的标签并且将第一份额[l
result,1
]设置为所识别的标签。类似地,计算系统mpc2能够使用关系式8来将平均值与阈值进行比较以识别与平均值相对应的标签(或标签的秘密份额)并且将第二份额[l
result,2
]设置为标识符标签(的秘密份额)。计算系统mpc2能够使用应用112的公钥来对第二份额[l
result,2
]进行加密,例如,pubkeyencrypt([l
result,2
],application_public_key),并且将加密的第二份额发送到计算系统mpc1。计算系统mpc1能够将第一份额和加密的第二份额(其能够可选地如上所述被数字签名)作为推断结果提供给应用112。应用112然后能够将用户添加到通过l
result
的标签(例如,用户组标识符)识别的用户组。如果sum_of_square_labels参数是敏感的,则计算系统mpc1和mpc2能够执行如算术均值示例中使用的类似密码协议来计算推断结果的份额。
[0227]
在用于推断分类和回归问题的结果的以上技术中,所有k个最近邻在最终推断结果上具有相等影响,例如,相等权重。对于许多分类和回归问题,如果k个邻居中的每一个被指配了当邻居与查询参数pi之间的汉明距离增加时单调减小的权重,则能够改进模型质量。具有此性质的公共核函数是epanechnikov(抛物线)核函数。能够以明文计算汉明距离和权重二者。
[0228]
稀疏特征向量用户简档
[0229]
当电子资源的特征被包括在用户简档中并且用于生成机器学习模型时,所得的特征向量能够包括高基数分类特征,诸如域、url和ip地址。这些特征向量是稀疏的,其中大多数元素具有零值。应用112能够将特征向量拆分成两个或更多个密集特征向量,但是机器学习平台将消耗太多客户端设备上传带宽而不实用。为了防止此问题,能够适配上述系统和技术以更好地处理稀疏特征向量。
[0230]
当向客户端设备提供针对事件的特征向量时,被包括在电子资源中的内容平台150的计算机可读代码(例如,脚本)能够调用应用(例如,浏览器)api来指定针对事件的特征向量。此代码或内容平台150能够确定特征向量(的某个部分)是密集的还是稀疏的。如果特征向量(或它的某个部分)是密集的,则代码能够作为api参数传入数值的向量中。如果特征向量(或它的某个部分)是稀疏的,则代码能够传入映射中,映射例如针对具有非零特征值的那些特征元素的索引键/值对,其中键是此类特征元素的名称或索引。如果特征向量(或它的某个部分)是稀疏的,并且非零特征值总是相同值,例如1,则代码能够传入其元素是此类特征元素的名称或索引的集合中。
[0231]
当聚合特征向量以生成用户简档时,应用112能够不同地处理密集特征向量和稀疏特征向量。从密集向量计算的用户简档(或它的某个部分)仍然是密集向量。从映射计算的用户简档(或它的某个部分)仍然是映射,直到填充率足够高以致映射不再节省存储成
本。那时,应用112将稀疏向量表示转化成密集向量表示。
[0232]
如果聚合函数是求和,则从集合计算的用户简档(或它的某个部分)能够是映射。例如,每个特征向量能够具有分类特征“访问的域”。聚合函数,即求和,将计算用户访问了发布者域的次数。如果聚合函数是逻辑or,则从集合计算的用户简档(或它的某个部分)能够仍然是集合。例如,每个特征向量能够具有分类特征“访问的域”。聚合函数,即逻辑or,将计算用户访问的所有发布者域,而不管访问的频率如何。
[0233]
为了将用户简档发送到mpc集群130以进行ml训练和预测,应用112可以利用支持秘密份额的任何标准密码库来拆分用户简档的密集部分。为了在不显著地增加客户端设备上传带宽和计算成本的情况下拆分用户简档的稀疏部分,能够使用函数秘密共享(fss)技术。在此示例中,内容平台150从1开始顺序地将独特索引指配给用户简档的稀疏部分中的每个可能的元素。假定索引的有效范围包含性地在[1,n]的范围内。
[0234]
对于由应用计算的用户简档中的具有非零值pi的第i个元素,1≤i≤n,应用112能够创建具有以下性质的两个伪随机函数(prf)gi和hi:
[0235]
对于任何j,gi(j) hi(j)=0,其中1≤j≤n并且j≠i
[0236]
否则gi(j) hi(j)=pi。
[0237]
使用fss,gi或hi能够例如通过log2(n)
×
size_of_tag个比特简明地表示,并且不可能从gi或hi推断i或pi。为了防止暴力安全攻击,size_of_tag通常是96个比特或更多个比特。在n个维度之中,假定存在具有非零值的n个维度,其中n<<n。对于n个维度中的每一个,应用112能够如上所述构造两个伪随机函数g和h。此外,应用112能够将所有n个函数g的简明表示包装成向量g,并且以相同次序将n个函数h的简明表示包装成另一向量h。
[0238]
另外,应用112能够将用户简档p的密集部分拆分成两个加性秘密份额[p1]和[p2]。应用112然后能够将[p1]和g发送到计算系统mpc1并且将[p2]和h发送到mpc2。传送g需要log2(n)
×
size_of_tag=n
×
log2(n)
×
size_of_tag个比特,其在n<<n时可以远小于在应用112在密集向量中传送用户简档的稀疏部分的情况下需要的n个比特。
[0239]
当计算系统mpc1接收到g1并且计算系统mpc2接收到h1时,两个计算系统mpc1和mpc2能够独立地创建shamir秘密份额。对于其中1≤j≤n的任何j,计算系统mpc1在二维坐标[1,2
×gi
(j)]上创建点,并且计算系统mpc2在二维坐标[-1,2
×hi
(j)]上创建点。如果两个计算系统mpc1和mpc2协作地构造通过两个点的线y=a0 a1×
x,则形成关系式14和15。
[0240]
关系式14:2
×gi
(j)=a0 a1[0241]
关系式15:2
×hi
(j)=a
0-a1[0242]
如果将这两个关系式加在一起,则其产生2
×gi
(j) 2
×hi
(j)=(a0 a1) (a
0-a1),其简化为a0=gi(j) hi(j)。因此,[1,2
×gi
(j)]和[-1,2
×hi
(j)]是稀疏数组中的第i个非零元素(即pi)的两个秘密份额。
[0243]
在机器学习训练过程的随机投影操作期间,计算系统mpc1能够从[p1]和g二者为用户简档独立地组装其秘密份额的向量。按照以上描述,已知|g|=n,其中n是用户简档的稀疏部分中的非零元素的数目。另外,已知用户简档的稀疏部分是n维,其中n《《n。
[0244]
假定g={g1,
…gn
}。对于其中1≤j≤n并且1≤k≤n的第j个维度,令类似地,令h={h1,
…hn
}。计算系统mpc2能够独立地计算
容易证明[sp
j,1
]和[sp
j,2
]是spj的加性秘密份额,即,用户简档的原始稀疏部分中的第j个元素的秘密值。
[0245]
令[sp1]={[sp
1,1
],

[sp
n,1
]},即,用户简档的稀疏部分的密集表示中的重构秘密份额。通过级联[p1]和[sp1],计算系统mpc1能够重构原始用户简档的完整秘密份额。计算系统mpc1然后能够随机地投影[p1]||[sp1]。类似地,计算系统mpc2能够随机地投影[p2]||[sp2]。在投影之后,上述技术能够用于以类似方式生成机器学习模型。
[0246]
图6是用于在系统600中生成针对用户简档的推断结果的示例性框架的概念图。更具体地,该图描绘共同地组成系统600的随机投影逻辑610、第一机器学习模型620和最终结果计算逻辑640。在一些实现方式中,系统600的功能性可以通过mpc集群中的多个计算系统以安全和分布式方式提供。例如,参考系统600描述的技术可以类似于以上参考图2-5描述的技术。例如,与随机投影逻辑610相关联的功能性可以对应于以上参考图2和图4描述的一种或多种随机投影技术的功能性。类似地,在一些示例中,第一机器学习模型620可以对应于以上参考图2、图4和图5描述的机器学习模型中的一个或多个,诸如以上参考步骤214、414和504描述的那些中的一个或多个。在一些示例中,可以由第一机器学习模型620维护和利用并且存储在一个或多个存储器单元中的加密的标签数据集626能够包括针对用于生成或者训练或者评价训练的质量或者微调训练第一机器学习模型620的过程的每个用户简档的至少一个真实标签,诸如可以如以上参考图5的步骤506所描述的那样与k个最近邻简档相关联的那些。也就是说,加密的标签数据集626可以包括针对n个用户简档中的每一个的至少一个真实标签,其中n是用于训练第一机器学习模型620的用户简档的总数。例如,加密的标签数据集626可以包括针对n个用户简档中的第j个用户简档(pj)的至少一个真实标签(lj)、针对n个用户简档中的第k个用户简档(pk)的至少一个真实标签(lk)、针对n个用户简档中的第l个用户简档(p
l
)的至少一个真实标签(l
l
),其中,1≤j,k,l≤n,依此类推。如与用于生成或训练第一机器学习模型620的用户简档相关联并且作为加密的标签数据集626的一部分包括的此类真实标签能够被加密,例如,表示为秘密份额。附加地,在一些示例中,最终结果计算逻辑640可以对应于关于执行用于生成推断结果的一个或多个操作(如以上参考图2中的步骤218描述的那些操作中的一个或多个)采用的逻辑。第一机器学习模型620和最终结果计算逻辑640能够被配置成采用包括二元分类、回归和/或多类分类技术的一种或多种推断技术。
[0247]
在图6的示例中,系统600被描绘为在推断时间执行一个或多个操作。能够采用随机投影逻辑610来对用户简档609(pi)应用随机投影变换以获得变换后的用户简档619(pi′
)。如通过采用随机投影逻辑610所获得的变换后的用户简档619能够是明文的。例如,可以至少部分地采用随机投影逻辑610来用随机噪声混淆特征向量,诸如在用户简档609和其他用户简档中包括或指示的特征向量,以保护用户隐私。
[0248]
能够训练并且随后利用第一机器学习模型620来接收变换后的用户简档619作为输入并且响应于其而生成至少一个预测标签629如使用第一机器学习模型620所获得的至少一个预测标签629能够被加密。在一些实现方式中,第一机器学习模型620包括k-最近邻(k-nn)模型622和标签预测器624。在此类实现方式中,k-nn模型622能够由第一机器学习模型620采用以识别被认为与变换后的用户简档619最类似的数量k个最近邻用户简档。
在一些示例中,除k-nn模型以外的模型,诸如植根于一种或多种原型方法中的那些,可以被采用作为模型622。标签预测器624然后能够从包括在加密的标签数据集626中的真实标签当中识别针对k个最近邻用户简档中的每一个的真实标签并且基于所识别的标签来确定至少一个预测标签629。在一些实现方式中,标签预测器624能够对它在确定至少一个预测标签629中接收和/或生成的数据应用softmax函数。
[0249]
对于其中第一机器学习模型620和最终结果计算逻辑640被配置成采用回归技术的实现方式,至少一个预测标签629可以对应于例如表示诸如如由标签预测器624所确定的针对k个最近邻用户简档的真实标签之和的整数的单个标签。如由标签预测器624所确定的这样的针对k个最近邻用户简档的真实标签之和实际上与如缩放了k倍的针对k个最近邻用户简档的真实标签的平均值等效。类似地,对于其中第一机器学习模型620和最终结果计算逻辑640被配置成采用二元分类技术的实现方式,至少一个预测标签629可以对应于例如表示由标签预测器624至少部分地基于这样的和而确定的整数的单个标签。在二元分类的情况下,针对k个最近邻用户简档的真实标签中的每一个可以是零或一的二元值,使得前述平均值可以是介于零与一之间的整数值(例如,0.3、0.8等),其例如有效地表示由第一机器学习模型620作为输入接收的针对用户简档(例如,变换后的用户简档619)的真实标签等于一的预测概率。在下面参考图9至图11提供与以下各项有关的附加细节:至少一个预测标签629的性质以及可以针对其中第一机器学习模型620和最终结果计算逻辑640被配置成采用回归技术的实现方式以及针对其中第一机器学习模型620和最终结果计算逻辑640被配置成采用二元分类技术的实现方式来确定至少一个预测标签629的方式。
[0250]
对于其中第一机器学习模型620和最终结果计算逻辑640被配置成采用多类分类技术的实现方式,至少一个预测标签629可以对应于如由标签预测器624所确定的预测标签的向量或集合。在预测标签的这样的向量或集合中的每个预测标签可以对应于相应类别并且由标签预测器624至少部分地基于多数投票或对应于针对k个最近邻用户简档中的用户简档的真实标签的向量或集合中的相应类别是如由标签预测器624所确定的第一值(例如,一)的真实标签的频率来确定。与二元分类很像,在多类分类的情况下,针对k个最近邻用户简档中的用户简档的真实标签的每个向量或集合中的每个真实标签可以是零或一的二元值。在下面参考图9至图11提供与以下各项有关的附加细节:至少一个预测标签629的性质以及可以针对其中第一机器学习模型620和最终结果计算逻辑640被配置成采用多类分类技术的实现方式来确定至少一个预测标签629的方式。
[0251]
最终结果计算逻辑640能够被采用于基于至少一个预测标签629来生成推断结果649(resulti)。例如,最终结果计算逻辑640能够被采用于针对一个或多个阈值来评价至少一个预测标签629并且基于评价结果来确定推断结果649。在一些示例中,推断结果649可以指示与用户简档609相关联的用户是否将被添加到一个或多个用户组。在一些实现方式中,能够在推断结果649中包括或者以其他方式指示至少一个预测标签629。
[0252]
在一些实现方式中,如图6中所描绘的系统600能够表示如由诸如图1的mpc集群130的mpc集群实现的系统。因此,应当理解,在这些实现方式中的至少一些中,可以通过mpc集群的两个或更多个计算系统以安全和分布式方式提供本文参考图6中所示的元素描述的功能性中的一些或全部。例如,mpc集群的两个或更多个计算系统中的每一个可以提供本文参考图6描述的功能性的相应份额。在此示例中,两个或更多个计算系统可以并行地操作以
实现选择的秘密共享算法以便协作地执行与本文参考图6描述的那些类似或等效的操作。在前述实现方式中的至少一些中,用户简档609可以表示用户简档的份额。在此类实现方式中,本文参考图6描述的其他条数据或数量中的一个或多个还可以表示其秘密份额。应当理解,在提供本文参考图6描述的功能性中,可以出于保护用户隐私的目的由两个或更多个计算系统执行附加操作。在下面例如参考图12并且在本文中其他地方进一步详细地描述前述实现方式中的一个或多个的示例。一般而言,在至少一些实现方式中,如在下面和在本文中其他地方描述的“份额”可以对应于秘密份额。
[0253]
虽然用于诸如k-nn模型622的k-nn模型的训练过程可以是相对快速和简单,原因在于不需要标签的知识,但是在一些情形下,此类模型的质量能够有改进的空间。因此,在一些实现方式中,可以利用在下面进一步详细地描述的一种或多种系统和技术来提升第一机器学习模型620的性能。
[0254]
图7是用于在系统700中以提升的性能生成针对用户简档的推断结果的示例性框架的概念图。在一些实现方式中,如图7中描绘的元素609-629中的一个或多个可以分别与如以上参考图6描述的元素609-629中的一个或多个类似或等效。与系统600很像,系统700包括随机投影逻辑610和第一机器学习模型620,并且被描绘为在推断时间执行一个或多个操作。
[0255]
然而,与系统600不同,系统700进一步包括第二机器学习模型730,该第二机器学习模型730被训练并且随后被利用以通过接收变换后的用户简档619作为输入并且生成指示至少一个预测标签629中的预测误差量的预测残差值739(residuei)作为输出来提升第一机器学习模型620的性能。如使用第二机器学习模型730所获得的预测残差值739能够是明文的。能够采用被包括在系统700中代替最终结果计算逻辑640的最终结果计算逻辑740以基于至少一个预测标签629并且进一步基于预测残差值739来生成推断结果749(resulti)。考虑到预测残差值739指示至少一个预测标签629中的预测误差量,依靠至少一个预测标签629并且与预测残差值739合作地可以使得最终结果计算逻辑740能够有效地抵消或中和可以在至少一个预测标签629中表达的误差中的至少一些,从而增强由系统700产生的推断结果749的准确性和可靠性中的一个或二者。
[0256]
例如,能够采用最终结果计算逻辑740来计算至少一个预测标签629和预测残差值739的和。在一些示例中,能够进一步采用最终结果计算逻辑740以针对一个或多个阈值评价这样的计算的和并且基于评价的结果来确定推断结果749。在一些实现方式中,能够在图6中的推断结果649或图7中的推断结果749中包括或以其他方式指示至少一个预测标签629和预测残差值739的这样的计算的和。
[0257]
第二机器学习模型730可以包括或者对应于深度神经网络(dnn)、梯度提升决策树和随机森林模型中的一个或多个。也就是说,第一机器学习模型620和第二机器学习模型730可以在架构上彼此不同。在一些实现方式中,第二机器学习模型730能够使用一种或多种梯度提升算法、一种或多种梯度下降算法或其组合来训练。
[0258]
第二机器学习模型730能够使用用于训练第一机器学习模型620的用户简档的相同集合和指示针对这样的用户简档的集合的真实标签与针对如使用第一机器学习模型620所确定的这样的用户简档的集合的预测标签之间的差异的数据来训练。因此,在训练第一机器学习模型620的过程的至少一部分被执行之后执行训练第二机器学习模型730的过程。
可以通过评价如训练的第一机器学习模型620的性能的过程来生成或者以其他方式获得用于训练第二机器学习模型730的数据,诸如指示使用第一机器学习模型620确定的预测标签与真实标签之间的差异的数据。在下面参考图10至图11进一步详细地描述这样的过程的示例。
[0259]
如以上所提及的,可以至少部分地采用如包括在系统600和700中的随机投影逻辑610来用随机噪声混淆特征向量,诸如在用户简档609和其他用户简档中包括或指示的特征向量,以保护用户隐私。为了使得能够进行机器学习训练和预测,通过随机投影逻辑610应用的随机投影变换需要保存特征向量之间的距离的某个概念。能够在随机投影逻辑610中采用的随机投影技术的一个示例包括simhash技术。此技术和上述其他技术能够用来混淆特征向量,同时保存此类特征向量之间的余弦距离。
[0260]
虽然保持特征向量之间的余弦距离可以证明对训练并且使用诸如第一机器学习模型620的k-nn模型622的k-nn模型来说足够,但是对训练并且使用诸如第二机器学习模型730的一个或多个模型的其他类型的模型来说可能不太理想。因此,在一些实现方式中,可能期望在随机投影逻辑610中采用能够用来混淆特征向量同时保存此类特征向量之间的欧几里德距离的随机投影技术。这样的随机投影技术的一个示例包括johnson-lindenstrauss(j-l)技术或变换。
[0261]
如以上所提及的,j-l变换的一个性质是它以概率保存特征向量之间的欧几里德距离。另外,j-l变换是有损的、不可逆的,并且并入随机噪声。因此,即使mpc集群的两个或更多个服务器或计算系统串通,它们也将无法从使用j-l变换技术获得的用户简档的变换后的版本(pi′
)获得原始用户简档(pi)的确切重构。以这种方式,出于在本文描述的一个或多个系统中变换用户简档的目的而采用j-l变换技术可以用来提供用户隐私保护。此外,能够将j-l变换技术能够用作降维技术。因此,出于在本文描述的一个或多个系统中变换用户简档而采用j-l变换技术的一个有利副产品是它可以实际上用来显著地提高后续处理步骤能够由此类系统执行的速度。
[0262]
一般而言,给定任意小的ε》0,存在能够被应用以对于任意1≤i,j≤n将pi变换为pi′
、将pj变换为pj′
的j-l变换,其中n是训练示例的数目,并且:
[0263]
(1-ε)
×
|p
i-pj|2≤|p

i-p
′j|2≤(1 ε)
×
|p
i-pj|2[0264]
也就是说,应用j-l变换可以将两个任意地选择的训练示例之间的欧几里德距离改变不超过一小分数ε。出于至少前述原因,在一些实现方式中,可以在如本文描述的随机投影逻辑610中采用j-l变换技术。
[0265]
在一些实现方式中,如图7中描绘的系统700能够表示如由诸如图1的mpc集群130的mpc集群实现的系统。因此,应当理解,在这些实现方式中的至少一些中,可以通过mpc集群的两个或更多个计算系统以安全和分布式方式提供本文参考图7中所示的元素描述的功能性中的一些或全部。例如,mpc集群的两个或更多个计算系统中的每一个可以提供本文参考图7描述的功能性的相应份额。在此示例中,两个或更多个计算系统可以并行地操作以实现选择的秘密共享算法以便协作地执行与本文参考图7描述的那些类似或等效的操作。在前述实现方式中的至少一些中,用户简档609可以表示用户简档的秘密份额。在此类实现方式中,本文参考图7描述的其他条数据或数量中的一个或多个还可以表示其秘密份额。应当理解,在提供本文参考图7描述的功能性中,可以出于保护用户隐私的目的由两个或更多个
计算系统执行附加操作。在下面例如参考图12并且在本文中其他地方进一步详细地描述前述实现方式中的一个或多个的示例。
[0266]
图8是图示用于在mpc集群处以提升的性能生成针对用户简档的推断结果的示例过程800的流程图。例如,可以在推断时间执行参考图8描述的操作中的一个或多个。过程800的操作能够例如由诸如图1的mpc集群130的mpc集群实现,并且还能够对应于以上参考图7描述的操作中的一个或多个。例如,可以在推断时间执行参考图8描述的操作。
[0267]
在一些实现方式中,可以通过诸如图1的mpc集群130的mpc集群的两个或更多个计算系统以安全和分布式方式提供本文参考图8所示的元素描述的功能性中的一些或全部。例如,mpc集群的两个或更多个计算系统中的每一个可以提供本文参考图8所描述的功能性的相应份额。在此示例中,两个或更多个计算系统可以并行地操作以实现选择的秘密共享算法以便协作地执行与本文参考图8描述的那些类似或等效的操作。应当理解,在提供本文参考图8描述的功能性中,可以出于保护用户隐私的目的由两个或更多个计算系统执行附加操作。在下面例如参考图12并且在本文中其他地方进一步详细地描述前述实现方式中的一个或多个的示例。过程800的操作还能够被实现为存储在可以是非暂时性的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理装置对指令的执行能够使该一个或多个数据处理装置执行过程800的操作。
[0268]
mpc集群接收与特定用户简档相关联的推断请求(802)。例如,这可以对应于与关于mpc集群130从应用112接收推断请求执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图1所描述的。
[0269]
mpc集群基于特定用户简档、使用多个用户简档训练的第一机器学习模型以及针对多个用户简档的多个真实标签中的一个或多个来确定针对特定用户简档的预测标签(804)。如本文所描述的标签能够是或者包括基于人口统计的用户组标识符或人口统计特征。例如,这可以对应于与关于利用第一机器学习模型620来获得至少一个预测标签629执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6-7所描述的。
[0270]
在此示例中,针对多个用户简档的多个真实标签可以对应于作为加密的标签数据626的部分被包括的真实标签,其是针对用于训练第一机器学习模型620的多个用户简档的真实标签。例如,来自确定针对特定用户简档的预测标签所基于的多个真实标签当中的一个或多个真实标签可以包括针对通过第一机器学习模型620的k-nn模型622识别的k个最近邻用户简档中的每一个的至少一个真实标签。在一些示例中,多个真实标签中的每一个被加密,如在图6至图7的示例中的情况一样。在上面详细地描述了能够利用针对k个最近邻用户简档的真实标签来确定预测标签的各种方式中的一些。如在上文中变得明显的,利用此类真实标签来确定预测标签的方式或方法可以至少部分地取决于被采用的推断技术的类型(例如,回归技术、二元分类技术、多类分类技术等)。
[0271]
mpc集群基于特定用户简档和使用多个用户简档训练的第二机器学习模型以及指示针对多个用户的多个真实标签与如使用第一机器学习模型针对多个用户简档确定的多个预测标签之间的差异的数据来确定指示预测标签中的预测误差的预测残差值(806)。例如,这可以对应于与关于利用第二机器学习模型730来获得预测残差值739(residuei)执行的一个或多个操作类似或等效的一个或多个操作,如以上参考参考7所描述的。因此,在一些实现方式中,第二机器学习模型包括深度神经网络、梯度提升决策树和随机森林模型中
的至少一个。
[0272]
mpc集群基于预测标签和预测残差值来生成表示推断结果的数据(808)。例如,这可以对应于与关于采用最终结果计算逻辑740来生成推断结果749(resulti)执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图7所描述的。因此,在一些示例中,推断结果包括或者对应于预测标签和预测残差值的和。
[0273]
mpc集群将表示推断结果的数据提供给客户端设备(810)。例如,这可以对应于与关于mpc集群130将推断结果提供给应用112在其上运行的客户端设备110执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图1至图2所描述的。
[0274]
在一些实现方式中,过程800进一步包括其中mpc集群对特定用户简档应用变换以获得特定用户简档的变换后的版本的一个或多个操作。在这些实现方式中,为了确定预测标签,mpc集群至少部分地基于特定用户简档的变换后的版本来确定预测标签。例如,这可以对应于与关于采用随机投影逻辑610来对用户简档609(pi)应用随机投影变换以获得变换后的用户简档619(pi′
)执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6至图7所描述的。因此,在一些示例中,前述变换可以是随机投影。此外,在这些示例中的至少一些示例中,前述随机投影可以是johnson-lindenstrauss(j-l)变换。在前述实现方式中的至少一些中,为了确定预测标签,mpc集群提供特定用户简档的变换后的版本作为第一机器学习模型的输入以获得针对特定用户简档的预测标签作为输出。例如,这可以对应于与关于第一机器学习模型620接收变换后的用户简档619(pi′
)作为输入并且响应于其而生成至少一个预测标签629执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6至图7所描述的。
[0275]
如以上所提及的,在一些实现方式中,第一机器学习模型包括k-最近邻模型。在这些实现方式中的至少一些中,为了确定预测标签,mpc集群至少部分地基于特定用户简档和k-最近邻模型来在多个用户简档当中识别被认为与特定用户简档最类似的数量k个最近邻用户简档,并且至少部分地基于针对k个最近邻用户简档中的每一个的真实标签来确定预测标签。在一些此类实现方式中,为了至少部分地基于针对k个最近邻用户简档中的每一个的真实标签来确定预测标签,mpc集群确定针对k个最近邻用户简档的真实标签之和。例如,这可以对应于关于在其中采用一种或多种回归和/或二元分类技术的一个或多个实现方式中利用第一机器学习模型620来获得至少一个预测标签629执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6至图7所描述的。在一些示例中,预测标签包括或者对应于针对k个最近邻用户简档的真实标签之和。
[0276]
在前述实现方式中的一些中,为了至少部分地基于针对k个最近邻用户简档中的每一个的真实标签来确定预测标签,mpc集群至少部分地基于分别与类别的集合相对应的针对k个最近邻用户简档中的每一个的真实标签的集合来确定预测标签的集合,并且,为了确定预测标签的集合,mpc集群对集合中的每个类别执行操作。此类操作能够包括其中mpc集群确定针对k个最近邻用户简档中的用户简档的真实标签的集合中的与类别相对应的真实标签是第一值的真实标签的多数投票或频率的一个或多个操作。例如,这可以对应于关于在其中采用一种或多种多类分类技术的一个或多个实现方式中利用第一机器学习模型
620来获得至少一个预测标签629执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6至图7所描述的。
[0277]
图9是图示用于在mpc集群处准备并且执行第二机器学习模型的训练以便提升推断性能的示例过程900的流程图。过程900的操作能够例如由诸如图1的mpc集群130的mpc集群实现,并且还能够对应于以上参考图2、图4、图6和图7描述的操作中的一个或多个。在一些实现方式中,可以通过诸如图1的mpc集群130的mpc集群的两个或更多个计算系统以安全和分布式方式提供本文参考图9中所示的元素描述的功能性中的一些或全部。例如,mpc集群的两个或更多个计算系统中的每一个可以提供本文参考图9描述的功能性的相应秘密份额。在此示例中,两个或更多个计算系统可以并行地操作以实现选择的秘密共享算法以便协作地执行与本文参考图9描述的那些操作类似或等效的操作。应当理解,在提供本文参考图9描述的功能性中,可以出于保护用户隐私的目的由两个或更多个计算系统执行附加操作。在下面例如参考图12并且在本文中其他地方进一步详细地描述前述实现方式中的一个或多个的示例。过程900的操作还能够被实现为存储在可以是非暂时性的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理装置对指令的执行能够使该一个或多个数据处理装置执行过程900的操作。
[0278]
mpc集群使用多个用户简档来训练第一机器学习模型(910)。例如,如上所述,第一机器学习模型可以对应于第一机器学习模型620。类似地,在第一机器学习模型的训练中使用的多个用户简档可以对应于用于训练第一机器学习模型620的数量n个用户简档,针对其的真实标签可以如上所述被包括在加密的标签数据集626中。如本文所描述的,标签能够是或者包括用户组标识符或人口统计特征。
[0279]
mpc集群评价如使用多个用户简档训练的第一机器学习模型的性能(920)。在下面参考图10至图11提供与这样的评价可能需要什么有关的附加细节。
[0280]
在一些实现方式中,在这样的评价中生成的数据能够由mpc集群或与mpc集群通信的另一系统利用来确定诸如第一机器学习模型620的第一机器学习模型的性能是否保证提升,例如,通过诸如第二机器学习模型730的第二机器学习模型。在下面参考图10的简档和残差数据集1070以及图11的步骤1112进一步详细地描述在这样的评价中生成的能够以这种方式利用的数据的示例。
[0281]
例如,在一些情形下,mpc集群或与mpc集群通信的另一系统可以基于在这样的评价中生成的数据来确定第一机器学习模型的性能(例如,预测准确性)满足一个或多个阈值,并且因此确实不保证提升。在此类情形下,mpc集群可以避免基于此确定来训练并且实现第二机器学习模型。然而,在其他情形下,mpc集群或与mpc集群通信的另一系统可以基于在这样的评价中生成的数据来确定第一机器学习模型的性能(例如,预测准确性)满足一个或多个阈值,并且因此确实保证提升。在这些情形下,基于此确定,mpc集群可以接收与将在从系统600转变到系统700中获得的功能性升级可比较的功能性升级,如以上参考图6至图7所描述的。为了接收这样的功能性升级,mpc集群可以继续训练并且实现第二机器学习模型,诸如第二机器学习模型730,以便提升第一机器学习模型的性能。在一些示例中,在这样的评价中生成的数据可以附加地或替换地被提供给与mpc集群相关联的一个或多个实体。在一些此类示例中,一个或多个实体可以做出它们自己的有关第一机器学习模型的性能是否保证提升的确定,并且相应地继续进行。其他配置是可能的。
[0282]
mpc集群使用包括在评价第一机器学习模型的性能中生成的数据的数据的集合来训练第二机器学习模型(930)。这种数据的示例能够包括在下面参考图10的简档和残差数据集1070以及图11的步骤1112描述的数据。
[0283]
在一些实现方式中,过程900进一步包括在下面进一步详细地描述的附加步骤912-916。在此类实现方式中,步骤912-916在步骤920和930之前被执行,但是能够在步骤910之后被执行。
[0284]
图10是用于在系统1000中评价第一机器学习模型的性能的示例性框架的概念图。在一些实现方式中,如图10中描绘的元素609-629中的一个或多个可以与如以上分别参考图6至图7所描述的一个或多个元素609-629类似或等效。在一些示例中,本文参考图10描述的操作中的一个或多个可以对应于以上参考图9的步骤920描述的那些操作中的一个或多个。与系统600和700很像,系统1000包括随机投影逻辑610和第一机器学习模型620。
[0285]
然而,与系统600和700不同,系统1000进一步包括残差计算逻辑1060。另外,在图10的示例中,用户简档609(pi)对应于用于训练第一机器学习模型620的多个用户简档之一,然而,在图6和图7的示例中,用户简档609(pi)可能不一定对应于用于训练第一机器学习模型620的多个用户简档之一,而是相反简单地对应于与在推断时间接收到的推断请求相关联的用户简档。在一些示例中,用于训练第一机器学习模型620的前述多个用户简档能够对应于以上参考图9的步骤910描述的多个用户简档。能够采用残差计算逻辑1060以基于至少一个预测标签629和至少一个真实标签1059(li)来生成指示至少一个预测标签629中的误差量的残差值1069(residuei)。如本文所描述的标签能够是或者包括基于人口统计的用户组标识符或人口统计特征。至少一个预测标签629和至少一个真实标签1059(li)二者能够被加密。例如,残差计算逻辑1060能够采用秘密份额来计算至少一个预测标签629与至少一个真实标签1059之间的值的差异。在一些实现方式中,残差值1069可以对应于前述值的差异。
[0286]
残差值1069能够与变换后的用户简档619关联地存储,例如,作为简档和残差数据集1070的部分存储在存储器中。在一些示例中,包括在简档和残差数据集1070中的数据可以对应于如以上参考图9的步骤930所描述的数据和如在下面参考图11的步骤1112所描述的数据中的一者或二者。在一些实现方式中,残差值1069形式为秘密份额以保护用户隐私和数据安全。
[0287]
在一些实现方式中,如图10中描绘的系统1000能够表示由诸如图1的mpc集群130的mpc集群实现的系统。因此,应当理解,在这些实现方式中的至少一些中,可以通过mpc集群的两个或更多个计算系统以安全和分布式方式提供本文参考图10中所示的元素描述的功能性中的一些或全部。例如,mpc集群的两个或更多个计算系统中的每一个可以提供本文参考图10描述的功能性的相应份额。在此示例中,两个或更多个计算系统可以并行地操作以实现选择的秘密共享算法以便协作地执行与本文参考图10描述的那些操作类似或等效的操作。在前述实现方式中的至少一些中,用户简档609可以表示用户简档的秘密份额。在此类实现方式中,本文参考图10描述的其他条数据或数量中的一个或多个还可以表示其秘密份额。应当理解,在提供本文参考图10描述的功能性时,可以出于保护用户隐私的目的由两个或更多个计算系统执行附加操作。在下面例如参考图12并且在本文中其他地方进一步详细地描述前述实现方式中的一个或多个的示例。
[0288]
图11是图示用于在mpc集群处评价第一机器学习模型的性能的示例过程1100的流程图。过程1100的操作能够例如由诸如图1的mpc集群130的mpc集群实现,并且还能够对应于以上参考图9至图10描述的操作中的一个或多个。在一些示例中,本文参考图11描述的操作中的一个或多个可以对应于以上参考图9的步骤920描述的那些操作中的一个或多个。在一些实现方式中,可以通过诸如图1的mpc集群130的mpc集群的两个或更多个计算系统以安全和分布式方式提供本文参考图11中所示的元素描述的功能性中的一些或全部。例如,mpc集群的两个或更多个计算系统中的每一个可以提供本文参考图11描述的功能性的相应份额。在此示例中,两个或更多个计算系统可以并行地操作以实现选择的秘密共享算法以便协作地执行与本文参考图11描述的那些操作类似或等效的操作。应当理解,在提供本文参考图11描述的功能性中,可以出于保护用户隐私的目的由两个或更多个计算系统执行附加操作。在下面例如参考图12并且在本文中其他地方进一步详细地描述前述实现方式中的一个或多个的示例。过程1100的操作还能够被实现为存储在可以是非暂时性的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理装置对指令的执行能够使一个或多个数据处理装置执行过程1100的操作。
[0289]
mpc集群选择第i个用户简档和至少一个对应的真实标签([pi,li]),其中i被最初设置为一的值(1102-1104)并且通过递归递增直到i等于n(1114-1116),其中n是用于训练第一机器学习模型的用户简档的总数。标签能够是或者包括基于人口统计的用户组标识符或人口统计特征。换句话说,过程1100包括如下所述针对用于训练第一机器学习模型的n个用户简档中的每一个执行步骤1106-1112。
[0290]
在一些实现方式中,第i个用户简档可以表示用户简档的秘密份额。在此类实现方式中,本文参考图11描述的其他条数据或数量中的一个或多个还可以表示其份额。
[0291]
mpc集群对第i个用户简档(pi)应用随机投影以获得第i个用户简档的变换后的版本(pi′
)(1106)。例如,这可以对应于与关于采用随机投影逻辑610来对用户简档609(pi)应用随机投影变换以获得变换后的用户简档619(pi′
)执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图10所描述的。
[0292]
mpc集群将第i个用户简档的变换后的版本(pi′
)作为输入提供给第一机器学习模型以获得针对第i个用户简档的变换后的版本(pi′
)的至少一个预测标签作为输出(1108)。例如,这可以对应于与关于第一机器学习模型620接收变换后的用户简档619(pi′
)作为输入并且响应于其而生成至少一个预测标签629执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图10所描述的。
[0293]
mpc集群至少部分地基于针对第i个用户简档(pi)的至少一个真实标签(li)和至少一个预测标签来计算残差值(residuei)(1110)。例如,这可以对应于与关于采用残差计算逻辑1060以至少部分地基于至少一个真实标签1059(li)和至少一个预测标签629来计算残差值1069(residuei)执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图10所描述的。
[0294]
mpc集群将所计算的残差值(residuei)与第i个用户简档的变换后的版本(pi′
)相关联地存储(1112)。例如,这可以对应于与关于残差值1069(residuei)与变换后的用户简档619(pi′
)相关联地存储(例如,作为简档和残差数据集1070的部分存储在存储器中)执行
的一个或多个操作类似或等效的一个或多个操作,如以上参考图10所描述的。在一些示例中,此数据可以对应于如以上参考图9的步骤930描述的数据。因此,在这些示例中,在此步骤中存储的数据中的一些或全部可以作为用于训练诸如第二机器学习模型730的第二机器学习模型的数据被利用。
[0295]
再次参考步骤1108-1110,对于其中第一机器学习模型被配置成采用回归技术的至少一些实现方式,mpc集群在步骤1108处获得的至少一个预测标签能够对应于表示整数的单个预测标签。在这些实现方式中,mpc集群在步骤1110处计算的残差值(residuei)能够对应于指示至少一个真实标签(li)与至少一个预测标签之间的值的差异的整数。在前述实现方式中的至少一些中,在步骤1108处,第一机器学习模型识别被认为与第i个用户简档的变换后的版本(pi′
)最相似的k个最近邻用户简档,识别针对k个最近邻用户简档中的每一个的至少一个真实标签,计算针对k个最近邻用户简档的真实标签之和,并且将此和用作至少一个预测标签如以上所提及的,如在此步骤中所确定的这样的针对k个最近邻用户简档的真实标签之和实际上与如缩放了k倍的针对k个最近邻用户简档的真实标签的平均值等效。在一些示例中,可以将此和用作至少一个预测标签代替针对k个最近邻用户简档的真实标签的平均值,使得不需要执行除法操作。考虑到至少一个预测标签有效地与如缩放了k倍的针对k个最近邻用户简档的真实标签的平均值等效,对于其中第一机器学习模型被配置成采用回归技术的至少一些实现方式,由mpc集群在步骤1110处执行的计算通过下式给出:
[0296][0297]
类似地,对于其中第一机器学习模型被配置成采用二元分类技术的至少一些实现方式,mpc集群在步骤1108处获得的至少一个预测标签能够对应于例如表示至少部分地基于针对k个最近邻用户简档的真实标签之和而确定的整数的单个预测标签。如以上参考其中第一机器学习模型被配置成采用回归技术的实现方式所提及的,这样的针对k个最近邻用户简档的真实标签之和实际上与如缩放了k倍的针对k个最近邻用户简档的真实标签的平均值等效。
[0298]
然而,与第一机器学习模型被配置成采用回归技术的实现方式不同,在第一机器学习模型被配置成采用二元分类技术的实现方式中,针对k个最近邻用户简档的真实标签中的每一个可以是零或一的二元值,使得前述平均值可以是介于零与一之间的整数值(例如,0.3、0.8等)。尽管在采用二元分类技术的实现方式中,mpc集群能够在步骤1108处计算并且使用针对k个最近邻用户简档的真实标签之和(sum_of_labels)作为至少一个预测标签并且使用以上参考其中采用回归技术的实现方式描述的公式来在步骤1110处获得数学上可行的残差值(residuei),这样的残差值(residuei)可以潜在地提出隐私关注,例如,稍后当用于确定提升第一机器学习模型是否被保证时或者稍后当用于训练诸如第二机器学习模型730的第二机器学习模型时。更具体地,因为针对k个最近邻用户简档的真实标签中的每一个可以是零或一的二元值,所
以在采用二元分类技术的实现方式中,这样的残差值(residuei)的符号可以潜在地指示至少一个真实标签(li)的值,并且因此可以潜在地由可以在步骤1112处或之后在某种程度上处理指示残差值(residuei)的数据的一个或多个系统和/或实体推断。
[0299]
例如,考虑其中将采用二元分类技术以及li=1、k=15并且的第一示例。在此第一示例中,至少一个预测标签对应于针对k个最近邻用户简档的真实标签之和(sum_of_labels),其实际上与如缩放了k倍的针对k个最近邻用户简档的真实标签的平均值等效,其中前述平均值是0.8的非整数值。如果在此第一示例中将利用如上所述的相同公式来例如在步骤1110处计算残差值(residuei),则此第一示例中的残差值(residuei)将通过下式给出:residuei=(15)(1)-12=3。因此,在此第一示例中,残差值(residuei)将等于(正)3的值。现在,考虑其中将采用二元分类技术并且li=0、但是k和分别再次等于15和12的值的第二示例。如果再次,将在此第二示例中使用如上所述的相同公式来例如在步骤1110处计算残差值(residuei),则此第二示例中的残差值(residuei)将通过以下公式给出:residuei=(15)(0)-12=-12。因此,在此第一示例中,残差值(residuei)将等于-12的值。实际上,在上述第一示例和第二示例的情况下,正残差值(residuei)可以与li=l相关,而负残差值(residuei)可以与li=0相关。
[0300]
为了理解为什么从residuei推断li是可能的,考虑其中假定其真实标签等于0的用于训练第一机器学习模型的用户简档的残差满足具有表示法的正态分布,其中μ0和σ0分别是等于0(零)的真实标签的预测误差(例如,残差值)的正态分布的均值和标准偏差并且与用于训练第一机器学习模型的用户简档相关联,而且假定其标签等于1的训练示例的残差满足其中μ1和σ1分别是等于1(一)的真实标签的预测误差的正态分布的均值和标准偏差并且与用于训练第一机器学习模型的用户简档相关联。在此类假定下,清楚的是,μ0<0,μ1>0,并且不保证σ0=σ1。
[0301]
鉴于前文,如下所述,在一些实现方式中,能够采取不同方法来执行与针对其中采用二元分类技术的实现方式的步骤1108-1110相关联的一个或多个操作。在一些实现方式中,为了迫使两类训练示例的残差具有相同的正态分布,mpc集群能够对针对k个最近邻用户简档的真实标签之和(sum_of_labels)应用变换f,使得基于li和计算的残差值不能用于预测li。变换f在被应用于初始预测标签(例如,在二元分类的情况下为真实标签之和,在多类分类的情况下为真实标签的多数投票等)能够用来去除可能存在于第一机器学习模型的预测中的偏差。为了实现这样的目标,变换f需要满足以下性质:
[0302]
(i)f(μ0)=0
[0303]
(ii)f(μ1)=1
[0304]
(iii)σ0×f′
(μ0)=σ1×f′
(μ1)
[0305]
其中f

是f的导数。
[0306]
可以在此类实现方式中采用的具有以上性质的变换的一个示例是形状f(x)=a2x2 a1x a0的二次多项式变换,其中f

(x)=2a2x a1。在一些示例中,mpc集群能够基于来自如
下三个约束的三个线性方程来确定性地找到系数{a2,a1,a0}的值:
[0307]

[0308]
(i)a
′2=σ
0-σ1[0309]
(ii)a
′1=2(σ1μ
1-σ0μ0)
[0310]
(iii)a
′0=μ0(μ0σ0 μ0σ
1-2μ1σ1)
[0311]
在这些示例中,mpc集群能够将系数{a2,a1,a0}计算为:{a2,a1,a0}=d
×
{a2′
,a1′
,a0′
}。mpc集群能够例如在秘密份额上使用加法和乘法运算来计算{a2′
,a1′
,a0′
}。变换f(x)=a2x2 a1x a0也是围绕:镜像对称的。
[0312]
为了计算前述系数和依赖于其的其他值,mpc集群可以首先估计分别等于零、μ0和σ0的真实标签的预测误差(例如,残差值)的概率分布的均值和标准偏差以及分别等于一、μ1和σ1的真实标签的预测误差(例如,残差值)的概率分布的均值和标准偏差。在一些示例中,作为标准偏差σ0的补充或代替可以确定等于零的真实标签的预测误差的概率分布的方差σ
02
,并且作为标准偏差σ1的补充或代替可以确定等于一的真实标签的预测误差的概率分布的方差σ
12

[0313]
在一些实例中,预测误差的给定概率分布可以对应于正态分布,而在其他实例中,预测误差的给定概率分布可以对应于除正态分布以外的概率分布,诸如伯努利分布、均匀分布、二项分布、超几何分布、几何分布、指数分布等。在此类其他实例中,被估计的分布参数可以在一些示例中包括除均值、标准偏差和方差以外的参数,诸如特定于预测误差的给定概率分布的特性的一个或多个参数。例如,针对对应于均匀分布的预测误差的给定概率分布估计的分布参数可以包括最小值参数和最大值参数(a和b),而针对对应于指数分布的预测误差的给定概率分布估计的分布参数可以包括至少一个速率参数(λ)。在一些实现方式中,可以执行与关于图11的过程1110执行的一个或多个操作类似的一个或多个操作,使得能够获得指示第一机器学习模型的预测误差的数据并且利用其来估计此类分布参数。在前述实现方式中的至少一些中,能够获得指示第一机器学习模型的预测误差的数据并且利用其来(i)从若干不同类型的概率分布(例如,正态分布、伯努利分布、均匀分布、二项分布、超几何分布、几何分布、指数分布等)当中识别与通过数据指示的预测误差的给定子集的概率分布的形状最紧密地对应的特定类型的概率分布,并且(ii)根据所识别的特定类型的概率分布来估计通过数据指示的预测误差的给定子集的概率分布的一个或多个参数。其他配置是可能的。
[0314]
再次参考其中所估计的分布参数包括均值和标准偏差的示例,在这些示例中,为了针对等于零的真实标签估计此类分布参数,mpc集群能够计算:
[0315][0316][0317]
其中:
[0318][0319]
count0=∑i(1-li)
[0320][0321]
在一些示例中,mpc集群基于方差σ
02
来计算标准偏差σ0,例如通过计算方差σ
02
的平方根。类似地,为了针对等于一的真实标签估计此类分布参数,mpc集群能够计算:
[0322][0323][0324]
其中:
[0325][0326]
count1=∑li[0327][0328]
在一些示例中,mpc集群基于方差σ
12
来计算标准偏差σ1,例如通过计算方差σ
12
的平方根。
[0329]
一旦此类分布参数被估计,系数{a2,a1,a0}就能够被计算、存储,并且稍后利用以将对应的变换f应用于针对k个最近邻用户简档的真实标签之和(sum_of_labels)。在一些示例中,利用这些系数来配置第一机器学习模型,使得向前,第一机器学习模型响应于输入而将对应的变换f应用于针对k个最近邻用户简档的真实标签之和。
[0330]
与二元分类很像,在多类分类的情况下,针对k个最近邻用户简档中的用户简档的真实标签的每个向量或集合中的每个真实标签可以是零或一的二元值。出于此原因,还可以在多类分类技术的实现方式中采取与以上参考二元分类描述的方法类似的方法,使得基于li和计算的残差值不能用于预测li。然而,在多类分类的情况下,可以针对每个类别定义和利用相应函数或变换f。例如,如果针对每个用户简档的真实标签的每个向量或集合将包含分别与w个不同类别相对应的w个不同真实标签,则可以确定并且利用w个不同变换f。另外,不是计算真实标签之和,而是在多类分类的情况下,针对每个类别计算频率值。在上面以及紧接在下面提供关于可以如何计算这样的频率值的附加细节。其他配置是可能的。
[0331]
对于任意选取的第j个标签,mpc集群能够基于lj是否是用于训练示例的训练标签来将训练示例分割成两个组。对于lj是训练标签的训练示例组,mpc集群能够假定frequencyj是在正态分布中并且计算均值μ1和方差σ1。另一方面,对于lj不是训练标签的训练示例组,mpc集群能够假定frequencyj是在正态分布中并且计算均值μ0和方差σ0。
[0332]
与二元分类类似,在多类分类的情况下,k-nn模型的预测很可能是有偏差的(例如,μ0》0,其中它应该已经为0,并且μ1《k,其中它应该已经为k)。另外,不保证σ0==σ1。因此,与二元分类类似,在多类分类的情况下,mpc集群在所预测的frequencyj上应用变换f,使得在变换之后,两个组的residuej具有基本上相同的正态分布。为了实现这样的目标,变换f需要满足以下性质:
[0333]
(i)f(μ0)=0
[0334]
(ii)f(μ1)=k
[0335]
(iii)σ0×f′
(μ0)=σ1×f′
(μ1)
[0336]
其中f

是f的导数。
[0337]
以上三个性质与其在二元分类情况下的对应物非常相似。在多类分类的情况下,具有可以被采用的以上性质的变换的一个示例是形状f(x)=a2x2 a1x a0的二次多项式变换,其中f

(x)=2a2x a1。在一些示例中,mpc集群能够基于来自如下三个约束的三个线性方程来确定性地计算系数{a2,a1,a0}的值:
[0338]

[0339]
(i)a
′2=σ
0-σ1[0340]
(ii)a
′1=2(σ1μ
1-σ0μ0)
[0341]
(iii)a
′0=μ0(μ0σ0 μ0σ
1-2μ1σ1)
[0342]
注意,用于二元分类和多类分类的变换是几乎相同的,唯一差异是,在具有k-nn模型的多类分类中,d的值能够在一些实现方式中被放大k倍。
[0343]
再次参考图9,在一些实现方式中,步骤912-916中的一个或多个可以对应于以上关于用于定义能够由mpc集群采用使得基于li和计算的残差值不能用于预测li的至少一个函数或变换的方法描述的操作中的一个或多个。特别地,可以针对其中将采用一种或多种二元和/或多类分类技术的实现方式执行步骤912-916。如以上所提及的,步骤912-916在步骤920和930之前被执行,并且可以在步骤910之后被执行。
[0344]
mpc集群基于针对多个用户简档的多个真实标签来估计分布参数的集合(912)。例如,这可以对应于与关于mpc集群基于与在步骤910中利用的相同用户简档相关联的真实标签来计算如上所述的参数μ0、σ
02
、σ0、μ1、σ
12
和σ1中的一个或多个执行的一个或多个操作类似或等效的一个或多个操作。
[0345]
mpc集群基于所估计的分布参数的集合来推导函数(914)。例如,这可以对应于与关于mpc集群计算有效地定义函数的参数或系数(诸如{a2,a1,a0})执行的一个或多个操作类似或等效的一个或多个操作。因此,在一些实现方式中,为了在步骤914处推导函数,mpc集群推导函数的参数的集合,例如,{a2,a1,a0}。
[0346]
mpc集群将第一机器学习模型配置成在给定用户简档作为输入的情况下生成初始预测标签并且将所推导的函数应用于初始预测标签以生成针对用户简档的预测标签作为输出(916)。例如,这可以对应于与关于mpc集群配置第一机器学习模型使得向前第一机器学习模型应用响应于输入而将对应的变换f应用于针对k个最近邻用户简档的真实标签之和(在二元分类的情况下)执行的一个或多个操作类似或等效的一个或多个操作。在多类分类的情况下,变换f可以表示mpc集群将第一机器学习模型配置成对与w个不同类别相对应的向量或集合中的w个不同值中的相应一个应用的w个不同函数中的一个。如上所述,这些w个不同值之一中的每一个可以对应于频率值。
[0347]
在已经执行了步骤912-916并且已经以这样的方式配置了第一机器学习模型的情况下,在步骤920中生成并且随后例如在步骤930中利用的数据可以不被用于预测真实标签
(li)。
[0348]
再次参考图8,在一些实现方式中,过程800可以包括与以上参考图9至图11描述的操作中的一个或多个相对应的一个或多个步骤。
[0349]
在一些实现方式中,过程800进一步包括其中mpc集群评价第一机器学习模型的性能的一个或多个操作。例如,这可以对应于与关于mpc集群执行如以上参考图9所描述的步骤920执行的一个或多个操作类似或等效的一个或多个操作。在这些实现方式中,为了评价第一机器学习模型的性能,对于多个用户简档中的每一个,mpc集群至少部分地基于(i)用户简档、(ii)第一机器学习模型和(iii)针对多个用户简档的多个真实标签中的一个或多个来确定针对用户简档的预测标签,并且至少部分地基于针对用户简档确定的预测标签和包括在多个真实标签中的针对用户简档的真实标签来确定指示预测标签中的预测误差的用户简档的残差值。例如,这可以对应于与关于mpc集群执行如以上参考图11所描述的步骤1108-1106执行的一个或多个操作类似或等效的一个或多个操作。另外,在这些实现方式中,过程800进一步包括其中mpc集群在评价第一机器学习模型的性能中使用指示针对多个用户简档确定的残差值的数据来训练第二机器学习模型的一个或多个操作。例如,这可以对应于与关于mpc集群执行如以上参考图9所描述的步骤930执行的一个或多个操作类似或等效的一个或多个操作。
[0350]
在前述实现方式中的至少一些中,用户简档的残差值指示针对用户简档确定的预测标签与针对用户简档的真实标签之间的值的差异。例如,这可以是针对在其中采用回归技术的示例的情况。
[0351]
在前述实现方式中的至少一些中,在mpc集群评价第一机器学习模型的性能之前,过程800进一步包括其中mpc集群至少部分地基于多个真实标签来推导函数并且将第一机器学习模型配置成在给定用户简档作为输入的情况下使用该函数来生成针对用户简档的预测标签作为输出的一个或多个操作。例如,这可以对应于与关于mpc集群执行如以上参考图9所描述的步骤914-916执行的一个或多个操作类似或等效的一个或多个操作。因此,在一些实现方式中,为了在此步骤处推导函数,mpc集群推导函数的参数的集合,例如,{a2,a1,a0}。
[0352]
在前述实现方式中的至少一些中,过程800进一步包括其中mpc集群至少部分地基于多个真实标签来估计分布参数的集合的一个或多个操作。在此类实现方式中,为了至少部分地基于多个真实标签来推导函数,mpc集群至少部分地基于分布参数的估计的集合来推导函数。例如,这可以对应于关于mpc集群执行如以上参考图9所描述的步骤912-914执行的一个或多个操作类似或等效的一个或多个操作。因此,分布参数的前述集合能够包括多个真实标签中的第一值的真实标签的预测误差的概率分布的一个或多个参数,例如,多个真实标签中的第一值的真实标签的预测误差的正态分布的均值(μ0)和方差(σ0),以及多个真实标签中的第二值的真实标签的预测误差的概率分布的一个或多个参数,例如,多个真实标签中的第二不同值的真实标签的预测误差的正态分布的均值(μ1)和方差(σ1)。如上所述,在一些示例中,分布参数的前述集合能够包括其他类型的参数。此外,在前述实现方式中的至少一些中,函数是二次多项式函数,例如,f(x)=a2x2 a1x a0,其中f

(x)=2a2x a1。
[0353]
在前述实现方式中的至少一些中,为了将第一机器学习模型配置成在给定用户简档作为输入的情况下使用函数来生成针对用户简档的预测标签作为输出,mpc集群将第一
机器学习模型配置成在给定用户简档作为输入的情况下:(i)生成针对用户简档的初始预测标签,并且(ii)将函数应用于针对用户简档的初始预测标签以生成针对用户简档的预测标签作为输出。例如,对于在其中采用二元分类技术的示例,这可以对应于以下一个或多个操作,其中mpc集群将第一机器学习模型配置成在给定用户简档作为输入的情况下:(i)计算针对k个最近邻用户简档的真实标签之和(sum_of_labels),并且(ii)将函数(变换f)应用于针对用户简档的初始预测标签以生成针对用户简档的预测标签作为输出。对于在其中采用多类分类技术的情况,可以执行类似操作。在一些实现方式中,为了对针对用户简档的初始预测标签应用函数,mpc集群应用如基于所推导的参数的集合(例如(a2,a1,a0})定义的函数。在一些示例中,为了至少部分地基于针对k个最近邻用户简档中的每一个的真实标签来确定预测标签,mpc集群确定针对k个最近邻用户简档的真实标签之和。例如,这可以是针对在其中采用回归或二元分类技术的实现方式的情况。在前述示例中的一些中,针对特定用户简档的预测标签可以对应于针对k个最近邻用户简档的真实标签之和。例如,这可以是针对在其中采用回归分类技术的实现方式的情况在其他此类示例中,为了至少部分地基于针对k个最近邻用户简档中的每一个的真实标签来确定预测标签,mpc集群对针对k个最近邻用户简档的真实标签之和应用函数以生成针对特定用户简档的预测标签。例如,这可以是针对在其中采用二元分类技术的实现方式的情况
[0354]
如以上所提及的,在前述实现方式中的一些中,为了至少部分地基于针对k个最近邻用户简档中的每一个的真实标签来确定预测标签,mpc集群至少部分地基于分别与类别的集合相对应的针对k个最近邻用户简档中的每一个的真实标签的集合来确定预测标签的集合,并且,为了确定预测标签的集合,mpc集群对集合中的每个类别执行操作。此类操作能够包括其中mpc集群确定针对k个最近邻用户简档中的用户简档的真实标签的集合中的与类别相对应的真实标签是第一值的真实标签的频率的一个或多个操作。例如,这可以对应于与关于在其中采用一种或多种多类分类技术的一个或多个实现方式中利用第一机器学习模型620来获得至少一个预测标签629执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6至图7所描述的。在前述实现方式中的至少一些中,为了确定预测标签的集合,对于集合中的每个类别,mpc集群对所确定的频率应用与该类别相对应的函数以为特定用户简档生成与该类别相对应的预测标签。例如,相应函数可以对应于如以上参考图9的步骤914所描述的由mpc集群针对w个不同类别推导的w个不同函数之一。
[0355]
图12是图示用于在mpc集群的计算系统处以提升的性能生成针对用户简档的推断结果的示例过程1200的流程图。可以例如在推断时间执行参考图12描述的操作中的一个或多个。过程1200的操作中的至少一些能够例如由诸如图1的mpc集群130的mpc1的mpc集群的第一计算系统实现,并且还能够对应于以上参考图8描述的操作中的一个或多个。然而,在过程1200中,能够在秘密份额上执行一个或多个操作,以便提供用户数据隐私保护。一般而言,在至少一些实现方式中,如在下面描述并且在本文中其他地方描述的“份额”可以对应于秘密份额。其他配置是可能的。可以例如在推断时间执行参考图12描述的操作中的一个或多个。
[0356]
mpc集群的第一计算系统接收与给定用户简档相关联的推断请求(1202)。例如,这可以对应于与关于mpc集群130的mpc1从应用112接收推断请求执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图1所描述的。在一些实现方式中,这可以对应于与关于如以上参考图8所描述的步骤802执行的一个或多个操作类似或等效的一个或多个操作。
[0357]
mpc集群的第一计算系统确定针对给定用户简档的预测标签(1204-1208)。标签能够是或者包括与用户简档相关联的基于人口统计的用户组标识符或人口统计特征。在一些实现方式中,这可以对应于与关于如以上参考图8描述的步骤804执行的一个或多个操作类似或等效的一个或多个操作。然而,在步骤1204-1208中,能够在秘密份额上执行对针对给定用户简档的预测标签的确定,以便提供用户数据隐私保护。为了确定针对给定用户简档的预测标签,mpc集群的第一计算系统(i)至少部分地基于给定用户简档的第一份额、使用多个用户简档训练的第一机器学习模型和针对多个用户简档的多个真实标签中的一个或多个真实标签来确定预测标签的第一份额(1204),(ii)从mpc集群的第二计算系统接收指示由mpc集群的第二计算系统至少部分地基于给定用户简档的第二份额和一个或多个机器学习模型的第一集合确定的预测标签的第二份额的数据,并且(iii)至少部分地基于预测标签的第一份额和第二份额来确定预测标签(1208)。例如,mpc集群的第二计算系统可以对应于图1的mpc集群130的mpc2。
[0358]
在此示例中,针对多个用户简档的多个真实标签可以对应于作为加密的标签数据626的部分被包括的真实标签,其是针对用于训练和/或评价第一机器学习模型620的多个用户简档的真实标签。在一些示例中,多个真实标签可以对应于真实标签的另一集合的份额。来自确定针对给定用户简档的预测标签所基于的多个真实标签当中的一个或多个真实标签例如可以包括针对通过第一机器学习模型620的k-nn模型622识别的k个最近邻用户简档中的每一个的至少一个真实标签。在一些示例中,多个真实标签中的每一个被加密,如图6至图7的示例中的情况一样。在上面详细地描述了能够利用针对k个最近邻用户简档的真实标签来确定预测标签的各种方式中的一些。如在上文中变得明显的,利用此类真实标签来确定预测标签的方式或方法可以至少部分取决于被采用的推断技术的类型(例如,回归技术、二元分类技术、多类分类技术等)。在上面参考图1至图5提供了有关可以与k-nn计算相关联地执行的秘密份额交换的附加细节。
[0359]
mpc集群的第一计算系统确定指示预测标签中的预测误差的预测残差值(1210-1214)。在一些实现方式中,这可以对应于与关于如以上参考图8所描述的步骤806执行的一个或多个操作类似或等效的一个或多个操作。然而,在步骤1210-1214中,能够在秘密份额上执行对预测残差值的确定,以便提供用户数据隐私保护。为了确定预测残差值,mpc集群的第一计算系统(i)至少部分地基于给定用户简档的第一份额和使用多个用户简档训练的第二机器学习模型以及指示针对多个用户简档的多个真实标签与如使用第一机器模型针对多个用户简档确定的多个预测标签之间的差异的数据来确定给定用户简档的预测残差值的第一份额(1210),(ii)从mpc集群的第二计算系统接收指示由mpc集群的第二计算系统至少部分地基于给定用户简档的第二份额和一个或多个机器学习模型的第二集合确定的给定用户简档的预测残差值的第二份额的数据(1212),并且(iii)至少部分地基于预测残差值的第一份额和第二份额来确定给定用户简档的预测残差值(1214)。
[0360]
mpc集群的第一计算系统基于预测标签和预测残差值来生成表示推断结果的数据(1216)。在一些实现方式中,这可以对应于与关于如以上参考图8描述的步骤808执行的一个或多个操作类似或等效的一个或多个操作。因此,在一些示例中,推断结果包括或者对应于预测标签和预测残差值的和。
[0361]
mpc集群的第一计算系统将表示推断结果的数据提供给客户端设备(1218)。在一些实现方式中,这可以对应于与关于如以上参考图8所描述的步骤810执行的一个或多个操作类似或等效的一个或多个操作。例如,这可以对应于与关于mpc集群130向应用112在其上运行的客户端设备110提供推断结果执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图1至2所描述的。
[0362]
在一些实现方式中,过程1200进一步包括其中mpc集群的第一计算系统对给定用户简档的第一份额应用变换以获得给定用户简档的第一变换后的份额的一个或多个操作。在这些实现方式中,为了确定预测标签,mpc集群的第一计算系统至少部分地基于给定用户简档的第一变换后的份额来确定预测标签的第一份额。例如,这可以对应于与关于采用随机投影逻辑610来对用户简档609(pi)应用随机投影变换以获得变换后的用户简档619(pi′
)执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6至图8所描述的。
[0363]
在前述实现方式中的至少一些中,为了确定预测标签的第一份额,mpc集群的第一计算系统将给定用户简档的第一变换后的份额作为输入提供给第一机器学习模型以获得针对给定用户简档的预测标签的第一份额作为输出。例如,这可以对应于与关于第一机器学习模型620接收变换后的用户简档619(pi′
)作为输入并且响应于其而生成至少一个预测标签629执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6至图7所描述的。
[0364]
在一些示例中,前述变换可以是随机投影。此外,在这些示例中的至少一些中,前述随机投影可以是johnson-lindenstrauss(j-l)变换。
[0365]
在一些实现方式中,为了应用j-l变换,mpc集群能够以密文生成投影矩阵r。为了将n维pi投影到k维,mpc集群能够生成n
×
k随机矩阵r。例如,第一计算系统(例如mpc1)能够创建n
×
k随机矩阵a,其中a
i,j
以50%概率=1并且a
i,j
以50%概率=0。第一计算系统能够将a拆分成两个份额[a1]和[a2],丢弃a,机密地保持[a1],并且将[a2]给予第二计算系统(例如,mpc2)。类似地,第二计算系统能够创建n
×
k随机矩阵b,其元素具有a的元素的相同分布。第二计算系统能够将b拆分成两个份额[b1]和[b2],丢弃b,机密地保持[b2],并且将[b1]给予第一计算系统。
[0366]
第一计算系统然后能够将[r1]计算为2
×
([a1]==[b1])-1。类似地,第二计算系统然后能够将[r2]计算为2
×
([a2]==[b2])-1。以这种方式,[r1]和[r2]是其元素以相等概率为1或-1的r的两个秘密份额。
[0367]
实际随机投影在维度1
×
n的pi的秘密份额与维度n
×
k的投影矩阵r之间以产生1
×
k的结果。假定n>>k,j-l变换将训练数据的维度从n减少到k。为了在加密的数据中执行以上投影,第一计算系统能够计算[p
i,1
]

[r
i,1
],这需要两个份额之间的乘法和两个份额之间的加法。
[0368]
如以上所提及的,在一些实现方式中,第一机器学习模型包括由mpc集群的第一计算系统维护的k-最近邻模型,并且一个或多个机器学习模型的第一集合包括由mpc集群的
第二计算系统维护的k-最近邻模型。在一些示例中,两个前述k-最近邻模型可以与彼此相同或几乎相同。也就是说,在一些示例中,第一计算系统和第二计算系统维护相同k-nn模型的副本,并且各自存储它们自己的真实标签的份额。在一些示例中,可以实现植根于一种或多种原型方法中的模型代替前述k-最近邻模型中的一个或二者。
[0369]
在这些实现方式中的至少一些中,为了确定预测标签,mpc集群的第一计算系统(i)至少部分地基于给定用户简档的第一份额和由mpc集群的第一计算系统维护的k-最近邻模型来识别最近邻用户简档的第一集合,(ii)从mpc集群的第二计算系统接收指示由mpc集群的第二计算系统至少部分地基于给定用户简档的第二份额和由mpc集群的第二计算系统维护的k-最近邻模型识别的最近邻简档的第二集合的数据,(iii)至少部分地基于最近邻简档的第一集合和第二集合来识别被认为与多个用户简档当中的给定用户简档最相似的k个最近邻用户简档,并且至少部分地基于针对k个最近邻用户简档中的每一个的真实标签来确定预测标签的第一份额。例如,这可以对应于与关于在其中采用一种或多种回归和/或二元分类技术的一个或多个实现方式中利用第一机器学习模型620来获得至少一个预测标签629执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6至图8所描述的。在一些示例中,预测标签包括或者对应于针对k个最近邻用户简档的真实标签之和。
[0370]
在前述实现方式中的一些中,为了确定预测标签的第一份额,mpc集群的第一计算系统(i)确定针对k个最近邻用户简档的真实标签之和的第一份额,(ii)从mpc集群的第二计算系统接收针对k个最近邻用户简档的真实标签之和的第二份额,并且(iii)至少部分地基于针对k个最近邻用户简档的真实标签之和的第一份额和第二份额来确定针对k个最近邻用户简档的真实标签之和。例如,这可以对应于与关于在其中采用一种或多种多类分类技术的一个或多个实现方式中利用第一机器学习模型620来获得至少一个预测标签629执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6至图8所描述的。
[0371]
在一些实现方式中,第二机器学习模型包括由mpc集群的第一计算系统维护的深度神经网络(dnn)、梯度提升决策树(gbdt)和随机森林模型中的至少一个,并且一个或多个机器学习模型的第二集合包括由mpc集群的第二计算系统维护的dnn、gbdt和随机森林模型中的至少一个。在一些示例中,由第一计算系统和第二计算系统维护的两个模型(例如,dnn、gbdt、随机森林模型等)可以与彼此相同或几乎相同。
[0372]
在一些实现方式中,过程1200进一步包括其中mpc集群评价第一机器学习模型的性能并且在评价第一机器学习模型的性能中使用指示针对多个用户简档确定的预测残差值的数据来训练第二机器学习模型的一个或多个操作。例如,这可以对应于与关于mpc集群执行如以上参考图8至图9所描述的步骤920执行的一个或多个操作类似或等效的一个或多个操作。然而,在此类实现方式中,能够在秘密份额上执行一个或多个操作,以便提供用户数据隐私保护。在这些实现方式中,为了评价第一机器学习模型的性能,对于多个用户简档中的每一个,mpc集群确定针对用户简档的预测标签并且确定指示预测标签中的预测误差的用户简档的残差值。为了确定针对用户简档的预测标签,mpc集群的第一计算系统(i)至少部分地基于用户简档的第一份额、第一机器学习模型和针对多个用户简档的真实标签中
的一个或多个真实标签来确定针对用户简档的预测标签的第一份额,(ii)从mpc集群的第二计算系统接收指示由mpc集群的第二计算系统至少部分地基于用户简档的第二份额和由mpc集群的第二计算系统维护的一个或多个机器学习模型的第一集合确定的针对用户简档的预测标签的第二份额的数据,并且(iii)至少部分基于预测标签的第一份额和第二份额来确定针对用户简档的预测标签。为了确定指示预测标签中的误差的用户简档的残差值,mpc集群的第一计算系统(i)至少部分地基于针对用户简档确定的预测标签和包括在多个真实标签中的针对用户简档的真实标签的第一份额来确定用户简档的残差值的第一份额,(ii)从mpc集群的第二计算系统接收指示由mpc集群的第二计算系统至少部分地基于针对用户简档确定的预测标签和针对用户简档的真实标签的第二份额确定的用户简档的残差值的第二份额的数据,并且(iii)至少部分地基于残差值的第一份额和第二份额来确定用户简档的残差值。例如,这可以对应于与关于mpc集群执行如以上参考图11所描述的步骤1108-1106执行的一个或多个操作类似或等效的一个或多个操作。另外,在这些实现方式中,过程1200进一步包括其中mpc集群在评价第一机器学习模型的性能中使用指示针对多个用户简档确定的残差值的数据来训练第二机器学习模型的一个或多个操作。例如,这可以对应于与关于mpc集群执行如以上参考图9所描述的步骤930执行的一个或多个操作类似或等效的一个或多个操作。
[0373]
在前述实现方式中的至少一些中,用户简档的残差值的第一份额指示由第一机器学习模型针对用户简档确定的预测标签与针对用户简档的真实标签的第一份额之间的值的差异,并且用户简档的残差值的第二份额指示由第一机器学习模型针对用户简档确定的预测标签与针对用户简档的真实标签的第二份额之间的值的差异。例如,这可以是针对在其中采用回归技术的示例的情况。
[0374]
在前述实现方式中的至少一些中,在mpc集群评价第一机器学习模型的性能之前,过程1200进一步包括一个或多个操作,其中mpc集群(i)推导函数并且(ii)将第一机器学习模型配置成在给定用户简档作为输入的情况下生成针对用户简档的初始预测标签并且将该函数应用于针对用户简档的初始预测标签以生成针对用户简档的预测标签的第一份额作为输出。例如,这可以对应于与关于mpc集群执行如以上参考图8至图9所描述的步骤914-916执行的一个或多个操作类似或等效的一个或多个操作。为了推导函数,mpc集群的第一计算系统(i)至少部分地基于多个真实标签中的每一个的第一份额来推导函数的第一份额,(ii)从mpc集群的第二计算系统接收指示由mpc集群的第二计算系统至少部分基于多个真实标签中的每一个的第二份额推导的函数的第二份额的数据,并且(iii)至少部分地基于函数的第一份额和第二份额来推导函数。例如,对于在其中采用二元分类技术的示例,这可以对应于以下一个或多个操作,其中mpc集群将第一机器学习模型配置成在给定用户简档作为输入的情况下:(i)计算针对k个最近邻用户简档的真实标签之和(sum_of_labels),并且(ii)将函数(变换f)应用于针对用户简档的初始预测标签,以生成针对用户简档的预测标签作为输出。对于在其中采用多类分类技术的情况,可以执行类似操作。
[0375]
当在秘密份额上实现时,第一计算系统(例如,mpc1)能够计算:
[0376]
[0377]
[count
0,1
]=∑i(1-[l
i,1
])
[0378][0379]
类似地,当在秘密份额上实现时,第二计算系统(例如,mpc2)能够计算:
[0380][0381]
[count
0,2
]=∑i(1-[l
i,2
])
[0382][0383]
mpc集群然后能够以明文重构如上所述的sum0、count0、sum_of_square0,并且计算分布
[0384]
类似地,为了计算分布第一计算系统(例如,mpc1)能够计算:
[0385][0386]
[count
1,1
]=∑i[l
i,1
]
[0387][0388]
并且,第二计算系统(例如,mpc2)能够计算:
[0389][0390]
[count
1,2
]=∑i[l
i,2
]
[0391][0392]
mpc集群然后能够以明文重构如上所述的sum1、count1、sum_of_square1,并且计算分布
[0393]
在前述实现方式中的至少一些中,当评价第一机器学习模型的性能时,mpc集群能够采用一种或多种定点计算技术来确定每个用户简档的残差值。更具体地,当评价第一机器学习模型的性能时,为了确定每个用户简档的残差值的第一份额,mpc集群的第一计算系统按特定缩放因子缩放对应的真实标签或其份额,按特定缩放因子缩放与函数相关联的系数{a2,a1,a0}并且将缩放后的系数四舍五入到最接近的整数。在此类实现方式中,mpc集群的第二计算系统可以执行类似操作以确定每个用户简档的残差值的第二份额。mpc集群因此能够用秘密份额计算残差值,从两个秘密份额重构明文残差值,并且将明文残差值除以缩放因子。
[0394]
在前述实现方式中的至少一些中,过程1200进一步包括其中mpc集群的第一计算系统至少部分地基于多个真实标签中的每一个的第一份额来估计分布参数的集合的第一份额的一个或多个操作。在一些此类实现方式中,为了至少部分地基于多个真实标签中的每一个的第一份额来推导函数的第一份额,mpc集群的第一计算系统至少基于分布参数的集合的第一份额来推导函数的第一份额。例如,这可以对应于与关于mpc集群执行如以上参考图8至图9所描述的步骤912-914执行的一个或多个操作类似或等效的一个或多个操作。因此,分布参数的前述集合能够包括多个真实标签中的第一值的真实标签的预测误差的概
率分布的一个或多个参数,例如,多个真实标签中的第一值的真实标签的预测误差的正态分布的均值(μ0)和方差(σ0),以及多个真实标签中的第二值的真实标签的预测误差的概率分布的一个或多个参数,例如,多个真实标签中的第二不同值的真实标签的预测误差的正态分布的均值(μ1)和方差(σ1)。如上所述,在一些示例中,分布参数的前述集合能够包括其他类型的参数。此外,在前述实现方式中的至少一些中,函数是二次多项式函数,例如,f(x)=a2x2 a1x a0,其中f

(x)=2a2x a1,但是,在一些示例中,可以采用其他函数。
[0395]
在一些示例中,为了确定预测标签的第一份额,mpc集群的第一计算系统(i)确定针对k个最近邻用户简档的真实标签之和的第一份额,(ii)从mpc集群的第二计算系统接收针对k个最近邻用户简档的真实标签之和的第二份额,并且(iii)至少部分地基于针对k个最近邻用户简档的真实标签之和的第一份额和第二份额来确定针对k个最近邻用户简档的真实标签之和。例如,这可以是采用回归或二元分类技术的实现方式的情况。在一些前述示例中,预测标签的第一份额可以对应于针对k个最近邻用户简档的真实标签之和。例如,这可以是针对在其中采用回归分类技术的实现方式的情况在其他此类示例中,为了确定预测标签的第一份额,mpc集群对针对k个最近邻用户简档的真实标签之和应用函数以生成针对给定用户简档的预测标签。例如,这可以是针对在其中采用二元分类技术的实现方式的情况
[0396]
如以上所提及的,在前述实现方式中的一些中,为了至少部分地基于针对k个最近邻用户简档中的每一个的真实标签来确定预测标签的第一份额,mpc集群的第一计算系统至少部分地基于与类别的集合相对应的针对k个最近邻用户简档中的每一个的真实标签的集合来确定预测标签的集合的第一份额。为了确定预测标签的集合的第一份额,对于该集合中的每个类别,mpc集群的第一计算系统(i)确定针对k个最近邻用户简档中的用户简档的真实标签的集合中的与类别相对应的真实标签是第一值的真实标签的频率的第一份额,(ii)接收针对k个最近邻用户简档中的用户简档的真实标签的集合中的与类别相对应的真实标签是第一值的真实标签的频率的第二份额,并且(iii)至少部分地基于针对k个最近邻用户简档中的用户简档的真实标签的集合中的与类别相对应的真实标签是第一值的真实标签的频率的第一份额和第二份额来确定针对k个最近邻用户简档中的用户简档的真实标签的集合中的与类别相对应的真实标签是第一值的真实标签的频率。此类操作能够包括其中mpc集群的第一计算系统确定针对k个最近邻用户简档中的用户简档的真实标签的集合中的与类别相对应的真实标签是第一值的真实标签的频率的一个或多个操作。例如,这可以对应于与关于在其中采用一种或多种多类分类技术的一个或多个实现方式中利用第一机器学习模型620来获得至少一个预测标签629执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6至图8所描述的。
[0397]
在前述实现方式中的至少一些中,为了确定预测标签的集合的第一份额,对于集合中的每个类别,mpc集群的第一计算系统对针对k个最近邻用户简档中的用户简档的真实标签的集合中的与类别相对应的真实标签是第一值的真实标签的频率应用与类别相对应的函数以针对给定用户简档生成与类别相对应的预测标签的第一份额。例如,相应函数可以对应于如以上参考图8至图9的步骤914所描述的由mpc集群针对w个不同类别推导的w个
不同函数之一。
[0398]
对于多类分类问题,当评价第一机器学习模型的性能(例如,质量)时,对于每个训练示例/查询,mpc集群能够找到k个最近邻并且计算其标签在秘密份额上的频率。
[0399]
例如,考虑其中假定对于多类分类问题存在w个有效标签(例如,类){l1,l2,...lw}的示例。在通过{id1,id2,...idk}识别的k个邻居当中,第一计算系统(例如,mpc1)能够将作为[lj,1]的第j个标签的频率计算为:
[0400][0401]
第一计算系统能够根据真实标签[label1]将频率计算为:
[0402]
[expected_frequency
j,1
]=k
×
([label1]==j)
[0403]
因此,第一计算系统能够计算:
[0404]
[residue
j,1
]=[expected_frequency
j,1
]-[frequency
j,1
]
[0405]
并且,[residue
j,1
]等效于:
[0406][0407]
类似地,第二计算系统(例如,mpc2)能够计算:
[0408][0409]
在二元分类和回归的情况下,对于每个推断,残差值可以是整数类型的秘密消息。相反,在多类分类的情况下,对于每个推断,残差值可以是整数向量的秘密消息,如上所示。
[0410]
人口统计报告
[0411]
数字组件提供者160可以具有可以涉及不同数字组件的若干活动(例如数字组件分发活动)。对于在客户端设备110上向各种用户显示的每个活动和数字组件,数字组件提供者160可能期望指示该数字组件或包括该数字组件的活动的表现的反馈。为了提供这种反馈,内容平台150能够实现人口统计报告以生成并且向数字组件提供者160提供指示针对各种基于人口统计的用户组的每个活动和/或每个数字组件的有效性的报告。在一个示例中,报告能够包括表——诸如在下面表7中示出的表——以及与表中示出的数据相关联的分析。每个内容提供者160被显示特定于针对该特定内容提供者160的活动和/或数字组件的一个或多个报告。
[0412][0413][0414]
表7
[0415]
虽然被示出报告的数字组件提供者160被描述为包括涉及一个或多个数字组件的多个活动,但是在其他实现方式中,任何数字组件提供者160可以具有任何数目的活动、任何人口统计类别(例如,年龄范围;性别;父母身份;家庭收入;生活方式兴趣,诸如技术爱好者、体育迷、烹饪狂热者等等;诸如产品购买兴趣的细分市场;和/或任何其他类别)以及任何类型的事件或事件的任何组合(例如,展示、点击和/或转化、和/或其缺少)。针对每个报告生成的分析能够相应地变化。人口统计类别能够对应于各种用户已经通过扩展或自我报告的方式被指配到的用户组。
[0416]
因为表(例如,表7)中的数据是针对所有用户总体上而不是针对单个用户个体地计算的,所以保护了个体用户的隐私。
[0417]
在一些实现方式中,能够为人口统计报告实现附加或替代隐私保护措施,诸如如在下面所说明的差分噪声添加、记录的去识别化、k-匿名、基于粒度的技术等等。对于差分噪声添加,应用112、安全mpc集群130、内容平台150和/或聚合系统180能够将来自预设分布(例如,拉普拉斯或高斯分布)的可控量的差分噪声添加到涉及用户的私有数据(例如,诸如ip地址和/或时间戳的识别信息)的一个或多个功能。对于记录的去识别,应用112能够简单地发送一组记录而没有诸如ip地址和/或时间戳的任何识别信息。为了去识别记录,应用112和/或内容平台150可以去除识别信息。对于k-匿名,应用112、安全mpc集群130、内容平台150和/或聚合系统180能够实现k-匿名化技术,其中用户数据内的用户属性的至少“k”数量个值能够被匿名化以增强隐私,并且能够对匿名化数据执行诸如聚合的操作。k-匿名要求报告被聚合在给定键上并且只有在键与至少k个记录共享时才被揭示。对于基于粒度的
技术,应用112能够被编程以允许数字组件提供者160指定报告所需要的粒度(例如,诸如一天或一个小时的基于时间的粒度,或诸如特定州、省、市或国家的地理粒度),并且应用112、安全mpc集群130、内容平台150和/或聚合系统180能够对于所指定的粒度执行计算。
[0418]
用于人口统计报告的系统
[0419]
报告中呈现的数据(例如,在各种人口统计类别中的每一种内的展示、点击和/或转化的数目和/或展示、点击和/或转化的缺少/不存在)能够使用第三方cookie来生成。然而,为了避免cookie以便保护用户隐私,使用环境100的系统(其还能够被称为框架)来执行报告。
[0420]
内容平台150(例如,dsp或ssp,并且在某些实现方式中为单独的报告平台)能够从数字组件提供者160接收识别涉及数字组件的活动以及数字组件提供者160期望对其进行人口统计报告的一个或多个人口统计类别的第一集合的数据。数字组件提供者160能够将此数据输入到应用(例如浏览器或本机应用)上。类别的第一集合可以包括例如女性和收入大于100,000美元。在一些实现方式中,识别活动和一个或多个人口统计类别的第一集合的数据能够被包括在聚合键中,该聚合键能够是具有多个值或多列值的复合或级联键。这些值可以是识别活动的数据,并且每个列能够表示不同人口统计类别。
[0421]
内容平台150(例如,dsp或ssp,以及在某些实现方式中为耦合到内容平台150的单独的报告平台)能够使正在(或将)在其上显示数字组件的客户端设备110的用户与一个或多个人口统计类别的第二集合相关联。在一个示例中,一个或多个人口统计类别的第二集合包括女性、父母和收入大于100,000美元。能够以以下两种方式中的至少一种执行关联。在第一方式下,内容平台150(或在一些实现方式中单独的报告平台)能够接收由用户在客户端设备110上实现的应用112上提供的对一个或多个人口统计类别的第二集合的自我识别,并且然后内容平台150(或在一些实现方式中单独的报告平台)能够将用户映射到一个或多个人口统计类别的第二集合以执行关联。在第二方式下,内容平台150能够向mpc集群130传送用户的浏览历史(例如,浏览历史能够是或者包括用户简档,内容平台150能够在图2的过程210和212处向mpc集群130传送该用户简档);然后内容平台150(或在一些实现方式中单独的报告平台)能够从mpc集群130内的机器学习模型接收由该机器学习模型输出的包括人口统计类别的第二集合的推断;并且随后内容平台150(或在一些实现方式中单独的报告平台)能够将用户映射到一个或多个人口统计类别的第二集合以执行关联。
[0422]
此机器学习模型能够是k最近邻模型,并且能够使用以上相对于基于人口统计的数字组件分布描述的建模技术。然而,用于报告的此机器学习模型可以使用来自用于基于人口统计的数字组件分发的一个或多个机器学习模型的不同数据来训练,因为机器学习出于不同目的被用于基于人口统计的数字组件分发和报告。例如,在基于人口统计的数字组件分发的情况下,机器学习的目的是为了向用户或者向用户的应用(例如,浏览器)提议用户组,使得能够向用户显示用户感兴趣的相关数字组件,然而在人口统计报告的情况下,机器学习的目的是为了在对数字组件提供者160的报告中确定已被显示了数字组件的用户能够被放置到其中的类别(其还能够被称为桶)。鉴于这些不同目的,用于基于人口统计的数字组件分发和报告的机器学习模型被不同地训练,并且因此生成不同输出(即将相同概率输出归类到不同类别中——即对用户进行不同地分类)。例如,用于基于人口统计的数字组件分发的机器学习模型可以总是将95%概率为男性的输出归类为男性,但是报告模型可以
将全部为95%概率为男性的100个用户报告为95名男性和5名女性;在这种示例中,mpc集群130在承诺特定标签方面对报告目的来说与对基于人口统计的数字组件分发目的来说比可能更软(即更容易或不太严格)。内容平台150能够针对在mpc集群130中实现以进行基于人口统计的数字组件分发和/或报告的机器学习模型控制或改变针对归类的这种严格性。在一些实现方式中,单独的报告平台能够针对在mpc集群130中实现以进行报告的机器学习模型控制或改变针对归类的这种严格性。
[0423]
虽然机器学习模型被描述为被不同地训练以进行基于人口统计的数字组件分发和人口统计报告,但是在一些实现方式中可以类似地或甚至以相同方式训练那些机器学习模型。此外,虽然用于基于人口统计的数字组件分发和人口统计报告的机器学习模型被示出为驻留在mpc集群130中,但是在一些其他实现方式中,能够在客户端设备110上实现用于基于人口统计的数字组件分发和/或报告的机器学习模型,使得用户到人口统计组中的归类发生在客户端设备110而不是mpc集群130上。通常在客户端设备110具有足够的存储容量和计算能力的情况下实现这些实现方式。此类替代实现方式能够通过防止与mpc集群130进行大量通信来有利地节省带宽。
[0424]
如果一个或多个人口统计类别(其表示数字组件提供者160期望对其进行人口统计报告的人口统计类别;例如,女性和收入大于100,000美元,作为由数字组件提供者160输入到应用112上的数据)的第一集合和一个或多个人口统计类别(其表示对如通过机器学习所生成的用户的用户组或由用户在应用112上自我识别的用户组的推断;例如,女性、父母和收入大于100,000美元)的第二集合具有至少一个共同的人口统计类别(例如,女性和收入大于100,000美元的人口统计类别),则内容平台150(或在一些实现方式中单独的报告平台)能够向聚合api传送在客户端设备110上输入的浏览事件(例如,展示、点击和/或转化、和/或其缺少/不存在)和至少一个共同的人口统计类别。在以上针对一个或多个人口统计类别的第一集合和一个或多个人口统计类别的第二集合给出的示例中,注意女性和收入大于x美元的类别是共同的。因此,在这种示例中,内容平台150(或在一些实现方式中单独的报告平台)向聚合api传送在客户端设备110上输入的浏览事件(例如,展示、点击和/或转化、和/或其缺少/不存在)和识别共同的人口统计类别的数据。
[0425]
在一些实现方式中,报告能够是响应于由数字内容提供者160进行的请求。在一些实现方式中,报告能够是响应于来自内容平台150的请求。在一些实现方式中,报告能够是响应于特定类型的用户交互(例如,诸如内容项的特定数字内容的显示、对数字内容项的一次或多次点击、与数字内容项相关联的转化,诸如导航到用于购买使用数字内容项促销的产品的产品购买网页等)。
[0426]
聚合api将浏览事件(例如,展示、点击和/或转化、和/或其缺少/不存在)和至少一个共同的人口统计类别与其他用户的至少一个浏览事件和作为一个或多个人口统计类别的第一集合中的一个人口统计类别的相关的至少一个人口统计类别组合以生成聚合数据。在以上使用的示例中,聚合api将针对女性和收入大于x美元的类别的浏览事件的数据与在女性和收入大于x美元的类别内的其他用户——相对于此数字组件——的浏览事件组合。在此示例中,聚合未考虑到父母的非共同类别(即不是在一个或多个人口统计类别的第一集合与一个或多个人口统计类别的第二集合之间共同的),因为数字组件提供者期望仅仅女性和收入大于x美元的指定类别而不是父母的类别的报告。在一些示例中,聚合数据能够
是与以上讨论的表7相同或类似的表。聚合能够聚合预设时间量(例如,1小时、12小时、1天、2天、5天、1个月或任何其他时间段)的数据。例如,在表7中,展示、点击和转化的计数是每天的。
[0427]
以安全方式如下执行聚合以防止欺诈并且保护用户隐私。聚合api与聚合系统180进行通信。聚合系统180能够是通信地耦合到内容平台150、单独的报告平台、客户端设备110、网站142、发布者140和/或数字组件提供者160的一个或多个计算机。聚合系统180能够基于从客户端设备110接收到的数据来生成聚合网络测量结果。在一些实现方式中,要聚合的数据由应用112发送到聚合系统,该应用112能够是web浏览器或本机应用。在几个实现方式中,要聚合的数据能够由客户端设备110的操作系统发送到聚合系统;在此类实现方式中,客户端设备110上的web浏览器和/或本机应用能够被配置成向操作系统报告展示、点击和/或转化。操作系统能够执行在下面描述为由应用112执行的用于报告展示和转化的操作中的每一个。
[0428]
客户端设备110上的应用112能够向聚合系统180提供包括表示网络数据的加密数据的测量数据元素。网络数据能够包括关于展示、点击和/或转化的数据。例如,应用112能够生成并且向聚合系统180发送每个转化的测量数据元素,对每个转化来说转化数据被存储在客户端设备110处。对于一个或多个数字组件中的每一个,聚合网络测量结果能够包括跨多个客户端设备110的数字组件的展示、点击和/或转化的总数。
[0429]
应用112、安全mpc集群130、内容平台150和/或聚合系统180能够通过如下所述实现诸如阈值方案或两方或其他mpc计算系统的各种技术来保护隐私。
[0430]
在一些实现方式中,应用112能够使用(t,n)阈值方案来生成测量数据元素中的数据。在一些实现方式中,当应用112检测到转化或者接收到针对转化的转化数据时,应用112基于关于展示、点击和/或转化的数据来生成组密钥(例如,多项式函数)。应用112然后能够生成组成员密钥,该组成员密钥表示组密钥的一部分并且能够用于只有当接收到针对展示、点击和转化的相同集合的足够数目的组成员密钥时才重新生成组密钥。在此示例中,针对转化的测量数据元素能够包括由应用112生成的组成员密钥以及对应于展示、点击和转化的集合的标签。展示、点击和转化的每个独特集合能够具有对应的独特标签,使得聚合系统180能够使用其标签来聚合针对展示、点击和/或转化的每个集合的测量数据元素。
[0431]
在(t,n)阈值加密方案中,聚合服务器将需要接收针对展示、点击和/或转化的相同集合的至少t个组成员密钥以便能够对展示和转化数据进行解密。如果接收到少于t个组成员密钥,则聚合服务器无法对关于展示、点击和/或转化的数据进行解密。一旦从客户端设备110接收到针对相同展示和转化对的至少t个测量数据元素,聚合系统180就能够从至少t个组成员密钥确定组密钥并且从该组密钥获得展示和转化数据。
[0432]
诸如(t,n)阈值加密方案的阈值加密技术能够使用网络数据(例如,展示、点击和/或转化数据)或其一部分或派生物作为用于生成组密钥的种子,该组密钥然后被拆分在报告正在测量网络数据的多个客户端设备的多个应用(例如,web浏览器或本机应用)之间。这使得在不同客户端设备上运行的应用中的每一个能够在没有应用(或客户端设备)之间的协作的情况下并且在不需要中央系统将密钥分发给每个应用的情况下生成相同的组密钥,该相同的组密钥使用相同的网络数据来对网络数据进行加密。替代地,在其处发生网络事件(例如,展示和相关联的转化)的每个应用能够使用它例如从数字组件和/或远程服务器
接收到的网络数据来生成对网络数据进行加密的组密钥。
[0433]
每个应用能够使用不同信息来生成组成员密钥,该组成员密钥当与足够数目的其他组成员密钥组合时,能够用于重新生成组密钥或组密钥的另一表示。例如,每个应用能够使用应用的独特标识符来生成其组成员密钥,使得每个应用在没有应用之间的协作的情况下生成与每个其他应用不同的组成员密钥。由每个应用对不同组成员密钥的这种生成使得能够在接收到合计至少阈值“t”数量个组成员密钥的组成员密钥的任何组合时重新生成组密钥。因此,网络数据能够在接收到至少t个组成员密钥时被解密,但是无法在接收到少于t个组成员密钥的情况下被解密。通过在没有应用之间的协作的情况下在应用之间实现这种秘密共享通过排除用户的设备之间的通信来保护用户隐私,减少通过这种通信消耗的带宽,并且防止在将单个私钥简单地传出给每个应用时能够发生的测量欺诈。
[0434]
聚合系统180能够基于接收到的测量数据元素的数目来确定针对展示的点击和/或转化的数量,这些测量数据元素包括关于针对展示、点击和/或转化的集合的展示、点击和/或转化的数据。例如,在使用至少t个组成员密钥来获得展示、点击和转化数据之后,聚合系统180能够确定针对展示、点击和/或转化的集合接收到的组成员密钥的数目的计数作为转化的数量。聚合系统180能够经由聚合api将关于展示、点击和/或转化的数据报告给内容平台150(或在一些实现方式中单独的报告平台)。
[0435]
内容平台150(或在一些实现方式中单独的报告平台)能够从聚合api接收聚合数据。内容平台150(或在一些实现方式中单独的报告平台)能够使用聚合数据来生成报告。为了生成报告,内容平台150(或在一些实现方式中单独的报告平台)能够将聚合数据布置在表(例如表7的表或类似表)中,基于表中的聚合数据来生成分析,并且在报告中组合并呈现表和分析。因为表(例如表7)以及报告中的数据是针对所有用户总体上而不是针对单个用户个体地计算的,并且因为此类表或报告不受应用112、供应商、隐私专家或任何其他这种实体控制,所以此类报告保护用户隐私并且防止用户数据的泄露,同时避免cookie的使用。内容平台150(或在一些实现方式中单独的报告平台)能够将对聚合数据的报告传送到数字组件提供者160的应用(例如浏览器或本机应用)。报告能够被呈现在由在数字组件提供者160的计算设备上实现的应用显示的用户接口上。
[0436]
内容平台150(或在一些实现方式中单独的报告平台)能够响应于生成报告的请求而生成报告。在一些实现方式中,内容平台150(或在一些实现方式中单独的报告平台)能够从数字内容提供者160接收对报告的请求。在与这些实现方式一致的一个示例中,数字组件提供者160可以请求针对该数字组件提供者160的特定数字组件的报告。在另一示例中,数字组件提供者可以请求针对该数字组件提供者160的几个数字组件的报告。在又一示例中,数字组件提供者可以请求针对该数字组件提供者160的一个或多个活动的报告。在一些示例中,数字组件提供者160可以通过指定一个或多个活动id、一个或多个数字组件id、一个或多个人口统计用户组id和/或期望针对其的报告的一个或多个事件(例如展示、点击次数和/或转化、和/或其缺少/不存在)来请求报告。在其他实现方式中,能够自动地生成对报告的生成的请求。通过脚本对请求的自动生成能够以(a)预设时间间隔和/或(b)当与内容提供者160的数字组件或活动相关联的一个或多个事件——例如展示、点击和/或转化、和/或其缺少/不存在——的计数超过特定阈值时(例如,当通过女性的点击数超过1000时)发生。在某些实现方式中,脚本能够(a)响应于来自内容提供者的请求和/或(b)自动地生成请求。
通常,报告不是时延敏感的,并且花费一分钟或更长时间来生成报告可能不是不利的。
[0437]
尽管在上面描述了阈值方案,但是在一些实现方式中,聚合系统180能够是安全多方(例如,两方)计算系统。聚合系统180能够允许将跨多个站点的信息折叠成单个隐私保护报告,这通过在跨许多客户端设备110达到聚合阈值之后将数据刷新到报告端点的只写每源数据存储变得可能。也就是说,只有当使用服务器侧聚合服务来跨浏览器(或其他应用用户)充分地聚合数据时才报告数据。
[0438]
用于人口统计报告的技术
[0439]
图13是图示如由内容平台150执行的用于人口统计报告的示例过程1300的图。虽然报告被描述为由内容平台150执行,但是在一些实现方式中,报告能够由单独的报告平台执行,如以上同样指示的。内容平台150能够在1302处从数字组件提供者160的应用(例如浏览器或本机应用)接收识别涉及数字组件的活动以及数字组件提供者160期望对其进行人口统计报告的一个或多个人口统计类别的第一集合的数据。数字组件提供者160能够将此数据输入到这种应用上。类别的第一集合可以包括例如女性和收入大于x美元。在一些实现方式中,识别活动和一个或多个人口统计类别的第一集合的数据能够被包括在聚合键中,该聚合键能够是具有多个值或多列值的复合或级联键。
[0440]
内容平台150能够在1304处使正在(或将)在其上显示数字组件的客户端设备110的用户与一个或多个人口统计类别的第二集合相关联。在一个示例中,一个或多个人口统计类别的第二集合包括女性、父母和收入大于x美元。能够以以下两种方式中的至少一种执行关联。在第一方式下,内容平台150能够接收由用户在客户端设备110上实现的应用112上提供的对一个或多个人口统计类别的第二集合的自我识别,并且然后内容平台150能够将用户映射到一个或多个人口统计类别的第二集合以执行关联。在第二方式下,内容平台150能够向mpc集群130传送用户的浏览历史;然后内容平台150能够从mpc集群130内的机器学习模型接收由该机器学习模型输出的包括人口统计类别的第二集合的推断;并且随后内容平台能够将用户映射到一个或多个人口统计类别的第二集合以执行关联。
[0441]
如果一个或多个人口统计类别(其表示数字组件提供者160期望对其进行人口统计报告的人口统计类别;例如,女性和收入大于100,000美元,作为由数字组件提供者160输入到应用112上的数据)的第一集合和一个或多个人口统计类别(其表示对如通过机器学习所生成的用户的用户组或由用户在应用112上自我识别的用户组的推断;例如,女性、父母和收入大于100,000美元)的第二集合具有至少一个共同的人口统计类别(例如,女性和收入大于100,000美元的人口统计类别),则内容平台150能够在1306处向聚合api传送在客户端设备110上输入的浏览事件(例如,展示、点击和/或转化、和/或其缺少/不存在)和至少一个共同的人口统计类别。在以上针对一个或多个人口统计类别的第一集合和一个或多个人口统计类别的第二集合给出的示例中,注意女性和收入大于x美元的类别是共同的。因此,在这种示例中,内容平台150向聚合api传送在客户端设备110上输入的浏览事件(例如,展示、点击和/或转化、和/或其缺少/不存在)和识别共同的人口统计类别的数据。
[0442]
聚合api将浏览事件(例如,展示、点击和/或转化、和/或其缺少/不存在)和至少一个共同的人口统计类别与其他用户的至少一个浏览事件和作为一个或多个人口统计类别的第一集合中的一个人口统计类别的相关的至少一个人口统计类别组合以生成聚合数据。在以上使用的示例中,聚合api将针对女性和收入大于x美元的类别的浏览事件的数据与在
女性和收入大于x美元的类别内的其他用户——相对于此数字组件——的浏览事件组合。在此示例中,聚合未考虑到父母的非共同类别(即不是在一个或多个人口统计类别的第一集合与一个或多个人口统计类别的第二集合之间共同的),因为数字组件提供者期望仅仅女性和收入大于x美元的指定类别而不是父母的类别的报告。在一些示例中,聚合数据能够是与以上讨论的表7相同或相似的表。聚合能够聚合预设时间量(例如,1小时、12小时、1天、2天、5天、1个月或任何其他时间段)的数据。例如,在表7中,展示、点击和转化的计数是每天的。
[0443]
在上面详细地描述了聚合api。
[0444]
内容平台150能够在1308处从聚合api接收聚合数据。内容平台150能够使用聚合数据来生成报告。为了生成报告,内容平台150能够将聚合数据布置在表(例如,表7的表或类似表)中,基于表中的聚合数据来生成分析,并且在报告中组合并呈现表和分析。因为表(例如,表7)以及报告中的数据是针对所有用户总体上而不是针对单个用户个体地计算的,并且因为此类表或报告不受应用112、供应商、隐私专家或任何其他这种实体控制,所以此类报告保护用户隐私并且防止用户数据的泄露同时避免cookie的使用。
[0445]
内容平台150能够响应于生成报告的请求而生成报告。在一些实现方式中,内容平台150能够从数字内容提供者160接收对报告的请求。在与这些实现方式一致的一个示例中,数字组件提供者160可以请求针对该数字组件提供者160的特定数字组件的报告。在另一示例中,数字组件提供者可以请求针对该数字组件提供者160的几个数字组件的报告。在又一示例中,数字组件提供者可以请求针对该数字组件提供者160的一个或多个活动的报告。在一些示例中,数字组件提供者160可以通过指定一个或多个活动id、一个或多个数字组件id、一个或多个人口统计用户组id和/或期望针对其的报告的一个或多个事件(例如展示、点击次数和/或转化、和/或其缺少/不存在)来请求报告。在其他实现方式中,能够自动地生成对报告的生成的请求。通过脚本对请求的自动生成能够以(a)预设时间间隔和/或(b)当与内容提供者160的数字组件或活动相关联的一个或多个事件——例如展示、点击和/或转化、和/或其缺少/不存在——的计数超过特定阈值时(例如,当通过女性的点击数超过1000时)发生。在某些实现方式中,脚本能够(a)响应于来自内容提供者的请求和/或(b)自动地生成请求。
[0446]
内容平台150能够在1310处将对聚合数据的报告传送到数字组件提供者160的应用(例如浏览器或本机应用)。报告能够被呈现在由在数字组件提供者160的计算设备上实现的应用显示的用户接口上。通常,报告不是时延敏感的。例如,花费一分钟或更长时间来生成报告可能不是不利的。
[0447]
图14是图示由客户端设备110执行以促进基于人口统计的数字组件分发和人口统计报告的示例过程1400的图。客户端设备110的应用112能够在1402处从一个或多个计算机(例如,包括两个计算系统mpc1和mpc2的mpc集群130)接收识别应用的用户的推断的人口统计特征的数据。应用112能够在1404处显示数字内容,该数字内容包括用于报告与数字组件相关的事件的计算机可读代码、以及指定允许的基于人口统计的用户组标识符的集合的数据、以及针对数字组件的活动标识符。正在针对其执行报告的数字内容能够是电子资源的内容,例如,web页面或本机应用的内容。在另一示例中,正在针对其执行报告的数字内容能够是正在电子资源的数字组件槽中显示的数字组件。
[0448]
应用112能够在1406处确定给定推断的特征与来自基于人口统计的用户组标识符的允许列表的给定允许的基于人口统计的用户组标识符匹配。基于人口统计的用户组标识符的允许列表能够包括对于数字内容来说允许对其进行报告的基于人口统计的用户组标识符。例如,列表能够包括用户组的所有者已经针对数字内容启用了报告的一个或多个用户组。列表能够被包括在数字内容的脚本中。为了确定是否存在匹配,应用112能够将允许的基于人口统计的用户组标识符与包括用户作为成员的用户组的用户组标识符的列表进行比较。
[0449]
响应于确定给定推断的人口统计特征与给定允许的基于人口统计的用户组标识符匹配,应用112能够在1408处使用计算机可读代码来生成并且传送更新针对数字组件和给定允许的基于人口统计的用户组标识符的一个或多个事件计数的请求。例如,请求能够是增加(例如,递增)通过给定允许的基于人口统计的用户组标识符识别的基于人口统计的用户组中的用户的数目,这些用户已经被呈现了数字内容,并且已经与之交互,例如,选择了数字内容,或者执行了相对于数字内容的某个其他动作。
[0450]
在1402处接收识别应用112的用户的推断的人口统计特征的数据包括在客户端设备110处接收针对将用户添加到的基于人口统计的用户组的推断的基于人口统计的用户组标识符。在一些实现方式中,能够向一个或多个计算机传送包括用户的用户简档的推断请求。在一些实现方式中,需要两个或更多个计算机来实现安全多方计算。这种推断请求能够包括用户的用户简档。能够响应于推断请求而从一个或多个计算机接收推断的人口统计用户组标识符。
[0451]
推断请求到一个或多个计算机的传输能够包括向形成一个或多个计算机的每个mpc计算系统(例如mpc服务器)发送用户简档的相应秘密份额。mpc集群130使用一个或多个机器学习模型来执行安全mpc过程以生成推断的基于人口统计的用户组标识符的秘密份额并且将推断的基于人口统计的用户组标识符的秘密份额传送到应用112。
[0452]
响应于显示数字组件,应用112能够向一个或多个计算机传送对识别应用112的用户的推断的人口统计特征的数据的推断请求。推断请求能够包括用户的用户简档以及与以下各项中的至少一个相关的场境信号:(i)在其中显示数字组件的数字组件槽或(ii)数字组件,其中,响应于推断请求而从一个或多个计算机接收推断的人口统计用户组标识符。在一些示例中,场境信号能够包括场境级别信号,诸如资源的统一资源定位符(url)、客户端设备110的位置、应用112的口语语言设置、数字组件槽的数目、首屏或首屏以下等等。在某些实例中,针对数字组件的场境信号能够包括创作信号,诸如关于数字组件的信息、数字组件的格式(例如,图像、视频、音频等等)、数字组件的大小等等。
[0453]
使用计算机可读代码来生成并且传送更新针对数字组件和给定允许的基于人口统计的用户组标识符的一个或多个事件计数的请求能够包括(i)生成包括活动标识符和给定允许的基于人口统计的用户组标识符的聚合键,以及(ii)与请求一起传送聚合键。
[0454]
使用计算机可读代码来生成并且传送更新针对数字组件和给定允许的基于人口统计的用户组标识符的一个或多个事件计数的请求能够包括调用应用112的应用编程接口(api)来发送请求。
[0455]
在一些实现方式中,过程1400能够被用于更新可能不正确的事件计数。例如,在报告用户被呈现了数字内容时,用户可能已经被推断为是第一基于人口统计的用户组的成
员。然而,一段时间以后,用户被推断为是在与第一基于人口统计的用户组不同的第二基于人口统计的用户组中。在此示例中,请求能够是使针对第一基于人口统计的用户组的事件计数递减并且使针对第二基于人口统计的用户组的事件计数递增。
[0456]
图15是能够用于执行上述操作的示例计算机系统1500的框图。系统1500包括处理器1510、存储器1520、存储设备1530和输入/输出设备1540。组件1510、1520、1530和1540中的每一个能够例如使用系统总线1550来互连。处理器1510能够处理用于在系统1500内执行的指令。在一些实现方式中,处理器1510是单线程处理器。在另一实现方式中,处理器1510是多线程处理器。处理器1510能够处理存储在存储器1520中或在存储设备1530上的指令。
[0457]
存储器1520存储系统1500内的信息。在一种实现方式中,存储器1520是计算机可读介质。在一些实现方式中,存储器1520是易失性存储器单元。在另一实现方式中,存储器1520是非易失性存储器单元。
[0458]
存储设备1530能够为系统1500提供大容量存储。在一些实现方式中,存储设备1530是计算机可读介质。在各种不同实现方式中,存储设备1530能够包括例如硬盘设备、光盘设备、由多个计算设备通过网络共享的存储设备(例如,云存储设备)、或某个其他大容量存储设备。
[0459]
输入/输出设备1540为系统1500提供输入/输出操作。在一些实现方式中,输入/输出设备1540能够包括网络接口设备中的一个或多个,例如,以太网卡、串行通信设备(例如,rs-232端口)、和/或无线接口设备(例如,802.11卡)。在另一实现方式中,输入/输出设备能够包括被配置成接收输入数据并且向外部设备1560发送输出数据的驱动器设备,例如,键盘、打印机和显示设备。然而,还能够使用其他实现方式,诸如移动计算设备、移动通信设备、机顶盒电视客户端设备等。
[0460]
尽管已经在图15中描述了示例处理系统,但是本说明书中描述的主题和功能操作的实现方式能够用其他类型的数字电子电路系统或者用计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等同物)或者用它们中的一个或多个的组合加以实现。
[0461]
本说明书中描述的主题和操作的实施例能够用数字电子电路系统或者用计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等同物)或者用它们中的一个或多个的组合加以实现。能够将本说明书中描述的主题的实施例实现为一个或多个计算机程序,即,在计算机存储媒体(或介质)上编码以供数据处理装置执行或者控制数据处理装置的操作的计算机程序指令的一个或多个模块。替换地或另外,程序指令能够被编码在人工生成的传播信号——例如,机器生成的电信号、光信号或电磁信号——上,该人工生成的传播信号被生成以对信息进行编码以用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质能够是计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合或者被包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质能够是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质还能够是一个或多个单独的物理组件或介质(例如,多个cd、磁盘或其他存储设备)或者被包括在一个或多个单独的物理组件或介质(例如,多个cd、磁盘或其他存储设备)中。
[0462]
能够将本说明书中描述的操作实现为由数据处理装置对存储在一个或多个计算
机可读存储设备上或者从其他源接收到的数据执行的操作。
[0463]
术语“数据处理装置”包含用于处理数据的所有种类的装置、设备和机器,作为示例包括可编程处理器、计算机、片上系统、或多个可编程处理器、计算机、片上系统,或上述各项的组合。装置能够包括专用逻辑电路系统,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。装置除了包括硬件之外还能够包括为讨论中的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。装置和执行环境能够实现各种不同的计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。
[0464]
计算机程序(还称为程序、软件、软件应用、脚本或代码)能够用任何形式的编程语言编写,编程语言包括编译或解释语言、声明或过程语言,并且计算机程序能够被以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象、或适合于在计算环境中使用的其他单元。计算机程序可以但不必对应于文件系统中的文件。能够在保持其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、在专用于讨论中的程序的单个文件中、或者在多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中存储程序。能够将计算机程序部署成在一个计算机上或者在位于一个站点处或跨多个站点分布并且通过通信网络互连的多个计算机上执行。
[0465]
本说明书中描述的过程和逻辑流程能够是通过一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据操作并且生成输出来执行动作而执行的。过程和逻辑流程还能够由专用逻辑电路系统执行,并且装置还能够作为专用逻辑电路系统被实现,该专用逻辑电路系统例如为fpga(现场可编程门阵列)或asic(专用集成电路)。
[0466]
作为示例,适合于计算机程序的执行的处理器包括通用微处理器和专用微处理器二者。通常,处理器将从只读存储器或随机存取存储器或二者接收指令和数据。计算机的必要元件是用于根据指令来执行动作的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者在操作上耦合以从该一个或多个大容量存储设备接收数据或者向其转移数据,或者两者兼有。然而,计算机不需要具有此类设备。此外,计算机能够被嵌入在另一设备中,该另一设备例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器、或便携式存储设备(例如,通用串行总线(usb)闪存驱动器),仅举几例。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,作为示例包括半导体存储器设备,例如eprom、eeprom和闪速存储器设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及cd-rom和dvd-rom盘。处理器和存储器能够由专用逻辑电路系统补充,或者并入在专用逻辑电路系统中。
[0467]
为了提供与用户的交互,能够在计算机上实现本说明书中描述的主题的实施例,该计算机具有用于向用户显示信息的显示设备,例如crt(阴极射线管)或lcd(液晶显示器)监视器,并且具有用户能够用来向该计算机提供输入的键盘和定点设备,例如鼠标或轨迹球。其他种类的设备也能够用于提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机能够通过向由用户使用的设备发送文档并且从由用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收到的
请求而向用户的客户端设备上的web浏览器发送web页面。
[0468]
能够在计算系统中实现本说明书中描述的主题的实施例,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有用户能够通过其与本说明书中描述的主题的实现方式交互的图形用户接口或web浏览器的客户端计算机),或者包括一个或多个此类后端、中间件或前端组件的任何组合。系统的组件能够通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、互联网(例如,因特网)和对等网络(例如,自组织对等网络)。
[0469]
计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络来交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而发生。在一些实施例中,服务器向客户端设备传送数据(例如,html页面)(例如,出于向与客户端设备交互的用户显示数据并且从与客户端设备交互的用户接收用户输入的目的)。能够在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
[0470]
虽然本说明书包含许多特定实现方式细节,但是这些不应该被解释为对任何发明的或可能要求保护的内容的范围的限制,而是相反被解释为特定于特定发明的特定实施例的特征的描述。还能够在单个实施例中组合地实现在本说明书中在分开的实施例的上下文中描述的某些特征。相反地,还能够在多个实施例中分开地或者以任何合适的子组合实现在单个实施例的上下文中描述的各种特征。此外,尽管特征可以在上面被描述为以某些组合动作并且甚至最初如此要求保护,但是能够在一些情况下从组合中剔除来自要求保护的组合的一个或多个特征,并且要求保护的组合可以涉及子组合或子组合的变化。
[0471]
类似地,虽然在附图中以特定次序描绘操作,但是这不应该被理解为要求以所示特定次序或以顺序次序执行此类操作,或者要求执行所有图示的操作以实现期望的结果。在某些情况下,多任务和并行处理可以是有利的。此外,各种系统组件在上述实施例中的分开不应该被理解为在所有实施例中都需要这种分开,并且应该理解,所描述的程序组件和系统通常能够被一起集成在单个软件产品中或者包装到多个软件产品中。
[0472]
因此,已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。在一些情况下,权利要求中叙述的动作能够以不同次序执行并且仍然实现期望的结果。另外,附图中描绘的过程不一定要求所示的特定次序或顺序次序以实现期望的结果。在某些实现方式中,多任务和并行处理可以是有利的。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献