共计 5325 个字符,预计需要花费 14 分钟才能阅读完成。
导语 | 在金融场景下,银行等机构有强烈欲望和其余数据领有方单干建模,但出于商业和合规方面的思考,又不愿共享外围数据,导致行业内大规模数据共享迟迟无奈推动。本文将从经典警匪影片情节登程,从技术角度探讨如何解决这一窘境,心愿与大家一起交换。文章作者:王礼斌,腾讯云大数据研发工程师。
一、引言
银行等金融机构领有用户历史行为数据,例如是否守约欺骗等,但不足数据去对新用户进行判断。而运营商、卡组织(如银联、VISA)等领有大量数据的机构,有志愿跟金融机构单干建模。
然而,因为金融机构与数据领有方都有商业窃密和政策合规的须要,因而无奈把数据给对方来执行传统建模程序。
针对这一景象,腾讯神盾 - 联邦计算,把两个最罕用的算法,梯度晋升树(GBDT)和逻辑回归(LR)的计算过程进行从新组织。
将其中局部环节应用同态加密进行革新,从而做到在单方数据都不须要给对方的状况下也能单干建模。解决了金融行业既须要数据单干来改善业务,但同时又必须对数据窃密这一矛盾。
二、同态加密与机器学习的联合
1. 互不信赖,但须要相互合作
笔者近来观看了一部经典香港警匪片——《线人》,该电影讲述了张家辉表演的刑事情报科督察李沧东与线人收取情报,最终破获案件的惊险过程。
抛开电影场景下险象环生、步步惊心的剧情,其本质跟引言处提到的窘境有殊途同归之处,那就是在互不信赖,但又须要互相合作的状况下,如何兼顾单方的权利。
下文将以电影中的情景登程,解析在信息不对称的场景下,联邦算法的信息加密与解密原理。(注:本文所有对于警匪博弈内容,仅限对电影剧情自身的探讨)。
如果你也喜爱看警匪片,可能对以下经典的情节印象粗浅:帅气的探长对案件大刀阔斧,要找凶手如海底捞针,于是偷偷分割上了线人。这线人混迹江湖多年,三教九流意识一大票,把握了不少小混混的信息,以此换取情报费。
例如,辖区产生了劫杀案,线人能提供辖区内小混混们最近买毒品的数量,探长就能优先去考察那些买毒品多,手头紧,更容易起歪念去打劫生财的人。
可探长并不知道线人手上的情报是否实在,所以须要先打探个虚实。同时,线人也放心信息提供进来就收不到钱了,毕竟也不是非法生意,因而单方往往形成僵局。
电影《线人》截图
2. 用技术突破僵局:同态加密
电影中,警探和线人都有本人的立场,在情报收取过程中,也因为立场的对抗和信息传播的矛盾导致了一些无法挽回的严重后果。但如果从技术角度来看,信息替换本不用如此麻烦。
如果探长岂但查案了得,还精通密码学和统计学,他就能够把问题解决得更加优雅一些:先让线人把小混混们依照过往购毒量分成高下两组,他本人也依据过往的档案把小混混们归类为犯案者和违法者。
如果线人手上信息牢靠,那高下两组的犯案者比例该当显著地不同,高购毒量一组犯案占比更大。
回顾一下咱们的场景限度,线人并不违心把信息间接给探长,探长更不能把信息间接给线人(不能把答案供进来了),于是探长应用了同态加密技术。
所谓同态加密是什么呢?咱们把原来人能看懂的有意义的信息叫做明文(例如犯案者和违法者标记),密文就是把明文通过加密后失去的,人看上去没有意义的信息。这个同态加密妙就妙在,把密文相加后再解密的后果,和间接对明文相加的后果是一样的。
同态加密的根本性质
首先咱们来想一下,不必明码的状况下,咱们是怎么去计算两组人的犯罪者比例差别的呢?
咱们会去数一个组里有总共有多少人,而后数外面有多少个犯罪者。如果是犯罪者,那就是犯罪者总数 +1,如果不是犯罪者,那就是犯案者总数 +0。
所以,咱们把犯罪者标记为 1,不是犯罪者标记为 0,把这些 1 和 0 全副加总在一起,就晓得了犯罪者总数,而后除以某组的总人数就晓得了犯罪者比例。
咱们用同态加密把下面这些 1 和 0 掩藏成线人看上去没有意义的信息,既能算出每一个分组犯罪者比例,同时线人也不晓得探长手上拿着的具体是什么信息。
总结起来就是,探长先把犯案者记为 1,违法者记为 0,而后把所有的 1 和 0 做同态加密,发给线人。后者则按探长批示把高下两组小混混的密文别离求和,而后把加总好的两组“密文的和”发还给探长。
探长通过解密,失去值就是各组犯案者的数量,除以每组的人数,就能够晓得两组当中犯案者的比例。如果有显著差别,就能够释怀给钱,失去最有可能立功的小混混清单了。
在这个过程中,探长的信息(谁是犯案者,谁是违法者)没有透露给线人,线人只失去了密文。线人手上的信息(哪些小混混买毒买得多)也没有透露给探长,探长只晓得两组小混混的犯案者比例而并不知道每一组有哪些小混混。
通过同态加密进行线索区分度验证
3. 现实生活中:风控和骗徒
上述场景看似有点和现实生活脱节,但真实世界当中这样的故事每天都在产生。
事实中会统计学的“探长们”不在警察局,而是在银行和贷款的公司风控部门当中,个别被称为金融风控分析师。而事实中的线人,则是领有银行所没有数据的其它组织,例如电信运营商(如挪动、联通),卡组织(如银联、VISA)或者政府部门等。
风控部门须要去辨认,哪些贷款申请人实际上是骗徒或者老赖,把他们剔除掉,免得银行的钱被骗走。
在这个过程中,因为银行和数据提供方都须要爱护本人的客户隐衷和商业秘密,所以也跟探长与线人一样,须要在不透露实在数据的状况下共同完成这个辨认工作。
而同态加密正是用到的其中一种办法,腾讯神盾 - 联邦计算把同态加密和机器学习算法联合起来,就成了以后最常见的联邦学习算法。
银行和数据领有方,既要单干,又要窃密
神盾 - 联邦计算通过提供一站式联邦学习平台,在金融机构和数据提供方单干当中作为联通数据的桥梁,分析师们无需关注算法底层密码学和机器学习革新的底层细节,鼠标简略点击即可实现联邦机器学习建模流程,同时又能确保单方数据都不透露,保障数据安全。
三、联邦梯度晋升树和联邦逻辑回归
基于前文所述,通过同态加密来验证数据辨别能力的基本原理,神盾 - 联邦计算对最罕用的决策树类算法梯度晋升树(XGBoost/GBDT)和线性模型类算法逻辑回归(Logistic Regression)别离进行了革新。上面咱们来看看革新是怎么进行的。
1. 联邦决策树算法:多个线索组合起来
让咱们再次回到探长与线人的故事中来。线人当初只提供了一个线索,也就是小混混们的购毒量,并且高下两组的犯案者比例的确是有显著差别的。
然而探长还不是很称心,因为高下低组的犯案者比例别离是:30%/5%,也就是说即便拿到购毒量大的小混混清单,外面也有 70% 不会立功。
探长想再准确一点,一抓一个准,让线人再提供一个线索。线人挠挠头说:行,我还晓得他们最近打零工的支出。探长大喜,但还是要留个心眼,先验证一下吧。
依照之前应用同态加密的方法,探长让线人依据购毒量和零工支出两个线索组合起来,分成了 4 个组,而后依照之前用同态加密的办法进行验证别离失去了四组小混混的犯案者比例:10%/5%/80%/30%。
购毒量大且零工支出低的这组混混,有 80% 可能立功,近乎能一抓一准。探长称心了。
多条线索组合计算更准确的犯罪率
这里其实还遗留了几个问题:
第一,购毒量和零工支出无效,这是探长依据教训所得悉的。在线人所理解的诸多线索当中,如果没有探长的教训,就只能用机器,通过上述同态加密的办法一一去试,从而找到两组犯案者比例差别最大的线索,这里称为联邦决策树当中的 变量搜寻。
第二,这里把小混混划分成高下两组,但到底多少是高,多少是低,划分点在哪其实也须要机器一个个可能性去试,这里称为联邦决策树中的 决裂点搜寻。
第三,当初只是两个线索的两两组合,共有四个组合。如果有 1000 条线索选三个来组合呢,那就有 1000X1000X1000,即一百万种组合须要计算的,这计算量太多了,须要算很久很久。
有个取巧的办法是,先做变量搜寻找到最有区分度的第一层变量,而后固定住第一层(如购毒量)再去搜寻第二层变量。如此类推,这样就只须要 1000+1000X2+1000X4(第一层 1 节点,第二层 2 节点,第三层四节点),即 7000 种组合须要计算,比 100 万少多了。
这种方法叫做 贪婪搜寻,就是每一层最佳的变量和决裂点选定后就不变了。
总结来看,通过同态加密的办法进行变量和决裂点的贪婪搜寻,在找到最能辨别犯案者和违法者的条件组合的同时,爱护探长和线人的信息都不走漏给对方。这就是联邦决策树算法。
在事实中,如果每一个变量和每一个决裂点都残缺进行同态加密,发送,求和,返回,解密,计算比例六步这整个流程,就须要在探长和线人中往返很屡次,速度难以承受。
因为咱们应用贪婪算法,所以在探长发送完同态密文给线人后,让线人把所有线索依照所有可能宰割点都先对立进行求和后再返回给探长一次性解密,探长再从中选出比例差别最大的变量和宰割点。这个所有线索依照所有可能宰割点都先对立进行求和,失去的后果叫做同态密文梯度直方图。
联邦决策树算法
上述就是联邦决策树的建模过程,如果咱们再往前一步,把多棵树联结起来,就能失去不同的集成模型(Ensemble)用以晋升成果。
例如应用雷同一份梯度同态密文屡次重复对特色和样本取样来建设多棵决策树,而后把多棵决策树的后果取均匀,就有了联邦随机森林模型(Random Forest)。
另外一个集成方向是每建设一棵树就用这个树的后果来更新梯度密文,后一棵树以上一棵树的后果为根底来训练,这就有了梯度晋升树(GBDT),其中驰名的实现就有 XGBoost 等。
2. 联邦逻辑回归:另一种可能性
神盾 - 联邦计算革新了的另一个罕用算法则是逻辑回归。
上文提到过,同态加密的个性是明文加密之后求和再解密,等价于明文间接求和。把这条性质衍生一下,那明文乘以密文再加密,等价于明文乘以明文。
例如 3* 密文,其实就是等于 密文 + 密文 + 密文。咱们利用这个性质能够帮忙探长和线人构建另一种模型:逻辑回归。
同态加密根本性质的衍生
前文所述的通过条件组合,如购毒量高且零工支出高,这种形式来组合多个线索,就失去了树模型。
那是否换一种线索组合的形式,例如:犯案可能性 = 购毒量线索的权重 x 购毒量 + 零工支出的权重 x 零工支出。咱们把这样的组合形式称为线性模型,其中最罕用的就是逻辑回归。因为这种模型是把多个线索的得分加起来预测犯案可能性,所以又叫做评分卡。
这里联邦算法惟一须要做的事便是确定每一项线索的权重,这里咱们能够用瞎猜的方法。线人轻易指定权重,计算得出每个人的犯案可能性,而后发给探长,探长再回答线人猜得有多准。
当然,这样子不晓得要到何年何月能力猜出足够好的一组权重了,所以科学家想出了很多让这个猜想过程更快的方法,其中一种就叫做梯度降落法。
逻辑回归
线人先瞎猜一组权重,而后通知探长后果。探长想了想,如果我间接回复他哪些小混混猜准了,哪些没猜准,他多猜几次不就把我的档案资料摸清楚了,所以不能间接给他。我能不能间接通知他每一个权重是多了还是少了,应该加多少或者减多少,这样就不会透露到底猜对了还是猜错了。
探长这里所想到的每一个权重值应该加多少或者减多少,其实就是所谓的梯度。通过减梯度值来尽快猜出一个最佳的权重值,这种办法就叫做梯度降落法。
其中最简略的梯度就是“线索的值”X“猜想的立功可能性与实在是否立功的差值”。这公式的推导须要微积分,但了解却不难。
前者是因为线索的值越大,对最终后果的影响越大,所以变动幅度要越大;后者则是变动的方向,猜多了要减一点,猜少了要加一点,差得远加减的幅度也要越大。
然而探长不能间接给出“猜想的立功可能性与实在是否立功的差值”,因为这样会让线人很快摸清档案真实情况。
探长心生一计,他把这个差值做了同态加密,发给线人,让线人应用所把握的“线索的值”计算出梯度的密文,也就是“线索的值”X“猜想的立功可能性与实在是否立功的差值的密文”,而后发还给探长进行解密。最初探长就能够只把梯度通知线人,而不须要把猜想正确与否透露进来了。
联邦逻辑回归梯度计算流程
把下面这个过程重复进行,直到猜来猜去准确性都没什么晋升了,就进行不猜了,被称为“收敛”了。
结语
在本文中,咱们从电影中探长与线人的博弈场景延长开展,探讨如何在单方都不走漏具体数据给对方的状况下进行数据单干。
借此介绍了同态加密的技术,而同态加密的特点是对密文求和再解密等价于对明文间接求和。同时介绍了神盾 - 联邦计算在此基础之上,对经典的梯度晋升树算法(GBDT)和逻辑回归算法(LR)进行了革新,从而让单方数据都不透露的状况下训练模型。
目前这两个算法已融入腾讯神盾体系,成为其中重要的能力,帮忙促成金融行业的信息共享单干。同时,神盾也在安全性、效率和算法的丰富性完整性方面投入研发,获得了功效,例如:
- 同态加密算法:神盾通过自研的 RIAC 同态加密零碎代替传统的 Paillier 零碎,让算法整体计算速度晋升 70%。
- 逻辑回归算法:神盾通过从新设计算法协定,剔除了可信第三方这个不平安设定,同时彻底罢黜了近似计算误差,使联邦逻辑回归成果跟传统逻辑回归完全一致。
- 决策树算法:神盾通过矩阵计算优化,将同态密文的梯度直方图计算速度晋升 70% 以上,使整体计算工夫缩小 50%。
- 非对称联邦技术:通过掺入假样本爱护金融机构的客户 ID 列表,同时不影响模型训练成果。
将来,神盾 - 联邦计算将持续致力于联通数据孤岛,让数据施展更大价值的同时,助力业务倒退。