公司动态
Transformer笔记
参考视频1. 【《Attention is all you need》论文解读及Transformer架构详细介绍】 https://www.bilibili.com/video/BV1xoJwzDESD/?share_sourcecopy_webvd_sourcec0697661320dab63e5710ea1fb58458f2. 【破解transformer第一讲 开篇】 https://www.bilibili.com/video/BV1pRWRzqEVf/?share_sourcecopy_webvd_sourcec0697661320dab63e5710ea1fb58458f历史的最开始规则系统计算机科学兴起时让编程语言编译器的开发大获成功类似于编译器机器翻译流程包含了句法分析、语义分析、目标语言生成。缺点在于语法树会呈指数级的维度爆炸而且语义的理解是开放的不是可以用有限的规则定义的。统计语言从还原论到生成论的转折。规则系统的标准是是否符合规则统计语言的标准是是否更有可能在真实世界中出现不再依赖人写的规则而是由真实数据决定。构建一个生成器拟合世界的偏好。最简单的生成器元素相互独立但是无法调节偏好。最复杂的生成器元素相互依赖但训练搜索比较困难。马尔可夫模型随机试验可以独立、反复地进行并且实验条件相同是静态概率。而如果抛一枚“沙子硬币”每抛一次会有磨损每次结果会影响下一次实验条件是动态概率现实生活中更为常见。马尔可夫模型是最简单的动态概率模型。优点1. 训练、推理、评分非常高效2. 可建模上下文依赖偏好缺点1. 当前步只依赖上一步无长程依赖虽然可以扩展到二阶、三阶但阶数越高训练难度越大。2. 状态空间必须事先给定对意外小概率事件的处理导致状态数膨胀、数据稀疏。3. 静态生成器一旦确定了输入偏好演化与输出无关。无法达成(生成器偏好 - 生成器输出 - 真实环境 - 生成器偏好)这样的闭环。马尔可夫模型重构语音识别问题给定一个语音A1寻找句子W1满足P(WW1|AA1)概率最大但直接学习P(W|A)会很困难1. 对齐困难语音与文字长度完全不同一句话可以快说、慢说。2. 多音字换个角度看这个问题利用贝叶斯公式P(W|A) P(A|W)P(W)/P(A)❓P(W)/P(A)到底是什么P(A)表示世界对声音的偏好有规律的声音 杂乱无章的声音P(W)表示世界对句子的偏好I want to eat to want I eat因此给定语音A1P(AA1)是不变的与W无关P(W|A) 正比于 P(A|W)P(W)重构后语音识别被拆成两个问题1. 语言模型建模 P(W)判断句子在语言世界是否自然2. 声学模型建模 P(A|W)判断哪个句子最有可能发出给定的语音A❓为什么P(W|A)比P(A|W)难P(W|A)给定一段语音一个发音会对应很多字有很多可能而P(A|W)给定一段文字它的发音是基本上可以确定的声学模型P(A|W)可以直接数频率吗不可能语音是连续的可以直接建立W - A的映射吗不可能对齐困难映射不唯一❗词跟语音之间应该还有一个中间变量认为有一个抽象的概念发音路径和语音变量应该是一一对应的发音路径的一些特点发音路径是不可观测的隐变量发音路径的转移是有规律的隐马尔可夫模型缺点1. MM、HMM固有问题MM、HMM缺点1. 当前步只依赖上一步无长程依赖虽然可以扩展到二阶、三阶但阶数越高训练难度越大。2. 状态空间必须事先给定对意外小概率事件的处理导致状态数膨胀、数据稀疏。3. 静态生成器一旦确定了输入偏好演化与输出无关。无法达成(生成器偏好 - 生成器输出 - 真实环境 - 生成器偏好)这样的闭环。2. 发音字典仍然属于规则系统到此为止还是数据驱动为主规则系统为辅的架构端到端的起点RNN循环神经网络希望有一个模型输出能影响下一时刻的输入优点1. 突破了有限空间线性偏好演化2. 输入、偏好、输出有动态交互缺点1. 历史有损压缩ht一般不是历史的充分统计量2. 缺乏动态注意力ht只与ht-1、xt有关无法灵活地决定哪些信息重要哪些信息可以忽略3. 偏好与输入输出相互影响RNN训练推理无法并行化必须逐步展开4. 输入输出必须对齐5. 梯度消失、梯度爆炸6. 长序列网络退化《Attention is all you need》AbstractThe dominant sequence transduction models are based on complex recurrent or convolutional neural networks that include an encoder and a decoder. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new simple network architecture, the Transformer, based solely on attention mechanisms, dispensing with recurrence and convolutions entirely.The dominant sequence transduction models 处理序列数据的模型之前的模型1. 基于RNN/CNN2. 使用编码器-解码器3. 使用注意力机制Transformer1. 完全摒弃RNN/CNN2. 继续使用编码器-解码器3. 完全基于注意力机制Introduction BackgroundFNNRNN编码器-解码器结构解码器离C远的位置信息会被稀释所以还有一种结构是每个位置输入C会有遗忘问题会有每个时间步输入对此时刻的输出的重要程度不同的问题注意力机制串行计算效率低的问题Model Architecture(n*d) (n*d)(d*d)相乘得到相似度AV相乘相当于V乘一个权重得到的就是每个词向量带上了上下文信息的新向量怎么区分“我爱水课”和“我要喝水”中的水呢不同的“水”应该是有一些不同的向量的偏移QKV就是用来计算这种偏移的为什么分成多头每个头关注的信息是不一样的Why Self-AttentionSequential Operations 一个序列长度为 n 的输入计算时需要多少步依赖前后关系的串行计算。Maximum Path Length 任意两个输入位置的信息进行交互时需要经过的最长计算步骤层数。第一行自注意力的复杂度生成QKV过程中Q XWq(n*d) (n*d)(d*d)复杂度为n*d*d计算注意力过程中(n*d)(d*n)softmax n*n个元素AV (n*n)(n*d)复杂度为O(n*n*d)O(n*n)O(n*n*d)最终复杂度为O(n*n*d)可以理解为n个词和n个词之间的关系在d维度上第二行RNN复杂度Wxt (d*d)(d*1)Uh(d*d)(d*1) 复杂度为O(n*d*d)可以理解为n个时间步每步在d*d维度上计算第三行CNN复杂度n个位置每个看k个邻居1. 复杂度低2. 并行计算能力3. 具备长距离依赖建模能力每个token可以直接和任意的token建立联系