实战 | 基于NLP文本相似技术实现生产事件智能审核
欢迎金融科技工作者积极投稿!
投稿邮箱:newmedia@fcmag.com.cn
——金融电子化
文 / 华夏银行信息科技部 关杏元 李大伟
柏便景
数字经济时代,提升传统业务效率,实现各业务环节数字化和智能化,可助力银行在有限的资源投入下降本增效、加快转型。近年来非结构化文本数据已经成为银行数据中的重要组成部分,其挖掘需求也呈井喷式增长。相似文本是自然语言处理(Natural Language Processing,NLP)应用领域的一个经典技术,该技术作为文本挖掘的一种重要手段,可广泛应用于文档检索、web搜索、推荐、对话等场景中。目前也已成为银行智能客服、智能营销、智能运营、智能监管等领域的关键技术。本文介绍如何运用NLP相似文本技术解决生产事件的智能审核问题,总结提炼出相似文本一类任务的解决思路,供大家参考。
问题背景
运营管理部是商业银行的一个重要职能部门,运营支持人员日常会收到大量来自总行或分行的生产问题申请单,长期以来,主要依靠有经验的人员跟进处理。首先需要人工从数据库导出报表明细,然后通过手动搜索关键字的方式进行人工比对,最终决定工单打回或者转发,耗时耗力。随着业务的不断发展,历史单据积累越来越多,进一步加大了工作繁琐度和难度。
经过研究,我们发现NLP相似文本技术非常适合用于解决文本处理领域的检索比对任务。NLP相似文本技术的主体思路是首先构建文本表示模型,提取单据中的文本特征信息,再通过相似度度量,快速有效地从大量历史数据中获取相似的文本。
整体解决方案
结合具体需求,我们采用NLP相似文本有关技术,设计了如图1所示的整体流程作为解决方案。首先将单据进行文本表示,生成文本向量库,之后将待匹配文本向量在单据向量索引库中进行匹配搜索,实现了系统高效自动比对申请单。最后,根据比对结果,将相似申请单自动备注并退回申请机构确认,将非重复申请单根据申请单内容自动分派至相关部门进行评估。
图1 流程图
实现过程
本文采用的数据是我行2018至2020年部分优化建议流程的历史申请单共XXXX条,据此按照训练集与测试集9:1的比例关系进行随机拆分,使用基于TF_IDF的离散式文本表示模型、基于静态表征的Doc2Vec文本表示模型以及基于动态表征的BERT模型分别进行实验。最终通过对比论证选取了适合本业务方法。考虑到全部历史单据量级较大,引入了近似最近邻检索方法提升匹配效率。
1.文本表示模型
(1)基于TF-IDF的离散式文本表示模型
首先进行中文分词,本次实验使用Python版的Jieba分词工具包来执行分词操作。一般而言直接切分效果不会理想,为此我们构建了银行常用业务词库,以此提升分词的准确性。如图2所示,第一个红框内的内容是分词前的记录,第二个红框内的内容是分词后的记录。
图2 分词效果
分词之后,引入了常用停用词库,进行停用词去除操作。之后通过计算各词的TF-IDF值生成文本向量表示,用于之后的相似度计算。
(2)基于静态表征的Doc2Vec文本表示模型
Doc2Vec基于Word2Vec,并在Word2Vec基础上增加了一个段落向量(paragraph vector),在训练模型的时候,为每一个word预测的同时考虑到文章的整体信息,给每一个单词都赋予了文章主旨,因此,在进行文本相似度计算的时候,也就更多考虑到了文章整体的中心思想。
Doc2Vec使用无监督方法利用上下文对文本向量进行训练,解决了文本中词序和语义问题、词袋模型的高维稀疏问题。Doc2Vec能够接受不同长度的句子做训练样本,但固定表征中词和向量一对一,无法解决多义词问题。
使用Doc2Vec训练模型同样也需要进行分词,去除停用词(还包括去特殊符号、去空格等),之后还需要处理成模型训练需要的格式,输入样本为[句子,句子序号],然后设置训练参数进行训练。
本次建模设置epochs迭代次数是100,向量维度为200,min_count最小出现次数设置为2,alpha初始学习速率使用默认值0.025。
训练完毕后,针对待预测文本,同样经过分词、去除停用词等处理,然后通过训练好的模型进行文本向量化操作获取文本向量,用于之后的相似度计算。
(3)基于动态表征的BERT文本表示模型
谷歌官方公布的BERT中文版预训练模型只有BERTBASE,它有12层 Transformer,隐藏层大小是768,多头自注意力模块有12个头,本文在BERTBASE预训练模型的基础上,再使用自己的数据进行训练,从而既能快速利用已有模型又能进一步学习到自己语料的特征。然而即便使用GPU,训练时间也可达到了数小时之久,对硬件资源要求较高。
需要说明的是,与前两个表征模型不同,基于 BERT的表征模型的输入是原始文本,不需要进行分词处理,但是需要进行段落和句子间标识处理。在模型微调中,我们将初始学习率设置为0.0001,BATCH SIZE设置为16。
2.相似度计算
本文采用无监督方法计算两个文本表示向量的相似度,这类方法不需要标注语料、特征工程或者参数估计,且距离计算环节复杂度较低。
表1 常见距离计算方法
对于两个待计算相似度的文本X、Y,其特征表达分别为X=(x1,x2,···,xn),Y=(y1,y2,···,yn),业界中常见的向量距离计算的方式如表1,本文最终采用了更适合推荐类的余弦相似度来计算,计算结果如图3所示。
图3 结果示例
3.模型效果分析
为了更加直观方便地观察文本模型相似度计算任务的有效性,本文在得到文本相似度结果后,通过设定相似度阈值对结果进行了二值处理,这样也就将文本相似度匹配任务转换成了二分类问题。二分类实验中常用混淆矩阵及ROC曲线和AUC值等作为评价实验模型优劣的标准。
通过对以上三种文本表征模型产出的文本向量进行相似度度量实验,相关指标如表2所示。
表2 各表示模型效果
从模型准确率和F1值指标来看,TF-IDF表示模型效果一般,Doc2Vec表示模型效果相对好,基于 BERT的表征模型效果最好。BERT模型具备较好的文本编码能力,但其对系统资源要求较高,且训练时间很长。权衡性价比折衷,Doc2Vec方法更适用于我行相似单据审核判定的需求场景。
4.匹配效率提升
前面的相似度匹配我们采用了暴力查找方法,将目标向量与向量库集合中所有的向量逐一计算相似距离。然而,伴随时间推移和业务发展,单据向量库集合变得越来越大且未来还将持续增长,暴力查找的方法计算资源消耗大且耗时长,很难在实际服务中应用。“将目标向量先通过模型分类,之后在对应分类的子库中再进行相似度计算”,这类方法从理论上讲,既可提升匹配效率又可提升匹配效果。但是对历史库存单据逐一进行人工分类标注代价很大,同时标注失误也会影响匹配效果。
针对这类高维空间中海量向量检索,可以采用资源与效果折衷的ANN最近邻检索方法,主要有树方法(如KD-tree,Ball-tree,Annoy)、哈希方法(LSH)、矢量量化方法(PQ)、基于图的索引方法(HNSW)。结合银行工单业务,本文最终选择了检索召回率相对较高的HNSW方法,该方法在规模不是特别大但对召回要求非常高的检索场景下是非常适用的。
图4 小世界检索示意
如图4所示,HNSW利用多层图结构来完成图的构建和检索。HNSW索引通过上层对下层点随机采样构建。HNSW检索是从顶层任意点搜索最邻近友点并存储,之后在下层计算已存储各点的友点并保留前k个,以此类推。通过层状结构保证“表层是高速通道,底层是精细查找”,计算复杂度从线性降为对数级。
其中参数k为返回的最近邻的结果个数,参数ef表示动态检索链表的大小,它们是平衡时间和准确率的超参数。通过实验本文发现将其设置为k的1.2倍时效果最优。此外,当数据量超过一定阈值,还可以通过分库索引方式再提升效率。
5.服务部署
为保证服务的高可用和安全性,我们采用Docker将相关应用程序和服务及其依赖打包成一个可移植的镜像,然后将镜像发布到了安装Docker引擎的Linux服务器上,利用Kubernetes的容器自动编排和安全隔离功能,实现服务的分布式部署、滚动更新和授权访问。
此外,我们采用HDFS存储各版本的模型和数据,安装了GPU提升预测效率,来保证模型需要的资源。另外,我们还使用了轻量级的Flask作为Web框架,同时将模型训练、评价、测试、上线、预估等服务通过RESTFUL进行发布。
成效与展望
本文基于NLP相似文本技术进行了单据重复性识别,查重模型准确率达到90%以上,分类模型准确率达到95%以上,平均提升工作效率达50%以上,有效提升了审核效率和服务质量,实现了减负增效。
为进一步优化完善,可把文本表示、相似度计算、部署服务分别开发成标准的服务,形成相似文本问题通用解决方案。这样可有效降低相似文本功能内部的耦合性,大大提高该功能在不同场景下应用的可复用性和灵活性。
同时,我们还将采用相似文本的解决方案进一步拓展该技术的应用范围,比如完成审计问题的智能定性、贸金业务合同文本风险条款智能识别、客服业务智能问答等。
进一步,可借鉴相似文本的思路形成相似图片、相似音频的匹配搜索问题的标准解决方案,从而深化该技术的应用,我们也将在这些方面继续开展应用探索。
往期精选:
(点击查看精彩内容)
● 实战 | 提升突发事件管理水平,奠定智能化运维基础——一般事件转突发事件及应急响应级别判断模型研究
《金融电子化》新媒体部:主任 / 邝源 编辑 / 傅甜甜 潘婧