s
FATE是微众银行开发的联邦学习平台,是全球首个工业级的联邦学习开源框架,在github上拥有近4000stars,可谓是相当有名气的,该平台为联邦学习提供了完整的生态和社区支持,为联邦学习初学者提供了很好的环境,否则利用python从零开发,那将会是一件非常痛苦的事情。本篇博客内容涉及《联邦学习实战》第十三章内容,使用的fate版本为1.6.0,fate的安装已经在这篇博客中介绍,有需要的朋友可以点击查阅。本章介绍如何利用联邦学习构建协同的正能用工解决方案,并在联邦学习的架构上,提出一种基于多人博弈游戏的联邦学习激励机制方案。
智能用工——一种由人工智能算法赋能的众包平台,它旨在为工作者个人工作管理移动应用程序,平台的AI引擎是一个数据驱动的实时多智体组织,该算法着重于工作者的公平待遇和人类监督的可解释性。
智能用工整体系统架构如下图所示,智能用工系统的AI引擎会根据已有的数据,生成一个初始的候选人录用列表,候选人的能力水平由两个方面反馈:对于定义明确的任务(是否按时上班,是否按时完成工作)可以通过传感器监控,对于定义不明确的任务,由管理者人工评估。
将管理者的评价与传感器监控结果作为输入提供给AL引擎,重新评估当前候选人是否胜任当前工作。
为了公平对待工作者,目标是确保能力和生产率相近的工作者长期获得公平的收入,即你的收入要和工作能力相匹配,这样一个目标可以转换为当任何工作者的收入与同类工作者相比时,将其遗憾降到最低。AI引擎采用排队系统的概念模拟工作者的遗憾,用 Y i ( t ) Y_i(t) Yi(t)表示工作者i在回合t的遗憾,满足下面的动态规划公式:
Y i ( t + 1 ) = m a x [ 0 , Y i ( t ) + v ˉ ( t − 1 ) − v i ( t ) ] Y_i(t+1)=max[0,Y_i(t)+\bar{v}(t-1)-v_i(t)] Yi(t+1)=max[0,Yi(t)+vˉ(t−1)−vi(t)]
其中 v i ( t ) v_i(t) vi(t)是当前回合t中工作者i的收入, v ˉ ( t − 1 ) \bar{v}(t-1) vˉ(t−1)是t-1回合i同类工作者的平均收入,从上式可知,i在t-1回合中,如果收入小于平均收入,它的遗憾值会增加,反之遗憾值减少。
参考李雅普诺夫优化技术,得到t回合工作者的遗憾分布为 l 2 l_2 l2-范数, L ( t ) = 1 2 ∑ i = 1 N Y i 2 ( t ) L(t)=\frac{1}{2}\sum_{i=1}^{N}Y_i^2(t) L(t)=21∑i=1NYi2(t),因此工作者收入随时间波动可以表示为:
Δ = 1 T ∑ t = 0 T − 1 [ L ( t + 1 ) − L ( t ) ] \Delta = \frac{1}{T}\sum_{t=0}^{T-1}[L(t+1)-L(t)] Δ=T1t=0∑T−1[L(t+1)−L(t)]
通过最小化上式,该算法为工作者提供了两个公平维度:
同时,参与业务的工作者的集体效用,可以被建模为 v i ( t ) q i , j ( t ) p i ( t ) v_i(t)q_{i,j}(t)p_i(t) vi(t)qi,j(t)pi(t),其中 q i , j ( t ) q_{i,j}(t) qi,j(t)和 p i ( t ) p_i(t) pi(t)分别是工作者i对于j类型任务的能力水平和他的生产率,我们的目标是将其最大化,联合目标函数为:
m a x 1 N ∑ t = 0 T − 1 ∑ i = 1 T v i ( t ) [ ρ q i , j ( t ) p i ( t ) + Y i ( t ) ] max\frac{1}{N}\sum_{t=0}^{T-1}\sum_{i=1}^{T}v_i(t)[\rho q_{i,j}(t)p_i(t)+Y_i(t)] maxN1t=0∑T−1i=1∑Tvi(t)[ρqi,j(t)pi(t)+Yi(t)]
该目标函数满足:
∑ j = 1 M 1 j → i ∈ ( 0 , 1 ) , q i , j ( t ) ⩾ θ j ( t ) , ∀ i , j , t . \sum_{j=1}^{M}1_{j\rightarrow i}\in (0,1),q_{i,j}(t)\geqslant\theta _j(t),\forall i,j,t. j=1∑M1j→i∈(0,1),qi,j(t)⩾θj(t),∀i,j,t.
在这里, ρ > 0 \rho>0 ρ>0是一个控制变量,用于管理者向AI引擎发出信号,告知如何产生更高的收入与公平对待工作者之间进行权衡, θ j ( t ) \theta _j(t) θj(t)是工作者有资格执行某种任务所需的最低能力级别。下图是对AI引擎的概述。
通过参考文献(见原文)开发出的索引排序,可以有效解决优化问题。工作者按照 [ ρ q i , j ( t ) p i ( t ) + Y i ( t ) ] [\rho q_{i,j}(t)p_i(t)+Y_i(t)] [ρqi,j(t)pi(t)+Yi(t)]索引的降序排列,而任务按其“奖励时间等待时间”值的降序排列,将高级别工作分配给高级别员工,直到找不到更多的任务或更合适的员工为止。如果采用mergesort算法,时间复杂度为O(NlogN),支持大规模运算。
该算法的结果是将工作者的能力、生产率、遗憾、系统管理者偏好、任务奖励和等待时间等细粒度张量映射到任务分配计划中。
智能用工系统成功的一个关键因素在于对新员工绩效的准确预测。尽管每个企业都可以使用本地存储的工作者数据,但是零散的机器学习模型可能无法提供令人满意的性能,而联邦学习可以在遵守隐私保护法规的同时,利用本地存储的工作者数据构建一个强大的聚合模型。
如下图,每个系统都记录了本地员工数据,这里采用横向联邦技术,在保证数据不出本地前提下,训练更好的模型来预测员工绩效。
为了维持高质量数据所有方的长期参与,需要联邦学习系统提供适量的激励措施。设计有效、合理的激励机制,其中关键一点是了解参与方在不同激励机制下的决策行为。为此,提出了基于多人博弈游戏的联邦学习激励机制研究——FedGame,以研究联邦中的参与方在不同激励机制下的决策行为。FedGame允许人类玩家作为联邦参与方体验各种不同的联邦环境,并对其决策过程分析并可视化。
FedGame架构如下所示,人类玩家和电脑玩家作为参与方加入到联邦学习中,在相同市场上竞争。
决策涉及资源数量、数据质量、数据数量和愿意支付金额等关键信息。每轮游戏在经过固定回合后结束,玩家的目标是在游戏结束之前尽可能多获得收益,为了激励参与方为联合训练提供高质量数据,并如实上报,游戏着重商业角度构建联邦学习环境。加入联邦的过程涉及三个不同阶段:投标,联邦模型训练,利润共享。FedGame支持以下几种激励机制:
总的来说本章内容仍以知识了解为主,并不涉及代码,书中提到了一个很先进的思想, 联邦激励机制,任何一个联邦参与方如果没有利益,那也不会加入到联邦学习中。在我看来,联邦学习的目的,就是一群互不相识的参与方为了利益而进行联邦,无论利益是指更好的模型还是收益,在我阅读并总结的这篇博客中,就介绍了一种个性化隐私激励的联邦学习,它是来自于CCF A类的一篇文章,它很好的权衡了利益与隐私,帮助参与方获得个性化的最大利润,感兴趣的朋友可以阅读一下。