0%

semi-supervised learning in NLP

Semi-supervised learning on NLP

参考stanford nlp 2018 lecture 17

Suggested Readings:

  • [Semi-Supervised Sequence Learning]
  • [Learned in Translation: Contextualized Word Vectors]
  • [Deep Contextualized Word Representations]
  • [Adversarial Training Methods for Semi-Supervised Text Classification]

这里讲解三种主要的半监督学习技术:

1. Pre-training

预训练分成两个主要阶段:

  • 首先在无标签样本上的无监督模型
  • 然后将无监督模型的权重迁移到监督模型,再在有标签数据上进行训练(这里有不同模型会在无监督模型的权重上进行fine-tune,有些不会)

流程如下图所示:

大家熟悉的典型例子是Word2Vec

  • shared part of the model: word embedding;
  • 没有unsupervised-only部分;
  • supervised-only部分是除去word embedding 之外的模型;

下面考虑一下,为何pre-training这种策略可以work呢?

其实可以将这种预训练当做有监督学习模型的一种更加智能的初始化。换句话说,此时输入模型的不再是raw data,需要模型从中自主学习诸如词义、句义等相关表示,而是直接将这种表示直接作为输入塞入模型。

具体应用到NLP中,“预训练”这种策略是如何生效的呢?一般来说,大多数基于神经网络的NLP应用框架如下所示:

这里Embedding loookup层一般对应于这里的预训练层,当然,目前也有一些其他模型会区分pre-trained encodersupervised encoder

下面介绍三种pre-training的策略:

1) Auto-encoder

这里应用自编码机的最主要目的是为了获取输入数据中最核心的信息,而“核心信息”的定义这里是基于一个假设:可以被无损重构的信息。在训练完成Auto-encoder之后,去除decoder部分,直接把encoder的结果作为后续神经网络的输入即可。框架如下:

2) CoVe

3) ELMo

2. Self-training

3. Consistency regularization