论文解读:Combining Distant and Direct Supervision for Neural Relation Extraction
论文解读:Combining Distant and Direct Supervision for Neural Relation Extraction
夏栀的博客——王嘉宁的个人网站 正式上线,欢迎访问和关注:http://www.wjn1996.cn
远程监督关系抽取一直存在一个问题就是噪声,现如今有诸多工作来解决噪声问题,本文创新点在于结合了远程监督和普通监督学习来实现降噪。
一、简要信息
序号 | 属性 | 值 |
---|---|---|
1 | 模型名称 | |
2 | 所属领域 | 自然语言处理 |
3 | 研究内容 | 远程监督关系抽取 |
4 | 核心内容 | Relation Extraction |
5 | GitHub源码 | https://github.com/allenai/comb_dist_direct_relex/ |
6 | 论文PDF | https://www.aclweb.org/anthology/N19-1184.pdf |
二、全文摘要翻译
远程监督关系抽取任务中,噪声数据使得模型很难达到更高的质量,先前的工作通过利用注意力机制为每个句子进行加权求和来解决这个问题,我们提出一种结合直接监督学习的远程监督学习方法来改进这些模型。我们发现联合这两种监督模式的模型更能识别出噪声数据。另外我们发现基于sigmod的注意力和最大池化计算比加权平均效果更好。我们提出的模型在FB-NYT数据集上获得最优效果。
三、相关工作
解决噪声的诸多策略中,作者提出一种结合监督学习和远程监督的方法。这一类方法也曾经被其他工作所采用,但它们的做法只是简单的将两种类型的数据集结合起来,作者在后续发现这种策略并没有多少提升,因此作何认为能够真正结合两种不同的监督模式的办法则是利用multi-task训练。大致的解决方法如图所示:
模型一共包括两个主要部分——sentence-level encoder用于执行supervision任务,bag-level encoder用于解决distant supervision任务。
首先输入一个句子(示例),由于远程监督基于启发式的知识库与语料对齐的强假设,给定的句子虽然包含的实体在知识库中是有关系的,但这个句子所表达的语义不一定有关系,因此句子表征部分除了生成一个向量 sss 外,还会得到一个输出 p(e1e2∣s)p(e_1~e_2|s)p(e1e2∣s) ,其是一个0-1分布,其中0表示这个句子是一个噪声(Negtive),1表示这个句子不是噪声(Positive)。
对于所有包含相同实体对的句子,每个句子都将会得到一个 p(e1e2∣s)p(e_1~e_2|s)p(e1e2∣s) ,通过一系列的计算生成对每个句子的权重分布attention,并将权重与每个句子向量sentence embedding进行乘积,再在每个维度上进行最大池化,得到bag embedding。最终的输出则是对每个类型的0-1分布。
所以,当一个句子是噪声时,由 p(e1e2∣s)p(e_1~e_2|s)p(e1e2∣s) 则可以得到其较低的权重,从而有助于降噪。因此sentence和bag两部分即分别表示direct supervision和distant supervision。
四、提出的方法
整体模型如图所示:
输入一个句子 s=w1,w2,...,w∣s∣s=w_1,w_2,...,w_{|s|}s=w1,w2,...,w∣s∣,给定GloVe词向量表,则可以得到这个句子的word embedding,另外和其他工作一样引入位置表征ddd,则输入表征为vi=[wi,die1,die2]\mathbf{v}_i=[\mathbf{w}_i,\mathbf{d}_i^{e1},\mathbf{d}_i^{e2}]vi=[wi,die1,die2]。
然后使用一个卷积神经网络对句子进行特征提取,并应用最大池化层映射到一个向量,卷积核的尺寸选择 x∈{2,3,4,5}x\in \{2,3,4,5\}x∈{2,3,4,5},并将每个卷积核卷积核池化后的向量拼接起来,并一同喂入一个全连接网络中,即:
cx=CNNx(v1,...,v∣s∣)\mathbf{c}_x = CNN_x(\mathbf{v}_1,...,\mathbf{v}_{|s|})cx=CNNx(v1,...,v∣s∣)
s=W1[c2,c3,c4,c5]+b1\mathbf{s} = \mathbf{W}_1[\mathbf{c}_2,\mathbf{c}_3,\mathbf{c}_4,\mathbf{c}_5] + \mathbf{b}_1s=W1[c2,c3,c4,c5]+b1
如果将s\mathbf{s}s喂入一个带有RELU和sigmod的两层神经网络中,则可以得到对这个句子的positive和negative的分布:p(e1,e2,∣s)=σ(W3ReLU(W2s+b2)+b3)p(e_1,e_2,|\mathbf{s}) = \sigma(\mathbf{W}_3 ReLU(\mathbf{W}_2\mathbf{s}+\mathbf{b}_2) + \mathbf{b}_3)p(e1,e2,∣s)=σ(W3ReLU(W2s+b2)+b3)。这个分布式一个0-1分布。0表示这个句子是噪声(或没有关系)。
接下来是bag层的编码。对于每一个句子,作者依然采用attention。计算方法相比传统方法不同之处在于使用了max-pool。Attention分为两步:
(1)计算Attention: 根据上面计算的 p(e1,e2,∣s)p(e_1,e_2,|\mathbf{s})p(e1,e2,∣s) 分布,将其再次喂入一个含有ReLU的神经网络中,并进行归一化则可以得到每个句子的权重,记做:uj=W7ReLU(W6p+b6)+b7u_j = \mathbf{W}_7ReLU(\mathbf{W}_6p+\mathbf{b}_6) + \mathbf{b}_7uj=W7ReLU(W6p+b6)+b7,其中 ppp 是 p(e1,e2,∣s)p(e_1,e_2,|\mathbf{s})p(e1,e2,∣s) 的简写。
(2)Max-pooling: 根据权重,可以得到每个句子 jjj 表征向量的加权向量,记做 sj[k]×σ(uj)\mathbf{s}_j[k]\times \sigma(u_j)sj[k]×σ(uj) ,其中 sj[k]\mathbf{s}_j[k]sj[k] 表示CNN表征向量的第 jjj 个维度。因此最大池化后可以得到一个包的表征:g[k]=maxj∈1,2...,n{sj[k]×σ(uj)}\mathbf{g}[k] = max_{j\in 1,2...,n}\{\mathbf{s}_j[k]\times \sigma(u_j)\}g[k]=maxj∈1,2...,n{sj[k]×σ(uj)},其中 nnn 表示包中句子的数量。可知 g\mathbf{g}g的维度与sj\mathbf{s}_jsj维度相等。
模型的输出部分并非是对每个类的概率分布,而是对每个类的0-1分布,作者将其作为一个multi-label分类任务对待。输出部分表示为 p(r=1∣e1,e2)=σ(W5ReLu(W4[g,m]+b4))p(\mathbf{r}=1|e_1,e_2) = \sigma(\mathbf{W}_5ReLu(\mathbf{W}_4[\mathbf{g},\mathbf{m}] + \mathbf{b}_4))p(r=1∣e1,e2)=σ(W5ReLu(W4[g,m]+b4)),其中 m=e1⊙e2\mathbf{m} = \mathbf{e}_1\odot \mathbf{e}_2m=e1⊙e2 表示实体向量的直乘(这一部分表示实体自身信息的增强)。
模型的训练采用多任务学习方法,loss包括两部分,分别为distant部分(DistSupLoss)和direct supervision(DirectSupLoss)。远程监督部分采用交叉信息熵,如果当前预测的类与两个实体组成的三元组出现在知识库中,则表示1(rdistant[k]=1\mathbf{r}^{distant}[k]=1rdistant[k]=1),否则为0。因为其分布并不是所有类上的概率分布,而是一系列的0-1分布(即属于0和1的概率分布),因此对于每个类进行一次计算。计算如下:
DisSupLoss=∑Be1,e2−logP(r=rdistant∣e1,e2)DisSupLoss = \sum_{B_{e_1,e_2}}-log P(\mathbf{r}=\mathbf{r}^{distant}|e_1,e_2)DisSupLoss=Be1,e2∑−logP(r=rdistant∣e1,e2)
对于direct supervision部分,作者先使用supervision的数据进行学习,训练得到的参数用于distant supervision任务中,因此这一部分也包括loss,计算如下:
DirectSupLoss=∑s,lgold∈D−logP(l=lgold∣s)DirectSupLoss = \sum_{s,l^{gold}\in D}-logP(l=l^{gold}|\mathbf{s})DirectSupLoss=s,lgold∈D∑−logP(l=lgold∣s)
其中DDD表示direct supervision数据集,lgoldl^{gold}lgold 表示golden label。两个loss进行加权求和:
loss=1λ+1DistSupLoss+λλ+1DirectSupLossloss = \frac{1}{\lambda + 1}DistSupLoss + \frac{\lambda}{\lambda + 1} DirectSupLossloss=λ+11DistSupLoss+λ+1λDirectSupLoss,λ\lambdaλ 是模型学习的参数。
五、实验分析
作者在FB-NYT数据集上进行实验,选择direct supervision数据集是[Combining distant and partial supervision for relation extraction]一文提供的数据集,其将该数据集进行了修改,将句子标签改为有关系的positive和无关系的negative。作者采用Multi-Task训练方法,对两个数据集同时训练。因为我们知道FB-NYT是没有关于句子是否为噪声的label,因此作者用另外一个数据集充当学习的经验,Multi-Task方法能够使用同一个模型来完成这项工作,将训练的参数保留下来,用于评估FB-NYT数据集中句子是否是噪声,并给出权重。
(1)作者首先与几个基线模型进行对比,评价指标为PR曲线和AUC面积,如图:
(2)其次,作者对sentence-level attention部分选择的模式进行比对,模式包括选用的max-pooling和avg,激活函数包括uniform和sigmod。对比结果如下:
通过比对发现当选用sigmod和max-pooling时效果最好。
(3)最后作者分析了多任务学习过程中,两个loss之间的权重系数 λ\lambdaλ,作者选择了一些参数 λ∈{0,0.5,1,2,4,8,16,32,64}\lambda\in \{0,0.5,1,2,4,8,16,32,64\}λ∈{0,0.5,1,2,4,8,16,32,64} ,并进行了对比,实验结构表明,λ=2\lambda = 2λ=2 时达到最好。实验结果如图所示(竖向黑色曲线表示变化幅度,作者对每个λ\lambdaλ进行了三次实验,蓝色曲线则表示均值):
六、总结
这篇工作巧妙的利用其它监督数据企图学习含有噪声数据,是一种不错的研究思路,也融合了Multi-Task和Multi-Label。不过,是否利用其它监督数据就能很好的判断某个示例是否是噪声?这个作者并没有给出一些解释,实验上的效果是否是偶然?
论文解读:Combining Distant and Direct Supervision for Neural Relation Extraction相关推荐
- 【论文笔记】Neural Relation Extraction with Multi-lingual Attention
一.概要 该paper发于ACL2017上,作者主要基于关系事实通常在各种语言中存在某种模式表达,并且不同语言之间的模式是不同的这两个动机,针对于当前存在的单语言关系抽取的方法,从而存在忽略不同语 ...
- 论文 Simultaneously Self-Attending to All Mentions for Full-Abstract Biological Relation Extraction
论文 Simultaneously Self-Attending to All Mentions for Full-Abstract Biological Relation Extraction Ve ...
- 论文解读(一)V-Net: Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation
发表:Computer Vision and Pattern Recognition 数据集: MRI volumes depicting prostate前列腺核磁共振成像 目标函数:基于Dice系 ...
- [论文解读]A Quantitative Analysis Framework for Recurrent Neural Network
A Quantitative Analysis Framework for Recurrent Neural Network 文章目录 A Quantitative Analysis Framewor ...
- 论文学习11-Adversarial training for multi-context joint entity and relation extraction(实体关系买抽取模型,对抗学习
文章目录 1. introduction 2.相关工作 3.Model 3.1 Joint learning as head selection 3.2 AT 4.实验设置 5.结果 6.总结 实体关 ...
- 医疗实体链接(标准化)论文解读 (附代码) A Lightweight Neural Model for Biomedical Entity Linking
一.动机 论文:https://arxiv.org/abs/2012.08844 代码:https://github.com/tigerchen52/Biomedical-Entity-Linking ...
- 【论文解读 CIKM 2018 | GEM】Heterogeneous Graph Neural Networks for Malicious Account Detection
论文链接:Heterogeneous Graph Neural Networks for Malicious Account Detection 来源:CIKM 2018(CCF-B 数据库,数据挖掘 ...
- 论文笔记:Pre-training to Match for Unified Low-shot Relation Extraction
论文来源:ACL 2022 论文地址:https://aclanthology.org/2022.acl-long.397.pdf 论文代码:https://github.com/fc-liu/MCM ...
- 论文阅读课1-Attention Guided Graph Convolutional Networks for Relation Extraction(关系抽取,图卷积,ACL2019,n元)
文章目录 abstract 1.introduction 1.1 dense connection+GCN 1.2 效果突出 1.3 contribution 2.Attention Guided G ...
最新文章
- linux中怎么退出执行过程,(进程)处理过程中的Linux:从执行到退出
- 4年级计算机 设计贺卡教案,四年级上册信息技术《小贝的贺卡》教学设计
- springmvc DispatchServlet初始化九大加载策略(二)
- PWN-PRACTICE-BUUCTF-30
- (总结5)H5中新增的功能性事件
- Spring Cloud OpenFeign 接口反序列化失效,该怎么解决?
- BZOJ 3404: [Usaco2009 Open]Cow Digit Game又见数字游戏(博弈论)
- 云免流控服务器响应失败,云免流服务器是否违法
- MVC如何分离Controller与View在不同的项目
- [HZAU]华中农业大学第四届程序设计大赛网络同步赛
- 计算机boot指令,BCDBoot 命令行选项
- Python爬虫初探——天涯
- win10设置电池养护模式
- java 支付宝 验证签名失败,关于支付宝签名校验失败的问题排解
- linux安装智能输入法,Ubuntu中文智能拼音输入法配置
- Flask中蓝本(Blueprint)的使用
- Podfile语法参考(译)
- 【C语言细节】计算自然对数的底 e遇坑
- 企微服务商平台收费接口对接教程
- 500套求职简历模板