天天看點

Serialized Multi-Layer Multi-Head Attention for Neural Speaker Embedding閱讀筆記

主要看模型方法

Abstract

提出一個串行多層多頭注意力針對neural speaker embedding,之前是将一幀的特征聚集起來進行表示。我們提出利用堆疊式的self-attention機制的分層架構獲得更精細的特征。串行注意力機制包含一堆self-attention子產品,多層堆疊可以學出更多有差別的embedding。

1 Introduction

2 Attention in Neural Speaker Embedding

Neural speaker embeddings是使用DNNs提取的語音話語的固定維表示,x-vector使用最廣泛。在x-vector中,temporal aggregation用于将frame-level features轉換為單個固定次元向量。全連接配接層用于将話語級别特征映射到說話人特征。但是某些frames對于辨識說話者是更獨特、更重要的相比于其他幀。(It is believed that),不是給每一幀配置設定相同的權重,而是經常應用注意力機制。

2.1 Statistics pooling

設 h t h_t ht​是frame processor network的輸出的向量,通過statistics pooling,計算 h t h_t ht​沿着時間軸的均值和方差

μ = 1 T ∑ t = 1 T h t \mu = \frac 1 T \sum _{t=1} ^{T} h_t μ=T1​t=1∑T​ht​

σ = 1 T ∑ t = 1 T h t ⋅ h t − μ ⋅ μ \sigma = \frac 1 T \sqrt{\sum _{t=1}^{T}h_t\cdot ht -\mu \cdot \mu} σ=T1​t=1∑T​ht​⋅ht−μ⋅μ

. . .表示每個元素乘法,element-wise multiplication

2.2 Attentive statistics pooling

2.3 self-attentive pooling

3 Serialized Multi-head Attention

介紹所提出的串行多層多頭注意力機制。由三個主要的stage組成:a frame-level feature processor, a serialized attention mechanism, and a speaker classifier。

frame-level feature processor: 使用TDNN提取進階特征。

圖1的中間部分,一個序列化的注意機制被用來将可變長度的特征序列聚合成一個固定次元的表示。

圖1的頂部是前饋分類層。類似于xvector,整個網絡被訓練成将輸入序列分類成說話者類别。

Serialized Multi-Layer Multi-Head Attention for Neural Speaker Embedding閱讀筆記

3.1 Serialized attention

serialiuzed attention機制由N個相同的層堆疊而成,每層由兩個堆疊一起的子產品組成,self-attention module和feed forward module。每個子產品周圍使用residual connection。在兩個子產品之前使用歸一化。

我們建議使用堆疊的self-attention,以串行的方式将資訊從一層聚合并傳播到下一層,而不是并行的multi-head attention。

最初的multi-head attention,輸入序列被分成幾個稱為頭的同質子向量。然而,更深的架構增加了特征表達能力,可以在不同級别學習和聚合更多的特征。本文提出的serialized attention mechanism中,self-attention以串行的方式執行,允許模型從更深的層中聚合具有時間上下文的資訊。

3.2 Input-aware self-attention

Serialized Multi-Layer Multi-Head Attention for Neural Speaker Embedding閱讀筆記

考慮到均值和标準差能捕捉整個話語的資訊和語音動态,我們使用statistics pooling

輸入序列 [ h 1 , h 2 , . . . , h T ] [h_1, h_2,...,h_T] [h1​,h2​,...,hT​] 用 h t ∈ R d h_t \in R^d ht​∈Rd , T T T是輸入sequence的長度,q的擷取

q = W q g ( h t ) q= W_qg(h_t) q=Wq​g(ht​)

g ( . ) g(.) g(.)是2.1節中說明的statistics pooling,用來計算 [ μ , σ ] [\mu ,\sigma] [μ,σ],

k t = W k h t k_t=W_kh_t kt​=Wk​ht​

3.3 Serialized multi-head embedding

feed-forward module:包括兩個線性變換,中間一個R二LU激活

F F W ( h ) = W 2 f ( W 1 h + b 1 ) + b 2 FFW(h)=W_2f(W_1h+b_1)+b_2 FFW(h)=W2​f(W1​h+b1​)+b2​

串行注意力機制的embedding被送入一個全連接配接層和一個标準softmax層,使用交叉熵損失進行反向傳播。

4.Experiment

5 Results

6 Conclusion

繼續閱讀