Pytorch實作系列 — DCNN

mz bai
Sep 7, 2024

--

Dynamic convolutional neural network是由 Kalchbrenner et al.(2014, 牛津)在 A Convolutional Neural Network for Modelling Sentences 提出,相較於人為或提前給定的語法樹,而本文提出文字之間的關聯可藉由網路歸納出來,不需要外部建立。

網路概念

當時的背景下,NLP的主要工作在於建立語言學結構,而這樣的結構通常是人為或提前給定的語法樹,而本文提出文字之間的關聯可藉由網路歸納出來,不需要外部建立。利用網路向前傳播時在每一層篩選出較強的訊號,便可歸納出一個個子圖,作為句子建模的方法。

DCNN concept

網路結構

將嵌入層產生的word vector,經由一層層wide convolution, dynamic k max pooling, bias, non-linear activation取得特徵,最後在folding這層將相鄰特徵兩兩相加,接上分類器做判斷。

形式類似於Network in network,在卷積層後方接上非線性轉換。

DCNN architecture

上圖的wide convolution是平常兩倍zero padding的卷積層,相較於平常使用的narrow convolution(圖左)會得到downsample的較小特徵圖,圖右的wide convolution會將每個輸入點置於中間得到更大的特徵圖。

left one is narrow convolution(common one), right one is wide convolution

為了篩選出較強烈的連結,作者提出一個k max pooling的改版,使用序列長度與當前是第幾個卷積層作為比例,逐步縮小top k的數量,在語意程度越來越高的特徵中篩選出較重要的token。

dynamic top k max pool

資料集

Covid19-tweet , Kaggle上一個關於covid19推特訊息的資料集,分類標籤為情緒,共分五種: Extremely Negative, Nagative, Neutral, Positive, Extremely Positive。

評估

使用論文的參數,測試準確度可達到45%,模型大小為2.2MB

使用加大版的自訂參數,測試準確度可達到54%,模型大小為14.46MB

移除hashtag對準確度幫助不大。

largest model confusion matrix

實作

參考

--

--

mz bai
mz bai

Written by mz bai

Math is math, math is universal Code is code, code is horrifying unique.

No responses yet