【论文】Awesome Relation Extraction Paper(关系抽取)(PART IV)
0. 写在前面
不想写
1. Neural Relation Extraction with Multi-lingual Attention(Lin/ ACL2017)
Sentence Encoder
句子特征抽取这一部分跟Lin 2016年 Selective Attention
的工作几乎一样,之前已经有详细介绍,这里就不再啰嗦啦
Multi-lingual Attention
为了获取多语数据中的信息,设计了两种attention操作:单语言之间attention和多语言之间attention。其中Mono-lingual Attention为上图中实线部分,其实现与Lin 2016年 Selective Attention
相同。下面主要介绍Cross-lingual Attention,表现为上图中虚线部分。
假设jjj和kkk分别代表了不同的两种语言,
- 首先计算语言jjj的句子集合与语言kkk的标签之间的一致性程度,得到attention score eie_{i}ei
ejki=xji⋅rke_{j k}^{i}=\mathbf{x}_{j}^{i} \cdot \mathbf{r}_{k}ejki=xji⋅rk - 接着用softmax归一化attention score得到attention distribution:
αjki=exp(ejki)∑kexp(ejkk)\alpha_{j k}^{i}=\frac{\exp \left(e_{j k}^{i}\right)}{\sum_{k} \exp \left(e_{j k}^{k}\right)}αjki=∑kexp(ejkk)exp(ejki) - 最后用attention distribution去判定语言jjj中句子的重要性程度Sjk=∑iαjkixji\mathbf{S}_{j k}=\sum_{i} \alpha_{j k}^{i} \mathbf{x}_{j}^{i}Sjk=i∑αjkixji
这样如果有mmm种语言,那么最终结果就会得到m∗mm*mm∗m种对于实体对的表示:{Sjk∣j,k∈{1,…,m}}\left\{\mathbf{S}_{j k} | j, k \in\{1, \ldots, m\}\right\}{Sjk∣j,k∈{1,…,m}},然后把这些向量经过全连接层+softmax后得到每个relation的概率。为了更好地考虑不同语言的特点,可以在全连接层在共享权值的基础上加上每种语言特有的权值矩阵,如RkR_{k}Rk对应第k种语言由rkr_{k}rk组成:
p(r∣Sjk,θ)=softmax[(Rk+M)Sjk+d]p\left(r | S_{j k}, \theta\right)=\operatorname{softmax}\left[\left(R_{k}+M\right) S_{j k}+d\right]p(r∣Sjk,θ)=softmax[(Rk+M)Sjk+d]
试验分析及个人总结
- 作者在文章后半部分做了很多对比试验,非常有说服力地验证论文的价值
- 文章一大创新点就是利用多语言数据之间的一致性与互补性运用到数据抽取任务,其中多语分析也被用于其他NLP任务,比如情感分析,信息抽取等;
- 虽然说更多的数据代表更多的信息,但是原始多语言数据的获取确是一大难点
CODE HERE
2. Deep Residual Learning for Weakly-Supervised Relation Extraction (Huang /EMNLP 2017)
- 一是,假如浅层、中层和高层分别抽取到词法、句法和语义的信息的话,那么有时候忽略中间的句法信息,直接将语法和语义信息结合也可以work;
- 第二点是,ResNet可以有效缓解深度网络中的梯度消失问题,而这个操作可以有效减轻远程监督数据中的噪音(???不懂)
试验分析及个人小结
3. Weakly-supervised Relation Extraction by Pattern-enhanced Embedding Learning(Qu/ACM 2016)
没有用深度学习,而是两个朴素的模型互相迭代,运用了半监督学习的思想。
4. Learning with Noise: Enhance Distantly Supervised Relation Extraction with Dynamic Transition Matrix(Luo/ACL 2017)
Sentence-level Modeling
句子级别的建模,主要考虑输入是一个句子。分为三部分:
- (1)上图中的①+②过程就是之前介绍的PCNN_+ FC + SOFTMAX输出对应relation概率的模型。
- (2)Noise Modeling: 对于一个句子,通过PCNN + FC得到xnx_{n}xn后使用softmax计算transition matrix:Tij=exp(wijTxn+b)∑j=1∣C∣exp(wijTxn+b)T_{i j}=\frac{\exp \left(\mathbf{w}_{i j}^{T} \mathbf{x}_{n}+b\right)}{\sum_{j=1}^{|\mathbb{C}|} \exp \left(\mathbf{w}_{i j}^{T} \mathbf{x}_{n}+b\right)}Tij=∑j=1∣C∣exp(wijTxn+b)exp(wijTxn+b)
TijT_{ij}Tij:给定正确标签iii,预测结果为类别jjj的条件概率
wijw_{ij}wij:表示类别i和类别j混淆可能性的权重向量
CCC, bbb:类别总数,偏置项
注意在训练时会对每个instance都建立transition matrix但是其中的权重向量wijw_{ij}wij是全局共享的。
- (3) Observed Distribution:通过transition matrix与预测向量p相乘,可以得到最终的分布ooo:o=TT⋅p\mathbf{o}=\mathbf{T}^{T} \cdot \mathbf{p}o=TT⋅p
在模型训练阶段,使用观测分布ooo;但是在inference阶段,直接使用prediction distribution,因为模型已经学习到的噪音分布模式可以防止prediction受其影响
Bag Level Modeling
bag级别的建模,输入是一个bag里的多个句子。和上面sentence level唯一不同的就是如何表示出bag的向量。这里可以使用句子级别的attention操作,在之前都有过介绍,就不在细述。
Curriculum Learning based Training
在训练过程中,参考大家普遍的做法是,对于模型输出o, 直接计算o和label的loss, 也就是CrossEntrophy (CE) + l2 正则作为损失函数。这样做不能保证p能表示真实分布。原因在于在训练的初始阶段,我们对于噪音模式没有先验知识,这样T和p都不太可靠,这样会使得训练陷入局部最优。因此我们需要一种技术来保证我们的模型能够逐步适应训练噪音数据,于是引入了课程学习。
课程学习的思想:starting with the easiest aspect of a task, and leveling up the difficulty gradually
课程学习的训练方法可以引入先验知识以提高transition matrix的有效性,例如,我们认为地将训练数据分为两部分,一部分相对可靠,一部分相对不可靠
Trace Regularization
迹正则是用来衡量噪音强度的。当噪音很小时,transition matrix会是比较接近单位矩阵(因为ij之间混淆性很小,同类之间的转移概率很大,接近1,这样转移矩阵就会接近单位矩阵) trace(T)越大,表明T和单位矩阵越接近,也就是噪音越少。对于可靠的数据trace(T)比较大,不可靠的数据trace(T)比较小。
迹正则的另一个好处的降低模型的复杂度,减小过拟合。
训练
直接看最终的损失函数,由三部分组成,第一部分是观测分布的损失,第二部分是预测分布的损失,第三部分是迹正则。alpha,beta分别表示训练过程中红每个损失的重要程度。
L=∑i=1N−((1−α)log(oiyi)+αlog(piyi))−βtrace(Ti)L=\sum_{i=1}^{N}-\left((1-\alpha) \log \left(o_{i y_{i}}\right)+\alpha \log \left(p_{i y_{i}}\right)\right)-\beta \operatorname{trace}\left(\mathbf{T}^{i}\right)L=i=1∑N−((1−α)log(oiyi)+αlog(piyi))−βtrace(Ti)
训练过程:一开始,让alpha=1。随着训练的进行,sentence encoder 分支有了基本的预测能力。并逐渐减小beta, alpha。逐渐减小对于trace的限制,允许更小的trace来学到更多噪音。随着训练的进行,越来越关注于学习噪音模式。
另一方面,如果我们有数据质量的先验知识,就可以利用这些先验来进行课程学习。具体来说就是将数据集分成相对可靠和相对不可靠两部分,先用可靠的数据集训练几个epoch, 再加入不可靠的数据集继续训练。同时利用迹正则,对于可靠数据集,trace(T)可以适当地大一些,对于不可靠的数据集,则要让trace(T)小一些。L=∑m=1M∑i=1Nm−log(omi,ymi)−βmtrace(Tmi)L=\sum_{m=1}^{M} \sum_{i=1}^{N_{m}}-\log \left(o_{m i, y_{m i}}\right)-\beta_{m} \operatorname{trace}\left(\mathbf{T}^{m i}\right)L=m=1∑Mi=1∑Nm−log(omi,ymi)−βmtrace(Tmi)
试验分析及个人小结
作者在两个数据集上对上述模型进行了实验验证:TIMERE和ENTITYRE。评价指标选取的是PR曲线
- 文章的出发点非常好,既然噪音是在数据中无法避免的,那我们训练阶段就去学习这种噪音分布特征,然后在测试阶段就可以有效避免;
- 提出了global transition matrix,用于得到从真实预测分布到实际观测到的包含噪音分布的映射关系;之后有进一步优化到了Dynamic transition matrix,依输入句子的不同而改变,粒度更细,效果更好;
- 提出了curriculum learning的训练模式,课程学习属于一种从易至难的任务学习,比随机顺序学习更好,避免学习出无意义的局部最优;
- 最后附上一份作者的PPT报告
5. Effectively Combining Recurrent and Convolutional Neural Networks for Relation Classification and Extraction(SemEval 2018)
非常工程的一篇打比赛文章,在SemEval 2018 Task7的四个子任务中取得了三项第一。SemEval 2018任务7子任务介绍:
Subtask1.1: 实体对关系分类(给定实体对,句子,关系,不包含NA类别)
Subtask1.2 :加噪数据实体对关系分类(给定实体对,句子,关系,不包含NA类别)
Subtask2 :实体关系分类(给定实体位置,句子,关系,包含NA类别)
作为打比赛的模型,不择手段地提高分数才是王道,文章一开始就列出了各种特征对最终模型效果提升的影响。后面将会对下面提及的特征进行一一细述。
本文的模型也非常易懂,ensemble了前面例举过的CNN和LSTM,如下图所示
- 模型的输入是word embedding + POS + relative position embedding
- 对于CNN部分:一层多个卷积核convolutional layer + RELU + max-pooling layer + fully-connected layer with dropout + softmax
- 对于RNN部分:双向LSTM(使用dynamic,不用padding)+ fully-connected layer with dropout + softmax
- 将以上的ensemble网络训练20次,将得到的概率值平均后作为最终每个分类的得分
下面来仔细看看都用了哪些tricks
Domain-specific word embeddings
使用gensim为该任务训练了特定领域的词向量,尝试了100,200,300维的词向量,最终200维表现最好。
Cropping sentences
考虑到最终决定relation类别的是句子两个实体之间的部分,于是将所有橘子两个实体之间的部分切分出来当成训练样本。此外通过对数据分析发现当句子长度大于一定阈值时,类别的概率会大大降低,通过实验得出阈值设定为19的时候效果最
Cleaning sentences
原始数据集中有些自动标注的样本包含了噪音实体,例如<entity id=”L08-1220.16”> signal <entity id=”L08-1220.17”> processing </entity></entity>
,signal processing
和processing
都标记了实体,对于这样的样本,我们考虑将其拆分成两个样例,分别考虑单独的每一个实体。从另一个层面上看,其实也算是数据增强了。
此外,对于[]
和()
内的token都删除,不属于专有名词的数字被替换为通配符令牌。
Using entity tags
其实就是之前介绍过的Position Indicator,用于告诉模型实体在句子中的位置。
Relative order strategy & number of classes
一种数据增广方式:句子反转。将非对称的关系句子按字反转之后,实体对的前后关系发生反转,他们之前的关系也就发生了反转,于是使用一种替换的方式直接将实体中间的字换成表达相反关系的token。 例如图中表达的是“由…组成的关系”, 前者“corpus”由后者“text”组成。将句子反转之后,他们之间的位置反转,中间的token “ from a “ 表示”由…组成的关系“相反的关系。这样新生成的句子虽然是语法上不通,但是可以提升Performace。
Upsampling
对于subtask2,数据集出现样本极度不平衡现象,类别为None
的样本占了大多数。于是对所有数据上采样,也就是网络输入每次保证正负样本的比例是固定的(1:1)
Combining predictions
作者做实验的时候发现,单独使用RNN或者CNN, 效果都差不多,但是两种模型ensemble的时候效果会有提升。更进一步的结果是,作者发现RNN模型对长一些的句子比CNN效果好。于是本文使用如下公式对RNN的prob加权。wrnn,i=0.5+sign(si)⋅si2w_{r n n, i}=0.5+\operatorname{sign}\left(s_{i}\right) \cdot s_{i}^{2}wrnn,i=0.5+sign(si)⋅si2
其中sis_{i}si是对一个句子的长度拉伸表示(区间为[-0.5, 0.5]),句子越长,权重越高si=lengthi−minj(lengthj)maxj(lengthj)−minj(lengthj)−0.5s_{i}=\frac{\text {length}_{i}-\min _{j}\left(\operatorname{length}_{j}\right)}{\max _{j}\left(\operatorname{length}_{j}\right)-\min _{j}\left(\operatorname{length}_{j}\right)}-0.5si=maxj(lengthj)−minj(lengthj)lengthi−minj(lengthj)−0.5
Post-processing
六类关系中有五种是非对称的,一种是对称的。由于进行了句子反转,所以翻转后的句子结果不可能为对称关系,需要将这种情况下的预测改变为得分第二高的类别。
还有一种情况是,subtask2中,每个实体只能属于一个关系,如果出现一个实体同时出现在两个关系中,需要选择更短的或者频率更高的或者随机输出。
个人小结
可以看出作者对整个任务的数据处理和特征提取做的非常深入,这也是模型得分能这么高的原因。要好好学习啊
以上~
2019.05.14
【论文】Awesome Relation Extraction Paper(关系抽取)(PART IV)相关推荐
- BERT gated multi-window attention network for relation extraction 用于关系抽取的BERT门控多窗口注意力网络
BERT gated multi-window attention network for relation extraction 用于关系抽取的BERT门控多窗口注意力网络 Abstract 实体关 ...
- 论文阅读课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 ...
- 论文小综 | 文档级关系抽取方法(下)
本文作者: 陈想,浙江大学在读博士,研究方向为自然语言处理 张宁豫,浙江大学助理研究员,研究方向为自然语言处理.知识表示与推理 这篇推文是文档级关系抽取方法的第二部分,前面的部分请移步推文" ...
- 【论文】Awesome Relation Extraction Paper(关系抽取)(PART V)
写在前面 之前介绍的关系抽取系列文章主要是属于pipeline形式的,即第一步用实体识别将关系对抽取出来,第二步才是对关系对的分类,这样的做法会导致误差的传递.另外有一种解决方案是端到端的joint ...
- 【论文】Awesome Relation Extraction Paper(关系抽取)(PART III)
0. 写在前面 回头看了一遍之前的博客,好些介绍的论文主要是属于关系分类的领域,于是就把前几篇的标题给修改了一下哈哈.关系分类和之前的文本分类,基于目标词的情感识别还都挺像的,baseline模型也都 ...
- 论文学习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.总结 实体关 ...
- 论文小综 | 文档级关系抽取方法(上)
本文作者: 陈想,浙江大学在读博士,研究方向为自然语言处理 张宁豫,浙江大学助理研究员,研究方向为自然语言处理.知识表示与推理 1. 前言 关系抽取(Relation Extraction, RE)是 ...
- 【每周NLP论文推荐】 掌握实体关系抽取必读的文章
欢迎来到<每周NLP论文推荐>.在这个专栏里,还是本着有三AI一贯的原则,专注于让大家能够系统性完成学习,所以我们推荐的文章也必定是同一主题的. 实体关系抽取作为信息抽取领域的重要研究课题 ...
- 每天读一篇论文2--Document-level Relation Extraction with Cross-sentence Reasoning Graph
摘要: 关系抽取(RelationExtraction,RE)已经从句子级发展到文档级,需要聚集文档信息并使用实体和提及进行推理.现有研究将具有相似表示的实体节点和提及节点放在文档级图中,其复杂的边会 ...
最新文章
- SNORT入侵检测系统
- access vba表字段_vba中如何在access的一张表中得到所有的列名?
- [bzoj1050 HAOI2006] 旅行comf (kruskal)
- java 8 stream_Java 8 Stream示例
- 数据结构:(5)算法分析基础
- 算法(8)-leetcode-explore-learn-数据结构-链表
- 如何使用git管理crontab任务
- mysql集群之keepalived简单搭建
- 求带权中位数的Select算法
- Kotlin学习笔记 第二章 类与对象 第十节 内部类嵌套类
- “刘强东案”细节流出;小米或全球首发5G手机;罗永浩密会纳德拉;| 极客头条...
- 基于深度学习的大豆病虫害自动计数(SLIC超像素方法进行图像分割)
- JavaScript学习笔记(四)
- 如何让windows控制台程序运行时不显示黑色框,直接运行
- Java设计模式(四)行为型 设计模式
- 孤城内,秋风秋雨抛荒了谁的一怀若水情思?
- 几款开源聊天软件对比
- dns---svchost
- java倒序输出英文句子_Java实现英文句子中的单词顺序逆序输出的方法
- Two Arrays And Swaps