1、首先建立一个有效的阅读理解模型,完全利用卷积以及自我attention,据我们所知,他们是第一个这样做的,在保持准确率的情况下,同样增快的训练速度;
2、为了提高模型的精确度,提出了一个新的数据增强技术来丰富训练数据集,通过意译;
2 THE MODEL
模型的整体介绍
在第二章首先会介绍阅读理解的任务,然后描述提出的qanet模型,他是仅有卷积以及自我attention构建,这个是经验有效的组合
2.1problem formullation
阅读理解的任务定义如下:给定一个段落有n个单词,和查询句子和一个输出空间来自于原始文章之中,我们将会用x即表示原始单词又会表示embedding vector,即
2.2 model overview
有关模型的全部结构与现有的大部分模型相似,主要包括5个组成部分:embedding layer ,encoder layer,一个 context-query的attention layer,a model encoder layer and an output layer,如图1
对于图中左边整体模型包含一个通用的block结构,我们的模型与其他模型不同之处在于,这样模型的运行速度很快,这样他可以并行处理单词,尽管self-attention已经在Vaswani et al(2017)中运用,但是结合卷积核attention是新的,要比单独使用self-attentiion要有意义,运用卷积又可以利用常规的正则方法来在CONVnets,例如随机深度,(layer droput)
整体模型如下:
1.1.1 input embedding layer
采用标准的技术来获取每一个单词的embedding,把字符embedding和词向量进行concat,训练期间,word embedding是固定不变的,通过GLOV预训练的300维度,既不随着训练而变化,所有超出词汇的单词全部用<unk>进行标记,并且此单词时刻训练的随机初始化。字符向量获取方式如下:每一个字符不hi阿OSH一个可以训练的vector 维度为=200,可以视为每一个单词是由每一个字符embedding连接而成。每一个单词被截断或者填充为16,获取每一行的最大值来获得每一个单词的固定向量表示,最后,embedding层的最后输出为,qizhog和分别是word embedding 和字符卷积操作之后的输出。在表示的top我们采用了两层的 highway network,简单起见,仍然用x这层输出,
什么事highway network ,这里解释https://www.cnblogs.com/jie-dcai/p/5803220.html,介绍的比较清楚
这一个函数说明整个模型含义,想到其实就是一个门控制x是否是直接通过的多,还是通过权重H(*)传输到下一层,也就是选择性的让能够决定labels的特征通过,让影响分类效果小的通过权重选择得到输出。
1.1.2 embedding encoder layer
encoder层是基于一下的基础basic block 【卷集层+self-attention+前馈层】,如图1的右边的图形,用的深层可分卷积(chollet,2016),讲解链接:https://blog.csdn.net/u014380165/article/details/75142710,而不是传统的卷积操作,并且具有较好的记忆功能和很好的泛化能力,具体解释(解释),核的大小是7,核的个数是d=128,一个block的卷集层数是4,对于self——attention层,采用的是multi-headattention机制(解释),对于每一个输入的位置,被称为查询,计算了一个所有位置的权重,对于keys,基于关键字和查询的相似度(这个相似度是由点积得到),在所有的layers中heads的个数为8,所有的这些操作在residual block中,对于给定输出x和一个操作f,输出就是,意味着有一个完整的路径从输入到输出,其中layernorm表示的是由(Ba et al 2016)(解释)提出的layer -normalization,编码器块的总数为1,注意这一层的输入的向量维度是对于每一个单独的词汇,然后映射为一个d=128的维度通过一个一维卷积操作,这层的输出仍然是d=128.
1.1.3 context-question attention
这个部分与之前的model是一样的,用C和Q分别表示context和query的encode,context-query的attention如下:首先计算了context以及query的每一对词语的相似度,然后组成一个矩阵然后归一化S的每一行,获取到,然后context-query的attention计算如下:,其中n就是context的长度,d为上一层的维度。
一些比较好的表现的运用的是其他的attention例如:such as
BiDaF (Seo et al., 2016) and DCN (Xiong et al., 2016),经验上发现DCN(为了理解DCN,专门找到对应的文章进行分析,并且以此准备实现其代码,博客链接为:https://mp.csdn.net/postedit/84878682)要比传统的attention要好一点,更具体点,我们对矩阵S的列进行归一化得到,那么attention公示如下:
1.1.4 model encoder layer
与Seo et al(2016)类似这一层的每一个位置postion的输入是,其中a和b分别是矩阵的A和B的一行,这一层的参数与Embedding Encoder layer 相同,除了除了卷积层一个block是2,总共的block是7,每三个神经元共享权重(具体会根据代码进行解释),在model encoder 重复这些过程,
1.1.5 ouput layer
这一层是制定任务,所以比较特殊,在斯坦福的每一个数据,标记全部在context包含,所以,采用策略师Seo et al(2016),预测么一个position的位置概率,这个概率分别是成为开始和结束的的span,利用公式如下:
QIZHONG 和是可训练的变量,分别是由低到高的model encoder ,a span 的分数是开始和结束概率的结果,最后优化函数定义了log 概率预测的开始和结束的下标分布,平均的样本损失:
其中分别是第i个样本的真实开始和结束的位置,是所有变量,提出的模型可以根据阅读理解任务进行相应的更改,
3.data augmentation by backtranslation
通过增加翻译数据,来获取数据跟多的特征,本次会主要解决模型的解析,因此本论文解释到此为止