5.0 Transformer

一、Seq2seq模型和常见应用

1.1 Seq2seq模型

Seq2seq指的是输入是序列,输出也是序列的模型,输出序列的长度由模型自身决定。Transformer是Seq2seq模型的一种。

1.2 常见应用

  • 语音识别(Speech Recognition):输入是声音序列,输出是文字,输入和输出是同一种语言
  • 机器翻译(Machine Translation):输入是一种语言的文字,输出是另一种语言的文字
  • 语音翻译(Speech Translation):输入是一种语言的声音序列,输出是另外一种语言的文字
  • 语言合成(Text-to-Speech(TTS)):输入是文字,输出是声音序列
  • 聊天机器人(Chatbot)
  • 多标签分类(Multi-label Classification):比如输入一篇新闻文章,直接通过Seq2seq模型输出属于哪些题材
    大部分的NLP问题都可以被看成是QA(Question Answering)问答问题,即输出问题和文本,输出答案。

二、Transformer结构

2.1 整体结构

由Encoder和Decoder两部分组成,Encoder的结果会通过Cross Attention作为Decoder的中间输入(K,V)。
在这里插入图片描述

2.2 Encoder

输入一个序列,输出相同长度的序列。中间的结构是多头注意力机制+residual connection & layer normalization + 全连接层 + residual connection & layer normalization,这个结构可以重复(N次)。
layer norm和batch norm的区别:前者是对所有输入特征进行标准化,后者是对同一特征的所有样本进行标准化。

在这里插入图片描述

2.3 Decoder

2.3.1 Decoder 结构

与Encoder的区别是第一个多头注意力是加掩码(mask)的,中间多一个Cross Attention的部分。
加mask的原因是保证当前的输出只受之前输入的影响。
在这里插入图片描述
Cross Attention的原理
Encoder的输出向量生成K和V,Decoder本身产生Q,这样共同形成Cross Attention机制,产生向前传播的向量序列。
在这里插入图片描述

2.3.2 Autoregressive(AT) 和Non-autoregressive(NAT)

AT: 一开始输入start向量,然后每次产生的结果做为下一个输入,当输出向量代表end时,输出结束。
AT
NAT: 一次性输入全部为start的向量,并行生成输出向量。一般情况下,忽略end之后的token。NAT性能通常比AT差。
NAT

三、Training和Testing过程的区别

3.1Training

直接用标准答案做为输入(Teacher Forcing),最小化交叉熵损失。
在这里插入图片描述

3.2Testing

用bos(begin of sentence)做为输入,一次产生一个新向量,然后该向量作为预测下一个结果的输入

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值