分类目录:《深入理解深度学习》总目录

前文介绍了因word2vec而流行的Word Embedding,这种表示方法比离散的独热编码要好很多,因为它不仅降低了维度,还可以反映出语义空间中的线性关系,如“国王-王后≈男-女”这种相似关系。因此word2vec及其他类似方法几乎是所有深度模型必备的方法。但是,这类表示方法是根据语料库生成的字典,一个单词对应一个固定长度的向量,如果遇到一词多义的情况,它就无能为力了。例如,在由“苹果股票正在上涨(Apple stock isrising),我不要这个苹果(I don’t want this apple)”构成的语料中,如果用word2vec模型实现词嵌入,就无法区分这两个苹果的含义。一词多义的情况是非常普遍的,如何有效解决一词多义的问题,一直是人们孜孜以求的目标。本节将围绕Contextual Word Embedding(语境词嵌入)这个话题展开,讨论如何解决一词多义的问题。

根据word2vec生成词嵌入的特点,人们又称其为静态词嵌入。无论上下文及其含义是什么,静态词嵌入都会给出相同的表示。所以,如果要考虑上下文,我们不能使用静态词嵌入的方法,而应该使用动态词嵌入(或预训练模型+微调)的方法来处理。ELMo、GPT、GPT-2、BERT、ENRIE、XLNet、ALBERT等都属于此类动态词嵌入方法,它们极大提升了相关领域的性能,且目前还处于飞速发展之中。

预训练模型

词嵌入是预训练模型(Pre-Trained Model,PTM)的学习载体,根据词嵌入的学习方式,可分为上下文无关和上下文有关两类,两者的区别在于一个词语的嵌入是否随着上下文动态地变化

上下文无关的词嵌入(Non-contextual Word Embedding):只关注学习词嵌入的单一表示的预训练模型(如word2vec),训练完成后,其词嵌入就固定了(或处于静态),而且一个词对应一个固定词向量,其预训练的词嵌入虽可以捕获单词的语义,但无法解决一词多义问题,而一词多义在NLP中是非常普遍的。为解决这个问题,人们提出了上下文有关的词嵌入。
上下文有关的词嵌入(Contextual Word Embedding):以学习上下文相关的词嵌入的预训练模型(如ELMo、BERT、GPT、XLNet等)是目前的研究重点,而且在很多领域取得了业内最好水平(SOTA),原因主要在于这些采用上下文有关学习方式的预训练模型是动态的。它们之所以能动态,是因为这些预训练模型除带有学习到的结果(即词嵌入)外,还带有学习这些词嵌入的模型架构和学到的权重参数等。因此,把这些预训练模型迁移到下游任务时,便可根据上下文动态调整。有些预训练模型甚至无须迁移,根据少量的提示语,就可直接生成新的语句,如GPT-2、GPT-3。

这些动态的预训练模型,依据的语言模型不尽相同,可主要分为三类。ELMo、GPT采用自回归语言模型(Autoregressive Language Model,通常简写为ARLM)、BERT使用掩码语言模型(Mask LanguageModel,MLM)、XLNet采用排列语言模型(PermutedLanguage Model,PLM)。

自回归语言模型(Autoregressive Language Model,ARLM)
自回归语言模型是指通过给定文本的上文或下文,对当前字进行预测。例如,根据上文内容预测下一个可能跟随的单词,即我们常说的自左向右的语言模型任务,或者反过来,根据下文预测前面的单词,这种类型的LM被称为自回归语言模型,其损失函数(从左到右):

其中,x < t = { x 1 , x 2 , ⋯   , x t − 1 } ,T为输入序列的长度。自回归语言模型表示序列文本的联合概率分布,为降低对长文本的概率估算难度,通常使用一个简化的n-gram模型。代表模型有ELMo、GPT、GPT-2、GPT-3等。

优点:文本序列联合概率的密度估计,即为传统的语言模型,天然适合处理自然生成任务。
缺点:联合概率按照文本序列从左至右分解(顺序拆解),无法通过上下文信息进行双向特征表征。
Mask语言模型(Mask LanguageModel,MLM)/自编码语言模型

Mask语言模型通过在输入序列中随机掩藏掉一部分单词,然后通过训练来预测这些被掩藏掉的单词。这点与噪音自编码(Denoising Autoencoder)很相似,那些被掩藏掉的单词就相当于在输入侧加入的所谓噪音。其损失函数如下所示:

其中,m ( x ) 、m ˉ ( x )分别表示从输入序列x xx中被掩藏的标识符集以及剩余的标识符集。代表模型有BERT、ERNIE、UniLM、T5、ALBERT。优点:本质为降噪自编码特征表示,通过引入噪声(MASK)构建MLM,获取上下文相关的双向特征表示。
缺点:引入独立性假设,为联合概率的有偏估计,没有考虑预测噪声(MASK)之间的相关性;不适合直接处理生成任务,MLM预训练目标的设置造成预训练过程和生成过程(或测试过程)不一致;预训练时的噪声在微调阶段不会出现,造成两阶段不匹配等问题。
排列语言模型(PLM)

排列语言模型综合了自回归语言模型和Mask语言模型的优点。其损失函数如下所示:

其中,z < t = perm ( x ) ,即序列x xx的随机排列。代表模型为XLNet。
优点:PLM借鉴NADE(Neural Autoregressive Distribution Estimation,神经自回归分布估计法)的思想,将这种传统的自回归语言模型进行推广,将顺序拆解变为随机拆解,从而产生上下文相关的双向特征表示。
缺点:针对某一个因式分解序列来说,被预测的标识符依然只能关注到它前面的序列,导致模型依然无法看到完整序列信息和位置信息。