NNLM最新論文調研-1-《Character-Aware Neural Language Models》

  • 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 |