课程内容
- 语言学的一点小知识
- 纯粹的字符级别的模型
- 子单词模型:Byte Pair Encoding and friends
- Hybrid character 和单词级的模型
- fastText
(这节课也没怎么听懂,以后要边听边做笔记了)
一、人类语言声音:语音学和音系学
语音学是音流,这是属于物理层面的东西
词法学:一个n-grams的代替方案
在基于单词的模型中存在一些问题:
需要处理很大的词汇表,在英语中单词只要变个形态就是另一个单词了,比如说:gooooood bye
字符级别模型
单词嵌入可以由字符嵌入表示:
- 能为不知道的单词生成嵌入
- 相似的拼写有相似的嵌入
- 解决了oov问题
传统来说,一个因素或者一个字母不是一个因素单元,但是深度语言模型把它们组合在一起了。
单词之下的书写系统
大部分深度学习的任务都是从语言的书写形式来处理语言的,这是一个简单的过程,需要寻找数据。
纯粹的字符级别的模型
- 刚开始效果并不好
- 后来只有解码器使用
- 然后变成了有前景的结果
3、子单词模型:两个趋势
和单词级别的模型有相同的架构
但是使用了更少的词单元:“词块”
Hybrid architectures:主要的模型含有单词,一些其他的含有字符
字节对的编码
使用的是一个压缩算法:将大部分频繁出现的字节对标记为新的字节对。
- 有一个目标词汇量,当你达到时就停止
- 确定最长段的单词分割
- 分割的单词是由之前的标记器标记的
- 不再有传统意义上的单词出现
词块、句子块模型:
谷歌使用的模型
比起使用n-gram模型,使用一个贪心算法最大化语言模型的对数可能性来选择块
最大化的增加n-gram来减少复杂度
词块模型标记内部单词,句子块模型根据原始文本工作。
四、字符级别去构建单词级别的
- 字符的卷积来生成词嵌入
- 使用pos标记固定的窗口
五、FastText embeddings
使用n-grams和整个单词来代表单词
,
然后把它们加起来: