问题定义:
s
a
s^a
sa = {
w
1
a
w^a_1
w1a,
w
2
a
w^a_2
w2a, …,
w
l
a
a
w^a_{l_a}
wlaa} , 句子 的长度为
l
a
l_a
la,
s
b
s^b
sb = {
w
1
b
w^b_1
w1b,
w
2
b
w^b_2
w2b, …,
w
l
b
b
w^b_{l_b}
wlbb} , 句子 的长度为
l
b
l_b
lb
目的是学习一个分类器
ξ
\xi
ξ 用于判断两个句子
s
a
s^a
sa和
s
b
s^b
sb的关系,即 y =
ξ
\xi
ξ(
s
a
s^a
sa,
s
b
s^b
sb)
Input Embedding:
(1)Word Embedding
pre-trained word embedding(预训练的词向量)
character features(单词中的字母序列用CNN+maxpooling处理)
syntactical features(binary exact match feature, binary antonym feature)这两个特征不是太清楚,待解决问题
这些特征串接后传入一个two-layer highway network进行处理,得到:
句子 a 的表示 : {
a
i
a_i
ai | i = 1, 2, …,
l
a
l_a
la} = {
a
1
a_1
a1,
a
2
a_2
a2, …,
a
l
a
a_{l_a}
ala }
句子 b 的表示 : {
b
j
b_j
bj | j = 1, 2, …,
l
b
l_b
lb} = {
b
1
b_1
b1,
b
2
b_2
b2, …,
b
l
b
b_{l_b}
blb }
(2)Attention Stack-GRU Unit
先来理解下Stack-GRU, 其实相当于多层GRU堆叠,假设有
l
l
l层GRU堆叠,则让
H
l
H_l
Hl表示 第
l
l
l层 GRU
图(B)可以清晰地知道每层GRU的输入是:(1)
h
t
−
1
l
h^l_{t-1}
ht−1l :同层前一时刻的输出,(2)
h
t
l
−
1
h^{l-1}_t
htl−1 : 前一层同时刻GRU的输出,(3)
x
t
l
−
1
x^{l-1}_t
xtl−1 : 前一层(
l
l
l-1层)同时刻GRU的输入也作为第
l
l
l层的输入
经过第
l
l
l 层(最后一层ASG)处理后的结果是:
句子 a 中每个词的表示:{
h
i
a
h^a_i
hia | i = 1, 2, …,
l
a
l_a
la}
句子 b 中每个词的表示:{
h
j
b
h^b_j
hjb | j = 1, 2, …,
l
b
l_b
lb}
为了以一种综合的方式将所有信息收集到一个向量中,并且考虑到不同词对句子语义的贡献不同,利用attention 得到句子的向量表示:
公式(3)中
h
a
h_a
ha 就是句子 a 经过attention处理后得到的向量表示,同理,我们可以得到句子 b 的向量表示是
h
b
h_b
hb
Dynamic Re-read Mechanism:
虽然通过ASG可以得到句子 a 和 句子 b 的向量表示,为了更深入地理解句子,考虑了已学习到信息不同应该关注的词就会有变化,本文应用了Dynamic Re-read(DRr) Mechanism, DRr根据已经学到的信息以及以及前一步生成的信息去挑选重要的词(这段文字没看到没关系)
我们以句子 a 为例,了解 DRr 学习句子 a 的向量表示:
其中公式(4)第一个公式的中
a
ˉ
t
\bar{a}_t
aˉt的具体计算过程是:
由以上公式的思考:
(1)在求
v
a
v^a
va 的过程中,注意公式(5)中
a
ˉ
t
\bar{a}_t
aˉt 的计算可是,并不是 按照句子a 中词的出现顺序进行的,而是在计算的每一步(一共1—
l
a
l_a
la 步),根据attention的计算,从 [
h
1
a
h^a_1
h1a,
h
2
a
h^a_2
h2a, …,
h
l
a
a
h^a_{l_a}
hlaa]中挑选出的
(2)公式(4)中的
h
ˉ
t
a
\bar{h}^a_t
hˉta 是GRU 编码后的结果,并不对应句子中的词
w
t
a
w^a_t
wta, 是打乱句子 a 中词的顺序进行了编码
(3)
v
a
v^a
va =
h
ˉ
T
a
\bar{h}^a_T
hˉTa ,注意这里的下表是 “T” ,其实就是说公式(4)中的前两个公式循环执行 T 次,最后第T次GRU的计算结果, 对句子 a 来说 T 是
l
a
l_a
la,对句子 b 而言,T是
l
b
l_b
lb
(4)注意到:公式(5)中 j 的选取是不可导的,即没办法后向传播,于是公式(5)更改为公式(6)
注意到
β
\beta
β 的取值
Label Prediction:
attention Stack-GRU Unit处理句子后的的句子表示:
句子 a 的表示 :
h
a
h^a
ha
句子 b 的表示 :
h
a
h^a
ha
Dynamic Re-read Mechanism处理句子后的句子表示:
句子 a 的动态表示:
v
a
v^a
va
句子 b 的动态表示:
v
b
v^b
vb
这一部分(Label Prediction)由三部分组成:
(1)matching
concatenation : 串接能够保留所有的信息,公式(7)中的前两个公式都是串接而成
the element-wise product (
h
b
⊙
h
a
h^b \odot h^a
hb⊙ha,
h
b
⊙
h
a
h^b \odot h^a
hb⊙ha ) : 对两个句子 a 和 句子 b 相似性的度量
their difference (
h
b
h^b
hb -
h
a
h^a
ha ,
v
b
v^b
vb -
v
a
v^a
va ) : capture the degree of distributional inclusion in each dimension
(2)fusion && classification
公式(7)中得到的
p
h
p^h
ph,
p
v
p^v
pv 经过 fusion gate的变换(也即是公式(8)中的前两个公式)最后送入一个MLP对两个句子进行分类
Model Learning
这部分涉及到的就是模型的训练工作了,损失函数有四部分组成,除了
l
2
l2
l2范式,
L
c
L^c
Lc是最终分类结果的交叉熵,
L
h
L^h
Lh是
p
h
p^h
ph与标注答案(true label)的交叉熵