【阅读笔记】联邦学习在实践中——构建公平的大数据交易市场

前言

FATE是微众银行开发的联邦学习平台,是全球首个工业级的联邦学习开源框架,在github上拥有近4000stars,可谓是相当有名气的,该平台为联邦学习提供了完整的生态和社区支持,为联邦学习初学者提供了很好的环境,否则利用python从零开发,那将会是一件非常痛苦的事情。本篇博客内容涉及《联邦学习实战》第十四章内容,使用的fate版本为1.6.0,fate的安装已经在这篇博客中介绍,有需要的朋友可以点击查阅。本章内容为构建公平的大数据交易市场,随着人工智能的迅速发展,海量的数据已经成为了帮助训练更好模型的最重要的燃料,但是隐私泄露问题阻碍着大量的数据无法流通入市场中,如果采用联邦学习技术,让数据不出本地,就能够帮助模型进行训练,同时用户的隐私也不会泄露,这将会是两全其美的好事,所以,构建公平的大数据交易市场的意义极为重要。

世界各国和中国政府也意识到大数据对未来发展的重要意义,都在国家层面进行了战略部署,发布了各种与数据相关的战略规划。与传统大宗商品相比,数据大宗商品前景更广阔,面临诸多挑战,包括:

  • 如何定义数据的质量和价格。
  • 如何在合法合规的前提下不泄露用户隐私。
  • 如何构建合理的激励机制,鼓励更多的参与者加入数据交易市场。

1. 大数据交易

1.1 数据交易定义

指买卖数据的一种行为。企业或政府可以通过交易平台找到自己需要的数据资源。大数据交易由数据提供方、大数据交易平台和数据需求方三方共同参与。
【阅读笔记】联邦学习在实践中——构建公平的大数据交易市场

交易平台主要分为三种模式:

  • 大数据分析结果交易:交易对象不是原始数据,而是对数据进行清洗、分析、建模、可视化等操作,得到结果后出售。
  • 数据产品交易:通过与其他数据所有者合作,对数据进行整合、清洗、脱敏,形成数据产品,然后进行销售。
  • 交易中介:平台本身不存储和分析数据,而是作为交易渠道,通过API接口形式为各类用户提供出售、购买数据服务,实现交易流程管理。

1.2 数据确权

数据确权是指数据交易后数据的所有权和控制权。数据权利的确认也是一项常见的工作,是数据交易中首先要解决的问题,产权归属是交易的前提和基础。
但由于交易中数据具有流动性、实时性、复杂性、易复制等特点,难以统一定义。大数据交易面临的产权归属主要面临四大瓶颈:

  • 数据权利的类型不明确,无法确定它是否适用于专有、财产或知识产权法。
  • 数据权利主体属于数据生产者还是数据持有者。
  • 数据控制权和使用权的界限不明确。
  • 数据很容易通过互联网复制,所有权保护很困难。

当前的数据所有权通常是平台与用户签署的单独协议。例如,使用微信时,必须遵守《腾讯微信软件许可服务协议》。

1.3 数据定价

根据贵阳大数据交易所在2016年推出的《数据定价办法》对数据的定价进行了量化,将数据的影响因素归结为数据品种、时间跨度、数据深度、数据的实用性、完整性以及数据样本的覆盖度等六个维度。
【阅读笔记】联邦学习在实践中——构建公平的大数据交易市场

2. 基于联邦学习构建新一代大数据交易市场

在基于联邦学习构建的大数据交易市场中,卖家并不直接将数据放到交易平台上进行交易,而是形成一个联邦学习网络,每个参与者可以通过这个网络共同构建每个参与者构建更多的二次开发产品,包括联邦模型、联邦数据分析、联合人像数据等。这些产品通过交易平台销售给用户。
与传统的大数据市场相比,这种新型交易平台的优势:

  • 数据不离开本地,也不直接与平台交互,大大降低了隐私泄露的风险。
  • 为商品交易提供更丰富的数据。

3. 联邦学习激励机制助力数据交易

数据交易市场要想在良性环境中持续长期运行,就需要激励机制。通过激励数据所有者贡献有价值的数据,可以更好地调动所有参与者的积极性。此外,数据交易市场中的数据提供者和数据交易平台需要一定的数据存储和训练资源成本,公平的激励策略可以帮助所有参与者从联邦学习生态系统中受益。
SHapley(SV)是公平定量评估用户边际贡献度的常用指标。SV起源于合作博弈,并被广泛应用于很多领域,从经济学、信息论到机器学习。SV之所以火热,是因为它具有公平性、个体理性化和可加性等优越性质。在联邦学习中,一个参与节点的SV能够评估该节点对聚合最终模型的边际贡献量。然而SV开销大,计算复杂的为O(n!),n为节点数量。
上一章引入了联邦激励机制的概念,本章详细介绍一种基于区块链的联邦学习P2P支付系统,简称为联邦币,以实现基于SV值的公平激励分配。
在FedCoin中,区块链共识节点计算Shapley值,并基于Shapley工作量证明共识协议创建新的区块。在PoSap机制中,出块奖励是联邦学习任务奖励的一部分,通过共识节点对联邦学习节点的Shapley值计算来决定写块权,从而引导区块链共识算力服务于联邦学习激励分配。
与流行的比特币相比,FedCoin采用的PoSap共识机制改进了BitCoin中PoW工作量证明中无意义的散列运算。通过基于真实数据的仿真实验,FedCoin能够公平地评估各参与方对全局模型基于SV的贡献度,并保证达到共识所需的计算资源有限(即在有限的资源内一定能共识)。

4. FedCoin支付系统设计

这里我简要介绍下联邦学习激励机制的问题描述,这部分首先介绍了FL任务的优化问题,通过SGD求解,计算每个节点的梯度,并将梯度上传到中心节点进行聚合,在这个过程中,计算每个节点的SV,可由下式计算得到:

%5Cphi%20_%7Bi%7D%3D%5Csum_%7BS%7D%5Cfrac%7B%28K-S-1%29%21-S%21%7D%7BK%21%7D%28F_S%28w%29-F_%7BS%5Ccup%20i%7D%28w%29%29

S是不包含节点i的任意子集,K是总节点个数,F_S%28w%29是模型参数w在节点集合S上的损失函数。
可以观察到%5Cphi%20_%7Bi%7D是一个随着参与节点数量增长的NP难问题,我们可以把这个过程看成是K!次全排列中计算节点的边际贡献的平均值。
回到系统的设计,FedCoin系统包括两个参与者网络:联邦学习网络和P2P区块链网络。参与网络的节点用户可以分为四类:联邦学习模型需求方(任务方),联邦学习客户端,联邦学习服务器和区块链共识节点。

【阅读笔记】联邦学习在实践中——构建公平的大数据交易市场

  • 联邦学习模型需求方:需要训练一个联邦学习网络的用户节点,设其任务预算为V。
  • 联邦学习客户端:分布式数据持有者,通过完成协作培训任务获得报酬。每个联邦学习客户端根据本地数据训练一个本地模型,并将模型参数更新提交给联邦学习服务器。
  • 联邦学习服务器:联邦学习网络中的一个中心化服务器,用于协调模型训练过程,并接收来自联邦学习模型需求方的任务支付V。联邦学习服务器扮演三个角色,第一,他将一个学习任务分发给客户端节点,并标价TrainPrice。第二,通过安全聚合协议聚合模型更新,获得计算费(ComPrice)。第三,向区块链网络分配SV激励分配处置费SapPrice,用以支付共识节点的出块奖励。TrainPrice%2BComPrice%2BSapPrice%5Cleqslant%20V,以便维持支付系统的自平衡,从而不依赖于外部系统供本系统的有价激励。
  • 区块链共识节点:通过共识协议维护分布式公共账本状态的一致性。

因此,联邦学习通过联邦学习服务器将联邦学习网络和区块链网络连接在一起。需要注意的是,SapPrice和TrainPrice随着训练轮次的增加而减少,而训练的总支付可以在轮次之间按照场景定制化分配。

4.1 PoSap共识算法

区块链网络中共识节点也称为“矿工”。当矿工从联邦学习网络中接收到SV的计算任务后,矿工为每一个联邦学习客户端节点计算SV,并构建向量S%3D%5Bs_k%5D_%7Bk%5Cin%5B1%2CK%5D%7D,其中s_k提供模型参数w_k%5Cin%20W的客户端的SV。每个矿工按照算法1独立计算SV向量。由于挖矿的目标是竞争计算SV向量,从而证明矿工的计算能力,将该算法命名为PoSap。
算法1的输入来自联邦学习网络的任务规范,输出是一个写入激励分配支付的新区块。

【阅读笔记】联邦学习在实践中——构建公平的大数据交易市场
下面将逐步解释该算法。

  • 在算法1中,一个矿工先将SV向量初始化为全零向量,并将计算迭代数设置为0(time=0)。只要满足没有接收到新块或者收到的区块未能通过算法2的验证就继续进行。
  • SV计算过程在第3行——第11行,矿工初始化一个临时的SV向量S_t,以记录当前迭代轮次中的计算值,然后矿工生成K个联邦学习客户端的随机序列。根据该排列计算第一个客户端的SV,这是该客户端节点对损失函数降低的贡献。对于下一个节点i,SV被计算为其边际贡献。通过对所有先前迭代和当前S_t求平均值来更新S,迭代时间随后递增1,并广播S和时间(第十行)。
  • 每当矿工接收到新的S和time时,矿工计算所有接收到的S的平均值%5Coverline%7BS%7D。然后矿工计算自己的S与%5Coverline%7BS%7D之间的P阶距离,当距离不大于采矿难度D时,矿工成为胜利者,获得出块权,将新区块追加到当前最长链(第15行)。难度D是动态调整的。

算法2是验证区块算法,即算法1中VerifyBlock函数。
【阅读笔记】联邦学习在实践中——构建公平的大数据交易市场

每当一个矿工接收到一个新的区块Blk时,矿工根据算法2验证这个区块,一旦验证通过,该新区块被更新到本地区块链,挖矿终止。一个新区块需要满足三个条件才能通过验证。

  • %7C%7CS_t-%5Coverline%7BS%7D_t%7C%7C_p%20%5Cleqslant%20D,目的是验证该区块获胜者是否生成了包含有效Shapley值的区块。
  • %7C%7C%5Coverline%7BS%7D-%20%5Coverline%7BS%7D_t%20%7C%7C_p%20%5Cleqslant%20D,要求%5Coverline%7BS%7D足够接近本地的S向量,区块链网络同步的理想情况下二者应该相等。
  • 当前ID是最大的,以确保在最长链上。

块包括块头和块体。
【阅读笔记】联邦学习在实践中——构建公平的大数据交易市场

字段名称解释
区块ID区块高度
获胜者ID区块生成者标志
平均S算法13行计算出的SV
前一个区块散列前一个区块的散列值
获胜者S获胜者计算出的SV
难度所需难度D
Merkle树根区块体中交易组织成的Merkle树根

区块体中记录两类数据:任务规范(包括算法1的所有输入),区块链网络中的交易。
新区块的挖矿速度是动态调整的。有两个影响因素:矿工的总算力和出块速度。同等算力下,随着出块速度的提高,挖矿难度会相应降低。在相同的出块速度下,挖矿难度随着挖矿算力的增加而增加。通过部署智能合约可以实现难度更新。

4.2 支付方案

联邦学习模型需求方通过转账V个FedCoin给联邦学习服务器来实现联邦任务的发布,当该笔交易记录到区块上后,联邦学习服务器在客户端发布学习任务规范。V的值应该不大于请求者的联邦学习模型的价值。为了合理分配V,所有节点都应该注册一个交易账户。然后将V的值分成以下三部分。

  • TrainPrice:给联邦学习客户端的支付费用。
  • ComPrice:向联邦学习服务器支付的处理模型聚合的计算费用。
  • SapPrice:支付给区块链网络矿工计算SV的出块奖励。

具体支付方案如算法3所示。
【阅读笔记】联邦学习在实践中——构建公平的大数据交易市场
算法3的步骤分析如下:

  • 在算法3中,当联邦学习服务器接收到来自需求方的支付V时,表明该服务器成功接收一个模型训练任务。然后服务器计算TrainPrice和SapPrice,并留下ComPrice=V-TrainPrice-SapPrice作为自己处理任务的报酬支付。
  • 向客户发布培训任务并附上培训价格。
  • 训练完成后,服务器向区块链网络发布Shapley值计算任务,价格为SapPrice。
  • 区块链网络通过成功挖掘一个新区块完成任务,继而联邦学习服务器创建一个交易将TrainPrice+SapPri传递给获胜者。
  • 区块获胜者将TrainPrice按照Shapley的比例分配给客户端并创建相应转账交易,所有交易及在系统中未提交交易都将存储在该新区块中。

5. FedCoin的安全分析

PoSap的安全性与比特币类似,鼓励矿工向系统贡献其计算资源,当系统中矿工的数量和算力足够多时,该系统的安全性随之提升。此外,还要设计一个抵御大型矿池的形成的支付方案,FeCoin不能抵御超过50%的矿工共谋攻击。
自私挖矿策略的安全性讨论,即区块获胜者的讨论不发布有效区块,继续挖掘下一个区块,从而获得挖矿的时间优势。

  • 不仅无法领取区块奖励SapPrice,同时,不能在不发布私有区块情况下挖掘下一个区块。
  • 如果学习任务是并行的,自私的矿工可以保留一个块并继续挖掘下一个块。这里的解决方案是不建议处理并行的联邦学习任务。

6. 实例演示

FedCoin的演示Demo和展示视频的链接附上,请各位尝试和观看。

阅读摘要

虽然是介绍联邦学习和区块链结合的应用内容,没有实战的部分,而且全部文字内容都很枯燥,但是通过本章的学习,我的思路又被拓宽了。学习中的激励问题可以通过区块链的可信计算来解决,使得大数据交易更加安全和直观,从某种意义上来说,是衡量大数据价值的一个很好的指标。希望以后遇到同样的情况时,也能合理利用联邦学习的激励机制来解决奖励分配的问题。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2022年3月30日 下午3:35
下一篇 2022年3月30日 下午3:50

相关推荐