文本匹配、文本相似度模型之DecomposableAttention

用于自然语言推理的可分解注意力模型

github : https://github.com/daiyizheng/shortTextMatch/blob/master/src/DL_model/classic_models/models/DecomposableAttention.py

本文作者提出了一种用于自然语言推理的简单神经架构。 使用注意力将问题分解为可以单独解决的子问题,从而使其可以简单地并行化。在斯坦福自然语言推理 (SNLI) 数据集上,获得了SOTA的结果。

方法

模型分为了四个部分:Input representation,Attend,Compare,Aggregate:

Input representation

模型的输入为 a = ( a 1 . . . . , a l a ) a= (a_1...., a_{l_a}) a=(a1....,ala) b = ( b 1 , . . . , b l b ) b=(b_1,...,b_{l_b}) b=(b1,...,blb),分别代表前提和假说, y ( n ) = { y 1 ( n ) , . . . , y C ( n ) } y^{(n)} = \{y_1^{(n)},...,y_C^{(n)}\} y(n)={y1(n),...,yC(n)}表示a和b之间的关系标签, C C C是输出类的数量。训练目标就是根据输入的 a a a b b b正确预测出他们的关系标签 y y y

Attend

使用神经注意的变体对a和b的句子进行软对齐,并将问题分解为对齐子短语的比较。

F是一个激活函数为ReLU的前馈神经网络。
attention权重如下:

Compare

其次,分别比较每个对齐的子短语,生成一组向量 { v 1 , i } i = 1 l a \{v_{1,i}\}^{l_a}_{i=1} {v1,i}i=1la对于 a a a,以及 { v 2 , j } j = 1 l b \{v_{2,j}\} ^{l_b}_{j=1} {v2,j}j=1lb对于b。每个 { v 1 , i } \{v_{1,i}\} {v1,i}都是 a i a_i ai及其(软)对齐子短语在 b b b中的非线性组合( v 2 , j v_{2,j} v2,j也类似)。

G也是一个前馈神经网络

Aggregate

聚合上一步中的集合 { v 1 , i } i = 1 l a \{v_{1,i}\}^{l_a}_{i=1} {v1,i}i=1la { v 2 , j } j = 1 l b \{v_{2,j}\} ^{l_b}_{j=1} {v2,j}j=1lb,并使用结果预测标签 y y y

将两个向量concatenate后使用前馈神经网络进行分类。

损失函数利用交叉熵损失函数。

Intra-Sentence Attention

通过句内注意来增强这种输入表示,以编码每个句子中单词之间的组成关系。

F i n t r a F_{intra} Fintra也是一个前馈神经网络


d i − j d_{i-j} dij表示当前词 i i i与句子中的其他词 j j j之间的距离偏差,所有距离大于10的词共享一个距离偏差,这样每一个时刻的输入就变为原始输入跟self-attention后的值的拼接所得到的向量 a ‾ i : = [ a i , a i ′ ] , b ‾ j : = [ b j , b j ′ ] \overline{a}_i:=[a_i, a'_i], \overline{b}_j:=[b_j,b'_j] ai:=[ai,ai],bj:=[bj,bj]

结果

结论

基于注意力的自然语言推理方法,可以简单地并行化。该方法在文本理解方面的表现比更复杂的神经方法要好得多。结果表明,至少在这个任务中,两两比较比整体句子级表征更重要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发呆的比目鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值