ELMo论文阅读

ELMo论文阅读

一、背景

​ 词向量、自然语言表示是自然语言处理任务中的一个重要工具,从最初使用 one-hot 编码到后来基于 Word2Vec 生成词向量,再进入预训练时代,通过预训练模型生成动态预训练词向量,词向量的优化往往能够给 NLP 任务带来质的飞跃。目前,词向量的主流方式是通过预训练模型生成动态预训练词向量,该种方法生成的词向量能够表示文本深层语义,同时能够有效区分多义词,显著优于原始的词袋模型与以 Word2Vec 为代表的静态词向量。

​ 动态预训练词向量的诞生以 ELMo 模型作为里程碑,2018年,Matthew 等人在 NLP 领域顶级会议 NAACL 上发表了《Deep contextualized word representations》,正式提出 ELMo 模型,引入了动态词向量、预训练+微调、双向 LSTM 计算等多种思想,组合形成了里程碑式的模型 ELMo。后来诞生的众多预训练模型如 GPT、BERT、XLNet 等都在一定程度上借鉴了 ELMo 的思路,目前该模型也仍旧在众多 NLP 任务中被使用。

​ 本文主要阅读并总结了 ELMo 论文《Deep contextualized word representations》,对该论文提出的 ELMo 模型做了一个大致介绍。

二、目的

​ 在 ELMo 提出之前,学界主流的词向量表示是以 Word2Vec 为代表的静态词向量,该类词向量通过大量语料数据进行预训练生成,对每个 token 赋予一个向量值,实现了多重词义相似度,解决了维度灾难问题,在多种 NLP 下游任务中得到应用。关于 Word2Vec 的论文解读,可见博客:Word2Vec原论文阅读_西南小游侠的博客-CSDN博客

​ 但是,静态词向量还存在一些问题,在本文中,作者提出理想的词向量表示应该具备但静态词向量并不具备的两个特征是:① 能够拟合单词使用的复杂特征,如语法、语义等;② 能够模拟单词用法在不同语言语境中的变化,如一词多义性。

​ 从上述目标出发,作者通过精心设计解决了上述问题:① 通过使用 Bi-LSTM(双向长短期记忆递归神经网络),并使用各层隐含层输出的线性组合取代最后一层隐藏层输出,实现了词义、上下文依赖、语法的同时深度捕捉;② 抛弃了传统静态词向量中对每一个 token 赋予一个向量值的模式,而是给每个 token 分配一个函数,该函数的输入为该 token 的上下文。即是说,对于同一个 token,在不同语境下可能会有不同的词向量表示。这便解决了一词多义的问题。经过测试,ELMo 词向量可以用于多种模型、下游任务中,并提升了当时多个任务的最优表现。

三、思想来源

​ 在文献回顾中,作者介绍了 ELMo 核心思路的几种来源。整体来说,ELMo 模型的核心思路由五个方面构成:

​ ① 预训练词向量。早在2013年的 Word2Vec 模型中,预训练词向量的思想就成为了词向量训练的主流。该模型进一步发扬了预训练词向量的思想,通过更复杂的模型、更海量的训练语料实现了语义表示能力更强的动态预训练词向量。

​ ② 子词(subwords)表示。该思想来源于当时的一个最优表现模型,其对 token 以字符为单位进行卷积操作生成词表示来丰富传统词向量,以克服传统词向量的一些问题。在该模型中,同样使用了该方法进行了字符级卷积。

​ ③ 上下文相关的词表示。在2016年便有使用 BiLSTM 捕捉上下文实现上下文相关词编码的研究,也有使用 MT(机器翻译)系统进行计算的。该思想是本模型的核心思想之一,本模型整体便是使用了 BiLSTM 来进行上下文相关的动态词向量生成。

​ ④ 深度 RNN 的不同层编码。有研究证明,深度 RNN 中的不同层的隐含状态分别编码了不同类型的信息。本文基于该研究,使用了 BiLSTM 的各隐含层输出线性组合作为最终输出,取得了更好的表示效果,同时进一步证明了 BiLSTM 的底层更多编码了语法信息,顶层更多编码了语义信息。

​ ⑤ 预训练-微调模式(pretrain - finetune)。在2015年便有学者使用语言模型和序列自编码器预训练编码器-解码器,并对于特定任务进行微调,但尚未成为主流。ELMo 的诞生正是让该思想成为了 NLP 研究的主流思想。

四、具体模型

​ ELMo 的整体架构如下图(由于原论文未附图,此图源于网络):

img

​ 如图,ELMo 模型首先对于输入序列进行拆分,拆分到字符单位,再通过字符卷积层对字符进行卷积,对于每个 token ,输出一个以字符为单位卷积后的结果 x。

​ 接着,将卷积结果 x 输入 BiLSTM 中进行计算,并保存每一层隐含层输出,若有 L 层隐含层,则可以得到 2L 个输出(双向)。再将结果拼接通过一个线性分类器整合即可得到最终词向量输出。

​ 具体到每一部分,在字符卷积层,ELMo 首先将输入的 token 根据字符进行拆分,再将字符序列输入到若干个一维卷积核进行卷积、池化操作,卷积结果进行拼接并通过规整得到指定大小的向量结果,再经过两层 Highway 神经网络和一层线性分类器得到最终上下文无关的 token 表示。为何使用 Highway 网络,作者并未在论文中解释,但由于 Highway 网络的一大作用是防止梯度爆炸与梯度弥散,猜测有此目的。

​ 得到上下文无关的 token 表示后,将其输入一个 BiLSTM 网络,在论文中设置为双层。在此论文中,对 BiLSTM 的改造包括:① 输出每层隐藏层的隐含输出,作为最终输出的一部分。在以往的模型中,都只使用了最后一层的隐含状态,在此论文中,作者证明了各隐含层的表示信息不同,将各层隐含输出进行线性组合使用的效果优于只使用最后一层的隐含状态。② 前向和后向 LSTM 共享一部分参数。以往的模型往往将前向和后向 LSTM 分开训练,该模型则让前后向 LSTM 共享参数、一同训练,以实现前后上下文语义同时捕捉的目的。

​ BiLSTM 的输出包括字符卷积结果以及每层隐含层输出,由于字符卷积结果为上下文无关表示,表示了语法、词结构信息,底层隐含层输出表示了上下文相关的语法信息,顶层隐含层输出表示了上下文相关的语义信息,因此该输出可以深度表示多个信息,具有更强的表示效果。

​ 在预训练完成之后,针对下游任务微调时,将保持模型参数不变,输入的 token 根据上述过程进行计算,就能够得到动态、上下文相关的词向量表示。

​ 同时,为了更好地适应预训练-微调模式,作者对每一种下游任务设置了权重系数,ELMo 最终的输出将根据下游任务的权重系数对 BiLSTM 的输出进行组合,从而展现出对下游任务更好的适配性。

五、分析与评估

​ 作者在论文中针对各个 NLP 下游任务评估了 ELMo 的模型表现,证明在各个任务中,使用该任务的最优模型结合 ELMo 计算的词向量都能有效提升性能表现,在多个任务中实现了最优表现的突破,此处不再赘述。

​ 同时,作者基于 ELMo 的思路与其表现进行了分析,揭示出了几个较为重要的思路。

​ ① 组合网络多个隐含层输出是有效果的。通过实际实验证明,组合 BiLSTM 各隐含层输出比直接使用最后一层输出能得到一定的性能提升,这使得学界开始探讨利用多层输出的方法和思路。

​ ② 预训练词向量一般是作为 BiLSTM 或其他模型的最底层输入,但作者也探讨了将 ELMo 生成的词向量加入到模型的输出之中,在一些特点任务上也能取得一定的优化效果。但此思想似乎并未得到学界的广泛探讨和认可。

​ ③ 经过对 BiLSTM 不同层输出的评估,作者证明了语法信息在较低的层更好地表示,语义信息在较高的层更好地表示,这为第一点思想提供了实证依据,也为更广泛的表示学习探究提供了进一步思路。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值