自然语言处理从入门到应用——预训练模型总览:词嵌入的两大范式

news2024/9/24 23:26:35

分类目录:《自然语言处理从入门到应用》总目录
相关文章:
· 预训练模型总览:从宏观视角了解预训练模型
· 预训练模型总览:词嵌入的两大范式
· 预训练模型总览:两大任务类型
· 预训练模型总览:预训练模型的拓展
· 预训练模型总览:迁移学习与微调
· 预训练模型总览:预训练模型存在的问题


从大量无标注数据中进行预训练使许多自然语言处理任务获得显著的性能提升。总的来看,预训练模型的优势包括:

  • 在庞大的无标注数据上进行预训练可以获取更通用的语言表示,并有利于下游任务
  • 为模型提供了一个更好的初始化参数,在目标任务上具备更好的泛化性能、并加速收敛
  • 是一种有效的正则化手段,避免在小数据集上过拟合,而一个随机初始化的深层模型容易对小数据集过拟合

下图就是各种预训练模型的思维导图,其分别按照词嵌入(Word Embedding)方式分为静态词向量(Static Word Embedding)和动态词向量(Dynamic Word Embedding)方式分类、按照监督学习和自监督学习方式进行分类、按照拓展能力等分类方式展现:
预训练模型总览
思维导图可编辑源文件下载地址:https://download.csdn.net/download/hy592070616/87954682

预训练模型的发展经历从浅层的词嵌入到深层编码两个阶段,按照这两个主要的发展阶段,可以归纳出预训练模型编码的两大范式:静态词向量(Static Word Embedding)和动态词向量(Dynamic Word Embedding)。

静态词向量(Static Word Embedding)

静态词向量(Static Word Embedding)即浅层词嵌入,这一类预训练模型范式就是我们通常所说的“词向量”,其主要特点是学习到的是上下文独立的静态词嵌入,其主要代表为神经网络语言模型(Neural Network Language Model,NNLM)(参考《自然语言处理从入门到应用——静态词向量预训练模型:神经网络语言模型(Neural Network Language Model)》)、word2vec(参考《深入理解深度学习——Word Embedding:word2vec》),其包含CBOW(参考《深入理解深度学习——Word Embedding:连续词袋模型(CBOW, The Continuous Bag-of-Words Model)》)和Skip-Gram(参考《深入理解深度学习——Word Embedding:Skip-Gram模型》)以及Glove(参考《自然语言处理从入门到应用——全局向量的词嵌入:GloVe(Global Vectors for Word Representation)词向量》)等。这一类词嵌入通常采取浅层网络进行训练,而应用于下游任务时,整个模型的其余部分仍需要从头开始学习。因此,对于这一范式的预训练模型没有必要采取深层神经网络进行训练,采取浅层网络加速训练也可以产生好的词嵌入。

同时,静态词向量也有明显的缺陷:

  • 静态词向量与上下文无关:每个单词的嵌入向量始终是相同,因此不能解决一词多义的问题。
  • 容易出现未登录词(Out-Of-Vocabulary,OOV)问题,为了解决这个问题,相关文献提出了字符级表示或sub-word表示,如CharCNN 、FastText和Byte-Pair Encoding等。
词嵌入方式训练目标语料使用程度特点
NNLM语言模型局部语料基于语言模型进行训练的,词嵌入只是神经网络语言模型的一个产物
word2vec非语言模型(窗口上下文)局部语料为加速训练舍弃神经网络语言模型中的隐藏层;采用分层Softaax和负采样进行运算优化
Glove非语言模型(词共现矩阵)全局语料基于全局语料构建词共现矩阵然后进行矩阵分解求得

其中,Glove也可以被看作是更换了目标函数和权重函数的全局word2vec。

动态词向量(Dynamic Word Embedding)

动态词向量是通过一个预训练模型的编码器能够输出上下文相关的词向量,可以解决一词多义的问题。这一类预训练编码器输出的向量也被称为上下文相关的词向量(Contextualized Word Embedding)。

编码器相关预训练模型计算方式特点
LSTMELMo循环+串行天然适合处理序列(位置)信息,但仍不能处理长距离依赖(由于BPTT导致的梯度消失等问题)
TransformerGPT、BERT前馈+并行可解解决长位置依赖;Self-Attention可以看做权重动态调整的全连接网络
Transformer -XLXL-Net循环+串行基于Transformer 引入循环机制和相对位置编码,增强长距离建模能力

预训练编码器通常采用LSTM和Transformer(Transformer-XL),其中Transformer又根据其Attention Mask方式分为Transformer-Encoder和Transformer-Decoder两类。此外,Transformer也可看作是一种图神经网络(GNN)。

参考文献:
[1] QIU XIPENG, SUN TIANXIANG, XU YIGE, et al. Pre-trained models for natural language processing: A survey[J]. 中国科学:技术科学(英文版),2020.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/710289.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【论文解读系列】MLLM研究综述

A Survey on Multimodal Large Language Models 1 中国科大科技学院、认知智能国家重点实验室 2 腾讯优图实验室 MLLM目录 0. 摘要1. 引言2. 总览3. 方法3.1 多模态指令调谐3.1.1 引言3.1.2 前言(Preliminaries)3.1.3 模态对齐3.1.4 数据3.1.5 模态桥接3.1.6 评估 3.2 多模态…

深入理解 Golang: 网络编程

Go 中的 Epoll 关于计算机网络分层与 TCP 通信过程过程此处不再赘述。 考虑到 TCP 通信过程中各种复杂操作,包括三次握手,四次挥手等,多数操作系统都提供了 Socket 作为 TCP 网络连接的抽象。Linux -> Internet domain socket -> SOC…

layui中文、以及图标乱码解决方案

最终解决方案…手动对js文件中的中文,用unicode进行编码

修改 ChatGLM2-6B 自我认知的 Lora 微调教程

修改 ChatGLM2-6B 自我认知的 Lora 微调教程 0. 背景1. 部署微调项目2. 数据集说明3. 模型监督微调(Lora)4. 模型效果测试5. 导出微调模型6. 调用导出的模型 0. 背景 现在开始学习微调,主要学习 Lora 微调。 这次尝试了修改 ChatGLM2-6B 自我认知,文章…

2023.7.2-【for语言】:输入一个整数,并输入该整数对应个数的整数,求他们的和与平均值

程序&#xff1a; int a;int b0;int c;int sum0;double ave;printf("请输入待求整数的个数&#xff1a;");scanf("%d",&a);for (b 1; b<a; b){printf("整数%d&#xff1a;", b);scanf("%d", &c);sum c;}printf("以上…

vite中的env环境变量

一、vite中使用env环境变量基本介绍 Vite 是一种现代化的前端构建工具&#xff0c;旨在提供快速的开发和构建体验。在 Vite 中&#xff0c;env 环境变量是一种用于在项目中设置和访问全局变量的机制。通过 env 变量&#xff0c;可以在不同环境下配置不同的参数&#xff0c;实现…

时间序列分解 | Matlab 互补集合经验模态分解(CEEMD)的信号分解

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列分解 | Matlab 互补集合经验模态分解(CEEMD)的信号分解 部分源码 %---------------------

Java基础---为什么不能用浮点数表示金额

目录 缘由 十进制转二进制 不是所有数都能用二进制表示 IEEE 754 避免精度丢失 缘由 因为不是所有的小数都能用二进制表示&#xff0c;所以&#xff0c;为了解决这个问题&#xff0c;IEEE提出了一种使用近似值表示小数的方式&#xff0c;并且引入了精度的概念这就是我们所…

Docker部署.Net7.0

1、新建项目 勾选启用Docker,会自动生成Dockerfile文件 2、生成镜像 打开PowerShell 进入项目解决方案目录路径 把项目打包成镜像 //镜像名称net7. 注意镜像名称后面的空格和点符号必须有docker build -t net7.0 .打包完成后可以看到项目的镜像 3、创建容器并启动 //…

C++文件操作 - 写操作----简单示例

C文件操作 - 写操作 一、什么是文件 内存中存放的数据在计算机关机后就会消失。要长久保存数据&#xff0c;就要使用硬盘、光盘、U盘等设备。为了便于数据的管理和检索&#xff0c;引入了“文件”的概念。 一篇文章、一段视频、一个可执行程序&#xff0c;都可以被保存为一个文…

BeanShell:多线程环境下Interpreter解释器的优化使用

BeanShell是用 Java 编写的一个小型、免费、可嵌入的 Java 代码的脚本解释器。 BeanShell动态执行标准Java语法&#xff0c;并使用通用语法对其进行扩展 脚本编写便利性&#xff0c;适用于 Java 的轻量级脚本。本文说明在并发环境下对BeanShell更加优化的使用方式。 简单示例 …

geoserver加载arcgis server瓦片地图显示异常问题处理

1.全能地图下载的瓦片conf.xml格式有问题首先要修改格式&#xff0c;conf.cdi文件也需要修改格式&#xff0c;修改为UTF-8或者UTF-8无BOM编码(不同的notepadd显示不同) 2. 下载的conf.xml坐标系默认从最小级别开始&#xff0c;一定要把前几级也补全&#xff0c;从0级开始 <L…

diffusion model

(正课)Diffusion Model 原理剖析 (1_4) (optional)_哔哩哔哩_bilibili(正课)Diffusion Model 原理剖析 (1_4) (optional)是【授权】李宏毅2023春机器学习课程的第42集视频&#xff0c;该合集共计64集&#xff0c;视频收藏或关注UP主&#xff0c;及时了解更多相关视频内容。http…

高中学习3大主流国际课程-申请国外大学本科

目录 作用 3大主流国际课程是什么 A-Level AP课程 IB 3大主流国际课程对比 作用 帮助学生申请国外大学本科。 如果能够选择到适合的国际课程&#xff0c;未来的留学规划就相当于成功了一半 3大主流国际课程是什么 A-Level、AP、IB三大国际课程 A-Level A-Level课程&a…

Kali Linux基础使用

Kali Linux基础使用 一、搭建渗透测试攻击环境1.1、Vmware workstation1.2、下载与安装1.3、安装渗透攻击机1.3.1、配置root用户登录1.3.2、普通用户切换到root用户1.3.3、修改kali语言1.3.4、网络配置1.3.4.1、桥接网络1.3.4.2、NAT1.3.4.3、仅主机 1.4、编辑网络文件 二、Lin…

05 - C++学习笔记: 一维数组和多维数组

数组是一种非常重要的数据结构&#xff0c;它允许用连续的方式存储和访问一组相同类型的数据。无论是存储学生成绩、处理图像数据还是解决复杂的数学问题&#xff0c;数组都发挥着重要的作用。 1️⃣ 一维数组的定义与引用 ✨ 倒序输出 在C中&#xff0c;一维数组是一种存储…

阿斯巴甜再亮红灯,配料表“瘦身”成趋势

【潮汐商业评论/原创】 6月以来&#xff0c;北方大部分地区出现近40度的高温天气&#xff0c;北京更是多年不遇的发布高温红色预警&#xff0c;酷暑难耐的Allen发现自己今年在水饮的消耗比往年高了好几倍&#xff0c;每天最快乐的时候莫过于一罐冰镇可乐&#xff0c;一口下去仿…

C/C++开发,opencv基于FileStorage读写文件介绍及示例

目录 一、FileStorage类 1.1 FileStorage类说明 1.2 FileStorage类写入说明 1.3 FileStorage类读取说明 二、FileStorage类应用示例 2.1 应用代码 2.2 工程组织&#xff08;Makefile&#xff09; 2.3 编译及测试 一、FileStorage类 1.1 FileStorage类说明 FileStorage类在ope…

6.S081——并发与锁部分(自旋锁的实现)——xv6源码完全解析系列(9)

0.briefly speaking 并发(Concurrency)指的是在多处理器系统(multiprocessor)中的并行&#xff0c;线程切换和中断导致的多个指令流交互错杂的情况&#xff0c;再和现代处理器体系结构中的多发射、乱序执行、Cache一致性等话题结合起来&#xff0c;这几乎变成了一个相当相当复…

装饰器设计模式应⽤-JDK源码⾥⾯的Stream IO流

装饰器设计模式在JDK源码⾥⾯应⽤场景 抽象组件&#xff08;Component&#xff09;&#xff1a;InputStream 定义装饰⽅法的规范被装饰者&#xff08;ConcreteComponent) : FileInputStream、ByteArrayInputStream Component的具体实现&#xff0c;也就是我们要装饰的具体对…