1. 引言
金融领域的风险控制决策对于国民经济而言是值得关注的重要一环,有效的风险控制措施可以尽量遏制风险发生以及控制风险的破坏力,有助于保障国民经济的平稳运转。对银行业而言,现金流无疑是生命线,而信用卡透支服务作为商业银行的一项贷款业务则更是需要银行谨慎对待。传统的风险评估方法中,最终得到最广泛应用的是评分卡模型。1941年,Durand [1]提出的用于评估不良贷款的量化模型成为了评分卡模型的雏形,随后50年代,美国的Fair Isaac Company公司发明的FICO——即个人信用评分系统——成为了第一个正式的评分卡模型。最初的评分卡模型普遍属于线性模型的范畴,比较典型的例子是Altman (1968) [2]所提出的基于多元判别分析的Z-score模型,之后Altman等(1977) [3]又在Z-score模型的基础上提出了ZETA模型。这两个模型的缺陷在于两者均为线性判别模型,在面对非线性因素时往往表现不佳。20世纪80年代,Wiginton (1980) [4]首先建立了基于逻辑回归的信用评分模型,而这种基于逻辑回归的评分卡模型也成为了各大金融机构至今最常用的商业风险评估模型。
正如构建起基于逻辑回归算法的评分卡模型相比起传统线性判别模型更能有效处理非线性数据,引入机器学习算法的风控模型也形成了对传统评分卡模型的技术变革。图作为一种经典的数据结构,包含节点和边这两个要素,在风控领域上这种关联关系是易于被理解且易于挖掘关联关系的。近年来,研究人员借助卷积网络、循环网络、深度自动编码器等工具的思想,定义和设计了用于处理图数据的神经网络结构——图神经网络。Wu等(2019) [5]提出GNN主要分为以下四类:递归图神经网络、卷积图神经网络、图自动编码器和时空图神经网络。Scarselli等(2009) [6]在递归神经网络的基础上提出了最初的递归图神经网络算法GNN。卷积图神经网络分为谱域GNN和空域GNN两个流派,谱域GNN的理论基于对图的归一化拉普拉斯矩阵进行矩阵分解以及信号处理中的傅里叶变换,其中的经典论文包括Kipf等(2017) [7]基于切比雪夫多项式近似提出的GCN以及He等(2022) [8]基于Bernstein多项式近似提出的BernNet;空域GNN则是基于传统的卷积神经网络方法直接对图进行卷积操作,经典论文包括Micheli (2009) [9]提出的Neural Network for Graph (NN4G)以及Gilmer等(2017) [10]提出的Massage Passing for Neural Networks (MPNN)。
在信贷风控领域,把原始数据构建成图数据是完全符合逻辑和实际业务需求的,而且图数据结构作为一种非欧氏空间数据结构也符合原始数据的非欧氏空间特点。解决了数据的问题,学界又基于旧有的CNN研究,在CNN算法的基础上将其转换为适用于图数据结构的图卷积神经网络算法。这类算法的目标就是希望克服CNN算法面对非欧氏空间数据表现不佳的窘境,并试图挖掘隐藏于非欧氏空间数据结构中的隐式关系,从而提升模型的性能。与此同时,图卷积神经网络算法可以充分利用节点与边之间的关联关系,从而实现识别异常节点与异常边的功能。
2. 本文使用的模型算法
2.1. 逻辑回归
逻辑回归是一种统计建模方法,是广义线性模型(Generalized Linear Models, GLM)的一种特殊形式,它使用对数几率函数将特征和目标变量之间的关系建模为概率。该模型不仅能够处理二分类问题,还能很好地处理多分类问题。从原理上看,它通过建立代价函数,然后通过优化方法迭代求解出最优的模型参数,最终用于预测事件发生的概率。逻辑回归的因变量是一个概率值,范围在0和1之间。逻辑回归通过Sigmoid函数将线性回归的结果映射到(0, 1)范围内,从而表示事件发生的概率。逻辑回归的模型估计采用极大似然估计方法,通过优化损失函数来求解最优参数。逻辑回归的模型可以表示为:
(1)
其中,
表示在给定特征向量X的条件下,目标变量Y取值为1的概率,
是参数向量
与特征向量
的内积。
2.2. 图卷积网络
图卷积网络(Graph Convolutional Network, GCN)是一种用于图结构数据的深度学习模型。GCN模型的基本思想是通过图卷积操作来学习节点的表示,从而可以用于节点分类、图分类等任务。
对于一个图
,其中
是节点集合,
是边集合。设
是节点特征矩阵,
是图的邻接矩阵,
是度矩阵,那么GCN模型的第
层的输出可以表示为:
(2)
其中,
是第
层的节点表示矩阵,
是邻接矩阵加上单位矩阵,
是
的度矩阵,
是第
层的权重矩阵,
是非线性激活函数。
3. 使用数据集及预处理工作
3.1. 数据简要介绍
本章所使用的数据来源于阿里云天池平台的金融守护者:金融风险预测赛,该比赛任务为预测用户贷款是否违约。数据集来自某信贷平台的贷款记录,总数据量达到800,000条,包含47列变量信息,其中15列为匿名变量,数据集具体变量情况如表1所示。
Table 1. Loan repayment willingness prediction dataset
表1. 贷款还款意愿预测数据集
变量名称 |
变量描述 |
id |
为贷款清单分配的唯一信用证标识 |
loanAmnt |
贷款金额 |
term |
贷款期限(year) |
interestRate |
贷款利率 |
installment |
分期付款金额 |
grade |
贷款等级 |
subGrade |
贷款等级之子级 |
employmentTitle |
就业职称 |
employmentLength |
就业年限(年) |
homeOwnership |
借款人在登记时提供的房屋所有权状况 |
annualIncome |
年收入 |
verificationStatus |
验证状态 |
issueDate |
贷款发放的月份 |
purpose |
借款人在贷款申请时的贷款用途类别 |
postCode |
借款人在贷款申请中提供的邮政编码的前3位数字 |
regionCode |
地区编码 |
dti |
债务收入比 |
delinquency_2years |
借款人过去2年信用档案中逾期30天以上的违约事件数 |
ficoRangeLow |
借款人在贷款发放时的fico所属的下限范围 |
ficoRangeHigh |
借款人在贷款发放时的fico所属的上限范围 |
openAcc |
借款人信用档案中未结信用额度的数量 |
pubRec |
贬损公共记录的数量 |
pubRecBankruptcies |
公开记录清除的数量 |
revolBal |
信贷周转余额合计 |
revolUtil |
循环额度利用率,或借款人使用的相对于所有可用循环信贷的信贷金额 |
totalAcc |
借款人信用档案中当前的信用额度总数 |
initialListStatus |
贷款的初始列表状态 |
applicationType |
表明贷款是个人申请还是与两个共同借款人的联合申请 |
earliesCreditLine |
借款人最早报告的信用额度开立的月份 |
title |
借款人提供的贷款名称 |
policyCode |
公开可用的策略_代码 = 1新产品不公开可用的策略_代码 = 2 |
n系列匿名特征 |
匿名特征n0~n14,为一些贷款人行为计数特征的处理 |
该数据集47列变量信息中包含46个特征列和1个标签列(isDefault),而在46个特征列当中,有15个特征列(从n0到n14)为匿名变量,而employmentTitle、purpose、postCode和title这四个特征列进行了脱敏处理。
3.2. 数据预处理工作
针对数据存在的缺失值问题,需要针对连续数值型变量和分类型变量分别采用均值插补和众数插补的方案,因为这些存在缺失值的连续数值型变量并未出现严重的偏态情况。利用Python进行缺失值填补后,可以发现employmentLength即就业年限这一变量依然存在缺失值,这一变量的变量值类型为object,并非数字,因此选择考虑采用模型插补法对该变量的缺失值进行填补。本研究将采用决策树方法对缺失值进行预测,并使用预测值对缺失值进行插补。
针对变量的特征交叉问题,可以将贷款发放时的年份减去借款人信用额度开立的年份,得到一个新的变量CreditLine用来代表开卡年限,这一变量从直观上看也是能够用于还款意愿预测的。
针对分类型变量,比如就业年限(employmentLength)这一变量,将其进行简单的序号编码,比如变量值为“<1 year”的改为0,值为“9 years”的改为9,值为“10+ years”的改为10;接下来对于剩余的分类型变量——比如“homeownership”(借款人在登记时提供的房屋所有权状况)、“verificationStatus”(验证状态)、“purpose”(借款人在贷款申请时的贷款用途类别)等——而言,通常无法量化分类型变量取值之间的等级差异或者取值之间根本就不存在等级差异,因此需要针对这些变量进行虚拟变量化处理,并将原变量予以删除。
针对某些低方差变量、相关性系数过小的变量以及存在高相关性的变量,需要予以删除;综上所述,本研究考虑删除“id”、“initialListStatus”、“n5”、“n11”、“n12”、“n8”、“postCode”、“policyCode”、“installment”、“ficoRangeHigh”、“openAcc”、“n3”、“n9”和“applicationType”这些变量。
针对样本不平衡问题,将采用过采样(over sampling)的方法来解决此问题。过采样方法通过增加分类中少数类样本的数量来实现样本均衡,最直接的方法是简单复制少数类样本形成多条记录。
4. 数据建模工作
4.1. 模型预测评价标准
本论文将采用准确率、AUC值和F1分数这三种指标来评价两种模型的预测效果。
准确率是分类正确的样本数与总样本数的比率。准确率通常用来衡量模型在整个数据集上的性能,但在不平衡类别的情况下可能不太适用。
AUC值,即曲线下面积,是评估分类模型性能的一个重要指标。它代表了模型的接收者操作特征曲线(Receiver Operating Characteristic Curve,简称ROC曲线)下的面积。ROC曲线是一个二维曲线,横轴表示假正率(False Positive Rate, FPR),纵轴表示真正率(True Positive Rate, TPR)。AUC值的范围从0到1,值越大表示模型的分类性能越好。
F1分数是精确率和召回率的调和平均值,用于综合评估模型的性能。它对精确率和召回率都进行了考虑,特别适用于不平衡类别的情况。
4.2. 使用逻辑回归方法对数据建模并预测
经过3.2节数据预处理工作后得到的数据可以用于逻辑回归模型的建模过程。训练开始前,本研究使用python的train_test_split函数将该数据集分割为训练集与测试集两个部分,分割比例为4:1,所有的模型均使用该分割比例进行训练和预测。考虑到3.2节提及到的样本不平衡问题,本研究选择过采样方法处理后训练集由640,000条数据变为1,024,438条,测试集160,000条数据不进行过采样操作。
使用逻辑回归模型训练后的预测结果如下:该模型在测试集上的准确率为0.6176,F1分数为0.4105,AUC值为0.6888,混淆矩阵如图1所示,ROC曲线如图2所示。
Figure 1. Confusion matrix of logistic regression model
图1. 逻辑回归模型混淆矩阵
Figure 2. ROC curve of logistic regression model
图2. 逻辑回归模型ROC曲线
4.3. 使用图神经网络方法对数据建模
4.3.1. 构造图数据结构
数据的原始形式为csv表格,想要使用GNN方法进行建模就必须要将原始的数据结构转换为图结构形态。根据中国农业银行发布的专利[11],本论文采用相似的标准来确认节点和边,从而构造图数据。
图数据结构的节点为原数据集的每个用户,用户的数据作为节点特征。图数据结构的边(即节点之间存在的连接关系)需要满足以下条件才可形成:首先两个节点要满足同为违约/不违约用户;其次两个节点的“贷款等级”之差不大于一级;接着两个节点的地区编码变量需要相同;最后两个节点的债务收入比(dti)之差的绝对值需要小于一个阈值。
这一构建标准很容易理解,贷款等级相近且债务收入比相近的两个违约用户(或不违约用户)自然而然是具有较强的相似性以及相关联程度的,而不同地区经济发展水平的不同也会使得在不同地区生活的人的偿还能力产生不同。总而言之,上述由人工制定的约束规则是基于信贷领域业务实践中的经验而制定的,本研究认为由这样的方式构建节点之间的边能够更好地挖掘节点之间可能隐含的关联关系。
针对节点特征,需要对列变量进行归一化处理以去除量纲带来的影响,随后利用torch_geometric库构建图数据,并在构建中选择创建无向图以及节点特征进行标准化,最后构建的图数据的可视化结果如图3所示。图3中左边的图为构建后整个图数据的节点及边的可视化结果,而右边的图则是经过随机采样后得到的随机子图的可视化结果,每个节点的数字代表节点在原始表格数据中的索引。
Figure 3. Visualization result of graph-structured data
图3. 图结构数据可视化结果
4.3.2. GCN建模结果
本研究采用的GCN模型使用log_softmax函数作为输出层的损失函数,使用torch.optim.Adam作为优化器,学习率为0.01,权重衰减为0.0005,模型迭代训练1000次。
该图数据训练集与测试集的划分是基于节点进行划分的,将节点按照训练集与测试集为4:1的比例进行随机分配,然后对所有节点进行mask操作,被划分为训练集的节点其train_mask值为1,test_mask值为0,被划分为测试集的节点则与之相反。
最终GCN模型的训练结果如下:该模型在测试集上的准确率为0.7940,F1分数为0.6747,AUC值为0.7647。
5. 总结与展望
本论文针对阿里云平台的公开数据集,使用传统的逻辑回归方法和图神经网络方法分别针对还款意愿问题进行建模,并对预测结果进行对比分析,可以发现使用图神经网络方法进行预测的三项指标全面优于逻辑回归方法,由此可以认为基于GCN构建的还款意愿预测模型在该数据集上全面优于基于传统评分卡方法构造的模型。
然而图神经网络方法在算力花费上是无法和评分卡模型相提并论的,设计算力消耗与时空复杂度更低的图神经网络算法无疑是未来的研究方向,克服这一局限将有力推动金融风控领域的技术进步;与此同,时本文在构建图数据的环节仅选择使用了一种符合直觉的方式构建节点之间的关联关系,并未针对更多可能的构建方式进行研究,这也是未来可行的一个研究方向。