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
這樣其實就是卷積核的維度也要增加一維。

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