动手学深度学习-自然语言处理-预训练

词嵌入模型

  • 将单词映射到实向量的技术称为词嵌入。
    为什么独热向量不能表达词之间的相似性?
    在这里插入图片描述

自监督的word2vec

word2vec将每个词映射到一个固定长度的向量,这些向量能更好的表达不同词之间的相似性和类比关系。

word2vec分为两类,两类模型都是自监督模型。

  • 跳元模型(SKip-Gram)。
  • 连续词袋(CBOW)模型。

小结

  • 词向量是用于表示单词意义的向量,也可以看作词的特征向量。将词映射到实向量的技术称为词嵌入。
  • word2vec工具包含跳元模型和连续词袋模型。
  • 跳元模型假设一个单词可用于在文本序列中,生成其周围的单词;而连续词袋模型假设基于上下文词来生成中心单词。
    在这里插入图片描述

跳元模型和连续词袋模型的损失函数?
在这里插入图片描述
在这里插入图片描述

近似训练

使用负采样和分层Softmax来优化损失函数的计算:

  • 负采样通过考虑相互独立的事件来构造损失函数,这些事件同时涉及正例和负例。训练的计算量与每一步的噪声词数成线性关系。
  • 分层softmax使用二叉树中从根节点到叶节点的路径构造损失函数。训练的计算成本取决于词表大小的对数。
    在这里插入图片描述
    在这里插入图片描述

用于预训练词嵌入的数据集

  • 高频词在训练中可能不是那么有用。我们可以对他们进行下采样,以便在训练中加快速度。
  • 为了提高计算效率,我们以小批量方式加载样本。我们可以定义其他变量来区分填充标记和非填充标记,以及正例和负例。

预训练word2vec

  • 我们可以使用嵌入层和二元交叉熵损失来训练带负采样的跳元模型。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 词嵌入的应用包括基于词向量的余弦相似度为给定词找到语义相似的词。

全局向量的词嵌入

  • 诸如词-词共现计数的全局语料库统计可以来解释跳元模型。
  • 交叉熵损失可能不是衡量两种概率分布差异的好选择,特别是对于大型语料库。GloVe使用平方损失来拟合预先计算的全局语料库统计数据。
  • 对于GloVe中的任意词,中心词向量和上下文词向量在数学上是等价的。
  • GloVe可以从词-词共现概率的比率来解释。

子词嵌入

  • fastText模型提出了一种子词嵌入方法:基于word2vec中的跳元模型,它将中心词表示为其子词向量之和。
  • 字节对编码执行训练数据集的统计分析,以发现词内的公共符号。作为一种贪心方法,字节对编码迭代地合并最频繁的连续符号对。
  • 子词嵌入可以提高稀有词和词典外词的表示质量。

FastText模型的主要结构组件:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
FastText模型的主要特点是什么?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

词的相似性和类比任务

  • 在实践中,在大型语料库上预先练的词向量可以应用于下游的自然语言处理任务。
  • 预训练的词向量可以应用于词的相似性和类比任务。

自然语言处理中的预训练是在训练什么?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

来自Transformer的双向编码器表示

由于语言模型的自回归特性,GPT只能向前看(从左到右)。在“i went to the bank to deposit cash”(我去银行存现金)和“i went to the bank to sit down”(我去河岸边坐下)的上下文中,由于“bank”对其左边的上下文敏感,GPT将返回“bank”的相同表示,尽管它有不同的含义。

小结

  • word2vec和GloVe等词嵌入模型与上下文无关。它们将相同的预训练向量赋给同一个词,而不考虑词的上下文(如果有的话)。它们很难处理好自然语言中的一词多义或复杂语义。
  • 对于上下文敏感的词表示,如ELMo和GPT,词的表示依赖于它们的上下文。
  • ELMo对上下文进行双向编码,但使用特定于任务的架构(然而,为每个自然语言处理任务设计一个特定的体系架构实际上并不容易);而GPT是任务无关的,但是从左到右编码上下文。
  • BERT结合了这两个方面的优点:它对上下文进行双向编码,并且需要对大量自然语言处理任务进行最小的架构更改。
  • BERT输入序列的嵌入是词元嵌入、片段嵌入和位置嵌入的和。
  • 预训练包括两个任务:掩蔽语言模型和下一句预测。前者能够编码双向上下文来表示单词,而后者则显式地建模文本对之间的逻辑关系。

word2vec,Glove,EIMo,GPT,BERT等模型的特点,优点和缺点
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结:
每种模型都有其独特的优势和局限性。Word2Vec和GloVe在词嵌入方面表现出色,但不涉及上下文信息;ELMo、GPT和BERT则在捕捉复杂的上下文关系方面更为先进,但也伴随着更高的资源需求。选择哪种模型通常取决于特定任务的需求、可用资源和性能目标。

用于预训练BERT的数据集

  • 与PTB数据集相比,WikiText-2数据集保留了原来的标点符号、大小写和数字,并且比PTB数据集大了两倍多。
  • 我们可以任意访问从WikiText-2语料库中的一对句子生成的预训练(遮蔽语言模型和下一句预测)样本。

预训练BERT

BERT的预训练机制:
在这里插入图片描述
在这里插入图片描述
小结

  • 原始的BERT有两个版本,其中基本模型有1.1亿个参数,大模型有3.4亿个参数。
  • 在预训练BERT之后,我们可以用它来表示单个文本、文本对或其中的任何词元。
  • 在实验中,同一个词元在不同的上下文中具有不同的BERT表示。这支持BERT表示是上下文敏感的。

遮蔽语言模型损失和下一句预测损失分别表示什么?
在这里插入图片描述
在这里插入图片描述
MLM损失和NSP损失共同构成了BERT模型的预训练损失,它们分别针对模型的两个核心任务:理解词的上下文相关含义和理解句子间的关系。通过最小化这两个损失,BERT能够学习到丰富且有效的语言表示,为各种下游NLP任务奠定基础。

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

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

相关文章

PPT插件-好用的插件-放映笔、绘图板-大珩助手

放映笔 幻灯片放映时,工具在幻灯片的左下方,本工具在幻灯片的右侧,可以移动,可以方便在右侧讲课时候使用 绘图板 可在绘图板上写签名、绘制图画、写字等等,点画笔切换橡皮擦,点插入绘图,将背景…

车载以太网笔记

文章目录 以太网协议分层协议中间设备子网掩码物理层测试内容比较杂,后续会整理。 以太网协议分层 协议 中间设备

智能高效|AIRIOT智慧货运管理解决方案

随着全球贸易的增加和消费需求的不断扩大,货运行业面临更大的压力,传统货运行业运输效率低下、信息不透明,往往存在如下的运维问题和管理痛点: 无法实时定位和追踪信息:无法提供实时的货物位置信息,以便随…

布局前沿技术,紫光展锐推动6G创新融合发展

随着5G进入规模化商用阶段,6G研究已在全球范围内拉开帷幕。2023年6月,ITU发布了《IMT面向2030及未来发展的框架和总体目标建议书》,在升级5G三大应用场景的同时,扩展出三个跨领域场景,形成6G的六大应用场景&#xff0c…

Axios入门案例——后端学习

目录 后端准备 导入依赖 解决跨域 User实体类 DemoController测试接口 前端准备 项目结构 axios.js axios.html 开始测试 后端结果 前端结果 后端准备 导入依赖 案例会用到以下的三个依赖。 <dependency><groupId>org.springframework.boot</gro…

WIFI标签注册流程

WIFI桌牌 K: 注册键&#xff0c;R: 复位键 长按K键不动&#xff0c;绿灯长亮&#xff0c;再按一下R键&#xff0c;等待绿灯快闪后就可以松开按键&#xff0c;绿灯变慢闪&#xff0c;设备即可进入配置注册模式。 4.2寸WiFi标签 右键: 注册键&#xff0c;背后键: 复位键 长按右…

Github 2023-12-16开源项目日报Top10

根据Github Trendings的统计&#xff0c;今日(2023-12-16统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目2非开发语言项目2TypeScript项目1Jupyter Notebook项目1Go项目1PHP项目1JavaScript项目1C#项目1 精…

LeetCode:2415. 反转二叉树的奇数层(层次遍历 Java)

目录 2415. 反转二叉树的奇数层 题目描述&#xff1a; 实现代码与解析&#xff1a; BFS 原理思路&#xff1a; 2415. 反转二叉树的奇数层 题目描述&#xff1a; 给你一棵 完美 二叉树的根节点 root &#xff0c;请你反转这棵树中每个 奇数 层的节点值。 例如&#xff0c;…

【JVM从入门到实战】(七)运行时数据区的组成

运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域&#xff0c;称之为运行时数据区。 《Java虚拟机规范》中规定了每一部分的作用 线程不共享&#xff1a;程序计数器、虚拟机栈、本地方法栈 线程共享&#xff1a;方法区&#xff0c;堆 1. 程序计数器(Program Count…

TCP服务器的编写(上)

tcp服务器的初始化&#xff0c;第一件事情就是创建套接字 目前来说我们的tcp套接和udp套接是没有任何区别的&#xff01;&#xff01;&#xff01; 那么接下来&#xff0c;如果是udp创建好套接字在进行绑定&#xff0c;那么基本上就完成我们udp服务器的初始化 而我们tcp创建好…

十六、YARN和MapReduce配置

1、部署前提 &#xff08;1&#xff09;配置前提 已经配置好Hadoop集群。 配置内容&#xff1a; &#xff08;2&#xff09;部署说明 &#xff08;3&#xff09;集群规划 2、修改配置文件 MapReduce &#xff08;1&#xff09;修改mapred-env.sh配置文件 export JAVA_HOM…

Linux环境下安装JDK

本文将介绍在Linux环境下&#xff0c;如何安装JDK 1.用yum方式安装(无需配置环境变量) 检索yum中有没有java1.8的包&#xff1a;yum list java-1.8*安装&#xff1a;yum install java-1.8.0-openjdk* -y检查是否安装合适 2. 用JDK安装包安装 查看是否已经安装JDK&#xff1…

C语言--clock()时间函数【详细介绍】

一.clock()时间函数介绍 在 C/C 中&#xff0c;clock() 函数通常用于处理和测量程序运行时间&#xff08;时钟时间&#xff09;。它是一种数据类型&#xff0c;表示 CPU 执行指定任务所耗费的“时钟计数”数量&#xff0c;单位为“时钟周期”。 这个函数通常包含在 time.h 头文…

数据库和数据仓库的区别

数据仓库是在数据库已知大量存在的前提下&#xff0c;为了进一步挖掘数据资源&#xff0c;为了决策需要产生的&#xff1b;数据仓库在设计的时候有意添加反范式设计&#xff0c;目的是提高查询效率 对比内容数据库数据仓库数据内容近期值历史的 归档的数据数据目标面向业务操作…

ClickHouse Kafka 引擎教程

如果您刚开始并且第一次设置 Kafka 和 ClickHouse 需要帮助怎么办&#xff1f;这篇文章也许会提供下帮助。 我们将通过一个端到端示例&#xff0c;使用 Kafka 引擎将数据从 Kafka 主题加载到 ClickHouse 表中。我们还将展示如何重置偏移量和重新加载数据&#xff0c;以及如何更…

关于技术架构的思考

技术选型实则是取舍的艺术 这句话是我偶然在一篇技术架构方面的文章上看到的&#xff0c;每当我需要给新项目进行技术选型&#xff0c;决定技术架构时&#xff0c;一直坚信的。 当我们做技术选型时&#xff0c;需要考虑的东西非常多。比如&#xff0c;用关系型数据库还是非关…

智能优化算法应用:基于海洋捕食者算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于海洋捕食者算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于海洋捕食者算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.海洋捕食者算法4.实验参数设定5.算法…

Lvs-NAT部署

目录 一.什么是lvs 二.集群的类型 三.lvs的三种模式 四.lvs调度算法 五.LVS-NAT模式部署 一.什么是lvs lvs负载均衡群集&#xff1a;由多台主机构成&#xff0c;对外表现为一个整体&#xff0c;只提供一个访问入口&#xff0c;相当于一个大计算机。 二.集群的类型 1&am…

【系统设计】如何确保消息不会丢失?

一、前言 对于大部分业务系统来说&#xff0c;丢消息意味着数据丢失&#xff0c;是完全无法接受的。其实&#xff0c;现在主流的消息队列产品都提供了非常完善的消息可靠性保证机制&#xff0c;完全可以做到在消息传递过程中&#xff0c;即使发生网络中断或者硬件故障&#xf…

解决kernel32.dll丢失的修复方式,kernel32.dll预防错误的方法

kernel32.dll文件是电脑中的一个重要文件&#xff0c;如果电脑出现kernel32.dll丢失的错误提示&#xff0c;那么电脑中的一些程序将不能正常使用&#xff0c;那么出现这样的问题有什么解决办法呢&#xff1f;那么今天就和大家说说解决kernel32.dll丢失的修复方式。 一.kernel32…