课程主页:https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194/

视频地址:https://www.bilibili.com/video/av46216519?from=search&seid=13229282510647565239

这里回顾CS224N Lecture 13的课程内容,这一讲主要介绍了上下文词表示法和预训练。

备注:图片均来自课程课件。

Pre-trained word vectors

我们可以从随机词向量开始,然后对它们进行我们感兴趣的任务的训练,预训练可以产生一定的效果:

Tips for unknown words with word vectors

  • 简单的方法
    • 训练时间:词汇表是
    • 将所有较稀有出现频率$(\le 5)$的单词映射到$<\text{UNK}>$,为其训练一个词向量
    • 运行时:如果出现不在词汇表中的单词,那么用$<\text{UNK}>$表示
  • 问题
    • 无法区分$<\text{UNK}>$单词及其含义
  • 解决手段
    • 使用char-level模型处理$<\text{UNK}>$

Representations for a word

  • 到目前为止,每个单词只有一种词向量表示
  • 这有两个问题:
    • 单词类型总是相同,无论单词出现的上下文如何
    • 我们对单词的只有一种表示形式,但是单词具有不同的方面,包括语义,句法行为

Tag LM

  • 想法:希望在上下文中了解单词的含义,但通常仅在带有小型任务标签的数据(例如NER)上学习任务RNN
  • 为什么不做半监督方法,在大型的未标记语料库上训练NLM,而不仅仅是单词向量?

ULMfit

ULMfit是Universal Language Model Fine-tuning的缩写,其思路是使用了迁移学习:

  • 在大型通用领域语料库上训练LM(使用biLM)
  • 针对目标任务数据调整LM
  • 微调目标任务的分类器

Transformer

Transformer在之前介绍的attention基础上建立,主要目的是加快运行速度:

下面分别介绍每个组件:

Dot-Product Attention

假设有查询$q$,键为$K$,值为$V$,我们得到的结果为

如果将所有$q$拼接成$Q$,那么得到矩阵形式:

其中右边的维度为:

softmax是关于行操作的。

Scaled Dot-Product Attention

该操作是对结果进行缩放:

Self-attention in the encoder
  • 输入的单词向量是$Q,K,V$
  • 换句话说:词向量本身彼此选择
Multi-head attention
  • 简单的self-attention的问题:
  • 单词彼此交互的方式唯一
  • 解决方案:多头注意力
  • 首先通过$W$矩阵将$Q,K,V$映射到许多低维空间
  • 然后使用注意力机制,将输出拼接,最后通过线性层

Complete transformer block
  • 每个块都有两个“子层”
    • Multihead attention
    • 2层前馈NN(带有ReLU)
  • 每个子层还有如下细节:
    • 残差连接和LayerNorm
    • LayerNorm(x + Sublayer(x))
    • Layernorm将每层更改为均值0和方差1

Encoder Input

单词编码加位置编码,因为attention没有位置信息。

Transformer Decoder
  • 解码器中的2个子层有所变化
  • 对先前生成的输出使用self-attention,利用mask:
  • Encoder-Decoder Attention,其中Q来自先前的decoder,而K和V来自encoder

BERT

BERT是Bidirectional Encoder Representations from Transformers的缩写,其主要思路如下:

  • 问题:语言模型仅使用上文或下文,但是语言理解是双向的。
  • 为什么之前的LM是单向的?
    • 原因1:需要方向性才能生成格式正确的概率分布。
    • 原因2:单词可以在双向编码器中“看到自己”。

BERT的训练思路如下:

  • 屏蔽掉$k$%(一般取$k=15$)的输入单词,然后预测被屏蔽的单词
  • 屏蔽太少:训练价值太大
  • 屏蔽太多:上下文不足
BERT model architecture and training

模型结构:

  • Transformer编码器(与以前一样)
  • Self-attention⇒没有局部偏见
    • 长距离具有“平等机会”
  • 每层单次乘法⇒GPU / TPU上的效率

训练:

  • 在Wikipedia + BookCorpus上进行训练