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的技巧解決訓練參數過多的問題。