郑余祥, 左祥麟,2, 左万利,2, 梁世宁, 王 英,2
(1. 吉林大学 计算机科学与技术学院, 长春 130012;2. 吉林大学 符号计算与知识工程教育部重点实验室, 长春 130012)
近年来, 随着互联网的飞速发展产生了大量的文本数据, 文本中的关系抽取对于理解和得到有价值的信息至关重要[1]. 因果关系的抽取[2]在文本关系中占重要地位, 当获得了文本中的因果关系时, 很容易判断文本的主干内容, 因此因果关系可应用于许多自然语言处理任务, 例如问答系统[3]、 文本摘要、 决策支持[4]等.
理解事件是自然语言处理的重要组成部分, 该过程的重要步骤是确定事件之间的关系. 在事件之间可能存在的许多关系类型中, 本文主要研究时间关系对因果关系的提取作用. 研究时间和因果关系的主要障碍是缺乏共同注释的数据, 目前, 因果关系都没有指定标准, 本文工作标注了一个联合注释的数据集. 通过TimeML[5]时间标注准则, 修改CausalTimeBank数据集、 StoryLine数据集和SemEval2020_task5原始数据集, 生成的新数据集包含事件的时间关系和因果关系.
在传统因果关系抽取中, 时间关系作为特征常用于机器学习方法中, Yang等[6]总结了传统因果关系的研究体系, 对因果抽取方式的统计结果表明, 深度学习方向的因果关系抽取并未涉及到时间关系; 在时间关系中包含事件发生的顺序, 这有助于对因果关系的判断, Mirza等[7]从文本中获取指定事件上下文关系、 词性及时间标签等特征, 用分类器对指定事件进行判断, 并提出了利用时间TimeML准则对因果事件进行标注, 之后又提出了CATENA模型[8], 设定了基于时间关系的过滤规则, 证实对时间和因果进行联合抽取相互促进; Mostafazadeh等[9]提出了事件结构语义注释的因果和时间关系方案(CaTeRS)通过大量的故事型事件, 获得时间关系对因果关系的判断; Ning等[10]提出了连接结构TCR根据指定的规则推理事件的因果关系. 但上述方法都没有利用深度学习的优势. 为进一步研究深度学习利用时间关系对因果关系进行抽取, 本文提出利用事件发展的时间关系作为特征建立抽取因果关系的Bi-LSTM+GCN模型.
图1 Bi-LSTM+GCN模型结构
本文使用Bi-LSTM+GCN模型结构进行深度学习, 如图1所示. 首先, 将输入文本中的单词通过word embedding转换成300维度的词向量并添加词性(POS)特征, 然后输入到双向长短期记忆网络(Bi-LSTM)获得上下文中单词的特征, 得到300维的特征向量, 再利用图形卷积网络(GCN)模型与单词间的时间关系卷积得到100维特征向量, 图卷积后紧接一个Relu激活函数和Batch归一化, 最后输入到分类器中. 本文使用SoftMax函数的DENSE层作为分类器, 将100维特征向量转换成3维向量, 3个维度分别对应原因、 结果和非因非果3类标签.
传统循环神经网络(RNN)能对带有时序关系的数据进行处理, 本文将文本序列中的每个单词作为时间步, 整个句子视为一个时序序列. 在处理当前单词时, 利用模型内部的记忆单元, 能得到过去时序中单词的特征. 但对于时序跨度过大的单词, RNN不能很好地获取特征. 长短期记忆网络模型(LSTM)[11]是对RNN的改进, 可获得长跨度单词的特征, LSTM的单元结构[12]如图2所示.
图2 LSTM的单元结构
LSTM利用下列3种门单元决定保留的信息[13].
1) 遗忘门. 遗忘门根据当前输入xt与上一时刻隐藏层的输出ht-1, 选择保留多少上一时刻的细胞状态Ct到当前时刻, 计算公式为
ft=σ(Wf·[ht-1,xt]+bf),
(1)
其中bf表示偏移,Wf表示参数矩阵.
2) 输入门. 输入门决定有多少输入信息xt保留到Ct中, 计算公式为
2016年至今,王世君担任鸡东县农村公路县乡路网改造工程建设指挥部总工程师,负责农村公路工程建设及质量管理工作。农村公路施工队伍情况复杂,管理难度大,为了保证工程质量,他从招标履约开始,对进场人员从严管理,对进场材料严格把关,对施工步骤认真监控,对工程质量做到达不到标准不验收、不允许进入下道工序,在同事的支持下,克服重重困难,完美地完成了各项工作。
it=σ(Wi·[ht-1,xt]+bi),
(2)
其中bi表示偏移,Wi表示参数矩阵.
3) 输出门. 输出门决定细胞状态Ct有多少输出到当前时刻LSTM的输出值ht中, 计算公式为
ot=σ(Wo·[ht-1,xt]+bo),
(3)
其中bo表示偏移,Wo表示参数矩阵.
其中bc表示偏移,Wc表示参数矩阵. 最后新细胞状态Ct通过tanh层与ot相乘得到当前时刻隐藏层的输出ht, 表示为
ht=ot·tanh(Ct).
(6)
LSTM模型虽然能很好获取过去的时序数据特征, 却不包含之后的时序数据特征. 对于处理文本序列标注问题需要能获得上下文特征, 本文选择双向长短期记忆模型(Bi-LSTM), 输出的特征向量由从前向后的LSTM和从后向前的LSTM输出拼接组成, 包含时序上在前和在后的文本特征.
图3 时间关系特征矩阵
本文将时间关系[14]转化成时间关系矩阵, 如图3所示, 例句为“The tsunami caused death and suffering”, 在时间关系中将“tsunami”对“death”设定为“before”, 并且由于时间关系具有相对性, 将“death”对“tsunami”的关系设定为“after”, “death”和“suffering”是相互伴随, 同时发生的, 所以是“simultaneous”关系. 本文将时间关系矩阵结合图卷积网络模型[15], 训练不同时间关系的参数矩阵, 如图4所示. 单词的特征向量与对应的关系参数矩阵做矩阵乘法. GCN[16]层的输出特征向量为
其中N(v)是与v有关系单词的集合,L(u,v)表示从u到v的时间关系,WL(u,v)表示u到v时间关系的参数矩阵,hu表示来自上一层输出的u的特征向量.
图4 GCN层实现
GCN层输出的特征向量进入DENSE层被转化为3维向量, 预测单词的因果类型, DENSE层使用SoftMax进行分类, 使用交叉熵损失函数计算损失, 分类器的分类损失E定义为
(7)
其中n=2,xi表示真实标签one-hot形式的第i维值,P(xi)是输出预测向量的第i维值.
所用数据来自于CausalTimeBank数据集、 StoryLine数据集和SemEval2020_task5原始数据集, 根据需求最终标注1 200个句子, 并且大量句子中包含超过一对的因果关系. 根据需求的数据格式和SemEval2018_task5原始数据并不包含因果时间标签. 因此, 本文对数据重新进行因果和时间关系标注, 对原始数据进行如下修改.
1) 未标注的因果关系: 句子中存在多因多果, 原始数据集只包含一对因果, 本文标注的数据集包含句子中所有因果;
2) 标注长度不一致: 原始数据中包含短语和词组标注为原因或结果的, 本文统一选取核心单词进行标注;
3) 标注连锁因果: 一个单词既是原因又是结果的, 本文将该单词标记为结果, 只标注最基本的原因;
4) 抽取每个句子中所有的时间关系: 时间关系标注根据TimeML时间事件标注标准, 去除仅表示日期的单词和带有“导致、 使得、 抑制” 3种语义的动词, 如“cause”,“make”,“prevent”不参与时间关系的标注, 选择其他包含时间关系属性的单词进行时间标注, 本文选取5种时间关系进行标注, 如图5所示.
图5 事件时间关系
本文使用序列标注的方法抽取因果关系, 选取O,C,E作为标签标注因果关系, O表示不具有因果关系, C表示原因, E表示结果. 标注时间关系时, 选取B,A,S,I,N,O表示时间关系. B表示在之前, A表示在之后, S表示同时发生, I表示时间上包含, N表示时间上被包含, O表示不具有时间关系. 单词的时间关系如图5所示, 时间关系含有传递性、 相对性, 例如当事件A在B之前,B在C之前时, 标注A在C之前, 并且由于时间的相对性, 则B在A之后. 根据单词时间属性生成时间关系矩阵.
优化器使用Adam; 设置词向量维度为300, 梯度裁剪值为5.0, 学习率为0.001, 迭代次数为150. 用Bi-LSTM层作为隐藏层, 得到300维的特征向量; GCN层卷积后的特征向量为100维.
传统文本序列标注方法有LSTM模型、 Bi-LSTM模型和CRF模型, 这些方法都能获取序列的标注. 本文选取多种模型进行对比, 设置1 000条时间因果语句作为训练集, 200条时间因果语句作为测试集, 对比模型[17-19]包括LSTM模型、 Bi-LSTM模型、 Bi-LSTM+CRF模型、 带有wordnet语义属性的Bi-LSTM模型、 带有句法依存关系的Bi-LSTM模型和char级别的词嵌入的Bi-LSTM标注模型.
测试模型对比实验结果列于表1, 为C,E,O三种标签的准确率(P)、 召回率(R)和F1评分. 图6为不同模型实验结果的柱形图. 由图6可见, LSTM模型只能单向获取长跨度文本的特征, 因果标签的准确率和召回率都很低, 效果较差; Bi-LSTM模型效果有一定提升, 添加CRF层各项指标只有小幅度的提升, 加入wordnet语义和依存关系后模型的C和E各项指标都有很大提升, 字符级的词嵌入对原因标签的召回率以及结果标签的三项指标都有较大提升; 对比其他模型, 基于时间关系的Bi-LSTM+GCN模型, 对C和E的准确率、 召回率和F1评分分别达到0.925 9,0.862 1,0.895 9,0.928 6,0.886 4,0.907 0. 添加依存关系的模型效果并不理想, 可能是由于句子中存在多对因果关系的标注, 使得因果标注在句子中的句法结构变得多样, 而且因果关系中事件语义复杂, wordnet语义并不能很好地覆盖所有语义类型, 所以效果不理想. 时间关系能明确把握事件发生的顺序, 对于句子文本中含有的因果关系具有提高因果事件标注几率的作用, 并且有助于判断是原因还是结果.
表1 不同模型3种标签的准确率(P)、 召回率(R)和F1评分实验结果
图6 不同模型对比实验结果
实验结果表明, 本文模型对C的F1评分达0.895 9, 对E的F1评分达0.907 0, 表明时间关系对因果关系的标注有明显提升.
综上所述, 因果关系作为一项重要的关系类型, 是文本挖掘的重要组成部分, 利用序列标注的方式可获得因果关系的实体, 并且确认因果方向. 利用时间关系与因果关系的联系, 本文通过将时间关系转化成特征矩阵的方式结合了Bi-LSTM+GCN网络模型, 并通过实验能准确获得因果关系标注, 得出了时间关系有利于因果关系抽取的结论, 本文提出的基于时间关系的Bi-LSTM+GCN模型能有效获取因果关系.