前言
通过这篇文章,你可以学习到Tensorflow实现MultiHeadAttention的底层原理。
一、MultiHeadAttention的本质内涵
1.Self_Atention机制
MultiHeadAttention是Self_Atention的多头堆嵌,有必要对Self_Atention机制进行一次深入浅出的理解,这也是MultiHeadAttention的核心所在。
Self_Attention并不直接使用输入向量,而是先将其进行映射,使得输入向量在每个位置上产生一个query和context,context充当字典。在context的每个位置都提供一个key和value向量。
query:尝试去获取某类信息的序列。
context:包含key序列和value序列,是query感兴趣的内容。
最终输出的形状将与query序列相同。
一个常见的类比是,这种操作就像字典查询。一个模糊的、可区分的、矢量的字典查询。
如下是一个普通的 python 字典类型数据,有 3 个键和 3 个值,并被传递给一个query——"What color is it ?"。这个query会与key="color"最契合,最终得到查询结果value="blue"
。
query是你要尝试去找的东西。key表示字典里有哪些信息,而value就是这些信息。当你在正则字典中查找一个query时,字典会找到匹配的key,并返回其相关的value。这个查询要么有一个匹配的键,要么没有。你可以想象一个模糊的字典,其中的键不一定要完全匹配。如果你在上面的字典中查找 query—"What species is it ?",也许你希望它返回 key="type",value="pickup",因为那是与query最匹配的key和value。
注意力层就像这样做了一个模糊查找,但它不仅仅是在寻找最好的key,而是根据query与每个key的匹配程度来组合这些value。


最低0.47元/天 解锁文章
1851

被折叠的 条评论
为什么被折叠?



