机器学习2021-Transformer

Transformer

sequence-to-sequence model,输入和输出的长度没有固定关系

应用:

  • Speech Recognition
  • Machine Translation
  • Speech Translation
  • Text-to-Speech
  • chatbot,question+context—>seq2seq—>answer
  • syntactic parsing(文法剖析)
  • muti-label classification:同个东西可以属于多个classes,机器自己决定output sequence的长度
  • Object Detection(框出图片中的物件)

实现:

  • Input sequence—>Encoder—>Decoder—>output sequence

Encoder:

给一排向量,输出一排向量

RNN,CNN都可以做到,但Transformer’s Encoder是self-attention

  • 内部架构:

    • 结构:

    • 这里的Add&Norm指的是Residual+Layer Normalization

    • 因为self-attention是不包含位置信息的,所以要另外增加一个positional encoding

    • Input Embedding的作用是将离散的符号转换为可以用于模型处理的连续数值向量

    • multi-head attention 是对 self-attention 的扩展和增强,使得模型能够捕捉到不同类型的特征和关系

    • 里面有n个Block

    • Block里又有多层layer,做self-attention

    • self-attetion的输出会和输入做一个residual connection

    • 再做一个layer normalization,对同一个feature同一个example的不同dimension去计算μ和σ

Decoder:Autoregressive(AT)

例子:语音识别

  • 结构:
    • 接收Encoder和向量输入,产生一个概率的distribution,再取max
    • 内部结构中的self-attetion—>masked self-attention,因为Decoder是逐个产生输出的,不是一次性的输入,所以需要masked
    • 增加END这一特殊符号来表示输出停止
  • NAT:
    • 如何决定NAT的输出长度?
      • 用另外一个predictor进行预测
      • 输出一个非常长的结果,不看END后的内容
    • 优势:是parallel的,速度快,并且可以控制输出长度
    • 劣势:效果不如AT

Encoder-Decoder:

  • Cross-Attention:

    • 原始情况:把Encoder最后一层输出交给Decoder作为输入。实际上,也可以把Encoder的中间层输出当作Decoder的输入。

    • 作用:Decoder在生成每个输出时参考Encoder的输出序列(输入序列的编码信息),从而结合两个不同序列的信息生成更准确的输出

    • 举例说明:在机器翻译任务中:

      • Encoder 对源语言(例如:“I love apples”)进行编码,得到每个词的向量表示。
      • Decoder 在生成目标语言时,例如在生成“我爱苹果”中的“苹果”时,Decoder不仅会参考之前生成的词“我爱”,还会通过cross attention查阅Encoder对“apples”的编码,从而生成对应的目标词“苹果”。

Training:

  • Teacher force: using the ground truth as input
    • 输出做minimize cross entropy

Tips:

  • Copy Machanism:
    • Decoder不需要完全创造输出,可以从输入里复制部分内容作为输出
    • 例如chat-bot,摘要
  • Guided Attention:
    • 通常通过加入一个额外的损失项来实现,这个损失项迫使模型的注意力权重矩阵朝着一个目标结构分布
    • 增强对齐能力,应用于机器翻译或语音合成
  • Beam Search:
    • 核心思想是在每一步生成时,保留固定数量的最有希望的候选路径。然后,继续在这些候选路径的基础上生成下一个单词。
    • 可以避免因局部决策错误导致生成整体质量下降的问题。
    • 应用:机器翻译,文本生成,语音识别
  • Sampling:
    • 在序列生成任务中,模型通常会为每个生成步骤输出一个概率分布(如词汇表中每个单词的概率)。Sampling的过程就是根据这个概率分布进行随机采样,而不是总是选择最可能的(即最高概率)的输出。
    • 避免模型太确定,生成多样化的输出
    • 应用:对话生成,文本生成,开放域生成任务
  • Optimizing Evaluation Metrics(优化评估指标):
    • 评估指标衡量的是生成序列与参考序列之间的相似度或准确性,但它们往往是离散的,不可微分,不能直接用于模型的损失函数计算。评估指标如 BLEU 和 ROUGE 更关注生成的语义准确性和句子的连贯性。
    • 所以往往采取RL(强化学习)来优化指标
  • Scheduled Sampling
    • 在模型训练期间,模型总是使用真实的目标序列作为输入,但在推理阶段,模型必须依赖自己生成的输出作为后续步骤的输入。这种训练和测试的不一致叫做:Exposure bias
    • 核心思想是在训练过程中,逐渐将模型自身生成的输出真实的目标序列混合,作为下一步的输入。从而,模型可以更好地适应推理阶段的生成方式,缓解Exposure bias。

机器学习2021-Transformer
http://example.com/2024/10/27/机器学习入门/机器学习2021-Transformer/
作者
jhxxxxx
发布于
2024年10月27日
许可协议