NNLM最新論文調研-1-《Character-Aware Neural Language Models》
02-28
- motive
- 傳統NNLM輸入是WordEmbedding,參數多
- 對於WordEmbedding輸入,沒有引入子詞和字元等先驗信息
- 很多以子詞作為輸入的語言模型,子詞切分需要有監督的進行
- 綜合以上三點,本文提出了基於字元的語言模型,用字元級的Embedding替代單詞級的,一方面可以減少輸入端的參數;另一方面可以引入字元級的信息,保證字元相近的單詞可能Embedding也比較類似,而且對oov的效果較好
- method
- 1、將詞拆成字母,每個字母都有字母向量
- 2、字母向量組合,並通過不同的kernelsize的卷積核,進行卷積得到不同的詞向量,上圖裡面的紅藍黃分別代表不同的核
- 3、不同詞向量做maxpooling,然後拼接成最終的詞向量
- 4、然後送入higway層+lstm+softmax(highway層類似於殘差,緩解梯度消失)
- result
- 減少參數主要是輸入端的Embedding從單詞級到了字母級,但是輸出層依然沒有減少參數,其實主要的參數量都是在輸出層
- 字元級的輸入可以處理oov,而且保證字形相近的單詞Embedding也比較相似
- 改進論文
- INVESTIGATIONS ON BYTE-LEVEL CONVOLUTIONAL NEURAL NETWORKS FOR LANGUAGE MODELING IN LOW RESOURCE SPEECH RECOGNITION, Icassp 2017
- 對於不能進行字元分解的語種,對Unicode編碼進行同樣的分解
- Exploring the Limits of Language Modeling, arXiv 2016
- 把softmax層的詞向量與隱層內積中的詞向量也運用character-cnn來計算
- 減少模型存儲,但增大了計算量,且效果下降較多;
- 這篇多說一點,為了減少參數量最好還是輸出層的softmax消減參數最好,效果下降在預料之中,但是為什麼計算量會增大要去仔細看一下論文,可能是隱層內積計算量增大導致的,如果只做softmax應該顯著減小才對。當然這麼簡單地去做效果肯定很差,畢竟輸出的語義是以單詞為基本單位而不是字元
推薦閱讀:
TAG:自然語言處理 | 神經網路語言模型 | 深度學習DeepLearning |