一文读懂苹果的差分隐私技术原理

在 2016 年 6 月份的苹果 WWDC 大会上提到了一项差分隐私技术(Differential Privacy),其作用是对用户的数据进行扰动,然后上传到苹果服务器。苹果能通过这些扰动过的数据计算出用户群体的行为模式,但是对每个用户个体的数据却无法解析。

苹果通过采用差分隐私技术,实现了在不得到用户原始数据的前提下,学习用户行为。如果你想知道“数据可用不可见”背后的技术,就跟着我们一起来学习下苹果的差分隐私技术背后的原理吧!

一、简介

差分隐私是一种数据隐私保护技术,它通过在数据中引入随机化扰动的手段来保护隐私。简单来说,扰动后的数据是无法精确地推断出其原始值。同时,它允许对随机化后数据进行统计分析,保证了数据的有用性。差分隐私提供了衡量隐私的严格数学定义,是近些年来业界常见的一种隐私保护技术

1.1 差分隐私应用场景

苹果使用本地化差分隐私(Local Differential Privacy)技术来收集用户设备上的信息,其部署的产品见下表 [1, 2]。

产品名称用途
QuickType suggestions学习热门新词汇,用于键盘打字预测
Emoji suggestions(Emoji 预测)学习流行表情包趋势,预测用户使用的表情包
Lookup Hints(搜索提示)iOS 搜索框提示
Safari Energy Draining Domains & Crashing Domains统计电量消耗大(高 CPU、高内存使用)的网站、易崩溃的网站
Safari Autoplay Intent Detection统计用户倾向于自动播放且不静音的网站
Health Type Usage流行的健康数据类型(睡眠、心率、卡路里等)统计

1.2 本地化差分隐私

在本地化差分隐私框架中,用户在上传的原始数据中添加噪声(扰动),服务器则无法知道用户的真实数据。这项技术最早是由 Warner 提出的随机响应(Randomized response)[3]。

本地化差分隐私技术可用于联合统计,比如计算平均数、中位数、频率直方图等。其算法框架(E-R-A-P)一般分为四个步骤:

  1. 编码(Encoding, E
  2. 随机化(Randomizing, R
  3. 聚合(Aggregation, A
  4. 后处理(Post-processing, P

用户端进行编码与随机化,保证传输的数据是扰动后的;服务器端进行聚合与后处理,得到相应的统计量。

二、苹果的方案

苹果的本地化差分隐私方案参见 [2, 4, 5],其中 [4, 5] 是专利。这里介绍 [2] 中方案的简易版本,以统计表情包的频率直方图为例。

2.1 用户端

依照上面提到的 算法框架(E-R-A-P),用户端需要在上传数据之前对做原始数据做 编码(E) 和 随机化(R)。

编码(E):编码是为了后续的随机化和聚合步骤。苹果的编码采用哈希表的方式,初始表中的元素均为“-1”。然后通过哈希函数h将元素d(使用频率最高的表情包)映射到位置h(d),并标记“1”。假设哈希表的长度为m(聚合时会用到该参数)。

随机化 (R)随机化是差分隐私中的关键步骤,保证了数据的隐私性。由于编码后的数据都是“1”和“-1”,让每个比特以设定的概率p翻转,即“1”变为“-1”或“-1”变为“1”。其中p=1/(1+eϵ/2),ϵ称为隐私预算,将在 第 2.4 节阐述。

2.2 服务器端

依照上面提到的 算法框架(E-R-A-P),服务器端需要在接收到数据后对做“扰动”后的数据做 聚合(A) 和 后处理(P)。

聚合 (A)由于每个用户上传的数据都是扰动后的,聚合可以消除部分噪声的影响。假设共有n个用户,服务器收到用户i的哈希表为v(i)。服务器首先计算:

x(i)=cϵv(i)+12,其中cϵ=eϵ/2+1eϵ/2−1

然后将所有x的对应位置累加,得到M,即

M=∑i=1nx(i)

则统计元素d的个数f~(d)的公式如下,其中Mh(d)表示M在位置h(d)的值

f~(d)=mm−1(Mh(d)−nm)

可以证明f~(d)为f(d)的无偏估计,即E[f~(d)]=f(d),其中f(d)为元素d的真实个数。这意味着估计值的期望与真实值的偏差为零,保证了估计值的无偏性。

后处理 (P)在不同应用场景中,计算的统计量可能有先验知识,比如取值范围的限制(如大于 0),或者保持加和不变(如统计个数),这时就需要进行后处理操作。差分隐私的性质使得任何后处理操作均不影响其结果的隐私性

2.3 其他技术

数据隐私保护需要考虑的方面很多,仅使用差分隐私技术无法解决所有的问题。苹果在方案中还使用了其他技术来保护数据隐私,例如数据脱敏、通信加密、访问控制等。

  1. 用户上传的数据已移除设备标识符、时间戳等信息
  2. 用户与服务器通信使用 TLS 协议,即数据加密传输
  3. 服务器收到用户数据后首先移除 IP 地址、时间戳等 meta 信息,并将数据顺序打乱(shuffle)
  4. 数据聚合在受限访问环境中执行
  5. 数据只在苹果内部流通,且苹果的员工不能随意访问数据

2.4 隐私预算

看到这里大家应该明白了,差分隐私是通过在增加噪声(扰动)来实现隐私保护,但由于扰动增加,聚合的结果会变得不精确(统计量的方差增大)。所以下面介绍平衡算法的隐私性和实用性的隐私预算ϵ

在差分隐私中隐私预算ϵ的选取会同时影响算法的隐私性与实用性,称为 Privacy-Utility 之间的权衡(trade-off)。较小的隐私预算ϵ意味着较强的隐私保护能力。例如,数据比特随机化扰动的概率p=1/(1+eϵ/2),减小ϵ的取值会使得p增大,因此隐私泄漏的风险会降低,但此举也会影响结果的精确性。

而且,虽然数据添加了差分隐私扰动,但同一用户会不断地上传新数据,根据差分隐私的串型组合定理,隐私预算ϵ会随着时间累积逐步增加。因此,苹果限制了用户每天上传数据的最大次数,并表示数据最多只会留存三个月。

产品名称隐私预算ϵ的取值数据最多上传次数 / 每天
QuickType suggestions82
Emoji suggestions(Emoji 预测)41
Lookup Hints(搜索提示)42
Safari Energy Draining Domains & Crashing Domains42
Safari Autoplay Intent Detection82
Health Type Usage21

有研究 [6] 指出,苹果应该解释是如何设置隐私预算ϵ的取值的,告知用户并将其透明化。例如,虽然 Emoji 产品中宣称的隐私预算ϵ取值为 1,但通过代码逆向工程后发现其取值为 2(iOS 10.1.1 和 MacOS 10.12.3 版本的数据)。而且,隐私预算随时间累积也是其方案存在的一个重要问题。

三、方案优化

第 2 节中描述的是方案的简易版,而苹果的方案针对通信、统计量的精确性、场景适配等均做了优化 [2]如下:

  1. 为了减少哈希碰撞的影响,实际有k个哈希函数,每个用户在编码时随机选择一个,并将选择的哈希函数告诉服务器。服务器则构建k个哈希表,然后进行聚合计算。
  2. 为了降低通信量,苹果的方案中对编码后的数据进行了阿达马变换(Hadamard transform),并通过采样的方式,随机选择 1 比特的数据发送到服务器。这样不仅可以降低通信量,而且不会增加统计值的方差。
  3. 表情包的数据一般是固定的,但在一些场景下,用户数据是无法预知的。比如学习热门新词汇,统计网站。苹果对此采用了 Sequence Fragment Puzzle 技术,并设计了本地化差分隐私的方案。

四、无偏估计证明

这里依旧是按照 算法框架(E-R-A-P)顺序进行讲解,证明f~(d)是f(d)的无偏估计。

4.编码

用户i的哈希表为v(i),元素d在表中的映射位置为h(d),其对应编码的取值为vh(d)(i)。用户i上传的元素为d(i),其对应位置的编码值为“1”,哈希表的其余位置为“-1”。因此当d(i)=d时,vh(d)(i)的期望为

E[vh(d)(i)]=1

由于哈希表可能会存在碰撞(冲突),即不同元素标记到了同一位置。假设数据映射到不同位置的概率是相同的,则碰撞概率为 1/m。因此当d(i)≠d时,vh(d)(i) 的期望为

E[vh(d)(i)]=1m⋅1+(1−1m)⋅(−1)=2m−1

因此vh(d)(i)的期望为

E[vh(d)(i)]=I{d(i)=d}+(2m−1)I{d(i)≠d}

4.随机化

随机化时比特翻转的概率为p=1/(1+eϵ/2)。假设随机变量B∈{−1,1},Pr(B=−1)=p。

E[B]=p⋅(−1)+(1−p)⋅1=1−2p=eϵ/2−1eϵ/2+1=1cϵ,其中cϵ=eϵ/2+1eϵ/2−1

用户i随机化后的哈希表为Bv(i),元素d在表中的编码值为Bvh(d)(i)。

E[Bvh(d)(i)]=E[B]⋅E[vh(d)(i)]=1cϵE[vh(d)(i)]

4.聚合

服务器对随机化后的哈希表进行转换,即计算x。元素d在用户i哈希表转换后映射位置的编码值为xh(d)(i),

xh(d)(i)=cϵBvh(d)(i)+12

当d(i)=d时,E[cϵBvh(d)(i)]=1,故

E[xh(d)(i)]=1

当d(i)≠d时,E[cϵBvh(d)(i)]=2m−1,故

E[xh(d)(i)]=1m

因此xh(d)(i)的期望为

E[xh(d)(i)]=I{d(i)=d}+1mI{d(i)≠d}

将所有的x累加,计算M,元素d在M中映射位置的编码值为Mh(d),

Mh(d)=∑i=1nxh(d)(i)

计算其期望,其中f(d)是元素d的真实个数

E[Mh(d)]=E[∑i=1nxh(d)(i)]=∑i=1nI{d(i)=d}+1m∑i=1nI{d(i)≠d}=f(d)+1m(n−f(d))=m−1mf(d)+nm

由于f~(d)是元素d个数的统计值,其计算公式为

f~(d)=mm−1(Mh(d)−nm)

所以

E[f~(d)]=f(d)

即f~(d)是f(d)的无偏估计。

统计量的方差小才意味着估计的精确性高。关于统计量f~(d)方差的证明请参考

以上通过公式推导的方式证明了苹果采用的「差分隐私」算法的准确性,可以实现在“数据可用不可见”的情况下实现统计计算。

五、最后

看似“高不可攀”的差分隐私技术,其实早已走进了我们的日常生活和工作中,为我们的个人隐私保驾护航。

本文通过通俗易懂的图文和严谨的公式推导,讲解了苹果的差分隐私技术原理,希望能够勾起你对隐私计算技术的兴趣。最后,如果你还有什么想了解的隐私计算相关技术,欢迎留言告诉我们!

PrimiHub 一款由密码学专家团队打造的开源隐私计算平台。我们专注于分享数据安全、密码学、联邦学习、同态加密等隐私计算领域的技术和内容。

参考文献

[1] Apple Differential Privacy Technical Overview. https://www.apple.com/privacy/docs/Differential_Privacy_Overview.pdf

[2] Differential Privacy Team, Apple. "Learning with privacy at scale." (2017). https://docs-assets.developer.apple.com/ml-research/papers/learning-with-privacy-at-scale.pdf

[3] Warner, Stanley L. "Randomized response: A survey technique for eliminating evasive answer bias." Journal of the American Statistical Association 60, no. 309 (1965): 63-69. https://www.jstor.org/stable/2283137

[4] Thakurta, Abhradeep Guha, Andrew H. Vyrros, Umesh S. Vaishampayan, Gaurav Kapoor, Julien Freudiger, Vivek Rangarajan Sridhar, and Doug Davidson. "Learning new words." Granted US Patents 9645998 (2017). https://patents.google.com/patent/US9645998

[5] Thakurta, Abhradeep Guha, Andrew H. Vyrros, Umesh S. Vaishampayan, Gaurav Kapoor, Julien Freudinger, Vipul Ved Prakash, Arnaud Legendre, and Steven Duplinsky. "Emoji frequency detection and deep link frequency." Granted US Patents 9705908 (2017). https://patents.google.com/patent/US9705908

[6] Tang, Jun, Aleksandra Korolova, Xiaolong Bai, Xueqiang Wang, and Xiaofeng Wang. "Privacy loss in apple's implementation of differential privacy on macos 10.12." arXiv preprint arXiv:1709.02753 (2017). https://arxiv.org/pdf/1709.02753

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Yolov5 是一种广泛应用于目标检测的算法,其 loss 原理相对简单。Yolov5 通过将目标检测问题转化为一个回归问题,通过预测 bounding box 的坐标来实现目标检测。 Yolov5 的 loss 主要包括三个部分:分类损失、定位损失和目标置信度损失。 分类损失是用来衡量预测的类别与真实类别之间的差异。Yolov5 使用交叉熵损失函数来计算分类损失。对于每个边界框(bounding box),它将计算预测类别的 softmax 概率与真实类别的 one-hot 向量之间的交叉熵。 定位损失用于衡量预测的边界框位置与真实边界框位置之间的差异。Yolov5 使用 Smooth L1 损失函数来计算定位损失。它通过对预测边界框的坐标与真实边界框的坐标之间进行平滑处理,减小了异常值的影响。 目标置信度损失用于衡量预测的边界框与真实边界框之间的 IoU(Intersection over Union)之间的差异。Yolov5 使用 Binary Cross-Entropy 损失函数来计算目标置信度损失。它将预测的边界框是否包含目标与真实边界框是否包含目标之间的差异进行衡量。 最终,Yolov5 的总损失是通过将三个部分的损失加权求和得到的。这些权重可以根据具体的任务和数据集进行调整。 通过最小化 Yolov5 的 loss 函数,模型可以学习到更准确的目标检测结果。这样,我们就可以在图像中准确地检测和定位不同类别的目标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野生的狒狒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值