ABCNN

昨天和师兄聊了一下对attention的理解
其实相似性矩阵本身并不是模型的参数,是参数的只是后面的dense layers;

看了好久才弄懂ABCNN的卷积过程。
其实卷积也还是就是Yoon Kim的方法。
协助理解的时候,这篇讲的还是很好的:

https://blog.csdn.net/liuchonge/article/details/69587681

后面这里提了一下,说把中间pooling层的输出也合并到最后的输出里,可以增强performance,但是实测效果却一般。感觉原因还是:
基于Yoon Kim的方法的话,第二层卷积的输入本身就是各个kernel输出的结果了,再卷积就没有提取局部特征的解释性了。

以下是ABCNN_1的过程:

输入的时候是两个句子

a=[a¯1,a¯2,...,a¯m]b=[b¯1,b¯2,...,b¯n] a = [ a ¯ 1 , a ¯ 2 , . . . , a ¯ m ] b = [ b ¯ 1 , b ¯ 2 , . . . , b ¯ n ]

首先计算一个相似度矩阵

Ai,j=matchscore(a¯i,b¯j) A i , j = m a t c h s c o r e ( a ¯ i , b ¯ j )

a¯i,b¯j a ¯ i , b ¯ j 表示对应的词向量
matchscore m a t c h s c o r e 则是 1/(1+|xy|) 1 / ( 1 + | x − y | ) , 其中 |xy| | x − y | 是欧氏距离

那么其实现在

aR dmbR dnAR mn a ∈ R   d ∗ m b ∈ R   d ∗ n A ∈ R   m ∗ n

接下来,我们可以得到

Fa=Wa˙ATFb=Wb˙A F a = W a ˙ A T F b = W b ˙ A

其中:
WaR dn; FaR dmWbR dm; FbR dn W a ∈ R   d ∗ n ;   F a ∈ R   d ∗ m W b ∈ R   d ∗ m ;   F b ∈ R   d ∗ n

然后将 a,Fa a , F a 看成句子的两个channels输入到CNN中,做卷积
channel的作用其实可以看这里:
https://blog.csdn.net/sscc_learning/article/details/79814146
这样其实就是卷积核的维度也要增加一维。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值