CS224N-子詞模型(subwords)


說明:本博文用於記錄學習斯坦福CS224N的相關筆記,其中內容,截圖來自相應課件和視頻。

一、語言學知識(linguistics)

語音學與音韻學

  • 語音學(Phonetics):其研究對象是聲波(sound stream)。
  • 音韻學(Phonology):音韻學假設人類語音中存在一些基本單位,例如音素,以及其它特徵。

形態學(Morphology)

  • 詞語形態學將詞素(morphemes)視爲最小的語義單位。
  • 不同語言的書寫形式具有很大差異,例如中文詞語之間沒有空格,而英文詞語之間會通過空格隔開。
  • 現實生活中,存在數量巨大的開放單詞表,包括詞語形態的變換(Rich morphology)、音譯現象(Transliteration),以及非正式表達(informal spelling),例如縮寫,網絡用語等。

人類語言書寫系統

在這裏插入圖片描述
因爲人類書寫系統多種多樣,同時詞語存在形態變換,音譯,縮寫以及網絡用語等現象,所以僅在word level進行建模是不夠的,需要model blow word,即對組成詞語的詞素、音素等基本單元進行建模,從而獲得詞語的形態特徵和語音、音韻特徵。(儘管傳統研究不認爲詞素、音素具備語義信息)

二、Subword Model

Byte Pair Encoding

《Neural Machine Translation of Rare Words with Subword Units》(ACL2016)中採用一種稱之爲“Byte Pair Encoding”的方法來實現subword model,詳見CS224N課件Lecture12。

Word piece model

Word piece是指在Word內部進行分詞,然後藉助於n-gram 語言模型生成char序列的embedding,即subword,然後根據subword embeding來獲得對應word的embedding。代表模型是Google NWT v1。

BERT模型中也使用了word piece的方法。在BERT中,對於常用詞,採用word embedding;而對於未登錄詞,則採用word piece的方法來得到相應的embedding。

Sentence piece model

Sentence piece model則是將空格視爲一種特殊的符號“_”,然後直接對raw text進行分詞。代表模型是Google NWT v2

三、Subword-level language model

Subword-level language model 希望通過多語言的大量語料來訓練出一個有效的語言模型(因爲不同語言在書寫形式上具有較大的差異,所以word-level 語言模型都是基於某種特定語言的語料來進行訓練的)。其優勢在於:

  • Subword 可以對同一詞語的不同形態進行編碼,從而獲取到相應的詞彙特徵。

  • 可以處理word-level語言模型存在的OOV問題。(未登錄詞)

  • 可以用更少的參數來獲得與word-level 模型對等的表達(comparable expressivity)

模型實現:《Character-Aware Neural Language Models》

在這裏插入圖片描述
該模型通過Highway Network來連接不同粒度的詞向量。其實驗結果證明了CNN+Highway Network可以獲取豐富的語義和結構信息。

四、Hybrid NWT

Subword model的另一種思路是在模型中採用word-level與character-level的混合詞向量,例如Google 的Hybrid NWT。(Achieving Open Vocabulary Neural Machine Translation with Hybrid Word-Character Models. ACL 2016.)

Hybrid NWT採用Encoder+Decoder的結構:

  • Encoder:Word-level + char-stack-LSTM
  • Decoder:採用了兩階段的decode方法,即先使用word-level模塊進行decode,然後對於生成文本中的[UNK]使用char-level模型進行decode,生成對應的單詞。

從結果來看,Word-level model會出現邊界對齊錯誤,複製錯誤;Char-level會出現翻譯錯誤;Hybrid可以有效避免這些錯誤。

五、Character-level

與word-level mode相比,Char-level model的優勢在於

  • 可以生成未知詞語的embedding,從而解決word level model的OOV問題
  • 與Word Embedding類似,具有相近拼寫形式的詞語的embedding形式也相似
  • 可以處理connected language
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章