Transformer

Transformer是一个Seq2Seq的模型,其特点是输出Seq的长度是由模型决定的。

Encoder

下图展示了Encoder的常规结构,每一个block通常包括几个layer,输入一排向量,输出一排向量。

On Layer Normalization in theTransformer Architecture文章讲述了调整后的组合顺序的表现
https://arxiv.org/abs/2002.04745
PowerNorm: Rethinking BatchNormalization in Transformers文章讲述了为什么用layer normalization而不是batch normalization

https://arxiv.org/abs/2003.07845

Decoder

常见的分为两种,Autoregressive和Non-autoregressive。

Autoregressive

以语音辨识为例子,假设已经读进来Encoder输出的向量,Decoder怎么产生文字呢?这里准备了一些token,包括开始和结尾,以及vocabulary。
 

Decoder具体是什么样子呢?可以用下图表示。会发现与Encoder不同的地方是多了Masked Multi-head attention,这与Self attention是不一样的。

这意味着,产生b1的时候,只能考虑a1的资讯,不能考虑后面的资讯。这是由于decoder的输出有次序。

Non-autoregressive (NAT)

以语音辨识为例,NAT是直接产生整个句子。优点是可并行运算,容易控制输出的长度。但目前性能不够好。

Encoder-Decoder的信息传递

Cross Attention运作过程

如下图所示,query来自于Decoder,key和value来自于Encoder。Decoder通过该机制,从Encoder生成的源语言序列编码中提取相关信息。

训练

如何理解语音辨识的训练过程呢?训练的数据是音频和对应的文字,如“机器学习”,每个字都可以被表示为one-hot向量,通过最小化输出与真值之间的Cross entropy,可以进行模型的训练。

Guided Attention的引入

在标准的 Attention 机制中,权重是由模型自动学习的,模型自己决定要关注哪些部分。然而,在某些任务中,我们可能有先验知识或附加信息,可以指导模型更好地分配注意力权重。这时,Guided Attention 就发挥了作用。

Guided Attention 通过显式地引导或约束注意力权重,确保模型关注特定区域或特定特征。这样可以帮助模型在训练过程中更快地收敛,并在测试时表现更好。

最后,让我们思考一个问题。预测的过程中,可能某一步出现预测错误(如“器”被预测为“气”),这个错误被后续的注意力作为输入,这就会出现“一步错,步步错”的尴尬处境。如何解决这个问题呢?可以考虑在训练的时候加入错误的文字,具体可以参考下图中的链接,但这也在某种程度上降低了模型并行化的能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值