ASP 论文阅读:Attentive Statistics Pooling for Deep Speaker Embedding

Attentive Statistics Pooling for Deep Speaker Embedding

注意力池化层

Attentive Statistics Pooling for Deep Speaker Embedding

interspeech 2018

参考链接

摘要

In conventional speaker embedding, frame-level features are averaged over all the frames of a single utterance to form an utterance-level feature. Our method utilizes an attention mechanism to give different weights to different frames and generates not only weighted means but also weighted standard deviations. In this way, it can capture long-term variations in speaker characteristics more effectively.

  • 在传统说话人识别中,是对整个帧进行平均;
  • 在本文中,为不同的帧赋予不同的权重;最终生成加权平均值和加权标准差;这样可以捕捉说话人特征的长期变化

引言

In this paper, we propose a new pooling method, called attentive statistics pooling, that provides importance-weighted standard deviations as well as the weighted means of framelevel features, for which the importance is calculated by an attention mechanism.

在本文中,我们提出了一种新的池化方法,称为注意力统计池化,该方法可提供重要性加权标准偏差以及帧级特征的加权平均值,其重要性由注意力机制计算得出。

DNN 常规方法

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对网络的详细描述见论文;

常规 DNN 池化的两个拓展

the use of higher-order statistics and the use of attention mechanisms.

使用统计和使用注意力机制

常规的统计池化层

μ = 1 T ∑ t T h t , (1) σ = 1 T ∑ t T h t ⊙ h t − μ ⊙ μ , (2) \boldsymbol{\mu}=\frac1T\sum_t^T\boldsymbol{h}_t,\text{(1)} \\ \boldsymbol{\sigma}=\sqrt{\frac1T\sum_t^T\boldsymbol{h}_t\odot\boldsymbol{h}_t-\boldsymbol{\mu}\odot\boldsymbol{\mu}},\text{(2)} μ=T1tTht,(1)σ=T1tThthtμμ ,(2)

其中:
( A ⊙ B ) i j = a i j ∗ b i j (A\odot B)_{ij}=a_{ij}*b_{ij} (AB)ij=aijbij

此处即为最简单的求平均值 μ \mu μ,和方差 σ {\sigma} σ

计算表示:将所有时间帧的对应频谱加起来求平均,每个帧和平均值计算得到方差;

注意力机制

It is often the case that frame-level features of some frames are more unique and important for discriminating speakers than others in a given utterance.

通常情况下,某些帧的帧级特征对于区分给定话语中的其他说话者来说比区分说话者更独特和重要。
此处采用的是加性注意力;

加性注意力
W k ∈ R h × k , W q ∈ R h × q , v ∈ R h a ( k , q ) = v T tanh ⁡ ( W k k + W q q ) \mathbf{W}_k\in\mathbb{R}^{h\times k},\mathbf{W}_q\in\mathbb{R}^{h\times q},\mathbf{v}\in\mathbb{R}^h\\a(\mathbf{k},\mathbf{q})=\mathbf{v}^T\tanh(\mathbf{W}_k\mathbf{k}+\mathbf{W}_q\mathbf{q}) WkRh×k,WqRh×q,vRha(k,q)=vTtanh(Wkk+Wqq)
这里:

  • k \mathbf{k} k 是 Key 矩阵中的一个向量。
  • q \mathbf{q} q 是 Query 矩阵中的一个向量。
  • W k ∈ R h × k \mathbf{W}_k \in \mathbb{R}^{h \times k} WkRh×k 是 Key 的权重矩阵。
  • W q ∈ R h × q \mathbf{W}_q \in \mathbb{R}^{h \times q} WqRh×q 是 Query 的权重矩阵。
  • v ∈ R h \mathbf{v} \in \mathbb{R}^h vRh 是一个权重向量。
  • ⁡ tanh ⁡ ⁡\tanh tanh 是非线性激活函数。
  • 此处的 + 是指对应位置相加。

做了一些简化,得到如下形式:
e t = v T f ( W h t + b ) + k e_t=\boldsymbol{v}^Tf(\boldsymbol{Wh}_t+\boldsymbol{b})+k et=vTf(Wht+b)+k
α t = exp ⁡ ( e t ) ∑ τ T exp ⁡ ( e τ ) . \alpha_t=\frac{\exp(e_t)}{\sum_\tau^T\exp(e_\tau)}. αt=τTexp(eτ)exp(et).
μ ~ = ∑ t T α t h t . \tilde{\boldsymbol{\mu}}=\sum_t^T\alpha_t\boldsymbol{h}_t. μ~=tTαtht.

以上三个公式:

  • v T {v}^T vT 为权重向量;此处是对每个帧的分数进行计算,即在池化时每个帧分得的权重;
  • 通过 softmax 进行归一化;
  • μ ~ \tilde{\boldsymbol{\mu}} μ~ 是加权后的均值;

In this way, an utterance-level feature extracted from a weighted mean vector focuses on important frames and hence becomes more speaker discriminative.

这样,从加权均值向量中提取的话语级特征将重点放在重要的帧上,因此变得更具说话人的辨别力。

注意力池化

Hence, it would make sense to consider a new pooling method, attentive statistics pooling, which produces both means and standard deviations with importance weighting by means of attention, as illustrated in Figure 2.

因此,考虑一种新的合并方法,即注意力统计合并是有意义的,该方法通过注意力产生具有重要性权重的均值和标准差,如图 2 所示。在这里插入图片描述

注意:池化层的输出是将均值和方差拼接在一起进行输出;

方差的计算依然和之前类似,不同的是此处换成了加权后的均值 μ ~ \tilde{\boldsymbol{\mu}} μ~
σ ~ = ∑ t T α t h t ⊙ h t − μ ~ ⊙ μ ~ , \tilde{\boldsymbol{\sigma}}=\sqrt{\sum_{t}^{T}\alpha_{t}\boldsymbol{h}_{t}\odot\boldsymbol{h}_{t}-\tilde{\boldsymbol{\mu}}\odot\tilde{\boldsymbol{\mu}}}, σ~=tTαththtμ~μ~ ,

四种方法对比

评估的四种方法:

  • average:对帧做简单的平均然后输出;
  • attention:每个帧都有权重,最后输出加权后的均值;
  • statistics:对帧做平均和方差进行拼接后输出;
  • attentive statistics:对帧做加权作为平均,将加权后的平均作为方差的计算因子,最后拼接均值和方差;

1. Average Pooling

  • 描述:对所有时间帧的特征做简单的平均,然后输出。
  • 公式 μ = 1 T ∑ t = 1 T h t \mu = \frac{1}{T} \sum_{t=1}^T h_t μ=T1t=1Tht
  • 特点:简单直接,计算量小,适用于特征变化不大的数据。

2. Attention Pooling

  • 描述:为每个时间帧分配权重,然后输出加权后的均值。

  • 公式
    e t = v T f ( W h t + b ) + k e_t = \boldsymbol{v}^T f(\boldsymbol{Wh}_t + \boldsymbol{b}) + k et=vTf(Wht+b)+k

    α t = exp ⁡ ( e t ) ∑ τ = 1 T exp ⁡ ( e τ ) \alpha_t = \frac{\exp(e_t)}{\sum_{\tau=1}^T \exp(e_\tau)} αt=τ=1Texp(eτ)exp(et)

    μ ~ = ∑ t = 1 T α t h t \tilde{\boldsymbol{\mu}} = \sum_{t=1}^T \alpha_t \boldsymbol{h}_t μ~=t=1Tαtht

  • 特点:通过注意力机制对重要帧进行加权,更加灵活,适用于长序列数据。

3. Statistics Pooling

  • 描述:对所有时间帧的特征做平均和方差计算,并将其拼接后输出。

  • 公式
    μ = 1 T ∑ t = 1 T h t \mu = \frac{1}{T} \sum_{t=1}^T h_t μ=T1t=1Tht

    σ = 1 T ∑ t = 1 T h t ⊙ h t − μ ⊙ μ \sigma = \sqrt{\frac{1}{T} \sum_{t=1}^T h_t \odot h_t - \mu \odot \mu} σ=T1t=1Ththtμμ

  • 特点:同时考虑了均值和方差,提供了更全面的特征信息。

4. Attentive Statistics Pooling

  • 描述:对每个时间帧进行加权计算得到均值,然后将加权后的均值作为方差的计算因子,最后拼接均值和方差输出。

  • 公式
    e t = v T f ( W h t + b ) + k e_t = \boldsymbol{v}^T f(\boldsymbol{Wh}_t + \boldsymbol{b}) + k et=vTf(Wht+b)+k

    α t = exp ⁡ ( e t ) ∑ τ = 1 T exp ⁡ ( e τ ) \alpha_t = \frac{\exp(e_t)}{\sum_{\tau=1}^T \exp(e_\tau)} αt=τ=1Texp(eτ)exp(et)

    μ ~ = ∑ t = 1 T α t h t \tilde{\boldsymbol{\mu}} = \sum_{t=1}^T \alpha_t \boldsymbol{h}_t μ~=t=1Tαtht

    σ ~ = ∑ t = 1 T α t h t ⊙ h t − μ ~ ⊙ μ ~ \tilde{\boldsymbol{\sigma}} = \sqrt{\sum_{t=1}^T \alpha_t \boldsymbol{h}_t \odot \boldsymbol{h}_t - \tilde{\boldsymbol{\mu}} \odot \tilde{\boldsymbol{\mu}}} σ~=t=1Tαththtμ~μ~

  • 特点:结合了注意力机制的灵活性和统计池化的全面性,能够捕捉重要信息和全局统计特征。

训练

数据处理

  • 加噪
  • 混响
  • 语音编码器

训练集和测试集

训练集测试集
SRE0410, Switchboard, Fisher EnglishSRE12
VoxCeleb-dev(1,206 人)VoxCeleb-test(40 人)

评估

NIST SRE 2012

在这里插入图片描述

  • 与仅使用均值的池化相比,增加注意力都更胜一筹;
  • 标准差的添加甚至比注意力的添加更有效;(对比 statistics、attention)
  • 本文提出的最好;
  • 但是除了 EER,表现甚至不如 i-vector;
    • 这似乎是因为SRE12CC2任务由长话语试验组成,其中测试话语的持续时间从30秒到300秒不等,多注册话语的持续时间超过300秒。

在这里插入图片描述

  • 可以看到 i-vector 在长语音时更佳;
  • 其他时间本文提出的模型都取得了最佳效果;

VoxCeleb

在这里插入图片描述

  • 本文提出的模型取得了最好效果;
  • 和前面数据集的差异应该是当前数据集语音较短,因此均优于 i-vector;

结论

本文提出的方法取得了很大的进步;但是在长语音判断上,i-vecor 依然效果最好;

2022 年一种更好的池化层取代了该池化方法:Multi-head Attention

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值