CNN Basic Model
卷積層
- 由不同窗口大小的 Filter 構(gòu)成
- Filter 個數(shù)由自己決定释液,超參數(shù)绍撞。
- 同一個 Filter 參數(shù)共享搬男,極大減少了參數(shù)個數(shù)钞它。
- 因為參數(shù)共享,所以一個 Filter 只能識別同一類特征扶关。一個 Filter 就是一類特征識別器阴汇。窗口大小其實就是識別 n-gram 信息。
池化層
- 一般都是對每個 Filter 向量取 Max 值节槐。這個特征跟出現(xiàn)位置無關(guān)搀庶,不論出現(xiàn)在哪里,都取最強那個铜异。
- 有多少個 Filter 就決定了池化層的維度哥倔;變長的輸入變成定長。無論輸入有多長熙掺,這里都統(tǒng)一了維度未斑。
輸入層改進
擴充輸入層維度,引入新特征
- word embedding matrix
- position embedding matrix
- BIO entity type embedding matrix
其他模型輸出作為 CNN 輸入币绩,引入新特征 - RNN 輸出作為 CNN 輸入。
CNN 模型常見的 Pooling
Max Pooling Over Time
值最大代表只保留這些特征中最強的府阀,而拋棄其它弱的此類特征缆镣。
優(yōu)點:
- MaxPooling 能減少模型參數(shù)數(shù)量,有利于減少模型過擬合問題试浙。
- 對于NLP任務(wù)來說董瞻,Max Pooling 有個好處:可以把變長的輸入X整理成固定長度的輸入。
缺點: - Max Pooling 基本拋棄位置信息田巴。但在 NLP 的應(yīng)用場合中钠糊,特征出現(xiàn)的位置信息是很重要的(比如主語出現(xiàn)位置一般在句子頭,賓語一般出現(xiàn)在句子尾等等壹哺,這些位置信息對于分類任務(wù)來說還是很重要的)抄伍。
- 有時候有些強特征會出現(xiàn)多次,Pooling 只保留一個最大值管宵,所以即使某個特征出現(xiàn)多次截珍,現(xiàn)在也只能看到一次攀甚,就是說同一特征的強度信息丟失了。
K-Max Pooling
K-Max Pooling可以取所有特征值中得分在 Top–K 的值岗喉,并保留這些特征值原始的先后順序秋度。
- K-Max Pooling可以表達(dá)同一類特征出現(xiàn)多次的情形,即可以表達(dá)某類特征的強度钱床;
- Top K 特征值的相對順序得以保留荚斯,所以應(yīng)該說其保留了部分位置信息,但是這種位置信息只是特征間的相對順序查牌,而非絕對位置信息鲸拥。
Chunk-Max Pooling
把某個Filter對應(yīng)的Convolution層的所有特征向量進行分段,切割成若干段后僧免,在每個分段里面各自取得一個最大特征值刑赶。
- Chunk-Max Pooling 保留了多個局部Max特征值的相對順序信息,盡管并沒有保留絕對位置信息懂衩,但是因為是先劃分Chunk再分別取Max值的撞叨,所以保留了比較粗粒度的模糊的位置信息;
- 如果多次出現(xiàn)強特征浊洞,則也可以捕獲特征強度牵敷。
- Event Extraction via Dynamic Multi-Pooling Convolutional Neural Networks
- Local Translation Prediction with Global Sentence Representation
總結(jié)
分類所需要的關(guān)鍵特征的位置信息很重要,那么類似Chunk-Max Pooling這種能夠粗粒度保留位置信息的機制應(yīng)該能夠?qū)Ψ诸愋阅苡幸欢ǔ潭鹊奶嵘饔梅ㄏ!1热缜楦蟹治觥?/p>