当前位置:首页 期刊杂志

基于动态损失函数的远程监督关系抽取

时间:2024-05-04

彭正阳,吕 立,于碧辉

1(中国科学院大学,北京 100049)

2(中国科学院 沈阳计算技术研究所,沈阳 110168)

1 引 言

关系抽取是信息抽取中的一项重要工作,其目的是抽取句子中标记实体对之间的关系.关系抽取属于构建知识图谱的关键步骤,且已经广泛应用于自动摘要、问答系统及检索系统中.

传统的监督方法需要大量的人工劳动来标记原始数据,价格昂贵且耗费时间.因此,Mintz等人[1]在2009年提出了远程监督.远程监督的描述如下:如果知识库中两个实体表达了一个关系,那么任何包含这两个实体的句子都可以表达这种关系.远程监督是一种快速、有效的对大量数据进行自动标注的方法.然而,这种假设太过强烈,容易导致错误标注.因为某句中提到的两个实体,它们之间的关系可能并不是知识库中对应的关系.

为了解决错误标注问题,2015年,Zeng等人[2]对于每个实体对,选择数据集中最有可能表达该实体对对应关系的一个句子作为代表来进行训练,这必然会遗漏一些有价值的信息.2016年,Lin等人[3]对一个实体对对应的所有句子进行基于注意力机制的权值计算,通过对错误的句子进行降权处理来减少错误标注带来的不良影响.2017年,Ji等人[4]通过将更多有用的实体信息引入到注意力权重的计算中,来提高注意力机制的效果.然而,仍然存在一些噪音句子被赋予很大的权重,并且大量简单句子累计的权重也影响到模型的效果.

本文提出了一种动态损失函数,根据训练过程中交叉熵损失分布情况,动态改变损失函数中每个样本的权值,使得错误标注的样本和大量简单的样本权重降低.如图1中左图所示,本文对每个mini-batch中样本的交叉熵损失分布进行了统计.如图1中右图所示,为了便于计算且更加清晰,本文通过双曲正切函数(tanh)对损失值进行了归一化,并把横轴从0到1均匀分割成了M个区间,纵轴为每个区间内样本的数量.其中左侧损失非常小的样本数量较多,它们属于大量的简单样本,而最右侧交叉熵损失过大且数量突然增加的,属于错误标注或难以学习的样本.本文根据每个区间的样本密度,在损失函数中对不同样本赋予不同的权重,再根据增加了权重的损失函数进行训练.某些情况下,异常样本的数量非常小或损失值非常大,会导致简单样本的权值减少很多,而异常值的权重却减少的很少.因此,本文将交叉熵损失值最高的N个样本的权重系数置为0,其中N要取相对较小的值,如果设置的过大,困难样本将不被学习,而且保留少量的噪声作为干扰有利于提升模型的效果.

图1 交叉熵损失在mini-batch中的分布Fig. 1 Distribution of cross-entropy loss in a mini-batch

本文的主要贡献如下:

1)本文提出了一种根据每个mini-batch中训练样本的交叉熵损失分布而动态改变样本权重的新的损失函数.

2)本文将动态损失函数应用于远程监督关系提取任务,并在NYT-Freebase公共数据集上取得了优于基线的结果.

3)本文的方法是与模型无关的,可以应用于其他任务的模型中.

2 相关工作

在关系抽取任务中,有监督关系抽取是最常用的方法.Zelenko等人[5]及zhou等人[6],利用全监督模型进行关系提取.但人工标注语料严重缺乏,为了解决这一问题,Mintz等人[1]在2009年提出使用远程监督来自动标记数据.然而,远程监督必然伴随着贴错标签的问题.为了缓解这一不足,Riedel等人[7]在2010年提出多实例单标签方法.随后,Hoffmann等人[8]和Surdeanu等人[9]提出了多实例多标签的方法.

近年来,随着神经网络的广泛应用,越来越多的研究在远程监督关系抽取任务中使用神经网络,庄传志等人[10]的综述概括了神经网络在关系抽取上的发展历程.2014年,Zeng等人[11]首次应用了基于CNN的方法,自动的获取了相关的词汇和句子级特征.2015年,Zeng等人[2]提出了具有多实例学习的分段最大池化卷积神经网络(PCNN).Lin等人[3]在PCNN的基础上引入了句子层注意力机制,并充分利用语料中所有包含两个实体对的句子.为了提高注意力机制的表现,一些论文使用了知识库的信息,如:Zeng等人[12];Ji等人[4];Han等人[13].在模型创新上,宋睿等人[14]采用了卷积循环神经网络.此外,强化学习和对抗学习也开始被应用于远程监督关系抽取任务中,如:Feng等人[15]以及Qin等人[16]的研究.对于噪声标签,Liu等人[17]提出了软标签方法,叶育鑫等人[18]采用噪声观测模型和神经网络结合的方式来降低错误标签影响.

关于损失函数,Lin等人[19]在2017年提出了Focal Loss,通过将交叉熵损失函数矫正到设计的形式来解决大量简单样本的问题.然而,Focal Loss有两个难以调整的参数.并且它不能动态地改变参数.此外,2019年,Wang等人[20]提出了对称交叉熵损失函数.

3 关系抽取模型

本文提出的基于动态损失函数的远程监督关系抽取模型结构如图2所示.首先在embedding层,采用词向量模型将文本转化成向量形式,并与位置向量拼接作为模型的输入,对应图2中的Vector Presentation部分;然后在卷积层通过卷积运算抽取出文本的特征并通过分段最大池化层来保留显著特征;接下来是Attention层,将卷积并池化后的句子向量与关系向量进行相关性计算,来构建注意力机制,降低错误标注的权重;最后通过采用动态损失函数的分类层输出关系的类别.该模型与其他神经网络模型的不同之处在于使用了动态损失函数,在模型训练时,先计算当前批次的训练数据的损失分布来确定每个样本的权重系数β,然后使用增加了动态权重系数的损失函数来进行模型训练,降低错误标注和简单样本的影响.

图2 基于动态损失函数的远程监督关系抽取模型Fig. 2 Distant supervision relation extraction model of dynamic loss function

3.1 Embedding层

Embedding层将句子文本中的每个词转换为对应的向量形式.

3.1.1 词向量

词向量其目的是将单词转换成分布式表示,以表达单词的语法和语义信息.本文使用了Mikolov等人[21]提出的Skip-gram模型来训练词向量.

3.1.2 位置向量

位置向量由Zeng等人[11]在2014年提出.它被定义为当前词到两个实体的相对距离,并用两个向量来表示这两个距离.关系抽取任务中,越靠近实体对的词对关系类别的影响越大,因此,添加位置向量的表示,比单纯词向量包含更多有价值的信息.

最后,将词向量和位置向量拼接起来作为模型的输入.假设词向量的维度是k_w,位置向量的维度是k_d,则每个词最终的向量化表示的维度为k=k_w+2×k_d.

3.2 卷积层

卷积是一种矩阵间的运算.假设矩阵A=(aij)m×n,矩阵B=(bij)m×n,卷积计算公式如下.

(1)

通过Embedding层,对于长度为n的句子,可以获得由词向量组成的矩阵X=[x1,x2,…,xn].选定一组卷积核W={w1,w2,…,wm},w∈Rl×d,其中l是卷积核的大小,d是词向量的维度.然后,经过m个卷积核的滑动卷积操作,得到卷积后的特征矩阵C=[c1,c2,…,cm].

3.3 分段最大池化层

分段最大池化操作是由Zeng等人[2]在2015年提出的,根据两个实体将一个句子划分为3个片段,并分别在3个片段中分别执行max pooling.

根据实体的位置将卷积后的向量分割成3部分ci=[ci1,ci2,ci3],最大池化分别在每段句子上取最大值:pi1=max(ci1),pi2=max(ci2),pi3=max(ci3).每个卷积核得到的结果通过分段最大池化操作得到pi=[pi1,pi2,pi3],最后,把所有的分段最大池化的结果进行拼接得到句子低维向量编码p∈R3m.

3.4 Attention层

在获得句子表征后,本文采用Lin等人[3]在2016年提出的句子层面的注意力机制.同一实体对的所有句子的集合称为一个包,注意力机制通过计算包中每个句子最大池化后得到的向量与预测关系的向量的相关程度得到权重系数,通过权重系数来降低噪声的影响.设S是一个包含n个句子的包,S={p1,p2,…,pn}.具体计算公式如下.

(2)

(3)

其中,A为随机初始化的权重对角矩阵,r为关系的向量表示,α为每个句子的权重系数,S为Attention层的输出结果.

3.5 动态损失函数

目前采用的多实例学习的目的是区分包而不是句子,本文的模型结果的预测概率公式定义为.

(4)

其中nr为关系的总数,W为关系的矩阵表示,S为一个包,b为偏置向量.

在训练过程中,目标是最小化交叉熵损失函数.本文使用交叉熵定义动态损失函数公式如下.

(5)

其中q是mini-batch的大小,θ是模型中所有的参数,βi是的Si权重,权重是动态的变化,在不同轮次,不同的mini-batch中的β是不同的.

本文采用mini-batch梯度下降来最小化目标函数.它通过从训练集中随机选择一个小批数据来进行迭代训练,直到模型收敛为止.动态损失权重β的计算过程如下:

1.计算mini-batch中每个训练样本的交叉熵损失值.

2.通过双曲正切函数(tanh)将所有样本的损失值进行归一化.

3.将0-1的区间划分成M个相等的区间,计算每个区间的长度e=1/M.

4.统计归一化后的损失值落在每个区间内的样本的个数Ri.

5.计算每个区间的样本密度Di=(Ri+1)/e,采用加1来平滑数据,避免密度为0.

6.根据每个样本的所处区间,得到其对应的权重系数βi=1/Di.

根据上述步骤可以得出如下计算公式.

(6)

(7)

由于对所有的样本都增加个一个小于1的权重,这会导致模型收敛速度变慢,因此需要乘以一个系数γ,γ的值取为mini-batch的大小q.当M取值为1或M把每个样本划分为一个区间时,若不采用平滑,则动态损失函数等价于原始损失函数.动态损失函数的最终形式如下.

(8)

特殊情况下,交叉熵损失值较大的样本数量非常少或者某个样本的交叉熵损失值非常大,会导致简单样本的权值减少的很多,而异常样本的权重减少的很少.本文采用将交叉熵损失值最高的N个样本的权重系数置为0的方式,来避免这个问题.

对于每个mini-batch,经过计算后各区间的权重系数βi的分布情况如图3所示.

图3 各个区间的权重分布Fig.3 Weight of each region

此外,为了增加模型的泛化能力,并降低过拟合的影响,本文使用Dropout[22]作为正则化方法,优化远程监督关系抽取模型.

4 实 验

4.1 数据集与评价指标

本文采用Riedel[7]于2010年生成的一个广泛应用于远程监督关系抽取任务的数据集对模型进行评估.它将Freebase知识库中的实体对与纽约时报(NYT)语料库对齐.以2005-2006年新闻中的句子作为训练数据,2007年新闻中的句子作为测试数据.训练集有522,611个句子,281,270个实体对,18,252个关系事实.测试集有172,448个句子,96,678个实体对和1,950个有关系事实.数据集包含53个关系,包括一个特殊的关系NA,它表示实体对之间的关系是不可用的.

本文采用与Lin等人[3]一致的评估方法,采用held-out来评估本文的模型.本实验结果的评价指标采用准确率-召回率(PR)曲线和平均准确率(P@N),通过对比平均准确率以及PR曲线来评估模型的性能.

4.2 参数设置

为了将本文实验结果与其他基线结果更好进行比较,本文使用与Lin等人[3]相同的参数进行实验验证.表1列出了本文模型在实验中使用的超参数.对于区间个数M和权重置零个数N,本文设置M的取值集合为{5,10,20,30},N的取值集合为{1,3,5,7},当M值设为20,N值设为3时获得最优解.

表1 超参数设置Table 1 Parameter settings

4.3 实验结果及分析

4.3.1 本文方法与现有方法比较

为评估本文提出模型的效果,本文选择了以下有代表性的模型进行比较:

Mintz:Mintz等人[1]首次提出的远程监督模型.

MultiR:Hoffmann等人[8]提出的一个多实例学习方法的关系抽取模型.

MIML:Surdeanu等人[9]提出的一个多实例多标签的关系抽取模型.

PCNN+ONE:Zeng等人[2]提出一种分段最大池化的卷积神经网络(PCNN).在卷积神经网络的基础上按实体位置将特征分成三段进行池化并结合多实例学习的关系抽取模型.

PCNN+ATT:Lin等人[3]提出的关系抽取模型.在PCNN基础上增加了注意力机制,减少噪声标签的影响.

以上5种模型与本文提出模型的准确率-召回率(PR)曲线对比情况如图4所示.

图4 不同模型的PR曲线Fig.4 PR curves of different methods

从图4的PR曲线可以看出,PCNN模型的结果显著优于传统的基于特征的方法,因为神经网络模型可以自动的抽取出句子特征,可以避免人工特征选择及NLP工具导致的错误传播问题.分段最大池化的卷积神经网络模型(PCNN)可以通过神经网络结构自动抽取特征,并选择出不同部分重要的特征,因此取得了较大提高.增加了注意力机制的模型(PCNN+ATT)比传统的每个包中选择一个句子的模型(PCNN+ONE)稍好一些,表明注意力机制可以削弱噪声标签的影响,对于关系抽取结果的提升有一定的促进作用.

相较于PCNN+ONE及PCNN+ATT模型,本文提出的模型增加了动态损失函数(DLF)并将前N大损失的样本权值设置为0(TN0),结果明显优于先前的模型.虽然PCNN+ATT在关系抽取方面功能强大,但是要处理所有的数据噪声仍然很困难.本文提出的方法在原有模型的基础上,进一步削弱了噪声数据的影响,并且降低了大量简单样本的影响,从而有效提高了模型的抽取效果.

4.3.2 本文方法的效果分析

本文将动态损失函数分别添加到PCNN+ONE模型和PCNN+ATT模型.并对增加了DLF和TN0的模型分别进行了实验.

从图5和图6可得出如下结论:

图5 PCNN+ONE模型的PR曲线Fig.5 PR curves of PCNN+ONE

图6 PCNN+ATT模型的PR曲线Fig.6 PR curves of PCNN+ATT

1)对于PCNN+ATT和PCNN+ONE,增加DLF方法的结果都优于原模型.DLF减少了过于简单的大量样本和某些噪声样本的权值.

2)对于PCNN+ATT和PCNN+ONE,增加TN0的结果均优于原模型.这表明,具有较大交叉熵损失的样本可能是噪声或难以学习的样本,TN0降低了它们的权重.

3)对于PCNN+ONE,增加TN0的结果明显优于增加DLF的结果.而对于PCNN+ATT,两种方法的性能接近.这意味着PCNN+ONE中的噪声样本比PCNN+ATT中的噪声样本影响更大,因为注意力机制在一定程度上降低了噪声样本的影响.

4)对于PCNN+ATT和PCNN+ONE,同时增加DLF和TN0的模型均优于其他模型,说明两种方法可以叠加使用.因为在增加了DFL之后,一些有噪声的样本仍然有较大的权值,而增加TN0方法可以消除它们的影响.

4.3.3 P@N准确率比较

根据之前的工作,本文采用了P@N来比较本文提出的模型和基线模型.从表2中可以看出:对于PCNN+ONE和PCNN+ATT模型,本文的方法较先前方法可以提高了10%以上的精度.结果表明,本文提出的基于动态损失函数的模型是有效的,不管是否已经使用了注意力机制,平均准确率均优于对比模型.

表2 平均准确率P@NTable 2 P@N for relation extraction

5 结 语

本文以远程监督关系抽取为研究对象,通过对损失分布情况的分析,提出了一个用于远程监控关系提取的动态损失函数,来解决远程监督造成的错误标注问题.该方法根据交叉熵损失的分布来动态改变样本的权重,降低了简单样本和噪声样本的权重.实验结果表明,本文提出的方法适用于远程监督关系抽取任务,能够有效提升远程监督关系抽取模型的效果.在未来的工作中,考虑解决模型训练前期不稳定的问题,并尝试将本文提出的方法应用于其他自然语言处理任务中.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!