富数-AnonymFL
本文学习文章“2022 WAIC|「全匿踪联邦学习」AnonymFL正式发布:破解用户ID暴露难题,实现真正合规可信的隐私计算”,记录笔记。
引言
2022年08月26日,富数科技宣布实现了“全匿踪联邦学习”,突破了无需安全求交、不泄露交集ID、在全匿名数据集下进行联邦学习的技术难题。
2022年09月01日,在2022 世界人工智能大会的“可信AI论坛”上正式发布全新产品「全匿踪联邦学习」AnonymFL,解决了目前隐私计算方案中普遍存在的“缺少个人同意“、”ID泄露“的重大法律风险问题,让机构之间的数据要素价值流通真正合规可信。
好像没开源,这是核心产品。
好奇具体用了什么算法。


- 先混淆,再对齐。
背景
机构和机构之间进行纵向联邦学习,中间不能少的一步就是安全求交、样本对齐。按照目前行业内的普通采用的安全求交技术(PSI),包括基于RSA、基于OT等不同的技术路线,都有一个共同的特点——只保护交集之外的样本不被暴露,交集之内的用户ID必须在所有参与方进行同步(同步即暴露)。因为不同步就无法进行后续的联邦训练。
那么把ID进行哈希加密(这里应该是单纯的哈希,不是加密(加随机数))共享是不是就完全合规了?答案是否定的,因为ID哈希加密依然可以唯一识别到特定自然人,在实际应用场景下,交集之内的用户ID在未经个人用户的授权下也违背了《个人信息保护法》要求。因此,不少机构的法务部门会要求暂缓通过隐私计算对外进行数据服务合作,但也有部分机构在夸大隐私计算技术安全的承诺下,实施商业化项目,却并没有消除用户ID暴露的风险。
为了攻克这个技术瓶颈,富数科技自主研发了「全匿踪联邦学习」AnonymFL——实现在无交集泄露的、匿名化的多方数据集上进行联邦学习。按照《个人信息保护法》“第四条,个人信息是以电子或者其他方式记录的与已识别或者可识别的自然人有关的各种信息,不包括匿名化处理后的信息。”,匿名化处理后满足各项合规要求。
ID哈希加密属于匿名化么?所以说把ID哈希后暴露到底违法么?
介绍
和普通的安全求交不同,全匿踪的样本对齐,经过了密态混淆,参与方无法得知对方每一行样本ID,就连自己的每一行样本ID也无从知晓,交集ID可实现不被泄露的同时又保持对齐。之后再执行密态条件下的匿名化,得到一个完全不再是个人信息的数据,即使进行解密,也无法识别到个人(这是上面仅哈希做不到的!)。
如何处理数据?混淆、匿名化的?
经过了匿名化处理后的样本,参与方持有的是全匿样本的碎片,包括碎片化的标签、碎片化的特征。里面的样本有的是相交的,有的是不相交的。不在交集里的样本也参加训练,但它的值是一个共享的密态0,所以虽然参与计算,但不会产生任何结果上的影响。(混淆?)
整个流程和经典的纵向联邦逻辑回归基本一致,密态计算sigmoid,密态计算损失值,密态计算梯度,进行迭代直到收敛。计算量和通信量会有所增加,但耗时依然在可接受的范围内,依然保持了高性能和高精度。
特性
1. 不暴露样本交集
与传统联邦学习不同:AnonymFL不再使用安全求交输出双方共同的样本ID集合,而是让多于交集的样本一起进入到联邦学习计算(混淆)。参与各方无法获取有哪些样本参与了联合建模,从而避免暴露各自的用户ID。富数科技自研创造的匿踪样本对齐算法:在保持匿踪的条件下,实现了参与各方的样本对齐。针对匿踪对齐的样本,又设计了匿踪的联邦学习算法:在保持匿踪的条件下,进行联合建模,迭代训练直到收敛。
2. 实现真正的匿名化
为了进一步满足《个人信息保护法》合规要求,AnonymFL增加了对匿踪对齐的样本集的匿名化算法处理。经过匿名化算法处理的匿踪对齐样本集,无法识别到特定自然人且不能复原。(即先对齐,再匿名化)
对匿名化后的样本集将不再属于个人信息,并不再需要获得用户的授权同意,可以进行各种合规的计算、建模和加工处理,是一种保留了高价值、又安全合规的可流通的数据要素。
3. 保持高性能、高精度
富数科技在保证安全的首要基础上,对匿踪对齐算法、匿名化算法、匿踪联邦学习算法进行了计算量和空间存储的优化,实现了性能的可用性,同时保持精度不降低。
扩展
- 匿名化。只有将用户信息匿名化,才能使用用户信息。
- 泄漏信息。计算传输过程中,可能会泄漏中间信息。
- 合谋。部分参与方可能会合谋,获取额外信息。
应用
应用到了反欺诈、联合营销等用户授权难度高,而应用需求又非常迫切的实际场景中。
未来,我们也将积极将其拓展到智慧民生、智慧医疗、智能政务、智能汽车等高价值数据要素流通场景中去,为实现全国数据资源流通“一盘棋”目标贡献力量。
补充,后面又看到一篇文章,友商也站出来解读了,现在学习一下来自友商的文章“全匿踪联邦学习--样本对齐”
解读

- 友商的话我也很赞同~

- 这样是不是就暴露了技术所用的算法,哈哈~
Circuit-PSI

- 交集的共享结果是?想让你知道的,比如“交集之和,交集最大值等”
- 以下内容来自:VOLE-PSI: Fast OPRF and Circuit-PSI from Vector-OLE

- 其中\(X=\left \{ x_i \right \} ,Y=\left \{ y_i \right \},Q=\left \{ q_i \right \},Z=\left \{ z_i \right \}\)。
- 这就是VOLE(vector oblivious linear evaluation,向量伪随机线性计算)的功能,如果\(x_i=y_i\),则\(z_{i'}^0\oplus z_{i'}^1=(\hat{x}_{i'} || \hat{y}_{i'})\),否则就为0。
- 另外相关属性值是?相当于item值对应的标签label。

\(P_1\)的相关属性值为\(\hat{X}\in \left \{ 0,1 \right \}^{\sigma x}\)。
\(j\in [1,k]\)。
Simple Hash是每次插入一个数据时,用到所有的哈希函数,最后表\(T_Y\)中有\(k*n\)个数据(每行都有)。
Cuckoo Hash是每次插入一个数据是,随机选一个哈希函数,最后表\(T_X\)中有\(n\)个数据(一行有)。
执行OPPRF操作:
- 发送方有键值对\(L=(y',r_i||\hat{y}\oplus w_i')\),其中\(y'\in T_y[i]\)
- 接收方有表\(T_X\),其中\(x'\in T_X[i]\)
- 若\(y'=x'\),则接收方得到\(r_i||\hat{y}\oplus w_i'\)
执行VOLE操作:
- 发送方有\(r_i||w_i\)
- 接收方有\(r_i’||w_i’||\hat{x}\)

- 这部分看不太懂,后续补充。
- 功能就是双方都得到了\(Z=\hat{x}||\hat{y}\)
富数-AnonymFL的更多相关文章
- 数据是企业的无价財富——爱数备份存储柜server的初体验(图文)
非常早就像上这样一套数据备份系统,每天採用原来的软件备份加手动备份的方式,总有些不是太方便的地方. 加上企业规模的不断扩大,系统的增多,业务数据也日显重要.容不得半点中断和数据丢失.这不,出于对系统数 ...
- iOS富文本
背景:前些天突然想做一个笔记本功能,一开始,觉得挺简单的呀,一个UITextView,网络缓存也不干了,直接本地NSUserDefault存储,然后完事了,美工,弄几张好看的图片,加几个动画,也就这样 ...
- iOS之富文本
之前做项目时遇到一个问题: 使用UITextView显示一段电影的简介,由于字数比较多,所以字体设置的很小,行间距和段间距也很小,一大段文字挤在一起看起来很别扭,想要把行间距调大,结果在XCode中查 ...
- 完美解决 向UILable 文字最后插入N张图片,支持向限制行数的UILable 最后一行插入,多余文字显示...
效果: ====直接上代码吧=== // // UILabel+StringFrame.h // QYER // // Created by qyer on 15/3/19. // Copyright ...
- 在线富文本编辑器FckEditor配置(.Net Framework 3.5)
进入FCKeditor文件夹,编辑 fckconfig.js 文件.1.上传设置 . var _FileBrowserLanguage = 'php' ; // a ...
- 向安富利(Avnet)学什么?
这个只做电子元器件分销的企业,居然能数次进入<财富>排行榜.看来,这是一个在供应链上创造价值的高手.在企业竞争已经集中到供应链竞争的今天,安富利的成功之道,无疑具有特别的意义. 2000年 ...
- 富文本 SpannableString Span
经典使用场景 SpannableStringBuilder needStartSSB = new SpannableStringBuilder("需要"); SpannableSt ...
- 【ThinkPHP学习】ThinkPHP自己主动转义存储富文本编辑器内容导致读取出错
RT. ThinkPHP的conf文件里的Convention.php有一个配置选项 'DEFAULT_FILTER' => 'htmlspecialchars', // 默认參数过滤方法 用于 ...
- 百度ueditor富文本编辑器的使用
百度ueditor富文本编辑器的使用 //以下为我在官网下载的ueditor v1.3.5 php版的大楷配置步骤第一步: //配置文件的引入应该比功能文件先引入,最后设置语言类型.即:editor. ...
- ASP.NET MVC + 百度富文本编辑器 + EasyUi + EntityFrameWork 制作一个添加新闻功能
本文将交大伙怎么集成ASP.NET MVC + 百度富文本编辑器 + EasyUi + EntityFrameWork来制作一个新闻系统 先上截图: 添加页面如下: 下面来看代码部分 列表页如下: @ ...
随机推荐
- CUDA编程学习 (1)——CUDA C介绍
1. 内存分配和数据移动 API 函数 CUDA编程模型是一个异构模型,需要CPU和GPU协同工作.在CUDA中,host 和 devic e 是两个重要的概念,我们用host指代CPU及其内存,而用 ...
- Help document of CAD Plus
中文使用帮助 Help for Mobile Update time: 2023-07-29; This article will help you how to use the CAD Plus a ...
- SPI接口,如何对W25Q64进行读写操作?深度解析
一.SPI概述 SPI(SerialPeripheralInterface)是一种同步串行通信协议,广泛应用于微控制器和外围设备之间的数据传输.它由摩托罗拉公司开发,具有全双工通信能力,即可以同时 ...
- CodeForces - 1353D Constructing the Array
CodeForces - 1353D 这道题也可能比较简单,主要是要想到优先队列要怎么使用,这一点如果用递归会写不了 但是因为对优先队列不太熟悉,只有被提示可以用优先队列才想到要怎么用, 还是很重要的 ...
- 批量归一化(BN, Batch Normalization)
现在的神经网络通常都特别深,在输出层向输入层传播导数的过程中,梯度很容易被激活函数或是权重以指数级的规模缩小或放大,从而产生"梯度消失"或"梯度爆炸"的现象,造 ...
- Git之常用文件
git项目中的特殊文件, 常见文件有.gitignore, .gitkeep 1) .gitkeep git默认是不允许提交一个空的目录到版本库上的, 可以在空的文件夹里面建立一个.gitkeep文件 ...
- elasticsearch之python操作
总结使用python对于elasticsearch的常用操作 安装 pip install elasticsearch 2. 连接 from elasticsearch import Elastics ...
- 2019 ICPC Universidad Nacional de Colombia Programming Contest
A. Amazon 给定\(n\)条直线(存在共线的情况),在每两条垂直的直线的交点处需要建一个交叉点,求交叉点的数量,注意需要去除共线时候的交叉点 题解 因为要除去共线的情况,我们考虑将一条直线以方 ...
- nvm node版本管理
1.说明 NVM是NODE JS的版本管理工具,可以安装nodejs切换nodejs版本. 2.安装NVM https://github.com/coreybutler/nvm-windows/rel ...
- elastic8.4.0搜索+logstash<=>mysql实时同步+kibana可视化操作+netcore代码笔记
做全文搜索,es比较好用,安装可能有点费时费力.mysql安装就不说了.主要是elastic8.4.0+kibana8.4.0+logstash-8.16.1,可视化操作及少了netcore查询代码. ...