任务
生成utterance-level embedding
做法
将音频语句看成一个文档, 可以被分成若干段和帧(看成是文档中的句子和词语)。 先得到segments representation后在综合起来得到utterance representation。
Hierarchical attention
Frame-level encoder and Attention
假设输入的Mel谱被分为N段:
S
∈
R
M
N
∗
L
=
{
S
1
,
S
2
,
.
.
.
,
S
N
}
S \in \mathcal R^{MN*L}=\{S_1,S_2,...,S_N\}
S∈RMN∗L={S1,S2,...,SN}.
每一段为:
S
i
∈
N
M
∗
L
=
{
x
i
1
,
.
.
.
x
i
,
M
}
S_i \in \mathcal N ^{M*L}=\{x_{i1},...x_{i,M}\}
Si∈NM∗L={xi1,...xi,M}, 包含M个L维的声学特征向量,
x
i
,
t
∈
R
1
∗
L
x_{i,t} \in \mathcal R^{1*L}
xi,t∈R1∗L.
在frame-level encoder中, 每个段先经过各自的1-D CNN , 再经过一个双向的GRU。
S
i
′
=
C
N
N
(
S
i
)
h
→
i
=
G
R
U
→
(
S
i
′
)
h
←
i
=
G
R
U
←
(
S
i
′
)
h
i
=
[
h
→
i
,
h
←
i
]
=
{
h
i
,
1
,
.
.
.
h
i
,
M
}
S_{i}^{'}= CNN(S_i)\\ \overrightarrow h_i = \overrightarrow {GRU} (S_{i}^{'})\\ \overleftarrow h_i = \overleftarrow {GRU}(S_{i}^{'})\\ h_i =[\overrightarrow h_i, \overleftarrow h_i]=\{h_{i,1},...h_{i,M}\}
Si′=CNN(Si)hi=GRU(Si′)hi=GRU(Si′)hi=[hi,hi]={hi,1,...hi,M}
在frame-level attention层, 先用两层的全连接层将
h
i
h_i
hi转成score vector
z
i
z_i
zi, 然后计算注意力权重:
α
i
,
t
=
e
x
p
(
z
i
,
t
)
∑
t
=
0
M
e
x
p
(
z
i
,
t
)
z
i
,
t
=
R
e
l
u
(
h
i
,
t
W
i
,
0
+
b
i
,
0
)
W
i
,
1
W
i
,
0
∈
R
E
∗
E
,
b
i
,
0
∈
R
1
∗
E
,
W
i
,
1
∈
R
1
∗
E
共
享
参
数
A
i
,
t
=
α
i
,
t
∗
h
i
,
t
\alpha_{i,t} = \frac{exp(z_{i,t})}{\sum _{t=0}^M exp(z_{i,t})}\\ z_{i,t} = Relu(h_{i,t}W_{i,0}+b_{i,0})W_{i,1}\\ W_{i,0} \in \mathcal R^{E*E}, b_{i,0}\in \mathcal R^{1*E},W_{i,1} \in \mathcal R^{1*E} 共享参数\\ A_{i,t} = \alpha_{i,t}*h_{i,t}
αi,t=∑t=0Mexp(zi,t)exp(zi,t)zi,t=Relu(hi,tWi,0+bi,0)Wi,1Wi,0∈RE∗E,bi,0∈R1∗E,Wi,1∈R1∗E共享参数Ai,t=αi,t∗hi,t
在 statistics pooling层, 计算
A
i
A_i
Ai的均值向量
μ
i
\mu _i
μi 和 标准差向量
σ
i
\sigma _i
σi, 之后将两个向量拼接在一起得到段向量
V
S
i
V_{S_i}
VSi
V
S
i
=
c
o
n
c
a
t
e
n
a
t
e
(
μ
i
,
σ
i
)
V_{S_i} = concatenate (\mu _i, \sigma _i)
VSi=concatenate(μi,σi)
frame-level的输出为: V S ∈ R N ∗ E = { V S 1 , V S 2 , . . . , V S N } V_S \in \mathcal R^{N*E} = \{V_{S_1},V_{S_2},...,V_{S_N}\} VS∈RN∗E={VS1,VS2,...,VSN}
Segment level Encoder and attention
和 frame-level 的过程相似, 但是减少了一个GRU层, 目的是为了加速训练过程。
在attention层, 权重计算过程为:
α
i
s
=
e
x
p
(
z
i
s
)
∑
i
=
0
N
e
x
p
(
z
i
s
)
z
i
s
=
R
e
l
u
(
V
S
i
W
n
,
0
+
b
n
,
0
)
W
n
,
1
\alpha _{i}^s = \frac{exp(z_i^s)}{\sum_{i=0}^N exp(z_i^s)}\\ z_i^s = Relu(V_{S_i}W_{n,0}+b_{n,0})W_{n,1}
αis=∑i=0Nexp(zis)exp(zis)zis=Relu(VSiWn,0+bn,0)Wn,1
实验
数据集:
模型结构:
实验结果: