金融资管领域知识图谱的构建和应用
. 分享嘉宾:李渔 熵简科技 联合创始人
编辑整理:唐汝佳
出品平台:DataFunTalk
导读: 本次分享的主题是金融资管领域知识图谱的构建和应用,主要介绍如何运用大数据、AI这些技术手段,来帮助金融资管客户构建一套面向金融资管领域的知识图谱系统。主要内容包括:
- 金融资管行业为什么需要知识图谱系统
- 数据接入:多源异构数据采集平台
- 熵简知识图谱系统核心技术
- 熵简知识图谱的典型应用
01 金融资管行业为什么需要知识图谱系统
先简要介绍下熵简科技,我们公司成立于2017年,是一家为金融机构提供数据智能整体解决方案的金融科技公司。具体情况介绍如下图所示。
所以,在我们看来,为什么金融资管行业需要知识图谱系统?
1. 投资研究:对抗信息不对称和认知不对称
我们知道资本市场是一个典型的非完美博弈市场。投资的本质是基于时间维度做价格预测,赚取预期差的钱。而这种预期差主要是来源于那么信息的不对称和认知的不对称。其中认知的不对称会导致“他知我不知”;信息的不对称会令人无法充分利用显性的信息,导致“只知其一,不知其二”的现象。
现实中,我们人脑是有限注意力的,再资深的研究员和基金经理也会面临不同程度的信息盲点和认知盲点。因此,我们希望构建一套智能化投资研究系统(简称智能投研系统),其核心价值就是帮助投资者持续的对抗其相较于市场的信息不对称和认知不对称上,获取到竞争优势。
2. 智能投研流程:平台化、工业化、可沉淀
什么是智能投研?简单来说:以海量数据为驱动力,通过采集研究标的的生产经营活动等数据,利用NLP技术,对数据进行智能化处理,以形成便于解读的指标,并利用机器学习技术,对指标进行进一步的建模分析,最终形成具有决策参考价值的投研情报。
什么是智能?在熵简知识图谱中,我们认为,智能=数据(数据中台)+逻辑(知识图谱)。利用数据中台丰富金融投资数据的多样性,帮助投研人员提升竞争优势,拓宽数据的使用边界。通过知识图谱承载投研逻辑,将数据转化为知识,帮助金融机构实现研究框架沉淀和结构化表达。
3. 熵简智能投研体系:产品组件架构
上图中为熵简知识图谱的产品架构设计。我们经过几年的探索,构建起一套完整的面向金融投资的数字化体系,整个产品矩阵分为数据层、中台层和业务层。
- 数据层的核心任务是数据获取,我们打造了一套将传统数据和另类数据相融合的数据生产平台,帮助我们的客户以更低的成本触达更加丰富的研究素材。
- 中台层的核心任务是将多源异构数据转变为投资研究直接可以使用的指标数据、决策支持数据。其中我们提炼了三大中台:数据中台、知识中台和算法中台。
- 应用层的核心人物是将知识和事实应用于各类资管的投资场景当中,比如说模拟组合、合规风控等。
02 数据接入:多源异构数据采集平台
1. 数据生产平台的需求和挑战
在前面提到过,金融竞争的本质来自于信息不对称,因此但凡对于投资标的有一定参考价值的数据都需要纳入进来,金融投资需要广泛且多样的数据和信息。针对这些需求,数据生产平台实现了对海量异构数据源(包括研究资讯、宏观经济数据、互联网公开数据等)和数据类型的采集和监控。
在数据生产平台中,最核心的任务是如何构建一个兼容数千种不同的数据源类型、日处理的数据量在TB级别的大数据采集系统。
解决这个任务面临三个方面的挑战:
第一点:如何实现异构来源网站的海量数据抓取;
第二点:如何能够以比较低的成本快速拓展新的数据源;
第三点:在上千个数据源的情况下如何保证数据采集的实时性和稳定性。
2. 海量数据+异构来源的解决方案:云原生的采集系统
为了解决数据海量和异构来源的问题,我们采用了云原生架构构建大数据采集系统。
系统以kafka为消息中心,采用事件驱动模型,构建在高可用的Kubernetes集群之上。在 kubernetes上,整个系统由4大功能模块构成,分别是用户控制台、数据采集引擎、数据存储服务、监控和日志服务。我们会把数据采集当中所涉及到的底层技术要素全部进行封装,用户只需要通过简单的配置就可以完成数据采集的任务,大大简化数据采集过程。
云原生架构的系统,具备微服务化和容器化的特点。
微服务化——所有组件和服务互相解耦并且独立运行,以支持上千种不同数据源的采集;
容器化——通过容器编排引擎本身的动态伸缩能力,系统可以自动应对TB级别的数据洪峰的冲击。
3. 新数据源快速拓展的解决方案:AI赋能的智能化网页抽取系统
简单来说,对于这样一个系统,我们只需要给出想要抓取网页网址,系统就能够自动识别出该网页哪些字段是标题,哪些字段是正文,哪些字段是日期,而不再需要去翻页,也不需要人工的一个页面一个页面去配置。
实现原理:如上图所示,网页布局中,每个网页都可以等价为一棵树,网页上的文本、图片都是树上各个节点所携带的信息。想要从原始网页上提取核心字段,具体分为两步:① 将不属于提取内容的节点删掉;② 根据各个节点在树的位置,将节点中的信息序列化为一维文本。
为了将不属于提取内容的节点删掉:
第一步:需要将HTML标签进行数字化表示,我们受到谷歌word2vec算法的启示,提出了tag embedding算法,关键思想是学习tag之间的共现关系来实现tag的分布式表示。优点是可以在大规模数据集上进行无监督训练,学习出不同标签之间的语义关系,而不依赖于人工的标注,从而实现HTML标签在50维空间上的分布式表示,并且显著提高后续分类模型的泛化能力,显著降低后续的分类模型对于标注数据量的需求。
第二步:在tag embedding基础上,通过三层前馈神经网络的二分类器,来判断节点是否应该保留。输入特征是主要包括三大类:1.父节点的标签信息(parent node vector);2.子节点的标签信息(child node vector);3.当前节点的一个标签信息(current node vector)、以及当前节点其他的特征:文本长度(text length current node)、超链接个数(the number of hyperlink of current node)。我们是在10万个标注数据上对模型进行训练,数据来自于50多个新闻资讯网站,在多个网站上进行的测试表示:标记的准确率能够达到97%上,正文中抽取的准确率能够达到95%以上。
除此之外,这个方法还可以推广到其他应用场景,比如说网页类型的识别,判断当前页面的类型是目录页、广告页、其他页。
4. 数据采集层技术架构:完善的数据校验和监控系统
为了保证系统能够高质量稳定的进行数据采集和监控,我们在系统中也构建了一套完备的监控和报警系统,当任何一层一旦发生问题,就可以向运维人员报警,以保证系统的稳定性。
03 熵简知识图谱系统核心技术
1. 知识图谱系统的典型需求
2. 知识图谱系统架构
3. 知识中台层技术架构:核心技术
以上列出了知识图谱系统面临的几大核心挑战:
- 金融资管场景下的本体设计,通用知识图谱以三元组的结构为主,只能存放简单知识,没办法满足金融领域复杂知识和逻辑的组织需求。所以我们针对金融资管领域的需求,设计了专门的本体体系。
- 如何利用AI的技术来辅助实现人机协作的图谱构建,我们通过这种人机协作的模式,实现高质量知识图谱的持续的生长。
- 投研图谱的知识推理;
- 时间维度的动态建模。
因为时间的原因,今天主要是重点介绍前面两点。
4. 熵简知识图谱本体体系
前面提到,通用知识图谱以三元组结构为主,存放的知识比较简单,没办法满足金融领域复杂的组织需求。而我们的设计目标是通过层次化概念组合,全面精准的表示投资标的,满足至少90%以上的金融分析的一个需求。所以,我们的本体体系一共分为三层,分别是金融实体层、金融概念层和金融事实层。
上图为知识图谱本体体系的可视化展示,不同颜色代表不同的节点类型,包含三大类节点,金融实体、金融概念和金融事实。
从这张图,可以看到,通用知识图谱是我们图谱的一个子集,在我们的图谱当中,除了包含年龄、任职的关系等通用知识图谱中的知识外,还包含了许多层次化的金融概念和金融事实。
比如对一家公司的投资分析,可以从运营能力、盈利能力、品牌知名度、行业驱动因素等多个维度进行。对于一个人物实体,除了年龄等基本信息外,还包括像财务舆情、私生活舆情相关的知识,因为现实中财务舆情、私生活舆情对于该公司的未来走向可能会产生一些重大的影响,所以这也是熵简知识图谱中的一个重要信息,或者说一个知识的维度。
① 本体内知识构建的关键技术:知识匹配
在构建好本体体系后,如何将这些指标数据等,与相应的金融概念进行知识匹配。为此,我们构建了一个基于语义层次分类的知识匹配模型,本质上是一个多层次短文本分类模型,它本质上是一个多层次短文本分类模型,采用Hierarchy TextCNN和memory block架构相结合,兼具强泛化和高精度。目前已经实现了两级的金融概念分类,可以将数据的标题与相应的金融概念进行匹配,涵盖了三十多个金融类别。但这种方法中,类别是固定的,所以我们又引入了基于相关性检索的匹配模型,将金融概念分类问题等价为搜索问题,其对于类别外的金融概念匹配,具有更好的泛化能力。
基于相关性检索的匹配模型,是一个简化的搜索系统,分为两个部分:实时预测和离线处理。在离线处理部分,系统对现有的知识图谱上的各个节点进行属性提取、关键词提取等预处理,并在数据库中建立相关的索引。在实时预测部分,对于每个新数据,通过短文本理解、召回、结果排序的三阶段处理,我们可以从数据库中匹配到与当前这条数据在金融概念上最接近的一条或多条数据,由此得到相应的金融概念。
② 本体内知识构建的关键技术:知识抽取
经过结构化数据的知识匹配后,对于年报、财经新闻等非结构化文本,需要进行知识抽取。为此,我们首先构建一个句子级别的金融概念识别模型,将知识抽取的问题等价为句子级别序列标注问题,逐句的对研报内容进行分析。当文本片段很长时,我们使用算法中台里的FinBERT构建文本自动摘要模型,将识别为同一概念的句子集合,总结融合为不超过50字或者30字的短文,从而形成金融事实的描述性文本。
FinBERT预训练方式
这里介绍一下FinBERT工作,FinBERT是熵简知识图谱系统算法中台的核心语言模型,用,我们是用几百万的研报、财经新闻对原生bert进行二次预训练,得到的适用于金融领域的bert,我们称之为finbert,图中右侧为整个finbert的训练框架,相对于原生的bert,我们主要做了三方面的改进:
- 引入金融领域语料,包含了30亿的token,超过了原生bert的预训练规模。采用100多万篇左右的金融财经类新闻,200多万篇各类研报,以及从公开渠道收集到的金融类百科词条大概100多万条;
- 基于金融词典,引入了全词mask,代替了原本字级别mask,这样可以更好的把金融领域的知识和概念引入到模型当中,我们通过权威词典、学术期刊等渠道收集了大约10万词规模的金融领域专门词汇。
- 加入了一些语义级别的监督任务,比如说行业分类、机构、人物实体提取等,另外为了提高整体的效率,我们在训练过程中引入了混合精度的运算。它可以至少降低一半的模型对显存的占用,同时还能够提高模型的训练速度,大概能够提高三倍。
知识抽取具体介绍
这里介绍如何从表格中抽取知识。
比如说从研报的表格中抽取知识,平常有看研报习惯的同学知道很多研报的第一页会有一张盈利预测表,表格会直接列出这家研究机构对于公司未来几年的业绩预测,所以这个表格的数据是很值得我们把它提取出来、并且匹配到相应的知识图谱的节点上的。自动提取表格分为以下两步:
- 针对研报表格提取这个场景,熵简科技自研了一套PDF图表提取工具,利用目标检测OCR识别PDF、表格解析等各类的技术,从研报的表格当中把数据提取成结构化数据。
- 对于结构化数据,利用前面提到的分层次的语义分类模型,以及基于相关性搜索的匹配技术,把抽取出来的知识关联到相应的图谱的节点上。
③ 本体内知识构建的关键技术:实体链接
实体链接的核心目标是将前一步知识匹配和知识抽取阶段得到的知识,链接到知识库相对应的实体上。上图左边展示了实体链接的整套流程,一共包含5个步骤,分别是命名实体识别,实体库/知识图谱实体联合召回,以及实体消歧和基于上下文匹配的实体排序,以及最终的实体判决步骤。
a. 命名实体阶段:
我们采用了改进Transformer网络+crf模型进行人物和公司实体的提取,相对于传统的 transformer结构,我们这个地方主要是有三方面的改进:在输入层同时引入了字向量和bigram向量,它可以显著的提高网络的编码能力;引入了前面提到的finbert做一些蒸馏学习,可以一定程度提高现有轻量级网络的提取能力。
为了进一步提高整体的实体召回率,收集外部实体,并结合知识图谱上的现有实体,构建了一个庞大的实体库,涵盖了A股、港股、中概股以及600多万家公司的一个实体的数据,再通过AC自动机进行直接的匹配召回。
结合这两种方式,我们可以实现一个F1值超过0.95的、精确度比较高的实体提取过程。
b.采用基于FinBERT的孪生网络对进行实体消歧和实体排序,最终根据排序分数来确定知识片段中的实体在知识图谱中的位置。FinBERT分别对于知识图谱中的候选实体与知识片段中的实体进行编码,最终在隐空间进行相关性分析,获取其匹配分数。
④ 本体内知识构建的关键技术:知识融合
知识融合的目的,是将匹配到知识图谱上同一实体、同一属性的金融事实,但来源不同、时效不同、质量不同的多条知识进行融合,剔除掉冗余的信息,保持图谱知识的准确、精炼。对于同一个节点的信息,我们会按照时效性、权威性、丰富度、观点冲突这四个维度进行融合,把多余、错误的信息去除掉,突出相对价值量最大的信息。对于时效性,我们根据金融事实的时问戳以及消息类型来判断知识优先级,一般而言,越近的知识权重越高。对于权威性,不同来源的金融事实具备不同的可信度,对于研报来源,可根据券商评级来给予不同的权重。比如说从人民日报提取的知识一定比自媒体信息的权威性更高。在一些情况下,也要综合考虑时效性和权威性,比如说对于GDP,国家统计局给出的数据即使显著早于某些媒体上公布的数据,但我们也依然以国家统计局的数据为准。
04 熵简知识图谱的典型应用
最后一部分,介绍一个下游场景的应用:智能投研助手。
上图举例了5G行业知识图谱的构建和应用案例,图中可以看到:5G图谱包含了二级市场的行情数据等,也包括一些非结构化的5G舆情数据。在这个基础上,结合前面提到的整套构建框架,我们就可以得到整个5G行业知识图谱。
分享嘉宾: