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]

首先计算一个相似度矩阵

Ai,j=matchscore(a¯i,b¯j)

a¯i,b¯j 表示对应的词向量
matchscore 则是1/(1+|xy|) , 其中 |xy| 是欧氏距离

那么其实现在

aR dmbR dnAR mn

接下来,我们可以得到

Fa=Wa˙ATFb=Wb˙A

其中:
WaR dn; FaR dmWbR dm; FbR dn

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章