课程主页: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有两个趋势:

  • 与单词级模型相同的体系结构,但是使用较小的单位:“单词片段”
  • 混合架构,主模型使用单词,其他的部分使用字母

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{}$,那么进入character级别的生成。

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的表示,而应使用“哈希技巧”来拥有固定数量的向量