CS224N-子词模型(subwords)

文章目录

  • 一、语言学知识(linguistics)
    • 语音学与音韵学
    • 形态学(Morphology)
    • 人类语言书写系统
  • 二、Subword Model
    • Byte Pair Encoding
    • Word piece model
    • Sentence piece model
  • 三、Subword-level language model
    • 模型实现:《Character-Aware Neural Language Models》
  • 四、Hybrid NWT
  • 五、Character-level

说明:本博文用于记录学习斯坦福CS224N的相关笔记,其中内容,截图来自相应课件和视频。

一、语言学知识(linguistics)

语音学与音韵学

  • 语音学(Phonetics):其研究对象是声波(sound stream)。
  • 音韵学(Phonology):音韵学假设人类语音中存在一些基本单位,例如音素,以及其它特征。

形态学(Morphology)

  • 词语形态学将词素(morphemes)视为最小的语义单位。
  • 不同语言的书写形式具有很大差异,例如中文词语之间没有空格,而英文词语之间会通过空格隔开。
  • 现实生活中,存在数量巨大的开放单词表,包括词语形态的变换(Rich morphology)、音译现象(Transliteration),以及非正式表达(informal spelling),例如缩写,网络用语等。

人类语言书写系统

CS224N-子词模型(subwords)_第1张图片
因为人类书写系统多种多样,同时词语存在形态变换,音译,缩写以及网络用语等现象,所以仅在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》

CS224N-子词模型(subwords)_第2张图片
该模型通过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

你可能感兴趣的:(CS224N)