分类目录:《自然语言处理从入门到应用》总目录


在双向语言模型预训练完成后,模型的编码部分(包括输入表示层以及多层堆叠LSTM)便可以用来计算任意文本的动态词向量表示。最自然的做法是使用两个LSTM的最后一层隐含层输出作为词的动态向量表示。然而,在ELMo模型中,不同层次的隐含层向量蕴含了不同层次或粒度的文本信息。例如,越接近顶层的LSTM隐含层表示通常编码了更多的语义信息,而接近底层的隐含层表示(包括输入表示 x x x)更偏重于词法、句法信息。不同的下游任务,对词表示的需求程度有所不同。例如,对于阅读理解、自动问答这类任务,对语义信息的需求较高;而对于命名实体识别等任务,词法、句法信息更重要。因此,ELMo采取对不同层次的向量表示进行加权平均的机制,为不同的下游任务提供更多的组合自由度。令 R t R_t Rt表示 w t w_t wt的所有中间层状态向量表示构成的集合,则:
R t = { x t , h t , j ∣ j = 1 , 2 , ⋯ , L } R_t=\{x_t, h_{t, j}|j=1, 2, \cdots, L\} Rt={xt,ht,jj=1,2,,L}

式中, h t , j = [ h ← t , j , h → t , j ] h_{t, j}=[\overleftarrow{h}_{t, j}, \overrightarrow{h}_{t, j}] ht,j=[h

t,j,h

t,j
]表示两个多层堆叠LSTM中每一层的前向、后向隐含层输出拼接后得到的向量。令 h t , 0 = x t h_{t, 0}=x_t ht,0=xt,则ELMo词向量可表示为:
ELMo t = f ( R t , Ψ ) = γ task ∑ j L s j task h t , j \text{ELMo}_t=f(R_t, \Psi)=\gamma^\text{task}\sum_j^Ls^\text{task}_jh_{t, j} ELMot=f(Rt,Ψ)=γtaskjLsjtaskht,j

式中, Ψ = { s task , γ task } \Psi=\{s^\text{task}, \gamma^\text{task}\} Ψ={stask,γtask}为计算ELMo向量所需的额外参数; s task s^\text{task} stask表示每个向量的权重,反映每一层向量对于目标任务的重要性,可由一组参数根据Softmax函数归一化计算得到,该权重向量可在下游任务的训练过程中学习; γ task \gamma^\text{task} γtask系数同样与下游任务相关,当ELMo向量与其他向量共同作用时,可以适当地缩放ELMo向量。将ELMo向量作为词特征用于下游任务时,编码器的参数将被“冻结”,不参与更新。综上所述,ELMo向量表示具有以下三个特点:

  • 动态(上下文相关):词的ELMo向量表示由其当前上下文决定
  • 健壮(Robust):ELMo向量表示使用字符级输入,对于未登录词具有强健壮性
  • 层次:ELMo词向量由深度预训练模型中各个层次的向量表示进行组合,为下游任务提供了较大的使用自由度。

下图展示了ELMo模型的整体结构:

ELMo的优缺点

ELMo实现了由静态词嵌入到动态词嵌入,由词嵌入到场景词嵌入的转换,较好地解决了一词多义问题。但因ELMo使用Bi-LSTM,仍然属于自动回归问题,所以其并发能力会受到影响,在需要大量语料库作为训练数据的情况,这种局限也直接影响其性能和拓展性。ELMo主要有2个有点:

  • 实现从单纯的词嵌入(Word Embedding)到情景词嵌入(Contextualized Word Embedding)的转变
  • 实现预训练模型从静态到动态的转变

同时,ELMo也有缺点:ELMo预训练模型的特征提取器使用了双向循环神经网络(如Bi-LSTM),循环神经网络的训练需要按序列从左到右或从右到左,严格限制了并发处理能力。此外,ELMo的每一层会拼接两个方向的向量,所以这种操作实际仍然属于单向学习,无法做到同时向两个方向学习。

参考文献:
[1] 车万翔, 崔一鸣, 郭江. 自然语言处理:基于预训练模型的方法[M]. 电子工业出版社, 2021.
[2] 邵浩, 刘一烽. 预训练语言模型[M]. 电子工业出版社, 2021.
[3] 何晗. 自然语言处理入门[M]. 人民邮电出版社, 2019
[4] Sudharsan Ravichandiran. BERT基础教程:Transformer大模型实战[M]. 人民邮电出版社, 2023
[5] 吴茂贵, 王红星. 深入浅出Embedding:原理解析与应用实战[M]. 机械工业出版社, 2021.

自然语言处理从入门到应用——动态词向量预训练:ELMo词向量相关推荐

  1. 在 Keras 模型中使用预训练的词嵌入

    原文地址在这里. 什么是词嵌入? "词嵌入"是一系列旨在将语义映射到几何空间的自然语言处理技术.这是通过将数字向量与字典中的每个单词相关联来完成的,这样任何两个向量之间的距离(例如 ...

  2. 【从零开始学习深度学习】48.Pytorch_NLP实战案例:如何使用预训练的词向量模型求近义词和类比词

    目录 1. 下载预训练的词向量 2. 应用预训练词向量 2.1 求近义词 2.2 求类比词 本文将介绍如何使用已经在大规模语料上预训练的词向量模型来求近义词和类比词. 1. 下载预训练的词向量 基于P ...

  3. 深度学习之循环神经网络(12)预训练的词向量

    深度学习之循环神经网络(12)预训练的词向量  在情感分类任务时,Embedding层是从零开始训练的.实际上,对于文本处理任务来说,领域知识大部分是共享的,因此我们能够利用在其它任务上训练好的词向量 ...

  4. github设置中文_【Github】100+ Chinese Word Vectors 上百种预训练中文词向量

    (给机器学习算法与Python学习加星标,提升AI技能) 该项目提供了不同表征(密集和稀疏)上下文特征(单词,ngram,字符等)和语料库训练的中文单词向量.开发者可以轻松获得具有不同属性的预先训练的 ...

  5. 如何在深度学习过程中使用预训练的词表征(持续更新ing...)

    诸神缄默不语-个人CSDN博文目录 本文介绍在深度学习中如何应用预训练的词表征(word2vec等),应用到的框架包括numpy.PyTorch和TensorFlow 不同形式,见到了就补充总结一下. ...

  6. 预训练词向量中文维基百科,英文斯坦福glove预训练的词向量下载

    中文预训练词向量--基于中文维基百科语料训练 英文预训练词向量--斯坦福glove预训练的词向量 百度云分享:https://pan.baidu.com/s/1UpZeuqlNMl6XtTB5la53 ...

  7. 自动训练Embedding词向量和手动训练Embedding词向量

    手动训练自己的词向量 gensim工具包-训练自己的Word2Vec 产生word_vector.bin文件 然后调用: embedding = nn.Embedding.from_pretraine ...

  8. keras从入门到放弃(十七)使用预训练网络VGG迁移学习

    VGG16网络是13层卷积层,运算起来非常的忙,如果使用CPU基本跑不了 import keras from keras import layers import numpy as np import ...

  9. 最新GLove词向量预训练文件国内服务器下载

    试过去斯坦福官方网址(https://nlp.stanford.edu/projects/glove/)下Glove的同学就知道有多痛苦- 真的要多慢有多慢 使用国内服务器几分钟下完 glove.84 ...

最新文章

  1. 春节假期延长了,这里给你推荐几本2020年不容错过的机器学习书籍!
  2. 【全网最全的博客美化系列教程】06.推荐和反对炫酷样式的实现
  3. 【互联网今日大事儿记】春运抢票开始啦!
  4. 给大家介绍一下:网易云信新晋音视频质量诊断专家
  5. 这场论文复现的华山论剑,谁能拔得头筹
  6. influxdb tsm文件_Influxdb中的Compaction操作
  7. 在Microsoft Teams中的Visio协作
  8. linux配置vscodec运行环境,Linux 下 VSCode c/c++环境配置
  9. Python笔记-Json转DataFrame(基金主题Json数据)
  10. [testNG]Cannot find class in classpath解决方法
  11. 云服务器上行带宽/下行带宽/出网带宽/入网带宽详解(一看就懂)
  12. Flask蓝本创建名称错误导致的werkzeug.routing.BuildError
  13. 删除我的电脑中微云、百度网盘、酷我音乐等软件图标
  14. HttpWebRequest 介绍
  15. java基础之package和import语句
  16. 3-2 数制转换计算器
  17. 使用OpenCV进行人脸识别的三种算法(官方网翻译)
  18. C. Carrying Conundrum
  19. 黑客与“骇客”的区别,5分钟告诉你如何成为一名合格的黑客
  20. bootstrap4.3.1 导航栏鼠标悬停下拉显示

热门文章

  1. Spring注入泛型类
  2. liunx GHOST clonezilla(再生龙)UltraISO刻录问题
  3. 美国中情局刺杀拉登实录
  4. 瑞吉外卖 - 项目流程介绍与数据库搭建、附Gitee地址(更新中...)
  5. Java_泛型的作用
  6. 二进制安全:转化大师漏洞复现:Boxoft Convert Master 1.3.0 - ‘wav‘ SEH Local Exploit
  7. 一个故事却看穿了许多人
  8. reverse函数的运用
  9. IFRS9规则下,三类金融资产的划分
  10. Oracle 11c在win10操作系统的安装步骤