Fork me on GitHub

蚂蚁金融事理图谱构建及应用

以下文章来源于 https://zhuanlan.zhihu.com/p/667422026

导读 本文将介绍金融事理图谱的构建及应用。

全文目录如下:

  1. 背景介绍

  2. 构建图谱

  3. 图谱应用

  4. 总结

分享嘉宾|孙梦姝 蚂蚁金服 应用算法

编辑整理|王琳娜 南京大学

出品社区|DataFun

01背景介绍



用户、商户、机构及其提供的流量、商品/服务和资金共同构成了蚂蚁业务的运作闭环。这些主体相互作用的同时也会受到来自外部金融场景事件的影响,例如中宏观事件影响用户的理财行为,政策事件影响用户对服务的使用,机构行为事件影响机构的风险评估。为了增强对这些事件的感知并提升内部主体的运作效率,我们构建了金融事件事理图谱,应用于理财、机构风险等场景。

面向蚂蚁的业务场景建设事件事理图谱存在以下三个关键难点:

**(1)业务复杂度高增加了知识建模成本。**如果将事件定义为实例而其运作逻辑是事理(泛化性知识)的话,为了捕捉事件并刻划其影响,需要首先理解事件发生的时间地点、关联的企业、商品、服务、用户,并进一步将其演化逻辑图谱化,并确保事理逻辑能作用于实例事件。

**(2)高覆盖和高精度的信息抽取要求。**行业内数据供应商往往会针对头部机构输出事件发现的能力,但覆盖较小,受限于高人力成本的质检。而蚂蚁的业务背景下除了需要基金股票等金融产品相关事件外,还要关注全量工商企业、学校、商圈等公共场所、地方性政策。同时精度需要控制在下游包括策略分析、算法推荐以及内容投放等各应用场景的容错范围内。

**(3)事件和事理的运作模式需要以图谱的高稠密度为前提。**通过信息抽取(IE)自动构建的图谱由于短语化的表达方式存在大量含义相同表达不同的冗余节点,降低了图谱的连通性。在实体和概念类型丰富的情况下,这种稀疏性更为明显,进而阻碍了事件结合事理的运作模式。

02构建图谱



从构建到应用的pipeline如下:

1.知识建模: 针对业务形态确定关注的对象及其属性和内部联系得到实体类型及其关系;根据业务逻辑定义上述对象关联的类目体系、状态、指标等,得到元概念以及每个元概念的约束。事件定义为实体和概念的多元组合,例如金融机构风险事件由时间、机构、机构行为类型共同构成。

**2.事件及事理理解:**按上述事件的定义,从数据源中通过信息抽取获取实例事件(Event Instance)并链指到元概念约束中指定的各类实体。针对上述每个实例事件,通过泛化其约束,抽象出更多事件概念(Event Concept);针对每一个抽象出的概念,若已存在于图谱则直接将实例与该概念关联,若不存在则新增并关联。

**3.图谱增强的搜推及内容生成:**下游应用以搜推和内容生成两类为主。其中搜推是将事件及其关联的概念或实体作为算法输入一部分;内容生成则是将事件和事理组织称文本片段,以短文案、摘要、报文等方式推送给分析师、策略或C端用户



我们构建出来的图谱如上图所示

中间的浅蓝色区域,是实体属性的部分,也即业务关注的对象,包括企业、行业、品牌、地域、以及证券等。最中间的虚线框是产业链,其中核心是产品,通过产品上中下游的关联建立实体及金融各类业务更深层次的联动分析。

外面深蓝色虚线上,是各类事件及事理关系,可以分三层来看,上面一层是宏观事件 ,包括社会民生,地质气象、地域性以及政策类事件;中观层面,实体经济领域有产业链事件 ,证券市场领域有证券市场事件;最下面一层是以工商企业为主体的事件

实体属性和事件事理两部分共同实现对场景状态的刻划,下文分别介绍三个应用场景。

03图谱应用

1. 金融机构风险场景



机构风险管理场景的一个关键工作项是感知合作机构风险,包括两个阶段: T+0 的风险感知以及T-N 的风险预测。 其中T+0 的风险感知 主要是要保证高风险高等级的事件零遗漏。为此,业务专家去定义了 102 类公司事件。针对这些公司事件,我们要经过实体识别、流式去重和单主体事件抽取,最后完成事件的定位。在事件产出之后,从业务侧会有看板和周报的形式推送给相关的风险处理专家,如上图中的"合作机构预警",会包含预警等级、内部评级等信息。T-N 的风险预测旨在分析未来一年哪些机构可能发生重大风险,包括负面重组、指标突破监管红线以及破产清算。由于这一任务样本量少且特征稀疏,我们采用专家经验图谱化并在图谱的指导下生成分析报告来完成。业务流程中涉及多个算法任务,这里重点讲公司风险事件识别模型。



这个任务有3个难点:

难点 1: 金控场景的标签体系非常复杂,尤其是在蚂蚁,标签体系最多的时候超过了 200 个,且由于含义和所代表的风险等级不同,需要做到精细化区分。为了解决这一问题,我们引入了一个对比损失的机制。我们最早尝试的其实是直接去计算这些不同事件类型,它们之间和样本之间的一个对比损失,确实也取得了比较好的效果。考虑到对比损失原本的假设是认为标签之间要等距离的去推远,可是我们的这个标签体系并不是相互独立的,它的语义是有远有近的,比如图中债务融资失败,与监管入驻之间的语义距离就很远,但它与股票发行失败就会比较近,等距离的推远和这样一个场景并不完全一致。所以我们在此基础上做了进一步的优化,计算折损的对比损失。把语义距离按照由远及近做排序,当比较近的时候减弱推远,对语义距离远的标签增强,通过这种方式取得了进一步的提升。

**难点 2:**长冷事件缺少可学习样本。高风险事件是非常少的,针对这一问题,我们去构建了一个事件之间的图,事件和事件之间通过触发词以及它们在文章中的贡献去关联起来。这样就可以使得事件和事件之间共享一些局部的语义,我们再把这个局部的语义去作为最后这一步中 w 的权重,使得最后在做分类的时候,低频的事件也能共享高频事件的局部语义,从而使低频事件达到一个更好的效果,

**难点 3:**风险事件的领域门槛很高,标注的难度很大,样本中难免会有大量的错样本以及遗漏标注的样本,需要降噪。主要采用持续学习的方式把那些模型预测与人工打分相矛盾的 case 以及模型打分不置信的case挑选出来,叠加到我们的标注数据里做迭代。

2. 金融理财搜索推荐



第二个场景是将事件作为一种高信息密度的内容供给推荐给用户,并连带推荐其周边产品。由于金融场景用户对产品的兴趣很大程度上是事实驱动的,因此精简及时的事件供给以及精准的产品推送是帮助用户决策并体现平台专业度的一项关键能力。这里需要实现实时的多要素事件抽取、各类实体链指、人群圈选等多个任务,在此重点介绍多要素事件抽取。



以一个短句为例"北上资金抛售白酒股,减仓茅台和五粮液,贵州茅台遭净卖出逾 30 亿",其中蕴含了四个事件。这四个事件的主体都是北上资金,行为和客体各不相同,而且每一个事件的要素也不同。它的信息密度非常高,而且会有很大程度上事件和事件之间的要素重叠。

最早的一个方案,也是业界做事件抽取比较常用的方案,如上图 Stage1 所示,先提取出一些实体,得到这个实体在句子里面的表示,再扩大到段落,最后扩大到篇章。然后去建立实体和实体之间的联系,最后这边每一列都是一个事件类型的一个解码器,解码出这个事件类型里面到底哪些要素是主体,哪些是客体,哪些是幅度。这样一个模型能很好地去识别平常事件,也能达到一个比较好效果。但它的问题是首先每一类事件只能识别出一个。当一些要素重叠的时候,它也没有办法判断出来两个元素之间到底是不是一个修饰关系。

因此我们就提出了一个过渡解决方案,Stage2,事件类型检测 +SPO 抽取 + 规则拼接。我们用关系抽取,即三元组抽取来做事件抽取,也就是说在这个句子里面去抽取很多的 SPO 关系,比如北上资金和抛售之间是主体和行为的关系,抛售和白酒股之间是行为和客体的关系。这样把一个多元事件识别变成了很多二元关系识别,然后在很多二元关系都识别出来之后,我们再把它拼成多个事件。这种方式相比前一种方式,在业务数据集上能取得 20 个点以上的提升。但这还不是最好的方案,因为它相当于是以 Pipeline 的形式。

我们最后又进一步优化形成了一个端到端的模型。前面是事件的检测,中间是通过一个矩阵去解码字之间的关系,识别每两个 Span 之间是主客体关系,还是客体行为关系,最后通过一个最大团的方式,去解码出这里面的事件。这一优化不仅是在业务的数据集上,包括在公开数据集上也取得了比较明显的提升。尤其是在公开数据集上存在要素重叠的这一部分子集上取得的提升也是超过了 20 个点。这个工作也是我们现在去做多要素事件抽取核心依赖的一种方法。

3. 建设产业链,精准定位事件影响下的小微企业



大部分中宏观事件可以直接关联到行业,并进而直接体现出对部分理财用户的影响,但除此以外,这些事件也会影响到产业上中下游的企业,例如地方重点扶持的行业,其上下游产业的中小企业也可能受到激励,反之亦然。通过产业链将产业的上中下游链接起来,从而发现企业的需求,为其提供帮助,成为一种关键路径。



这一场景关键是产业链的构建。会分成几个步骤,第一步是要知道产品之间的关系,一条产业链分为原材料、生产设备、技术服务、安装售后等,要确定产品在产业链的哪些位置上。我们从大规模百科类文本知识库中去获取这部分知识。例如知识库中提到碳酸锂可以用于生产钢化玻璃,通过实体关系抽取得到碳酸锂跟钢化玻璃的关系。第二需要知道钢化玻璃到底有哪些公司在生产、加工或者批发零售,可以结合生态内外的各种数据源实现公司的经营属性的理解,此处会得到千万级别的产品短语,且大部分彼此不连通。因此最后要形成一个产品的知识库,使得这些产品节点彼此联通,我们采用Taxonomy Expansion的方式,以始统计局公布的产品类目树为基础,将抽取出来的产品短语相继挂靠到已有的类目树上,并引入领域专家进行订正从而保证迭代质量。

04总结



最后做一下总结。在这样一个图谱的设计下面我们总共做了七大类事件,有二级的概念 46 个,700+ 有效元概念。每类事件会有一些具体的约束,帮助我们更好地把它关联到一些业务的实体。



我们构建的是一个事件事理图谱,相对于普通的知识图谱来说更加复杂,包括事件在这个图谱里面怎么去表示。我们也借鉴了行业上比如哈工大提出的谓词逻辑事理图谱的构建方法,以及工业界面向中宏观事件的事理图谱的构建,但这里面会存在一些对于互联网行业来说不太适用的点。这种仅关注谓词逻辑和事件概念的抽象度和粒度不够层次化。我们提出三层的事理图谱的构建方法,分实例层、概念层和元概念层,每一层都会有不同的作用。它会有精细度的刻画、有规律的捕捉,还有这种泛化逻辑的捕捉,最后帮助业务实现更好的自动化的事件处理的流程。

05问答环节

Q1:样本需要多少?

A1:公司事件抽取的样本量现在大概是 12 万这个量级。后面公司高风险事件预测总体的样本量是比较大的,但实际上黑样本量大概只有 400 条左右。金融市场的事件抽取现在大概的数据量级是 3 万多。事件关系的抽取,首先主要的输入包含了两个事件,并且描述它们之间有一定关系的一句话,这个关系通常为顺承关系。我们在抽取过程中一方面会结合语义,另一方面也会结合这两个事件的一些主体在图谱中的关联关系。比如某一个公司发行股票,这个公司高管变更或者高管失联了,其股票可能价格大跌,它们两个出现在一个句子里但不一定有顺承。当我们知道它们的一些元素在图谱里面有更强的关联关系的时候,我们知道这两个事件可能是顺承关系,所以是会结合文本的语义和图谱的一种关系识别。

Q2:实体事件是放在同一个图谱里还是放在不同的图谱里做链接呢?

A2:是放在同一个图谱里的。可以参考总结章节中的第二张图。**图谱会分成元概念层、概念层和实例层。大部分的东西都在实例层。**实例层下方矩形框中的内容是事件,事件里的元素会连接到圆圈中的静态实体,包括国家、产品以及行业。连接上之后就会对事件有充分的描述。在事件之上会有一层是事件的概念层。这个概念层不是真实的一个事件,它会在整个时间轴上在不同的国家不同的约束下不断的发生。最上面是元概念层,是专家要定义的。专家可能认为产量上涨是一个很重要的事情,需要捕捉地域、对象和幅度。元概念层唯一定义了数据结构。这几层都是在图谱里面的,只是我们的管理会分层。对用户透出的时候推理的时候会用到不同的逻辑。

今天的分享就到这里,谢谢大家。




本文地址:https://www.6aiq.com/article/1700270711696
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出