出自 [INTERSPEECH 2020]: ECAPA-TDNN: Emphasized Channel Attention, Propagation and Aggregation in TDNN Based Speaker Verification
ECAPA-TDNN 模型结构如上, 主要模块有:
1. SE-Res2Block: Res2Net Block + SE block;
2. Multi-layer feature aggregation and summation;
3. Attentive statistic pooling;
其中:
1. SE-Res2Block: 主要借鉴了 CV 领域比较新且被证明 successful 的结构, 最主要的目的就是"在一层 NN Layer 中尽可能的学习更多的内容", 这里就包括了"多尺度的特征(注意双引号)"以及 channel 间特征的 diversity(用原文中的词叫 channel interdependencies).
Res2Net block: 在常见的 TDNN 结构中(TDNN, Extended-TDNN 等), 模型的中间层 NN Layer 都是在对上一层用不同的 filter 做同样的操作, 而 Res2Net block 是用不同的 filter 对不同的输入进行计算, 所以这里的多尺度更多的是因为输入的多样带来的, 关于 Res2Net 的细节, 感兴趣的朋友可以移步 Res2Net Blog.
SE block: 然后就是 Channel interdependencies, 最近发现在好多任务中应用这个想法有提升了, 在 ECAPA-TDNN 不仅在 SE Block 中用到, 在 Pooling 层也有, 比较简单.
2. Multi-layer feature aggregation and summation: 这个模块的 motivation 说的是 more shallow feature maps --> more robust speaker embeddings, 意思就是说底层更细粒度的特征, 可以帮助得到更加鲁棒的 speaker embedding, 这样说得通而且也没问题. 其实就是借鉴了 ResNet 和 DenseNet 的思路, 找了一个比较合理的解释罢了.
3. Attentive statistic pooling: channel dependent 和之前的 channel attention 一样, 这里简单说下此 blog 中没提到的 context dependent, 在最原始的 statistic pooling 中, 没有关注时间维度各 frame 的重要性, 因此后面提出了 Soft self-attention, 该想法的依据可以解释为"对每一个人, 他说的特定的内容, 在声纹上是非常独特的", 举个例子, 张三说的 "你好" 这两个字就非常好辨别.
以上, 个人总结观点, 欢迎交流.