AI解剖课堂 · Part 5 彻底搞懂注意力

第 48 章 先除再 Softmax

Q. 相关度分数直接做 Softmax 不行吗?为什么偏要先除一下?

  1. 第 47 章里“学校”打的分是 2、−1、3、1。咦?这和第 14 章的分数 3、2、1、−1 是同样的几个数。
  2. 直接做 Softmax,结果和第 14 章一模一样:去 65.7%、我 24.2%、学校 8.9%、今天 1.2%。
  3. 可是注意力在这之前还多做一步:把分数除以 √d。d 是 Q、K 向量的格数。
  4. 我们的例子是 2 格,所以除以 √2,约 1.41。2 变成 1.41,−1 变成 −0.71,3 变成 2.12,1 变成 0.71。
  5. 用除过的分数做 Softmax:去 55.7%、我 27.5%、学校 13.5%、今天 3.3%。没有刚才那么集中了。
  6. 为什么要除?格数一多,点积就会变大。用 128 格的向量试试,分数变成 20、−14 这么大,一个词几乎拿走 100%。
  7. 这么集中的话,分数稍微变一点结果也不动,训练就学不好(第 21 章)。除以 √128 ≈ 11.3,又能分得匀一些了。
  8. 现在“学校”看每个词的比例定下来了。下一章按这个比例把 Value 混在一起。

本章小结