---
# System prepended metadata

title: Adaptive Convolution for text classification 閱讀筆記
tags: [thesis]

---

Adaptive Convolution for text classification 閱讀筆記
===

###### tags: `thesis`
[論文連結](https://www.aclweb.org/anthology/N19-1256.pdf)


## 1. 簡介：
* 本文提出一種具彈性的filter生成網路得以嫁接在現行CNN用於文字分類的模型上，這個filter生成網路會根據文本的蘊含產生出filter，得到許多不錯的研究成果。


## 2. 模型架構
![](https://i.imgur.com/umdaihk.png)

<p>此模型大致分為兩個部分，分別為context vector generation和filter generation部分。

* <b>Context Vector</b>:輸入一串含有m個字元的input sequence通過雙向GRU獲取時序性資訊，在t時刻得到![](https://i.imgur.com/oLFxycd.png)，分別為前向及後向以及concatenate後的hidden state；最終得到H=[h~1~,h~2~,...,h~m~]；接著透過attention算出的權重做weighted sum後將H封裝為一固定大小的context vector ![](https://i.imgur.com/N5mi8KC.png)。（所使用的attention公式為![](https://i.imgur.com/mLfGv3q.png)，其中q是一個可訓練的query vector。）

- <b>Filter Generating</b>：此部分利用前述過程所獲得的Context Vector，透過Filter generation function得到該context vector對應的filter，此處作者提出兩種Filter Generation function分別為
	- *Full Generation*：直接使用一層全連接層（fully connected layer)的輸出作為該層對應的filter，具體實現如![](https://i.imgur.com/1JHyXQK.png)所述。(維度部分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來實作。以下為該研究模型圖![name=ref_model](https://i.imgur.com/yWztPNW.png)該研究主要運作模式為藉由計算重要係數後對共用池（shared pool)中的component成員進行weighted sum後得出新的hash vector。作者引用這樣的架構並給出下列的算式![name=hash_tricks](https://i.imgur.com/nbdD4L1.png)，其中p~i,j~為重要性係數(importance parameter)；![name=Hj_picture](https://i.imgur.com/KS7IZoc.png)， 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少了非常多。
	
- 模型演算法
![](https://i.imgur.com/TfvvBCv.png)


## 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）
- 實驗結果
![](https://i.imgur.com/k9ecX3S.png)
從實驗結果可以看得出來，接上AC CNN後的表現都比原本的研究成果來得更好，甚至勝過RNN達到的成果。
![](https://i.imgur.com/DlWsxKD.png)
這張實驗結果圖顯示當filters數目不多時，有接AC的模型表現會更加穩定，並且僅用2片filters時，準確率只比100片filters降低0.6%。顯示這個網路所產生的filter具有根據文意產生的特性，能正確根據文意輸出對應的filter。
![](https://i.imgur.com/VDuIOuc.png)
在具有深度的模型中，有接上AC的模型收斂地更快，不需要太深的層數就能達到良好的成果。

![](https://i.imgur.com/NgtNa3k.png)
![](https://i.imgur.com/HjFPYSm.png)
上述二圖則是根據研究中hashing tricks參數上設置所帶來的變化之成果圖。
![](https://i.imgur.com/QQ4Lhto.png)
此圖顯示不同的filter座落的點位分佈（使用t-SNE降維製圖），可以發現接上AC的filter有群聚的效應，可以解釋為AC所生產的filter對相似的特徵有正確的分辨能力，可以挑到針對文意特徵進行分辨的filter。而原作的CNN點位座落較分散，解決問題的能力較為泛化，無法針對專門問題解決。

## 4. 結論
本研究提出一種有高度彈性的網路（可直接嫁接於現行解決文字分類的CNN架構上），得到更好的成果，並提出hashing的技巧解決訓練參數過多的問題。







