本期精读文章
Neural Relation Extraction with Selective Attention over Instances
论文链接
https://aclweb.org/anthology/P/P16/P16-1200.pdf
推荐理由
本文为清华刘知远老师组里的工作,使用了 attention 去衡量关系抽取的时候当前句子和当前关系的匹配程度,比较好的删选了远程监督候选句子中和当前关系无关的句子,从而提高了性能。
知识图谱小组阅读笔记精选
>>>karis<<<
阅读总结: (1)网络结构上: sentence Encoder:词的嵌入和相对实体位置的嵌入,然后利用 CNN 得到关系的向量表示; Selective Attention: 计算包含实体的所有有效句子并计算句子权重,以此来降低错误标注句子带来的影响。 (2)学习算法上:交叉熵、SGD,优化的目标是逼近计算句子集合所表达的主要关系类型。 (3)与(Zeng et al., 2015, Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks)的不同在于:后者仅仅在包含实体对的最有可能的一个句子上进行训练,未充分利用语料。
>>>LeoZhao<<<
基本思路: distant supervision: 包含实体对的句子都表达了实体之间的 specific 关系。 1. 解决标记样本的缺乏 >+ 引入 distant supervision,[Mintz et al., 2009] 1. 解决传统单向方法的误差积累问题 >+ 使用 CNN 去学习句子的语义(与实体的距离 + embedding 本身蕴含的 semantic similarity),抛弃原有的 POS 等传统方法。 而第二步的 RE 误差可以传导回来从而调整这一部分学习到的句子语义。 >+ 本文采用的是 static vector representation,并不是类似 not-static vector representation [Convolutional neural networks for sentence classification (2014), Y. Kim] 1. 解决错误标记样本误导 distant supervision >+ 正向样本表达了 specific 关系,[Zeng et al., 2015] 只使用 at least one sentence。 >+ 负向样本不包含 specific 关系,利用 sentence-level attention 的特性来充分学习这部分特征。
>>>huangchao<<<
本文针对在关系抽取任务中,传统的远程监督方法不可避免的错误标签问题以及对训练语料中句子的利用不充分,采用 CNN 或者 PCNN 对问题进行建模,以一对 entities 出现的句子的 word embedding 和 position embedding 进行 concatenation 之后作为输入,输出每个句子描述 entities 之间关系的向量表示,并通过 selective attention 为每一个句子对应的关系 r 赋予一个权值,以此降低噪音对实体之间真正的关系的影响。
>>>zengpingweb<<<
今天拜读完了这篇文章,一如知远老师组其他文章,写的比较清晰、易懂,读的过程比较轻松。 这篇文章提出了一种基于语句级 attention 及 CNN 的远程监督关系抽取模型。作者认为过去的工作,由于仅考虑了一个实例,丢失了许多有效信息,而且在远程监督关系抽取过程中,引入了噪声。为解决这个问题,本文考虑了多实例,对这些与关系相关的句子进行了 attention 建模,即让正确的实例获得较高权重,让错误的实例获得较低的权重,这样不但减轻了噪声的干扰,还考虑了更多的句子信息。 多种组合的实验也表明了这种方法的有效性,作者也同时指出了除 CNN 模型外,还有许多别的深度模型可以考虑。我感觉,除了句子级信息外,是不是句子内部的单词信息甚至字符级信息也可以考虑进来?目前有许多 NLP 工作都开始考虑这些更细粒度的信息了(当然效果如何我不好评估,而且是否会带来更多问题也不好说,尚需进一步实验验证)。 作者开放了他们的基于 tensorflow 的源码,要对这个工作进行快速修改是比较容易的,建议大家进行尝试。
>>>zhangwen<<<
远程监督是一种弱监督方法,不可避免会引入噪音,作者针对这一问题提出了多实例建模,以降低噪音的权重,达到更好的关系抽取效果。但美中不足的是本文的方法依然只能抽取知识库中已存的关系,当然测试数据中实体的关系都是知识库中已有的。在实际的使用过程中,如何判断给定两实体间的关系是否就是已存知识库中的关系之一依然是一个问题,因为两个给定实体之间的关系可能是知识库以外的。
知识图谱小组优质Q & A
Wendyyuan:为什么基于 sentence-level 对于多种实体,可以减少 noisy instances 的权重呢?
kaharjan:我的个人理解是包含正确关系的句子的 attention 的权重大,对于为什么 “可以减少 noisy instances 的权重”,是不是因为正确句子中包含一些 有用的单词和以及一种合理的位置关系呢?
lightsilver:这个当前关系 r 具体得到的过程是哪个式子,下文那个 query vector 指代的是哪个向量呢?
lyk423:这里的 query vector **r** 指的是 h,t 远程监督标注时对应的知识库的 r,这里的图片是当时的一个错误,后来我提交了一次 revision 进行修改,修改版论文为:http://aclweb.org/anthology/P/P16/P16-1200v2.pdf
zengpingweb:我理解这个 query vector **r** 指的就是用来预测评分的那个 r 的分布表示。对于所有候选 sentences 及给定的 r,都通过 softmax 给一个评分,这个评分就成了 attention 中间那个权重。至于 r 是如何得到的,我认为既然是远程监督,那么这个 r 是来自知识库中,知识库中有三元组<h,r,t>,如果 h 和 t 都在一个句子中出现,就可以根据这个来预测 r 成立的概率。当然,我也仅仅是初步的认知,具体还要拜读作者给出的源代码。
Jason:这里有点不理解, position embeddings 是指当前单词到最近的 entity 的相对距离么? 还是距离所有 entity 的距离,形成的一个 vector 呢? 加入 position embeddings 对实验结果有哪方面的影响呢? 后面提到 postion embedding 的维度是 5,应该是每个单词选取 5 个最近距离 entities,不知道可否这样理解。 此外,选的 word embedding 维度是 50,如果增加到 300 维,不知道对实验结果有哪方面影响?
lizhili:我的理解是,position embedding 是有两个值,是针对两个实体的,并不是针对距离最近的实体,每个词语对第一个实体的 position embeding 是 5 维,对第二个实体也是 5 维,加起来就是 10 维。
Dexter:NLP 工具会带来哪些错误?这些错误又是如何扩张的呢?
fengdanibt:类似 POS Tagging 本身也不是百分百的准确, 如果当做 feature 用的话,Tagging 的 error 就会对后续的计算有影响。
cuixiankun:这个结构图让我想到了 RNN based attention,那么使用 RNN 会怎样呢?RNN 这种专业处理 Sequence 的结构会不会更好呢?
zhangwen_nk:并没有确凿的证明说 rnn 在处理时序特征时比 cnn 要好,我看到的更多的实际应用中,比如语音识别,语义分类,都可以使用 2dcov 或者 1dcov,而且效果比 rnn 要好。更重要的是 rnn 的速度要大于 cnn,所以在需要考虑计算速度的场景中,更偏向使用 cnn。
来源:paperweekly