王 磊, 刘 露,2,3,, 牛 亮, 胡封晔, 彭 涛,2
(1.吉林大学 计算机科学与技术学院, 长春 130012;2.吉林大学 符号计算与知识工程教育部重点实验室, 长春 130012;3.吉林大学 软件学院, 长春 130012;4.吉林大学 通信工程学院, 长春 130012;5.吉林大学 第一医院, 长春 130021)
知识图谱本质上是结构化的语义知识库, 用于以符号形式描述物理世界中的概念及其相互关系[1].近年来, 随着人工智能的发展, 知识图谱在搜索引擎(Google, Bing)、 问答系统(微软小娜、 Siri)及临床决策支持(IBM watson health)等领域应用广泛.知识获取、 知识融合及知识计算等过程都是构建知识图谱的关键步骤和基础[2].作为知识获取的主要方式之一, 信息抽取是通过从文本信息中抽取实体、 实体属性及实体关系, 将半/非结构化文本信息转换成结构化信息的技术[3].
关系抽取的主要任务是从句子中识别给定实体对之间的关系类型, 进而从非结构化文本信息中抽取三元组(ei,rij,ej), 其中ei与ej为给定的实体对,rij为实体之间的关系类型.例如, 利用关系抽取算法, 能从句子“The burst has been caused by water hammer pressure.”中识别出给定实体对“burst”与“pressure”的关系类型为“Cause-Effect”.无监督的关系发现与有监督的关系分类为关系抽取的主要研究方法[4].基于规则的方法为早期的无监督关系抽取方法, 其通过人工构建好的规则模板进行关系识别[5-6].该方法严重依赖规则模板, 需大量的语言学专家来保证规则的准确性.随着数据规模的扩大, 需要构建的规则模板不断增加并难以移植, 从而制约了该方法的发展与应用.基于依存关系的关系抽取方法作为一种非监督关系抽取方法在开放式关系抽取中应用广泛[7], 该方法通过分析句子的句法结构找到实体对的关系词进行关系抽取, 但难以得到实体对的关系类型.无监督关系抽取方法不需要大量有标签的训练数据, 但可移植性差并且准确率较低.随着机器学习在关系抽取上的大规模应用, 出现了大量基于特征向量或核函数的有监督关系抽取方法, 关系抽取的准确率也在不断提高.其中: 基于特征向量的方法根据标注好的训练数据训练分类器, 再用训练好的分类器对新实例进行关系抽取[8];而基于核函数的方法能充分利用实体对的上下文信息进行关系抽取[9].有监督的关系抽取方法需要大量人工标注的训练数据, 为了解决该问题, Mintz等[10]提出了远程监督的方法, 该方法通过找出知识库中包含具有特定关系的实体对的实例扩大训练数据集.此后, Surdeanu等[11]采用多实例学习算法缓解了远程监督错误标记(噪声)的问题.
深度学习模型具有多层非线性映射的深层结构, 能通过逐层学习算法获取输入数据的主要驱动变量[12].因此, 与传统有监督关系抽取模型相比, 深度学习模型能捕获更多的特征信息, 从而提高关系抽取的准确率.目前, 应用在关系抽取上的深度学习模型有卷积神经网络(CNN)[13]、 循环神经网络(RNN)[14]及其变体长短期记忆网络(LSTM)[15]与门控循环单元(GRU)[16]等.Liu等[17]率先尝试采用CNN并引入同义词作为特征进行关系抽取, 取得了较好的效果;Zhou等[18]利用双向循环神经网络模型与注意力机制构建了关系抽取模型, 该模型仅需词向量作为输入, 其准确率超过了大部分算法;Wang等[19]考虑语言之间的一致性与多样性, 使用对抗神经网络为每个句子构建独立且一致的表示进行关系抽取, 得到了优于其他模型的实验结果.
基于深度学习的关系抽取方法打破了传统方法的性能瓶颈, 但这些方法具有模型复杂、 训练成本高的缺点, 严重影响关系抽取的训练效率.因此, 本文提出一种基于关系触发词与单层GRU模型的关系抽取方法.该方法首先通过对句子进行句法依存分析找到句子中的关系触发词, 再利用Word2Vec模型将触发词与实体对转换成词向量, 将其作为单层GRU模型的输入进行关系抽取.该方法仅采用单层GRU作为关系抽取模型, 结构简单, 缩减了训练时间.此外, 该关系抽取模型仅需关系触发词与实体对转换后的词向量作为输入数据, 提高了关系抽取的效率.在SemEval 2010 Task 8数据集上的实验结果表明, 该方法能有效提取出句子中的关系触发词, 具有较高的关系抽取准确率.
实体关系触发词是句子中用于详细说明实体对构成实体关系所表达意义的词语, 也被称为关系指示词、 关系描述词[20].例如, 在英文中, “Cause-Effect”关系触发词有“cause”,“result”和“produce”等, “Entity-Origin”关系触发词有“from”,“of”和“made”等.关系触发词不但能帮助人们理解并确定实体关系, 且其具有的关系特征在关系抽取中具有指导作用.因此, 准确地从句子中提取出实体关系触发词并充分利用其关系特征有助于提高关系抽取的性能.
图1 句法依存分析结构树
句法依存分析是自然语言处理的关键技术之一, 其任务是对输入的单词序列进行分析, 得到符合语法的句法结构[21].例如, 使用Stanford CoreNLP工具对句子“The elephant descended from an aquatic animal.”进行句法依存分析可得到如图1所示的结构树.由图1可见, 句子中实体对“elephant”与“animal”的关系触发词为“descended”, 且其根据依存关系到实体节点的路径都是1, 在原始单词序列中位于实体对中间.因此, 本文定义依存距离与序列距离提取关系触发词.
定义1(依存距离) 给定句法依存分析树, 忽略其中弧的方向并将其转换成无向图G={V,E}, 其中:V={v1,v2,…,vn}为句子中的单词节点集合;E为单词节点之间句法依存关系的集合.单词节点vi到实体e的依存距离为其在依存关系图上到实体e的最短路径.图2为各单词节点到实体“elephant”的依存距离, 单词“descended”与单词“The”到实体“elephant”的依存距离都为1, 在依存关系图上距离实体“burst”最近.
由于各单词节点到实体节点的依存距离较小, 为准确并合理地评估单词节点在依存关系图上到实体对的远近程度, 本文采用其到实体对中每个实体的依存距离的几何平均数作为其到实体对的依存距离, 计算公式为
(1)
其中,dd(vi,e1)与dd(vi,e2)分别表示单词节点vi到实体节点e1与实体节点e2的依存距离.如图3所示, 单词节点“descended”到实体对“elephant”与“animal”的依存距离为1, 除实体对外最小.而实体节点到自身的依存距离为0, 到实体对的依存距离也为0.
图2 各单词节点到实体“elephant”的依存距离
图3 各单词节点到实体对“elephant”与“animal”的依存距离
定义2(序列距离) 给定单词序列W={w1,w2,…,wn}, 若wk为实体单词e, 则单词wi到实体e的序列距离为
sd(wi,e)=|i-k|.
(2)
例如, 在句子“The elephant descended from an aquatic animal.”中, 单词“descended”到实体“elephant”的序列距离为1, 到实体“animal”的序列距离为4.用单词在句子的原始序列中到实体对的每个实体序列距离的平均值作为单词到实体对的序列距离, 计算公式为
(3)
其中,sd(wi,e1)与sd(wi,e2)分别是单词wi到实体对e1与e2的序列距离.当单词在原始序列中位于实体对的两侧时, 其到实体对的序列距离相对较大;当单词位于实体对之间时, 其到实体对的序列距离相对较小.因此, 序列距离能衡量单词在原始序列中与实体对的相对位置.图4为各单词到实体对“elephant”与“animal”的序列距离.由图4可见, 实体对之间的所有单词到实体对的序列距离相等且最小.
本文使用依存距离与序列距离之和作为评估值选择关系触发词.由于触发词的词性一般为名词、 动词、 形容词、 副词与介词, 因此选择除实体对外评估值最小且词性满足以上条件的单词作为关系触发词.如图5所示, 单词“descended”的评估值为3.5, 除实体对“elephant”与“animal”外最小, 且其词性为动词, 因此被选为最终的关系触发词.
图4 各单词到实体对“elephant”与“animal”的序列距离
图5 各单词的评估值
基于距离的关系触发词提取方法步骤如下.
算法1基于距离的关系触发词提取方法.
输入:句子s, 实体对(e1,e2);
输出:关系触发词t;
1)procedure
2)对s进行分词、 词性标注及句法依存分析, 得到标注好的单词序列W及依存关系图G={V,E};
3)forwi(vi)inW(V)then
4)计算依存距离dd(vi,(e1,e2));
5)计算序列距离sd(wi,(e1,e2));
6)计算评估值dd(vi,(e1,e2))+sd(wi,(e1,e2));
7)end for
8)选择除实体对外评估值最小且词性是名词、 动词、 形容词、 副词或介词之一的单词作为关系触发词;
9)end procedure.
英文句子中的关系触发词多数情形下不是单个单词而是一个短语, 同一个动词后面的介词不同所表示的关系类型也不同, 如短语“made by”是“Product-Producer”关系触发词, 而短语“made with”是“Component-Whole”关系触发词.可见, 直接利用上文得到的单一关系触发词进行关系抽取, 其具有的关系特征可能并不完整.因此, 本文选择从句子中提取多个关系触发词进行关系抽取.计算出所有单词序列的评估值后, 选择t个除实体对外评估值最小并且词性满足要求的单词作为关系触发词.将实体对加入到关系触发词中, 按照句子中的原始序列进行排序, 作为训练单词序列.
由于分类器不能直接处理自然语言中的单词, 因此需要使用词嵌入模型将单词转换成词向量以便分类器进行处理.Word2Vec是一种经典的词向量计算模型, 能很好地进行词嵌入并捕获单词的语义[22].本文采用维基百科数据作为训练数据训练Word2Vec模型, 将训练单词序列转换成词向量, 作为分类器的输入进行关系抽取.考虑到训练单词序列中的语序, 采用GRU模型作为关系抽取的分类器.GRU模型是LSTM模型的一个变体, 与LSTM模型相比结构更简单, 训练时间更短[23].GRU模型的基本公式如下:
rt=σ(Wr·[ht-1,xt]),
(4)
zt=σ(Wz·[ht-1,xt]),
(5)
(6)
(7)
关系抽取的分类模型由单层GRU层、 Dropout层和Softmax层构成, 其中GRU层用于捕获语序特征, Dropout层防止过拟合, Softmax层进行多分类概率计算.由Word2Vec模型转换得到的单词向量作为模型的输入, 关系类别概率作为该模型的输出, 模型结构如图7所示.
图6 GRU单元结构
图7 基于关系触发词与GRU的关系抽取模型结构
下面通过在SemEval 2010 Task 8数据集上进行实验, 对基于关系触发词与单层GRU模型的关系抽取方法进行验证与分析.
关系抽取常用的数据集有ACE 2005数据集、 NYT数据集和SemEval 2010 Task 8数据集等.本文在SemEval 2010 Task 8数据集上进行相关实验.SemEval 2010 Task 8数据集是名词对语义关系的多维分类数据集, 常被用于关系方法的验证.该数据集包含9种关系类别与“Other”关系类别, 各种关系类别及其数据量列于表1.其中训练集共包含8 000个实例, 测试集共包含2 717个实例, 数据格式如图8所示.
表1 SemEval 2010 Task 8数据集的关系类别与数据量
图8 SemEval 2010 Task 8数据集的数据格式
本文采用直接划分好的训练集与测试集进行实验, 但考虑到“Other”关系类别对实验的干扰及实体相邻的句子中并不存在关系触发词, 因此从数据集中去除“Other”类别与实体对相距为1的实例, 得到包含6 274个实例的训练集与包含2 163个实例的测试集进行实验.
作为有监督的学习方法, 关系抽取的评估结果能直接反映本文方法的性能.监督学习的常用评估指标有准确率(Precision)、 召回率(Recall)和F1值, 计算公式如下:
(8)
(9)
(10)
其中: TP表示正确分类到当前关系类别的实体对个数; FP表示被误认为是当前关系类别的实体对个数; TN表示属于当前关系类别但被误分类到其他关系类别的实体对个数.准确率表示模型计算出的当前类别实体对中真正属于当前类别的实体对比例, 能反映模型拒绝不相关实体对的能力.召回率是被正确分类到当前关系类别的实体对占当前关系类别全部实体对的比例, 可反映模型找到所有相关实体对的能力.F1值是准确率与召回率的调和平均数, 能更全面地评估模型关系抽取性能.
准确率、 召回率与F1值适用于二分类有监督学习方法的评估, 而关系抽取中存在多个关系类别, 属于多分类问题, 无法直接应用这些评估指标.因此, 本文通过计算宏准确率(Macro-P)、 宏召回率(Macro-R)与宏F1值(Macro-F1)评估实验结果, 计算公式如下:
其中k是关系类别的个数.这些评估指标将关系抽取视为多个二分类问题, 计算出每个关系类别的评估指标后再计算平均数, 能更合理地对关系抽取结果进行评估.实验结果越理想, 这些评估指标越趋近于1, 反之则越趋近于0.
关系抽取模型的相关参数设定如下:触发词个数t=2;词向量维度为200;批量大小为200;迭代次数为100;学习率为10-3;Dropout为0.5;分类模型为GRU.
为了评估本文提出的关系触发词提取方法的提取效果, 采用SemEval 2010 Task 8数据集中的测试集进行实验.统计实验数据得到的结果表明, 大部分句子中实体对的关系触发词个数为2, 因此设置参数t=2.表2列出了部分实验结果, 图9为“Entity-Origin”类别中出现频率最高的7个关系触发词.
表2 部分关系触发词提取结果
图9 “Entity-Origin”关系类别中频率最高的7个关系触发词
由表2可见, 从句子“The sound system is contained in a suitcase and controlled from within the steering wheel.”中得到实体对“system”与“suitcase”的关系触发词为“contained in”, 这与理解句意后从句子中得到的触发词一致.由图9可见, 从属于“Entity-Origin”关系类别的句子中提取出的触发词中频率最高的7个单词也都具备“Entity-Origin”的含义.表明本文提出的关系触发词提取方法能较准确地从句子中提取出实体对的关系触发词.对于那些关系触发词在原始句子中不相邻的句子, 该方法也能较准确地提取出关系触发词.
参数t表示参与关系抽取的触发词个数,t越大表明参与关系抽取的触发词越多, 分类模型越复杂;t越小表明参与关系抽取的触发词个数越少, 分类模型能获取的关系特征越少, 因此参数t在关系抽取过程中具有重要作用.为了确定t的合适取值, 本文进行如下实验:对参数t从0~5进行取值提取关系触发词, 将得到的触发词与实体对一起按照在句子中的原始顺序用Word2Vec模型转换成词向量, 最后用GRU模型进行关系抽取, 分别计算宏准确率、 宏召回率与宏F1值, 结果如图10所示.
图10 不同关系触发词个数对实验结果的影响
图11 不同分类器的实验结果
由图10可见:当t=0时, 宏准确率、 宏召回率与宏F1值最低, 随着t的不断增大, 3个评估值都在增加;当t=2时, 3个评估值均取得最大值;当t>2时, 随着t的增大评估值减小.当t=0时, 进行关系抽取的数据只有实体对, 实验结果的宏准确率、 宏召回率与宏F1值均约为0.7, 说明实体所具有的特征在关系抽取中具有重要作用; 当t=1时, 评估值显著增大, 表明关系触发词的关系特征有助于提高关系抽取的准确率;当t=2时, 3个评估值均取得了最大值, 表明句子中关系触发词的上限为2;当t>2时, 随着参与关系抽取触发词的增加, 评估值不断降低, 说明得到的多余关系触发词对关系抽取产生了干扰, 该实验结果也从侧面体现出句子中的关系触发词存在上限.此外, 为了验证单词的语序对关系抽取是否存在影响, 本文在上述实验条件下随机打乱参数关系抽取单词的顺序, 再进行相同实验.实验结果表明, 保持单词在句子中原始顺序的实验结果优于打乱顺序, 语序特征在关系抽取中有一定的作用.
分类器是本文关系抽取模型的重要组成部分, 分类器的性能决定最终关系抽取的结果.为了选择合适的分类器, 本文在SemEval 2010 Task 8数据集上分别用GRU、 神经网络(NN)和支持向量机(SVM)进行实验, 设参数t=2, 实验结果如图11所示.由图11可见, GRU模型的宏准确率、 宏召回率与宏F1值都高于NN与SVM.与SVM相比, GRU模型与神经网络模型能捕获更多的特征, 且GRU模型能捕获语序特征, 因此该模型取得了最好的实验结果.
下面将本文关系抽取方法与目前已有的几种关系抽取方法在SemEval 2010 Task 8数据集上进行对比, 比较它们的宏F1值, 结果列于表3.由表3可见, 本文关系抽取方法的宏F1值高于其他方法, 表明本文方法具有较高的关系抽取性能.此外, 与其他方法相比, 本文方法的特征数量较少, 具有较简单的模型结果, 理论训练效率较高.
表3 不同模型F1值的对比结果
综上所述, 本文提出了一种基于关系触发词与单层GRU模型的关系抽取方法.该方法根据句法依存关系计算依存距离与序列距离提取关系触发词, 将关系触发词与实体对经Word2Vec模型转换成词向量后, 作为GRU模型的输入进行关系抽取.实验结果表明:本文方法能更有效地提取出关系触发词, 在关系抽取方面, 本文提出的关系抽取方法比其他对比方法的实验效果更好; 与其他方法相比, 本文提出的方法具有模型结构简单且所需的特征较少, 不需要过多的计算资源.