神经翻译笔记4扩展d. 迁移学习概述与前BERT时代的NLP预训练模型
本节仍然是为了系列笔记的完整性而做,主要介绍迁移学习的概念,以及BERT出现之前NLP领域两个重要的预训练模型ULMFit和ELMo
迁移学习
本节完全来自于Sebastian Ruder博士论文的第三章。原文一共有90页,本文作为转记,完全覆盖原文的所有内容有些困难,所以只能有所取舍——例如原文引用了大量相关工作,本文由于篇幅的限制,只能通通略去,因此强烈建议有兴趣的朋友也阅读原文,顺藤摸瓜
在经典的有监督学习中,如果要为某个任务或某个领域 A A A训练模型,一般会假设我们对此任务/领域有足够数据,而且也只能预期模型在同样的任务/领域上能够取得不错的效果——也就是说,前提假设是数据都是独立同分布(i.i.d.)的。如果任务或者领域变了,就要重新收集数据,重新从头训练模型。如果新的任务/领域没有足够数据,传统的有监督学习方法就不再适用,这时就需要迁移学习的帮忙,因为这种方法可以把相关任务/领域(称为源任务/源领域)的知识提取出来,应用在目标任务/目标领域上。通常情况下,我们假设对目标任务/领域,有少量有标签数据,或者大量无标签数据
为了更简洁的描述,可以引入一些符号定义和例子。记领域为 D \mathcal{D} D,由特征空间 X \mathcal{X} X和该特征空间上的边缘概率分布 P ( X ) P(X) P(X)组成,其中 X = { x 1 , … , x n } ∈ X X = \{x_1, \ldots, x_n\} \in \mathcal{X} X={ x1,…,xn}∈X。以文档分类问题为例,如果使用词袋模型, X \mathcal{X} X就是所有文档表示组成的空间, x i x_i xi是第 i i i个文档的向量表示, X X X是一个随机变量,表示用来训练的文档样本集合。即 D \mathcal{D} D可以表示为一个元组
D = { X , P ( X ) } \mathcal{D} = \{\mathcal{X}, P(X)\} D={ X,P(X)}
对给定的领域 D \mathcal{D} D,任务 T \mathcal{T} T包含一个标签空间 Y \mathcal{Y} Y、一个先验分布 P ( Y ) P(Y) P(Y)和一个条件概率 P ( Y ∣ X ) P(Y|X) P(Y∣X),其中条件概率通常从训练数据中学到。仍以分档分类问题为例,此时 Y \mathcal{Y} Y是所有可能的标签组成的集合,即 { T r u e , F a l s e } \mathtt{\{True, False\}} { True,False}。所以 T \mathcal{T} T也可以表示为一个元组
T = { Y , P ( Y ) , P ( Y ∣ X ) } \mathcal{T} = \{\mathcal{Y}, P(Y), P(Y|X)\} T={ Y,P(Y),P(Y∣X)}
使用上面的记号,并以 S S S表示“源端”, T T T表示“目标端”,则迁移学习可以分为五大应用场景,分别为
- P X ( Y S ) ≠ P T ( Y T ) P_X(Y_S) \not= P_T(Y_T) PX(YS)=PT(YT),源任务和目标任务标签的先验分布不同
- P X ( Y S ∣ X S ) ≠ P T ( Y T ∣ X T ) P_X(Y_S|X_S) \not= P_T(Y_T|X_T) PX(YS∣XS)=PT(YT∣XT),源任务和目标任务的条件概率分布不同,例如两者的类别不平衡
- Y S ≠ Y T \mathcal{Y}_S \not= \mathcal{Y}_T YS