CS224N Natural Language Processing with Deep Learning Lecture 12
课程主页:https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194/
视频地址:https://www.bilibili.com/video/av46216519?from=search&seid=13229282510647565239
这里回顾CS224N Lecture 12的课程内容,这一讲主要介绍了Subword模型。
备注:图片均来自课程课件。
Fully Character-Level Neural Machine Translation without Explicit Segmentation
这里介绍Character-Level(也称为Sub-word models)的机器翻译模型,该模型使用了卷积层:
Sub-word models: two trends
Sub-word models有两个趋势:
- 与单词级模型相同的体系结构,但是使用较小的单位:“单词片段”
- 混合架构,主模型使用单词,其他的部分使用字母
Byte Pair Encoding
该方法的思路是将出现频率最高的byte对变成一个新byte。
考虑一个分词算法:
- 从字符词汇开始
- 最常见的n-gram对变成新的的ngram
来看一个具体例子:
Wordpiece/Sentencepiece model
- Google NMT(GNMT)使用了这种形式的变体
- V1:wordpiece模型
- V2:sentencepiece模型
- Wordpiece模型标记内部单词
- Sentencepiece模型从原始文本开始工作
Character-Aware Neural Language Models
再来看一个基于character的神经翻译模型例子,整体架构如下:
Technical Approach
Convolutional Layer
- 对character级别的输入做卷积
- 关于时间维度使用最大池化(即选择有效的n-gram)
Highway Network (Srivastava et al. 2015)
其中
- $t$是Transform Gate
- $y$是Input
- $1-t$是Carry Gate
该网络
- 模拟n-gram交互。
- 在保留原始信息的同时进行转换。
- 功能类似于LSTM存储单元
Long Short-Term Memory Network
- 分层Softmax,用于处理大量输出词汇。
- 通过截断的反向传播进行训练。
Hybrid NMT
Hybrid NMT是两全其美的架构:
- 主要在单词级别进行翻译
- 仅在需要时进入character级别
架构如下:
该模型一开始在单词级别生成翻译,如果生成$\text{
Chars for word embeddings
- 词嵌入和词形态的联合模型(Cao and Rei 2016)
- 与w2v相同的目标,但使用字符
- 双向LSTM计算嵌入
- 模型尝试捕获形态
- 模型可以推断出词根
FastText embeddings
利用子词信息丰富词向量
- 目标:下一代高效的类似于word2vec的单词表示库,但更适合于具有多种形态的稀有单词和语言
- w2v skip-gram的扩展,包含character n-gram
- 用扩展了边界符号的char n-gram和整个单词表示单词:
- $\text{where}=<\text{wh, whe, her, ere, re}>,<\text{where} >$
- 将单词表示为这些表示的总和。单词的上下文分数为:
- $S(w, c)=\sum_{g \in G(w)} \mathbf{z}_{g}^{\mathrm{T}} \mathbf{v}_{c}$
- 细节:不要共享所有n-gram的表示,而应使用“哈希技巧”来拥有固定数量的向量
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Doraemonzzz!
评论
ValineLivere