Global-to-Local Neural Networks for Document-Level Relation Extraction论文阅读

EMNLP2020文档级关系抽取模型GLRE 论文Global-to-Local Neural Networks for Document-Level Relation Extraction

语义

语义可以分成两部分:研究单个词的语义(即词义)以及单个词的含义是怎么联合起来组成句子(或者更大的单位)的含义
语义研究的是:词语的含义、结构和说话的方式。

粗细粒度实体

根据实体类型的粒度不同,学术界存在命名实体识别(Name Entity Recognition,NER)与细粒度实体分类两个任务。前者需要将文本中的提及(mention)抽取出来,并且判断其在上下文中的类型,通常为person(人),location(位置)等粗粒度,因此判断提及类型的子任务可以认为是粗粒度实体分类(Coarse-grained Entity Typing);后者则需要在提及已经给定的情况下,依据上下文给提及赋予一个或多个实体类型,不同的是细粒度实体分类中的目标类型通常更加细致,而且类型之间会形成一棵类型树,比如actor(男演员)是person(人)的子类型,airport(机场)是facility(人造设施)的子类型。
Global-to-Local Neural Networks for Document-Level Relation Extraction论文阅读_第1张图片

Attention机制

如果要建立输入序列之间的长距离依赖关系,可以使用以下两种方法:一 种方法是增加网络的层数,通过一个深层网络来获取远距离的信息交互,另一种方法是使用全连接网络。——《神经网络与深度学习》
Global-to-Local Neural Networks for Document-Level Relation Extraction论文阅读_第2张图片

由上图可以看出,全连接网络虽然是一种非常直接的建模远距离依赖的模型, 但是无法处理变长的输入序列。不同的输入长度,其连接权重的大小也是不同的。
总体来说,为什么自注意力模型(self-Attention model)如此强大:利用注意力机制来“动态”地生成不同连接的权重,从而处理变长的信息序列。

Attention机制在16年就开始各种火了,一直到现在还挺多人在用的。

Attention的定义:

参考Attention is All You Need中的说法,假设当前时刻t下,我们有一个query向量,和一段key向量,这里query可以理解为一个包含比较多信息的全局向量,我们利用这个query对所有key向量进行加权求和,学习到一个更合适的新向量去做分类或者预测等任务。

假设q_t就是时刻t下的query向量,K是key矩阵,k_s是其中一个key向量,V是value矩阵,我们先对q_t和每个key进行相似度计算得到一个非归一化的score分数:
在这里插入图片描述
这里用到是最简单的点乘,分母是为了调节内积结果,使得内积不那么大。
然后对score进行softmax归一化,作为attention概率权重:
在这里插入图片描述
最后我们对每个位置key所对应的权重和value进行加权求和,得到最终的输出向量:
在这里插入图片描述
可以看到,对同一段key,不同query会有不同的输出向量。

对应到具体任务上,可能会更加清晰一点:

在机器翻译任务中,query可以定义成decoder中某一步的hidden state,key是encoder中每一步的hidden state,我们用每一个query对所有key都做一个对齐,decoder每一步都会得到一个不一样的对齐向量。

在文本分类任务中,query可以定义成一个可学的随机变量(参数),key就是输入文本每一步的hidden state,通过加权求和得到句向量,再进行分类。

结构方面根据是否划分层次关系,分为单层attention,多层attention和多头attention:

1)单层Attention,这是比较普遍的做法,用一个query对一段原文进行一次attention。

2)多层Attention,一般用于文本具有层次关系的模型,假设我们把一个document划分成多个句子,在第一层,我们分别对每个句子使用attention计算出一个句向量(也就是单层attention);在第二层,我们对所有句向量再做attention计算出一个文档向量(也是一个单层attention),最后再用这个文档向量去做任务。

3)多头Attention,这是Attention is All You Need中提到的multi-head attention,用到了多个query对一段原文进行了多次attention,每个query都关注到原文的不同部分,相当于重复做多次单层attention:
在这里插入图片描述
最后再把这些结果拼接起来:在这里插入图片描述

你可能感兴趣的:(深度学习,知识图谱,自然语言处理)