计算机系统应用  2024, Vol. 33 Issue (6): 91-98   PDF    
融合对抗训练及全局指针的实体关系联合抽取
李文炽, 刘远兴, 蔡泽宇, 吴湘宁, 胡远江, 杨翼     
中国地质大学(武汉) 计算机学院, 武汉 430078
摘要:实体关系联合抽取旨在从文本中抽取出实体关系三元组, 是构建知识图谱十分重要的步骤之一. 针对实体关系抽取中存在的信息表达能力不强、泛化能力较差、实体重叠和关系冗余等问题, 提出了一种实体关系联合抽取模型RGPNRE. 使用RoBERTa预训练模型作为编码器, 提高了模型的表达信息能力. 在训练过程中引入了对抗训练, 提升了模型的泛化能力. 使用全局指针, 解决了实体重叠的问题. 使用关系预测, 排除不可能的关系, 减少了冗余的关系. 在基于schema的中文医学信息抽取数据集CMeIE上进行的实体关系抽取实验表明, 模型的F1值比基准模型提升了约2个百分点, 在实体对重叠的情况下, 模型的F1值提升了近10个百分点, 在单一实体重叠情况下, 模型的F1值提升了大约1个百分点, 说明该模型能够更准确地提取实体关系三元组, 从而有效提升知识图谱构建的准确度. 在含有1–5个三元组的对比实验中, 在拥有4个三元组的句子中, 模型的F1值提升了约2个百分点, 而在拥有5个及以上三元组的复杂句子中, F1值提升了约1个百分点, 说明该模型能够较好地处理复杂句子场景.
关键词: 实体关系联合抽取    对抗训练    RoBERTa    
Joint Entity and Relation Extraction by Integrating Adversarial Training and Global Pointers
LI Wen-Chi, LIU Yuan-Xing, CAI Ze-Yu, WU Xiang-Ning, HU Yuan-Jiang, YANG Yi     
School of Computer Science, China University of Geosciences, Wuhan 430078, China
Abstract: Joint entity and relation extraction aims to extract entity relation triples from text and is one of the most important steps in building a knowledge graph. There are issues in joint entity and relation extraction, such as weak information expression, poor generalization ability, entity overlap, and relation redundancy. To address these issues, a joint entity and relation extraction model named RGPNRE is proposed. RoBERTa pre-trained model is used as an encoder to enhance the model’s information expression capability. Adversarial training is introduced in the training process to improve the model’s generalization ability. The use of the global pointer addresses entity overlap issues. Relation prediction is used to exclude impossible relations, reducing redundant relations. Entity and relation extraction experiments on the schema-based Chinese medical information extraction dataset CMeIE show that the final model achieved a 2% improvement in F1 score compared to the baseline model. In cases of entity pair overlap, there is a 10% increase in the F1 score, and in situations of single entity overlap, there is a 1% increase in the F1 score. This indicates that the model can more accurately extract entity relation triples, thereby assisting in knowledge graph construction. In the contrast experiment with 1–5 triples, the F1 score of the model increased by about 2 percentage points in sentences with 4 triples, and by about 1 percentage point in complex sentences with 5 or more triples, indicating that the model can effectively handle complex sentence scenarios.
Key words: joint entity and relation extraction     adversarial training     RoBERTa    

1 引言

知识图谱作为一种可描述真实世界中各种实体和概念, 以及它们之间关系的语义网络, 被广泛用于语义搜索、知识推理、关联挖掘等众多应用领域. 实体和关系是构建知识图谱的基础, 而从大量自然语言文本中抽取出实体和关系三元组就显得尤为重要. 当前, 实体和关系三元组的抽取主要采用联合抽取的方法, 该方法通过参数共享或联合解码等方法, 一次性地完成实体和关系抽取, 避免了误差传播问题. 但是, 目前的方法仍然面临很多挑战. 首先, 目前大部分模型的评估都是基于英语数据集进行实体关系抽取, 因此编码器的设计主要针对英语语法结构, 例如使用字符级别的词汇来对文本进行编码. 然而, 中文与英语存在差异, 一个句子主要由不同的词组成, 而不是一个个字组成. 正是因为编码器的文本编码方法不适用于中文, 导致当前模型在中文数据集上的抽取效果较差. 同时, 对于实体识别, 一般采用两个模块来分别识别实体的起始位置和结束位置, 这导致在训练和预测过程中使用了不同的信息, 从而产生误差. 其次, 当前大多数模型在适应新样本方面表现较差.

针对上述问题, 本文提出了一种融合对抗训练的全局指针实体关系联合抽取模型 RGPNRE (RoBERTa-based global pointer for named entity-relation joint extraction). 模型以 Facebook提出的 RoBERTa[1]预训练模型作为编码器, 可以很好地适应中文数据集, 并使用全局指针GlobalPointer[2]和关系预测来进行实体关系三元组的联合抽取, 不仅通过全局的视角一次性的抽取实体和关系, 而且还能够减少冗余的关系. 此外, 在训练的过程中加入对抗训练作为正则化手段, 有效提高了模型的泛化能力.

本文的主要贡献如下.

(1)提出一种全局指针实体关系联合抽取模型, 采用全局指针和关系预测来指导实体关系抽取, 在避免误差产生的同时, 能够更有效地提取重叠三元组.

(2)考虑到大部分模型的泛化能力较差, 引入对抗训练, 通过对易错样本的大量训练, 提高模型应对新样本的能力.

2 相关研究

实体关系抽取模型按照结构可分为流水线型模型和联合抽取模型. 其中流水线型模型将实体关系抽取划分为多个不同的任务先提取实体, 然后再提取关系, 每个任务的输入依赖于前一个任务的输出. 例如, Mintz等人[3]于2009年提出的关系抽取方法, 首先识别实体, 然后对这些实体进行相互匹配, 最终再根据输入的实体对关系进行分类. 这种方法非常灵活且易于实现, 但忽略了实体和关系之间的联系性, 而且在提取实体时出现的错误会传播到提取关系的模型中, 导致误差累积, 从而影响了抽取效果. 为了解决上述问题, 学术界提出了实体关系联合抽取. 联合抽取模型则通过参数共享或联合解码等方法, 一次性地完成实体和关系抽取, 能够避免将实体和关系分开抽取所导致的误差传播问题. 早期的联合抽取依赖于特征, 需要进行大量的特征工程和NLP工具的计算, 这一过程需要消耗大量的资源[4,5].

为了减少人工参与, 研究人员尝试使用神经网络. Zheng等人[6]提出了一种新的标注方案, 其中包含实体信息和它们之间的关系. 该方案将实体关系的联合抽取转化为标记问题. 但是由于该模型只给每个单词分配一个标签, 因此无法有效地处理重叠实体的情况.

为了解决实体重叠问题, Wei等人[7]提出了一种级联实体关系抽取框架CasRel. 该框架的流程是先识别一个句子中的所有头实体, 然后根据每个头实体, 逐一抽取相应的关系和尾实体. 然而, 如果头实体被错误地抽取或者漏抽, 那么抽取对应的关系和尾实体也会出现问题, 误差会不断积累传播. 此外, CasRel训练时使用已经标注的正确实体来抽取相应的关系和实体, 而预测时却拿预测出来的实体作为输入, 这导致了训练和测试之间存在偏差. 为了解决CasRel存在的问题, Wang等人[8]于提出了单阶段联合抽取模型TPLinker. 该框架将实体关系的联合抽取描述为token对的连接问题, 并且提出了3种连接方法. 虽然TPLinker解决了CasRel存在的误差积累和偏差问题, 但由于需要构建大量矩阵, 因而导致收敛速度较慢, 并且泛化能力差. 为了解决TPLinker存在的问题, Zheng等人[9]提出了基于潜在关系和全局对应的模型PRGC. 该模型将任务分成关系判断、实体提取和主宾语对齐3个子任务. 与TPLinker不同的是, PRGC避免了构建大量矩阵, 但泛化能力仍然有待提高. Shang等人[10]提出了单步单模块的模型OneRel, 该模型包括特定关系角标注策略和基于分数的分类器两部分. 该模型先使用标注策略进行标注, 并利用分类器进行打分, 最后得到实体关系三元组, 该模型仍然存在关系冗余和泛化能力不足的问题.

3 RGPNRE模型 3.1 模型的结构及训练流程介绍

RGPNRE模型不仅能够提取出头实体和尾实体, 还可以同时预测它们之间的关系, 从而一次性抽取出三元组. 模型主要包含4部分: RoBERTa编码器、实体的全局指针[2]、关系预测模块[7]及特定关系的全局指针[2], 整体结构如图1所示.

模型使用RoBERTa预训练模型及全局指针来进行实体关系抽取. 首先, 将待抽取的句子S, 如S为“久坐伤害身体, 散步改善身体”, 输入到RoBERTa编码器中进行正常训练, 得到词嵌入表示后, 然后在其中加入干扰$ {r}_{{\mathrm{adv}}} $, 进行对抗训练(详见第3.3节对抗训练), 得到句子的语义表示H. 接着, 利用实体的全局指针来得到头实体开头到结尾位置的分数$ {P}_{(s\_{\mathrm{head}}, s\_{\mathrm{tail}})} $和尾实体开头到结尾位置的分数$ {P}_{(o\_{\mathrm{head}}, o\_{\mathrm{tail}})} $. 随后对句子S中可能存在的关系进行预测, 得到一组潜在的关系集合$ {R}_{{\mathrm{potential}}} $. 接下来, 遍历关系集合$ {R}_{{\mathrm{potential}}} $中的所有关系, 将集合中的每个关系r放入到特定关系的全局指针, 得到针对每个关系r, 对头实体开始位置到尾实体开始位置和头实体结束位置到尾实体结束位置的打分$ {P}_{(s\_{\mathrm{head}}, o\_{\mathrm{head}}|r)} $$ {P}_{(s\_{\mathrm{tail}}, o\_{\mathrm{tail}}|r)} $. 最后, 预测出所有可能存在的组合, 如(久坐, 伤害, 身体)、(久坐, 改善, 身体)、(散步, 伤害, 身体)等, 并输出其中满足$ {P}_{(s\_{\mathrm{head}}, s\_{\mathrm{tail}})} $$ {P}_{(o\_{\mathrm{head}}, o\_{\mathrm{tail}})} $$ {P}_{(s\_{\mathrm{head}}, o\_{\mathrm{head}}|r)} $$ {P}_{(s\_{\mathrm{tail}}, o\_{\mathrm{tail}}|r)} $ 均大于0的部分. 然后取它们的交集作为最后的输出, 即(久坐, 伤害, 身体)和(散步, 改善, 身体).

图 1 RGPNRE模型体系结构图

具体的训练策略是在训练时, 让标注的五元组($ {S}_{{\mathrm{head}}} $, $ {S}_{{\mathrm{tail}}} $, r, $ {O}_{{\mathrm{head}}} $, $ {O}_{{\mathrm{tail}}} $)的$ {P}_{(s\_{\mathrm{head}}, s\_{\mathrm{tail}})} $$ {P}_{(o\_{\mathrm{head}}, o\_{\mathrm{tail}})} $$ {P}_{(s\_{\mathrm{head}}, o\_{\mathrm{head}}|r)} $$ {P}_{(s\_{\mathrm{tail}}, o\_{\mathrm{tail}}|r)} $)均大于0, 其余的则均小于0. 预测时枚举所有可能的五元组, 输出$ {P}_{(s\_{\mathrm{head}}, s\_{\mathrm{tail}})} $$ {P}_{(o\_{\mathrm{head}}, o\_{\mathrm{tail}})} $$ {P}_{(s\_{\mathrm{head}}, o\_{\mathrm{head}}|r)} $$ {P}_{(s\_{\mathrm{tail}}, o\_{\mathrm{tail}}|r)} $均大于0的部分, 接着取它们的交集作为最终的输出.

3.2 RoBERTa编码器

Liu等人[1]提出了RoBERTa模型, 该模型能够得到词嵌入, 它是以BERT模型[11]为基础的优化版本, 经过更长时间的训练及使用更多和更长的训练序列和数据而得到. 该模型采用双向Transformer[12], 可以获取上下文特征, 拥有更强大的表达信息的能力. 相较于BERT以字为单位进行切分, RoBERTa模型以词为单位进行切分, 使其在中文语料上获得了更好的效果.

RoBERTa模型经过改进, 可以得到不同种类的预训练模型, 如RoBERTa-mid、RoBERTa-zh-base和RoBERTa-zh-Large等. 而本文因为是针对中文进行实体关系抽取, 所以选择了RoBERTa-zh-Large作为预训练模型. 该模型对输入的句子进行编码, 将Transformer编码结构定义为Trans(x). 它的输入舍弃了下一段预测任务, 其他的方面和BERT模型相同, 包含词嵌入、片段嵌入和位置嵌入. 接着, 输入向量E经过多层Transformer网络, 得到文本向量表示$ {H}_{N} $. 最终, $ {H}_{N} $被赋予后续步骤的输入向量, 即 H=$ {H}_{N} $. $ {H}_{N} $的计算如式(1)和式(2)所示:

$ {H}_{1}={\textit{Trans}}\left(E\right) $ (1)
$ {H}_{N}={\textit{Trans}}\left({H}_{N-1}\right) $ (2)
3.3 对抗训练

2013年, Bruna等人[13]首次提出了对抗样本的概念, 即在原始输入数据中添加微小的干扰, 以使模型犯错误, 导致可能输出错误的结果. 为了探究对抗样本产生的原因, Goodfellow等人[14]基于神经网络线性特点提出了线性假设解释对抗样本的存在. 在2015年, 他首次提出了对抗训练的概念, 即在原始输入x上添加一个干扰$ {r}_{{\mathrm{adv}}} $来生成对抗样本, 并使用这些对抗样本进行训练. 以前的研究理论部分比较依赖直觉, 但Madry等人[15]在2018年总结了以前的工作并提出了一种高鲁棒性方案, 即最小化外部风险、最大化内部损失. 这种方法明显增强了模型的防御能力.

上述工作主要是针对计算机视觉领域展开的. 直到2017年, Kurakin等人[16]在原先提出的FGSM算法的基础上进行了改进, 得到了针对自然语言处理领域的FGM算法, 并根据具体的梯度进行处理, 从而快速生成对抗样本. 相比于FGM的简洁明了, Madry等人提出了PGD算法, 该算法进行多次迭代, 以求得最优的扰动. Zhu等人[17]基于PGD算法, 提出了类似的算法FreeLB, 这个算法通过扩大训练数据并执行多次迭代操作来提高鲁棒性和泛化能力. 最近Jiang等人[18]提出了SMART, 它采用对抗正则化实现对抗学习, 同时提出一个新的目标函数, 并提出了优化算法来解决它.

本文使用的是FGM算法. 该算法通过引入一定的干扰, 生成了模型很容易预测错误的样本, 通过对这些样本进行大量训练, 提高了模型的泛化能力. 它的主要流程如下.

1)首先正常地计算前向传播损失, 然后反向传播推导梯度.

2)得到嵌入层的梯度, 根据公式计算出$ {r}_{{\mathrm{adv}}} $, 然后将它加到原始嵌入样本中, 以生成对抗样本.

3)通过使用对抗样本来计算新的损失, 并反向传播计算对抗样本梯度并加到 步骤1 的梯度上.

4)恢复原始嵌入状态.

5)使用步骤3中获得的梯度来更新模型参数.

计算干扰的相关公式如式(3)和式(4)所示:

$ g={\nabla }_{x}L\left(\theta , x, y\right) $ (3)
$ {r}_{{\mathrm{adv}}}=\epsilon \cdot \frac{g}{{||g||}_{2}} $ (4)

其中, g是嵌入层的梯度, $ {r}_{{\mathrm{adv}}} $是干扰.

3.4 实体的全局指针

模型使用实体的全局指针方法来抽取实体关系三元组. 该方法将实体的开始、结尾和实体类型视作一个整体进行判断. 因为传统的指针网络在命名实体识别任务中通常由两个模块分别识别实体的开始和结尾. 这种传统方式的问题在于, 训练和预测的过程中使用了不同的信息, 即预测时只能根据上下文信息预测开始和结束位置, 没有全局的视角.

实体的全局指针将命名实体识别任务分成了提取和分类两个子任务. 在前者中, 提取文本片段作为实体, 在后者中, 识别实体的类型. 从这个角度来看, 提取可以被视为只有一种实体类型的命名实体识别任务. 因此本文使用注意力机制和相对位置编码RoPE[19]设计了评分矩阵, 引入RoPE的目的是提高模型对实体长度和跨度的敏感度. 这样做的目的是使模型能够更好地区分真正的实体.

具体步骤如下(详见式(5)–式(10)).

给定一个包含n个词的句子$ X=\left[{x}_{1}, {x}_{2}, \cdots, {x}_{n}\right] $, 需要通过RoBERTa()对其进行处理. 将原始输入转化为新矩阵$ H\in {R}^{n\times d} $的编码表示, 其中d为表示维度. 具体而言, H由每个单词的编码$ {h}_{i} $表示. $ {w}_{q}{、b}_{q}{、w}_{k}\mathrm{和}{b}_{q} $分别是查询向量和键值向量对应的权重和偏差, $ {q}_{i}\in {R}^{1\times d} $是第i个词的查询向量, $ {k}_{i}\in {R}^{1\times d} $是第i个词的键值向量, $ [{q}_{i};{k}_{i};{q}_{j};{k}_{j}] $是片段表示, $ {\omega }_{\alpha }\in {R}^{4v} $是可以训练的权重, $ {s}_{i, j}^{{\mathrm{extract}}} $$ {s}_{i, j}^{{\mathrm{classify}}} $分别表示对从ij的实体抽取进行打分和对从ij的实体是否为α类型进行打分, 两个得分相加可以得到对α类型的实体的总分数$ {s}_{i, j}^{\alpha } $.

$ \begin{array}{c}{h}_{1}, {h}_{2}, \cdots, {h}_{n}={\mathrm{RoBERTa}}\left({x}_{1}, {x}_{2}, \cdots, {x}_{n}\right)\end{array} $ (5)
$ \begin{array}{c}{q}_{i}={w}_{q}{h}_{i}+{b}_{q}\end{array} $ (6)
$ \begin{array}{c}{k}_{i}={w}_{k}{h}_{i}+{b}_{k}\end{array} $ (7)
$ \begin{array}{c}{s}_{i, j}^{{\mathrm{extract}}}={q}_{i}^{{\mathrm{T}}}+{k}_{j}\end{array} $ (8)
$ \begin{array}{c}{s}_{i, j}^{{\mathrm{classify}}}={\omega }_{\alpha }^{{\mathrm{T}}}\left[{q}_{i};{k}_{i};{q}_{j};{k}_{j}\right]\end{array} $ (9)
$ \begin{array}{c}{s}_{i, j}^{\alpha }\equiv {s}_{i, j}^{{\mathrm{extract}}}+{s}_{i, j}^{{\mathrm{classify}}}\end{array} $ (10)
3.5 关系预测模块

关系预测模块的主要任务是得到句子可能存在的关系集合$ {R}_{{\mathrm{potential}}} $. 该模块的输入是经过RoBERTa和对抗训练处理后得到的语义向量H, 输出是潜在的关系集合$ {R}_{{\mathrm{potential}}} $. 公式如下:

$ {h}_{{\mathrm{avg}}}=Avgpool\left(h\right)\in {R}^{d\times 1} $ (11)
$ {P}_{i}=\sigma \left({W}_{i}{h}_{{\mathrm{avg}}}+{b}_{i}\right) $ (12)

其中, Avgpool代表平均池化操作, $ {W}_{i} $代表权重, $ {b}_{i} $代表偏差, 而$ \sigma $代表Sigmoid函数. 本文将关系预测视为多标签的二分类任务. 如果某个关系对应的概率超过阈值α (设为0.5), 则为其分配标签1; 否则分配标签0. 因此, 在接下来的特定关系的全局指针络中, 只需要使用标签为1的关系, 而不需要预测所有关系.

3.6 特定关系的全局指针

特定关系的全局指针对前面步骤获得的关系集合$ {R}_{{\mathrm{potential}}} $进行处理, 遍历关系集合$ {R}_{{\mathrm{potential}}} $里面的每种关系, 针对每种关系R, 进行头实体和尾实体开始位置以及头实体和尾实体结束位置的打分预测. 选择这两个位置是为了确保头实体和尾实体之间没有嵌套实体. 由于这个模型需要针对不同种类的关系预测实体位置, 因此在每个关系的语义表示中都加入了相应的关系向量. 具体公式如下:

$ {h}_{r}=H+{R}_{i} $ (13)

其中, H是通过RoBERTa和对抗训练后得到的句子语义表示, $ {R}_{i}\in {R}^{n\times d} $是对于某种特定关系r的矩阵, 将$ {R}_{i} $加入句子的语义表示H中, 得到新的特定关系r的句子语义表示$ {H}_{r} $. 接下来的评分方法与全局关联评分方法相同, 只不过在这里我们预测的是头实体和尾实体的开始位置和结束位置.

3.7 损失函数

模型采用稀疏版的多标签交叉熵作为损失函数. 通常情况下, 多标签分类被视为多个二元分类问题来处理. 然而, 该方法可能会导致类别分布不均衡, 从而影响实验结果. 因此在训练实体关系联合抽取模型时, 采用交叉熵来解决多标签分类任务中的类别不均衡现象. 另外, 如果使用多向量标记正负类别, 每一步训练都需要创建一个巨大的矩阵, 并将其传入GPU, 这将导致昂贵的创建和传输成本. 因此, 本文选择实现稀疏版的多标签交叉熵, 即只传递正类对应的下标, 因为正类数目较少, 所以可以大大减少矩阵的尺寸. 稀疏版的损失函数实现如下:

$ L=\mathrm{log}\left(1+\sum _{i\in P}{{\mathrm{e}}}^{-{S}_{i}}\right)+\mathrm{log}\left(1+\sum _{i\in N}{{\mathrm{e}}}^{{S}_{i}}\right) $ (14)
$ \mathrm{log}\left(1+\sum _{i\in N}{{\mathrm{e}}}^{{S}_{i}}\right)=\mathrm{log}\left(1+\displaystyle\sum _{i\in A}{{\mathrm{e}}}^{{S}_{i}}\right)+\mathrm{log}\left(1-\frac{\displaystyle\sum _{i\in P}{{\mathrm{e}}}^{{S}_{i}}}{\displaystyle\sum _{i\in A}{{\mathrm{e}}}^{{S}_{i}}}\right) $ (15)

其中, PNA分别是正类、负类和全部集合, $ {S}_{i} $是对i进行打分. 为了书写方便简洁, 令$ \mathrm{log}\left(1+\displaystyle\sum _{i\in A}{{\mathrm{e}}}^{{S}_{i}}\right)=a $,$ \mathrm{log}\left(1+\displaystyle\sum _{i\in P}{{\mathrm{e}}}^{{S}_{i}}\right)=b $, 可以得到损失函数实现方式的简洁写法:

$ L=a+b+\mathrm{log}\left(1-{{\mathrm{e}}}^{b-a}\right) $ (16)
4 实验与分析 4.1 实验数据集

实验使用基于schema的中文医学信息抽取数据集CMeIE (Chinese medical information extraction)[20] , 该数据集包括两个训练语料: 一个是儿科训练语料, 涵盖了518种儿科疾病; 另一个是百种常见疾病训练语料, 包含109种常见疾病. 该数据集总共约有7.5万个三元组数据, 其中大约有2.8万个关于疾病的句子, 以及53种定义好的关系类型. 虽然该数据集已经相对完备, 但仍需进行预处理才能直接使用. 经过预处理后得到最终使用的整体数据集, 包括14339条用于训练的句子以及1421条用于测试的句子. 为了进一步验证本文方法在重叠关系中的抽取能力, 根据CasRel里面对重叠三元组的定义, 将整体数据集中的句子进一步划分为正常情况(Normal)、单实体重叠(single entity overlap, SEO)和实体对重叠(entity pair overlap, EPO)这3种类型. 这里的正常情况是指不存在实体重叠. 实体重叠类型信息的详细情况如表1所示.

表 1 数据集详情

4.2 对比实验

将 RGPNRE 模型和 CasRel、OneRel、GPLinker 等几个关系抽取基准模型进行了比较.

1) CasRel[7]: 一种经过改进和优化的实体关系联合抽取模型, 首次定义了实体重叠问题, 并给予了解决方法, 在传统方法基础上实现了显著提升.

2) OneRel[10]: 目前最先进的模型. 该模型提出了以往未曾提出的特定标注策略, 对文本进行标记, 来帮助抽取实体关系三元组.

3) GPLinker[2]: CasRel模型的作者之一在自然语言处理领域不断探索, 积累了足够的素材, 并且结合近几年提出的SOTA模型的设计, 构建的新的实体关系抽取模型. 本文提出的模型也是以该模型为基础进行改进的.

在实验中, 设置批量大小为2, 即每次处理两个句子进行训练, 设置训练轮数为50, 即训练50轮. 学习率为2E–5, 其他参数基本设为默值. 为了保证实验的公平, 所有模型的参数设置都是一样的.

本文使用准确率P (Precision)、召回率R (Recall)和F1值作为评估指标. 在抽取的三元组和真实的三元组完全匹配, 即头实体、关系和尾实体必须全部正确时, 才认为抽取结果正确.

实验结果如表2所示, 可以看到RGPNRE 模型在整体数据集上, 准确率相比基准模型提升了至少 4.57%, 但是召回率比OneRel模型低2.47%, 不过RGPNRE 模型的F1值是最高的, 提升了至少2.01%. 说明RGPNRE 模型的整体效果最好, 但是召回率不如OneRel模型, 还有进一步提升的空间.

主要的原因是由于CasRel模型先抽取头实体, 再抽取尾实体和关系, 这样的分步骤操作会导致误差传播, 从而影响了其F1值的表现. OneRel模型虽然没有采用分步抽取的方法, 但它没有考虑到全局的关系, 因此F1值也会受到影响. GPLinker模型虽然没有受到以上因素的影响, 但其泛化能力较弱. 本文提出的RGPNRE模型利用RoBERTa模型作为编码器增强了对语句的编码能力, 并加入对抗训练的方法提升了模型的泛化能力, 因而取得了较好的性能.

表 2 CMeIE数据集上对比实验结果 (%)

4.3 实体重叠模式对比实验

为了进一步验证RGPNRE模型处理不同的实体重叠类型的能力, 将模型分别应用于Normal、SEO和EPO这3个不同实体重叠类型数据集, 进行进一步实验, 实验结果如图2所示.

图 2 RGPNRE不同重叠类型的F1指标对比

图2的实验结果可以发现, 在Normal、SEO和EPO这3种实体重叠类型下, RGPNRE模型相较于3种基准模型, F1值都是最高的.

在Normal数据集、SEO数据集、EPO数据集上, 相比于排在第2位的基准模型, F1值分别提升了3.15%、10.38%和1.37%. 由于EPO重叠类型的数据量比较小, 因此模型之间的差距较大, 不一定具有说服力. 但是从SEO重叠类型的结果来看, RGPNRE模型能够更好地处理单实体重叠类型的三元组, 印证了模型使用的实体全局指针能够很好地处理实体重叠问题.

4.4 不同三元组数量对比实验

本文在CMeIE数据集上验证了不同基准模型在从含有不同数量三元组的句子中提取三元组的能力. 根据三元组的数量不同, 将CMeIE数据集中的句子分为5类: 包含1、2、3、4或大于5个三元组. 实验结果如表3 所示.

表 3 CMeIE数据集上RGPNRE不同三元组数量的F1指标对比

表3的实验结果来看, 本文提出的模型在处理小于等于3个三元组的句子时能力一般, 但在处理大于等于4个三元组的句子时能力有明显提升, 这表明本文模型在处理复杂句子场景中有很高的优势.

4.5 消融实验

为了验证本文提出的RoBERTa编码器、对抗训练和全局指针模块的有效性, 进行了消融实验, 表4中的4行分别是本文提出的模型RGPNRE、本文模型去掉对抗训练后的模型RG-Adv, 本文模型去掉RoBERTa-zh-Large编码器而使用BERT-Base-Chinese编码器的模型RG-BERT以及本文模型去掉全局指针而像CasRel模型一样使用两个模块抽取实体的模型RG-GP的实验结果.

表 4 CMeIE数据集上RGPNRE的消融实验指标对比(%)

对比表4中第1行和第2行, 加入了对抗训练后, 准确率和F1值有一定提升, 但是召回率略有下降. 因为进行对抗训练时, 产生了大量易出错的样本, 而经过这些样本的训练, 提升了模型的识别未知样本的准确率, 但是同时降低了召回率. 对比表4中第1行和第3行, 发现不使用BERT编码器而改用RoBERT编码器后, 准确率、召回率和F1值都有一定的提升. 因为RoBERT编码器本就是在BERT编码器的基础上进行改进的, 并且其以词为单位进行编码能够更好地适应中文数据集. 对比第1行和第4行, 发现使用全局指针抽取后, 大大提升了模型的准确率和召回率和F1值. 因为全局指针抽取将实体的开始、结尾和类型作为一个整体进行抽取, 避免了分头尾抽取可能导致训练和预测过程中使用不同信息, 从而产生误差.

5 结束语

为了解决实体关系三元组抽取任务中存在的信息表达能力较差、实体重叠和泛化能力较差等问题, 本文提出了一种加入对抗训练的基于RoBERTa的全局指针网络实体关系联合抽取模型RGPNRE. 该模型可以更好地理解输入的信息, 能够更好地处理实体重叠问题, 并拥有更强的泛化能力. 实验结果表明, 该模型在中文医学文本实体关系抽取数据集CMeIE上表现良好, 它能够准确地从句子中提取出多个关系三元组, 并有效解决了对信息表达能力较差、实体重叠和泛化能力较差的问题. 但是仍然存在曝光误差、召回率提升较少、无法很好地处理三元组较少句子等问题, 后续会探索新方法来解决这些问题.

参考文献
[1]
Liu YH, Ott M, Goyal N, et al. RoBERTa: A robustly optimized BERT pretraining approach. Proceedings of the 2020 International Conference on Learning Representations. Addis Ababa: OpenReview.net, 2020.
[2]
Su JL, Murtadha A, Pan SF, et al. Global pointer: Novel efficient span-based approach for named entity recognition. arXiv:2208.03054, 2022.
[3]
Mintz M, Bills S, Snow R, et al. Distant supervision for relation extraction without labeled data. Proceedings of the Joint Conference of the 47th Annual Meeting of the ACL and the 4th International Joint Conference on Natural Language Processing of the AFNLP. Suntec: Association for Computational Linguistics, 2009. 1003–1011.
[4]
Li Q, Ji H. Incremental joint extraction of entity mentions and relations. Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). Baltimore: Association for Computational Linguistics, 2014. 402–412.
[5]
Miwa M, Sasaki Y. Modeling joint entity and relation extraction with table representation. Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing. Doha: Association for Computational Linguistics, 2014. 1858–1869.
[6]
Zheng SC, Wang F, Bao HY, et al. Joint extraction of entities and relations based on a novel tagging scheme. Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). Vancouver: Association for Computational Linguistics, 2017. 1227–1236.
[7]
Wei ZP, Su JL, Wang Y, et al. A novel cascade binary tagging framework for relational triple extraction. Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. Association for Computational Linguistics, 2020. 1476–1488.
[8]
Wang YC, Yu BW, Zhang YY, et al. TPLinker: Single-stage joint extraction of entities and relations through token pair linking. Proceedings of the 28th International Conference on Computational Linguistics. Barcelona: Association for Computational Linguistics, 2020. 1572–1582.
[9]
Zheng HY, Wen R, Chen X, et al. PRGC: Potential relation and global correspondence based joint relational triple extraction. Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing (Volume 1: Long Papers). Association for Computational Linguistics, 2021. 6225–6235.
[10]
Shang YM, Huang HY, Mao XL. OneRel: Joint entity and relation extraction with one module in one step. Proceedings of the 36th AAAI Conference on Artificial Intelligence. AAAI Press, 2022. 11285–11293.
[11]
Devlin J, Chang MW, Lee K, et al. BERT: Pre-training of deep bidirectional Transformers for language understanding. Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers). Minneapolis: Association for Computational Linguistics, 2019. 4171–4186.
[12]
Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need. Proceedings of the 31st International Conference on Neural Information Processing Systems. Long Beach: Curran Associates Inc., 2017. 6000–6010.
[13]
Bruna J, Szegedy C, Sutskever I, et al. Intriguing properties of neural networks. Proceedings of the 2nd International Conference on Learning Representations. Banff: OpenReview.net, 2014.
[14]
Goodfellow IJ, Shlens J, Szegedy C. Explaining and harnessing adversarial examples. Proceedings of the 3rd International Conference on Learning Representations. San Diego: ICLR, 2015.
[15]
Madry A, Makelov A, Schmidt L, et al. Towards deep learning models resistant to adversarial attacks. Proceedings of the 6th International Conference on Learning Representations. Vancouver: OpenReview.net, 2018.
[16]
Kurakin A, Goodfellow IJ, Bengio S. Adversarial machine learning at scale. Proceedings of the 5th International Conference on Learning Representations. Toulon: OpenReview.net, 2017.
[17]
Zhu C, Cheng Y, Gan Z, et al. FreeLB: Enhanced adversarial training for natural language understanding. Proceedings of the 8th International Conference on Learning Representations. Addis Ababa: OpenReview.net, 2020.
[18]
Jiang HM, He CP, Chen WZ, et al. SMART: Robust and efficient fine-tuning for pre-trained natural language models through principled regularized optimization. Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. Association for Computational Linguistics, 2020. 2177–2190.
[19]
Su JL, Lu Y, Pan SF, et al. RoFormer: Enhanced Transformer with rotary position embedding. arXiv:2104.09864, 2021.
[20]
Guan TF, Zan HY, Zhou XB, et al. CMeIE: Construction and evaluation of Chinese medical information extraction dataset. Proceedings of the 9th CCF International Conference on Natural Language Processing and Chinese Computing. Zhengzhou: Springer, 2020. 270–282.