作者|李晶阳[1],牛广林[2],唐呈光[1],余海洋[1],李杨[1],付彬[1],孙健[1]
单位|阿里巴巴-达摩院-小蜜Conversational AI团队[1],北京航空航天大学计算机学院[2]
摘要
行业知识图谱是行业认知智能化应用的基石。目前在大部分细分垂直领域中,行业知识图谱的 schema 构建依赖领域专家的重度参与,该模式人力投入成本高,建设周期长,同时在缺乏大规模有监督数据的情形下的信息抽取效果欠佳,这限制了行业知识图谱的落地且降低了图谱的接受度。
本文对与上述 schema 构建和低资源抽取困难相关的最新技术进展进行了整理和分析,其中包含我们在半自动 schema 构建方面的实践,同时给出了 Document AI 和长结构化语言模型在文档级信息抽取上的前沿技术分析和讨论,期望能给同行的研究工作带来一定的启发和帮助。
引言
从计算到感知再到认知的人工智能技术发展路径已经成为大多人工智能研究和应用专家的共识。机器具备认知智能,进而实现推理、归纳、决策甚至创作,在一定程度上需要一个充满知识的大脑。知识图谱 [4, 18, 19],作为互联网时代越来越普及的语义知识形式化描述框架,已成为推动人工智能从感知能力向认知能力发展的重要途径。
知识图谱的应用现在非常广泛:在通用领域,Google、百度等搜索公司利用其提供智能搜索服务,IBM Waston 问答机器人、苹果的 Siri 语音助手和 Wolfram Alpha 都利用图谱来进行问题理解、推理和问答;在各垂直领域,行业数据也在从大规模数据到图谱化知识快速演变,且基于图谱形式的行业知识,对智能客服、智能决策、智能营销等各类智能化服务进行赋能。
阿里巴巴云小蜜团队研发的知识图谱问答系统目前主要服务政务、运营商、保险、税务、教育、医疗等领域。在这些行业的知识图谱问答应用落地实践中,我们发现行业图谱构建面临如下挑战:
图谱schema构建困难:行业知识图谱 schema 构建往往由对业务更加熟悉的业务专家来承担。尽管业务专家对业务更加擅长,但其对图谱及 schema 概念的理解和使用却有不小的启动成本,这直接导致业务专家无法快速从自身业务知识中抽象组织归纳出满足应用需求的图谱 schema;
低资源信息抽取困难:区别于通用领域所积累的大规模有监督数据资源,大部分细分垂直领域所能提供用以进行信息抽取的有监督资源是有限的。如何在有监督资源有限的情况下,如何从模型和行业数据的角度来提升三元组抽取的效率和性能,是行业信息抽取的核心挑战。
此外,越来越多的垂直领域图谱应用场景是以文档为直接源数据来进行,如何有效的解析各种类型的文档数据,以及设计合理的文档级信息抽取模型,也在行业图谱构建的诸多挑战中占据越来越核心的的位置。
在后续部分(见下图),本文首先介绍 schema 构建所涉及到的关键技术和我们在 KBQA 落地中用于辅助业务专家进行 schema 构建的半自动 schema 构建方案的介绍;接着讲述实体识别模块所面临的挑战和相应的技术解决方案,主要从领域知识融入、半监督学习和复杂实体识别三个角度进行阐述;
关系抽取部分,本文从远程监督、小样本学习、实体关系联合抽取以及篇章级关系抽取等角度讲述其所面临的关键挑战和现有解决方案。结合业务的实际需求,文末本文还提出了文档级信息抽取的新挑战并给出了潜在解决方案的探讨。
schema构建
知识图谱 schema 构建是构建知识图谱的首要步骤,但同时也是非常影响项目快速推进的环节之一。在基于知识图谱的应用在各类行业中落地的进程中,大部分行业没有接触过知识图谱,因而没有沉淀行业内的知识 schema 用以构建行业图谱。
同时由于知识图谱的概念较新,行业业务专家需要一个从理解到熟练构建 schema 的过程,而此过程往往还需要算法人员的频繁介入。如此在一个新的行业中落地图谱相关的应用时,按照我们的项目经验,完整的 schema 构建往往需要消耗周级甚至月级的时间单位。
在新的行业落地图谱应用时,为了节省图谱 schema 构建的时间和人力成本,我们需要一套半自动 schema 构建的方案,从而将 schema 构建的时间复杂度降到天级的时间单位。从信息抽取技术上来讲,面对一个新的行业,其中的业务知识的特点在于其开放性以及与过往领域知识的独立性,因而我们借鉴了开放信息抽取领域(OpenIE)中的一些技术和想法来实现我们的需求。
因此,在本节后续部分,我们会讲述 OpenIE 中的一些技术进展,并且对我们在半自动 schema 构建的算法探索进行介绍。
1.1 开放信息抽取
1.1.1 简介
开放信息抽取(OpenIE)是指机器通过阅读、整合和梳理没有固定实体和关系类型的开放自由文本,自动从中抽取出结构化知识。一般来讲,OpenIE 包含开放实体识别和开放实体关系抽取。由于 schema 构建涉及实体和关系,因此,这里的 OpenIE 特指开放实体关系抽取。
举例来说,OpenIE 从句子“阿里巴巴是总部设立在中国杭州的一家科技公司”中抽取出(“阿里巴巴”,“总部设立在”,“中国杭州”)和(“阿里巴巴”,“是”,“科技公司”)两个三元组。通常,OpenIE 所抽取出的一般称 SPO 三元组,分别指 Subject, Predicate, Object。
此方向上的常用数据集包括 FewRel [1,2],NYT-FB [6],OIE2016 [3] 等,评价指标是以预测的准确率,召回率和 F1 值为评价指标。
1.1.2 模型介绍
(1)经典抽取系统
较为经典 OpenIE 系统基本都是基于句子的句法和语法规则加以相应的三元组判别器进行 SPO 抽取。以 TextRunner [5] 为例,其主要分为三个步骤:
1. 分类器训练:基于语法解析得到名词性短语,以短语之间的词语为关系并进行规则筛选构建三元组正样本,以随机替换等方式构建负样本,人工构建特征训练贝叶斯分类器;2. 初步抽取:如上对句子中的名词性短语和关系进行抽取,根据分类器判别所抽取的三元组是否可信;3. 三元组筛选:对所抽取出的关系进行基于规则的归一化,并统计三元组的频次。
随着深度学习的发展和相关数据集的不断丰富,近年来,OpenIE 方向也出现了一些基于深度学习的有监督和无监督的方法。
(2)无监督抽取
DRWE [7] 模型(见下图)采用无监督的方法进行开放关系识别。具体来说,其利用一些已有的工具识别出句子中的关键实体与实体对以及最短依存路径,之后结合预训练的词向量、实体对之间的最短依存路径和实体类型构建特征向量并进行 PCA 降维,进而通过层次聚类得到最终的关系聚类结果。
RSN 模型 [8] (见下图)在已有的关系标注数据上,基于 CNN 模型训练了句子之间的语义匹配模型,并将此模型用于计算测试数据中句子之间的相似度矩阵,进而利用基于图的聚类算法 Louvain 进行不固定聚类类别的聚类。RSN 模型在半监督、远程监督的关系识别任务上都取得了很好的效果。此类模型受限于已有的实体识别和句法分析工具或者需要先验的标注数据进行更加精准的聚类,且其仅对关系进行聚类但没有进行显式的抽取。
(3)有监督抽取
RnnOIE [9](见下图)采用有监督的方法,将 OpenIE 的 SPO 抽取建模为序列标注问题。具体来说,其将词的词向量和词性向量进行 concat,输入到 BiLSTM 中,最终以 softmax 输出进行标签分类。近几年随着 bert 的提出,大规模预训练模型带来了更好的泛化能力,Span Select 的方法,因为其可以利用更多语义信息,渐渐开始超越了传统 OpenIE 上基于 CRF 的相关方法。
由于大规模标注数据很难获取,RnnOIE-SupervisedRL [73] 模型(见下图)首先基于句法和语义规则自动进行大规模抽取,在此数据上训练 RnnOIE 模型,得到初步的抽取模型。为了增强模型的准确性,RnnOIE-SupervisedRL 对前述初步抽取模型,采用强化学习的训练机制进行了进一步训练,其 reward 是由抽取结果的基于 head match 的句法满足度和基于 Bert 的预训练模型给出的语义匹配度的乘积得到。
实验证实,上述模型在 OIE2016 数据集上的 F1 值由 20.4% 提升到了 32.5%,两个子模型分别贡献了约 4% 和 8% 的提升。上述模型目前所考虑的 SPO 形式还较为简单,对于复杂情形(如包含一个 SP,多个 O 的句子)的处理还需进行深入研究。
(4)生成式模型
Neural OpenIE [11] 将 Encoder-Decoder 架构引入到 OpenIE 任务中来,从而将信息的抽取模式转化为信息的生成模式。此模式可以有效解决隐式 Predicate 抽取问题,比如从句子“张三,90 后,喜爱二次元”中抽取出(张三,出生年代,90 后),其中“出生年代”是隐式的 Predicate。此类方法面临和前述有监督方法相同的复杂信息抽取和信息归一的困难。
1.2 半自动schema构建
在基于知识图谱的问答(KBQA)中,我们实现了基于问句的半自动 schema 构建。以公积金场景为例,下图展示了公积金图谱 schema 的一部分,算法做的是从用户的大量问句中抽取“公积金”为 subject,“缴存”、“提取”、“启封”为 predicate。
同时由于实际中涉及一些复合类型属性(compound value type),比如“提取”属性是复合类属性,因其含有限制属性“提取地点”和“公积金用途”。如后面基于 GNN 的抽取图所示,算法是从问句集中抽取(公积金,抽取,租赁住房),再由业务方校验和进一步抽象为(公积金,抽取,公积金用途)。
因此,算法最终要从问句中抽取出 subject, predicate 和 constaint 三部分,分别对应前述例子中的 “公积金”,“抽取”和 “租赁住房”。
基于句法的 pipeline 式抽取
我们采用 subject-predicate-constraint 的 pipeline 抽取模型,方案逻辑大致为:首先对问句文本进行聚类(不固定聚类数目),然后从每个聚类簇中抽取一个三元组(实体,主属性,限制条件/子属性值),其中实体,主属性,限制条件/子属性值为词汇或者短语,例如三元组(公积金,提取,租赁住房)。
我们首先实现了以依存句法分析为核心的 Deductive 抽取流程(如下图所示),其中主要包括层次聚类,关键词/短语抽取与对齐,词性分布归纳,Subject、Predicate、Constraint 抽取等模块。
▲ 基于句法的pipeline式抽取图
基于 GNN 的抽取
我们发现上述方案没有很好的考虑各类依存句法逻辑之间的综合关系,且泛化性能有限。因此,在上述方案基础上,设计并实现了将聚类簇图结构化,并借鉴知识图谱上图卷积神经网络方法进行建模的方案。为了达到领域无关的效果,图结构中节点的 embedding 表示是基于词汇在簇词汇集中的位置 onehot 表示生成得到。
从实际效果来看,基于 GNN 的模型相较于第一个版本的模型具有更好的泛化性和准召率。下图给出和(公积金,提取,租赁住房)相关的聚类簇图结构化的展示例子。
▲ 基于GNN的抽取图
1.3 小结
从行业知识图谱的 schema 构建出发,本节介绍了开放信息抽取(OpenIE)与 schema 构建的之间的关系,并对 OpenIE 中的基于规则、基于监督数据以及基于生成式的模型进行了介绍。同时,本节还介绍了在 KBQA 场景下,由 OpenIE 启发,基于用户问句的半自动 schema 构建算法的简要介绍。
虽然我们实现了基于问句的半自动 schema 构建的初步版本,但在真实落地中还存在很多挑战和困难,后续我们可能在如下方向进行深入探索:
复杂样本,如一个聚类簇包含一个 SP,多个 O 的情形;
将行业预训练语言模型引入来提升模型的泛化性;
借助 OpenIE 中的生成式模型来抽取问句中隐含的属性或者条件信息,如“我今年 56 了,能购买康宁保险吗?”中“我今年 56”的隐含条件信息是“年龄”。
知识图谱 schema 的构建完成类似于关系型数据库中的表名和表中的栏位名确定了,之后就需要向表中填充真实的数据。由于知识图谱由(实体,关系,实体)三元组构成,因此后续构建的关键在于实体识别和关系抽取。
实体识别
2.1 简介
命名实体识别(Named Entity Recognition,简称 NER),是指识别文本中具有特定含义的实体,常用 NER 数据集中的实体类型主要包括人名、地名、机构名、专有名词等,以及时间、数量、货币、比例数值等文字。命名实体指的是可以用专有名词标识的事物,一个命名实体一般代表唯一一个具体事物个体,包括人名、地名等。
2.2 数据集和评测指标
常用的中文 NER 数据集包括,OntoNotes4.0 [12],MSRA [13] 和 Weibo [14] 等,前两个是由新闻文本中抽取得到,后一个是由社交媒体中抽取得到。常用的英文数据集有 CoNLL2003 [15],ACE 2004 [16] 和 OntoNotes 5.0 [17] 等。想了解更多数据集,建议参见 [74]。
在数据标注上,主要有 BIO(Beginning、Inside、Outside)和 BIOES(Beginning、Inside、End、Outside、Single)两种标注体系。此外,还有针对复杂实体抽取建立的改进版本的标注方法,将会在 2.4.4 部分进行介绍。
在模型评测上,由于命名实体的识别包括实体边界和类型的识别,因此只有一个实体的边界和类型都被正确识别时,才能被认为实体被正确识别。根据对实体边界预测的精准度的要求不同可以分为 Exact Match 或 Relaxed Match,并且使用准确率,召回率以及 F1 值来计算得分。目前,基于 Exact Match 的 micro 的准确率,召回率以及 F1 值最为常用。
2.3 面临的挑战
目前,命名实体识别在行业知识图谱构建方面主要面临如下挑战:
垂直领域标注语料少,导致模型效果不好
垂直领域细分类别很多,在进入一个新的垂直领域时,往往可用的监督数据是很有限的。在此基础上所训练得到的模型的识别效果是不尽人意的。
垂直领域先验知识未能有效利用
在有监督数据足够的前提下,行业内其他类型的先验知识的量相对来讲是更大的。但是这些行业数据却没有很合理的应用到 NER 任务中来更有效的提升模型性能。
垂直领域复杂实体难以识别
一般研究和落地中遇到的实体识别大多为连续实体的识别,但复杂实体识别在实际应用中的占比越来越高,特别是在医疗领域的实体抽取中。
2.4 主流NER深度学习模型