动机

  • 想要获取一组(数量不定)向量中的整体信息,表示为一个单独向量
  • 不同时候,关注的重点和当前的任务相关

    定义

    给定一组 values Attention - 图1和一个 query Attention - 图2,attention 是 value 的加权和,权重依赖于 query

  • 权重和可以理解为一种有选择的总结

  • 可以将含任意多个向量的集合转换为一个单独的向量

    基本框架与流程

    流程

  1. 利用 query 计算每个 value 的 attention score(有多种方法)

Attention - 图3

  1. 计算 attention distribution

Attention - 图4

  1. 计算 attention output (context)

Attention - 图5

基本组件

读取器 读取原始数据并转换为分布式表示
存储器 存储读取器读取的特征向量/事实序列
利用程序 利用存储器的内容顺序执行任务,每个时间步聚焦于部分存储器元素的内容

计算 attention score

  • dot-product

Attention - 图6

  • multiplicative attention

Attention - 图7

  • additive attention

Attention - 图8

优点

  • 解决了 seq2seq 的瓶颈问题
  • 有助于缓解梯度消失;相当于建立了 shortcut
  • 提供了可解释性:可以观察到模型在关注些什么