transformer怎么处理语音和文本embeding维度失衡问题
Author: Xin Pan
Date: 2021.10.28
想起之前的一个问题,在语音识别中其实一个很明显的问题就是输入音频提了特征(Feat)以后维度会比较高,但是文本因为就那么些字,维度会比较少。那么它们之前在decoder上是如何产生关联关系的呢?
假设现在的特征是Feat=[152,2,512]=[特征长度,batch,特征深度],文本的tgt=[60,2,512]=[文本长度,batch,特征深度]
乍看它们的维度不一样,没法整,但是在decoder里边,q=target,k,v都等于=feat,按着self-attention和multi-head-attention里边计算的时候
a
t
t
e
n
=
s
o
f
t
m
a
x
(
Q
K
T
d
k
)
V
atten=softmax(\frac{QK^T}{\sqrt{d_k}})V
atten=softmax(dk
QKT)V
Q和K的转置计算完之后等于是每个文字的每维特征和音频每个特征中每维特征之间的相似性关系。还是那个feature_map。只不过两个维度是文字和隐空间特征之间的相似性关系。如果不明白回想transformer那个公式就可以了。
网上截的图,就像这个纵轴是每个字的维度,横轴是音频特征(隐空间)的维度,这表明的就是它们的相似性。应该就是这样。
今天总结并思考这个问题我觉得我把transformer最后一点不理解的地方也理解了,真的是每次思考都能有更深的见解,每次都能更加的深入。
Reference
- https://blog.csdn.net/moxibingdao/article/details/109127507 图片来自这里