[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching

问题定义:
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[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching_第1张图片
图(B)可以清晰地知道每层GRU的输入是:(1) h t − 1 l h^l_{t-1} ht1l :同层前一时刻的输出,(2) h t l − 1 h^{l-1}_t htl1 : 前一层同时刻GRU的输出,(3) x t l − 1 x^{l-1}_t xtl1 : 前一层( 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 得到句子的向量表示:
[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching_第2张图片
公式(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根据已经学到的信息以及以及前一步生成的信息去挑选重要的词(这段文字没看到没关系)
[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching_第3张图片
我们以句子 a 为例,了解 DRr 学习句子 a 的向量表示:
[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching_第4张图片
其中公式(4)第一个公式的中 a ˉ t \bar{a}_t aˉt的具体计算过程是:
[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching_第5张图片
由以上公式的思考:
(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)
[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching_第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
[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching_第7张图片
concatenation : 串接能够保留所有的信息,公式(7)中的前两个公式都是串接而成
the element-wise product ( h b ⊙ h a h^b \odot h^a hbha, h b ⊙ h a h^b \odot h^a hbha ) : 对两个句子 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对两个句子进行分类
[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching_第8张图片
Model Learning

这部分涉及到的就是模型的训练工作了,损失函数有四部分组成,除了 l 2 l2 l2范式, L c L^c Lc是最终分类结果的交叉熵, L h L^h Lh p h p^h ph与标注答案(true label)的交叉熵
在这里插入图片描述
在这里插入图片描述

你可能感兴趣的:(PaperNotes,Re-read,Network,sentence,semantic,matching)