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

经由梯度提升的隐私保护机器学习的制作方法

2022-08-21 17:59:11 来源:中国专利 TAG:
经由梯度提升的隐私保护机器学习1.相关申请的交叉引用2.本技术要求2020年10月9日提交的il申请no.277910的优先权。上述申请的公开内容通过引用以其整体并入本文。
技术领域
:3.本说明书涉及使用安全多方计算来训练和使用机器学习模型的隐私保护机器学习平台。
背景技术
::4.一些机器学习模型基于从多个源,例如,跨多个网站和/或本机应用,收集的数据而被训练。然而,该数据可以包括不应被共享或不应被允许泄漏给其他方的隐私或敏感数据。技术实现要素:5.一般而言,本说明书中描述的主题的一个创新方面能够被体现在方法中,所述方法包括:由多个多方计算(mpc)计算系统中的第一计算系统接收包括给定用户简档的第一份额的推断请求;至少部分地基于使用多个用户简档训练的第一机器学习模型来确定给定用户简档的预测标签;确定给定用户简档的指示所述预测标签中的预测误差的预测残差值;由所述第一计算系统至少部分地基于为所述给定用户简档确定的所述预测标签和所述预测残差值来生成推断结果的第一份额;以及由所述第一计算系统向客户端设备提供所述推断结果的所述第一份额和从所述第二计算系统接收的所述推断结果的第二份额。确定所述给定用户简档的所述预测残差值包括由所述第一计算系统至少部分地基于所述给定用户简档的第一份额和使用所述多个用户简档以及指示所述多个用户简档的多个真实标签与如使用所述第一机器学习模型为所述多个用户简档确定的多个预测标签之间的差异的数据训练的第二机器学习模型来确定所述给定用户简档的所述预测残差值的第一份额;由所述第一计算系统从所述多个mpc计算系统中的第二计算系统接收指示由所述第二计算系统至少部分地基于所述给定用户简档的所述第二份额和一个或多个机器学习模型的第二集合确定的所述给定用户简档的所述预测残差值的第二份额的数据;以及至少部分地基于所述预测残差值的所述第一份额和所述第二份额来确定所述给定用户简档的所述预测残差值。这个方面的其它实施方式包括被配置为执行方法的方面的对应装置、系统和计算机程序,其被编码在计算机存储设备上。6.这些和其它实施方式能够各自可选地包括以下特征中的一个或多个。在一些方面中,确定所述给定用户简档的所述预测标签包括:由所述第一计算系统至少部分地基于以下来确定所述预测标签的第一份额:(i)所述给定用户简档的第一份额、(ii)使用所述多个用户简档训练的所述第一机器学习模型、以及(iii)所述多个用户简档的所述多个真实标签中的一个或多个真实标签,所述多个真实标签包括所述多个用户简档中的每个用户简档的一个或多个真实标签;由所述第一计算系统从所述第二计算系统接收指示由所述第二计算系统至少部分地基于所述给定用户简档的第二份额和一个或多个机器学习模型的第一集合确定的所述预测标签的第二份额的数据;以及至少部分地基于所述预测标签的所述第一份额和所述第二份额来确定所述预测标签。7.在一些实施方式中,所述方法进一步包括由所述第一计算系统将变换应用于给定用户简档的所述第一份额以获得所述给定用户简档的第一变换后的份额。在这样的实施方式中,由所述第一计算系统确定所述预测标签的所述第一份额包括由所述第一计算系统至少部分地基于所述给定用户简档的所述第一变换后的份额来确定所述预测标签的第一份额。在一些这样的实施方式中,所述变换是随机投影,诸如johnson-lindenstrauss(j-l)变换。在上述实施方式中的一些中,由所述第一计算系统确定所述预测标签的所述第一份额包括:由所述第一计算系统将所述给定用户简档的所述第一变换后的份额作为输入提供给所述第一机器学习模型,以获得给定用户简档的所述预测标签的第一份额作为输出。8.在一些示例中,所述方法进一步包括评估所述第一机器学习模型的性能,并且使用在评估所述第一机器学习模型的性能时确定的数据来训练所述第二机器学习模型。在这些示例中,评估所述第一机器学习模型的性能,包括,为所述多个用户简档中的每个:确定所述用户简档的预测标签并且确定所述用户简档的指示所述预测标签中的误差的残差值。此外,在这些示例中,确定所述用户简档的预测标签包括:由所述第一计算系统至少部分地基于以下来确定所述用户简档的预测标签的第一份额:(i)所述用户简档的第一份额、(ii)所述第一机器学习模型、以及(iii)所述多个用户简档的所述多个真实标签中的一个或多个真实标签;由所述第一计算系统从所述第二计算系统接收指示由所述第二计算系统至少部分地基于所述用户简档的第二份额和由所述第二计算系统维护的一个或多个机器学习模型的第一集合确定的所述用户简档的所述预测标签的第二份额的数据;以及至少部分地基于所述预测标签的所述第一份额和所述第二份额来确定所述用户简档的所述预测标签。另外,在这样的示例中,确定所述用户简档的残差值包括:由所述第一计算系统至少部分地基于为所述用户简档确定的所述预测标签和包括在所述多个真实标签中的所述用户简档的真实标签的第一份额来确定所述用户简档的所述残差值的第一份额;由所述第一计算系统从所述第二计算系统接收指示由所述第二计算系统至少部分地基于为所述用户简档确定的所述预测标签和所述用户简档的所述真实标签的第二份额确定的所述用户简档的所述残差值的第二份额的数据;以及至少部分地基于所述残差值的所述第一份额和所述第二份额来确定所述用户简档的所述残差值。在前述示例中,使用在评估所述第一机器学习模型的性能时确定的数据来训练所述第二机器学习模型包括:在评估所述第一机器学习模型的所述性能时使用指示为所述多个用户简档确定的所述残差值的数据来训练所述第二机器学习模型。9.在上述示例中的一些中,在评估所述第一机器学习模型的所述性能之前,所述方法进一步包括推导函数的参数集合,并且将所述第一机器学习模型配置为在给定用户简档作为输入的情况下生成所述用户简档的初始预测标签并且将如基于所推导的参数集合定义的所述函数应用于所述用户简档的所述初始预测标签以生成所述用户简档的预测标签的第一份额作为输出。在这些示例中的至少一些中,推导函数的参数集合包括:(i)由所述第一计算系统至少部分地基于所述多个真实标签中的每个真实标签的第一份额来推导所述函数的所述参数集合的第一份额,(ii)由所述第一计算系统从所述第二计算系统接收指示由所述第二计算系统至少部分地基于所述多个真实标签中的每个真实标签的第二份额而推导的所述函数的所述参数集合的第二份额的数据,以及(iii)至少部分地基于所述函数的所述参数集合的所述第一份额和所述第二份额来推导所述函数的所述参数集合。在上述示例中的至少一些中,所述函数是二次多项式函数。10.在一些这样的示例中,所述方法进一步包括由所述第一计算系统至少部分地基于所述多个真实标签中的每个真实标签的所述第一份额来估计分布参数集合的第一份额。在这些示例中,由所述第一计算系统至少部分地基于所述多个真实标签中的每个真实标签的所述第一份额来推导所述函数的所述参数集合的所述第一份额包括:由所述第一计算系统至少部分地基于所述分布参数集合的第一份额来推导所述函数的所述参数集合的所述第一份额。在上述示例中的至少一些中,所述分布参数集合包括:(i)所述多个真实标签中的第一值的真实标签的预测误差的概率分布的一个或多个参数,以及(ii)所述多个真实标签中的第二值的真实标签的预测误差的概率分布的一个或多个参数。在这些示例中,所述第二值不同于所述第一值。此外,在上述示例中的至少一些中,所述用户简档的所述残差值的所述第一份额指示为所述用户简档确定的所述预测标签与所述用户简档的所述真实标签的所述第一份额之间的值的差,并且所述用户简档的所述残差值的所述第二份额指示为所述用户简档确定的所述预测标签与所述用户简档的所述真实标签的所述第二份额之间的值的差。11.在一些实施方式中,(i)所述第一机器学习模型包括由所述第一计算系统维护的k最近邻模型,(ii)一个或多个机器学习模型的第一集合包括由所述第二计算系统维护的k最近邻模型,(iii)所述第二机器学习模型包括以下中的至少一个:由所述第一计算系统维护的深度神经网络(dnn)和由所述第一计算系统维护的梯度提升决策树(gbdt),和/或(iv)一个或多个机器学习模型的第二集合包括以下中的至少一个:由所述第二计算系统维护的dnn和由所述第二计算系统维护的gbdt。12.在这些实施方式中的至少一些中,由所述第一计算系统确定所述预测标签的所述第一份额包括:(i)由所述第一计算系统至少部分地基于所述给定用户简档的所述第一份额和由所述第一计算系统维护的所述k最近邻模型来标识最近邻用户简档的第一集合,(ii)由所述第一计算系统从所述第二计算系统接收指示由所述第二计算系统至少部分地基于所述给定用户简档的所述第二份额和由所述第二计算系统维护的所述k最近邻模型而标识的最近邻简档的第二集合的数据,(iii)至少部分地基于最近邻用户简档的所述第一集合和所述第二集合来标识所述多个用户简档中被认为与所述给定用户简档最类似的k个最近邻用户简档,以及(iv)由所述第一计算系统至少部分地基于所述k个最近邻用户简档中的每一个的真实标签来确定所述预测标签的所述第一份额。13.在上述实施方式中的至少一些中,由所述第一计算系统确定所述预测标签的所述第一份额还包括(i)由所述第一计算系统确定所述k个最近邻用户简档的所述真实标签的总和的第一份额,(ii)由所述第一计算系统从所述第二计算系统接收所述k个最近邻用户简档的所述真实标签的所述总和的第二份额,以及(iii)至少部分地基于所述k个最近邻用户简档的所述真实标签的所述总和的所述第一份额和所述第二份额来确定所述k个最近邻用户简档的所述真实标签的所述总和。此外,在一些这样的实施方式中,由所述第一计算系统确定所述预测标签的所述第一份额还包括将函数应用于所述k个最近邻用户简档的所述真实标签的总和以生成所述给定用户简档的所述预测标签的所述第一份额。在上述实施方式中的一些中,所述给定用户简档的所述预测标签的所述第一份额包括所述k个最近邻用户简档的所述真实标签的总和。14.在上述实施方式中的一些中,由所述第一计算系统至少部分地基于所述k个最近邻用户简档中的每一个的所述真实标签来确定所述预测标签的所述第一份额包括由所述第一计算系统至少部分地基于分别对应于类别集合的所述k个最近邻用户简档中的每一个的真实标签集合来确定预测标签集合的第一份额。在这些实施方式中,包括由所述第一计算系统确定所述预测标签集合的第一份额:包括,为所述集合中的每个类别:(i)确定与所述k个最近邻用户简档中的用户简档的所述真实标签集合中的所述类别相对应的真实标签是第一值的真实标签的频率的第一份额,(ii)由所述第一计算系统从所述第二计算系统接收与所述k个最近邻用户简档中的用户简档的所述真实标签集合中的所述类别相对应的真实标签是所述第一值的真实标签的频率的第二份额,以及(iii)至少部分地基于与所述k个最近邻用户简档中的用户简档的所述真实标签集合中的所述类别相对应的真实标签是所述第一值的真实标签的频率的所述第一份额和所述第二份额来确定与所述k个最近邻用户简档中的用户简档的所述真实标签集合中的所述类别相对应的真实标签是所述第一值的真实标签的频率。在这些实施方式中的一些中,由所述第一计算系统确定所述预测标签集合的所述第一份额包括,对于所述集合中的每个类别:将对应于所述类别的函数应用于与所述k个最近邻用户简档中的用户简档的所述真实标签集合中的所述类别相对应的真实标签是所述第一值的真实标签的频率,以生成与所述给定用户简档的所述类别相对应的预测标签的第一份额。15.本说明书中描述的主题的另一个创新方面能够被体现在方法中,所述方法包括:由计算系统的安全mpc集群接收与给定用户简档相关联的推断请求;由所述mpc集群至少部分地基于使用多个用户简档训练的第一机器学习模型来确定所述给定用户简档的预测标签;由所述mpc集群至少部分地基于所述给定用户简档和第二机器学习模型来确定所述给定用户简档的指示所述预测标签中的预测误差的预测残差值,所述第二机器学习模型是使用所述用户简档以及指示所述用户简档的真实标签与使用所述第一机器学习模型为所述用户简档确定的预测标签之间的差异的数据来训练的;由所述mpc集群至少部分地基于为所述给定用户简档确定的所述预测标签和所述预测残差值来生成表示推断结果的数据;以及由所述mpc集群将表示所述推断结果的所述数据提供给客户端设备。这个方面的其它实施方式包括被配置为执行方法的方面的对应装置、系统和计算机程序,其被编码在计算机存储设备上。16.这些和其它实施方式能够各自可选地包括以下特征中的一个或多个。在一些方面,所述推断请求包括使用所述第二计算系统的加密密钥加密的给定用户简档的加密第二份额。一些方面可以包括将给定用户简档的加密第二份额传送到所述第二计算系统。17.在一些方面,确定给定用户简档的所述预测标签包括由所述mpc集群至少部分地基于以下来确定给定用户简档的所述预测标签:(i)所述给定用户简档、(ii)使用所述用户简档训练的所述第一机器学习模型、以及(iii)所述用户简档的所述真实标签中的一个或多个真实标签,所述真实标签包括所述多个用户简档中的每个用户简档的一个或多个真实标签。18.在一些实施方式中,所述方法进一步包括由所述mpc集群将变换应用于所述给定用户简档,以获得所述给定用户简档的变换后的版本。在这些实施方式中,由所述mpc集群确定所述预测标签包括由所述mpc集群至少部分地基于所述给定用户简档的所述变换后的版本来确定所述预测标签。在一些这样的实施方式中,所述变换是随机投影,例如johnson-lindenstrauss(j-l)变换。在上述实施方式中的至少一些中,由所述mpc集群确定所述预测标签包括由所述mpc集群将所述给定用户简档的所述变换后的版本作为输入提供给所述第一机器学习模型,以获得所述给定用户简档的所述预测标签作为输出。19.在一些示例中,所述方法进一步包括评估所述第一机器学习模型的性能,并且使用在评估所述第一机器学习模型的性能时确定的数据来训练所述第二机器学习模型。在这样的示例中,(1)由所述mpc集群至少部分地基于以下来确定所述用户简档的预测标签:(i)所述用户简档、(ii)所述第一机器学习模型、以及(iii)所述用户简档的所述真实标签中的一个或多个真实标签,以及(2)由所述mpc集群至少部分地基于为所述用户简档确定的所述预测标签以及包括在所述真实标签中的所述用户简档的真实标签来确定所述用户简档的指示所述预测标签中的预测误差的残差值。在上述示例中,使用在评估第一机器学习模型的性能时确定的数据来训练第二机器学习模型包括:在评估第一机器学习模型的性能时使用指示为用户简档确定的所述残差值的数据来训练所述第二机器学习模型。20.在上述示例中的至少一些中,在评估所述第一机器学习模型的性能之前,所述方法进一步包括由所述mpc集群至少部分地基于所述真实标签来推导函数的参数集合,并且将所述第一机器学习模型配置为在给定用户简档作为输入的情况下生成所述用户简档的初始预测标签,并且将如基于所推导的参数集合定义的所述函数应用于所述用户简档的所述初始预测标签,以生成所述用户简档的预测标签作为输出。在一些这样的示例中,所述方法进一步包括由所述mpc集群至少部分地基于所述真实标签来估计正态分布参数集合。在这些示例中,由所述mpc集群至少部分地基于所述真实标签来推导所述函数的所述参数集合包括:由所述mpc集群至少部分地基于所述估计的正态分布参数集合来推导所述函数的所述参数集合。在上述示例中的一些中,所述分布参数集合包括:所述真实标签中的第一值的真实标签的预测误差的概率分布的一个或多个参数,以及所述真实标签中的第二值的真实标签的预测误差的概率分布的一个或多个参数,所述第二值不同于所述第一值。此外,在上述示例中的一些中,所述函数是二次多项式函数。在上述示例中的至少一些中,所述用户简档的残差值指示为所述用户简档确定的所述预测标签与所述用户简档的真实标签之间的值的差。21.在一些实施方式中,所述第一机器学习模型包括k最近邻模型。在这些实施方式中的一些中,由所述mpc集群确定所述预测标签包括:(i)由所述mpc集群至少部分地基于所述给定用户简档和所述k最近邻模型来标识所述用户简档中被认为与所述给定用户简档最类似的k个最近邻用户简档,以及(ii)由所述mpc集群至少部分地基于所述k个最近邻用户简档中的每一个的真实标签来确定所述预测标签。22.在上述实施方式中的至少一些中,由所述mpc集群至少部分地基于所述k个最近邻用户简档中的每一个的所述真实标签来确定所述预测标签包括由所述mpc集群确定所述k个最近邻用户简档的所述真实标签的总和。在一些这样的实施方式中,由mpc集群确定预测标签还包括将函数应用于k个最近邻用户简档的真实标签的所述总和,以生成给定用户简档的预测标签。此外,在上述实施方式中的至少一些中,所述给定用户简档的预测标签包括k个最近邻用户简档的真实标签的所述总和。23.在上述实施方式中的至少一些中,由所述mpc集群至少部分地基于所述k个最近邻用户简档中的每一个的所述真实标签来确定所述预测标签包括:由所述mpc集群至少部分地基于分别与类别集合相对应的所述k个最近邻用户简档中的每一个的真实标签集合来确定预测标签集合。在这些实施方式中,由mpc集群确定预测标签集包括:为所述集合中的每个类别,确定与k个最近邻用户简档中的用户简档的真实标签集合中的类别相对应的真实标签是第一值的真实标签的频率。在这些实施方式中的一些中,由mpc集群确定预测标签集包括:对于所述集合中的每个类别,将对应于该类别的函数应用于确定的频率,以生成对应于给定用户简档的类别的预测标签。24.在一些示例中,每个真实标签被加密。在一些实施方式中,所述推断结果包括所述预测标签和所述预测残差值的总和。在一些示例中,所述第二机器学习模型包括深度神经网络、梯度提升决策树和随机森林模型中的至少一个。25.在一些示例中,客户端设备使用多个特征向量计算所述给定用户简档,每个特征向量包括与客户端设备的用户的事件相关的特征值和每个特征向量的衰减速率。26.在一些示例中,所述客户端设备使用多个特征向量来计算所述给定用户简档,每个特征向量包括与所述客户端设备的用户的事件相关的特征值。计算所述给定用户简档能够包括将一个或多个特征向量分类为稀疏特征向量,将一个或多个特征向量分类为密集特征向量。一些方面能够包括使用所述稀疏特征向量和所述密集特征向量为一个或多个第二计算系统生成所述给定用户简档的第一份额和所述给定用户简档的相应第二份额。生成所述给定用户简档的所述第一份额和所述相应一个或多个第二份额能够包括使用函数秘密共享份额(fss)技术来分割所述稀疏特征向量。27.本说明书中描述的主题的又一创新方面能够被体现在方法中,所述方法包括:由多个mpc系统的第一计算系统接收包括给定用户简档的第一份额的推断请求;标识多个用户简档中被认为与所述给定用户简档最类似的k个最近邻用户简档,包括:由所述第一计算系统基于所述给定用户简档的所述第一份额和使用所述用户简档训练的第一k最近邻模型来标识最近邻用户简档的第一集合;由所述第一计算系统从所述多个mpc系统的一个或多个第二计算系统中的每一个接收指示由所述第二计算系统基于所述给定用户简档的相应第二份额和由所述第二计算系统训练的相应第二k最近邻模型而标识的最近邻简档的相应第二集合的数据;由所述第一计算系统基于最近邻用户简档的第一集合和最近邻用户简档的每个第二集合来标识k个最近邻用户简档;由所述第一计算系统基于所述k个最近邻用户简档中的每一个的相应标签来生成推断结果的第一份额,其中每个用户简档的所述标签预测与所述用户简档相对应的用户将被添加到的一个或多个用户组,并且其中所述推断结果指示与所述给定用户简档相对应的给定用户是否将被添加到给定用户组;以及由第一计算系统向客户端设备提供从一个或多个第二计算系统中的每个接收的推断结果的第一份额和推断结果的相应第二份额。该方面的其它实施方式包括被配置为执行方法的方面的对应装置、系统和计算机程序,其被编码在计算机存储设备上。28.这些和其它实施方式能够各自可选地包括以下特征中的一个或多个。在一些方面,所述推断请求包括使用所述第二计算系统的加密密钥被加密的给定用户简档的加密第二份额。一些方面能够包括将所述给定用户简档的加密第二份额传送到所述第二计算系统。29.在一些方面,所述推断结果的所述第二份额使用所述客户端设备的应用的加密密钥被加密。在一些方面,每个用户简档的标签具有用于二元分类的布尔类型。生成所述推断结果的所述第一份额能够包括确定所述k个最近邻用户简档的标签的总和的第一份额,从所述第二计算系统接收所述k个最近邻用户简档的标签的所述总和的第二份额,基于所述标签的总和的第一份额和所述标签的总和的第二份额来确定所述标签的所述总和,确定所述标签的总和超过阈值,响应于确定所述标签的总和超过阈值,确定将给定用户添加到给定用户组作为所述推断结果,以及基于所述推断结果来生成所述推断结果的第一份额。30.在一些方面,每个用户简档的标签具有数值。生成所述推断结果的第一份额可以包括确定k个最近邻用户简档的标签的总和的第一份额,从所述第二计算系统接收k个最近邻用户简档的标签的总和的第二份额,基于所述标签的总和的第一份额和所述标签的总和的第二份额来确定所述标签的所述总和,基于所述标签的所述总和来确定所述给定用户要加入所述给定用户组作为推断结果,以及基于所述推断结果来生成所述推断结果的第一份额。31.在一些方面,每个用户简档的标签具有类别值。生成所述推断结果的第一份额能够包括:为标签集合中的每个标签,确定k个最近邻简档中的用户简档具有标签的频率的第一份额,从所述第二计算系统接收k个最近邻简档中的用户简档具有标签的频率的第二份额,以及基于所述k个最近邻简档中的用户简档具有标签的频率的第一份额和第二份额来确定所述k个最近邻简档中的用户简档具有标签的频率。一些方面能够包括标识具有最高频率的标签,指配所述给定用户加入与具有最高频率的标签相对应的给定用户组作为推断结果,以及基于所述推断结果来生成所述推断结果的第一份额。32.一些方面能够包括训练第一k最近邻模型。所述训练能够包括与所述第二计算系统协作地创建随机位翻转模式的第一份额,通过将所述用户简档中的每个用户简档的第一份额投影到随机投影平面集合上来生成位矩阵的第一份额,通过使用所述位翻转模式的第一份额修改位矩阵的第一份额的一个或多个位来修改位矩阵的第一份额,将位矩阵的修改的第一份额的第一部分提供给所述第二计算系统,从所述第二计算系统接收由所述第二计算系统使用所述多个用户简档中的用户简档的第二份额和随机位模式的第二份额生成的位矩阵的修改的第二份额的第二一半部分,以及由所述第一计算系统使用所述位矩阵的修改的第一份额的第二一半部分和所述位矩阵的修改的第二份额的第二一半部分来重构用于所述第一位矩阵的第二一半部分的位向量。与所述第二计算系统协作地创建随机位翻转模式的第一份额能够包括生成包括各自具有零或一的值的多个第一元素的第一m维向量,将所述第一m维向量分割成两个份额,将所述第一m维向量的第一份额提供给所述第二计算系统,从所述第二计算系统接收第二m维向量的第一份额,以及与所述第二计算系统协作地使用所述第一m维向量和所述第二m维向量的份额来计算所述随机位翻转模式的第一份额。在一些方面,所述多个mpc计算系统包括多于两个mpc计算系统。33.本说明书中描述的主题能够被实现在特定实施例中,以便实现以下优点中的一个或多个。本文档中描述的机器学习技术能够标识具有类似兴趣的用户并且扩展用户组成员资格,同时保护用户的隐私,例如,不向任何计算系统泄漏用户的在线活动。这相对于这些平台保护用户的隐私,并且保护数据的安全性以免在传输期间或从平台被破坏。诸如安全多方计算(mpc)的密码技术能够在不使用第三方cookie的情况下基于用户简档中的类似性来扩展用户组,这在不负面地影响扩展用户组的能力的情况下保护了用户隐私,并且在一些情况下基于比使用第三方cookie可实现的更完整的简档来提供更好的用户组扩展。mpc技术能够确保,只要mpc集群中的计算系统中的一个是诚实的,任何计算系统或另一方都不能明文获得用户数据。因此,所要求保护的方法允许以安全方式标识、分组和传送用户数据,而不需要使用第三方cookie来确定用户数据之间的任何关系。这是与先前已知方法不同的方法,先前已知方法通常需要第三方cookie来确定数据之间的关系。通过以这种方式对用户数据进行分组,由于不需要传送与特定用户不相关的数据内容,所以提高了向用户设备传送数据内容的效率。特别地,不需要第三方cookie,从而避免了存储第三方cookie,提高了存储器使用。指数衰减技术能够被用于在客户端设备处构建用户简档,以减少构建用户简档所需的原始数据的数据大小,从而减少通常具有非常有限的数据存储的客户端设备的数据存储要求。例如,能够通过基于另一模型,例如,k最近邻模型,训练较强模型,例如,深度神经网络模型,来提高分类,例如,用于用户组扩展,的准确度。即,本文中描述的技术能够通过基于较弱学习者训练强学习者来提高准确度。34.下面参考附图描述前述主题的各种特征和优点。从本文所描述的主题和权利要求书中,附加特征和优点是显而易见的。附图说明35.图1是其中安全mpc集群训练机器学习模型和机器学习模型被用于扩展用户组的环境的框图。36.图2是用于训练机器学习模型并且使用机器学习模型将用户添加到用户组的示例过程的泳道图。37.图3是图示用于生成用户简档并且将用户简档的份额发送到mpc集群的示例过程的流程图。38.图4是图示用于生成机器学习模型的示例过程的流程图。39.图5是图示用于使用机器学习模型将用户添加到用户组的示例过程的流程图。40.图6是用于生成用户简档的推断结果的示例性框架的概念性示意图。41.图7是用于利用提升的性能生成用户简档的推断结果的示例性框架的概念性示意图。42.图8是图示用于在mpc集群处利用提升的性能生成用户简档的推断结果的示例过程的流程图。43.图9是图示用于准备和执行用于在mpc集群处提升推断性能的第二机器学习模型的训练的示例过程的流程图。44.图10是用于评估第一机器学习模型的性能的示例性框架的概念性示意图。45.图11是图示用于评估在mpc集群处的第一机器学习模型的性能的示例过程的流程图。46.图12是图示用于在mpc集群的计算系统处利用提升的性能生成用户简档的推断结果的示例过程的流程图。47.图13是示例计算机系统的框图。48.在各个附图中,相同的附图标记和名称表示相同的元件。具体实施方式49.总体上,本文档描述了用于训练和使用机器学习模型来扩展用户组成员资格同时保护用户隐私并且确保数据安全的系统和技术。通常,不是在诸如内容平台的其他实体的计算系统处创建和维护用户简档,用户简档在用户的客户端设备处被维护。为了训练机器学习模型,用户的客户端设备能够可选地经由内容平台将其加密的用户简档(例如,作为用户简档的秘密份额)连同其他数据一起发送到安全多方计算(mpc)集群的多个计算系统。例如,每个客户端设备能够生成用户简档的两个或更多个秘密份额,并且将相应的秘密份额发送到每个计算系统。mpc集群的计算系统能够使用mpc技术来训练机器学习模型,以用于以防止mpc集群的任何计算系统(或者不是用户本身的另一方)获得明文的任何用户简档的方式基于用户的简档来为用户建议用户组,从而保护用户隐私。例如,使用本文档中描述的秘密份额和mpc技术使机器学习模型能够被训练和使用,而当数据在用户的设备外部时,每个用户的用户简档数据一直被加密。机器学习模型能够是k最近邻(k-nn)模型。50.在机器学习模型被训练之后,机器学习模型能够被用于基于用户的简档来为每个用户建议一个或多个用户组。例如,用户的客户端设备能够向mpc集群查询为该用户所建议的用户组,或者确定用户是否应该被添加到特定用户组。能够使用各种推断技术,诸如二元分类、回归(例如,使用算术平均或均方根)和/或多类分类来标识用户组。用户的用户组成员资格能够被用于隐私保护和安全方式以向用户提供内容。51.用于生成和使用机器学习模型的示例系统52.图1是其中安全mpc130群集训练机器学习模型和机器学习模型被用于扩展用户组的环境100的框图。示例环境100包括数据通信网络105,诸如局域网(lan)、广域网(wan)、互联网、移动网络或其组合。网络105连接客户端设备110、安全mpc集群130、发布者140、网站142和内容平台150。示例环境100可以包括许多不同的客户端设备110、安全mpc集群130、发布者140、网站142和内容平台150。53.客户端设备110是能够通过网络105通信的电子设备。示例客户端设备110包括个人计算机、移动通信设备(例如,智能电话)以及能够通过网络105发送和接收数据的其他设备。客户端设备还能够包括数字助理设备,其通过麦克风接受音频输入并且通过扬声器输出音频输出。当数字助理检测到激活麦克风接受音频输入的“热词”或“热词组”时,数字助理能够被置于收听模式(例如,准备好接受音频输入)。数字助理设备还能够包括相机和/或显示器以捕获图像并且视觉地呈现信息。数字助理能够以不同形式的硬件设备来实现,该硬件设备包括可穿戴设备(例如,手表或眼镜)、智能电话、扬声器设备、平板设备或另一硬件设备。客户端设备还能够包括数字媒体设备,例如,插入到电视或其他显示器中以将视频流式传输到电视的流式传输设备,或者游戏设备或控制台。54.客户端设备110通常包括应用112,诸如web浏览器和/或本机应用,以有助于通过网络105发送和接收数据。本机应用是为特定平台或特定设备(例如,具有特定操作系统的移动设备)开发的应用。发布者140能够开发并且提供例如使本地应用可供下载到客户端设备110。例如,响应于客户端设备110的用户在web浏览器的地址栏中输入资源145的资源地址或者选择引用该资源地址的链接,web浏览器能够从托管发布者140的网站142的web服务器请求资源145。类似地,本机应用能够从发布者的远程服务器请求应用内容。55.一些资源、应用页面或其他应用内容能够包括用于向数字组件呈现资源145或应用页面的数字组件槽。如贯穿本文档所使用的,短语“数字组件”是指数字内容或数字信息(例如,视频剪辑、音频剪辑、多媒体剪辑、图像、文本或另一内容单元)的分立单元。数字组件能够作为单个文件或文件集合被电子地存储在物理存储器设备中,并且数字组件能够采取视频文件、音频文件、多媒体文件、图像文件或文本文件的形式,并且包括广告信息,使得广告是一种类型的数字组件。例如,数字组件可以是旨在补充由应用112呈现的网页或其他资源的内容。更具体地,数字组件可以包括与资源内容相关的数字内容(例如,数字组件可以与和网页内容相同的主题相关,或者与相关主题相关)。因此,数字组件的提供能够补充并且总体上增强网页或应用内容。56.当应用112加载包括一个或多个数字组件槽的资源(或应用内容)时,应用112能够为每个槽请求数字组件。在一些实施方式中,数字组件槽能够包括使应用112从数字组件分发系统请求数字组件的代码(例如,脚本),该数字组件分发系统选择数字组件并且将该数字组件提供给应用112以用于呈现给客户端设备110的用户。57.内容平台150能够包括供应侧平台(ssp)和需求侧平台(ssp)。通常,内容平台150代表发布者140和数字组件提供者160管理数字组件的选择和分发。58.一些发布者140使用ssp来管理为其资源和/或应用的数字组件槽获得数字组件的过程。ssp是实现为硬件和/或软件的技术平台,其将获得资源和/或应用的数字组件的过程自动化。每个发布者140能够具有对应的ssp或多个ssp。一些发布者140可以使用相同的ssp。59.数字组件提供者160能够创建(或以其他方式发布)在发布者的资源和应用的数字组件槽中呈现的数字组件。数字组件提供者160能够使用dsp来管理其数字组件的供应,以用于呈现在数字组件槽中。dsp是以硬件和/或软件实现的技术平台,其将分发数字组件以用于与资源和/或应用一起呈现的过程自动化。dsp能够代表数字组件提供者160与多个供应侧平台ssp交互,以提供用于与多个不同发布者140的资源和/或应用一起呈现的数字组件。通常,dsp能够接收(例如,来自ssp的)对数字组件的请求,基于该请求生成(或选择)由一个或多个数字组件提供者创建的一个或多个数字组件的选择参数,并且向ssp提供与数字组件(例如,数字组件本身)相关的数据和选择参数。然后,ssp能够选择用于在客户端设备110处呈现的数字组件,并且向客户端设备110提供使客户端设备110呈现数字组件的数据。60.在一些情况下,接收与网页、应用页面或用户先前访问和/或交互的其他电子资源相关的数字组件对用户是有益的。为了向用户分发这样的数字组件,用户能够被指派给用户组,例如,用户兴趣组、类似用户的群组、或涉及类似用户数据的其他组类型。例如,当用户访问特定资源或在该资源处执行特定动作(例如,与网页上呈现的特定项目交互或将项目添加到虚拟购物车)时,用户能够被指派给用户兴趣组。在另一示例中,能够基于活动的历史,例如,被访问的资源和/或在资源处执行的动作的历史,将用户分配给用户组。在一些实施方式中,用户组能够由数字组件提供者160生成。即,当用户访问数字组件提供者160的电子资源时,每个数字组件提供者160能够将用户指派给他们的用户组。61.为了保护用户隐私,用户的组成员资格能够在用户的客户端设备110处被维护,例如,通过应用112中的一个或客户端设备110的操作系统,而不是通过数字组件提供者、内容平台或其他方。在特定示例中,可信程序(例如,web浏览器)或操作系统能够为使用web浏览器或另一应用的用户维护用户组标识符的列表(“用户组列表”)。用户组列表能够包括用户已经被添加到的每个用户组的组标识符。创建用户组的数字组件提供者160能够为其用户组指定用户组标识符。用户组的用户组标识符能够描述该组(例如,园艺组)或表示该组的代码(例如,非描述性的字母数字序列)。用户的用户组列表能够被存储在客户端设备110处的安全存储设备中和/或能够在存储时被加密以防止其他人访问该列表。62.当应用112呈现与数字组件提供者160相关的资源或应用内容或网站142上的网页时,资源能够请求应用112将一个或多个用户组标识符添加到用户组列表。作为响应,应用112能够将一个或多个用户组标识符添加到用户组列表并且安全地存储该用户组列表。63.内容平台150能够使用用户的用户组成员资格来以另一种方式选择用户可能感兴趣或者可能对用户/用户设备有益的数字组件或其他内容。例如,这样的数字组件或其他内容可以包括改善用户体验、改善用户设备的运行或以某种其他方式使用户或用户设备受益的数据。然而,用户的用户组列表的用户组标识符能够以防止内容平台150将用户组标识符与特定用户相关联的方式而被提供,从而在使用用户组成员数据来选择数字组件时保护用户隐私。64.应用112能够将来自用户组列表的用户组标识符提供到可信计算系统,该可信计算系统与内容平台150交互以选择数字组件,以用于以防止内容平台150或不是用户本身的任何其他实体知道用户的完整用户组成员资格的方式基于用户组成员资格在客户端设备110处呈现。65.在一些情况下,对用户和数字组件提供者来说,将用户组扩展为包括具有与已经是用户组成员的用户类似兴趣或其他类似数据的用户是有益的。66.有利地,用户能够被添加到用户组而不使用第三方cookie。如上所述,用户简档能够被维持在客户端设备110处。这通过排除要与外部各方共享的用户的跨域浏览历史来保护用户隐私,减少通过网络105(其在数百万个用户上聚集是相当大的)传送cookie消耗的带宽,减少通常存储这种信息的内容平台150的存储要求,并且减少由客户端设备110维护和传送cookie使用的电池消耗。67.例如,第一用户可能对滑雪感兴趣,并且可能是特定滑雪场的用户组的成员。第二用户也可能对滑雪感兴趣,但是不知道这个滑雪场并且不是滑雪场的成员。如果两个用户具有类似的兴趣或数据,例如,类似的用户简档,则第二用户可以被添加到该滑雪场的用户组,使得第二用户接收与滑雪场相关的并且可能对第二用户或其用户设备感兴趣或以其他方式有益的内容,例如,数字组件。换句话说,用户组可以被扩展为包括具有类似用户数据的其他用户。68.安全mpc集群130能够训练机器学习模型,该机器学习模型基于用户的简档向用户(或其应用112)建议用户组,或者能够被用于生成用户组的建议。安全mpc集群130包括两个计算系统mpc1和mpc2,其执行安全mpc技术以训练机器学习模型。尽管示例mpc集群130包括两个计算系统,但是只要mpc集群130包括多于一个的计算系统,也能够使用更多的计算系统。例如,mpc集群130能够包括三个计算系统、四个计算系统或其他适当数量的计算系统。在mpc集群130中使用更多的计算系统能够提供更多的安全性和容错性,但是也能够增加mpc过程的复杂性。69.计算系统mpc1和mpc2能够由不同实体操作。这样,每个实体可能无法访问明文的完整用户简档。明文是没有被在计算上标记、特殊格式化或以代码或数据(包括二进制文件)写入的文本,其形式为能够被查看或使用而不需要密钥或其他解密设备或其他解密过程。例如,计算系统mpc1或mpc2中的一个能够由不同于用户、发布者140、内容平台150和数字部件提供者160的可信方操作。例如,产业组、政府组或浏览器开发者可以维护和操作计算系统mpc1和mpc2中的一个。其他计算系统可以由这些组中的不同组来操作,使得不同的可信方操作每个计算系统mpc1和mpc2。优选地,操作不同计算系统mpc1和mpc2的不同方没有合谋危及用户隐私的动机。在一些实施方式中,计算系统mpc1和mpc2在架构上被分离,并且被监视以在执行本文档中描述的安全mpc过程之外不彼此通信。70.在一些实施方式中,mpc集群130为每个内容平台150和/或为每个数字组件提供者160训练一个或多个k-nn模型。例如,每个内容平台150能够管理一个或多个数字组件提供者160的数字组件的分发。内容平台150可以请求mpc集群130训练用于内容平台150管理其数字组件的分布的一个或多个数字组件提供者160的k-nn模型。通常,k-nn模型表示用户集合的用户简档(以及可选地附加信息)之间的距离。内容平台的每个k-nn模型能够具有唯一的模型标识符。用于训练k-nn模型的示例过程在图4中被图示并且在下面被描述。71.在为内容平台150训练k-nn模型之后,内容平台150可以查询k-nn模型或使客户端设备110的应用112查询k-nn模型,以为客户端设备110的用户标识一个或多个用户组。例如,内容平台150能够查询k-nn模型以确定最接近用户的阈值数量“k”个用户简档是否是特定用户组的成员。如果是,则内容平台150可以将用户添加到该用户组。如果为用户标识了用户组,则内容平台150或mpc集群130能够请求应用112将用户添加到用户组。如果被用户和/或应用112批准,则应用112可以将用于用户组的用户组标识符添加到存储在客户端设备110处的用户组列表。72.在一些实施方式中,应用112能够提供使用户能够管理用户被指派给的用户组的用户界面。例如,用户界面能够使用户能够移除用户组标识符,防止所有或特定资源145、发布者140、内容平台150、数字组件提供者160和/或mpc集群130将用户添加到用户组(例如,防止实体将用户组标识符添加到由应用112维护的用户组标识符列表)。这为用户提供了更好的透明度、选择/同意和控制。73.除了贯穿本文档的描述之外,可以向用户提供控件(例如,用户能够与之交互的用户界面元素),从而允许用户关于在本文中描述的系统、程序或特征是否以及何时可以实现对用户信息(例如,关于用户的社交网络、社交动作或活动、职业、用户的偏好或用户的当前位置的信息)的收集以及用户是否被发送来自服务器的内容或通信来作出选择。另外,某些数据可以在其被存储或使用之前以一种或多种方式被处理,使得个人可标识信息被移除。例如,可以处理用户的身份,使得不能为用户确定个人可标识信息,或者可以在获得位置信息的情况下将用户的地理位置一般化(诸如到城市、邮政编码或州级别),使得不能确定用户的特定位置。因此,用户可以控制收集关于用户的什么信息、如何使用该信息以及向用户提供什么信息。74.用于生成和使用机器学习模型的示例过程75.图2是用于训练机器学习模型并且使用机器学习模型将用户添加到用户组的示例过程200的泳道图。过程200的操作能够例如由客户端设备110、mpc集群130的计算系统mpc1和mpc2、以及内容平台150实现。过程200的操作还能够被实现为存储在可以是非暂时性的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理装置执行指令能够使一个或多个数据处理装置执行过程200的操作。虽然过程200和以下其它过程根据两个计算系统mpc集群130来描述,但是具有多于两个计算系统的mpc集群也能够被用来执行类似过程。76.内容平台150能够通过请求在客户端设备110上运行的应用112为其相应用户生成用户简档并且将用户简档的秘密份额和/或加密版本上传到mpc集群130来发起其机器学习模型中的一个的训练和/或更新。出于本文档的目的,用户简档的秘密份额能够被认为是用户简档的加密版本,因为秘密份额不是明文。在生成时,每个应用112能够存储用户简档的数据,并且响应于从内容平台150接收到请求而生成更新后的用户简档。由于用户简档的内容和机器学习模型对于不同的内容平台150不同,所以在用户的客户端设备110上运行的应用112能够维护多个用户简档的数据,并且生成多个用户简档,每个用户简档专用于特定内容平台或由特定内容平台拥有的特定模型。77.在客户端设备110上运行的应用112为客户端设备110的用户构建用户简档(步骤202)。用户的用户简档能够包括与由用户发起的事件和/或由用户关于电子资源(例如,网页或应用内容)可能已经发起的事件相关的数据。事件能够包括电子资源的视图、数字组件的视图、用户交互、或缺少用户与电子资源或数字组件的交互(例如,电子资源或数字组件的选择)、在用户与电子资源交互之后发生的转换、和/或与用户和电子资源相关的其他适当事件。78.用户的用户简档能够特定于内容平台150或者由内容平台150拥有的选定机器学习模型。例如,如下面参考图3更详细描述的,每个内容平台150能够请求应用112生成或更新特定于该内容平台150的用户简档。79.用户的用户简档能够是特征向量的形式。例如,用户简档可以是n维特征向量。n个维度中的每一个能够对应于特定特征,并且每个维度的值能够是用户的特征的值。例如,一个维度可以针对特定数字组件是否被呈现给用户(或与用户交互)。在该示例中,如果数字组件被呈现给用户(或与用户交互),则该特征的值可以为“1”,或如果数字组件尚未被呈现给用户(或尚未与用户交互),则该特征的值可以为“0”。用于生成用户的用户简档的示例过程在图3中被图示并且在下面被描述。80.在一些实施方式中,内容平台150可能想要基于附加信号来训练机器学习模型,诸如场境信号、与特定数字组件相关的信号、或者与应用112可能不知道的或者应用112可能无法访问的用户相关的信号,诸如在用户位置处的当前天气。例如,内容平台150可能想要训练机器学习模型预测如果在特定上下文中向用户呈现数字组件则用户是否将与特定数字组件交互。在该示例中,对于数字组件向用户的每个呈现,场境信号能够包括当时(如果由用户授予许可)客户端设备110的地理位置、描述呈现数字组件的电子资源的内容的信号、以及描述数字组件的信号,例如,数字组件的内容、数字组件的类型、在电子资源上何处呈现数字组件等。在另一示例中,一个维度可以是针对呈现给用户的数字组件是否是特定类型的。在该示例中,该值可以针对旅行是1、针对烹饪是2、针对电影是3等。为了便于后续描述,pi将表示用户简档和与第i个用户简档相关联的附加信号(例如,场境信号和/或数字组件等级信号)两者。81.应用112为用户生成用户简档pi的份额(步骤204)。在该示例中,应用112生成用户简档pi的两个份额,每个份额用于mpc集群130的一个计算系统。注意,每个份额本身能够是随机变量,其本身不揭示关于用户简档的任何内容。两个份额将需要被组合以得到用户简档。如果mpc集群130包括参与训练机器学习模型的更多计算系统,则应用112将生成更多份额,每个份额用于一个计算系统。在一些实施方式中,为了保护用户隐私,应用112能够使用伪随机函数来将用户简档pi分割成多个份额。即,应用112能够使用伪随机函数prf(pi)来生成两个份额{[pi,1],[pi,2]}。精确分割能够取决于应用112所使用的秘密共享份额算法和密码库。[0082]在一些实施方式中,应用112还能够向mpc集群130提供一个或多个标签。尽管标签可能不被用于训练特定架构的机器学习模型(例如,k-nn),但是标签能够被用于微调控制模型训练过程的超参数(例如,k的值),或者评估训练的机器学习模型的质量,或者进行预测,即,确定是否为用户建议用户组。标签能够包括,例如,用于用户的并且内容平台150能够访问的用户组标识符中的一个或多个。即,标签能够包括用于由内容平台150管理的用户组或者内容平台150能够读取访问的用户组标识符。在一些实施方式中,单个标签包括用于用户的多个用户组标识符。在一些实施方式中,用户的标签能够是异构的并且包括所有用户组,这些用户组包括作为成员的用户和附加信息,例如,用户是否与给定数字组件交互。这使k-nn模型能够被用于预测另一用户是否将与给定数字组件交互。每个用户简档的标签能够指示与该用户简档相对应的用户的用户组成员资格。[0083]用户简档的标签预测与输入相对应的用户将被添加到或应被添加到的用户组。例如,对应于输入用户简档的k个最近邻用户简档的标签例如基于用户简档之间的类似性来预测对应于输入用户简档的用户将加入或应当加入的用户组。这些预测性标签能够被用于向用户建议用户组或者请求应用将用户添加到对应于该标签的用户组。[0084]如果包括标签,则应用112还能够将每个labeli分割成多个份额,例如[labeli,1]和[labeli,2]。这样,在计算系统mpc1和mpc2之间没有共谋的情况下,计算系统mpc1和mpc2都不能从[pi,1]或[pi,2]重构pi,或者从[labeli,1]或[labeli,2]重构labeli。[0085]应用112加密用户简档pi的份额[pi,i]或[pi,2]和/或每个标签labeli的份额[labeli,1]或[labeli,2](步骤206)。在一些实施方式中,应用112生成用户简档pi的第一份额[pi,1]和标签labeli的第一份额[labeli,1]的复合消息,并且使用计算系统mpc1的加密密钥来加密复合消息。类似地,应用112生成用户简档pi的第二份额[pi,2]和标签labeli的第二份额[labeli,2]的复合消息,并且使用计算系统mpc2的加密密钥来加密复合消息。这些函数能够被表示为pubkeyencrypt([pi,1]||[labeli,1],mpc1)和pubkeyencrypt([pi,2]||[labeli,2],mpc2),其中pubkeyencrypt表示使用mpc1或mpc2的对应公钥的公钥加密算法。符号“||”表示用于根据多个简单消息来组成复杂消息的可逆方法,例如javascript对象简谱(json)、简明二进制对象展现(cbor)或协议缓冲器。[0086]应用112将加密份额提供给内容平台150(步骤208)。例如,应用112能够将用户简档和标签的加密份额传送到内容平台150。由于每个份额使用计算系统mpc1或mpc2的加密密钥被加密,因此内容平台150不能访问用户的用户简档或标签。[0087]内容平台150能够从多个客户端设备接收用户简档的份额和标签的份额。内容平台150能够通过将用户简档的份额上传到计算系统mpc1和mpc2来发起机器学习模型的训练。尽管标签可能不被用于训练过程,但是内容平台150能够将标签的份额上传到计算系统mpc1和mpc2,以供在稍后评估模型质量或查询模型时使用。[0088]内容平台150将从每个客户端设备110接收的第一加密份额(例如,pubkeyencrypt([pi,1]||[labeli,1],mpc1))上传到计算系统mpc1(步骤210)。类似地,内容平台150将第二加密份额(例如,pubkeyencrypt([pi,2]||[labeli,2],mpc2))上传到计算系统mpc2(步骤212)。两个上传能够是分批的,并且能够包括在用于训练机器学习模型的特定时间段期间接收的用户简档和标签的加密份额。[0089]在一些实施方式中,内容平台150将第一加密份额上传到计算系统mpc1的顺序必须与内容平台150将第二加密份额上传到计算系统mpc2的顺序相匹配。这使计算系统mpc1和mpc2能够正确地匹配同一秘密的两个份额,例如,同一用户简档的两个份额。[0090]在一些实施方式中,内容平台150可以显式地将相同的伪随机或顺序生成的标识符指派给同一秘密的多个份额以有助于匹配。虽然一些mpc技术能够依赖于输入或中间结果的随机混洗,但是在本文档中描述的mpc技术可以不包括这样的随机混洗,并且可以替代地依赖于上传顺序来匹配。[0091]在一些实施方式中,操作208、210和212能够由其中应用112将[pi,1]||[labeli,1]直接上传到mpc1以及将[pi,2]||[labeli,2]到mpc2的替代过程来代替。该替代过程能够减少内容平台150支持操作208、210和212的架构成本,并且减少开始训练或更新mpc1和mpc2中的机器学习模型的时延。例如,这消除了数据到内容平台150的传输,内容平台150然后将该数据传输到mpc1和mpc2。这样做减少通过网络105传送的数据量,并且减少内容平台150在处理这种数据时的逻辑的复杂度。[0092]计算系统mpc1和mpc2生成机器学习模型(步骤214)。每次基于用户简档数据生成新机器学习模型能够被称为训练会话。计算系统mpc1和mpc2能够基于从客户端设备110接收的用户简档的加密份额来训练机器学习模型。例如,计算系统mpc1和mpc2能够使用mpc技术基于用户简档的份额来训练k-nn模型。[0093]为了最小化或至少减少密码计算,以及因此最小化或至少减少在模型训练和推断两者期间为了保护用户隐私和数据而放置在计算系统mpc1和mpc2上的计算负担,mpc集群130能够使用随机投影技术,例如simhash,快速地、安全地和概率上量化两个用户简档pi和pj之间的类似性。simhash是一种能够快速估计两个数据集之间的类似性的技术。两个用户简档pi和pj之间的类似性能够通过确定表示两个用户简档pi和pj的两个位向量之间的汉明(hamming)距离来确定,该汉明距离高概率与两个用户简档之间的余弦距离成反比。[0094]概念上,对于每个训练会话,能够生成m个随机投影超平面u=[u1,u2,...,um}。随机投影超平面也能够被称为随机投影平面。计算系统mpc1和mpc2之间的多步骤计算的一个目的是为在k-nn模型的训练中使用的每个用户简档pi创建长度m的位向量bi。在该位向量bi中,每个位bi,j表示投影平面uj中的一个和用户简档pi的点积的符号,即对于所有j∈[1,m],bi,j=sign(uj⊙pi),其中,⊙表示相等长度的两个向量的点积。即,每个位表示用户简档pi位于的平面uj的哪一侧。位值1表示正号,而位值0表示负号。[0095]在多步骤计算的每端,两个计算系统mpc1和mpc2中的每一个生成中间结果,该中间结果包括明文的每个用户简档的位向量、每个用户简档的份额以及每个用户简档的标签的份额。例如,计算系统mpc1的中间结果能够是下表1所示的数据。计算系统mpc2将具有类似的中间结果,但具有每个用户简档和每个标签的不同份额。为了增加额外隐私保护,mpc集群130中的两个服务器中的每一个仅能够得到明文的m维位向量的一半,例如,计算系统mpc1得到所有m维位向量的第一m/2维,计算系统mpc2得到所有m维位向量的第二m/2维。[0096]表1[0097]明文形式的位向量用于pi的mpc1份额用于labeli的mpc1份额.........bi......bi 1...............[0098]给定单位长度为i≠j的两个任意的用户简档向量pi和pj,已经表明,假设随机投影的数量m足够大,则两个用户简档向量pi和pj的位向量bi和bj之间的汉明距离高概率与用户简档向量pi和pj之间的余弦距离成比例。[0099]基于上面示出的中间结果,并且因为位向量bi是明文,每个计算系统mpc1和mpc2能够使用k-nn算法,例如,通过训练独立地创建相应k-nn模型。计算系统mpc1和mpc2能够使用相同或不同的k-nn算法。用于训练k-nn模型的示例过程在图4中被图示并且在下面被描述。一旦k-nn模型被训练,应用112就能够查询k-nn模型以确定是否将用户添加到用户组。[0100]应用112向mpc集群130提交推断请求(步骤216)。在该示例中,应用112将推断请求传送到计算系统mpc1。在其他示例中,应用112能够将推断请求传送到计算系统mpc2。应用112能够响应于来自内容平台150的提交推断请求的请求而提交推断请求。例如,内容平台150能够请求应用112查询k-nn模型,以确定客户端设备110的用户是否应当被添加到特定用户组。该请求能够被称为推断请求,以推断用户是否应当被添加到用户组。[0101]为了发起推断请求,内容平台150能够向应用112发送推断请求令牌minfer。推断请求令牌minfer使mpc集群130中的服务器能够验证应用112被授权查询由特定域拥有的特定机器学习模型。如果模型访问控制是可选的,则推断请求令牌minfer是可选的。推断请求令牌minfer能够具有在下面的表2中示出和描述的以下项目。[0102]表2[0103][0104]在该示例中,推断请求令牌minfer包括七个项目和使用内容平台150的私钥基于这七个项目生成的数字签名。etld 1是超过公共后缀的有效顶级域(etld)加一级。示例etld 1是“example.com”,其中“.com”是顶级域。[0105]为了请求针对特定用户的推断,内容平台150能够生成推断请求令牌minfer并且将该令牌发送到在用户的客户端设备110上运行的应用112。在一些实施方式中,内容平台150使用应用112的公钥对推断请求令牌minfer进行加密,使得仅应用112能够使用其与公钥相对应的机密私钥对推断请求令牌minfer进行解密。即,内容平台能够向应用112发送pubkeyenc(minfer,application_public_key)。[0106]应用112能够解密并且验证推断请求令牌minfer。应用112能够使用其私钥来解密加密的推断请求令牌minfer。应用112能够通过以下来验证推断请求令牌minfer:(i)使用与被用于生成数字签名的内容平台150的私钥相对应的内容平台150的公钥来验证数字签名,以及(ii)确保令牌创建时间戳不是陈旧的,例如,由时间戳指示的时间在验证正在发生的当前时间的阈值时间量内。如果推断请求令牌minfer有效,则应用112能够查询mpc集群130。[0107]概念上,推断请求能够包括机器学习模型的模型标识符、当前用户简档pi,k(要提取的最近邻的数量)、可选地附加信号(例如,场境信号或数字组件信号)、聚合函数和聚合函数参数。然而,为了防止将明文形式的用户简档pi泄漏到计算系统mpc1或mpc2的任一个,并且由此保护用户隐私,应用112能够将用户简档pi分割成分别用于mpc1和mpc2的两个份额[pi,1]和[pi,2]。应用112然后能够例如随机地或伪随机地选择两个计算系统mpc1或mpc2中的一个以用于查询。如果应用112选择计算系统mpc1,则应用112能够向计算系统mpc1发送具有第一份额[pi,1]和第二份额的加密版本(例如,pubkeyencrypt([pi,2],mpc2))的单个请求。在该示例中,应用112使用计算系统mpc2的公钥来加密第二份额[pi,2]以防止计算系统mpc1访问[pi,2],这将使计算系统mpc1能够根据[pi,1]和[pi,2]来重构用户简档pi。[0108]如下面更详细描述的,计算系统mpc1和mpc2协作地计算k个与用户简档pi最近的邻。计算系统mpc1和mpc2随后能够使用若干可能机器学习技术(例如,二元分类、多类分类、回归等)中的一种来基于该k个最近邻用户简档确定是否将用户添加到用户组。例如,聚合函数能够标识机器学习技术(例如,二进制、多类、回归),并且聚合函数参数能够基于该聚合函数。聚合函数能够定义计算,例如,求和、逻辑and(与)或or(或),或者使用参数被执行的另一适当函数。例如,聚合函数能够是包括函数和在等式中使用的参数的等式的形式。[0109]在一些实施方式中,聚合函数参数能够包括内容平台150为用户正在查询k-nn模型的用户组的用户组标识符。例如,内容平台150可能想要知道是否将用户添加到与徒步旅行相关的并且具有用户组标识符“徒步旅行”的用户组。在该示例中,聚合函数参数能够包括“徒步旅行”用户组标识符。一般而言,计算系统mpc1和mpc2能够基于作为用户组成员的k个最近邻的数量,例如,基于它们的标签,来确定是否将用户添加到用户组。[0110]mpc集群130向应用112提供推断结果(步骤218)。在该示例中,接收查询的计算系统mpc1将推断结果发送到应用112。推断结果能够指示应用112是否应当将用户添加到零个或多个用户组。例如,用户组结果能够指定用户组的用户组标识符。然而,在该示例中,计算系统mpc1将知道用户组。为了防止这种情况,计算系统mpc1可以计算推理结果的份额,并且计算系统mpc2可以计算同一推理结果的另一份额。计算系统mpc2能够将其份额的加密版本提供给计算系统mpc1,其中该份额使用应用112的公钥来加密。计算系统mpc1能够向应用112提供计算系统mpc1的推理结果的份额和用户组结果的计算系统mpc2的份额的加密版本。应用112能够解密计算系统mpc2的份额,并且根据这两个份额计算推断结果。用于查询k-nn模型以确定是否将用户添加到用户组的示例过程在图5中被图示并且在下面被描述。在一些实施方式中,为了防止计算系统mpc1伪造计算系统mpc2的结果,计算系统mpc2在使用应用112的公钥加密其结果之前或之后数字地签名其结果。应用程序112使用mpc2的公钥来验证计算系统mpc2的数字签名。[0111]应用112为用户更新用户组列表(步骤220)。例如,如果推断结果是将用户添加到特定用户组,则应用112能够将用户添加到用户组。在一些实施方式中,应用112能够提示用户许可将用户添加到用户组。[0112]应用112传送对内容的请求(步骤222)。例如,应用112能够响应于加载具有数字组件槽的电子资源而向内容平台150发送对数字组件的请求。在一些实施方式中,请求能够包括用于包括用户作为成员的用户组的一个或多个用户组标识符。例如,应用112能够从用户组列表获得一个或多个用户组标识符,并且将用户组标识符与请求一起提供。在一些实施方式中,这些技术能够被用于防止内容平台能够将用户组标识符与从其接收请求的用户、应用112和/或客户端设备112相关联。[0113]内容平台150将内容传送到应用112(步骤224)。例如,内容平台150能够基于用户组标识符来选择数字组件并且将该数字组件提供给应用112。在一些实施方式中,内容平台150与应用112协作,基于用户组标识符选择数字组件,而不将用户组标识符泄露到应用112之外。[0114]应用112显示或以其他方式实现接收的内容(步骤226)。例如,应用112能够在电子资源的数字组件槽中显示接收的数字组件。[0115]用于生成用户简档的示例过程[0116]图3是图示用于生成用户简档并且将该用户简档的份额发送到mpc集群的示例过程300的流程图。过程300的操作能够例如由图1的客户端设备110实现,例如由在客户端设备110上运行的应用112实现。过程300的操作还能够被实现为存储在可以是非暂时性的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理装置执行指令能够使一个或多个数据处理装置执行过程300的操作。[0117]在用户的客户端设备110上执行的应用112接收用于事件的数据(步骤302)。事件能够是例如在客户端设备110处的电子资源的呈现、在客户端设备110处的数字组件的呈现、用户在客户端设备110处与电子资源或数字组件的交互、或数字组件的转换、或缺少用户与所呈现的电子资源或数字组件的交互或转换。当事件发生时,内容平台150能够向应用112提供与事件相关的数据,以用于生成用户的用户简档。[0118]应用112能够为每个内容平台150生成不同的用户简档。即,用户的并且用于特定内容平台150的用户简档可以仅包括从特定内容平台150接收的事件数据。这通过不与内容平台共享与其他内容平台的事件相关的数据来保护用户隐私。在一些实施方式中,应用112可以根据内容平台150的请求为内容平台150所拥有的每个机器学习模型生成不同的用户简档。基于设计目标,不同的机器学习模型可能需要不同的训练数据。例如,第一模型可以被用于确定是否将用户添加到用户组。第二模型可以被用于预测用户是否将与数字组件交互。在该示例中,第二模型的用户简档能够包括第一模型的用户简档不具有的附加数据,例如,用户是否与数字组件交互。[0119]内容平台150能够以简档更新令牌mupdate的形式发送事件数据。该简档更新令牌mupdate具有在下面的表3中示出和描述的以下项目。[0120]表3[0121][0122][0123]模型标识符标识用户简档将被用于训练或被用于做出用户组推断的机器学习模型,例如,k-nn模型。简档记录是n维特征向量,其包括特定于事件的数据,例如,事件的类型、电子资源或数字组件、事件发生的时间和/或内容平台150希望在训练机器学习模型和做出用户组推断时使用的其它适当事件数据。数字签名使用内容平台150的私钥基于这七个项目来生成。[0124]在一些实施方式中,为了在传输期间保护更新令牌mupdate,内容平台150在将更新令牌mupdate发送到应用112之前对更新令牌mupdate进行加密。例如,内容平台150能够使用应用的公共密钥,例如,pubkeyenc(mupdate,application_public_key),来加密更新令牌mupdate。[0125]在一些实施方式中,内容平台150能够将事件数据发送到应用112,而不以简档更新令牌mupdate的形式对事件数据或更新请求进行编码。例如,源自在应用112内部运行的内容平台150的脚本可以经由脚本api直接将事件数据和更新请求传送到应用112,其中应用112依赖于万维网联盟(w3c)基于来源的安全模型和/或(超文本传输协议安全)https来保护事件数据和更新请求免受伪造或泄漏。[0126]应用112存储用于事件的数据(步骤304)。如果事件数据被加密,则应用112能够使用其私钥来解密事件数据,该私钥与用于加密事件数据的公钥相对应。如果以更新令牌mupdate的形式发送事件数据,则应用112能够在存储事件数据之前验证更新令牌mupdate。应用112能够通过以下来验证更新令牌mupdate:(i)使用与用于生成数字签名的内容平台150的私钥相对应的内容平台150的公钥来验证数字签名,以及(ii)确保令牌创建时间戳不是陈旧的,例如,由时间戳指示的时间在验证正在发生的当前时间的阈值时间量内。如果更新令牌mupdate有效,则应用112能够例如通过存储n维简档记录来存储事件数据。如果任何验证失败,则应用112可以忽略更新请求,例如,通过不存储事件数据。[0127]对于每个机器学习模型,例如,对于每个唯一模型标识符,应用112能够存储该模型的事件数据。例如,应用112能够为每个唯一模型标识符维护包括n维特征向量的集合(例如,更新令牌的简档记录)的数据结构,并且为每个特征向量维护期满时间。每个特征向量能够包括与客户端设备110的用户的事件相关的特征的特征值。模型标识符的示例数据结构在下面的表4中示出。[0128]表4[0129]特征向量期满n维特征向量期满时间......[0130]在接收到有效更新令牌mupdate时,应用112能够通过将更新令牌mupdate的特征向量和期满时间添加到数据结构来更新包括在更新令牌mupdate中的模型标识符的数据结构。应用112能够周期性地从数据结构中清除期满的特征向量以减小存储大小。[0131]应用112确定是否生成用户简档(步骤306)。例如,应用112可以响应于来自内容平台150的请求而生成用于特定机器学习模型的用户简档。该请求可以是生成用户简档并且将用户简档的份额返回给内容平台150。在一些实施方式中,应用112可以直接将所生成的用户简档上传到mpc集群130,例如,而不是将它们发送到内容平台150。为了确保生成和返回用户简档的份额的请求的安全性,内容平台150能够向应用112发送上传令牌mupload。[0132]上传令牌mupload能够具有与更新令牌mupdate类似的结构,但是具有不同的操作(例如,“更新服务器”而不是“累积用户简档”)。上传令牌mupload还能够包括用于操作延迟的附加项。操作延迟能够指示应用112延迟计算和上传用户简档的份额,而应用112累积更多事件数据,例如,更多特征向量。这使机器学习模型能够在例如加入用户组的某些关键事件之前和之后立即捕获用户事件数据。操作延迟能够指定延迟时间段。在该示例中,能够使用内容平台的私钥基于表3中的其他七个项目和操作延迟来生成数字签名。内容平台150能够使用应用的公钥以与更新令牌mupdate类似的方式加密上传令牌mupload(例如pubkeyenc(mupload,application_public_key)),以在传输期间保护上传令牌mupload。[0133]应用112能够接收上传令牌mupload,如果上传令牌mupload被加密则解密上传令牌mupload,并且验证上传令牌mupload。该验证能够类似于验证更新令牌mupload的方式。应用112能够通过以下来验证上传令牌mupload:(i)使用与被用于生成数字签名的内容平台150的私钥相对应的内容平台150的公钥来验证数字签名,以及(ii)确保令牌创建时间戳不是陈旧的,例如,由时间戳指示的时间在验证正在发生的当前时间的阈值时间量内。如果上传令牌mupload有效,则应用112能够生成用户简档。如果任何验证失败,则应用112可以忽略上传请求,例如通过不生成用户简档。[0134]在一些实施方式中,内容平台150能够请求应用112上传用户简档,而不以简档上传令牌mupload的形式对上传请求进行编码。例如,源自在应用115内运行的内容平台150的脚本可以经由脚本api直接将上传请求传送到应用115,其中应用115依赖于w3c基于来源的安全模型和/或https来保护上传请求免受伪造或泄漏。[0135]如果确定不生成用户简档,则过程300能够返回到操作302并且等待来自内容平台150的附加事件数据。如果确定生成用户简档,则应用112生成用户简档(步骤308)。[0136]应用112能够基于所存储的事件数据,例如,存储在表4所示的数据结构中的数据,来生成用户简档,应用112能够基于包括在请求中的模型标识符,例如,上传令牌mupload的项目1的内容平台etld 1域和项目2的模型标识符,来访问适当数据结构。[0137]应用112能够通过聚合研究时段中尚未期满的数据结构中的n维特征向量来计算用户简档。例如,用户简档可以是研究时段中尚未期满的数据结构中的n维特征向量的平均值。结果是表示简档空间中的用户的n维特征向量。可选地,应用112可以将n维特征向量标准化为单位长度,例如,使用l2标准化。内容平台150可以指定可选研究时段。[0138]在一些实施方式中,衰减速率能够被用于计算用户简档。由于可能存在使用mpc集群130来训练机器学习模型的许多内容平台150并且每个内容平台150可以具有多个机器学习模型,因此存储用户特征向量数据可能导致显著的数据存储需求。使用衰减技术能够显著地减少存储在每个客户端设备110处的数据量,以出于生成用于训练机器学习模型的用户简档的目的。[0139]假设,对于给定机器学习模型,存在k个特征向量{f1,f2,...fk},其每个是n维向量和它们的对应年龄(record_age_in_secondsi)。应用112能够使用以下关系1来计算用户简档:[0140]关系1:在该关系中,参数record_age_in_secondsi是简档记录已经被存储在客户端设备110处的以秒为单位的时间量,并且参数decay_rate_in_seconds是以秒为单位的简档记录的衰减速率(例如,容纳在更新令牌mupdate的项目6中)。这样,最近特征向量承载更多权重。这还使应用112能够避免存储特征向量并且仅以恒定存储来存储简档记录。应用112仅必须存储每个模型标识符的n维向量p和时间戳user_profile_time,而不是每个模型标识符的多个单独特征向量。这显著地减少了必须被存储在客户端设备110处的数据量,许多客户端设备通常具有有限的数据存储容量。[0141]为了初始化n维向量用户简档p和时间戳,应用能够将向量p设置为n维的向量,其中每个维度的值为零,并且将user_profile_time设置为时期(epoch)。为了在任何时间利用新特征向量fx更新用户简档p,应用112能够使用下面的关系2:[0142]关系2:[0143]应用112还能够在利用关系2更新用户简档时将用户简档时间更新为当前时间(current_time)。注意,如果应用112利用上述衰减速率算法计算用户简档,则操作304和308被省略。[0144]应用112生成用户简档的份额(步骤310)。应用112能够使用伪随机函数来将用户简档pi(例如,n维向量p)分割成多个份额。即,应用112能够使用伪随机函数prf(pi)来生成用户简档pi的两个份额{[pi,1],[pi,2]}。精确的分割能够取决于应用112所使用的秘密共享份额算法和密码库。在一些实施方式中,应用使用shamir的秘密份额方案。如果提供了一个或多个标签的份额,则应用112也能够生成标签的份额。[0145]应用112对用户简档pi的份额{[pi,1],[pi,2]}进行加密(步骤312)。例如,如上所述,应用112能够生成包括用户简档的份额和标签的份额的复合消息,并且对该复合消息进行加密以获得加密结果pubkeyencrpt([pi,1]||[labeli,1],mpc1)和pubkeyencr3pt([pi,2]||[labeli,2],mpc2)。使用mpc集群130的加密密钥对份额进行加密防止内容平台150能够明文访问用户简档。应用112将加密份额传送到内容平台(步骤314)。注意,如果应用112将秘密份额直接传送到计算系统mpc1和mpc2,则操作314被省略。[0146]用于生成和使用机器学习模型的示例过程[0147]图4是图示用于生成机器学习模型的示例过程400的流程图。过程400的操作能够例如由图1的mpc集群130实现。过程400的操作也能够被实现为存储在可以是非暂时性的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理装置执行指令能够使一个或多个数据处理装置执行过程400的操作。[0148]mpc集群130获得用户简档的份额(步骤402)。内容平台150能够通过将用户简档的份额传送到mpc集群130来请求mpc集群130训练机器学习模型。内容平台150能够在给定时间段内访问从客户端设备110接收的用于机器学习模型的加密份额,并且将那些份额上传到mpc集群130。[0149]例如,内容平台150能够向计算系统mpc1传送用户简档的加密第一份额和每个用户简档pi的其标签的加密第一份额(例如,pubkeyencrypt([pi,1]||[labeli,1],mpc1)。类似地,内容平台150能够向计算系统mpc2传送用户简档的加密第二份额和每个用户简档pi的其标签的加密第二份额(例如,pubkeyencrypt([pi,2]||[labeli,2],mpc2)。[0150]在应用112向mpc集群130直接发送用户简档的秘密份额的一些实施方式中,内容平台150能够请求mpc集群130通过向mpc集群130传送训练请求来训练机器学习模型。[0151]计算系统mpc1和mpc2创建随机投影平面(步骤404)。计算系统mpc1和mpc2能够协作地创建m个随机投影平面u={u1,u2,...,um}。这些随机投影平面应该保持为两个计算系统mpc1和mpc2之间的秘密份额。在一些实施方式中,计算系统mpc1和mpc2创建随机投影平面,并且使用diffie-hellman密钥交换技术来维持它们的秘密。[0152]如下面更详细描述的,计算系统mpc1和mpc2会将它们的每个用户简档的份额投影到每个随机投影平面上,并且为每个随机投影平面确定用户简档的份额是否在随机投影平面的一侧。每个计算系统mpc1和mpc2随后能够基于每个随机投影的结果从用户简档的秘密份额构建秘密份额中的位向量。用户的位向量的部分知识,例如,用户简档pi是否在投影平面uk的一侧,允许计算系统mpc1或mpc2获得关于pi的分布的一些知识,其相对于用户简档pi具有单位长度的现有知识是增加的。为了防止计算系统mpc1和mpc2获得对该信息的访问(例如,在对于用户隐私和/或数据安全来说是需要的或优选的实施方式中),在一些实施方式中,随机投影平面处于秘密份额,因此计算系统mpc1和mpc2都不能明文访问随机投影平面。在其它实施方式中,能够使用秘密共享份额算法在随机投影结果上应用随机位翻转模式,如在可选操作406-408中所描述的。[0153]为了演示如何经由秘密份额翻转位,假设存在两个秘密x和y,它们的值以相等概率是零或一。如果y==0,则等式操作[x]==[y]将翻转x的位,并且如果y==1,则将保持x的位。该操作能够需要两个计算系统mpc1和mpc2之间的远程过程调用(rpc),并且轮数取决于数据大小和选择的秘密共享份额算法。[0154]每个计算系统mpc1和mpc2创建秘密的m维向量(步骤406)。计算系统mpc1能够创建秘密的m维向量{s1,s2,...sm},其中每个元素si以相等概率具有零或一的值。计算系统mpc1将其m维向量分割成两个份额,第一份额{[s1,1]、[s2,1]、...[sm,1]}和第二份额{[s1,2]、[s2,1]、...[sm,2]}。计算系统mpc1能够保持第一份额秘密,并且将第二份额提供给计算系统mpc2。计算系统mpc1然后能够丢弃m维向量{s1,s2,...sm}。[0155]计算系统mpc2能够创建秘密的m维向量{t1,t2,...tm},其中每个元素ti具有零或一的值。计算系统mpc2将其m维向量分割成两个份额,第一份额和第二份额{[t1,2],[t2,2],...[tm,2]}。计算系统mpc2能够保持第一份额秘密,并且将第二份额提供给计算系统mpc1。计算系统mpc2然后能够丢弃m维向量{t1,t2,...tm}。[0156]两个计算系统mpc1和mpc2使用安全mpc技术来计算位翻转模式的份额(步骤408)。计算系统mpc1和mpc2能够利用计算系统mpc1和mpc2之间的多个往返使用秘密份额mpc相等性测试来计算位翻转模式的份额。位翻转模式能够基于上述操作[x]==[y]。即,位翻转模式能够为{s1=t1,s2=t2,...sm=tm}。让每个sti=(si==ti)。每个sti具有零或一的值。在mpc操作被完成之后,计算系统mpc1具有位翻转模式的第一份额{[st1,1],[st2,1],...[stm,1]},并且计算系统mpc2具有位翻转模式的第二份额{[st1,2],[st2,2],...[stm,2]}。每个sti的份额使两个计算系统mpc1和mpc2能够以对两个计算系统mpc1和mpc2中的任一个不透明的方式翻转位向量中的位。[0157]每个计算系统mpc1和mpc2将其每个用户简档的份额投影到每个随机投影平面(步骤410)。即,针对计算系统mpc1接收到份额的每个用户简档,计算系统mpc1能够将份额[pi,1]投影到每个投影平面uj上。为用户简档的每个份额和为每个随机投影平面uj执行该操作产生z×m维的矩阵r,其中z是可用的用户简档的数量,并且m是随机投影平面的数量。矩阵r中的每个元素ri,j能够通过计算投影平面uj和份额[pi,1]之间的点积来确定,例如,ri,j=uj⊙[pi,1]。操作⊙表示相等长度的两个向量的点积。[0158]如果使用位翻转,则计算系统mpc1能够使用在计算系统mpc1和mpc2之间秘密地共享的位翻转模式来修改矩阵中的一个或多个元素ri,j的值。针对矩阵r中的每个元素ri,j,计算系统mpc1能够计算[stj,1]==sign(ri,j)作为元素ri,j的值。因此,如果在位翻转模式中在位中的元素ri,j的对应位具有零值,则该元素ri,j的符号将被翻转。该计算能够需要多个rpc用于计算系统mpc2。[0159]类似地,针对计算系统mpc2接收到份额的每个用户简档,计算系统mpc2能够将份额[pi,2]投影到每个投影平面uj上。为用户简档的每个份额和为每个随机投影平面uj执行该操作产生z×m维的矩阵r’,其中z是可用的用户简档的数量,并且m是随机投影平面的数量。矩阵r’中的每个元素ri,j’能够通过计算投影平面uj和份额[pi,2]之间的点积来确定,例如,r’i,j=uj⊙[pi,2]。操作⊙表示相等长度的两个向量的点积。[0160]如果位翻转被使用,则计算系统mpc2能够使用在计算系统mpc1和mpc2之间秘密地共享的位翻转模式来修改矩阵中的一个或多个元素ri,j’的值。针对矩阵r中的每个元素ri,j’,计算系统mpc2能够计算[stj,2]==sign(ri,j’)作为元素ri,j’的值。因此,如果在位翻转模式中在位stj中的元素ri,j’的对应位具有零值,则该元素的符号将被翻转。该计算能够需要多个rpc用于计算系统mpc1。[0161]计算系统mpc1和mpc2重构位向量(步骤412)。计算系统mpc1和mpc2能够基于具有完全相同大小的矩阵r和r’来重构用户简档的位向量。例如,计算系统mpc1能够将矩阵r的列的一部分发送到计算系统mpc2,并且计算系统mpc2能够将矩阵r’的列的剩余部分发送到mpc1。在特定示例中,计算系统mpc1能够将矩阵r的列的第一一半发送到计算系统mpc2,并且计算系统mpc2能够将矩阵r’的列的第二一半发送到mpc1。尽管在该示例中列被用于水平重构并且被优选保护用户隐私,但是在其他示例中能够使用行用于垂直重构。[0162]在该示例中,计算系统mpc2能够将矩阵r’的列的第一一半与从计算系统mpc1接收的矩阵r的列的第一一半进行组合明文重构位向量的第一一半(即,m/2维)。类似地,计算系统mpc1能够将矩阵r的列的第二一半与从计算系统mpc2接收的矩阵r’的列的第二一半进行组合明文重构位向量的第二一半(即,m/2维)。概念上,计算系统mpc1和mpc2现在已经组合了两个矩阵r和r’中的对应份额明文重构位矩阵b。该位矩阵b将包括从内容平台150为机器学习模型接收到其份额的每个用户简档的(投影到每个投影平面上的)投影结果的位向量。mpc集群130中的两个服务器中的每一个拥有明文的位矩阵b的一半。[0163]然而,如果位翻转被使用,则计算系统mpc1和mpc2已经以为机器学习模型固定的随机模式翻转了矩阵r和r’中的元素的位。这种随机位翻转模式对于两个计算系统mpc1和mpc2中的任一个都是不透明的,使得计算系统mpc1和mpc2都不能从投影结果的位向量推断原始用户简档。密码设计还通过水平地分割位向量来防止mpc1和mpc2推断原始用户简档,即计算系统mpc1明文保持投影结果的位向量的第二一半,并且计算系统mpc2明文保持投影结果的位向量的第一一半。[0164]计算系统mpc1和mpc2生成机器学习模型(步骤414)。计算系统mpc1能够使用位向量的第二一半来生成k-nn模型。类似地,计算系统mpc2能够使用位向量的第一一半来生成k-nn模型。使用矩阵的位翻转和水平分割来生成模型应用了深度防御原理来保护用于生成模型的用户简档的保密性。[0165]通常,每个k-nn模型表示用户集合的用户简档之间的余弦类似性(或距离)。由计算系统mpc1生成的k-nn模型表示位向量的第二一半之间的类似性,由计算系统mpc2生成的k-nn模型表示位向量的第一一半之间的类似性。例如,每个k-nn模型能够定义其位向量的第一一半之间的类似性之间的余弦类似性。[0166]由计算系统mpc1和mpc2生成的两个k-nn模型能够被称为k-nn模型,其具有如上所描述的唯一模型标识符。计算系统mpc1和mpc2能够存储它们的模型以及用于生成模型的每个用户简档的标签的份额。内容平台150然后能够查询模型以为用户进行对用户组的推断。[0167]使用机器学习模型来推断用户组的示例过程[0168]图5是图示用于使用机器学习模型将用户添加到用户组的示例过程500的流程图。过程500的操作能够例如由图1的mpc集群130和客户端设备110,例如在客户端设备110上运行的应用112,来实现。过程500的操作还能够被实现为存储在可以是非暂时性的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理装置执行指令能够使一个或多个数据处理装置执行过程500的操作。[0169]mpc集群130接收对给定用户简档的推断请求(步骤502)。在用户的客户端设备110上运行的应用112能够例如响应于来自内容平台150的请求而将推断请求传送到mpc集群130。例如,内容平台150能够向应用112传送上传令牌minfer,以请求应用112将推断请求提交给mpc集群130。推断请求能够是查询用户是否应当被添加到任何数量的用户组。[0170]推断请求令牌minfer能够包括用户的给定用户简档的份额、机器学习模型(例如,k-nn模型)的模型标识符和要被用于推断的所有者域、要被用于推断的给定用户简档的最近邻的数量k、附加信号(例如,场境信号或数字组件信号)、要被用于推断的聚合函数和要被用于推断的任何聚合函数参数、以及使用所有者域机密私钥对由所有者域创建的所有上述信息的签名。[0171]如上所述,为了防止将明文形式的给定用户简档pi泄漏到计算系统mpc1或mpc2,并且由此保护用户隐私,应用112能够将给定用户简档pi分割成分别用于mpc1和mpc2的两个份额[pi,1]和[pi,2]。应用112然后能够向计算系统mpc1发送具有给定用户简档的第一份额[pi,1]和第二份额的加密版本(例如,给定用户简档的pubkeyencrypt([pi,2],mpc2))的单个推断请求。推断请求还可以包括推断请求令牌minfer,使得mpc集群130能够认证该推断请求。通过发送包括第一份额和加密第二份额的推断请求,减少了由应用112发送的传出请求的数量,从而导致在客户端设备110处的计算、带宽和电池节省。[0172]在其他实施方式中,应用112能够将给定用户简档的第一份额[pi,1]发送到计算系统mpc1,并且将给定用户简档的第二份额[pi,2]发送到计算系统mpc2。通过将给定用户简档的第二份额[pi,2]发送到计算系统mpc2而不经过计算系统mpc1,第二份额不需要被加密以防止计算系统mpc1访问给定用户简档的第二份额[pi,2]。[0173]每个计算系统mpc1和mpc2标识秘密份额表示中的给定用户简档的k个最近邻(步骤504)。计算系统mpc1能够使用给定用户简档的第一份额[pi,1]来计算给定用户简档的位向量的其一半。为了生成位向量,计算系统mpc1能够使用图4的过程400的操作410和412。即,计算系统mpc1能够使用为k-nn模型生成的随机投影向量来投影给定用户简档的份额[pi,1],并且创建给定用户简档的位向量的秘密份额。如果位翻转被用于生成k-nn模型,则计算系统mpc1然后能够使用用于生成k-nn模型的位翻转模式的第一份额{[st1,1],[st2,1],...[stm,1]}来修改给定用户简档的位向量的秘密份额的元素。[0174]类似地,计算系统mpc1能够向计算系统mpc2提供给定用户简档的加密第二份额pubkeyencrypt([pi,2],mpc2)。计算系统mpc2能够使用其私钥来解密给定用户简档的第二份额[pi,2],并且使用给定用户简档的第二份额[pi,2]来计算给定用户简档的位向量的一半。即,计算系统mpc2能够使用为k-nn模型生成的随机投影向量来投影给定用户简档的份额[pi,2],并且创建给定用户简档的位向量。如果位翻转被用于生成k-nn模型,则计算系统mpc2然后能够使用被用于生成k-nn模型的位翻转模式的第二份额{[st1,2],[st2,2],...[stm,2]}来修改给定用户简档的位向量的元素。计算系统mpc1和mpc2然后利用水平分割来重构位向量,如图4中的操作412中所描述的。在重构完成之后,计算系统mpc1具有给定用户简档的总位向量的第一一半,并且计算系统mpc2具有给定用户简档的总位向量的第二一半。[0175]每个计算系统mpc1和mpc2使用其给定用户简档的位向量的一半和其k-nn模型来标识k’个最近邻用户简档,其中k’=a×k,其中a基于实际生产数据和统计分析来凭经验确定。例如a=3或另一适当数量。计算系统mpc1能够计算总位向量的第一一半与k-nn模型的每个用户简档的位向量之间的汉明距离。计算系统mpc1然后基于所计算的汉明距离来标识k’个最近邻,例如,具有最低汉明距离的k’个用户简档。换句话说,计算系统mpc1基于给定用户简档的份额和使用多个用户简档训练的k最近邻模型来标识最近邻用户简档集合。在下表5中示出了表格形式的示例结果。[0176]表5[0177][0178]在表5中,每行用于特定最近邻用户简档,并且包括每个用户简档的位向量的第一一半与由计算系统mpc1计算的给定用户简档的位向量之间的汉明距离。用于特定最近邻用户简档的行还包括该用户简档的第一份额和与该用户简档相关联的标签的第一份额。[0179]类似地,计算系统mpc2能够计算总位向量的第二一半与k-nn模型的每个用户简档的位向量之间的汉明距离。计算系统mpc2然后基于所计算的汉明距离来标识k’个最近邻,例如,具有最低汉明距离的k’个用户简档。在下表6中示出了表格形式的示例结果。[0180]表6[0181][0182]在表6中,每行用于特定最近邻用户简档,并且包括该用户简档和由计算系统mpc2计算的给定用户简档之间的汉明距离。用于特定最近邻用户简档的行还包括该用户简档的第二份额和与该用户简档相关联的标签的第二份额。[0183]计算系统mpc1和mpc2能够相互交换行标识符(行id)和汉明距离对的列表。此后,每个计算系统mpc1和mpc2能够利用相同的算法和输入数据独立地选择k个最近邻。例如,计算系统mpc1能够找到对来自计算系统mpc1和mpc2二者的部分查询结果公共的行标识符。对于公共行标识符中的每个i,计算系统mpc1根据两个部分汉明距离计算组合汉明距离di,例如,di=di,1 di,2。计算系统mpc1然后能够基于组合汉明距离di对公共行标识符进行排序并且选择k个最近邻。该k个最近邻的行标识符能够被表示为id={id1,...idk}。能够证明,如果a足够大,则在上述算法中确定的k个最近邻高概率是真正k个最近邻。然而,a的较大值导致高计算成本。在一些实施方式中,计算系统mpc1和mpc2参与隐私集合交集(psi)算法,以确定对来自计算系统mpc1和mpc2的部分查询结果公共的行标识符。此外,在一些实施方式中,mpc1和mpc2参与增强的隐私集合交集(psi)算法,以计算对来自计算机系统mpc1和mpc2两者的部分查询结果公共的行标识符的di=di,1 di,2,并且不向mpc1或mpc2揭露任何内容,而是揭露由di确定的前k个最近邻。[0184]确定是否将用户添加到用户组(步骤506)。该确定能够基于k个最近邻简档及其相关联的标签来进行。该确定还基于所使用的聚合函数和该聚合函数的任何聚合参数。能够基于机器学习问题的性质来选择聚合函数,例如,二元分类、回归(例如,使用算术平均或均方根)、多类分类和加权的k-nn。确定是否将用户添加到用户组的每种方式能够包括mpc集群130和在客户端110上运行的应用112之间的不同交互,如以下更详细描述的。[0185]如果确定不将用户添加到用户组,则应用112可以不将用户添加到用户组(步骤508)。如果确定将用户添加到用户组,则应用112能够将用户添加到用户组,例如,通过更新存储在客户端设备110处的用户组列表以包括用户组的用户组标识符(步骤510)。[0186]示例二元分类推断技术[0187]对于二元分类,推断请求能够包括threshold(阈值)、ltrue和lfalse作为聚合函数参数。标签值是布尔类型,即,真或假。threshold参数能够表示必须具有真值标签以便将用户添加到用户组ltrue的k个最近邻简档的阈值百分比。否则,用户将被添加到用户组lfalse。在一种方法中,如果具有为真的标签值的最近邻用户简档的数量大于threshold和k的乘积,则mpc集群130可以指示应用112将用户添加到用户组ltrue(否则为lfalse)。然而,计算系统mpc1将学习推断结果,例如,用户应该加入的用户组。[0188]为了保护用户隐私,推理请求能够包括明文的阈值、用于计算系统mpc1的第一份额[ltrue,1]和[lfalse,1],以及用于计算系统mpc2的加密第二份额pubkeyencrypt([ltrue,2]||[lfalse,2]||application_public_key,mpc2)。在该示例中,应用112能够根据[ltrue,2]、[lfasle,2]和应用112的公钥来生成复合消息,如由符号||所表示,并且使用计算系统mpc2的公钥来加密该复合消息。从计算系统mpc1至应用112的推断响应能够包括由计算系统mpc1确定的推断结果的第一份额[lresult,1]和由计算系统mpc2确定的推断结果的第二份额[lresult,2]。[0189]为了防止第二份额被计算系统mpc1访问并且因此使计算系统mpc1能够明文获得推断结果,计算系统mpc2能够将推断结果的第二份额[lresult,2]的加密(并且可选地数字地签名的)版本(例如,pubkeysign(pubkeyencrypt([lresult,2],application_public_key),mpc2))发送到计算系统mpc1,以包括在发送到应用112的推断响应中。在该示例中,应用112能够使用与用于生成数字签名的计算系统mpc2的私钥相对应的计算系统mpc2的公钥来验证数字签名,并且使用与用于加密推断结果的第二份额[lresult,2]的公钥(application_public_key)相对应的应用112的私钥来解密推断结果的第二份额[lresult,2]。[0190]应用112然后能够根据第一份额[lresult,1]和第二份额[lresult,2]来重构推断结果lresult。使用数字签名使应用112能够检测来自计算系统mpc2的结果的伪造,例如,通过计算系统mpc1。取决于期望的安全级别、哪些方操作mpc集群130的计算系统、以及假设的安全模型,可以不需要数字签名。[0191]计算系统mpc1和mpc2能够使用mpc技术来确定二元分类结果的份额[lresult,1]和[lresult,2]。在二元分类中,用户简档的label1的值是零(假)或一(真)。假设所选择的k个最近邻由标识符{id1,...idk}标识,则计算系统mpc1和mpc2能够计算k个最近邻用户简档的标签的总和(sum_of_labels),其中该总和由下面的关系3表示:[0192]关系3:sum_of_labels=∑i∈{id1,...idk}labeli[0193]为了确定该总和,计算系统mpc1向计算系统mpc2发送id(即,{id1,...idk})。计算系统mpc2能够验证id中的行标识符的数量大于用于强制执行k-匿名的阈值。计笪系统mpc2然后能够使用以下关系4来计算标签的总和[sum_of_labgls2]的第二份额:[0194]关系4:[sum_of_labels2]=∑i∈{id1,...idk}[labeli,2][0195]计算系统mpc1还能够使用以下关系5来计算标签的总和[sum_of_labels1]的第一份额:[0196]关系5:[sum_of_labels1]=∑i∈{id1,...idk}[labeli,1][0197]如果标签的总和sum_of_labels是计算系统mpc1和mpc2应尽可能少地知道的机密信息,则计算系统mpc1能够计算标签的总和[sum_of_labels1]的第一份额是否低于阈值,例如,[below_threshold1]=[sum_of_labels1]<threshold×k.。类似地,计算系统mpc2能够计算标签的总和[sum_of_labels2]的第二份额是否低于阈值,例如,[belowthreshold2]=[sumoflabels2]<threshold×k。计算系统mpc1能够继续通过[below_threshold1]×[lfalse,1] (1-[below_threshold1])×[ltrue,1]来计算推断结果[lresult,1]。类似地,计算系统mpc2能够通过[below_threshold2]×[lfalse,2] (1-[below_threshold2])×[ltrue,2]来计算[lresult,2]。[0198]如果标签的总和sum_of_labels不是机密信息,则计算系统mpc1和mpc2能够根据[sum_of_labels1]和[sum_of_labels2]重构sum_of_labels。计算系统mpc1和mpc2然后能够将参数below_threshold设置为sum_of_labels<threshold×k,例如,如果其低于阈值则设置为一,或者如果不低于阈值则设置为零。[0199]在计算参数below_threshold之后,计算系统mpc1和mpc2能够继续确定推断结果lresult。例如,计算系统mpc2能够根据below_threshold的值将[lresult,2]设置为[ltrue,2]或[lfalse,2]。例如,计算系统mpc2能够在标签的总和不低于阈值的情况下将[lresult,2]设置为[ltrue,2],或在标签的总和低于阈值的情况下设置为[lfalse,2]。计算系统mpc2然后可以将推理结果的加密第二份额(pubkeyencrypt(lresult,2],application_public_key))[11]或该结果的数字地签名的版本返回给计算系统mpc1。[0200]类似地,计算系统mpc1能够根据below_threshold的值将[lresult,1]设置为[ltrue,1]或[lfalse,1]。例如,计算系统mpc1能够在标签的总和不低于阈值的情况下将[lresult,1]设置为[ltrue,1],或在标签的总和低于阈值的情况下设置为[lfalse,1]。计算系统mpc1能够将推理结果的第一份额[lresult,1]和推理结果的加密第二份额[lresult,2]作为推理响应传送到应用112。应用112然后能够基于两个份额来计算推断结果,如上所述。[0201]示例多类分类推断技术[0202]对于多类分类,与每个用户简档相关联的标签能够是分类特征。内容平台150能够指定将任何可能类别值映射到对应用户组标识符的查找表。该查找表能够是包括在推断请求中的聚合函数参数中的一个。[0203]在找到的k个最近邻内,mpc集群130找到最频繁标签值。mpc集群130然后能够在查找表中找到对应于最频繁标签值的用户组标识符,并且请求应用112将用户添加到对应于该用户组标识符的用户组,例如,通过将用户组标识符添加到存储在客户端设备110处的用户组列表。[0204]类似于二元分类,优选隐藏来自计算系统mpc1和mpc2的推断结果lresult。为此,应用112或内容平台150能够创建两个查找表,每个查找表将类别值映射到推断结果lresult的相应份额。例如,该应用能够创建将类别值映射到第一份额[lresult1]的第一查找表和将类别值映射到第二份额[lresult2]的第二查找表。从应用到计算系统mpc1的推断请求能够包括用于计算系统mpc1的明文的第一查找表以及用于计算系统mpc2的第二查找表的加密版本。第二查找表能够使用计算系统mpc2的公钥来加密。例如,包括第二查找表和应用的公钥的复合消息能够使用计算系统mpc2的公钥来加密,例如pubkeyencrypt(lookuptable2||application_public_key,mpc2)。[0205]由计算系统mpc1发送的推断响应能够包括由计算系统mpc1生成的推断结果的第一份额[lresult1]。类似于二元分类,为了防止第二份额被计算系统mpc1访问并且因此使计算系统mpc1能够明文获得推断结果,计算系统mpc2能够将推断结果的第二份额[lresult,2]的加密(并且可选地数字地签名的)版本(例如,pubkeysign(pubkeyencrypt([lresult,2],application_public_key),mpc2))发送到计算系统mpc1,以包括在发送到应用112的推断结果中。应用112能够根据[lresult1]和[lresult2]重构推断结果lresult。[0206]假设对于多类分类问题有w个有效标签{l1,l2,...lw}。为了确定多类分类中的推理结果lresult的份额[lresult1]和[lresult2],计算系统mpc1向计算系统mpc2发送id(即,{id1,...idk})。计算系统mpc2能够验证id中的行标识符的数量大于用于强制执行k-匿名的阈值。通常,k-nn中的k可以显著地大于k-匿名中的k。计算系统mpc2然后能够计算第j个标签[lj,2]的第二频率份额[frequencyj,2],其使用下面的关系6来定义。[0207]关系6:[0208]类似地,计算系统mpc1计算第j个标签[lj,1]的第一频率份额[frequencyj,1],其使用下面的关系7来定义。[0209]关系7:[0210]假设k个最近邻内的标签的频率(frequencyi)不敏感,则计算系统mpc1和mpc2能够根据该标签的两个份额[frequencyi,l]和[frequencyi,2]重构frequencyi。计算系统mpc1和mpc2然后能够确定其中frequencyindex具有最大值的索引参数(index),例如,index=argmaxi(frequencyi)。[0211]计算系统mpc2然后能够在其查找表中查找对应于具有最高频率的标签的份额[lresult,2],并且将pubkeyencrypt([lresult,2],application_public_key)返回给计算系统mpc1。计算系统mpc1能够类似地在其查找表中查找对应于具有最高频率的标签的份额能够使用应用112的公钥(例如,pubkeyencrypt([lresult,2],application_public_key))来加密第二份额[lresult,2],并且将加密第二份额发送到计算系统mpc1。计算系统mpc1能够向应用112提供第一份额和加密第二份额(其能够任选地如上所述被数字地签名)。应用112然后可以将用户添加到由标签(例如,用户组标识符)lresult标识的用户组。[0224]如果标签的总和是敏感的,则计算系统mpc1和mpc2可能不能明文构造sum_of_labels。相反,计算系统mpc1能够计算掩码对于[maski,1]=[sum_of_labels1]>ti×k。该计算能够需要计算系统mpc1和mpc2之间的多次往返。接下来,计算系统mpc1能够计算并且计算系统mpc2能够计算该操作中的等式测试能够需要计算系统mpc1与mpc2之间的多次往返。[0225]此外,计算系统mpc1能够计算能够计算并且计算系统mpc2能够计算能够计算然后,当且仅当对于acci==1时,mpc集群130才会返回li,如果usedefault==1则将返回ln 1。这个条件能够在下面的关系9中表示。[0226]关系9:[0227]对应的密码实施方式能够由下面的关系10和11表示。[0228]关系10:[0229]关系11:[0230]如果li是明文,则这些计算不需要计算系统mpc1和mpc2之间的任何往返计算,如果li是秘密份额,则这些计算涉及一次往返计算。计算系统mpc1能够将结果的两个份额(例如,[lresult,1]和[lresult,2]提供给应用112,其中第二份额被计算系统mpc2加密并且可选地数字地签名,如上所述。这样,应用112能够确定推断结果lresult,而没有计算系统mpc1或mpc2学习关于即时或最终结果的任何事情。[0231]对于均方根,计算系统mpc1将id(即{id1,...idk})发送到计算系统mpc2。计算系统mpc2能够验证id中的行标识符的数量大于阈值以强制执行k-匿名。计算系统mpc2能够使用以下关系12来计算sum_of_square_labels参数(例如,标签值的平方和)的第二份额。[0232]关系12:[0233]类似地,计算系统mpc1能够使用以下的关系13来计算sum_of_square_labels参数的第一份额。[0234]关系13:[0235]假设sum_of_square_labels参数不敏感,则计算系统mpc1和mpc2能够根据两个份额[sum_of_square_labels1]和[sum_of_square_labels2]来重构sum_of_square_labels参数。计算系统mpc1和mpc2能够通过将sum_of_square_labels除以最近邻标签的数量,例如,除以k,然后计算平方根,来计算标签的均方根。[0236]无论平均值经由算术平均还是均方根计算,计算系统mpc1然后能够使用关系8将平均值与阈值进行比较,以标识对应于平均值的标签并且将第一份额[lresult,1]设置为所标识的标签。类似地,计算系统mpc2能够使用关系8将平均值与阈值进行比较,以标识对应于平均值的标签(或标签的秘密份额),并且将第二份额[lresult,2]设置为标识符标签(或标识符标签的秘密份额)。计算系统mpc2能够使用应用112的公钥(例如,pubkeyencrypt([lresult,2],application_public_key))来加密第二份额[lresult,2],并且将加密第二份额发送到计算系统mpc1。计算系统mpc1能够将第一份额和加密第二份额(其能够可选地如上所述被数字地签名)提供给应用112作为推断结果。应用112然后能够将用户添加到由lresult的标签(例如,用户组标识符)标识的用户组。如果sum_of_square_labels参数敏感,则计算系统mpc1和mpc2能够执行与算术平均示例中使用的类似密码协议,以计算推理结果的份额。[0237]在上述推断分类和回归问题的结果的技术中,所有k个最近邻对最终推断结果具有相等影响,例如,相等权重。对于许多分类和回归问题,如果k个邻中的每个被指派了当邻和查询参数pi之间的汉明距离增加时单调地减少的权重,则能够改善模型质量。具有这种特性的常用核函数是epanechnikov(抛物线)核函数。汉明距离和权重都能够明文计算。[0238]稀疏特征向量用户简档[0239]当电子资源的特征被包括在用户简档中并且被用于生成机器学习模型时,得到的特征向量能够包括高基数分类特征,诸如域、url和ip地址。这些特征向量是稀疏的,其中大多数元素具有零值。应用112可以将特征向量分割成两个或更多个密集特征向量,但是机器学习平台将消耗太多的客户端设备上传带宽而不实用。为了防止这个问题,上述系统和技术能够适于更好地处理稀疏特征向量。[0240]当向客户端设备提供用于事件的特征向量时,被包括在电子资源中的内容平台150的计算机可读代码(例如,脚本)能够调用应用(例如,浏览器)api来指定用于事件的特征向量。该代码或内容平台150能够确定特征向量(的某一部分)是密集的还是稀疏的。如果特征向量(或它的某一部分)是密集的,则代码能够作为api参数在数值向量中传递。如果特征向量(或它的某一部分)是稀疏的,则代码能够在映射中传递,例如,具有非零特征值的那些特征元素的编索引关键字/值对,其中关键字是这样的特征元素的名称或索引。如果特征向量(或它的某个部分)是稀疏的,并且非零特征值总是相同的值,例如,1,则代码能够在集合中传递,其元素是这样的特征元素的名称或索引。[0241]当聚合特征向量以生成用户简档时,应用112能够不同地处理密集和稀疏特征向量。根据密集向量计算的用户简档(或它的某一部分)保持为密集向量。从映射计算的用户简档(或其一部分)保持为映射,直到填充率足够高以致映射不再节省存储成本为止。在该点,应用112将稀疏向量表示转换为密集向量表示。[0242]在一些实施方式中,应用112能够将特征向量中的一些或特征向量的一些部分分类为稀疏特征向量,并且将一些分类为密集特征向量。应用112然后能够在生成用户简档和/或用户简档的份额时不同地处理每种类型的特征向量。[0243]如果聚合函数是求和,则根据集合计算的用户简档(或它的一部分)能够是映射。例如,每个特征向量能够具有类别特征“访问的域”。该聚合函数,即求和,将计算用户访问发布者域的次数。如果聚合函数是逻辑或(or),则从集合计算的用户简档(或它的某一部分)能够保持为集合。例如,每个特征向量能够具有类别特征“访问的域”。聚合函数,即逻辑or,将计算用户访问的所有发布者域,而不管访问频率。[0244]为了将用户简档发送到mpc集群130以用于ml训练和预测,应用112能够将用户简档的密集部分与支持秘密份额的任何标准密码库分割。为了在不显著地增加客户端设备上传带宽和计算成本的情况下分割用户简档的稀疏部分,能够使用函数秘密共享份额(fss)技术。在该示例中,内容平台150向用户简档的稀疏部分中的每个可能元素指派唯一索引,从1开始顺序地。假设索引的有效范围在[1,n](含边界)的范围内。[0245]对于由应用计算的用户简档中具有非零值pi的第i个元素,1≤i≤n,应用112能够创建具有以下属性的两个伪随机函数(prf)gi和hi:[0246]使用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。[0247]此外,应用112能够将用户简档p的密集部分分割成两个附加秘密份额[p1]和[p2]。应用112然后能够将[p1]和g发送到计算系统mpc1,并且将[p2]和h发送到mpc2。当n<<n时,传送g需要|g|×log2(n)×size_of_tag=n×log2(n)×size_of_tag个位,如果应用112以密集向量传送用户简档的稀疏部分,则这些位可能远小于所需的n位。[0248]当计算系统mpc1接收gi并且计算系统mpc2接收hi时,两个计算系统mpc1和mpc2能够独立地创建shamir的秘密份额。对于任何j,其中,1≤j≤n,计算系统mpc1创建关于二维坐标[1,2×gi(j)]的点并且计算系统mpc2创建关于二维坐标[-1,2×hi(j)]的点。如果两个计算系统mpc1和mpc2协作地构建通过两个点的线y=a0 a1×x,则形成关系14和15。[0249]关系14:2×gi(j)=a0 a1[0250]关系15:2×hi(j)=a0-a1[0251]如果将这两个关系加在一起,则导致2×gi(j) 2×hi(j)=(a0 a1) (a0-a1),这简化为a0=gi(j) hi(j)。因此,[1,2×gi(j)]和[-1,2×hi(j)]是稀疏阵列中的第i个非零元素的两个秘密份额,即pi。[0252]在机器学习训练过程的随机投影操作期间,计算系统mpc1能够独立地从[p1]和g两者组合其用户简档的秘密份额的向量。根据以上描述,已知|g|=n,其中n是用户简档的稀疏部分中的非零元素的数量。另外,已知用户简档的稀疏部分是n维,其中n<<n。[0253]假设g={g1,...gn}。对于第j维,其中,1≤j≤n,并且1≤k≤n,令类似地,令h={h1,...hn}。计算系统mpc2能够独立地计算容易证明[spj,1]和[spj,2]是spj的秘密份额,即,用户简档的原始稀疏部分中的第j元素的秘密值。[0254]令[sp1]={[sp1,1],...[spn,1]},即,在用户简档的稀疏部分的密集表示中的重构秘密份额。通过连结[p1]和[sp1],计算系统mpc1能够重构原始用户简档的全部秘密份额。计算系统mpc1然后能够随机地投影[p1]||[sp1]。类似地,计算系统mpc2能够随机地投影[p2]||[sp2]。在投影之后,上述技术能够被用于以类似的方式生成机器学习模型。[0255]图6是用于在系统600中生成用户简档的推断结果的示例性框架的概念性示意图。更特别地,该示意图描绘了随机投影逻辑610、第一机器学习模型620和最终结果计算逻辑640,它们共同构成系统600。在一些实施方式中,系统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个用户简档(pl)的至少一个真实标签(ll),其中,1≤j,k,l≤n等等。与被用于生成或训练第一机器学习模型620并且被包括作为加密标签数据集626的一部分的用户简档相关联的这种真实标签能够被加密,例如,被表示为秘密份额。另外,在一些示例中,最终结果计算逻辑640可以对应于结合执行用于生成推断结果的一个或多个操作而采用的逻辑,诸如以上参考图2中的步骤218描述的那些中的一个或多个。第一机器学习模型620和最终结果计算逻辑640能够被配置为采用包括二元分类、回归和/或多类分类技术的一个或多个推断技术。[0256]在图6的示例中,系统600被描绘为在推断时间执行一个或多个操作。能够采用随机投影逻辑610来将随机投影变换应用于用户简档609(pi)以获得变换后的用户简档619(pi′)。如通过采用随机投影逻辑610获得的变换后的用户简档619能够是明文。例如,随机投影逻辑610可以至少部分地用于利用随机噪声模糊特征向量,诸如包括或指示在用户简档609和其他用户简档中的特征向量,以保护用户隐私。[0257]第一机器学习模型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能够将softmax函数应用于其在确定至少一个预测标签629时接收和/或生成的数据。[0258]对于其中第一机器学习模型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的方式有关。[0259]对于其中第一机器学习模型620和最终结果计算逻辑640被配置为采用多类分类技术的实施方式,至少一个预测标签629可以对应于如由标签预测器624确定的预测标签的向量或集合。预测标签的这种向量或集合中的每个预测标签可以对应于相应类别,并且可以由标签预测器624至少部分地基于多数表决或频率来确定,在该频率,与k个最近邻用户简档中的用户简档的真实标签的向量或集合中的相应类别相对应的真实标签是如由标签预测器624确定的第一值(例如,一)的真实标签。与二元分类非常类似,在多类分类的情况下,k个最近邻用户简档中的用户简档的真实标签的每个向量或集合中的每个真实标签可以是零或一的二进制值。下面参考图9-11提供了附加细节,其与至少一个预测标签629的性质和其中可以为其中第一机器学习模型620和最终结果计算逻辑640被配置为采用多类分类技术的实施方式确定至少一个预测标签629的方式有关。[0260]最终结果计算逻辑640能够被用于基于至少一个预测标签629来生成推断结果649(resulti)。例如,最终结果计算逻辑640能够被用于相对一个或多个阈值来评估至少一个预测标签629,并且基于评估结果来确定推断结果649。在一些示例中,推断结果649可以指示与用户简档609相关联的用户是否要被添加到一个或多个用户组。在一些实施方式中,该至少一个预测标签629能够被包括或以其他方式指示在推断结果649中。[0261]在一些实施方式中,如图6所描绘的系统600能够表示如由诸如图1的mpc集群130的mpc集群实现的系统。因此,应当理解,在这些实施方式中的至少一些中,可以通过mpc集群的两个或更多个计算系统以安全和分布式方式提供本文中参照图6所示元件描述的一些或全部功能。例如,mpc集群的两个或更多个计算系统中的每一个可以提供本文中参考图6描述的功能的相应份额。在该示例中,两个或更多个计算系统可以并行操作并且交换秘密份额,以便协作地执行与本文中参考图6描述的那些操作类似或等效的操作。在上述实施方式中的至少一些中,用户简档609可以表示用户简档的份额。在这样的实施方式中,本文中参考图6描述的一个或多个其它数据或量也可以表示其秘密份额。应当理解,在提供本文中参考图6描述的功能时,出于保护用户隐私的目的,附加操作可以由两个或更多个计算系统执行。下面例如参考图12以及本文中的其它地方更详细地描述了上述实施方式中的一个或多个的示例。通常,在至少一些实施方式中,如下文和本文中其他地方描述的“份额”可以对应于秘密份额。[0262]虽然用于诸如k-nn模型622的k-nn模型的训练过程可以相对快速和简单,因为不需要标签的知识,但是在一些情况下,这种模型的质量能够留有改进的空间。因此,在一些实施方式中,可以利用下面进一步详细描述的系统和技术中的一个或多个来提升第一机器学习模型620的性能。[0263]图7是用于在系统700中利用提升的性能生成用户简档的推断结果的示例性框架的概念性示意图。在一些实施方式中,如图7所描绘的一个或多个元件609-629可以分别类似于或等效于如以上参考图6所描述的一个或多个元件609-629。与系统600非常类似,系统700包括随机投影逻辑610和第一机器学习模型620,并且被描绘为在推断时间执行一个或多个操作。[0264]然而,与系统600不同,系统700进一步包括第二机器学习模型730,其被训练并且随后被充分利用通过接收变换后的用户简档619作为输入并且生成指示至少一个预测标签629中的预测误差量的预测残差值739(residuei)作为输出来提升第一机器学习模型620的性能。例如,第二机器学习模型的准确度能够高于第一机器学习模型的准确度。使用第二机器学习模型730获得的预测残差值739能够是明文。能够采用包括在系统700中的最终结果计算逻辑740代替最终结果计算逻辑640,以基于至少一个预测标签629并且进一步基于预测残差值739生成推断结果749(resulti)。给定预测残差值739指示至少一个预测标签629中的预测误差量,依赖于至少一个预测标签629并且与预测残差值739合作可以使得最终结果计算逻辑740能够有效地补偿或抵消可以在至少一个预测标签629中被表达的至少一些误差,从而增强由系统700产生的推断结果749的准确度和可靠性中的一个或两个。[0265]例如,最终结果计算逻辑740能够被用于计算至少一个预测标签629和预测残差值739的总和。在一些示例中,最终结果计算逻辑740能够进一步被用于相对一个或多个阈值来评估这样的计算,并且基于评估的结果来确定推断结果749。在一些实施方式中,至少一个预测标签629和预测残差值739的这样计算出的总和能够被包括在或者以其他方式指示在图6中的推断结果649或图7中的推断结果749中。[0266]第二机器学习模型730可以包括或对应于深度神经网络(dnn)、梯度提升决策树和随机森林模型中的一个或多个。即,第一机器学习模型620和第二机器学习模型730可以在架构上彼此不同。在一些实施方式中,可以使用一个或多个梯度提升算法、一个或多个梯度下降算法或其组合来训练第二机器学习模型730。[0267]使用提升算法,其通常采用如在本文档中更详细描述的残差,较弱的机器学习模型,例如,k最近邻模型,能够被用于训练较强的机器学习模型,例如,dnn。与弱学习者的训练过程不同,强学习者的训练标签是弱学习者的残差。使用这样的残差能够训练更精确的强学习者。[0268]能够使用与用于训练第一机器学习模型620的用户简档的相同集合以及指示用于这样的用户简档集合的真实标签与使用第一机器学习模型620确定的用于这样的用户简档集合的预测标签之间的差异的数据来训练第二机器学习模型730。这样,在训练第一机器学习模型620的过程的至少一部分被执行之后,训练第二机器学习模型730的过程被执行。被用于训练第二机器学习模型730的数据,诸如指示使用第一机器学习模型620确定的预测标签与真实标签之间的差异的数据,可以通过评估如训练的第一机器学习模型620的性能的过程来生成或以其他方式获得。下面参考图10-11更详细地描述这种过程的示例。[0269]如上所述,可以至少部分地采用如系统600和700中包括的随机投影逻辑610利用随机噪声模糊特征向量,诸如包括或指示在用户简档609和其他用户简档中的特征向量,以保护用户隐私。为了实能够进行器学习训练和预测,通过随机投影逻辑610应用的随机投影变换需要保持特征向量之间的距离的一些观念。能够在随机投影逻辑610中采用的随机投影技术的一个示例包括simhash技术。该技术和上面描述的其它技术能够用于模糊特征向量,同时保持这些特征向量之间的余弦距离。[0270]虽然特征向量之间的余弦距离的保持可以证明对于训练和使用k-nn模型,诸如第一机器学习模型620的k-nn模型622,是足够的,但是对于训练和使用其它类型的模型,诸如第二机器学习模型730的一个或多个模型,可能不太理想。因此,在一些实施方式中,可以期望在随机投影逻辑610中采用随机投影技术,其能够用于模糊特征向量同时保持这样的特征向量之间的欧几里得距离。这种随机投影技术的一个示例包括johnson-lindenstrauss(j-l)技术或变换。[0271]如上所述,j-l变换的一个属性是它利用概率保持特征向量之间的欧几里得距离。另外,j-l变换是有损耗的、不可逆的,并且包含随机噪声。这样,即使mpc集群的两个或更多个服务器或计算系统共谋,它们也将不能从使用j-l变换技术获得的用户简档(pi′)的变换后的版本获得原始用户简档(pi)的精确重构。这样,出于在本文中描述的一个或多个系统中变换用户简档的目的而采用j-l变换技术可以用于提供用户隐私保护。此外,j-l变换技术能够被用作降维技术。这样,出于在本文中描述的一个或多个系统中变换用户简档的目的而采用j-l变换技术的一个有利副产品是,它实际上可以用于显著地增加后续处理步骤能够由这样的系统执行的速度。[0272]通常,给定任意小的ε>0,存在j-l变换,其能够被应用于变换pi到pi′,pj到pj′,对于任意1≤i,j≤n,其中n是训练示例的数量,并且:[0273](1-ε)×|pi-pj|2≤|p′i-p′j|2≤(1 ε)×|pi-pj|2即,应用j-l变换可以将两个任意选择的训练示例之间的欧几里得距离改变不超过小分数ε。至少由于前述原因,在一些实施方式中,j-l变换技术可以在如本文中所描述的随机投影逻辑610中被采用。[0274]在一些实施方式中,如图7所描绘的系统700能够表示如由诸如图1的mpc集群130的mpc集群实现的系统。因此,应当理解,在这些实施方式中的至少一些中,可以通过mpc集群的两个或更多个计算系统以安全和分布式方式提供本文中参照图7所示的元件描述的一些或全部功能。例如,mpc集群的两个或更多个计算系统中的每一个可以提供在本文中参考图7描述的功能的相应份额。在该示例中,两个或更多个计算系统可以并行操作并且交换秘密份额,以便协作地执行与在本文中参考图7描述的那些操作类似或等效的操作。在上述实施方式中的至少一些中,用户简档609可以表示用户简档的秘密份额。在这样的实施方式中,本文中参考图7描述的其它数据或量中的一个或多个也可以表示其秘密份额。应当理解,在提供本文中参考图7描述的功能时,出于保护用户隐私的目的,附加操作可以由两个或更多个计算系统执行。下面例如参考图12以及本文中的其它地方更详细地描述了上述实施方式中的一个或多个的示例。[0275]图8是图示用于在mpc集群处利用例如更高准确度的提升性能生成用户简档的推断结果的示例过程800的流程图。参考图8描述的一个或多个操作可以例如在推断时间被执行。过程800的操作能够例如由诸如图1的mpc集群130的mpc集群实现,并且还能够对应于以上参照图7描述的操作中的一个或多个。参照图8描述的操作中的一个或多个可以,例如,在推断时间被执行。[0276]在一些实施方式中,本文中参考图8中所示的元件描述的一些或全部功能可以通过诸如图1的mpc集群130的mpc集群的两个或更多个计算系统以安全和分布式的方式被提供。例如,mpc集群的两个或更多个计算系统中的每一个可以提供本文中参考图8描述的功能的相应份额。在该示例中,两个或更多个计算系统可以并行操作并且交换秘密份额,以便协作地执行与本文中参考图8描述的那些操作类似或等效的操作。应当理解,在提供本文中参考图8描述的功能时,出于保护用户隐私的目的,附加操作可以由两个或更多个计算系统执行。下面例如参考图12以及本文中的其它地方更详细地描述了上述实施方式中的一个或多个的示例。过程800的操作还能够被实现为存储在可以是非暂时性的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理装置执行指令能够使一个或多个数据处理装置执行过程800的操作。[0277]mpc集群接收与特定用户简档相关联的推断请求(步骤802)。例如,这可以对应于与结合mpc集群130从应用112接收推断请求而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图1所述。[0278]mpc集群基于特定用户简档、使用多个用户简档训练的第一机器学习模型、以及多个用户简档的多个真实标签中的一个或多个来确定特定用户简档的预测标签(步骤804)。例如,这可以对应于与结合第一机器学习模型620用于获得至少一个预测标签629而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6-7所描述的。[0279]在该示例中,多个用户简档的多个真实标签可以对应于被包括作为加密标签数据626的一部分的真实标签,其是用于训练第一机器学习模型620的多个用户简档的真实标签。来自多个真实标签中的一个或多个真实标签可以包括用于通过第一机器学习模型620的k-nn模型622标识的k个最近邻用户简档中的每一个的至少一个真实标签,特定用户简档的预测标签的确定基于该一个或多个真实标签。在一些示例中,多个真实标签中的每一个被加密,如图6-7的示例中的情况。其中k个最近邻用户简档的真实标签能够被用于确定预测标签的各种方法中的一些如以上被详细描述。如以上显而易见的,利用这种真实标签来确定预测标签的方法或方式可以至少部分地取决于被采用的推断技术的类型(例如,回归技术、二元分类技术、多类分类技术等)。[0280]基于特定用户简档和使用多个用户简档以及指示所述多个用户简档的多个真实标签与使用第一机器学习模型为所述多个用户简档确定的多个预测标签之间的差异的数据来训练的第二机器学习模型,mpc集群确定指示预测标签中的预测误差的预测残差值(步骤806)。例如,这可以对应于与结合第二机器学习模型730用于获得预测残差值739(residuei)而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图7所述。因此,在一些实施方式中,第二机器学习模型包括深度神经网络、梯度提升决策树和随机森林模型中的至少一个。[0281]mpc集群基于预测标签和预测残差值来生成表示推断结果的数据(步骤808)。例如,这可以对应于与结合最终结果计算逻辑740用于生成推断结果749(resulti)而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图7所述。因此,在一些示例中,推断结果包括或对应于预测标签和预测残差值的总和。[0282]mpc集群将表示推断结果的数据提供给客户端设备(步骤810)。例如,这可以对应于与结合mpc集群130向应用112在其上运行的客户端设备110提供推断结果而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图1-2所描述的。[0283]在一些实施方式中,过程800进一步包括其中mpc集群将变换应用于特定用户简档以获得特定用户简档的变换后的版本的一个或多个操作。在这些实施方式中,为了确定预测标签,mpc集群至少部分地基于特定用户简档的变换后的版本来确定预测标签。例如,这可以对应于与结合随机投影逻辑610用于将随机投影变换应用于用户简档609(pi)以获得变换后的用户简档619(pi′)而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6-7所描述的。因此,在一些示例中,上述变换可以是随机投影。此外,在这些示例中的至少一些中,上述随机投影可以是johnson-lindenstrauss(j-l)变换。在上述实施方式中的至少一些中,为了确定预测标签,mpc集群提供特定用户简档的变换后的版本作为第一机器学习模型的输入,以获得特定用户简档的预测标签作为输出。例如,这可以对应于与结合第一机器学习模型620接收变换后的用户简档619(pi′)作为输入并且响应于其生成至少一个预测标签629而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6-7所描述的。[0284]如上所述,在一些实施方式中,第一机器学习模型包括k最近邻模型。在这些实施方式中的至少一些中,为了确定预测标签,mpc集群至少部分地基于特定用户简档和k最近邻模型来标识多个用户简档中被认为与特定用户简档最类似的k个最近邻用户简档,并且至少部分地基于该k个最近邻用户简档中的每一个的真实标签来确定预测标签。在一些这样的实施方式中,为了至少部分地基于k个最近邻用户简档中的每一个的真实标签来确定预测标签,mpc集群确定k个最近邻用户简档的真实标签的总和。例如,这可以对应于与结合第一机器学习模型620用于在其中采用了一个或多个回归和/或二元分类技术的一个或多个实施方式中获得至少一个预测标签629而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6-7所描述的。[0285]在上述实施方式中的至少一些中,为了至少部分地基于k个最近邻用户简档中的每一个的真实标签来确定预测标签,mpc集群至少部分地基于分别与类别集合相对应的k个最近邻用户简档中的每一个的真实标签集合来确定预测标签集合,并且为了确定预测标签集合,mpc集群针对该集合中的每个类别执行操作。这样的操作能够包括其中mpc集群确定多数表决或频率的一个或多个操作,在该频率,与k个最近邻用户简档中的用户简档的真实标签集合中的类别相对应的真实标签是第一值的真实标签。例如,这可以对应于与结合第一机器学习模型620用于在其中采用了一个或多个多类分类技术的一个或多个实施方式中获得至少一个预测标签629而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6-7所描述的。[0286]图9是图示用于准备和执行用于提升在mpc集群处的推断性能的第二机器学习模型的训练的示例过程900的流程图。在一些实施方式中,过程900的操作能够,例如,通过诸如图1的mpc集群130的mpc集群实现并且也能够对应于以上参照图2、4、6和7所描述的一个或多个操作。在一些实施方式中,可以通过诸如图1的mpc集群130的mpc集群的两个或更多个计算系统以安全和分布式方式提供本文中参考图9中所示的元件描述的一些或全部功能。例如,mpc集群的两个或更多个计算系统中的每以个可以提供本文中参考图9所描述的功能的相应秘密份额。在该示例中,两个或更多个计算系统可以并行操作并且交换秘密份额,以便协作地执行与本文中参考图9描述的那些操作类似或等效的操作。应当理解,在提供本文中参考图9描述的功能时,出于保护用户隐私的目的,附加操作可以由两个或更多个计算系统执行。下面例如参考图12以及本文中的其它地方更详细地描述了上述实施方式中的一个或多个的示例。过程900的操作还能够被实现为存储在可以是非暂时性的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理装置执行指令能够使一个或多个数据处理装置执行过程900的操作。[0287]mpc集群使用多个用户简档来训练第一机器学习模型(步骤910)。例如,第一机器学习模型可以对应于第一机器学习模型620,如上所述。类似地,被用于训练第一机器学习模型的多个用户简档可以对应于被用于训练第一机器学习模型620的数量n的用户简档,如上所述,其真实标签可以被包括在加密标签数据集合626中。[0288]mpc集群评估使用多个用户简档训练的第一机器学习模型的性能(步骤920)。与这种评估可能牵涉什么有关的附加细节在下面参考图10-11提供。[0289]在一些实施方式中,在这样的评估中生成的数据能够由mpc集群或与mpc集群通信的另一系统利用,以确定诸如第一机器学习模型620的第一机器学习模型的性能是否例如通过诸如第二机器学习模型730的第二机器学习模型使提升有必要。在这种评估中生成的能够以这种方式使用的数据的示例将在下面参考图10的简档和残差数据集合1070和图11的步骤1112进一步详细描述。[0290]例如,在一些情况下,mpc集群或与mpc集群通信的另一系统可以基于在这样的评估中生成的数据来确定第一机器学习模型的性能(例如,预测准确度)满足一个或多个阈值,并且因此不使提升有必要。在这种情况下,mpc集群可以基于该确定来抑制训练和实现第二机器学习模型。然而,在其他情况下,mpc集群或与mpc集群通信的另一系统可以基于在这样的评估中生成的数据来确定第一机器学习模型的性能(例如,预测准确度)满足一个或多个阈值,并且因此确实使提升有必要。在这些情况下,mpc集群可以接收功能的升级,该升级与如以上参考图6-7所描述的基于该确定从系统600转换到系统700时获得的升级相当。为了接收这种功能上的升级,mpc集群可以继续进行训练和实现第二机器学习模型,诸如第二机器学习模型730,以用于使用残差值来提升第一机器学习模型的性能,例如,准确度。在一些示例中,在这种评估中生成的数据可以另外或替代地被提供给与mpc集群相关联的一个或多个实体。在一些这样的示例中,一个或多个实体可以做出它们自己的关于第一机器学习模型的性能是否有必要提升的确定,并且相应地继续进行。其它配置是可能的。[0291]mpc集群使用包括在评估第一机器学习模型的性能时生成的数据的数据集合来训练第二机器学习模型(步骤930)。这种数据的示例能够包括以下参考图10的简档和残差数据集合1070以及图11的步骤1112所描述的数据。[0292]在一些实施方式中,过程900进一步包括附加步骤912-916,下面将对其进行更详细的描述。在这样的实施方式中,步骤912和916在步骤920和930之前执行,但是能够在步骤910之后执行。[0293]图10是用于评估系统1000中的第一机器学习模型的性能的示例性框架的概念性示意图。在一些实施方式中,如图10所描绘的一个或多个元件609-629可以分别类似于或等效于如以上参考图6-7所描述的一个或多个元件609-629。在一些示例中,本文中参照图10描述的操作中的一个或多个可以对应于以上参照图9的步骤920描述的那些操作中的一个或多个。[0294]然而,与系统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可以对应于上述值的差。[0295]残差值1069能够与变换后的用户简档619相关联地被存储在例如存储器中,作为简档和残差数据集合1070的一部分。在一些示例中,简档和残差数据集合1070中包括的数据可以对应于如以上参考图9的步骤930所描述的数据和如下参考图11的步骤1112所描述的数据中的一个或两者。在一些实施方式中,残差值1069为秘密份额的形式以保护用户隐私和用户安全性。[0296]在一些实施方式中,如图10所描绘的,系统1000能够表示如由诸如图1的mpc集群130的mpc集群实现的系统。因此,应当理解,在这些实施方式中的至少一些中,可以通过mpc集群的两个或更多个计算系统以安全和分布式方式提供本文中参照图10所示的元件描述的一些或全部功能。例如,mpc集群的两个或更多个计算系统中的每以个可以提供本文中参考图10所描述的功能的相应份额。在该示例中,两个或更多个计算系统可以并行操作并且交换秘密份额,以便协作地执行与本文中参考图10所描述的操作类似或等效的操作。在上述实施方式中的至少一些中,用户简档690可以表示用户简档的秘密份额。在这样的实施方式中,本文中参考图10所描述的其它数据或量中的一个或多个也可以表示其秘密份额。应当理解,在提供本文中参考图10所描述的功能时,出于保护用户隐私的目的,附加操作可以由两个或更多个计算系统执行。下面例如参考图12以及本文中的其它地方更详细地描述了上述实施方式中的一个或多个的示例。[0297]图11是图示用于评估mpc集群处的第一机器学习模型的性能的示例过程1100的流程图。过程1100的操作能够例如通过诸如图1的mpc集群130的mpc集群实现并且也能够对应于以上参照图9-10所描述的一个或多个操作。在一些示例中,本文中参照图11所描述的操作中的一个或多个可以对应于以上参照图9的步骤920所描述的那些操作中的一个或多个。在一些实施方式中,本文中参照图11所描述的功能中的一些或全部可以通过诸如图1的mpc集群130的mpc集群中的两个或更多个计算系统以安全和分布式方式来提供。例如,mpc集群的两个或更多个计算系统中的每一个可以提供本文中参考图11所描述的功能的相应份额。在该示例中,两个或更多个计算系统可以并行操作并且交换秘密份额,以便协作地执行与本文中参照图11所描述的那些操作类似或等效的操作。应当理解,在提供本文中参考图11所描述的功能时,出于保护用户隐私的目的,附加操作可以由两个或更多个计算系统执行。下面例如参考图12以及本文中的其它地方更详细地描述了上述实施方式中的一个或多个的示例。过程1100的操作还能够被实现为存储在可以是非暂时性的一个或多个计算机可读介质上的指令,并且由一个或多个数据处理装置执行指令能够使一个或多个数据处理装置执行过程1100的操作。[0298]mpc集群选择第i个用户简档和至少一个对应的真实标签([pi,li]),其中,i最初被设置为值一(步骤1102-1104),并且通过递归而递增,直到i等于n为止(步骤1114-1116),其中,n等于被用于训练第一机器学习模型的用户简档的总数。换句话说,过程1100包括为用于训练第一机器学习模型的n个用户简档中的每个用户简档执行如下所描述的步骤1106-1112。[0299]在一些实施方式中,第i个用户简档可以表示用户简档的秘密份额。在这样的实施方式中,本文中参考图11所描述的一个或多个其它数据或量也可以表示其份额。[0300]mpc集群将随机投影应用于第i个用户简档(pi),以获得第i个用户简档(pi′)的变换后的版本(步骤1106)。例如,这可以对应于与结合随机投影逻辑610用于将随机投影变换应用于用户简档609(pi)以获得变换后的用户简档619(pi′)而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图10所描述的。[0301]mpc集群将第i个用户简档(pi′)的变换后的版本作为输入提供给第一机器学习模型,以获得用于第i个用户简档(pi′)的变换后的版本的至少一个预测标签作为输出(步骤1108)。例如,这可以对应于与结合第一机器学习模型620接收变换后的用户简档619(pi′)作为输入并且响应于其生成至少一个预测标签629而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图10所描述的。[0302]mpc集群至少部分地基于用于第i个用户简档(pi)的至少一个真实标签(li)和至少一个预测标签来计算残差值(residuei)(步骤1110)。例如,这可以对应于与结合残差计算逻辑1060用于至少部分地基于至少一个真实标签1059(li)和至少一个预测标签629来计算残差值1069(residuei)而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图10所描述的。[0303]mpc集群与第i个用户简档(pi′)的转换版本相关联地存储计算的残差值(residuei)(步骤1112)。例如,这可以对应于结合残差值1069(residuei)例如与变换后的用户简档619(pi′)相关联地存储在存储器中作为简档和残差数据集合1070的一部分而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图10所描述的。在一些示例中,该数据可以对应于如以上参照图9的步骤930所描述的数据。这样,在这些示例中,在该步骤中存储的数据中的一些或全部可以被用作用于训练诸如第二机器学习模型730的第二机器学习模型的数据。[0304]再次参考步骤1108-1110,对于其中第一机器学习模型被配置为采用回归技术的至少一些实施方式,mpc集群在步骤1108处获得的至少一个预测标签能够对应于表示数值的单个预测标签。在这些实施方式中,mpc集群在步骤1110计算的残差值(residuei)能够对应于指示至少一个真实标签(li)和至少一个预测标签之间的值的差的数值。在上述实施方式中的至少一些中,在步骤1108,第一机器学习模型标识被认为与第i个用户简档(pi′)的变换后的版本最类似的数量k个最近邻用户简档,标识k个最近邻用户简档中的每一个的至少一个真实标签,计算k个最近邻用户简档的真实标签的总和,并且将该总和用作至少一个预测标签如上所述,如在该步骤中确定的k个最近邻用户简档的真实标签的总和实际上等效于如通过因子k缩放的k个最近邻用户简档的真实标签的平均值。在一些示例中,该总和可以被用作至少一个预测标签而不是k个最近邻用户简档的真实标签的平均值,使得不需要执行除法操作。给定至少一个预测标签实际上等效于如通过因子k缩放的的k个最近邻用户简档的真实标签的平均值,对于其中第一机器学习模型被配置为采用回归技术的至少一些实施方式,在步骤1110由mpc集群执行的计算由以下给出:[0305][0306]类似地,对于其中第一机器学习模型被配置为采用二元分类技术的至少一些实施方式,mpc集群在步骤1108获得的至少一个预测标签能够对应于单个预测标签,该单个预测标签例如表示至少部分地基于k个最近邻用户简档的真实标签的总和确定的数值。如以上参考其中第一机器学习模型被配置为采用回归技术的实施方式所提及的,这种k个最近邻用户简档的真实标签的总和实际上等效于如通过因子k缩放的k个最近邻用户简档的真实标签的平均值。[0307]然而,与其中第一机器学习模型被配置为采用回归技术的实施方式不同,在其中第一机器学习模型被配置为采用二元分类技术的实施方式中,k个最近邻用户简档的真实标签中的每一个可以是零或一的二进制值,使得前述平均值可以是在零和一之间的数值(例如,0.3、0.8等)。尽管mpc集群在其中采用二元分类技术的实施方式中可以计算并且使用k个最近邻用户简档的真实标签的总和(sum_of_labels)作为在步骤1108的至少一个预测标签并且使用以上参考采用回归技术的实施方式所描述的公式来获得在步骤1110的数学上可行的残差值(residuei),但是这样的残差值(residuei)可能潜在地造成隐私问题,例如,稍后当用于确定是否有必要提升第一机器学习模型时或稍后当用于训练诸如第二机器学习模型730的第二机器学习模型时。更具体地,因为k个最近邻用户简档的真实标签中的每个真实标签可以是零或一的二进制值,所以在采用二元分类技术的实施方式中,这样的残差值(residuei)的符号可以潜在地指示至少一个真实标签(li)的值,并且因此可以潜在地由可以处理指示在步骤1112的或之后的在某一容量中的残差值(residuei)的数据的一个或多个系统和/或实体推断。[0308]例如,考虑其中二元分类技术要被采用并且li=1、k=15以及的第一示例。在该第一示例中,至少一个预测标签对应于k个最近邻用户简档的真实标签的总和(sum_of_labels),其实际上等效于如通过因子k缩放的k个最近邻用户简档的真实标签的平均值,其中前述平均值是非整数值0.8。如果在该第一示例中利用与上述相同的公式来计算残差值(residuei),例如,在步骤1110,则该第一示例中的残差值(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相关。[0309]为了理解为什么可能根据residuei推断li,考虑其中用于训练其真实标签等于0的第一机器学习模型的用户简档的残差被假设为满足具有符号的正态分布的示例,其中μ0和σ0分别是等于0(零)并且与被用于训练第一机器学习模型的用户简档相关联的真实标签的预测误差(例如,残差值)的正态分布的平均值和标准差,并且用于训练其标签等于1的示例的残差被假设为满足其中μ1和σ1分别是等于1(一)并且与用于训练第一机器学习模型的用户简档相关联的真实标签的预测误差的正态分布的平均值和标准差。在这样的假设下,清楚的是μ0<0,μ1>0,并且不保证σ0=σ1。[0310]鉴于上述内容,如下所述,在一些实施方式中,能够采用不同方法来执行与用于其中采用二元分类技术的实施方式的步骤1108-1110相关联的一个或多个操作。在一些实施方式中,为了强制两类训练示例的残差具有相同正态分布,mpc集群能够将变换应用于k个最近邻用户简档的真实标签的总和(sum_of_labels),使得基于li和所计算的残差值不能被用于预测li。当应用于初始预测标签(例如,在二元分类的情况下的真实标签的总和、在多类分类的情况下的真实标签的多数表决等)时,变换f能够用于移除可能存在于第一机器学习模型的预测中的偏差。为了实现这样的目标,变换f需要满足以下属性:[0311](i)f(μ0)=0[0312](ii)f(μ1)=1[0313](iii)σ0×f′(μ0)=σ1×f′(μ1)[0314]其中f′是f的导数。[0315]在这种实施方式中可以采用的具有上述属性的变换的一个示例是形状的二次多项式变换f(x)=a2x2 a1x a0,其中f′(x)=2a2x a1。在一些示例中,mpc集群能够基于来自如下三个约束的三个线性等式来确定性地找到系数值{a2,a1,a0}:[0316]令[0317](i)a′2=σ0-σ1[0318](ii)a′1=2(σ1μ1-σ0μ0)[0319](iii)a′0=μ0(μ0σ0 μ0σ1-2μ1σ1)[0320]在这些示例中,mpc集群能够将系数{a2,a1,a0}计算为:{a2,a1,a0}=d×{a2′,a1′,a0′}。mpc集群能够例如在秘密份额上使用加法和乘法运算来计算{a2′,a1′,a0′}和d。该变换f(x)=a2x2 a1x a0围绕以下也是镜像对称的:[0321]为了计算上述系数和取决于其的其它值,mpc集群可以首先估计分别等于零、μ0和σ0的真实标签的预测误差(例如,残差值)的概率分布的平均值和标准差,以及分别等于一、μ1和σ1的真实标签的预测误差(例如,残差值)的概率分布的平均值和标准差。在一些示例中,除了或代替标准差σ0,可以确定等于零的真实标签的预测误差的概率分布的方差σ02,并且除了或代替标准差σ1,可以确定等于一的真实标签的预测误差的概率分布的方差σ12。[0322]在一些实例中,预测误差的给定概率分布可以对应于正态分布,并且在其他实例中,预测误差的给定概率分布可以对应于除了正态分布之外的概率分布,诸如伯努利分布、均匀分布、二项式分布、超几何分布、指数分布等。在这样的其他实例中,被估计的分布参数在一些示例中可以包括除均值、标准差和方差之外的参数,诸如特定于预测误差的给定概率分布的特性的一个或多个参数。例如,为对应于均匀分布的预测误差的给定概率分布估计的分布参数可以包括最小和最大值参数(a和b),而为对应于指数分布的预测误差的给定概率分布估计的分布参数可以包括至少一个速率参数(λ)。在一些实施方式中,可以执行与结合图11的过程1110执行的一个或多个操作类似的一个或多个操作,使得指示第一机器学习模型的预测误差的数据能够被获得,并且被用于估计这样的分布参数。在上述实施方式中的至少一些中,指示第一机器学习模型的预测误差的数据能够被获得并且被利用以(i)从若干不同类型的概率分布(例如,正态分布、伯努利分布、均匀分布、二项式分布、超几何分布、指数分布等)中标识与由数据指示的预测误差的给定子集的概率分布的形状最紧密对应的特定类型的概率分布,以及(ii)根据所标识的特定类型的概率分布来估计由数据指示的预测误差的给定子集的概率分布的一个或多个参数。其它配置也是可能的。[0323]再次参考其中估计的分布参数包括均值和标准差的示例,在这些示例中,为了估计等于零的真实标签的这种分布参数,mpc集群能够计算:[0324][0325][0326]其中:[0327][0328]count0=∑i(1-li)[0329][0330]在一些示例中,mpc集群基于方差σ02计算标准偏差σ0,例如,通过计算方差σ02的平方根。类似地,为了估计这种等于一的真实标签的分布参数,mpc集群能够计算:[0331][0332][0333]其中:[0349](ii)a′1=2(σ1μ1-σ0μ0)[0350](iii)a′0=μ0(μ0σ0 μ0σ1-2μ1σ1)[0351]注意,用于二元分类和多类分类的变换几乎相同,唯一的区别在于,在具有k-nn模型的多类分类中,在一些实施方式中,d的值能够被放大因子k倍。[0352]再次参考图9,在一些实施方式中,步骤912-916中的一个或多个可以对应于上述操作中的一个或多个,其中,用于定义至少一个函数或变换的方法能够由mpc集群采用,使得基于li和计算的残差值不能被用于预测li。具体地,可以针对其中一个或多个二元分类技术和/或多类分类技术要被采用的实施方式来执行步骤912和916。如上所述,步骤912和916在步骤920和930之前被执行,并且可以在步骤910之后被执行。[0353]mpc集群基于多个用户简档的多个真实标签来估计分布参数集合(步骤912)。例如,这可以对应于与结合mpc集群基于与步骤910中利用的相同用户简档相关联的真实标签来计算如上所描述的参数μ0、σ02、σ0、μ1、σ12和σ1中的一个或多个而执行的一个或多个操作类似或等效的一个或多个操作。[0354]mpc集群基于估计的分布参数集合来推导函数(步骤914)。例如,这可以对应于与结合mpc集群计算有效地定义函数的参数或系数(诸如{a2,a1,a0})而执行的一个或多个操作类似或等效的一个或多个操作。因此,在一些实施方式中,为了在步骤914中推导函数,mpc集群推导函数的参数集合,例如,{a2,a1,a0}。[0355]mpc集群配置第一机器学习模型以在给定用户简档作为输入的情况下生成初始预测标签并且将所推导的函数应用于初始预测标签以生成用户简档的预测标签作为输出(步骤916)。例如,这可以对应于与结合mpc集群配置第一机器学习模型使得继续第一机器学习模型响应于输入(在二元分类的情况下)将对应变换f应用于k个最近邻用户简档的真实标签的总和而执行的一个或多个操作类似或等效的一个或多个操作。在多类分类的情况下,变换f可以表示w个不同函数中的一个,mpc集群将第一机器学习模型配置为应用于与w个不同类别相对应的向量或集合中的w个不同值中的相应一个。如上所述,这w个不同值中的每一个可以对应于频率值。[0356]在已经执行了步骤912-916并且已经以这样的方式配置了第一机器学习模型的情况下,在步骤920中生成并且随后例如在步骤930中利用的数据可以不被用于预测真实标签(li)。[0357]再次参考图8,在一些实施方式中,过程800可以包括对应于以上参考图9-11所描述的操作中的一个或多个的一个或多个步骤。[0358]在一些实施方式中,过程800进一步包括其中mpc集群评估第一机器学习模型的性能的一个或多个操作。例如,这可以对应于与结合mpc集群执行如以上参考图9所描述的步骤920而执行的一个或多个操作类似或等效的一个或多个操作。在这些实施方式中,为了评估第一机器学习模型的性能,对于多个用户简档中的每一个,mpc集群至少部分地基于以下来确定用户简档的预测标签:(i)用户简档、(ii)第一机器学习模型、以及(iii)多个用户简档的多个真实标签中的一个或多个,并且至少部分地基于为用户简档确定的预测标签和包括在多个真实标签中的用户简档的真实标签来确定指示预测标签中的预测误差的用户简档的残差值。例如,这可以对应于与结合mpc集群执行如以上参考图11所描述的步骤1108-1106而执行的一个或多个操作类似或等效的一个或多个操作。另外,在这些实施方式中,过程800进一步包括其中mpc集群在评估第一机器学习模型的性能时使用指示为多个用户简档确定的残差值的数据来训练第二机器学习模型的一个或多个操作。例如,这可以对应于与结合mpc集群执行如以上参考图9所描述的步骤930而执行的一个或多个操作类似或等效的一个或多个操作。[0359]在上述实施方式中的至少一些中,用户简档的残差值指示为用户简档确定的预测标签与用户简档的真实标签之间的值的差。例如,这可以是其中采用回归技术的示例的情况。[0360]在上述实施方式中的至少一些中,在mpc集群评估第一机器学习模型的性能之前,过程800进一步包括其中mpc集群至少部分地基于多个真实标签来推导函数并且配置第一机器学习模型在给定用户简档作为输入的情况下使用该函数来生成用户简档的预测标签作为输出的一个或多个操作。例如,这可以对应于与结合mpc集群执行如以上参考图9所描述的步骤914-916而执行的一个或多个操作类似或等效的一个或多个操作。因此,在一些实施方式中,为了在该步骤推导函数,mpc集群推导函数的参数集合,例如,{a2,a1,a0}。[0361]在上述实施方式中的至少一些中,过程800还包括其中mpc集群至少部分基于多个真实标签来估计分布参数集合的一个或多个操作。在这样的实施方式中,为了至少部分地基于多个真实标签来推导函数,mpc集群至少部分地基于估计的分布参数集合来推导函数。例如,这可以对应于与结合mpc集群执行如以上参考图9所描述的步骤912-914而执行的一个或多个操作类似或等效的一个或多个操作。因此,上述分布参数集合能够包括多个真实标签中的第一值的真实标签的预测误差的概率分布的一个或多个参数,例如,多个真实标签中的第一值的真实标签的预测误差的正态分布的均值(μ0)和方差(σ0),以及多个真实标签中的第二值的真实标签的预测误差的概率分布的一个或多个参数,例如,多个真实标签中的第二不同值的真实标签的预测误差的正态分布的均值(μ1)和方差(σ1)。如上所述,在一些示例中,上述分布参数集合能够包括其他类型的参数。此外,在上述实施方式中的至少一些中,函数是二次多项式函数,例如f(x)=a2x2 a1x a0,其中f′(x)=2a2x a1。[0362]在上述实施方式中的至少一些中,为了将第一机器学习模型配置为在给定用户简档作为输入的情况下使用函数来生成用户简档的预测标签作为输出,mpc集群将第一机器学习模型配置为在给定用户简档作为输入的情况下:(i)生成用户简档的初始预测标签,以及(ii)将函数应用于用户简档的初始预测标签以生成用户简档的预测标签作为输出。例如,对于其中采用二元分类技术的示例,这可以对应于其中mpc集群将第一机器学习模型配置为在给定用户简档作为输入的情况下:(i)计算k个最近邻用户简档的真实标签的总和(sum_of_labels)以及(ii)将函数(变换f)应用于用户简档的初始预测标签以生成用户简档的预测标签作为输出的一个或多个操作。对于采用多类分类技术的情况可以执行类似的操作。在一些实施方式中,为了将函数应用于用户简档的初始预测标签,mpc集群应用如基于例如{a2,a1,a0}的所推导的参数集合定义的函数。在一些示例中,为了至少部分地基于k个最近邻用户简档中的每一个的真实标签来确定预测标签,mpc集群确定k个最近邻用户简档的真实标签的总和。例如,这可能是其中采用回归或二元分类技术的实施方式的情况。在上述实施方式中的一些中,特定用户简档的预测标签可以对应于k个最近邻用户简档的真实标签的总和。例如,这可以是其中采用回归分类技术的实施方式的情况在其他这样的示例中,为了至少部分地基于k个最近邻用户简档中的每一个的真实标签来确定预测标签,mpc集群将函数应用于k个最近邻用户简档的真实标签的总和,以生成特定用户简档的预测标签。例如,这可以是其中采用二元分类技术的实施方式的情况[0363]如上所述,在上述实施方式中的至少一些中,为了至少部分地基于k个最近邻用户简档中的每一个的真实标签来确定预测标签,mpc集群至少部分地基于分别与类别集合相对应的k个最近邻用户简档中的每一个的真实标签集合来确定预测标签集合,并且为了确定预测标签集合,mpc集群针对该集合中的每个类别执行操作。这样的操作能够包括其中mpc集群确定与k个最近邻用户简档中的用户简档的真实标签集合中的类别相对应的真实标签是第一值的真实标签的频率的一个或多个操作。例如,这可以对应于与结合第一机器学习模型620用于在其中采用一个或多个多类分类技术的一个或多个实施方式中获得至少一个预测标签629而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6-7所描述的。在上述实施方式中的至少一些中,为了确定预测标签集合,对于该集合中的每个类别,mpc集群将与该类别对应的函数应用于确定的频率以生成特定用户简档的与该类别相对应的预测标签。例如,相应函数可以对应于由mpc集群为w个不同类别推导的w个不同函数中的一个,如以上参考图9的步骤914所描述的。[0364]图12是图示用于在mpc集群的计算系统处利用提升的性能生成用户简档的推断结果的示例过程1200的流程图。参考图12所描述的操作中的一个或多个可以例如在推断时间被执行。过程1200的操作中的至少一些操作能够例如由mpc集群的第一计算系统实现,诸如图1的mpc集群130的mpc1,并且还能够对应于以上参考图8所描述的操作中的一个或多个操作。然而,在过程1200中,一个或多个操作能够在秘密份额上被执行,以便提供用户数据隐私保护。通常,如下文和本文中其他地方描述的“份额”可以在至少一些实施方式中对应于秘密份额。其它配置是可能的。参考图12所描述的操作中的一个或多个可以例如在推断时间被执行。[0365]mpc集群的第一计算系统接收与给定用户简档相关联的推断请求(步骤1202)。例如,这可以对应于与结合mpc集群130的mpc1从应用112接收推断请求而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图1所描述的。在一些实施方式中,这可以对应于与结合如以上参考图8所描述的步骤802而执行的一个或多个操作类似或等效的一个或多个操作。[0366]mpc集群的第一计算系统确定给定用户简档的预测标签(步骤1204-1208)。在一些实施方式中,这可以对应于与结合如以上参考图8所描述的步骤804而执行的一个或多个操作类似或等效的一个或多个操作。然而,在步骤1204和1208中,能够在秘密份额上执行给定用户简档的预测标签的确定,以便提供用户数据隐私保护。为了确定给定用户简档的预测标签,mpc集群的第一计算系统(i)至少部分地基于给定用户简档的第一份额、使用多个用户简档训练的第一机器学习模型以及多个用户简档的多个真实标签中的一个或多个真实标签来确定预测标签的第一份额(步骤1204),(ii)从mpc集群的第二计算系统接收指示由mpc集群的第二计算系统至少部分地基于给定用户简档的第二份额以及一个或多个机器学习模型的第一集合确定的预测标签的第二份额的数据,以及(iii)至少部分地基于预测标签的第一份额和第二份额来确定预测标签(步骤1208)。例如,mpc集群的第二计算系统可以对应于图1的mpc集群130的mpc2。[0367]在该示例中,多个用户简档的多个真实标签可以对应于作为加密标签数据626的一部分而被包括的真实标签,其是被用于训练和/或评估第一机器学习模型620的多个用户简档的真实标签。在一些示例中,多个真实标签可以对应于另一真实标签集合的份额。来自多个真实标签中的一个或多个真实标签可以包括用于通过第一机器学习模型620的k-nn模型622标识的k个最近邻用户简档中的每一个的至少一个真实标签,其中给定用户简档的预测标签的确定基于该一个或多个真实标签。在一些示例中,多个真实标签中的每一个被加密,如图6-7的示例中的情况。以上详细描述k个最近邻用户简档能够被用于确定预测标签的各种方法中的一些。如以上显而易见的,利用这种真实标签来确定预测标签的方法或方式可以至少部分取决于被采用的推断技术的类型(例如,回归技术、二元分类技术、多类分类技术等)。以上参照图1-5提供了关于可以与k-nn计算相关联地执行的秘密份额交换的附加细节。[0368]mpc集群的第一计算系统确定指示预测标签中的预测误差的预测残差值(步骤1210-1214)。在一些实施方式中,这可以对应于与结合如以上参考图8所描述的步骤806而执行的一个或多个操作类似或等效的一个或多个操作。然而,在步骤1210和1214中,能够在秘密份额上执行预测残差值的确定,以便提供用户数据隐私保护。为了确定预测残差值,mpc集群的第一计算系统(i)至少部分地基于给定用户简档的第一份额和使用多个用户简档训练的第二机器学习模型以及指示多个用户简档的多个真实标签与使用第一机器学习模型为多个用户简档确定的多个预测标签之间的差异的数据,来确定给定用户简档的预测残差值的第一份额(步骤1210),(ii)从mpc集群的第二计算系统接收指示由mpc集群的第二计算系统至少部分地基于给定用户简档的第二份额和一个或多个机器学习模型的第二集合确定的给定用户简档的预测残差值的第二份额的数据(步骤1212),以及(iii)至少部分地基于预测残差值的第一份额和第二份额,来确定给定用户简档的预测残差值(步骤1214)。[0369]mpc集群的第一计算系统基于预测标签和预测残差值生成表示推断结果的数据(步骤1216)。在一些实施方式中,这可以对应于与结合如以上参考图8所描述的步骤808而执行的一个或多个操作类似或等效的一个或多个操作。因此,在一些示例中,推断结果包括或对应于预测标签和预测残差值的总和。[0370]mpc集群的第一计算系统将表示推断结果的数据提供给客户端设备(步骤1218)。在一些实施方式中,这可以对应于与结合如以上参考图8所描述的步骤810而执行的一个或多个操作类似或等效的一个或多个操作。例如,这可以对应于与结合mpc集群130向应用112在其上运行的客户端设备110提供推断结果而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图1-2所描述的。[0371]在一些实施方式中,过程1200进一步包括其中mpc集群的第一计算系统将变换应用于给定用户简档的第一份额以获得给定用户简档的第一变换后的份额的一个或多个操作。在这些实施方式中,为了确定预测标签,mpc集群的第一计算系统至少部分地基于给定用户简档的第一变换后的份额来确定预测标签的第一份额。例如,这可以对应于与结合随机投影逻辑610用于将随机投影变换应用于用户简档609(pi)以获得变换后的用户简档619(pi′)而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6-8所描述的。[0372]在上述实施方式中的至少一些中,为了确定预测标签的第一份额,mpc集群的第一计算系统提供给定用户简档的第一变换后的份额作为第一机器学习模型的输入,以获得给定用户简档的预测标签的第一份额作为输出。例如,这可以对应于与结合第一机器学习模型620接收变换后的用户简档619(pi′)作为输入并且响应于其生成至少一个预测标签629而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6-7所描述的。[0373]在一些示例中,上述变换可以是随机投影。此外,在这些示例中的至少一些中,前述随机投影可以是johnson-lindenstrauss(j-l)变换。[0374]在一些实施方式中,为了应用j-l变换,mpc集群能够生成密文的投影矩阵r。为了将n维pi投影到k维,mpc集群能够生成n×k随机矩阵r。例如,第一计算系统(例如,mpc1)能够创建n×k随机矩阵a,其中50%概率为ai,j=1,50%概率为ai,j=0。第一计算系统能够将a分割成两个份额[a1]和[a2],丢弃a,保密地保持[a1],并且将[a2]给予第二计算系统(例如,mpc2)。类似地,第二计算系统能够创建n×k随机矩阵b,其元素具有a的元素的相同分布。第二计算系统能够将b分割成两个份额[b1]和[b2],丢弃b,保密地保持[b2],并且将[b1]给予第一计算系统。[0375]然后,第一计算系统能够将[r1]计算为2×([a1]==[b1])-1。类似地,第二计算系统能够将[r2]计算为2×([a2]==[b2])-1。这样,[r1]和[r2]是r的两个秘密份额,其元素以相等的概率为1或-1。[0376]实际随机投影在维度1×n的pi和维度n×k的投影矩阵r的秘密份额之间,以产生1×k的结果。假设n>>k,j-l变换将训练数据的维度从n减少到k。为了在加密数据中执行上述投影,第一计算系统能够计算[pi,1]⊙[ri,1],这需要两个份额之间的乘法和两个份额之间的加法。[0377]如上所述,在一些实施方式中,第一机器学习模型包括由mpc集群的第一计算系统维护的k最近邻模型,并且一个或多个机器学习模型的第一集合包括由mpc集群的第二计算系统维护的k最近邻模型。在一些示例中,两个前述k最近邻模型可以彼此相同或几乎相同。即,在一些示例中,第一和第二计算系统维护相同k-nn模型的副本,并且每个副本存储它们自己的真实标签的份额。在一些示例中,可以实现以一个或多个原型方法为根的模型来代替上述k最近邻模型中的一个或两者。[0378]在这些实施方式中的至少一些中,为了确定预测标签,mpc集群的第一计算系统(i)至少部分地基于给定用户简档的第一份额和由mpc集群的第一计算系统维护的k最近邻模型来标识最近邻用户简档的第一集合,(ii)从mpc集群的第二计算系统接收指示由mpc集群的第二计算系统至少部分地基于给定用户简档的第二份额和由mpc集群的第二计算系统维护的k最近邻模型而标识的最近邻简档的第二集合的数据,(iii)至少部分地基于最近邻用户简档的第一集合和第二集合来标识多个用户简档中被认为与给定用户简档最类似的k个最近邻用户简档,并且至少部分地基于k个最近邻用户简档中的每一个的真实标签来确定预测标签的第一份额。例如,这可以对应于与结合第一机器学习模型620用于在其中采用了一个或多个回归和/或二元分类技术的一个或多个实施方式中获得至少一个预测标签629而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6-8所描述的。[0379]在上述实施方式中的一些中,为了确定预测标签的第一份额,mpc集群的第一计算系统(i)确定k个最近邻用户简档的真实标签的总和的第一份额,(ii)从mpc集群的第二计算系统接收k个最近邻用户简档的真实标签的总和的第二份额,以及(iii)至少部分地基于k个最近邻用户简档的真实标签的总和的第一份额和第二份额来确定k个最近邻用户简档的真实标签的总和。例如,这可以对应于与结合第一机器学习模型620用于其中采用了一个或多个多类分类技术的一个或多个实施方式中获得至少一个预测标签629而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6-8所描述的。[0380]在一些实施方式中,第二机器学习模型包括由mpc集群的第一计算系统维护的深度神经网络(dnn)、梯度提升决策树(gbdt)和随机森林模型中的至少一个,并且一个或多个机器学习模型的第二集合包括由mpc集群的第二计算系统维护的dnn、gbdt和随机森林模型中的至少一个。在一些示例中,由第一和第二计算系统维护的两个模型(例如,dnn、gbdt、随机森林模型等)可以彼此相同或几乎相同。[0381]在一些实施方式中,过程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执行的一个或多个操作类似或等效的一个或多个操作。[0382]在上述实施方式中的至少一些中,用户简档的残差值的第一份额指示由第一机器学习模型为用户简档确定的预测标签与用户简档的真实标签的第一份额之间的值的差,并且用户简档的残差值的第二份额指示由第一机器学习模型为用户简档确定的预测标签与用户简档的真实标签的第二份额之间的值的差。例如,这可以是其中采用回归技术的示例的情况。[0383]在上述实施方式中的至少一些中,在mpc集群评估第一机器学习模型的性能之前,过程1200进一步包括其中mpc集群(i)推导函数以及(ii)配置第一机器学习模型以在给定用户简档作为输入的情况下生成用户简档的初始预测标签并且将该函数应用于用户简档的初始预测标签以生成用户简档的预测标签的第一份额作为输出的一个或多个操作。例如,这可以对应于与结合mpc集群执行如以上参照图8-9所描述的步骤914-916而执行的一个或多个操作类似或等效的一个或多个操作。为了推导函数,mpc集群的第一计算系统(i)至少部分地基于多个真实标签中的每一个的第一份额来推导函数的第一份额,(ii)从mpc集群的第二计算系统接收指示由mpc集群的第二计算系统至少部分地基于多个真实标签中的每一个的第二份额而推导的函数的第二份额的数据,以及(iii)至少部分地基于函数的第一份额和第二份额来推导函数。例如,对于其中采用二元分类技术的示例,这可以对应于其中mpc集群将第一机器学习模型配置为在给定用户简档作为输入的情况下:(i)计算k个最近邻用户简档的真实标签的总和(sum_of_labels),以及(ii)将函数(变换f)应用于用户简档的初始预测标签以生成用户简档的预测标签作为输出的一个或多个操作。对于采用多类分类技术的情况,可以执行类似操作。[0384]当在秘密份额上实现时,第一计算系统(例如mpc1)能够计算:[0385][0386][count0,1]=∑i(1-[li,1])[0387][0388]类似地,当在秘密份额上实现时,第二计算系统(例如mpc2)能够计算:[0389][0390][count0,2]=∑i(1-[li,2])[0391][0392]mpc集群然后能够如以上以明文所描述的那样重构sum0、count0、sum_of_square0,并且计算分布[0393]类似地,为了计算分布第一计算系统(例如,mpc1)能够计算:[0394][0395][count1,1]=∑i[li,1][0396][0397]并且,第二计算系统(例如mpc2)能够计算:[0398][0399][count1,2]=∑i[li,2][0400][0401]mpc集群然后可以如上文在明文中所描述的那样重构sum1、count1、sum_of_square1,并且计算分布[0402]在上述实施方式中的至少一些中,当评估第一机器学习模型的性能时,mpc集群能够采用一种或多种定点计算技术来确定每个用户简档的残差值。更具体地,当评估第一机器学习模型的性能时,为了确定每个用户简档的残差值的第一份额,mpc集群的第一计算系统通过特定的缩放因子缩放对应真实标签或其份额,通过特定缩放因子缩放与函数相关联的系数{a2,a1,a0},并且将缩放后的系数四舍五入到最接近整数。在这样的实施方式中,mpc集群的第二计算系统可以执行类似操作,以确定每个用户简档的残差值的第二份额。mpc集群因此能够利用秘密份额来计算残差值,根据两个秘密份额重构明文残差值,并且将明文残差值除以缩放因子。[0403]在上述实施方式中的至少一些中,过程1200进一步包括其中mpc集群的第一计算系统至少部分地基于多个真实标签中的每一个的第一分量来估计分布参数集合的第一份额的一个或多个操作。在一些这样的实施方式中,为了至少部分地基于多个真实标签中的每一个的第一份额来推导函数的第一份额,mpc集群的第一计算系统至少部分地基于分布参数集合的第一份额来推导函数的第一份额。例如,这可以对应于与结合mpc集群执行如上文参照图8-9所描述的步骤912-914而执行的一个或多个操作类似或等效的一个或多个操作。因此,上述分布参数集合能够包括多个真实标签中的第一值的真实标签的预测误差的概率分布的一个或多个参数,例如,多个真实标签中的第一值的真实标签的预测误差的正态分布的均值(μ0)和方差(σ0),以及多个真实标签中的第二值的真实标签的预测误差的概率分布的一个或多个参数,例如,多个真实标签中的第二不同值的真实标签的预测误差的正态分布的均值(μ1)和方差(σ1)。如上所述,在一些示例中,上述分布参数集合能够包括其他类型的参数。此外,上述实施方式中的至少一些中,函数是二次多项式函数,例如f(x)=a2x2 a1x a0,其中f′(x)=2a2x a1,尽管在一些示例中可以采用其他函数。[0404]在一些示例中,为了确定预测标签的第一份额,mpc集群的第一计算系统(i)确定k个最近邻用户简档的真实标签的总和的第一份额,(ii)从mpc集群的第二计算系统接收k个最近邻用户简档的真实标签的总和的第二份额,以及(iii)至少部分地基于k个最近邻用户简档的真实标签的总和的第一份额和第二份额来确定k个最近邻用户简档的真实标签的总和。例如,这可以是其中用于采用回归或二元分类技术的实施方式。在上述示例中的一些中,预测标签的第一份额可以对应于k个最近邻用户简档的真实标签的总和。例如,这可以是用于其中采用回归分类技术的实施方式的情况。在其他这样的示例中,为了确定预测标签的第一份额,mpc集群将函数应用于k个最近邻用户简档的真实标签的总和,以生成给定用户简档的预测标签。例如,这可以是用于其中采用二元分类技术的实施方式的情况。[0405]如上所述,在上述实施方式中的一些中,为了至少部分地基于k个最近邻用户简档中的每一个的真实标签来确定预测标签的第一份额,mpc集群的第一计算系统至少部分地基于与类别集合相对应的k个最近邻用户简档中的每一个的真实标签集合来确定预测标签集合的第一份额。为了确定预测标签集合的第一份额,对于该集合中的每个类别,mpc集群的第一计算系统(i)确定与k个最近邻用户简档中的用户简档的真实标签集合中的类别相对应的真实标签是第一值的真实标签的频率的第一份额,(ii)接收与k个最近邻用户简档中的用户简档的真实标签集合中的类别相对应的真实标签是第一值的真实标签的频率的第二份额,以及(iii)至少部分地基于与k个最近邻用户简档中的用户简档的真实标签集合中的类别相对应的真实标签是第一值的真实标签的频率的第一份额和第二份额来确定与k个最近邻用户简档中的用户简档的真实标签集合中的类别相对应的真实标签是第一值的真实标签的频率。这样的操作能够包括其中mpc集群的第一计算系统确定与k个最近邻用户简档中的用户简档的真实标签集合中的类别相对应的真实标签是第一值的真实标签的频率的一个或多个操作。例如,这可以对应于与结合第一机器学习模型620用于在其中采用一个或多个多类分类技术的一个或多个实施方式中获得至少一个预测标签629而执行的一个或多个操作类似或等效的一个或多个操作,如以上参考图6-8所描述的。[0406]在上述实施方式中的至少一些中,为了确定预测标签集合的第一份额,针对该集合中的每个类别,mpc集群的第一计算系统将与该类别相对应的函数应用于与k个最近邻用户简档中的用户简档的真实标签集合中的该类别相对应的真实标签是第一值的真实标签的频率,以生成与给定用户简档的类别相对应的预测标签的第一份额。例如,相应函数可以对应于由mpc集群为w个不同类别推导的w个不同函数中的一个,如以上参考图8-9的步骤914所描述的。[0407]对于多类分类问题,当评估第一机器学习模型的性能(例如,质量)时,对于每个训练示例/查询,mpc集群能够找到k个最近邻,并且计算它们的标签在秘密份额上的频率。[0408]例如,考虑其中假设对于多类分类问题{l1,l2,...lw}存在w个有效标签(例如,类)的示例。在由{id1,id2,...idk}标识的k个邻中,第一计算系统(例如,mpc1)能够如下式将第j个标签的频率计算为[lj,1]:[0409][0410]第一计算系统能够根据真实标签如下式计算频率[label1]:[0411][expected_frequencyj,1]=k×([label1]==j)[0412]因此,第一计算系统能够计算:[0413][residuej,1]=[expected_frequencyj,1]-[frequencyj,1][0414]并且,[residuej,1]等效于:[0415][0416]类似地,第二计算系统(例如,mpc2)能够计算:[0417][0418]在二元分类和回归的情况下,对于每个推断,残差值能够是数值类型的秘密消息。相反,在多类分类的情况下,对于每个推断,如上所示,残差值能够是数值向量的秘密消息。[0419]图13是能够被用于执行上述操作的示例计算机系统1300的框图。系统1300包括处理器1310、存储器1320、存储设备1330和输入/输出设备1340。组件1310、1320、1330和1340中的每一个能够例如使用系统总线1350互连。处理器1310能够处理用于在系统1300内运行的指令。在一些实施方式中,处理器1310是单线程处理器。在另一实施方式中,处理器1310是多线程处理器。处理器1310能够处理存储在存储器1320中或存储设备1330上的指令。[0420]存储器1320存储系统1300内的信息。在一些实施方式中,存储器1320是计算机可读介质。在一些实施方式中,存储器1320是易失性存储器单元。在另一实施方式中,存储器1320是非易失性存储器单元。[0421]存储设备1330能够为系统1300提供大容量存储。在一些实施方式中,存储设备1330是计算机可读介质。在各种不同的实施方式中,存储设备1330能够包括,例如,硬盘设备、光盘设备、由多个计算设备在网络上共享的存储设备(例如,云存储设备)、或者一些其他大容量存储设备。[0422]输入/输出设备1340为系统1300提供输入/输出操作。在一些实施方式中,输入/输出设备1340能够包括以下的一个或多个:网络接口设备,例如,以太网卡、串行通信设备,例如,以及rs-232端口,和/或无线接口设备,例如,以及802.11卡。在另一实施方式中,输入/输出设备能够包括被配置为接收输入数据并将输出数据发送到外部设备1360,例如,键盘、打印机和显示设备的驱动器设备。然而,也能够使用其他实施方式,诸如移动计算设备、移动通信设备、机顶盒电视客户端设备等。[0423]尽管在图13中描述了示例处理系统,但是本说明书中描述的主题和功能操作的实施方式能够被实现在其他类型的数字电子电路中,或者被实现在计算机软件、固件或硬件中,包括本说明书中公开的结构及其结构等效物,或者被实现在它们中的一个或多个的组合中。[0424]本说明书中描述的主题和操作的实施例能够被实现在数字电子电路中,或者被实现在计算机软件、固件或硬件中,包括本说明书中公开的结构及其结构等效物,或者被实现在它们中的一个或多个的组合中。本说明书中描述的主题的实施例能够被实现为一个或多个计算机程序,即,一个或多个计算机程序指令的模块,其被编码在计算机存储介质(或多个介质)上,以用于由数据处理装置执行或控制数据处理装置的操作。替代地或另外,程序指令能够被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以编码信息,以用于传输到合适的接收器装置以由数据处理装置运行。计算机存储介质能够是或被包括在计算机可读存储设备、计算机可读存储基底、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质能够是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也能够是或被包括在一个或多个分开的物理组件或介质(例如,多个cd、盘或其他存储设备)中。[0425]本说明书中描述的操作能够被实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他来源接收的数据执行的操作。[0426]术语“数据处理装置”涵盖用于处理数据的所有种类的装置、设备和机器,包括例如可编程处理器、计算机、片上系统或前述的多个或组合。该装置能够包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置还能够包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时间环境、虚拟机或它们中的一个或多个的组合的代码。该装置和运行环境能够实现各种不同的计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。[0427]计算机程序(也称为程序、软件、软件应用、脚本或代码)能够以任何形式的编程语言编写,包括编译或解释语言、声明性或过程性语言,并且它能够以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适于在计算环境中使用的其他单元。计算机程序可以,但不必须,对应于文件系统中的文件。程序能够被存储在保存其他程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中。计算机程序能够被部署为在一台计算机或位于一个站点或跨多个站点分布并通过通信网络互连的多台计算机上运行。[0428]本说明书中描述的过程和逻辑流程能够由运行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也能够由专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路),来执行,并且装置也能够被实现为该专用逻辑电路。[0429]例如,适合于运行计算机程序的处理器包括通用和专用微处理器两者。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。一般地,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者可操作地耦合到该一个或多个大容量存储设备,以从该一个或多个大容量存储设备接收数据或向该一个或多个大容量存储设备传递数据,或者两者。然而,计算机不需要具有这样的设备。此外,计算机能够被嵌入到另一个设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备(例如通用串行总线(usb)闪存驱动器),仅举几个示例。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,例如,包括半导体存储器设备,例如,eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cd-rom和dvd-rom盘。处理器和存储器能够由专用逻辑电路补充或并入其中。[0430]为了提供与用户的交互,本说明书中描述的主题的实施例能够被实现在计算机上,该计算机具有用于向用户显示信息的显示设备,例如,crt(阴极射线管)或lcd(液晶显示器)监视器,以及键盘和指示设备,例如,鼠标或轨迹球,用户能够通过该键盘和指示设备向计算机提供输入。其他种类的设备也能够被用于提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入能够以任何形式被接收,包括声学、语音或触觉输入。另外,计算机能够通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求,将网页发送到用户的客户端设备上的web浏览器。[0431]本说明书中描述的主题的实施例能够被实现在计算系统中,该计算系统包括后端组件,例如,作为数据服务器,或者包括中间件组件,例如,应用服务器,或者包括前端组件,例如,具有图形用户界面或web浏览器的客户端计算机,用户能够通过该图形用户界面或web浏览器与本说明书中描述的主题的实施方式进行交互,或者包括一个或多个这样的后端组件、中间件组件或前端组件的任意组合。系统的组件能够通过数字数据通信的任何形式或介质,例如,通信网络来互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、互连网络(例如,互联网)和对等网络(例如,自组织对等网络)。[0432]计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序产生的。在一些实施例中,服务器将数据(例如,html页面)传输到客户端设备(例如,出于向与客户端设备交互的用户显示数据和从用户接收用户输入的目的)。能够在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。[0433]尽管本说明书包含许多具体的实施方式细节,但这些不应被解释为对任何发明或可能要求保护的范围的限制,而是对特定发明的特定实施例特定的特征的描述。本说明书中在单独实施例的场境中描述的某些特征也能够被组合实现在单个实施例中。相反,在单个实施例的场境中描述的各种特征也能够在多个实施例中单独或以任何合适的子组合实现。此外,尽管特征可以在上面被描述为在某些组合中起作用,甚至最初也是这样要求保护的,但是在某些情况下,来自所要求保护的组合的一个或多个特征能够从该组合中删除,并且所要求保护的组合可以指向子组合或子组合的变型。[0434]类似地,尽管在附图中以特定的顺序描绘了操作,但是这不应该被理解为要求以所示的特定顺序或相继顺序执行这些操作,或者执行所有图示的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分开不应被理解为在所有实施例中都要求这样的分开,并且应当理解,所描述的程序组件和系统通常能够一起被集成在单个软件产品中或者封装到多个软件产品中。[0435]因此,已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。在一些情况下,权利要求中记载的动作能够以不同的顺序执行,并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示的特定顺序或相继顺序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献