分享嘉宾:张永祺博士 第四范式

编辑整理:万碧佳 百度

出品平台:DataFunTalk

导读: 大家好,我是来自第四范式科学技术部的资深算法研究员张永祺。本文将给大家分享知识图谱在第四范式金融场景的应用及研究。共分为两个部分:

  • 第1部分介绍我们第四范式的知识图谱产品内容,并且以金融舆情风险分析为案例展示我们落地的方案,以及知识图谱产品相关的部门正在落实的研究。
  • 第2部分更偏科学研究,会重点分享我们在近期研究的一些通用的、自动化的知识图谱相关的研究课题,相关成果也已经发表在国际顶级的会议期刊中。

01 第四范式的知识图谱

那我们先分享下第四范式的知识图谱内容

1. 标准化知识图谱构建

我们先简单介绍下人工智能发展阶段。人工智能的发展经历了从计算智能到感知智能再到现在的认知智能阶段,知识图谱为智能计算起到了提供知识的作用,它是以听懂和看懂为基础,作为机器决策的一个载体。

我认为知识图谱是AI的大脑,是一种大规模的语义网络,它定义了结构化的语义知识库,通过实体关系来构建知识表达各种语义。

我们把知识组织成图谱的好处是,方便我们从图的角度,对图上的信息进行可视化,利用一些传统的图算法进行信息的挖掘,另一方面我们可以从知识的角度,对已有的信息进行一些复用、推理,从而发现一些新的知识。

知识图谱的核心技术主要有以下这些:从构建方面来说,我们有知识抽取,从文本中抽取实体、关系、事件等等;另外构建还有知识融合和知识加工,我们把抽取出来的信息进行一些结构化的组织,并此基础上加工、存储,进一步完善图的存储信息。

当我们抽取好图谱之后,就可以利用各种机器学习算法、图算法,计算一些图特征,抽取知识表示等,来挖掘这个图中的重要信息,从而适应各种不同的任务。

2. 第四范式知识图谱的构建

上述主要介绍完知识图谱的相关背景,下面将进一步介绍第四范式的知识图谱。刚刚介绍的核心技术可以形成这样的一个闭环:

  • 人工定义一个图谱的骨架,用于搭建制图谱;
  • 基于这个图谱,从文本,图标等结构化或者非结构化信息中抽取相关知识,构建一个图谱。
  • 构建好的图谱之后,进行一些查验和应用,
  • 在查验和应用的过程中,通过它的效果的反馈,进一步完善我们之前设计的骨架。

在这个闭环中,每一个部分都需要很强的专家知识。我们第四范式宗旨是AI for everyone,落地的目标是提供一个低门槛、易用的知识服务。所以我们第四范式是这样定义这个闭环的:

我们用统一方案来定义知识,客户可以根据自己领域的需求,来定义这些知识到底是什么。比如金融、零售等各行业的知识,是由客户来定义的。

第四范式提供一个统一的构建方案和查验计算方案,以极致地简化整个图谱的解决方案,客户在使用时不需要过多的专家知识,而且工程师们也不需要花费大量的成本来学习和各种业务相关的知识。

传统的知识构建时,需要很多NLP专家,训练和预测周期非常的长,需要对每个不同业务进行单独定制化的解决方案。我们第四范式的知识图谱构建,在自动化的算法加持上,内置了一个NLP的专家,通过AutoML算法打造了一个低门槛、任务轻、反应快的NLP系统,在给定文本和骨架之后,能够快速生成图谱并上传到系统中。

在文本标注方面, 传统图谱主要以问答方式进行标注,比如说,刘易斯是什么职务?这就导致对不同任务需要有不同的理解、操作,人员和业务门槛都很高。

在第四范式的图谱中,我们把问题转化成了判断的一个标注:比如我们提问,第四范式是不是技术服务公司,并通过“能”,“不能”或者“不确定”这样的选项,把提问的转化成一个判断,来简化这个问题,在此基础上可以达到一个比较低门槛的标注。

3. 第四范式知识图谱的案例介绍

下面我们以企业舆情风险传导为案例来介绍一下相关的落地方案。

首先我们针对舆情先定义一个舆情的图谱,其中包括实体的类型,比如说机构(公司、银行、国家机构等等),人物(人、职位、年龄、学校等等),其他的信息(时间、地址,金额、物品),这些都是在舆情分析、金融系统中很通用的实体。

在关系方面,我们会定义和机构相关的关系(股东、控股公司、分支、法人、高管、合作上下游等等),还有人物相关的关系(公司的高管、高管之间的亲属关系,任职还有出生等等),包括一些和事件相关的关系(账户往来,资金流动、项目合作等等)。

另外会定义一些事件的类型(投融资、担保、质押、失信执行、贷款/还款等等)。这些事件可能会触发企业信用评级的调整。

在定义好知识之后,我们会通过统一的接口对新闻资讯、工商数据、微博/微信等数据源中的观点讨论,公开的公司财报,项目合作等多元化异构的信息进行一个整合,通过知识抽取来自动学习知识图谱的建模,从而构成我们应用到特定任务中的图谱。

那基于图谱建模有什么优势?在传统机器学习算法中,我们需要设计深度学习神经网络,输入原始语料集,输出我们要预测的风险指标。通过传统深度学习的方式,它的原始语料或者文本之间的关联非常弱,向量化的参数难以理解,建模成本很高,我们需要对不同的任务都训练不同的神经网络模型,因为他们所在的分布、领域是不同的。

而通过图谱建模可以更好的抽取特征,更好的进行可视化,更有针对性的进行一个建模,此外,这种方法可以不断的更新图谱上的信息,从而达到持续建模的能力,当某一个公司发生一些变化的时候,我们不用再去优化它的权重,而是直接把这些信息添加到图谱中,通过图谱本身的性质来反映这些东西的一个变化。

这是一个关于中兴通讯的图谱案例,整理好舆情数数据以后,我们通过知识抽取进行自学习的建模,构建一个以中兴通讯为核心,链接它相关的子公司,客户及供应商等强关联的实体图谱。当中兴通讯被制裁以后,我们从新闻中提取到中兴通讯被限制出口措施的关键词,算法就会准确位定位到中兴通讯的子图,通过对关联的企业进行风险分析,帮助客户快速的分析受影响的公司。

从这个简单的实例中,我们可以看到一方面图谱可视化的展现舆情数据,将散乱的知识结构化地组织起来,同时也快速、及时地对相关信息进行挖掘。

下面以东方时尚驾校为例,介绍我们在图谱挖掘上的算法。

我们会事先定义异常点,比如受益所有人控制企业的数量、成立时间、注册资金、股东持股数。我们发现,时尚驾校的受益所有人偏多,这就触发了一个风险点,是我们需要重点关注的一个企业。

而我们在捕捉新闻信息时,发现它进行了股权转让,我们会对其进行风险验证,我们采用事件发生前3天到事件发生后11天这15天内作为影响时段,以企业股价的变化作为风险指标,股价是一个相对客观现实的指标。上证指数它在这15天内的变化-0.2%,而时尚驾校跌了7%,这说明该驾校受到较大的影响。

接下来讲解建模逻辑。

首先我们会根据舆情,已有知识等提取关键信息,比如风险事件,公司的基本信息等导入知识图谱中,分析链路中可能存在的关系,包括股东、控股、法人、投资等关系来预测最终风险目标。

我们会提取风险事件及传导链路中相关的特征,并将这些特征最终组合形成高维的特征,然后通过特征进行回归建模,来拟合我们最终需要预测的风险点。

算法方面是采用的是GBDT梯度提升决策树,用组合构建的高维特征来预测股价波动的变化,希望预测的值和真实值尽可能地接近。其中每一个W是特征上的一个权重,权重越高,风险事件和传导链路的相关特征就越被重视。我们从权重值去挖掘造成风险的关联因素,提取权重值更大的相关特征,从而挖掘造成风险的关键因素和链路上受到风险影响最大的实体。

实验方案是对实验数据集中N个回归数据进行拟合。拟合树学习的是之前所有数的预测与真实项的残差,在实际操作中,我们特征总数接近500个,可以全方位的囊括各种知识信息,下面是GBDT的示意图。

02 自动知识表示学习

上面介绍了第四范式的知识图谱及落地中的实例,下面这个部分更偏学术一些,是我在第四范式的自研的学习成果,将来也会运用到相关模块中。

1. 自动负采样算法

如果我们给定了一个相对健全,但不完整的知识图谱,我们怎么设计更好的采样算法和更好的模型去进行更好的知识表示?在实际应用,我们发现采用自动构建的知识图谱,效果本身还行,但如果我们能够更好的去补全它,把它中间的一些带噪音的信息过滤掉,那么它会对业务更有帮助。

知识表示即知识图谱的嵌入,它把图谱的节点和关系映射到低维空间,同时保留图谱中的重要性质特征。其优势在于:

  • 更好地和机器学习算法结合,而不是直接抽特征。
  • 查询和预测也能更加高效。
  • 发现一些隐藏的性质和边。

在知识表示学习中,一个重要的问题就是负采样。

在一般的知识图谱中,给定的都是正样本,即给定图中的每一条边都是正样本。而我们还需要进行负样本的采样,即不在图谱中的边。有正负样本集合之后就可以通过模型设定一个预测器来预测一条边到底是正样本还是负样本,逐步迭代更新,使我们学到更好的知识表示,同时可以预测未知的边。训练目标是尽可能的保留图中的连接性质。

相关研究成果方面,在链路预测和实体对齐两个基线上都已达到国际领先的标准,并且相关成果发表在VLDBJ、ICDE、NeurIPS等国际会议期刊上。

负采样在知识图谱是普遍常见的算法,我们通过定义一个打分函数,使它在正样本上最大化,在负样本上最小化。这个负样本常规的采样方法是把头实体或者尾实体替换掉,当它不存在图谱中的时候,我们就认为它是一个负样本。

负样本的质量是很关键的,举例来说,达芬奇画了蒙娜丽莎,前面的类别是一个人,后面类别是一个画,不同的样本有不同的含义,对正样本的帮助也是不一样的。而把后面的画换成一个人名,或者换成一个物体名,都不如把达芬奇换成梵高等的画家对模型的学习更有帮助。

一般通常做法是直接随机替换一个负样本,导致负样本的质量其实是很差的,这种负样本对训练来说没有任何的帮助,其实也有些人提出了用神经网络模型来生成负样本,但是这种训练成本比较高。

我们提出了一种简单有效的方法;用一组cache缓存,把高质量的负样本存储起来,每次我们就只从缓存中提取负样本来达到更好的训练效果。

关于自动化的方案,我们定义了几个分布。例如,如何去更新缓存,如何从缓存中提取样本,缓存的大小多少合适,用于更新样本的缓存大小是多少。

然后通过AutoML去搜索样本分布,从而更好地适应不同数据的分布。

从图中的黑线可以看到,对于相关基线的效率和效果有很大提升。

同时,cache负采样的思路(即把高质量负样本存储在缓存中,从缓存中提取负样本)不仅在知识图谱中达到很好效果,也在普通的图,节点分类任务等,达到了相当不错的效果。我们能发现负样本采样算法是普适性的,只要任务需要进行负采样,都可以使用该算法。

而且算法在不同的超参上,也能拿到一个比较好的效果,只要超参选择一个比较适中的值,都会对其训练起到帮助。

2. 自动模型设计

刚才提到的是负采样这样关键的技术,接下来给大家介绍我们打分函数的设计。

在知识图谱中,要怎么度量边或者三元组?怎么了解它的置信度是怎样的?我们的设计原则是捕捉关系中的对称性、反对称性,还有两个关系之间到底是否相反等重要的性质。

在模型分类方面,用的是大家比较熟悉的TransE,TransH这种基于翻译距离的模型,但这个模型的表达能力是有限的。

还有一个方法是利用神经网络,比如MLP或者卷积神经网络,递归神经网络等。但这样的网络会相对更复杂,也更难训练。

另外是双线性的模型,我们写了一个双线性的函数模型,选择它的原因,一方面因为它比较简单,效率更高,能更好地应用到实际业务中。另一方面它表达能力是很强的。所以我们重点研究目标是在双线性函数中设计打分模型。

同时我们在知识图谱中不光是有单个的三元组,还会有一个关系路径。即多个三元组首尾相连,形成关系路径,包括之前提到的风险传导,其链路也是这样多个三元组组成的传导的路径。里面包括各种各样的信息,比如说单个三元组上短链的信息,每个关系有复合的信息,还有整个长链的信息。

问题难点在于不同知识图谱的语义是不同的,在金融、零售等不同的领域,其建模的语义、结构,更是错综复杂的。如何设计一个模型能适用于不同的领域,是一个很可能有挑战性的问题。

我们解决方法是把现有的模型给统一化,然后利用搜索技术自适应地去设计不同模型,针对不同的任务设计特定的模型。

举例来说,我们基于双线性表达,需要把现有的模型写成统一的形式,比如图中矩阵方块的形式,我们会把它统一为一个搜索空间,填充在一个4×4的矩阵块上。图中搜索空间比较大,是大概9的16次方的大小,所以我们需要更高效的算法去在里面搜索。

在关系路径的统一表达方面,我们首先把关系路径形成一个递归的模型结构。每个三元组为一个单位,对每个三元组进行建模,图中是在现有的模型基础上提炼的专家知识,通过专家知识构建这样的搜索空间,在特定的任务上去搜索不同的模型,来适应各种不同的数据或者任务。

在搜索框架方面,我们定义一个搜索空间,这个空间决定了搜索内容,当我们新接触一个结构之后,模型都会给出效果反馈,这个反馈也会输入搜索算法上,搜索算法决定了如何在这个空间上快速、高效地进行搜索,通过这种反复迭代的方式,我们针对不同的数据、不同任务,都可以搜到更好的模型。通过以上方法把模型来应用到具体的任务中,会有更高效的结果。

在连接预测任务上,我们发现双线性模型效果会更好,传统的TransE等模型已经比较陈旧。而现有的模型,在不同的数据上面它没有绝对的一个胜者,通过自动化学习的方法,在每个任务上达到更好效果的,同时也会发现一些更新型的结构来超过现有的模型。

在实体对齐任务上效果也是比较好的。

另外,大家可能关心问题是,单个训练模型,都是有一定的训练成本,那么在这么大搜索空间下面搜索这么多模型,它的效率如何?下图是我们在实体对齐和链路预测这两个基线上面效果,我们模型(图中黑色线)比其他的模型的效率更快,即保证效果的同时提升了搜索的效率。

03 问答环节

Q:模型训练用到的数据是否涉及法律相关问题。

A:训练用到的都是公开数据,不涉及法律问题。

Q:AutoML引入知识图谱带来的大幅性能提升的本质原因是什么?在实际业务中什么情况下是需要考虑AutoML?

A:虽然知识图谱本身的定义很简单,但是由于它的多元异构化的数据,导致我们需要在不同任务、不同数据场景下,所使用的模型、结构、建模方式是不一样的。使用AutoML,相比于使用固定的模型,能够更好地学习,进行模型的筛选或者算法的选择。

在实际业务之中,当我们需要用一个统一的方法,比如,交通银行、中国银行等不同场景下,使用一套统一的技术,它的优势就体现出来,它可以大大减少专家成本等人工成本。

Q:刚才你提到的GBDT的预测主要是做哪块预测,所用的损失函数是什么作用?

A:GBDT主�