Beijing: ☀️ 🌡️+32°C 🌬️↓4km/h

写在前面

Attention 解决的问题:

  • 输入是一排向量
  • 输入的 sequence 的长度不固定

模型输入:

  • 输入是一句文字
    • 将文字可以适用 One-hot Encoding 编码
    • Word Embedding 编码句子
  • 输入是一段声音信号
    • 确定一个窗口分割声音讯号,一般是 25ms,每次向右移动 10ms
    • 再将声音信号变为向量
  • 图(graph)也是一个一堆向量组成
  • 分子可以表示为 graph

模型输出:
  • 每个向量都有对应的 label
    • 输入输出等长
    • 词性标注
    • graph 中的商品推荐或者分子特性预测
  • 整个 sequence 输出一个 label
    • 情感分析 sentiment analysis
    • 语音辨识
    • 分析一个分子结构的特性
  • 输出不等长的 seq,也就是 seq2seq
    • 翻译
    • 对话
    • 语音辨识

FC 对词性标注问题思考:

  • 首先考虑的是输入单个词直接给你某个词对应的词性,但在不考虑上下文的情况下,输入两个 saw 给出的是相同的含义
  • 设置一个 window,每次输入再添加前后五个词的输入,如果输入是很长的一个 sequence,带来的问题就是必须开最长 seq 的 window 才能覆盖所有 seq,可能会导致过拟合

Attention is all you need

对于一个 sequence 的输入,我们先在此计算两个向量的相关程度:

得到$a^1$和其它向量的注意力分数(attention score):

最终向量的分数越高,权重加和以后的值就越接近:

矩阵运算角度理解 attention 的 input 到 output:

多头注意力机制(multi-head attention)

上述的 self-attention 没有位置的资讯,根据下游任务的需要,考虑添加位置资讯

self-attention 应用场景

RNN 与 Self-attention 区别:

Self-attention for graph:构造好的 graph 实际已经包含节点之间的连接关系,在计算 Attention-matrix 的时候可以只考虑已经连接的节点之间的 attention 分数

Self-attention 变形,主要目的是减少运算量,提高模型表现[2011.04006] Long Range Arena: A Benchmark for Efficient Transformers

Transformer

Encoder

Decoder

  • Decoder 前一时刻以及的输出将作为下一时刻的输入,输入 Decoder 来生成下一个词
  • 当掩盖住 Decoder 中间的Add Norm & Multi-head Attentioin,和 Encoder 部分几乎保持一致

Masked self-attention

  • 在 Decoder 生成 sequence 的过程中,并没有$a^3,a^4$产生,也就相当于之后的 token 被掩盖住了,因此只需要关注之前的 seq
  • Decoder 必须自己决定自己输出的长度
    • 对于 auto regressive 类型需要一个比较特殊的 token–END,当 Encoder 输出到 END 时,表示结束

Decoder - Non Autoregressive(NAT)

  • How to decide the output length for NAT decoder?
    • Another predictor for output length
    • Output a very long sequence, ignore tokens after END
  • Advantage: parallel, controllable output length
  • 劣势:一般表现比 AT 的 decoder 效果略差

Encoder 与 Decoder 连接

Cross Attentiion

Training

该图是一个语音辨识的图例,我们希望对输入的语音进行辨识:

  • Decoder 的输入是正确答案
  • 当 decoder 接收到 begin 这个 token 的时候,期望 output 第一个输出是“机”,正确的答案将被表示为整个词典关于“机”这个字的 one-hot 表示
  • 而 decoder 的第一个位置的输出通过 softmax 将被表示为一个机率分布,优化的目标就是该词于正确答案的交叉熵
  • 整体模型优化目标是整个 seq 的交叉熵的和最小

在实际的测试集中,并没有提供的正确的答案,存在 mismatch

Tips

Copy Mechanism

Guided Attention

一般而言,我们在做语音合成或是语音辨识的时候,attention score 的计算都是从左到右的,因此可以加入一些限制

  • Monotonic attention
  • Location-aware attention
  • seq 的生成基本依赖于计算的注意力分数,假设存在两条 seq 的路径 A 和 B,尽管 A 开始的 attention score 可能相对低一点,但是后期的 attention score 会高,B 路径整个过程都会相对均匀一点
  • 如果按照常规计算最大 attention score 的 seq,称之为 Greedy Decoding
  • 使用 Beam Search 在不同的任务上存在不同的表现,根据任务本身的特性决定,比如语音辨识,答案相对唯一,Beam Search 表现相对较好,当需要发挥一些创造力的任务的时候,也就是答案不唯一的时候,BS 并没有那么适用
  • [1904.09751] The Curious Case of Neural Text Degeneration

Optimizing Evaluation Metrics?

  • 模型在训练的过程中使用的是交叉熵,但是最终模型评分是 BLEU score
  • 交叉熵和 BLUE score 之间没有绝对的相关性,并非交叉熵越低,所对应的 BLUE score 越高
  • 最终模型的选择一般是在 validation set 上 BLEU score 最高的模型
  • BLEU 不能进行微分,无法作为 trianing 过程中的 loss
  • when you don’t know how to optimize, just use reinforcement learning(RL)[1511.06732] Sequence Level Training with Recurrent Neural Networks

Exposure bias

参考文献

  1. 機器學習 2021:自注意力機制 (Self-attention) (上) - YouTube
  2. 機器學習 2021:自注意力機制 (Self-attention) (下) - YouTube
  3. Paper | Attention Is All You Need
  4. Large Language Models, GPT-1 — Generative Pre-Trained Transformer | by Vyacheslav Efimov
  5. Large Language Models, GPT-2 — Language Models Are Unsupervised Multitask Learners | by Vyacheslav Efimov
  6. Large Language Models, GPT-3: Language Models are Few-Shot Learners | by Vyacheslav Efimov
  7. What is Relative Positional Encoding | by Ngieng Kianyew | Medium
  8. Paper | GPT-1 | Improving Language Understanding by Generative Pre-Training
  9. Paper | GPT-2 | Language Models are Unsupervised Multitask Learners
  10. Paper | GPT-3 | Language Models are Few-Shot Learners
  11. OpenAI Blog | GPT-1 | Improving language understanding with unsupervised learning
  12. OpenAI Blog | GPT-2 | Better language models and their implications
  13. OpenAI Blog | GPT-3 Language models are few-shot learners
  14. Dive into deep learning:Attention Mechanisms and Transformers
  15. Attention? Attention! | Lil’Log
  16. The Transformer Family | Lil’Log
  17. The Transformer Family Version 2.0 | Lil’Log
  18. Master Positional Encoding: Part I | by Jonathan Kernes | Towards Data Science
  19. Master Positional Encoding: Part II | by Jonathan Kernes | Towards Data Science
  20. Understanding Rotary Positional Encoding | by Ngieng Kianyew | Jan, 2024 | Medium
  21. Position Information in Transformers: An Overview | Computational Linguistics | MIT Press
  22. Paper | The Impact of Positional Encoding on Length Generalization in Transformers
  23. How to generate text: using different decoding methods for language generation with Transformers
  24. The Illustrated GPT-2 (Visualizing Transformer Language Models) – Jay Alammar – Visualizing machine learning one concept at a time.
  25. Text generation strategies
  26. The Illustrated BERT, ELMo, and co. (How NLP Cracked Transfer Learning) – Jay Alammar – Visualizing machine learning one concept at a time.
  27. A Visual and Interactive Guide to the Basics of Neural Networks – Jay Alammar – Visualizing machine learning one concept at a time.
  28. Generating Human-level Text with Contrastive Search in Transformers 🤗