Administrator
发布于 2022-10-15 / 2 阅读
0

transformer

BLEU:中文名称为双语互译质量辅助工具,用来衡量机器翻译文本与参考文本之间的相似程度的指标,取值范围为0-1,取值越靠近1表示机器翻译结果越好。

摘要:主要的序列转导模型是基于复杂的循环或卷积神经网络,其中包括一个编码器和一个解码器,性能最好的模型还通过注意机制连接编码器和解码器,本文提出了一个新的简单的网络架构Transformer,它完全基于注意机制,摒弃了递归和卷积。在两个机器翻译任务上的实验表明,该模型具有更好的并行性,训练时间明显缩短,我们的模型在WMT 2014英语-德语翻译任务中达到28.4 BLEU,比现有的最佳结果(包括集成)提高了超过2个BLEU,在WMT 2014英语到法语的翻译任务中,我们的模型在八个gpu上训练3.5天后,建立了一个新的单模型最先进的BLEU分数41.8,这只是文献中最好模型训练成本的一小部分,我们通过成功地将Transformer应用于大量和有限训练数据的英语成分解析,证明了Transformer可以很好地推广到其他任务中.

网络结构:该网络结构主要是编码器和解码器两个部分组成。

编码器:编码器中由N个相同的编码层组成,每个编码层又包括了两个子层,第一层是multi-Head Attention,第二层是Feed Forward,每个子层都使用了残差连接及层归一化,相当于每个子层的输出为LayerNorm(x + subblayer (x)),multi-Head Attention是多个self-Attention同时计算并最终得到合并结果,通过计算多次来捕获不同子空间上的相关信息,而self-attention就是可以捕获同一个句子中单词之间的一些句法特征(比如依赖关系、指代关系等)

self-attention就是在计算某个单词的注意力值,首先将输入单词转化成嵌入向量,然后将该嵌入向量与训练过程中训练的三个矩阵相乘得到Q、K、V三个向量,再为每个向量计算一个score,(实际上是求两个单词的相似度,为其打分),然后通过缩放和归一化得到该单词与其单词间的相应权重(当然自己与自己的权重是最大的),再将权重与相应的每个Value向量相乘再求和就得到该词的注意力值。

multi-head attention就是相当于多个self-attention的集成,不同的self-attention是不同方面的理解,将数据输入到多个self-attention,就会得到多个加权后的特征矩阵,将多个矩阵按列拼接成一个大的特征矩阵,再经过全连接层得到输出。

解码器:在解码器中,transformer模块比编码器中多了个encoder-decoder attention,在encoder-decoder attention中, Q 来自于decoder的上一个输出, K 和 V 则来自于与encoder的输出,K和V可以帮助解码器关注输入序列哪些位置合适,解码阶段的每个步骤都会输出一个输出序列,直到到达一个特殊的终止符号,表示解码完成

位置编码:由于上述的编码,解码过程仅仅是关注于内容,没有考虑到内容之间的位置关系,因此引入了位置编码,来表明某个单词应该在句子的什么位置,再结合输入单词的embedding作为输入。

实验:在2014年最新的英语-德语和英语-法语测试中,获得了更好的BLEU分数,训练成本却更小

为了评估Transformer不同组件的重要性,作者以不同的方式(多注意头的数量,K,V矩阵的维度以及dropout的大小等)改变了Transformer的基础模型,在开发集(newstest2013)上测量英语到德语翻译的性能变化,观察到单个注意力头比最佳注意力头数量的BLEU低,但头数量过多,质量也会下降。并且当模型越大时,往往更好,dropout对于避免过拟合也很有帮助。