周孟佳,李 霏,姬东鸿
(武汉大学 国家网络安全学院,湖北 武汉 430072)
随着互联网的繁荣发展,网络上涌现了大量的非结构化文本,对这些文本进行信息抽取具有重要意义。关系抽取是信息抽取的一个关键问题,其目标是从文本中判断给定实体之间的关系,得到(实体1,关系,实体2)三元组。关系抽取在自然语言处理的许多领域中发挥着重要作用[1-2]。
传统的关系抽取通常为句内关系抽取,即两个实体来自同一个句子。Hendrickx等[3]构建的人工注释的关系抽取语料库,是句内关系抽取方面的经典数据集。然而,在现实场景中,实体通常是跨句子的,需要利用多个句子的信息进行句间或文档级关系抽取[4]。近年来,文档级关系抽取已成为自然语言处理领域的一个热点问题[5-6]。
对话级关系抽取也具有文档级关系抽取的特点,并且还具有自身独特的因素。最近,Yu等[7]构建了一个基于对话的关系抽取语料库DialogRE,用于提取对话中出现的两个实体之间的关系。如图1所示,与传统的关系抽取不同,DialogRE中的句子是以不同说话者的交替发言展现的。可以看到,对话中出现了大量的人称代词,如I、you、her等。以(Speaker 2, per: negative_impression, Speaker 4)关系三元组为例,模型需要识别出最后一句话中的“you”指向“Speaker 4”,从而通过后续发言“spend half your… bloody window!”识别出消极的情感倾向,提取出“per: negative_impression”关系。这说明在对话级关系抽取任务中,与人称代词相关的同指信息非常重要。
图1 DialogRE数据示例
此外,大部分关系是跨句的,需要从多个句子中提取有益信息。例如,对于实体对(Speaker 3, Emily),我们只需要从第三句话“Speaker 3: Now…”中,通过触发词“love”、“honeymoon”,推断出“Speaker 3”对“Emily”存在积极的情感倾向,并判断出他们之间是“per: girl/boyfriend”的关系。而其他句子,以及这句话中的其他单词,对判断关系类型的作用很小。考虑到不同类型关系关注的信息可能不同,本文添加了注意力机制,用于区分不同单词对不同关系的贡献,来增强模型性能。
基于以上观察,本文提出了一种基于注意力机制与同指信息的关系抽取模型。模型自底向上分为三个部分: 上下文编码层,词-关系注意力层,关系分类层。首先,将整篇对话的单词序列输入上下文编码器,融合BERT[8]与TOD-BERT(Task-Oriented Dialogue BERT)[9]预训练语言模型的输出得到单词表征。然后通过词-关系注意力层,计算不同词与关系之间的注意力系数,以评估不同单词与不同关系之间的相互影响。接下来,通过融合实体提及与人称代词的同指信息,得到实体表示,并将其输入到一个双线性分类器中,预测最终的关系类型。
本文的贡献主要有三个方面:
(1) 提出了一种端到端的对话级关系抽取模型。该模型主要从对话文本的特点出发,采用TOD-BERT预训练语言模型丰富对话文本表征,并提出了词-关系注意力、同指信息融合两个模块来增强模型性能。
(2) 该模型在对话级关系抽取数据集DialogRE上,比几个常见的基线模型,F1值获得了明显提升。
(3) 通过对模型各部分进行消融实验,验证了TOD-BERT预训练语言模型、词-关系注意力机制,同指信息等部分对对话级关系抽取的有效性。
关系抽取是自然语言处理领域的一项基本任务,按照实体对出现的位置不同,可分为句内关系抽取与句间关系抽取。其中,句间关系抽取的研究对象通常为整篇文档,因此又称为文档级关系抽取。
常见的句内关系抽取数据集有SemEval-2010 Task 8[3]、ACE 2004[10]、ACE 2005[11]。Zeng等[12]利用卷积神经网络(Convolutional Neural Networks,CNN)提取词汇和句子层次特征,并将其用于关系预测。Miwa等[13]提出了基于循环神经网络(Recurrent Neural Network,RNN)的关系抽取模型,捕获单词序列和依存树子结构信息。这些研究忽略了句间关系类型,即两个实体不在同一个句子中。
对于句间关系抽取,Li等[14],Wu等[15]构建了生物领域两个流行数据集。Yao等[4]基于维基百科构建了最大的人工注释数据集DocRED,用于文档级关系抽取,并提供了大规模远程监督数据,使DocRED可同时应用于有监督和弱监督的场景。最近,Yu等[7]从《老友记》中构建了人类注释的对话级关系抽取数据集DialogRE。为了捕获文本的篇章级特征,Peng等[16]提出了graph-LSTM网络来提取跨句n元关系。Sahu等[17]构建一个文档级图卷积神经网络(Graph Convolutional Neural network, GCN)来同时捕获句内和句间关系。Tang等[18]认为文档级关系抽取必须考虑多粒度信息,提出了一种层次推理网络,以充分利用实体级、句子级和文档级信息。Christopoulou等[5]提出了第一个面向边的图模型(Edge-Oriented Graph model, EOG)来预测文档级关系。Nan等[19]构建了一个包含实体(Entity)、提及(Mention)、最短依存路径(Meta Dependency Path, MDP)节点的文档级图,通过潜在结构细化推理来捕获有益信息,并忽略无关信息。Xue等[20]构造了一个潜在的多视图来捕获令牌之间各种可能的关系,并在DialogRE与TACRED[21]数据集上实现了最佳性能。针对DialogRE数据集的特点,Chen等[22]构建了一个包含说话者(Speaker)、实体(Entity)、实体类型(Entity-type)、话语(Utterance)节点的图,并将其输入图注意网络,有效捕捉对话级上下文信息。Li等[23]提出了一个图增强双注意力网络来刻画句子和潜在关系实例之间的复杂互动,以改善句子之间的推理。
本文主要从对话级关系抽取的特征出发,针对其文本量大、信息密度低、人称代词丰富的特点,构建了基于注意力机制与同指信息的关系抽取模型,并应用于最新的对话级关系抽取数据集DialogRE。
本文提出了端到端的对话级关系抽取模型,图2展示了模型的整体架构。模型自底向上共分为三个部分: 上下文编码层、词-关系注意力层和关系预测层。本节将介绍各个模块的结构设置,以及任务定义、预测和训练细节。
图2 模型架构
给定一篇文档d,由m个句子{d1,d2,…,di,…,dm}组成。对话级关系抽取的目标是从文档d中判断两个实体(ei,ej)之间可能存在的关系r。实体(ei,ej)∈E,由任务预先给出。关系r={r1,r2,…,ri,…}是一个集合,存在一个或一个以上的关系类型。ri∈R,R是DialogRE数据集中预定义的关系列表,包含36种关系与一个“unanswerable”关系类型。
本文联合采用BERT[8]与TOD-BERT[9]预训练语言模型作为上下文编码器。BERT模型采用多层双向Transformer抽取文本特征,只需要一个额外的输出层就可以对其进行微调,应用于其他NLP下游任务,如对话系统[24]、命名实体识别[25]等。BERT模型已经帮助许多关系抽取任务获得了最先进的结果[19]。TOD-BERT是由Wu等提出的任务导向型对话的预训练语言模型,同样使用多层双向Transformer作为编码器,区别在于添加了用户([USR])和系统([SYS])标记,用以模拟人类和系统的对话响应。TOD-BERT模型在多个任务导向型下游对话任务上都获得了相对于BERT模型更好的结果。
针对BERT模型,本文将d0中的每个句子di拼接起来,在句子集合的头尾分别加上BERT模型分隔符“[CLS]”“[SEP]”,组成一个单词序列{[CLS],w1,w2,…,wn,[SEP]},其中n是对话文本的单词个数。图1中的对话对应的单词序列为{[CLS] Speaker 1: Hey-hey… window!.[SEP]}。BERT模型的编码过程如式(1)所示。
(1)
其中,wp为单词序列对应的word-pieces,即更小的单词片。ps、sg分别为相应的位置(Positions)嵌入、片段(Segments)嵌入。Tk为第k层隐藏表示,Trmk为第k层Transformer块,包含一个自注意力(Self-attention)层和一个前馈网络(Position-wise Feed-forward Network)层。
针对TOD-BERT模型,我们在每轮Speaker对话之前加上标记[USR],表示该句话是人类发言。输入单词序列为{[CLS],[USR],w1,w2,…,[USR],wi,wi+1,…,wn,[SEP]},图1中的例子对应为{[CLS] [USR] Speaker 1: Hey-hey…[USR] Speaker 2… window!.[SEP]}。TOD-BERT模型的编码过程与BERT相同。
最后,我们将BERT与TOD-BERT模型的顶层输出拼接,并输入一个线性层,得到单词的上下文表示。
(2)
其中,Wc、bc为权重矩阵及偏置。
由于跨句关系抽取的研究对象为长文本,备选的关系类型多样,本文认为不同的单词对不同的关系类型贡献不同,而不同的关系类型对不同的单词敏感程度也不同。识别这种关注倾向性,将有益于模型性能提升。以图1为例,单词“honeymoon”对关系“per: girl/boyfriend”的贡献会更高,而其他单词,如“tell”“that”等,对该关系的贡献是微乎其微的。
受Vaswani等[26]提出的注意力机制的启发,本文提出词-关系注意力模块,用以评估单词和关系之间的相互影响。该模型将DialogRE中的每个关系映射为一个向量rj,所有的关系向量组合在一起表示为矩阵R。另外,该模型通过上下文编码层得到每个单词的表示ui,整个上下文文本被表示为矩阵U。然后,该模块模拟注意力过程,计算每一个单词ui和每一个关系rj之间的注意力分数αij,可使用该注意力分数更新单词表示,使得每个单词表示都嵌入了关系信息。
A=Softmax(Q,KT),
H=AV
(3)
其中,A表示由αij组成的注意力矩阵,下标i和j分别表示该分数在矩阵A中的行和列。Q=UWQ,K=RWK,V=RWV是来自矩阵U和矩阵R的线性映射。
本文采用多头(Multi-head)注意力机制,所有头的隐层表示连接起来形成最终的输出。
H=H1⊕H2⊕…⊕Hm
(4)
其中,Hm为第m个头的隐藏表示,m为超参数。hi∈H作为单词ui更新后的表示。图3展示了该模块的主要结构。
图3 词-关系注意力层
关系预测层包含两个部分,首先从词-关系注意力层输出的单词表示中汇聚信息,得到实体表示,然后将实体表示输入到一个双线性层,得到最终的关系类型。
2.4.1 实体表示与同指信息的融合
本文将同指信息与实体提及(Entity Mentions)融合,生成实体表示。
其中实体是指每一个关系示例的头尾实体,是一个抽象概念,也是需要预测关系的目标对象。提及为每一个实体在对话中的具体表达,与实体的抽象表示可能存在差异。例如,实体“apple”可能同时对应其单数(apple)、复数(apples)等形式。一个提及(mj)的表示形式是该提及所包含的单词(hi)的平均值。
(5)
其中,|h|表示提及中包含单词的数量。
对于实体对(ei,ej),如果有一个实体形式为“Speaker N”,其中“N”为一个数字,表示说话者发言的次序,本文采用两种启发式规则将人称代词“I”“you”与实体提及链接:
(1)以“Speaker N”开头的每个句子中的“I”都与“Speaker N”存在同指关系。
(2)对“Speaker N”所在句子的前后相邻句子进行搜索,将其中的“you”视为“Speaker N”的一个提及。
此外,本文采用基于spaCy工具的NeuralCoref模型[27]解析对话中出现的其他同指信息,作为对上述启发式规则的补充。人工试验表明,NeuralCoref在跨句指代消解中的表现效果不好,会将两个句子中的“I”解析为同指关系。因此,针对对话中出现的“him”“her”等其他代词与其他名词之间的同指关系,本文将单个句子输入NeuralCoref工具获取同指信息,并将其链接。图4为NeuralCoref解析同指信息的一个例子。
图4 NeuralCoref解析同指信息示例
一个实体(ei)的表示形式为该实体所包含的所有提及(mj)与同指人称代词(ck)的平均值。
mj∈m,ck∈c
(6)
其中,|m|表示实体中包含提及的数量,|c|表示与相应实体存在同指关系的人称代词数量。
图5展示了同指信息融合的一个例子。具有相同轮廓的词组信息汇聚,形成相应的实体表示。
图5 同指信息融合示例
2.4.2 关系分类
经过同指信息融合,模型得到所有实体的表示。根据Yao等[4]的工作,对于每一个实体对(ei,ej),该模块通过一个双线性函数来计算其匹配每个关系类型的概率如式(7)所示。
P(r|ei,ej)=ReLU(eiTWrej+br)
(7)
其中,Wr、br是与关系类型r相关的权重矩阵及偏置。
根据Yu等[7]的设置,本文选取k个具有最高分数的关系类型作为最终预测的关系集合。k的取值依赖于阈值T,是通过在开发集上的调优获得的。如果一个实体对的所有关系类型得分都低于T,模型认为该实体对之间的关系是“unanswerable”。
模型从关系预测层得到实体对(ei,ej)在36种关系类型上的概率得分,接下来,本文采用二元交叉熵(Binary Cross Entropy, BCE)作为损失函数(Loss Function),如式(8)所示。
(8)
其中,pn是模型预测出的每个关系类型的概率,yn∈{0,1}是关系的真实标签。
本文采用Adam算法[28]作为优化器,初始的学习速率(learning rate)为1e-5,并采用小批量(mini-batch)梯度下降来更新模型。参考Christopoulou等[5]的工作,实验采用早期停止策略来确定最佳的训练周期,也就是说,如果开发集的F1分数在几个训练周期内没有提升,训练就会停止。
本文采用最新的对话级关系抽取数据集DialogRE[7]来评估提出的模型。该数据集从美国电视情景喜剧《老友记》共10季(263集)的文本中构建了1 788篇对话,涵盖了各种各样的话题,包括36种关系类型。数据集包括中文和英文两个版本,是关系抽取领域第一个面向对话文本的数据集。与传统的文档级关系抽取数据相比,DialogRE数据具有语言随意、信息密度低、人称代词丰富、互动性强的特点。本文所构建的端到端关系抽取模型,包含TOD-BERT预训练模型、词-关系注意力机制、同指信息融合几个模块,正是针对上述特点提出的。表1展示了该数据集在训练集、开发集和测试集上的统计信息。
表1 DialogRE数据集统计信息
可以看到,数据集中存在大量人称代词,因此,识别对话中人称代词的指向信息对提升模型性能是有益的。
本文将每个关系三元组(ei,r,ej)视为一个实例,如(Speaker 3,{per: girl/boyfriend,per: positive_impression}, Emily)。由于实体的具体名称直接出现在三元组中,我们采用暴力搜索的方式得到每个实体在对话上下文中的所有提及。
根据Wang等[29]、Wu等[9]的工作,本文使用BERT与TOD-BERT作为上下文编码器,当输入序列长度大于512时,模型对输入文本做截断以适应BERT。由于TOD-BERT论文作者没有提供预训练模型的中文版本,我们使用RiSAWOZ数据集[30]在BERT模型上Fine-tune得到TOD-BERT中文预训练模型,以丰富上下文编码器输出的对话特征。
本文的超参数设置如表2 所示。其中,Batch Size为实验的批处理大小,取决于硬件配置。BERT/TOD-BERT Output Size为上下文编码器的输出维度。MLP Hidden Size表示模型中所有线性层的隐层大小。WR.att表示词-关系注意力层的相关指标。Greedyness是指在获取实体提及同指信息的阶段,传入NeuralCoref解析器的超参数,其值越大,能解析出来的同指实体越多,但准确度越低。T为关系预测层采用的阈值,其值决定了模型最终预测的关系集合。
表2 超参数设置
我们分别使用两种模型作为基线:
(1)基于BERT的模型:第一种类型的基线是由数据集构建者Yu等[7]建立的模型,称为BERT和BERTs。其中,给定的对话d和实体(ei,ej)与标记“[CLS]”和“[SEP]”连接,以便将实体信息融合到输入序列中。此外,在BERTs中,它们将实体对中“Speaker N”形式的说话者修改为特定标记“[unused1]”或“[unused2]”,并在整个对话文本中替换,以定位相关轮次的起始位置,同时防止过拟合。
本文同样在Wang等[29]的模型上运行了DialogRE数据集,我们把该方法称为BERT Bilinear。与Yu等[7]的BERT模型相比,二者的区别在于,Yu等是将输入文本d与实体对拼接,得到“[CLS]d[SEP]ei[SEP]ej[SEP]”的序列,输入BERT编码器进行分类预测。而Wang等只将文本d与“[CLS]”、“[SEP]”连接输入BERT,得到每个单词的表征,然后通过平均汇集每个实体的提及表示来得到关系中的头尾实体表示,最后接一个双线性分类层预测相应的关系类型。
(2)基于图的模型: 根据Nan等[19]的工作,本文在LSR(Latent Structure Refifinement)模型上运行DialogRE数据集。他们构建了结构归纳(Structure Induction)模块来学习文档级图的潜在结构,然后使用多跳推理模块对诱导的潜在结构进行推理,根据信息聚合方案更新每个节点的表示。
根据Yu等[7]的设置,本文使用F1得分作为性能评估指标。F1得分计算如式(9)所示。
(9)
如果一个预测的关系和一个真实标签匹配,它将被计算为真正例(True-Positive,TP);如果一个预测的关系不匹配任何真实标签,它将被计算为假正例(False-Positive,FP);如果一个真实标签不匹配任何预测出的关系,它将被计算为假负例(False-Negative,FN)。例如,给定一个预测关系实例(e1,{r1,r2},e2)及其对应的真实关系实例(e1,{r2,r3},e2),r2,r1和r3分别算作TP,FP和FN。
本文在DialogRE中英文数据集上验证提出的端到端关系抽取模型,并将其在开发集与测试集上的结果与现有的基线模型比较。相关结果如表3所示。可以看到,基线模型中LSR模型表现最好,在英文测试集上的F1分数达到了62.89%。需要注意的是,LSR模型是基于图的模型,而本文模型在没有使用图推理的情况下,就取得了比图模型更好的结果。
表3 实验结果 (单位: %)
本文提出的模型在DialogRE的中英文数据集上都达到了最优的结果,在测试集上的F1分数相较于LSR模型分别提升了0.88%和0.86%。与数据集开发者提出的BERTs模型相比,本文模型在英文开发集与测试集上的结果分别提升1.56%与2.57%,在中文数据集上分别提升4.71%和7.68%。这充分说明了本文采用的TOD-BERT编码器、词-关系注意力模块与同指信息融合是有益于模型性能的。
本文在DialogRE英文数据集上进行了消融实验来验证提出模块的有效性,具体结果如表4所示。
表4 消融研究 (单位: %)
4.2.1 词-关系注意力
根据不同关系关注不同单词的假设,本文提出了词-关系注意力机制,用以评估关系类型与单词之间的相互影响。表4中的结果表明,去掉词-关系注意力模块之后,模型在开发集和测试集上的F1分数分别下降了1.05%和0.53%。
如图6所示,本小节选取了对话中单词与不同关系之间注意力权重分布的一个例子。横轴表示单词文本,纵轴是所选的四个关系类型。可以看到,在表示关系“per: children”的第二行中,单词“dad”取得了最高的注意力分数,这就意味着单词“dad”对这种关系的贡献程度最大。相反,其他三种关系对单词的注意力权重分布呈现随机性,因为这个例子中并没有包含这三种关系。
图6 词-关系注意力矩阵
4.2.2 同指信息融合
如表4所示,在缺少同指信息融合的情况下,模型在测试集与开发集上的F1分数分别下降了1.37%和0.81%。由于对话文本的特点,人称代词在对话中普遍存在,尤其是“I”和“you”。根据表1中的统计数据以及我们对数据集的观察,许多代词都指向某一个实体。因此,识别人称代词与说话人之间的同指关系,可以增强说话人与对话文本的联结,进而提升模型性能。
在图7的第一个例子中,我们可以从第三句话的“I love you”中推断出“I”与“you”之间存在积极的情感倾向,而只有进一步判断“I”指向“Speaker 1”“you”指向“Speaker 2”,我们才能将“per: positive_impression”关系类型映射到真正的说话人身上,而不是其他说话人。
图7 同指信息实例
类似地,在图7的第二个例子中,我们只能从第一句话中判断出“you”与“Joey Tribbiani”是同一个人,只有将人称代词“you”与“Speaker 2”链接,才能推断出“Speaker 2”与“Joey Tribbiani”之间存在“per: alter_names”的关系,即两个实体互为别称,指向同一个实体对象。需要注意的是,在DialogRE数据集中,关系类型“per: alter_names”所占比例极高,达到了所有实例的21.9%。可以直观看出,识别人称代词与说话人之间的同指信息,对预测这种类型的关系非常有用。我们推测这也是同指信息融合模块对模型性能提升最大的原因之一。
此外,我们还对启发式规则与NeuralCoref指代消解做了消融实验,分析它们对模型的贡献。从表4中可以看出,前者对模型的贡献更大,而在使用了启发式规则的情况下,NeuralCoref指代消解工具反而对测试集的F1分数有负面作用。我们分析是因为在对话文本中,NeuralCoref识别出的同指信息不多,且准确率不高,可能与启发式规则存在冲突。在超参数Greedyness设为0.5的情况下,只有21.24%的实例识别出了与两个实体相关的同指信息。
4.2.3 TOD-BERT
我们还对TOD-BERT预训练模型在对话任务上的提升效果做了消融实验,表4中结果表明,相较于只采用BERT作为上下文编码器,融合TOD-BERT预训练语言模型的输出特征,在开发集和测试集上分别可以贡献0.93%和0.86%。
本文还实验了只使用TOD-BERT在英文数据集上的效果,如表4所示,在去掉BERT作为上下文编码器的情况下,模型在开发集和测试集上的F1分数分别下降到60.08%和59.56%。我们认为,这是由于TOD-BERT预训练的数据是任务导向型对话,多存在于人和机器之间,而本文所采用的DialogRE数据集构建于《老友记》,是人与人之间的日常对话。因此TOD-BERT的编码特征并不能完全取代BERT预训练语言模型。但其针对对话中特有的人称指代、互动性等特点,又可以作为对BERT模型输出特征的补充。
本文提出了端到端的对话级关系抽取模型,针对对话文本的特点,采用TOD-BERT预训练语言模型增强单词表征,并提出了词-关系注意力层、同指信息融合两个模块来提升模型性能。实验验证了不同单词与不同关系之间相互作用对关系抽取的影响,并详细分析了同指信息在对话级关系抽取中有效的原因。与现有模型相比,本文提出的模型在DialogRE数据集上的F1分数得到显著提升,达到最优。并通过消融实验,证明提出的每个模块都是有效的。
在今后的工作中,主要从以下三个方面来进一步优化模型: ①尝试将同指信息融合作为辅助任务,与对话级关系抽取任务联合训练,增强模型性能; ②针对数据集DialogRE,增加对文本中说话人信息等的考虑,构建更适合对话级关系抽取的模型; ③增加图推理模块,更好地辅助文档级信息推理。