Dynamic convolutional neural network是由 Kalchbrenner et al.(2014, 牛津)在 A Convolutional Neural Network for Modelling Sentences 提出,相較於人為或提前給定的語法樹,而本文提出文字之間的關聯可藉由網路歸納出來,不需要外部建立。
網路概念
當時的背景下,NLP的主要工作在於建立語言學結構,而這樣的結構通常是人為或提前給定的語法樹,而本文提出文字之間的關聯可藉由網路歸納出來,不需要外部建立。利用網路向前傳播時在每一層篩選出較強的訊號,便可歸納出一個個子圖,作為句子建模的方法。
網路結構
將嵌入層產生的word vector,經由一層層wide convolution, dynamic k max pooling, bias, non-linear activation取得特徵,最後在folding這層將相鄰特徵兩兩相加,接上分類器做判斷。
形式類似於Network in network,在卷積層後方接上非線性轉換。
上圖的wide convolution是平常兩倍zero padding的卷積層,相較於平常使用的narrow convolution(圖左)會得到downsample的較小特徵圖,圖右的wide convolution會將每個輸入點置於中間得到更大的特徵圖。
為了篩選出較強烈的連結,作者提出一個k max pooling的改版,使用序列長度與當前是第幾個卷積層作為比例,逐步縮小top k的數量,在語意程度越來越高的特徵中篩選出較重要的token。
資料集
Covid19-tweet , Kaggle上一個關於covid19推特訊息的資料集,分類標籤為情緒,共分五種: Extremely Negative, Nagative, Neutral, Positive, Extremely Positive。
評估
使用論文的參數,測試準確度可達到45%,模型大小為2.2MB
使用加大版的自訂參數,測試準確度可達到54%,模型大小為14.46MB
移除hashtag對準確度幫助不大。