问题定义:
sas^a = {w1aw^a_1, w2aw^a_2, …, wlaaw^a_{l_a}} , 句子 的长度为lal_a
sbs^b = {w1bw^b_1, w2bw^b_2, …, wlbbw^b_{l_b}} , 句子 的长度为lbl_b
目的是学习一个分类器ξ\xi 用于判断两个句子sas^asbs^b的关系,即 y = ξ\xi(sas^a, sbs^b)
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 的表示 : {aia_i | i = 1, 2, …, lal_a} = { a1a_1, a2a_2, …, alaa_{l_a} }
句子 b 的表示 : {bjb_j | j = 1, 2, …, lbl_b} = { b1b_1, b2b_2, …, blbb_{l_b} }
(2)Attention Stack-GRU Unit
先来理解下Stack-GRU, 其实相当于多层GRU堆叠,假设有ll层GRU堆叠,则让HlH_l表示 第ll层 GRU[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching
图(B)可以清晰地知道每层GRU的输入是:(1) ht1lh^l_{t-1} :同层前一时刻的输出,(2) htl1h^{l-1}_t : 前一层同时刻GRU的输出,(3)xtl1x^{l-1}_t : 前一层(ll-1层)同时刻GRU的输入也作为第ll层的输入

[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching
[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching
经过第 ll 层(最后一层ASG)处理后的结果是:
句子 a 中每个词的表示:{ hiah^a_i | i = 1, 2, …, lal_a}
句子 b 中每个词的表示:{ hjbh^b_j | j = 1, 2, …, lbl_b}
为了以一种综合的方式将所有信息收集到一个向量中,并且考虑到不同词对句子语义的贡献不同,利用attention 得到句子的向量表示:
[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching
公式(3)中 hah_a 就是句子 a 经过attention处理后得到的向量表示,同理,我们可以得到句子 b 的向量表示是 hbh_b
Dynamic Re-read Mechanism:
虽然通过ASG可以得到句子 a 和 句子 b 的向量表示,为了更深入地理解句子,考虑了已学习到信息不同应该关注的词就会有变化,本文应用了Dynamic Re-read(DRr) Mechanism, DRr根据已经学到的信息以及以及前一步生成的信息去挑选重要的词(这段文字没看到没关系)
[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching
我们以句子 a 为例,了解 DRr 学习句子 a 的向量表示:
[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching
其中公式(4)第一个公式的中aˉt\bar{a}_t的具体计算过程是:
[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching
由以上公式的思考:
(1)在求 vav^a 的过程中,注意公式(5)中 aˉt\bar{a}_t 的计算可是,并不是 按照句子a 中词的出现顺序进行的,而是在计算的每一步(一共1—lal_a 步),根据attention的计算,从 [h1ah^a_1, h2ah^a_2, …, hlaah^a_{l_a}]中挑选出的
(2)公式(4)中的 hˉta\bar{h}^a_t 是GRU 编码后的结果,并不对应句子中的词 wtaw^a_t, 是打乱句子 a 中词的顺序进行了编码
(3)vav^a = hˉTa\bar{h}^a_T ,注意这里的下表是 “T” ,其实就是说公式(4)中的前两个公式循环执行 T 次,最后第T次GRU的计算结果, 对句子 a 来说 T 是 lal_a,对句子 b 而言,T是lbl_b
(4)注意到:公式(5)中 j 的选取是不可导的,即没办法后向传播,于是公式(5)更改为公式(6)
[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching
注意到 β\beta 的取值
Label Prediction:
attention Stack-GRU Unit处理句子后的的句子表示:
句子 a 的表示 : hah^a
句子 b 的表示 : hah^a
Dynamic Re-read Mechanism处理句子后的句子表示:
句子 a 的动态表示:vav^a
句子 b 的动态表示:vbv^b
这一部分(Label Prediction)由三部分组成:
(1)matching
[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching
concatenation : 串接能够保留所有的信息,公式(7)中的前两个公式都是串接而成
the element-wise product ( hbhah^b \odot h^a, hbhah^b \odot h^a ) : 对两个句子 a 和 句子 b 相似性的度量
their difference ( hbh^b - hah^a , vbv^b - vav^a ) : capture the degree of distributional inclusion in each dimension
(2)fusion && classification
公式(7)中得到的 php^h, pvp^v 经过 fusion gate的变换(也即是公式(8)中的前两个公式)最后送入一个MLP对两个句子进行分类
[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching
Model Learning

这部分涉及到的就是模型的训练工作了,损失函数有四部分组成,除了l2l2范式,LcL^c是最终分类结果的交叉熵,LhL^hphp^h与标注答案(true label)的交叉熵
[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching
[AAAI2019] DRr-Net:Dynamic Re-read Netwok for Sentence Semantic Matching

相关文章:

  • 2021-04-26
  • 2021-05-07
  • 2021-08-24
  • 2021-04-03
  • 2021-12-21
  • 2021-05-18
  • 2021-09-28
猜你喜欢
  • 2021-07-19
  • 2021-09-26
  • 2021-08-03
  • 2021-08-11
  • 2021-09-11
  • 2021-08-14
  • 2022-01-03
相关资源
相似解决方案