Adaptive Convolution for text classification 閱讀筆記
===
###### tags: `thesis`
[論文連結](https://www.aclweb.org/anthology/N19-1256.pdf)
## 1. 簡介:
* 本文提出一種具彈性的filter生成網路得以嫁接在現行CNN用於文字分類的模型上,這個filter生成網路會根據文本的蘊含產生出filter,得到許多不錯的研究成果。
## 2. 模型架構

<p>此模型大致分為兩個部分,分別為context vector generation和filter generation部分。
* <b>Context Vector</b>:輸入一串含有m個字元的input sequence通過雙向GRU獲取時序性資訊,在t時刻得到,分別為前向及後向以及concatenate後的hidden state;最終得到H=[h~1~,h~2~,...,h~m~];接著透過attention算出的權重做weighted sum後將H封裝為一固定大小的context vector 。(所使用的attention公式為,其中q是一個可訓練的query vector。)
- <b>Filter Generating</b>:此部分利用前述過程所獲得的Context Vector,透過Filter generation function得到該context vector對應的filter,此處作者提出兩種Filter Generation function分別為
- *Full Generation*:直接使用一層全連接層(fully connected layer)的輸出作為該層對應的filter,具體實現如所述。(維度部分g為GRU hidden state維度;h∙d為filter維度),可以看出參數量會隨filte維度和context vector維度上升呈指數成長,數量非常可觀。
- *Hashed Generation*:有鑒於參數數量過於可觀,作者參考2017年Svenstrup研究<em>《Hash embeddings for efficient word representations》</em>減少embedding參數的hashing tricks來實作。以下為該研究模型圖該研究主要運作模式為藉由計算重要係數後對共用池(shared pool)中的component成員進行weighted sum後得出新的hash vector。作者引用這樣的架構並給出下列的算式,其中p~i,j~為重要性係數(importance parameter);, D~j~為hash function,此function的輸出為{1,...,b}中其一index(b為pool size),E為pool集合,$\hat{f}$~i~為選出之component,而與之相乘的p~i,j~為w~i,j~$^\top$c ,w~i,j~為用來生成filter的g維向量。在此方法中,設有n個p~i,j~,便會產生n*g個參數,相比full generation 的 h*d*g少了非常多。
- 模型演算法

## 3.實驗設計
- 實驗
挑選三組baseline models,將本研究設計的網路架構接上原model,檢視成果是否更佳。挑選的三組models分別為TextCNN、DPCNN、DenseCNN。
參數設置部分,TextCNN使用300片filters(
size 3、4、5各100);DPCNN使用100片filters(size為3);DenseCNN使用75片filters(size為3)
- 實驗結果

從實驗結果可以看得出來,接上AC CNN後的表現都比原本的研究成果來得更好,甚至勝過RNN達到的成果。

這張實驗結果圖顯示當filters數目不多時,有接AC的模型表現會更加穩定,並且僅用2片filters時,準確率只比100片filters降低0.6%。顯示這個網路所產生的filter具有根據文意產生的特性,能正確根據文意輸出對應的filter。

在具有深度的模型中,有接上AC的模型收斂地更快,不需要太深的層數就能達到良好的成果。


上述二圖則是根據研究中hashing tricks參數上設置所帶來的變化之成果圖。

此圖顯示不同的filter座落的點位分佈(使用t-SNE降維製圖),可以發現接上AC的filter有群聚的效應,可以解釋為AC所生產的filter對相似的特徵有正確的分辨能力,可以挑到針對文意特徵進行分辨的filter。而原作的CNN點位座落較分散,解決問題的能力較為泛化,無法針對專門問題解決。
## 4. 結論
本研究提出一種有高度彈性的網路(可直接嫁接於現行解決文字分類的CNN架構上),得到更好的成果,並提出hashing的技巧解決訓練參數過多的問題。