文章目录
1. 联邦学习
1.1 数据孤岛
现实生活中,除了少数巨头公司能够满足,绝大多数企业都存在数据量少,数据质量差的问题,不足以支撑人工智能技术的实现;同时国内外监管环境也在逐步加强数据保护,陆续出台相关政策,如欧盟最近引入 的新法案《通用数据保护条例》(GDPR),我国国家互联网信息办公室起草的《数据安全管理办法(征求意见稿)》,因此数据在安全合规的前提下自由流动,成了大势所趋;在用户和企业角度下,商业公司所拥有的数据往往都有巨大的潜在价值。
两个公司之间,甚至公司内部不同部门之间的数据往往都各自存储,各自定义。这样每个公司,或者公司不同部门之间的数据像一个个孤岛一样,无法(或者极其困难)在企业之间,或企业内部不同部门之间进行链接和互动。这样的情况称为数据孤岛,简单说就是数据间缺乏关联性,数据库彼此无法兼容。
专业人士把数据孤岛分为物理性和逻辑性两种。物理性的数据孤岛指的是,数据在不同部门相互独立存储,独立维护,彼此间相互孤立,形成了物理上的孤岛。逻辑性的数据孤岛指的是,不同部门站在自己的角度对数据进行理解和定义,使得一些相同的数据被赋予了不同的含义,无形中加大了跨部门数据合作的沟通成本。
1.2 联邦学习背景
联邦学习技术及数据隐私保护大会上明确提出了“联邦机器学习”这个概念。 数据是机器学习的基础 。而在大多数行业中,由于行业竞争、隐私安全、行政手续复杂等问题,数据常常是以孤岛的形式存在的。甚至即使是在同一个公司的不同部门之间实现数据集中整合也面临着重重阻力。在现实中想要将分散在各地、各个机构的数据进行整合几乎是不可能的,或者说所需的成本是巨大的。随着人工智能的进一步发展,重视数据隐私和安全已经成为了世界性的趋势。每一次公众数据的泄露都会引起媒体和公众的极大关注,例如Facebook的数据泄露事件就引起了大范围的抗议行动。
同时各国都在加强对数据安全和隐私的保护,欧盟最近引入的新法案《通用数据保护条例》(General Data Protection Regulation, GDPR)表明,对用户数据隐私和安全管理的日趋严格将是世界趋势。要解决大数据的困境,仅仅靠传统的方法已经出现瓶颈。两个公司简单的交换数据在很多法规包括GDPR框架下是不允许的。用户是原始数据的拥有者,在用户没有批准的情况下,公司间是不能交换数据的。
针对数据孤岛和数据隐私的两难问题,多家机构和学者提出解决办法。针对手机终端和多方机构数据的隐私问题,谷歌公司和微众银行分别提出了不同的“联邦学习”(Federated Learning)算法框架。谷歌公司提出了基于个人终端设备的“联邦学习”(Federated Learning)算法框架,而AAAI Fellow 杨强教授与微众银行随后提出了基于“联邦学习”(Federated Learning)的系统性的通用解决方案,可以解决个人(2C)和公司间(2B)联合建模的问题。在满足数据隐私、安全和监管要求的前提下,设计一个机器学习框架,让人工智能系统能够更加高效、准确的共同使用各自的数据。
1.3 联邦学习的概念及作用
联邦机器学习(Federated machine learning/Federated Learning),又名联邦学习,联合学习,联盟学习。联邦机器学习是一个机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。
联邦学习作为分布式的机器学习范式,可以有效解决数据孤岛问题,让参与方在不共享数据的基础上联合建模,能从技术上打破数据孤岛,实现AI协作。谷歌在2016年提出了针对手机终端的联邦学习,微众银行AI团队则从金融行业实践出发,关注跨机构跨组织的大数据合作场景,首次提出“联邦迁移学习”的解决方案,将迁移学习和联邦学习结合起来。据杨强教授在“联邦学习研讨会”上介绍,联邦迁移学习让联邦学习更加通用化,可以在不同数据结构、不同机构间发挥作用,没有领域和算法限制,同时具有模型质量无损、保护隐私、确保数据安全的优势。
联邦学习定义了机器学习框架,在此框架下通过设计虚拟模型解决不同数据拥有方在不交换数据的情况下进行协作的问题。虚拟模型是各方将数据聚合在一起的最优模型,各自区域依据模型为本地目标服务。联邦学习要求此建模结果应当无限接近传统模式,即将多个数据拥有方的数据汇聚到一处进行建模的结果。在联邦机制下,各参与者的身份和地位相同,可建立共享数据策略。由于数据不发生转移,因此不会泄露用户隐私或影响数据规范。为了保护数据隐私、满足合法合规的要求。
联邦学习有三大构成要素:数据源、联邦学习系统、用户。三者间关系如图所示,在联邦学习系统下,各个数据源方进行数据预处理,共同建立及其学习模型,并将输出结果反馈给用户。
1.4 联邦学习分类
根据参与各方数据源分布的情况不同,联邦学习可以被分为三类:横向联邦学习、纵向联邦学习、联邦迁移学习。
1.4.1 横向联邦学习(Horizontal Federated Learning)
1.4.1.1 概念
横向联邦学习的本质是样本的联合,适用于参与者间业态相同但触达客户不同,即特征重叠多,用户重叠少时的场景,比如不同地区的银行间,他们的业务相似(特征相似),但用户不同(样本不同)。
联合多个参与者的具有相同特征的多行样本进行联邦学习,即各个参与者的训练数据是横向划分的,称为横向联邦学习(Horizontal Federated Learning) 。横向联邦学习也称为特征对齐的联邦学习(Feature-Aligned Federated Learning),即横向联邦学习的参与者的数据特征是对齐的。横向联邦可以增加训练样本总量。
1.4.1.2 学习过程
- step1:参与方各自从服务器A下载最新模型;
- step2:每个参与方利用本地数据训练模型,加密梯度上传给服务器A,服务器A聚合各用户的梯度更新模型参数;
- step3:服务器A返回更新后的模型给各参与方;
- step4:各参与方更新各自模型。
在传统的机器学习建模中,通常是把模型训练需要的数据集合到一个数据中心然后再训练模型,之后预测。在横向联邦学习中,可以看作是基于样本的分布式模型训练,分发全部数据到不同的机器,每台机器从服务器下载模型,然后利用本地数据训练模型,之后返回给服务器需要更新的参数;服务器聚合各机器上的返回的参数,更新模型,再把最新的模型反馈到每台机器。
在这个过程中,每台机器下都是相同且完整的模型,且机器之间不交流不依赖,在预测时每台机器也可以独立预测,可以把这个过程看作成基于样本的分布式模型训练。谷歌最初就是采用横向联邦的方式解决安卓手机终端用户在本地更新模型的问题的。
1.4.2 纵向联邦学习(Vertical Federated Learning)
1.4.2.1 概念
纵向联邦学习的本质是特征的联合,适用于用户重叠多,特征重叠少的场景,比如同一地区的商超和银行,他们触达的用户都为该地区的居民(样本相同),但业务不同(特征不同)。
联合多个参与者的共同样本的不同数据特征进行联邦学习,即各个参与者的训练数据是纵向划分的,称为纵向联邦学习(Vertical Federated Learning) 。纵向联邦学习也称为样本对齐的联邦学习(Sample-Aligned Federated Learning),即纵向联邦学习的参与者的训练样本是对齐的。纵向联邦可以增加训练数据特征维度。
1.4.2.2 学习过程
纵向联邦学习的本质是交叉用户在不同业态下的特征联合,比如商超A和银行B,在传统的机器学习建模过程中,需要将两部分数据集中到一个数据中心,然后再将每个用户的特征join成一条数据用来训练模型,所以就需要双方有用户交集(基于join结果建模),并有一方存在label。其学习步骤如上图所示,分为两大步:
第一步:加密样本对齐。是在系统级做这件事,因此在企业感知层面不会暴露非交叉用户。
第二步:对齐样本进行模型加密训练:
- step1:由第三方C向A和B发送公钥,用来加密需要传输的数据;
- step2:A和B分别计算和自己相关的特征中间结果,并加密交互,用来求得各自梯度和损失;
- step3:A和B分别计算各自加密后的梯度并添加掩码发送给C;
- step4:C解密梯度和损失后回传给A和B,A、B去除掩码并更新模型。
1.4.3 联邦迁移学习(Federated Transfer Learning,FTL)
1.4.3.1 概念
香港科技大学杨强教授和微众银行AI团队,提出了联邦迁移学习 (Federated Transfer Learning, FTL)。FTL将联邦学习的概念加以推广,强调在任何数据分布、任何实体上,均可以进行协同建模学习。当参与者间特征和样本重叠都很少时可以考虑使用联邦迁移学习,如不同地区的银行和商超间的联合。主要适用于以深度神经网络为基模型的场景。
迁移学习,是指利用数据、任务、或模型之间的相似性,将在源领域学习过的模型,应用于目标领域的一种学习过程。
1.4.3.2 学习过程
FTL 的工作流程如图所示。在训练一个模型时,A 和 B 双方首先计算并加密他们的中间结果,包括梯度和损失。然后由第三方收集并解密梯度和损失。最后,A 和 B 收到汇总结果并更新各自的模型。为了避免在反向传播过程中暴露参与方的数据,FTL 采用同态加密保证安全性,利用多项式差分近似来保证隐私性。与经典 FL 中将原始数据和模型保存在本地的处理方法不同,FTL 在数据传输之前,会令参与方对梯度进行加密,并使用一些技术如添加随机掩码等,以防止参与方在任务的任何阶段猜测得到对方的信息。
2. 金融风控常见概念
2.1 WOE
2.1.1 定义
WOE的全称是“Weight of Evidence”,即证据权重。WOE是对原始自变量的一种编码形式。
要对一个变量进行WOE编码,需要首先把这个变量进行分箱。分箱后,对于第i组,WOE的计算公式如下:
W
O
E
i
=
l
n
(
B
a
d
i
B
a
d
T
/
G
o
o
d
i
G
o
o
d
T
)
=
l
n
(
B
a
d
i
B
a
d
T
)
−
l
n
(
G
o
o
d
i
G
o
o
d
T
)
WOE_i = ln(\frac{Bad_i}{Bad_T}/\frac{Good_i}{Good_T}) = ln(\frac{Bad_i}{Bad_T})-ln(\frac{Good_i}{Good_T})
WOEi=ln(BadTBadi/GoodTGoodi)=ln(BadTBadi)−ln(GoodTGoodi)
通俗的解释就是:WOE = ln (第i个分箱的坏人数 / 第i个分箱的好人数) - ln (总坏人数 / 总好人数)
2.1.2 WOE的作用
处理缺失值: 当数据源没有100%覆盖时,那就会存在缺失值,此时可以把null单独作为一个分箱。这点在分数据源建模时非常有用,可以有效将覆盖率哪怕只有20%的数据源利用起来。
处理异常值: 当数据中存在离群点时,可以把其通过分箱离散化处理,从而提高变量的鲁棒性(抗干扰能力)。例如,age若出现200这种异常值,可分入“age > 60”这个分箱里,排除影响。
业务解释性: 我们习惯于线性判断变量的作用,当x越来越大,y就越来越大。但实际x与y之间经常存在着非线性关系,此时可经过WOE变换。
2.2 IV
2.2.1 定义
IV的全称是Information Value,中文意思是信息价值,或者信息量。IV的计算公式定义如下,其可认为是WOE的加权和。
I
V
i
=
(
B
a
d
i
B
a
d
T
−
G
o
o
d
i
G
o
o
d
T
)
∗
W
O
E
i
=
(
B
a
d
i
B
a
d
T
−
G
o
o
d
i
G
o
o
d
T
)
∗
l
n
(
B
a
d
i
B
a
d
T
/
G
o
o
d
i
G
o
o
d
T
)
I
V
=
∑
i
=
1
n
I
V
i
IV_i = (\frac{Bad_i}{Bad_T}-\frac{Good_i}{Good_T})*WOE_i \\ = (\frac{Bad_i}{Bad_T}-\frac{Good_i}{Good_T})*ln(\frac{Bad_i}{Bad_T}/\frac{Good_i}{Good_T})\\ IV = \sum_{i=1}^nIV_i
IVi=(BadTBadi−GoodTGoodi)∗WOEi=(BadTBadi−GoodTGoodi)∗ln(BadTBadi/GoodTGoodi)IV=i=1∑nIVi
2.2.2 IV的作用
在用逻辑回归、决策树等模型方法构建分类模型时,经常需要对自变量进行筛选。挑选入模变量过程是个比较复杂的过程,需要考虑的因素很多,比如:变量的预测能力,变量之间的相关性,变量的简单性,变量的强壮性,变量在业务上的可解释性等等。但是,其中最主要和最直接的衡量标准是变量的预测能力。IV是一种可以用来衡量自变量的预测能力的指标,用来确定哪些变量进入模型。类似的指标还有信息增益、基尼系数等等。
IV范围 | 预测效果 |
---|---|
小于0.02 | 几乎没有 |
0.02~0.1 | 弱 |
0.1~0.3 | 中等 |
0.3~0.5 | 强 |
大于0.5 | 难以置信,需确认 |
2.3 ROC与AUC
2.3.1 二分类模型混淆矩阵
预测为真(True) | 预测为假(False) | |
---|---|---|
实际为真 | TP | FN |
实际为假 | FP | TN |
精确率 = T P T P + F P \frac{TP}{TP+FP} TP+FPTP
召回率 = T P T P + F N \frac{TP}{TP+FN} TP+FNTP
FPR = F P F P + T N \frac{FP}{FP+TN} FP+TNFP
TPR = T P T P + F N \frac{TP}{TP+FN} TP+FNTP
2.3.2 ROC的定义
ROC(Receiver Operating Characteristic)曲线,又称接受者操作特征曲线。该曲线最早应用于雷达信号检测领域,用于区分信号与噪声。后来人们将其用于评价模型的预测能力,ROC曲线是基于混淆矩阵得出的。一个二分类模型的阈值可能设定为高或低,每种阈值的设定会得出不同的 FPR 和 TPR ,将同一模型每个阈值的 (FPR, TPR) 坐标都画在 ROC 空间里,就成为特定模型的ROC曲线。ROC曲线横坐标为假阳率(FPR),纵坐标为真阳率(TPR)。
2.3.3 AUC
AUC(Area Under Curve)被定义为ROC曲线下的面积。
2.3.4 ROC与AUC的意义
ROC曲线能很容易的查出任意阈值对学习器的泛化性能影响。有助于选择最佳的阈值。ROC曲线越靠近左上角,模型的准确性就越高。最靠近左上角的ROC曲线上的点是分类错误最少的最好阈值,其假正例和假反例总数最少。ROC曲线可以对不同的学习器比较性能。将各个学习器的ROC曲线绘制到同一坐标中,直观地鉴别优劣,靠近左上角的ROC曲所代表的学习器准确性最高。
绘制ROC曲线简单、直观、通过图示可观察分析学习器的准确性,并可用肉眼作出判断。ROC曲线将真正例率和假正例率以图示方法结合在一起,可准确反映某种学习器真正例率和假正例率的关系,是检测准确性的综合代表。ROC曲线不固定阈值,允许中间状态的存在,利于使用者结合专业知识,权衡漏诊与误诊的影响,选择一个更加的阈值作为诊断参考值。
如果两条ROC曲线没有相交,我们可以根据哪条曲线最靠近左上角哪条曲线代表的学习器性能就最好。但是,实际任务中,如果两条ROC曲线发生了交叉,则很难一般性地断言谁优谁劣。在很多实际应用中,我们往往希望把学习器性能分出个高低来。在此引入AUC面积。
在进行学习器的比较时,若一个学习器的ROC曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者;若两个学习器的ROC曲线发生交叉,则难以一般性的断言两者孰优孰劣。此时如果一定要进行比较,则比较合理的判断依据是比较ROC曲线下的面积,即AUC(Area Under ROC Curve)。面积越大可以认为学习器性能越好。
2.4 KS
2.4.1 KS曲线
训练出来的模型,一般不是直接给出是正类还是负类的结果,给的是为正类的概率,我们还需要选择一个阈值,实例通过模型得到的概率大于阈值,判断为正类,小于阈值判断为负类。也就是说阈值的不同,以上的各个指标的值也是不同的。把阈值看成自变量,以上TPR、和FPR看成因变量,在二维坐标系里面做关系曲线,这就是KS曲线。
蓝色线:TPR;绿色线:FPR;红色线:TPR - FPR
2.4.2 KS值
最高点就是所谓的KS值,用KS值来作为评估模型区分能力的指标,KS值越大,模型的区分能力越强。公式如下:
K
S
=
M
A
X
(
T
P
R
−
F
P
R
)
KS=MAX(TPR-FPR)
KS=MAX(TPR−FPR)
2.5 PSI
2.5.1 PSI的理解
系统稳定性,直观上的理解,通常是指某项指标波动小(低方差),指标曲线几乎是一条水平的直线。在数学上,我们通常可以用变异系数(Coefficient of Variation,CV)来衡量这种数据波动水平。变异系数越小,代表波动越小,稳定性越好。在机器学习建模时,我们基于假设“历史样本分布等于未来样本分布”。因此,我们通常认为:模型或变量稳定 <=> 未来样本分布与历史样本分布之间的偏差小。然而,实际中由于受到客群变化(互金市场用户群体变化快)、数据源采集变化(比如爬虫接口被风控了)等等因素影响,实际样本分布将会发生偏移,就会导致模型不稳定。
PSI(Population Stability Index,客群稳定性指数),反映了验证样本在各分数段的分布与建模样本分布的稳定性。在建模中,我们常用来筛选特征变量、评估模型稳定性。
2.5.2 PSI的计算
因评分卡一般是用以往的数据预测未来的数据,那么评分卡的训练集和测试集之间就存在明显的时间先后顺序,以评分卡为例,
A
i
A_i
Ai表示第i个分箱的分数在所有分数中的占比,
E
i
E_i
Ei表示实际第i个分箱的分数在所有分数中的占比,那么PSI的计算公式就是:
P
S
I
=
∑
i
=
1
n
(
A
i
−
E
i
)
∗
l
n
(
A
i
/
E
i
)
PSI = \sum_{i=1}^n(A_i-E_i)*ln(A_i/E_i)
PSI=i=1∑n(Ai−Ei)∗ln(Ai/Ei)
文字解释就是:PSI = SUM((实际占比-预期占比)*ln(实际占比/预期占比))
PSI数值越小,两个分布之间的差异就越小,代表越稳定,一般衡量指标如下:
PSI指标 | 稳定性 | 建议事项 |
---|---|---|
0~0.1 | 好 | 没有变化或者很少变化 |
0.1~0.25 | 略不稳定 | 有变化,继续监控后续变化 |
大于0.25 | 不稳定 | 发生大变化,进行特征项分析 |