导读:本次分享题目为《图视角下的信息抽取技术研究》,主要介绍:
研究背景和意义
国内外研究现状
研究目标与内容
主要成果与创新之处
完成项目及发表论文情况
分享嘉宾|郁博文博士 达摩院 算法专家
编辑整理|王露
出品平台|DataFunTalk
01
研究背景和意义
信息抽取,是从无结构的自然文本中识别出实体、关系、事件等事实描述,以结构化的形式存储和利用的技术。以“信工所位于北京市海淀区,隶属于中国科学院”为例,可以得到<信工所,位于,北京市海淀区>和<信工所,隶属于,中国科学院>两个三元组。
信息抽取的目标是,让机器理解互联网上的海量信息,为机器做正确决策提供大量相关知识。
信息抽取是知识图谱构建与填充、自动机器问答、信息检索、辅助决策等下游任务和应用的重要基础。如 AliCoCo 电商图谱,为商品推荐和阿里小蜜智能问答提供知识基础。
1. 实体识别
实体识别,指的是从文本中识别出实体的边界和类别(来自于预定义好的类别集合)。根据实体是否包含单个连续片段,可以将实体识别任务划分为连续实体识别和不连续实体识别任务。
连续实体识别,指的是每个实体只包含一个片段,但是不同实体之间可能有嵌套。如“呼吸中枢受累”文本片段中,存在两个实体“呼吸中枢”和“呼吸中枢受累”,分别代表“部位”和“症状”。
不连续实体中,一个实体包含多个不连续的片段。如“明朝嘉靖、万历年间”,包含两个实体 “明朝嘉靖年间”和“明朝万历年间”。“明朝嘉靖年间”,包含两个片段“明朝嘉靖”和“年间”,“明朝万历年间”包含“明朝”和“万历年间”两个片段。对于不连续实体,需要识别出每个片段的边界和片段之间如何组合不连续实体。
2. 关系抽取
关系抽取,致力于从文本中识别一对实体以及实体间的语义关系,构成关系三元组。关系类型来自于预先定义的类型集合。根据是否给定目标实体,关系抽取可以分为,关系分类和实体关系联合抽取任务。
关系分类的任务中,输入为原始文本、文本中抽取出的实体,输出关系类型。如下图中的“鲍卡斯”和“蒙大拿州”,输出关系类型“Come From”。
实体关系联合抽取任务中,只输入原始文本,不给定实体,输出文本中包含的所有满足预定义关系集合中的关系三元组。
3. 事件抽取
事件抽取的目标是,从文本中抽取出用户感兴趣的事件。如某人在某时某地做了某事。
组成事件的元素包含,事件类型、触发词、论元和论元角色。论元,指的是事件文本中出现的人或物的名称。论元角色,指的是论元在事件中承担的角色。事件抽取,需要识别文本中术语预定义类型的所有事件的类型、触发词、论元和论元角色。
以“2004 年 12 月 24 日,杨振宁与翁帆在广东省汕头市举行婚礼”为例,事件类型为结婚,触发词是“举行婚礼”,论元是“杨振宁”、“翁帆”、“广东省汕头市”和“2004 年 12 月 24 日”,对应论元角色分别为参与者、参与者、地点和时间。
4. 开放域抽取
前面提到的实体识别、关系抽取和事件抽取都是面向限定类别的知识抽取,难以应对未知域,也就是不在定义好的训练集合类别中的知识抽取,开放域抽取能够解决这个问题。开放抽取直接使用句子原始字词片段作为实体之间的关系短语,而不是从固定的类型集合中选取的短语。根据是否给定头实体,开放抽取可以分为半开放信息抽取和开放信息抽取。
半开放信息抽取,给定一个头实体。下图的话中,以“鲍卡斯”为中心,抽取出与它有关的尾实体和关系短语,也就是“曼斯”,“蒙大拿州”。
开放信息抽取,不给定头实体,希望能够抽取句子中所有的知识。也就是<鲍卡斯,来自于,蒙大拿州>和<曼斯,来自于,蒙大拿州>。最关键的是,实体间的关系短语来自于文本中的片段,因此可以应用于任何领域、任何语言,而不需要预定义关系类别集合。
通过上述定义可以发现,信息抽取的不同子任务有不同的输入和输出,因此,在语言学中各子任务被视为单独的研究领域。下图统计了 ACL 2021 年各种任务的论文数量,可以发现,不同子任务多有较多的研究,但很少有文章研究如何用统一的视角看待信息抽取的不同子任务,用统一的思路解决这些子任务,因此本篇文章研究了以统一视角和设计思路指导模型设计。
02
国内外研究现状
1. 序列标注
早年信息抽取任务间统一的方法是序列标注,也就是给文本中句子的每个词项打预定义的类别标签。该方法本质是对文本中每个词项进行分类的问题。
以“2017 年,鲍卡与曼斯先后担任大使”为例,“2017 年”是一个时间类实体,标签为 B-TI、I-TI,“鲍卡”和“曼斯”是一个人物类的实体,标签为 B-PER、I-PER,“大使”是一个工作类的实体,标签为 B-JOB,I-JOB。下图中符号与含义解释如下表:
在更为复杂的实体中,通常会使用三段式标注,也就是 BIO 表示法。其中B(Begin,简写为 B)表示实体的起始位置,I(Inside,简写为 I)表示实体中间字,O(Other,简写为 O)表示非实体字。1 和 2 分别代表头实体和尾实体。如“鲍卡”和“曼斯”为头实体,“大使”是尾实体,因为希望抽取到的三元组为<鲍卡,担任,大使>,<曼斯,担任,大使>,因此,这句话中有两个头实体,对应的序列标注结果为 B-1-J、I-1-J、B-1-J、I-1-J、B-2-J、I-2-J。
(备注:上图中最后一列“使”对应的序列标注应该为 I-2-J)
事件抽取与开放抽取类似实体抽取和实体关系抽取,可以采用同样的方式抽取三元组。
尽管序列标注能够优雅的统一信息抽取的各个子任务,但是对复杂的输入文本,序列标注的表达能力有限,而我们希望能够抽取到所有感兴趣的知识。以“鲍卡斯来自蒙大拿州,担任大使”为例。两个关系三元组共享同一个头实体“鲍卡斯”,但关系类型不一样,分别为“来自于”和“担任”。序列标注的方法只能识别出一个三元组,因此,序列标注无法识别出共享一个实体且关系类别不一致的知识,为了解决这个问题,当前主流的解决方式有级联式标注和序列分层。
2. 级联式标注
级联式标注,不再一次性将所有的头实体、尾实体以及关系都抽取出来,而是对任务进行分解,先抽取头实体,再标记对应的尾实体和关系。
以“故宫博物院坐落于中国首都北京”为例,先找到句子中的头实体“故宫博物院”,进行序列标注,第一个序列中标注头实体的开始类型,第二个序列标注头实体的结束词类型,结合两个序列得到头实体。之后针对每个头实体枚举所有关系类型(如Located-in,Capital 和Contains),在关系类型下,标注头实体对应的尾实体,得到头实体与尾实体的三元组。从而,能够抽取到文本中所有的三元组,如<故宫博物院,Located-in,北京>,<中国,Capital,北京>,<中国,Contains,北京>。
3. 序列生成
序列生成,利用编码解码框架,根据输入的文本直接生成三元组。不同的三元组按照预先定义的顺序生成。如<故宫博物院,Located-in,北京>,先生成“故宫博物院”,再生成“Located-in”,最后生成“北京”。通过这种方式可以将复杂的实体联合抽取任务转换为序列生成问题。
4. 不连续实体识别之级联标注和序列生成
在前面的举例中提到,实体识别中存在实体嵌套和实体不连续的问题。实体嵌套,指的是两个实体有重叠部分,实体不连续指的是,一个实体包含多个片段。序列标注的方式为每个实体赋予一个标签的方式无法解决这两种问题。如“呼吸中枢受累”和“呼吸中枢”都是实体,但是用单个序列标注在“呼吸中枢受累”有标签时无法区分出“呼吸中枢”也是一个实体。而在“患者腿部、腰部痛”这句话中,“腿部痛”和“腰部痛”都是实体,但是“腿部”和“痛”是不连续的,简单的序列标注方法也无法正确识别出来。因此,有一种解决方案是,移进归约解析器,借鉴到实体识别任务中,利用动作序列识别不连续和重叠的结构。解析器使用栈结构存储已经被处理过的片段,使用缓存区存储未被处理的片段,前后动作是相互依赖的。
序列生成根据输入的文本,先生成第一个实体,“腰部痛”,之后生成实体类型是症状,再生成第二个实体“腿部痛”,预测实体类型也是症状。以此类推,生成所有的实体。
5. 开放信息抽取之级联标注和序列生成
由于开放信息抽取任务中面向开放信息的特性,在三元组中会不可避免的出现实体重叠、实体不连续等复杂的知识描述。如“豫园建造于明朝嘉靖和万历年间”这句话中,有两个三元组<豫园,建造于,明朝嘉靖年间>,<豫园,建造于,明朝万历年间>,它们共享头实体“豫园”,实体“明朝嘉靖年间”和“明朝万历年间”不连续。
在这个任务中,复杂程度在于同时出现了实体重叠和实体不连续的问题。为了解决这个问题,级联标注会自回归的进行序列标注,每个序列标注会对应一个三元组,前一个三元组的预测标签输入到下一个三元组序列中用于标注后一个三元组,以此类推,直到某一层的三元组中标签全部为 O,表示序列中不再存在三元组,则停止标注。
使用序列到序列的生成模型解码得到三元组,输入为原始文本,生成多个三元组,三元组之间使用特殊字符进行分割,得到所有的三元组。
上面介绍了总结实体识别、关系抽取和开放抽取中的相关工作,总结如下:
无论是序列标注还是序列生成,从统一视角看,都是将业务关注的知识构建成树结构。以实体关系联合抽取的任务为例,级联式标注会先抽取头实体作为根节点,再抽取尾实体作为树的子节点,而序列生成将输入文本生成一个链表类的树结构,但由于树结构在表达能力、表达效率和预测方式上存在局限,提出一种新的视角解决现有的树视角下的问题。
03
研究目标与内容
重新划分任务,不再关注信息抽取任务类型是实体抽取、关系抽取、事件抽取或开放抽取,而是关注想要抽取出的知识,将原来的四大类七小类任务按照目标知识中包含的片段个数划分为一元信息抽取、二元信息抽取和多元信息抽取。
一元信息抽取,指的是,输出知识只包含一个片段。如连续实体识别和关系分类,关系分类中输出为关系类型,连续实体识别输出虽然包含实体和实体类型两部分,但两者可同时识别,因此可视为一元信息抽取。
二元信息抽取,指的是,输出知识包含两个片段。如半开放抽取输出为关系和实体的二元组,实体关系联合抽取输出为头实体、尾实体以及实体之间的关系三元组,但实体关系可以视为头实体和尾实体识别时的副产物,因此可以看做二元信息抽取。
多元信息抽取,指的是,输出知识包含三个或三个以上片段。其中不连续实体识别的片段的目标实体片段数量不固定,事件抽取中角色数量不固定,开放抽取需要同时识别和组合三个或更多的片段。
按照片段划分任务的优点是,能够剥离原有任务定义,从抽取任务最本质的需求,即抽取并组合目标片段并输出知识出发,重新思考任务间的关联性。
1. 一元信息抽取
一元信息抽取任务,究其根本就是从文本中识别目标片段,也就是将一个知识片段组合。识别和组合的动作也就是将文本中的词项进行联系,使得原有的一维文本转换为具有特定联系的词项集合。例如,在关系分类任务中,已知两个实体之间的联系就是关系类型,在图视角下,可以将任务转换为,在图中预测头实体和尾实体词项节点之间的连边类型,也就是说,预测图中的边类型。以“鲍卡斯与曼斯来自蒙大拿州”为例,“鲍卡斯”是头实体,“蒙大拿州”是尾实体,在图中可以构建一条“鲍”和“蒙”之间的连边,预测连边类型,也就是实体之间的类型。
在连续实体识别任务中会更复杂一些,需要在空白图中目标实体的开始位置和结束位置之间进行连边,如“鲍卡斯”是一个目标实体,因此,需要在“鲍”和“斯”之间建立连边,预测连边类型,也就是实体类型。能够知道实体类型的原因是,在图中如果我们能够确定一个实体在文本中的开始词和结束词,就能够唯一的确定实体。如“蒙大拿州”是尾实体,类型为Location。因此,在 “蒙”和“州”之间进行连边,表示以“蒙”作为开始“州”作为结束的片段的类型是location类的实体。因此,一元知识可以用图中的连边表示,无论是实体或关系,都可以将类型转换为图的连边类型。
2. 二元信息抽取
二元信息抽取的一个经典任务是实体和关系的联合抽取任务,在这个任务中,需要知道实体的开始位置和结束位置,并在之间建立连边,还需要联系具有语义关系的两个实体,可以通过连接两个实体的开始词和结束词的位置建立关系。
如“鲍卡斯”是一个实体,先连接“鲍”和“斯”,“蒙大拿州”是一个实体,连接“蒙”和“州”,之后组合两个实体之间的关系,需要把“鲍”(头实体的开始词)和“州”(尾实体的结束词),“斯”(头实体的结束词)和“蒙”(尾实体的开始词)进行连接,得到一个环表示二元知识。环代表了<头实体,实体关系,尾实体>的三元组,实体之间的连边表示关系类型。因此,二元信息可以用图中的环进行表示。
3. 多元信息抽取
为了准确的组合同一个知识内部的多个片段,需要用图结构对所有知识的所有片段进行准确组合,而不能仅仅通过一套或固定数量的连边建立,需要通过两两连边组合避免表达的歧义性。当构建出多元组中片段的两两连边后,多元信息抽取可以转换为图的极大团查找问题。图的每个极大团代表一个多元组,因此,多元知识可以用图的极大团表示。
4. 研究工作总结
作者在博士期间的主要工作就是,用图视角建立三类七种信息抽取任务的统一建模,建立文本、信息抽取和图分析研究领域的桥梁,接下来论述每个图结构建立的过程,以及如何表达处理任务。
04
主要成果和创新之处
1. 图视角下的一元信息抽取
上面提到一元信息抽取任务可以转换为图中连边类型预测问题。
(1)图视角下关系分类
以关系分类为例。关系分类中,知道图中的头实体和尾实体,需要预测连边的类型。对应的问题,相当于构建一个 N*N 的二维矩阵表达图结构,想要预测的就是头实体和尾实体交叉部分的区域,代表了两个实体连边之间的类型。实现方式为,首先对头实体和尾实体位置的所有词项进行平均池化,将头尾实体的向量拼接,对拼接后的向量进行分类,相当于预测图中关系的连边。
然而,仅仅依赖头尾实体的表示判断实体关系是不充分的,需要联系实体的上下文信息。以“鲍卡斯与曼斯菲尔德都来自蒙大拿州,后者担任美国驻日大使”这句话为例。包含两个三元组<鲍卡斯,来自,蒙大拿州>,<曼斯菲尔德,来自,蒙大拿州>,“后者担任美国驻日大使”中虽然也包含三元组<曼斯菲尔德,担任,大使>,但并不是我们关注的关系类型。我们需要关注的是“鲍卡斯”、“曼斯菲尔德”和“蒙大拿州”之间的 Come-From 关系,为了准确的预测关系类型,希望模型能够更多的关注 Come-From 的关系描述,排除“担任”关系描述,防止噪声误导模型给予 JOB 很高的权重。因此,为了准确的找到想要的关系描述,一个较好的方法是引入注意力机制。
基于注意力机制的方法为每个词项单独计算与目标实体之间的相关性得分,并进行归一化,再对所有词项加权求和作为实体对的语义关系表示。然而,这种方法可能会导致模型无法识别连续的关系描述(指的是实体间的关系描述往往是连续的片段,而不是一个个离散的词),要解决这个问题,我们希望让注意力机制关注连续的片段,实现的方式是让注意力权重在连续的片段内部变化不明显,此时,计算每个词的重要性时不止要考虑自身的重要性,也要考虑上下文词的重要性。基于此,引入概率图模型,建模前后词之间的相互依赖关系。受到相关工作的启发,提出使用线性链条件随机场建模注意力得分的转移。具体的说,将注意力机制建模为一个选择问题,也就是每个词有两个状态 0 和 1,分别代表不被选中、被选中,在不同的状态下有不同的得分。计算建立前后词项在选中和未选中状态下的转移概率,用两个势函数分别表示每个词项的重要性、词项之间转移的重要性。函数 ψ1,单独计算每个词项的重要性,函数 ψ2,训练了一个 2*2 的矩阵,建模相邻词项的状态转移,之后利用条件随机场中的前向-后向算法计算每个词项在全局下进行状态转移得分后的一个全局重要性。通过计算全局重要性,计算每个词项被选中的概率,作为计算上下文表示公式中的权重。通过这种方式,在计算每个词项的时候不仅考虑自身,也考虑到前后词项。
此外,还考虑了两个正则项——转移正则项和稀疏正则项,转移正则项,我们希望得到相同状态的得分大于不同状态时的得分,也就是模型能生成类似 101010 的一个连续片段,而不是离散片段。稀疏正则项,希望被选中的词越少越好,因为关系描述往往是很短的片段。计算上下文表示时,对头尾实体进行了拼接,拼接后再进行分类。这样使得计算实体连边时,不仅考虑到自身的表示也考虑到相关上下文。
在公开数据集进行了实验,证明了图视角和片段注意力机制的优越性,消融实验和可视化分析,注意力机制在引入了条件随机场之后,能够准确地关注到一些连续片段。
(2)图视角下的连续实体识别
连续实体识别,也被建模为图上的连边预测问题,将实体类别视为连边类型。因此,需要构建实体的开始和结束词项之间的连接。例如,下图中的例子中包含了三个实体,其中有两个实体“中央”和“中央办公厅”是嵌套的,在传统的序列标注方法中,很难用一个标签序列识别出两个嵌套实体,但是在图视角下,两个实体的开始词相同但结束词不同,在图中就会有两条边,从而能够解决实体嵌套的问题。同理,“西城区”是一个 LOC 类的实体,需要给“区”和“西”建立一条连边。我们需要做的就是,构建一个图结构,利用图结构从中解码出所有的实体。
命名实体识别与关系分类不一样的地方在于,没有给定抽取目标,需要遍历文本中所有的词项对并判断它们之间是否有连边以及连边的类型。为长度为 N 的文本构建一个 N*N 的矩阵,代表图的邻接矩阵,判断第 i 和 j 个词项的关系,如“中央”是一个ORG,“中”和“央”在矩阵中交叉点的位置代表了它们连边的类型 ORG,“西”和“区”的交叉位置代表了它们的连边类型(实体类型)为 LOC。
如何预测矩阵呢?我们枚举所有的词项对,通过 LSTM 或 BERT 等编码器,输出每个词项对的表示,将词项进行拼接预测类型,从而判断连边的类型。连续实体识别任务中,对嵌套实体和非嵌套实体都做了实验,有很好的效果。
2. 图视角下的二元信息抽取
二元抽取,相比一元抽取复杂之处在于,不仅仅关注一个片段,而是需要两个片段。以实体抽取为例,我们知道单个实体可以看做图中的一条连边,类似地,希望实体和关系也能在图中通过连边组合产生。
以“故宫博物院在中国首都北京”为例,有 3 个三元组<故宫博物院,Located-in,北京>,<中国,Capital,北京>,<中国,Contains,北京>要构建这个三元组。对于三元组<故宫博物院,Located-in,北京>,操作流程为:
① 构建“故”和“院”之间的连边作为头实体;
② 构建“北”和“京”之间的连接作为尾实体;
③ 连接“故”和 “北”这两个头尾实体的开始词用located-in的连边表达它们之间的关系类型。
之后发现通过这样三条连边的组合,就可以识别上面提到的三元组。
上文方式构建的结构,如果我们按照原文不能中的语句进行还原,并且删除掉没有参与到连边关系的节点,就可以产生一个有效的无环图。
然而,某些场景中用三条连边构成的无环图无法准确的找到三元组。例如,有两个三元组<故宫博物院,Located-in,北京市西城区>,<西城区,Belong to,北京市>,“北京市”和“北京市西城区”是嵌套的,在这种情况下,从“故”到“北”的连边代表了故宫博物院和北京市这两个实体的关系,但是由于只有一条连边,无法确定这条连边指向的尾实体是“北京市”还是“北京市西城区”,因此,只有头实体开始词连接的边会存在歧义。为了解决这个问题,在图结构中,为每个三元组再添加一条从头尾实体的结束词连接的边,使用两条边双重校验实体的开始位置和结束位置,从而唯一的确定头尾实体。如,在“北”和“市”、“市”和“区”、“西”和“区“、“北”和“西”之间都存在一条连边,这四条连边组成的环代表了一个三元组。
考虑到一个环可以表示为一个三元组,在关系抽取任务中,解码时可以从图中抽取所有的环,从而抽取所有的三元组。以<故宫博物院,Located-in,北京>为例,从“故”到“京”,从“京”到“北”,从“北”到“院”,从“院”到“故”构成一个环,这四条连边表示两个实体构成一个三元组。
基于上述的思想,与一元关系抽取任务类似的思想构建实体关系联合抽取的任务的图结构,使用二维标注来预测图的邻接矩阵。
首先,用一个二维矩阵标注文本中可能的实体,比如“故”和“院”,“中”和“国”,“北”和“京”这样的三条连边对应的图中三个交叉位置,表示两个实体之间的连边类型。“故宫博物院”是我们关心的实体,因此有“故”到“院”的一条连边,分别代表实体的开始和结束。
之后,为每个关系类型都构建一个二维矩阵,如 Located-in 关系的二维矩阵。连接这个关系下的头实体和尾实体,这个矩阵里面存在两个标签,头实体开始到头实体结束,尾实体开始到尾实体结束,我们用这两个标签去分别连接 Located-in 关系类型下头尾实体开始词项和结束词项,如“故宫博物院”和“北京市”,“故”和“北”交叉位置的标签就是头实体的开始到尾实体开始,“院”和“京”的标签是头实体结束到尾实体结束。由于它们构成了一个三元组,且这两个实体的开始词分别是“故”和“北”,结束词分别是“院”和“京”,因此,在解码的时候对照下面两个图就能构建出 LOCATED-IN 这个关系类型下的图结构。同理,也可以构造 Capital 的图结构。
总结:这种方式实际上为每种关系和实体类型都构建了一个 N*N 的矩阵代表图结构,预测图结构的方式就是,枚举图中的每个词项对表示,对头尾实体进行拼接分类,之后选择最大的概率的输出作为标签。由于会为每个关系类型都构建一个标注矩阵,不同类型的三元组都会单独解码,因此不会存在实体重叠的问题。
在联合抽取任务下也进行了实验并证明了结果的优越性。
3. 图视角下的半开放抽取
半开放抽取任务,就是想要知道与某个实体相关的知识,而不是文本中所有的知识或固定类型的知识。
如何实现半开放抽取?与实体联合抽取任务类似,半开放抽取也是从开放域中抽取二元知识,因此,问题可使用环结构表示,用二维矩阵标注。第一个矩阵中标注关系短语和尾实体的边界位置,标注出“关系短语开始-尾实体结束”,“尾实体开始-尾实体结束”,如下图中的粉色和绿色位置。第二个矩阵中标注“关系短语开始-尾实体开始”、“关系短语结束-尾实体结束”,如下图中的绿色和蓝色位置。
由于面向特定的实体去抽取,所以在编码的时需要考虑到我们所关注的头实体信息。为了实现这个功能,设计了目标实体感知编码器,把头实体拼接在输入的前面作为关注的锚点输入到BERT中编码,之后取出头实体的位置表示,添加条件层正则化机制,使得表示更偏向于头实体的语义信息。通过实验发现,在我们构建的数据集上,能够取得很好的效果,F1=0.803,并且在实际业务中产生了真正经济价值。
4. 图视角下的多元信息抽取任务
多元抽取任务,是信息抽取任务中最复杂的。包括了不连续实体识别、开放信息抽取和事件抽取。与一元抽取和二元抽取不同的是,多元抽取任务中,对抽取的知识片段数量没有限制,因此无法像二元抽取任务一样,可以通过四条边连接固定的抽取到目标知识。为了实现多元信息抽取任务,一个很直接的思路就是,对二元抽取的环结构进行扩展适配到多元抽取任务中,但是在一些复杂的例子中会出现表达歧义。
给出一个开放抽取的示例,“腾讯控股盛大文学,并收购了该公司剩余的所有股份”。这句话中有两个三元组<腾讯,控股,盛大文学>,<腾讯,收购,盛大文学剩余的所有股份>,如果采取二元抽取的方式,只连接每个实体的开始词和结束词,每个关系的开始词和结束词,并对片段的开始词和结束词进行连接构成环,可以发现整个图结构中有四个环,其中,“腾讯控股盛大文学剩余的所有股份”和“腾讯收购盛大文学”这两个环是错误的。这是因为,“盛大文学”本身是一个尾实体,同时也是“盛大文学生育的所有股份”尾实体的一部分,导致了环结构代表的语义出现歧义。
为了解决上述的问题,需要在环结构中构建三元组中所有片段边界位置的连边,从而避免复杂知识表达的歧义性。我们发现两两都连边的图结构,构成一个紧密的团结构。团,是一个无向图的无向子图,团中的每对顶点必须有边连接。
下图中左侧的图结构,可以拆分为右侧的十个团,每个团的不同节点之间都有一条边相连。例如节点 0 和 5 是一个团,“0,5,4”也构成一个团。进一步地说,如果一个团不被其他任何团包含,就称它是图的极大团。下图中,节点 0 和 5 是一个团,添加节点 4 后仍然组成团,对于团 0,5,4 无法再添加一个节点形成新的团,因此,054 成为图的一个极大团。下图中有 3 个极大团分别为 054,014,124 节点组成的团。
因此,如果我们文本看做一个图结构,多元信息抽取任务就是转换为图中极大团查找任务,解码时找到图中所有的极大团,再判断团中每一个节点的角色和类型就可以去组合还原出想要的多元知识。
下面给出了基于极大团的开放信息抽取的一个流程:
① 首先,构建一个图,图中的节点是头实体、关系短语、尾实体;
② 把属于同一个三元组的所有角色进行连边;
③ 在图中进行极大团查找,每个极大团代表一个目标知识。
在建图过程中,用二维矩阵标注文本中所有三元组中的片段,如“豫园”、“建造于”、“明朝嘉靖年间”,之后构建片段的连边,包含位置和角色两种标签。位置用来表达对应两个词项是属于同一个三元组片段的开始或结束位置,如“豫”和“建”分别代表三元组头实体和关系短语的开始位置,因此用标签 1 表示。“豫”和“建”分别代表头实体和关系短语,用标签 3 表示。通过这两个矩阵就可以构建出想要的图结构。
我们在中文和英文数据集上都进行了实验,并取得非常好的效果,在实体重叠、实体嵌套和不连续的场景中也有出色的表现。
(1)图视角下的不连续实体识别
类似开放信息抽取,不连续信息抽取也可以采用类似方法实现。首先标注文本里所有不连续实体的片段,之后构建片段之间的两两连边,最后构建极大团结构。
在三个数据集上做实验,效果非常好,在仅包含不连续实体的数据集上超越了之前的方法至少六个点,速度也非常快,训练时间减少五倍。
(2)图视角下的事件抽取
事件抽取也采用类似之前的方法,先识别出文本中给定事件定义下所有的角色(每个标签就是一个角色),之后识别事件类型下所有的片段,如敌人、攻击、基地、士兵等,之后在连边下识别出关心的片段,以及片段组合的连边类型。例如“敌人”和“攻击”之间的关系就是“Attack 事件的 Trigger”,“基地”表示一个攻击性事件的一个 Target。之后判断词项是两个要素的开始或者结束,从而构建出要素之间的连边。从而实现在事件抽取里,不同要素同属于一个事件的所有要素两两之间构建起连边的图结构。
5. 本节总结
我的课题提出一个统一的信息抽取的图视角,将图分析领域和信息抽取领域相结合,把七类信息抽取任务建立为 3 种图结构,从连边到环再到团,并在数据集上取到较好的效果。
|分享嘉宾|
郁博文 博士
阿里巴巴 达摩院智能对话团队算法专家
郁博文,阿里巴巴达摩院智能对话团队算法专家,2022年博士毕业于中国科学院大学,研究方向为自然语言处理中的知识发现与利用,累计在ACL、WWW、SIGIR、AAAI、IJCAI、EMNLP等重要国际会议上发表高水平论文三十余篇。担任ACL、EMNLP、AAAI、IJCAI、WSDM等会议的程序委员会委员,以及WWWJ、AI、TALLIP、TKDE等期刊的审稿人。
OpenKG
OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。
点击阅读原文,进入 OpenKG 网站。