A Time Delay Neural Network with Shared Weight Self-Attention for Small-Footprint Keyword Spotting浅析

文章:A Time Delay Neural Network with Shared Weight Self-Attention for Small-Footprint Keyword Spotting

中心思想:通过共享自注意力机制的权重,在维持性能不变的情况下,减少模型参数
本文的创新点:一是,用前馈神经网络代替在注意力机制中常用的回归神经网络,加速模型计算;二是,自注意力机制中的三个矩阵进行参数共享,减少模型参数
文章中提到的技术:TDNN、self-attention、SWSA(Shared-Weight Self-Attention)
TDNN技术:获取序列的局部特征
self-attention技术:用三个不同的权重矩阵将特征映射到不同空间中、获取序列的全局特征
shared-weight self-attention技术:用同一个权重矩阵将特征映射到同一空间中、减少模型参数
文章中提到的模型结构如图所示:
A Time Delay Neural Network with Shared Weight Self-Attention for Small-Footprint Keyword Spotting浅析_第1张图片
模型结构:第一层TDNN-SUB(TDNN降采样层),实现方法:采用滑动窗的方式,在输入层矩阵Tin上设置一个宽度W为3(通常根据第一层拼帧结构决定)的滑动窗,当步长K超过1时(步长不易超过窗长),达到了降采样的效果,维度Dout减少为(Tin − w + 1)/k向上取整
A Time Delay Neural Network with Shared Weight Self-Attention for Small-Footprint Keyword Spotting浅析_第2张图片
第二层是SWSA(权重共享的自注意力机制),也是本文的重点,详细结构见F1(a)右手边虚框
第一步:输入为U,共享矩阵为W,Vi=WU,Vi为自注意力机制的输入,Vi是通过自注意力机制将输入特征U映射到某一空间得到的特征
第二步:由于权重共享,原来的Vq×Vk也就是现在的V×(V转置)即矩阵与矩阵本身点乘;
第三步:第二步得到的矩阵进行scale操作(scale操作的目的:是为了防止矩阵上的值累加到很大的值,梯度更新过程中出现梯度消失的现象)通常是将矩阵上的值除以矩阵维度的开方;
第四步:计算注意力得分,经过softmax层,对矩阵的每一行进行一个softmax规整,即矩阵的每一行的值加和为1;
第五步:将注意力得分与V点乘得到新的矩阵输出后紧跟RELU和LayerNorm层,最终得到SWSA层的输出
第三层和第四层是TDNN层
第五层:globalAverage层:CNN中有类似的全局平均池化层
在这边文章中未提及,但通过后面的实验章节推测,是权重矩阵每一列求平均值最终输出一个与当前层输入矩阵相同维度的向量
下面是权重共享后的self-attention公式:
A Time Delay Neural Network with Shared Weight Self-Attention for Small-Footprint Keyword Spotting浅析_第3张图片
multi-head self-attention版本
A Time Delay Neural Network with Shared Weight Self-Attention for Small-Footprint Keyword Spotting浅析_第4张图片
其中i的值等于共享权重矩阵的个数,当i为1是就是上述描述的权重共享self-attention机制;当i大于1是此时的共享权重是i个(类似于CNN有i个卷积核的概念),当i大于1时,权重矩阵的维度就会缩减为原来的1/i,通常为整数,其他步骤与上述的self-attention步骤一致,在self-attention输出层后增加一层将muli-head self-attention的输出拼接到一起,乘一个矩阵得到与i为1时相同大小的矩阵
A Time Delay Neural Network with Shared Weight Self-Attention for Small-Footprint Keyword Spotting浅析_第5张图片

你可能感兴趣的:(A Time Delay Neural Network with Shared Weight Self-Attention for Small-Footprint Keyword Spotting浅析)