---
# System prepended metadata

title: Deep Pyramid Convolutional Neural Networks for Text Categorization 閱讀筆記
tags: [thesis]

---

Deep Pyramid Convolutional Neural Networks for Text Categorization 閱讀筆記
===
###### tags: `thesis`
[論文連結](https://ai.tencent.com/ailab/media/publications/ACL3-Brady.pdf)

## 1.簡介
本文提出一複雜度低的深度網路架構，並且可以有效抓取長距離的文本訊息。在先前的研究中，這類獲取長距離訊息的模型架構大多非常深，參數量大，造成訓練成本非常高，本文提出的金字塔型架構則降低了許多訓練上的成本。

## 2.模型架構
![](https://i.imgur.com/Y2M3IYN.png)
圖中由左至右分別為本文、ShallowCNN、ResNet之網路架構。
模型架構主要分為embedding layer和許多convolution blocks及shortcut連接。

 - Embedding Layer:
 此處作者將word embedding換成embedding layer的轉換型態，而這裡的region embedding大意是將一個一個區塊的words合併做embedding的轉換，作者在此處提出了三種方法。
    - Sequential input:由k個one-hot vectors組成的k-v dimensional concatenation，將k個詞合併在一起做，可以理解為使用捲積核對words做embedding轉換(捲積窗口為k)。
    - bow input:將k個文字以bag of word的vector作為input進行轉換。
     - bag-of-n-gram input:以n-gram的bag of word形式作為input，舉例來說k為3，則input為此三字的unigram、bigram以及trigram。

綜上所述，可以發現當k=1時，就會是word embedding的形式。
經實驗過後，bow的結果會比sequential好，而bag-of-n-gram在使用監督式學習時會容易過擬合，但在非監督訓練時可以得到很好的成果，因此此處作者採用bag-of-n-gram的無監督式學習。具體方法參考tv-embedding，tv代表two-view，具體作法參考自[此篇研究](https://papers.nips.cc/paper/5849-semi-supervised-convolutional-neural-networks-for-text-categorization-via-region-embedding.pdf)。

- Convolution Blocks：此處的convolutional block由兩層捲積層以及一層池化層為一塊，排序依序為polling layer，conv layer，conv layer。而所採用的pooling方法為步長為2，窗口為3的max pooling，透過這樣的設計，可以得到只有一半size的輸出，且能覆蓋到中間詞詞意。大致概念可參考下圖(白點為pooling作用點，pooling步長為2，窗口大小為3，input為12，output為6)。
![](https://i.imgur.com/xjdncGT.png)
每一塊conv block完成後會是前一層的一半大小，堆疊後即成為金字塔型形狀，故本論文命名為Pyramid Convolution。
![](https://i.imgur.com/2Rrd5TM.png)


- Shortcut連接：此處的shortcut引用自ResNet，並且採用其優化的版本(pre-activation版本)即${ (W\sigma (x)+b )}$而非${ (\sigma (W(x)+b) )}$。Pre-activation的ResNet shortcut可有效降低訓練複雜度，詳細內容可以參考[Identity Mappings in Deep Residual Networks](https://arxiv.org/pdf/1603.05027.pdf)，此文做了許多ResNet變形的實驗，以及成果展示，可以詳細解釋此處使用pre-activation的用意。

總結此模型，主要有三大特色
- 下採樣的之前的feature map(filter數)固定為250，並採用${\frac{1}{2}}$pooling，前者讓shortcut連接不用做維度的轉換，後者則讓實驗參數量大幅減少，且可以捕捉到長距離訊息。
- 使用了pre activation的shortcut連接，在深度的模型上更具優勢。
- 採用region embedding，在長文本中可確實幫助準確率的提升。

## 實驗

資料集：
![](https://i.imgur.com/K4x2Hbi.png)
實驗結果：
![](https://i.imgur.com/DEboMV4.png)
該圖標示為錯誤率，以本文架構搭配two view的非監督式embedding訓練可以獲得最好的成果。
![](https://i.imgur.com/ZydSEz7.png)
在訓練時間上，本研究與層數僅一層TextCNN並沒有太大的差距，準確率卻有所提升；而char CNN相較之下則是訓練耗時卻無法得到太好的成果。
![](https://i.imgur.com/PlmgAAf.png)
以本文模型為基礎的不同變形，在沒有downsampling的情況下訓練時間長且準確率低；而在增加feature map數量的情況下卻不見準確率有提升，且訓練也較耗時，因此作者認為固定feature map數量會是重要的調整。
![](https://i.imgur.com/fNRGteJ.png)
在小資料集的實驗上，DPCNN並沒有佔到太多優勢，淺層的TextCNN可能就已經非常足夠(不需要獲取長文本訊息)。
![](https://i.imgur.com/erbdcuA.png)
在不同深度下，DPCNN的訓練時間以及訓練成果，在15層的結構下可以得到最好的實驗結果；而最淺的3層與淺層TextCNN模型在訓練時間上並沒有相差太多，卻大致都可以得到更好的結果。

## 結論
本研究在長文本的文字分類任務上設立了benchmark，本文主要提出一個深度的金字塔型模型，在長文本上有效地解決了訓練時間過長的缺點，金字塔型的架構也可有效抓取global information。