CS224N学习笔记(十二)Subword Models

1.引入

课程首先花了很多时间说明了一下语言的特点和语言词汇内部的结构相关,比如英语的发音(Phonetics and phonology)还有英语的词法(Morphology)。
另外,不同语言的写作表达的不同也体现在,词汇的内部结构上。这些都为sub-word NLP模型提供了一定的形式上的基础。
常规的word level model还需要解决大量的词汇问题,包括:复杂的词法词,人民词的音译,非正式的拼写等。如图:
CS224N学习笔记(十二)Subword Models_第1张图片

2.Character-Level Models

通常针对字符级的模型有两种处理思路:一种是把原有的词向量分解处理,一种是把连接的语言分解成字符。
CS224N学习笔记(十二)Subword Models_第2张图片
课程又说明了一些Purely character-level model的应用与论文,通过一篇文章介绍了Fully Character-Level Neural Machine Translation without Explicit Segmentation。
论文的模型结构如图所示:
CS224N学习笔记(十二)Subword Models_第3张图片
首先是对text做字符级的向量嵌入(把字符随机赋值后放到RNNs或CNNs中训练出字符的embedding),接着做CNN,然后去max-pool,对maxpool的结果拼接得到segment EmGRYGbeding,之后把他们输入highway网络,最后在输入到双向GRU网络进行编码,解码也是采用的字符级的GRU。
课程在另一篇论文(Revisiting Character-Based Neural Machine Translation with Capacity and Compression. 2018.Cherry, Foster, Bapna, Firat, Macherey, Google AI)中展示了纯字符级模型的效果。经过对比可以发现,字符级的模型在处理词法比较复杂的语言时,相对于word的level的效果更好,但是缺点是,字符集模型运行时间非常的长。如图所示:
CS224N学习笔记(十二)Subword Models_第4张图片CS224N学习笔记(十二)Subword Models_第5张图片

3.Sub-word models

课程这里介绍了介于word-level和char-leval之间的Sub-word models,主要又两种趋势,一种是仍采用和word-level相同的结构,只不过采用更小的单元’word pieces’;另外一种是采用混合结构,word和char都有。

Byte Pair Encoding

Byte Pair Encoding,简称BPE。是一种压缩算法。
给定了文本库,我们的初始词汇库仅包含所有的单个的字符,然后不断的将出现频率最高的n-gram pair作为新的ngram加入到词汇库中,直到词汇库的大小达到我们所设定的某个目标为止。如图所示:
CS224N学习笔记(十二)Subword Models_第6张图片
CS224N学习笔记(十二)Subword Models_第7张图片
使用这种方法可以自动生成vocab。
谷歌的NMT模型有两个版本,版本一采用的是BPE模型,版本二对BPE模型进行了改进,称为wordpiece mode。这种方法不在使用n-gram的计算来算,而是使用搜索算法搜索最大化的该语言模型的片段去选择pieces。
CS224N学习笔记(十二)Subword Models_第8张图片
另外还有一种模型叫sentencepiece,它直接从raw text中获取,同时把空格视为一种特殊的token(_)
CS224N学习笔记(十二)Subword Models_第9张图片
课程介绍了几篇在这方面发展的论文,有用Character-level去产生词向量的(Learning Character-level Representations for Part-of Speech Tagging),还有用char-level结合high-way网络进行机器翻译的。
CS224N学习笔记(十二)Subword Models_第10张图片
课程分析用char-level得到词向量的特点,经由他们直接输出的word-embedding更倾向于在形状上相似,输入high-way之后,形状上的相似会朝含义上的相似发展。如图所示:
CS224N学习笔记(十二)Subword Models_第11张图片
使用char-level的可以轻易解决,此没有出现在词库的情况,如图所示:
CS224N学习笔记(十二)Subword Models_第12张图片

Hybrid model

混合模型即两种方式并存的模型,在正常处理时采用word-level的模型,当出现奇怪的词的后,使用char-level级的模型。
CS224N学习笔记(十二)Subword Models_第13张图片
一篇论文的结构如图所示:
CS224N学习笔记(十二)Subword Models_第14张图片
可以看到输入未知的单词时,采用char-level进行编码,输出< unk >时也采用char-level级的进行解码。同时训练跟beam-search也时要同时对两个结构进行。

4 Chars for word embeddings

采用subword的方式长生词向量,课程中提到了FastText。主要思路如图所示:
CS224N学习笔记(十二)Subword Models_第15张图片

你可能感兴趣的:(CS224N学习笔记(十二)Subword Models)