Subword Models
第12课:来自单词部分的信息:子单词模型
- 1.一小部分语言学
- 2.纯字符级模型
- 3.子单词模型:字节对编码和朋友
- 4.混合字符和单词级别模型
- 5.fastText
1. 人类语言的声音:Phonetics and phonology
- Phonetics是声音流–毫无争议的“物理”
- Phonology假设一小套或几套独特的分类单元:音素或独特的特征
- 可能是普遍的类型学,但可能是特定语言的实现
- 类别感知的最佳证据来自语音学
字符级模型
1.单词嵌入可由字符嵌入组成
- 为未知单词生成嵌入
- 相似的拼写共享相似的嵌入
- 解决OOV问题
2.可以将连接的语言当作字符来处理
两种方法都已证明非常成功!
大部分深度学习NLP的工作都是从书面形式的语言开始的-它是易于处理的,容易找到的数据,但是人工语言编写系统不是一回事!
2.纯字符级模型
-
在上一堂课的句子分类中,我们看到了一个纯字符级模型的好例子:
用于文本分类的超深度卷积网络
Conneau,Schwenk,Lecun和Barrault EACL 2017 -
通过深度卷积堆栈获得强大结果
纯字符级NMT模型
English-Czech WMT 2015成绩
-
Luong和Manning将纯字符级seq2seq(LSTM)NMT系统作为基线进行了测试
-
在单词级基线上运行得很好
-
但这是ssllooooww
-
3周的训练……在运行时不那么快
English-Czech WMT 2015 实例
无需显式细分的全字符级神经机器翻译
在LSTM seq2seq模型中具有深度的更强字符结果
3.子词模型:两种趋势
- 与单词级模型相同的体系结构:•但使用较小的单元:“单词片段”
- 混合架构:•主模型有文字;字符的其他东西
字节对编码
最初是一种压缩算法:
•最频繁的字节对↦一个新字节。
分词算法:
- •尽管是自下而上的聚类
- •从数据中所有(Unicode)字符的双字词汇开始
- •最常见的ngram对↦新的ngram
- 确定目标词汇量,并在达到目标词汇量时停止
- 确定性最长的单词分段
- 分段仅在某些先前标记器(通常是MT的Moses标记器)标识的词内
- 自动为系统决定词汇•不再以常规方式强烈使用“单词”
单词/句子模型
- 谷歌NMT (GNMT)使用了它的一个变体
-
而不是char n-gram计数,使用贪婪近似最大化语言模型对数似然来选择片段
添加n个gram,最大限度地减少困惑
-
Wordpiece model在文字内标记
-
Sentencepiece model来源于原始文本
空格被保留为特殊标记(_),并正常分组。
您可以通过连接片段并将它们重新编码为空格来在末尾反转内容。 -
BERT使用了Wordpiece model的一种变体
- 如果你在一个基于其他词的模型中使用BERT,你就必须处理这个问题
4.字符级来构建单词级
- 卷积字符生成单词嵌入
- 固定窗口的单词嵌入用于词性标注
更复杂/复杂的方法
动机: - 派生出能够有效跨多种语言的强大、健壮的语言模型。
- 编码子词相关性:eventful, eventfully, uneventful…
- 解决先前模型的罕见词问题。
- 用更少的参数获得可比较的表达性。
- 论文质疑了使用词嵌入作为神经语言建模输入的必要性。
- 字符上方的CNN +Highway Network可以提取丰富的语义和结构信息。
- 关键思想:您可以构成“构建基块”以获得细微而强大的模型!
混合NMT
- 两全其美的架构:•主要在单词级别进行翻译•仅在需要时转到字符级别
- 对BLEU的复制机制进行了超过2处改进,以尝试填写稀有单词
完美的翻译!
基于字符的:错误的名称翻译
基于单词:不正确的对齐方式
基于字符的字符和混合字符:diagnózen的正确翻译
基于单词:身份复制失败
混合:正确,11岁–Jedenáctiletá
错误:.ShaniBartová
5.单词嵌入的字符
词嵌入和词形态联合模型(Cao和Rei,2016年)
- 与w2v相同,但使用字符
- 双向LSTM来计算嵌入
- 模型试图捕获形态
- 模型可以推断词根
FastTextembeddings - 目标:下一代高效的类似于word2vec的单词表示库,但更适合于具有很多形态的稀有单词和语言
- 带有字符n-gram的w2v跳过语法模型的扩展
单词相似性数据集得分(相关性)
稀有词的差别收益
参考
Stanford CS224N NLP with Deep Learning Winter 2019 课件