简介
预训练模型最开始是在图像领域提出的,获得了良好的效果,近几年才被广泛应用到自然语言处理各项任务中。
预训练模型的应用通常分为两步:
第一步:在计算性能满足的情况下用某个较大的数据集训练出一个较好的模型
第二步:根据不同的任务,改造预训练模型,用新任务的数据集在预训练模型上进行微调。
预训练模型的好处是训练代价较小,配合下游任务可以实现更快的收敛速度,并且能够有效地提高模型性能,尤其是对一些训练数据比较稀缺的任务。换句话说,预训练方法可以认为是让模型基于一个更好的初始状态进行学习,从而能够达到更好的性能。
目前有两种预训练语言模型用于下游任务的方法:feature-based(以ELMo为例)和fine-tuning(以BERT为例)。
Feature-based
Feature-based一般指使用预训练语言模型训练出的词向量作为特征,输入到下游目标任务中。
「ELMo」
Model Architecture
上图展示的是ELMo模型结构,它的网络结构采用了双层双向LSTM。
Model Inputs
ELMo的输入为句子中每个单词的Word Embedding。论文原文中说的是:via token embeddings or a CNN over characters。换句话说,它可以是预训练好的embedding,也可以是采用字符卷积得到的embedding表示。
Model outputs
每个单词都能从模型的每层提取到与之对应的不同信息层次的 Embeddings:
- 第一层双向 LSTM 对应的 Syntax