赞
踩
关于这个的介绍网络上非常非常多,我用个通俗的例子解释下.
整个注意力机制处理下来,词嵌入所表达的句子矩阵维度是不变的. 比如有一句话,3个词,每个词用10个维度向量表达.进去之前(3,10),transfomer以后还是这个维度.
q和k合起来干一个事情,就是搞明白这3个词之间彼此之间的权重关系,那怎么干了:
这么一通操作,就得到了一个(3,3)的矩阵,就好像统计的协方差矩阵 然后再看v
然后再说下,这个qkv针对每个字变化,还是针对每个句子变化.
事实上,qkv不是针对句子和字来设定的,而是一个头不变. 比如词嵌入是700维的. 那么首先产生qkv的就是700*700维度,他们在一个头里面不变,和句子和字变了无关,类比于卷积核,全局共享.
计算一下注意力机制的参数量更明白这点: