[文献阅读]——Deep contextualized word representations

目录

  • 引言
  • 模型
    • Bi LM
    • ELMo
    • 有监督NLP任务
    • 预训练模型
  • 评估
  • 分析
  • 补充材料

引言

高质量的单词表示注重建模

  • 单词的语法、语义特征(由浅层网络捕捉)
  • 单词的上下文特征(一词多义、polysemy)(由深层网络捕捉)

传统的词嵌入:

  • 通过整个输入句子的函数,来给每一个token分配一个向量表示(what?
  • 只支持单一的、上下文无关的词向量表示
    改进的词嵌入:
  • 使用子词信息来丰富特征
  • 给每一个word sense而不是word学习一个单词的向量

EMLo的词嵌入:

  • 使用language model训练目标,使用深层的双向LSTM
  • 通过使用 character convolutions来导入子词信息
  • 并没有显式地预测定义好的word sense,而是隐式地(无缝的、seamlessly)融合了word sense信息
  • 预训练好biLM,然后固定权重,并添加额外的task-specific model

模型

Bi LM

forward LM:
在这里插入图片描述
backward LM:
[文献阅读]——Deep contextualized word representations_第1张图片
bi LM
对于position k,把前向预测、后向预测的loss加起来
[文献阅读]——Deep contextualized word representations_第2张图片
特别的, θ x ( t o k e n e m b e d d i n g s ) 和 θ s ( s o f t m a x l a y e r ) θ_x(token embeddings)和θ_s(softmax layer) θxtokenembeddingsθssoftmaxlayer共享参数

ELMo

把ELMo应用到下游任务时,对于每一个token,首先得到2L+1个representaion:
[文献阅读]——Deep contextualized word representations_第3张图片
然后:

  1. 可以只选用第L层的hidden state
    在这里插入图片描述
  2. 也可以加权求和L+1层的state(第1层是token embeddings)
    [文献阅读]——Deep contextualized word representations_第4张图片
    其中,s是一个task-specific的可训练权重(?),用于加权求和所有的state;r是一个缩放参数,用于加快optimization process

有监督NLP任务

首先定义一个task-specific模型,该模型除了原始参数,还有一个线性层(就是上面的s)。在模型的输入部分,首先使用预训练的词嵌入 x k x_k xk来给每一个token一个向量,然后计算上面的 E L M o k t a s k ELMo_{k}^{task} ELMoktask,和 x k x_k xk做拼接,作为模型的真实输入。
在这里插入图片描述

ELMo不仅可以用在模型的输入部分,在模型为每一个token计算了隐向量 h k h_k hk后,也可以做拼接。
在这里插入图片描述
另外

  • 给ELMo增加dropout能够提升性能
  • 在loss中加上ELMo权重的L2范式,来进行正则化
  • 以上两点能够:给ELMo的权重施加一个归纳偏置(inductive bias),让其更接近于所有biLM layers的平均

预训练模型

组成:

  • 两层biLSTM+512维的映射层+中间的残差连接(才两层?)
  • 2048个字符级别的n-gram卷积滤波器+两个highway层+512维的映射层(这个不懂)

这里的finetune意味着:首先忽略下游任务,让预训练好的ELMo在training data上做一轮的finetune,然后固定参数,做和“有监督NLP任务”一样的操作。

评估

QA:回答是给定段落中的一个span
Textual entailment
Semantic role labeling:预测谓词的论元(主语、宾语)
Coreference resolution:给实义相同的单词聚类
Named entity extraction:PER\LOC\ORG\MISC
Sentiment analysis:五类细粒度的情感分类

分析

不同层的权重:

  • 使用所有层>仅使用最后一层
  • λ=0.001 > λ=1

EMLo加在哪里:

  • SQuAD和SNLI中,inp和oup layer都加上,效果更好
  • 其它任务中,仅加载inp layer效果更好

BiLM捕捉到了什么信息?

  • WSD:首先计算所有word sense的向量表示,然后给每一个word做预测。second layer > first layer
  • POS tagging: first layer > second layer

采样高效性

  • 加入了EMLo,达到最好结果所需要的epoch大大减小
  • 所需要的training set的规模也可以减小

补充材料

finetune:

  • 忽略下游任务,现在训练集上fine tuned一轮,然后固定参数,进行下游任务
  • finetune之后,困惑度(perplexity)大大下降;但下游任务的性能并不都提高

其它任务:略

你可能感兴趣的:(文献阅读之家)