导读: 在数字化浪潮的大背景下,金融资管行业的先行者正在积极探索将人工智能、大数据等先进技术用于构建面向未来的智能化投资研究平台。本文将从金融资管领域对于数据智能的需求入手,详细介绍自然语言处理技术在金融资管领域的典型落地实践。针对海量文本的信息挖掘场景,我们利用Transformer、CNN等最新研究成果以及团队自研的 tag2vec 等技术,构建了端到端的文本大数据分析系统,包含了从海量文本智能化采集、文本数据结构化到辅助投资决策的全流程,实现千万级文本数据的采集和快速分析,进而帮助客户进行快速精准的行业分析和投资决策。针对少样本下的文本数据监控场景,我们基于熵简NLP技术中台所提供的分层技术架构,利用文本增强技术、少样本学习、迁移学习等思想,在少样本场景下构建高效能的金融舆情监控系统,帮助金融资管客户实现从数据负债到数据资产的跨越,从中获取前瞻的商业洞察,赢得先机。
本文的主要内容包括:
1. 非结构化数据快速增长
信息不对称是金融行业的本质特征与竞争焦点。如上图,是一张来自IDC的报告,表明最近几年全球新增的数据有80%来自非结构化数据。所以大量及时有效的信息分布在非结构化的文本数据中,如研报、新闻资讯、twitter 中,金融机构需要借助 自然语言处理技术 从中高效、准确地挖掘出结构化信息,从中获取前瞻的商业洞察。
我们团队运用迁移学习、少样本学习、无监督学习等人工智能领域最新思想和技术,已经构建起完善的自然语言处理技术架构,提供 端到端的海量文本分析和监控系统 ,帮助金融资管客户跨越非结构化文本到结构化数据的鸿沟,进而辅助客户进行快速的行业分析、投资决策。
接下来我们看下NLP技术如何嵌入到行业分析和投资决策的:
2. 智能投研流程
智能化的投研流程包括:
最终这三个阶段形成了一个完整的从数据获取->数据处理->数据建模->逻辑推理的链条。这个链条构成了一个完全自动化、工业化、24小时不停机的智能化投研系统。
为了实现智能投研系统的目标,我们来看下自然语言处理技术的架构是什么样的:
3. 自然语言处理技术架构
我们的自然语言处理技术架构分为:应用层、组件层和预料层。
应用层 :直接对接业务逻辑,目前熵简科技 30+ 端到端文本分析系统,服务于 20+ 金融资管和咨询领域的机构,累计 30+ 业务应用场景。
组件层 :提供自然语言处理中的基础算法组件,包括智能分词组件、词性标注、依存语法分析、词向量、语义相似度、命名实体识别组件。
语料层 :语料层提供基础层中各算法组件、应用层中各算法模块的训练和测试语料。
通过这种方式构建的自然语言处理架构有两个显而易见的好处:
接下来介绍两个比较典型的应用场景:招投标文本分析系统和金融舆情监控系统。
其中:
通过这两个典型的金融应用场景,来分享我们在实际实践的过程中遇到的一些问题和解决思路。
什么是招投标数据?
公司在采购软硬件时,一般会发布一个 招标公告 ,供应商看到公告后,撰写并提交自己的投标书,甲方评估后发布 中标公告 ,告知大家谁中标。
招投标数据为什么重要?
对于一家上市公司而言,如果主营业务是toB的模式,我们可以通过招投标的数据来预测公司的营业收入,比如一家公司中标了一个大单,我们可以通过招投标数据提前预知。
如上图的案例:
左边是一家公司披露的中标公告,中标金额6.5亿,公告的发布时间是17年的10月17日;中间是我们在互联网公开数据中采集到的中标公告,无论是项目名称、中标单位、中标金额,都和左边的内容是一致的,唯一不同的是时间,我们采集到数据的时间比公司披露的时间,早了16天,这就可以帮助我们在获得关键信息上占有优势。
1. 招投标大数据分析系统技术架构图
为了实现全网的招投标数据监控,我们研发了端到端的智能化招投标文本分析系统,实现了千万级招投标文本的流式处理。主要包括:智能化网页抽取系统、招投标文本分析服务和数据展示。 首先我们的招投标文本分析系统会从外部海量的招投标网站上采集最原始的招投标标书,接下来用招投标文本分析服务对标书进行结构化的处理,把其中最关键的信息提取出来,最终利用数据展示、分析面板对数据进行二次的分析和展示,方便业务人员使用。
下面为大家介绍其中最核心的两个算法组件,智能网页抽取系统和招投标信息抽取模型。
2. 智能网页抽取系统
常规的数据采集步骤包括:
由于需要采集的网站非常多,需要大量的人力,导致成本非常高,效率低下。所以我们需要一套智能化的信息抽取引擎。可以从海量网页类文本数据中自动化地抽取出特定区域、特定用途的文本片段,即 从招投标网页数据中抽取标书标题、标书正文 。
难点:
网页抽取的数学模型:
每一个网页可以等价成带有各类信息的树, 新闻正文的文本、图片、超链接 分布在树上的各个 红色节点, 因此需要剔除无关节点,再按照节点位置信息进行序列化,这里的难点是如何高精度的剔除无关节点。
构建 Tag embedding:
我们首先要解决的问题是把网页中的html编码的标签和属性进行数值化的表示。针对这个问题,受到 word2vec 的 Skip-gram 思想启发,我们提出了 tag embedding 的算法模型,目标函数如上。其 关键思想是 用当前节点的 tag 去预测父节点的 tag 和子节点的 tag。
Tag embedding模型的特点:
基于全连接网络的二分类器:
有了Tag embedding之后,我们进一步提出了基于三层前馈神经网络的二分类器,主要用来判断节点是否保留。
如上图,输入特征主要包括:父节点的标签信息、子节点的标签信息、当前节点的标签信息,以及当前节点在其它方面的特征,比如当前节点包含文本的长度是多少、超链接的数目是多少。
模型性能:
使用相对简单的三层前馈神经网络的原因,主要是:
同时,这种模型的思想还可以推广到其它任务:
目前,我们已经实现了海量招投标文本的采集,接下来我们需要把文本数据进行结构化,得到我们想要的数据字段。
3. 招投标信息抽取模型
① 提取目标:
我们招投标信息提取模型的 目标 是从海量的招投标标书中,提取关键信息,如 招标单位 、 中标单位 、 中标金额 、产品类型 等等。
这其中的难点是 招投标文件完全由撰写人来拟定,没有规范统一的格式,无法通过统一化的规则处理:
② 特定实体类抽取方案:
我们把这个任务抽象之后,跟命名实体识别非常类似,在我们的处理框架中,把它定义为特定实体类抽取,其结构包括:预处理层、实体提取层、实体判别层、选举决策层。这里重点介绍下实体提取层和实体判别层:
通过这种两阶段处理,多模型融合。第一阶段不依赖于领域语料,采用通用命名实体识别语料训练。第二阶段在少量招投标专业语料训练即可。同时实现了 高召回 和 高精度。
接下来详细介绍下这两阶段中的核心模块,通用命名实体识别和CNN判别器。
③ 基于改进Transformer的命名实体识别
对于通用命名实体识别组件,我们团队先后迭代了几个版本,目前最新的方案参考了复旦大学邱老师团队在19年提出的模型。在这个模型中我们主要是以改进的Transformer模型为主要的特征提取器,再结合CRF层,引入全局约束信息来实现命名实体识别任务。左图为整个方案的结构图,右图为原生的Transformer结构,用来做对比。
我们的方案相对于原生的Transformer主要做了两个方面改进:
具体的实验效果如下:
④ 基于卷积神经网络的实体判决
这里我们采用TextCNN作为核心组件,整个网络由Embedding层、卷积层和前向网络层构成。
招投标信息抽取模型的测试结果:
我们在5000条招投标数据上的测试结果如上,简单总结如下:
4. 端到端招投标大数据分析系统
基于前面的成果,我们可以构建起招投标大数据分析系统,这一系统 包含了从海量标书智能化采集、文本数据结构化到辅助投资决策的全流程,实现千万级文本数据的采集和快速分析,帮助客户预测跟踪 toB行业与公司的发展状况及竞争格局。
5. 招投标大数据分析系统部分功能展示
这里展示了如何运用招投标数据对海康威视进行公司发展状况分析和业绩预测。比如,通过历史数据回测,我们发现中标数据与公司定期公布的季度收入高度相关,因此这一数据可以作为未来业绩预测的一项重要参考基准。另外,利用地域分析,我们可以了解到海康威视在不同地区的竞争格局和营收状况,从而更深入地了解这家公司的经营状况。
6. 小节
1. 金融舆情监控系统
在金融领域,存在两类机构,一类是买方,一类是卖方。买方一般直接操作股票的买卖,如公募基金、私募基金等;卖方主要进行股票的分析和研究,为买方提供咨询和建议,主要包括券商和独立的研究机构等。通常一家买方机构,往往会对接多家卖方机构为其服务。我们知道,微信已经成为了一个工作平台,因此微信群成了卖方服务的重要场景,一个分析师往往会有几十个卖方服务群,每时每刻都可能收到来自这些群的信息轰炸。这一场景主要面临的痛点有:
针对这些痛点,我们提出了金融舆情监控系统的解决方案,可以做到:
金融舆情监控系统的流程:
首先把微信群中的信息,如文本信息、链接、文件等抽取成公司、行业、机构等3类标签,然后进行业务分类,目前有4个大类,11个小类,同时我们的系统还会把结构化的文本提取出来,如文章作者、会议时间等等。这样就可以做很多有价值的应用:如热点追踪、分类汇总、报告检索、事件发现、投研日历等等。
2. 金融舆情监控系统技术架构图
金融舆情监控系统技术架构包括3层服务: 金融舆情文本分析服务 、数据清洗服务、展示服务。
其中,金融舆情文本分析服务最关键的三个组件是:信息类型分类、一级行业分类和特定实体提取。
3. 少样本困境
在实践中,很多与金融领域内的问题都与特定的场景相关,金融公司通常面临的少样本困境主要包括:
针对少样本困境,常用的路径有:迁移学习、数据增强、无监督学习、半监督学习。接下来,我们通过介绍金融舆情中两类主要算法组件的实现方式,来分享我们解决少样本问题的思路。
4. 微信信息分类模型
微信信息分类模型的目标: 对微信群里的 文本信息、文件、链接消息 等消息进行分类,分为公司深度、公司点评、行业深度、行业点评、宏观策略报告、固收报告、调研纪要、会议纪要、调研邀请、会议邀请及其他,共11个类别。
整个模型是以TextCNN网络和Fasttext作为两个基本模型,再通过XGBoost将两个模型集成起来。这里用到的TextCNN网络与前面的招投标网络基本是一致的,除了在Embedding层,我们把位置向量去掉了。其好处有:
5. 文本增强技术
文本增强技术 是一类低成本的数据杠杆,可以在不引入新数据下,有效撬动模型性能,尤其在少样本场景下。
常用的场景包括:
总的来说,由于文本增强技术可以提高模型的鲁棒性,除非数据量非常丰富,通常可以采用文本增强技术进行尝试,一般都有正向的效果。
典型的文本增强技术有:
关于文本增强技术的详细介绍,可参考我们团队之前的一篇文章:
https://zhuanlan.zhihu.com/p/111882970
6. 数据增强的实验结果
样本集情况:
实验结果见右图,总结如下:
最终的实验结果见上图,通过本文增强技术以及一些其它方法,我们基本解决了少样本问题。
文本增强技术为什么可以在没有引入额外数据的情况下,起到这么好的效果?
这里给大家分享下我们的思考:
7. 微信行业分类模型
① 初版
模型目标: 对微信群里的 文本信息、文件、链接 消息等消息进行行业分类,以中信一级行业分类作为分类基准,包括餐饮旅游、商贸零售、纺织服装、农林牧渔、建筑、石油石化、通信、计算机等 29 个行业类别。这里我们仍然以TextCNN作为baseline尝试解决,只要样本足够,就能得到很好的效果。
但是问题恰恰是样本量太少了:
对这个问题,我们提出了三阶段训练的模型优化算法。整个流程如下:
整个过程可以类比为:第一阶段是高中学习,主要掌握通识知识。第二阶段是大学本科,主要掌握专业内的基础知识。第三阶段是研究生学习,主要解决专业领域内某一类细分问题。
其中的核心思想是,通过这种三阶段训练的方式,将外部海量研报中关于行业类别的分布信息迁移到微信这个任务中。
实验结果见上图右边部分:
② 行业记忆网络
既然3阶段的训练方式是有效的,我们是不是可以把从外部研报学习到的知识用网络单独固化下来?基于这样的一种想法,我们提出了行业记忆网络结构,与TextCNN网络一起构成了混合模型。对于输入的文本,一方面会进行卷积运算和特征提取,另一方面会送入记忆网络中,这个网络首先对原始的文本用网络中学到的industry embedding进行编码,运用 多层注意力机制 ,有效捕获文本中的行业属性,最终在 30种 不同领域的样本集下训练,捕获了同一个词汇在多种场景下的行业特性。
整个混合模型的迁移学习思想包括:
实现原理:
基本思想是运用外部海量语料,学习词汇的行业领域信息:
Step1 :将 10万 的研报语料库按照行业特性,分成 29 个 样本集。每个样本集包含 1 类行业研报,作为正例。其他 28 类研报随机采样,构成反例。
Step2 :针对 29 个样本集,训练 29 个 SVM 模型,目标任务是对研报进行二分类,判断是否属于目标行业。
Step3 :将每个词汇在 29 个 SVM 模型的系数抽离出来,构成词汇的 industry embedding:
Vword=[w1,w2,w3,...,w29]
最终实现对于词汇行业信息的分布式表示。右图是 industry embedding的可视化效果。右边这张图是 industry embedding 降维之后的可视化的效果。最下面红圈中的词汇包含了海天、啤酒、食品饮料。经常下厨房的同学都知道,海天是国内知名的调味料生产企业,在行业属性上确实应该与啤酒、食品饮料同属一个行业。从这个可视化结果可以看来,industry embedding 的算法已经学习到词汇的行业信息。
行业记忆网络的实验结果:
最后,我们综合运用了 行业记忆网络和文本增强这两项技术,其中的细节如下:
样本集情况:
实验结果(见左图):
值得一提的是,相对于前面的三阶段训练算法,行业记忆网络的一个优势是,这个网络是与具体任务无关的。由于它本质上是存储了词汇的行业信息,因此它可以很方便地用到其他涉及到行业分析相关的自然语言处理任务中。
8. 特定实体提取模型
这里的特定实体提取模型和前面招投标的实体提取模型基本是一致的,唯一不同的是我们在实体提取层引入了实体消歧模块。
9. 金融舆情监控系统功能展示
最后,简单展示一下金融舆情监控系统的一些功能,如热点追踪和列表视图。在热点追踪页面,用户可以第一时间获取机构的关注焦点,了解卖方的研究热点和公司线索。在列表视图页面,我们可以按照事件、公司、行业、消息类型等等,多维度的查看历史信息。
10. 小节
1. 总结
2. 展望
Q: 车的消费贷场景,贷后催收预警一般样本量较小,小样本如何学的靠谱? ( baseline是规则 )
A:
Q: nlp 如今较好的模型资源需求量很大,如bertlarge,xlnet,实际落地时,是堆资源保证效果,还是简化模型呢?
A: 对于绝大部分问题,没必要堆资源,因为轻量模型上同样可以实现与BERT类模型相当的表现,甚至更好。
今天的分享就到这里,谢谢大家。
本文来自 DataFunTalk
领取专属 10元无门槛券
私享最新 技术干货