大语言模型系列-ELMo

文章目录


前言

在前文大语言模型系列-word2vec已经提到word2vec的缺点:

  • 为每个词汇表中每个分词静态生成一个对应的词向量表示,没有考虑到语境,因此无法无法处理多义词

ps:先训练一个词嵌入模型,生成词向量表示,然后将生成的词向量输入下游任务新的模型中进行具体NLP任务训练,由于下游任务不再需要使用这些词嵌入模型,因此整个过程计算效率方面通常非常低,如Skip-Gram和GloVe。

ELMo对上述缺点进行了改进。


提示:以下是本篇文章正文内容,下面内容可供参考

一、ELMo的网络结构和流程

基于ELMo的NLP任务分为两个阶段:

  1. 第一个阶段是预训练,使用在大规模语料库上训练好的Word Embedding,输入ELMo模型中进行预训练
  2. 第二个阶段是在做下游任务时,从预训练网络中提取对应单词的网络各层的词嵌入作为新特征补充到下游任务中

ps:由此可以看出ELMo是一种典型的基于特征融合的预训练模型。

具体的应用流程如下:

  1. 将句子输入ELMo网络中,这样句子中每个单词在ELMo网络中都能获得对应的三个Embedding;
  2. 赋予每个Embedding一个权重(这个权重可以由学习得来),然后通过加权求和将三个Embedding整合为一个;
  3. 将整合后的Embedding作为相应的单词输入,作为新特征给下游任务使用

二、ELMo的创新点

  1. 采用多层的Bi-LSTM网络以捕捉不同层次的特征
  2. 通过将token与word embedding对应,可以针对不同的上下文生成不同的词向量

ps:ELMO 的本质思想是:事先用语言模型学好一个单词的 Word Embedding,此时多义词无法区分,不过这没关系。在实际使用 Word Embedding 的时候,单词已经具备了特定的上下文了,这个时候我可以根据上下文单词的语义去调整单词的 Word Embedding 表示,这样经过调整后的 Word Embedding 更能表达在这个上下文中的具体含义,自然也就解决了多义词的问题了。所以 ELMO 本身是个根据当前上下文对 Word Embedding 动态调整的思路。


总结

ELMo是一种动态词向量算法,它最大的特点就是在大型的语料库里训练一个 biLSTM (双向LSTM模型)。下游任务需要获取单词词向量的时候,可以直接将整个句子输入 biLSTM,利用 biLSTM 的输出作为单词的词向量,这样词向量就能包含上下文语义信息。

尽管ELMo考虑了上下文,可以针对不同的上下文生成不同的词向量,以表达不同的语法或语义信息,但其仍存在如下缺陷:

  1. 使用向量拼接方式融合上下文特征,这种方式获取的上下文信息效果不如想象中好。
  2. 特征提取能力弱,训练难且时间长,这也是RNN的本质导致的,极大限制了NLP的应用,直到Transformer出现,NLP迎来爆发式增长。
  3. 预训练模型(仅用于特征抽取)和实际下游任务模型仍是分开的、非端到端的,训练困难
相关推荐
墨绿色的摆渡人9 分钟前
用 pytorch 从零开始创建大语言模型(三):编码注意力机制
人工智能·pytorch·语言模型
zm-v-1593043398626 分钟前
ChatGPT 与 DeepSeek:学术科研的智能 “双引擎”
人工智能·chatgpt
果冻人工智能29 分钟前
美国狂奔,中国稳走,AI赛道上的龟兔之争?
人工智能
牙牙要健康29 分钟前
【目标检测】【深度学习】【Pytorch版本】YOLOV2模型算法详解
pytorch·深度学习·目标检测
果冻人工智能39 分钟前
再谈AI与程序员: AI 写的代码越来越多,那我们还需要开发者吗?
人工智能
大脑探路者43 分钟前
【PyTorch】继承 nn.Module 创建简单神经网络
人工智能·pytorch·神经网络
无代码Dev1 小时前
如何使用AI去水印(ChatGPT去除图片水印)
人工智能·ai·ai-native
达柳斯·绍达华·宁1 小时前
自动驾驶04:点云预处理03
人工智能·机器学习·自动驾驶
wgc2k1 小时前
吴恩达深度学习复盘(4)神经网络的前向传播
人工智能·深度学习