本文就是Transformer的开山之作。
Transformer是一个非常经典且火爆的深度学习模型。主要功能通俗的来说就是翻译。输入,处理,输出。
论文地址:https://arxiv.org/abs/1706.03762
非常好的动态演示视频
好的入门视频
好的讲解视频
超详细的讲解视频:B站up主:老弓的学习日记 他讲的很详细
代码讲解:https://cloud.tencent.com/developer/article/1888512
前言
目前在序列建模或转换问题中,如语言建模或机器翻译(例如:将中文翻译成英文),所采用的主流框架为Encoder-Decoder
框架。
在翻译任务中,如果我们只是理解词的意思是不够的,我们需要理解的是这些词组成的一段话的意思,也就是序列的意思。
其中RNN很擅长处理序列信息,但是RNN虽然好用但是当处理长的序列就不行了。
由上图,有两个箭头都指向h1说明h1必须等前面的搞完它才可以执行,由此RNN不能并行执行。
为了解决上述的问题:本文提出了一个transformer模型来更好的处理长序列,且可以并行执行。
self-attention和transformer的关系
自注意力机制(Self-Attention Mechanism)
最早是在《Attention is All You Need》
这篇论文中被提出的。这篇论文是由Vaswani等人于2017年发表在国际顶级会议Neural Information Processing Systems (NeurIPS)
上。
自注意力机制(Self-Attention)
是Transformer模型
的核心组成部分之一。
本文的创新
- 自注意力机制(Self-Attention):Transformer引入了一种全新的注意力机制,称为自注意力机制。在传统的序列模型中,如循环神经网络(RNN)和卷积神经网络(CNN),信息的传递是通过固定的局部窗口或者固定长度的记忆单元来实现的。而自注意力机制允许模型对输入序列中的不同位置进行灵活的关注,能够同时考虑到整个输入序列的上下文信息,大大增强了模型的表达能力。
- 多头注意力(Multi-Head Attention):Transformer模型中的自注意力机制可以被扩展为多个并行运行的注意力头。每个注意力头都会学习到不同的表示空间,从而捕捉不同层次和角度的语义信息。多头注意力机制能够提高模型的泛化能力和抗噪能力,使模型能够更好地处理复杂的语义关系。
- 基于位置编码的序列建模:由于Transformer模型没有像RNN那样显式地保留序列中的位置信息,为了让模型能够对序列进行建模,Transformer引入了位置编码(Positional Encoding)。位置编码是一种将序列中的每个位置与特定的编码向量相关联的方式,使得模型可以区分不同位置的单词