word2vec,BERT,GPT相关概念

news2024/11/17 22:36:03

词嵌入(Word Embeddings)

词嵌入通常是针对单个词元(如单词、字符或子词)的。然而,OpenAI 使用的是预训练的 Transformer 模型(如 GPT 和 BERT),这些模型不仅可以为单个词元生成嵌入,还可以为整个句子生成嵌入。

One-Hot Encoding

独热编码生成的向量是稀疏的,它们之间的距离相等,无法捕捉单词之间的语义关系。独热编码是固定的,无法在训练过程中进行调整。

Embedding Layer

嵌入层生成的向量是密集的,它们可以捕捉单词之间的语义关系。具有相似含义的单词在向量空间中距离较近。嵌入层的权重(即嵌入矩阵)可以在训练过程中进行调整,以便更好地捕捉词汇之间的语义关系。

自监督模型的 Word2Vec:Skip-gram & CBOW

跳元模型(Skip-gram model)

跳元模型是一种常用的词嵌入模型,它的基本假设是一个词可以用来生成其周围的单词。例如,文本序列 “the”, “man”, “loves”, “his”, “son”,选择 “loves” 作为中心词,并将上下文窗口设置为2,跳元模型会考虑生成上下文词 “the”, “man”, “his”, “son” 的条件概率:
P ( " t h e " , " m a n " , " h i s " , " s o n " ∣ " l o v e s " ) P("the", "man", "his", "son" | "loves") P("the","man","his","son"∣"loves")
我们通常假设上下文词是在给定中心词的情况下独立生成的,这被称为条件独立性。因此,上述条件概率可以被重写为:
P ( " t h e " ∣ " l o v e s " ) ⋅ P ( " m a n " ∣ " l o v e s " ) ⋅ P ( " h i s " ∣ " l o v e s " ) ⋅ P ( " s o n " ∣ " l o v e s " ) P("the" | "loves") · P("man" | "loves") · P("his" | "loves") · P("son" | "loves") P("the"∣"loves")P("man"∣"loves")P("his"∣"loves")P("son"∣"loves")
这是跳元模型的基本工作原理。
在这里插入图片描述

连续词袋模型(Continuous Bag of Words, CBOW)

连续词袋模型的主要假设是,中心词是基于其在文本序列中的周围上下文词生成的。例如,文本序列 “the”, “man”, “loves”, “his”, “son”,选择 “loves” 作为中心词,并将上下文窗口设置为2,连续词袋模型会考虑基于上下文词 “the”, “man”, “his”, “son” 生成中心词 “loves” 的条件概率:
P ( " l o v e s " ∣ " t h e " , " m a n " , " h i s " , " s o n " ) P("loves" | "the", "man", "his", "son") P("loves"∣"the","man","his","son")
在这里插入图片描述

BERT:来自 Transformers 的双向编码器表示

动机

通过使用 Transformer 的双向自注意力机制,BERT 能够同时考虑一个单词在其上下文中的左侧和右侧的信息,从而更好地理解其含义。此外,通过预训练-微调的方式,BERT 能够在大规模未标注数据上学习到丰富的语言知识,然后将这些知识迁移到具体的 NLP 任务上,从而在许多任务上取得了显著的性能提升。
在这里插入图片描述

预训练任务之一:掩码语言模型(MLM)

在这个任务中,BERT 的输入文本中的一部分单词被随机地替换为特殊的 [MASK] 标记。模型的目标是预测被遮蔽的单词。这种方法允许 BERT 在训练过程中学习到双向的上下文信息,因为它需要同时考虑被遮蔽单词左侧和右侧的上下文来预测其原始单词。MLM 任务的一个关键优势是,与传统的从左到右或从右到左的预训练方法相比,它可以更好地捕捉到双向上下文信息。

预训练任务之二:下一句预测(NSP)

在这个任务中,BERT 需要预测两个给定句子是否是连续的。具体来说,模型接收一对句子作为输入,并需要判断第二个句子是否紧跟在第一个句子之后。这个任务的目的是帮助 BERT 学习句子之间的关系,从而更好地理解句子级别的上下文。
在这里插入图片描述

架构

BERT 模型采用了多层的 Transformer 编码器。每一层都包含一个自注意力机制和一个前馈神经网络。这些层被堆叠在一起,形成了 BERT 的深度网络结构。

BERT 的嵌入主要包括三种类型:词嵌入、段落嵌入和位置嵌入。

  • 词嵌入:在 BERT 中,每个单词首先被转换为一个固定大小的向量,这个向量捕获了单词的语义信息。BERT 使用了 WordPiece 嵌入,这是一种子词嵌入方法,可以有效处理未知词和长尾词。
  • 段落嵌入:BERT 可以处理一对句子的输入。为了区分这两个句子,BERT 引入了段落嵌入。每个句子都有一个对应的段落嵌入,这个嵌入是添加到每个单词的词嵌入上的。
  • 位置嵌入:由于 Transformer 模型并不考虑单词的顺序,BERT 引入了位置嵌入来捕获单词在句子中的位置信息。
    在这里插入图片描述

GPT:Generative Pre-trained Transformer

动机

GPT 由 OpenAI 在 2018 年提出,它也是建立在 Transformer 的基础上,但 GPT 采用的是 Transformer 的解码器结构。GPT 的关键思想是使用大量的文本数据进行无监督预训练,然后在特定任务上进行微调。GPT 在预训练阶段使用的是语言模型任务,即给定一个文本序列的前 N 个单词,预测第 N+1 个单词。这种方式使得模型能够学习到丰富的语言特征。

词表压缩:BytePairEncoding (BPE)

BPE 算法的工作原理是将频繁出现的字节对(在 NLP 中通常是字符对)合并为一个单独的符号。以下是 BPE 算法在 NLP 中的一般步骤:

  1. 准备阶段:给定一个文本语料库,首先将文本分割为基本单位(例如,字符或字节)。
  2. 统计频率:统计所有相邻字符对的出现频率。
  3. 合并最频繁的对:选择最频繁的字符对,将它们合并为一个新的符号。这个新的符号被添加到词汇表中。
  4. 重复步骤:重复统计频率和合并步骤,直到达到预先设定的词汇表大小,或者没有更多的合并可以执行。

通过这种方式,BPE 能够生成一个固定大小的词汇表,其中包含了单个字符、常见的字符序列以及完整的单词。

BERT 与 GPT 的区别简介

  • BERT 使用的是 Transformer 的编码器(Encoder)结构。它是设计为深度双向模型,通过同时考虑左右两侧的上下文来预训练语言表示。
  • BERT 采用了掩码语言模型(MLM)和下一句预测(NSP)两种预训练任务。MLM 随机掩盖输入序列中的单词并预测这些单词,而 NSP 预测两个句子是否顺序相邻。
  • GPT 使用的是 Transformer 的解码器(Decoder)结构,并且不使用 encoder-decoder 注意力。GPT 是单向的,它预训练一个生成式的语言模型,主要考虑左侧(之前)的上下文。
  • GPT 主要采用传统的语言模型预训练任务 (Next Token Prediction,NTP),即根据给定的文本前缀预测下一个单词,只利用了左侧的上下文信息。

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

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

相关文章

数据库02-04 中级SQL

01.on关键字: 主要用join…on来用多关系查询,和where关键字的相同 student关系: takes关系: 02.一般外连接 自然连接: 这个外连接(自然连接)会缺少空值的元祖(本例子中的stude…

python 小程序学生选课系统源码

开发工具: PyCharm,mysql5.7,微信开发者工具 技术说明: python django html 小程序 功能介绍: 学生: 登录,选课(查看课程及选择),我的成绩,…

【采坑分享】npm login/publish/whoami失败采坑,解决npmERR426、ETIMEDOUT、ECONNREFUSED等错误

目录 前言背景: 采坑之路: 1.修改https为http,问题还在 2.修改为淘宝镜像,问题还在 3.修改为官网地址,问题还在 4.升级node和npm,问题还在 5.猜想网络问题,问题解决 采坑总结&#xff1a…

HBase的安装与简单操作

文章目录 第1关:Hbase数据库的安装第2关:创建表第3关:添加数据、删除数据、删除表 第1关:Hbase数据库的安装 编程要求 根据上述步骤安装配置好HBase数据库,并启动成功。 测试说明 若安装配置成功,则程序会…

《数据结构、算法与应用C++语言描述》- 构建哈夫曼树

哈夫曼树 完整可编译运行代码见:Github::Data-Structures-Algorithms-and-Applications/_29huffmanTree 定长编码与可变长编码 定长编码 每个字符都用固定长度的编码来表示。 例如假设一个文本是由字符 a、u、x 和 z 组成的字符串,每个字符用2位二进…

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

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

Docker单点部署 Elasticsearch + Kibana [8.11.3]

文章目录 一、Elasticsearch二、Kibana三、访问四、其他 Elasticsearch 和 Kibana 版本一般需要保持一致才能一起使用,但是从 8.x.x开始,安全验证不断加强,甚至8.x.x之间的版本安全验证方法都不一样,真的很恼火。 这里记录一次成…

字符串——OJ题

📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、字符串相加1、题目讲解2、思路讲解3、代码实现 二、仅仅反转字母1、题目讲解2、思路讲解3…

[C++]——学习模板

了解模板——初阶 前言:一、模板1.1 什么是模板1.2 模板的概念1.3 模板可以做什么1.4 泛型模板 二、函数模板2.1 函数模板概念和格式2.2 函数模板原理2.3 函数模板实例化2.3.1 隐式实例化2.3.2 显式实例化 2.4 模板参数的匹配原则2.5 函数模板声明定义分离 三、类模…

服务器一直掉线怎么回事?

随着网络的高速发展,不管是网站还是游戏,如果遇到服务器卡顿的情况,会造成用户访问网站或进游戏,网站页面长时间无法打开,游戏页面运行卡顿,这样就很容易会造成用户的流失,从而导致业务亏损极大…

华为数通——企业双出口冗余

目标:默认数据全部经过移动上网,联通低带宽。 R1 [ ]ip route-static 0.0.0.0 24 12.1.1.2 目的地址 掩码 下一条 [ ]ip route-static 0.0.0.0 24 13.1.1.3 preference 65 目的地址 掩码 下一条 设置优先级为65 R…

数据持久化与临时存储的对决:localStorage 与 sessionStorage(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

《使用ThinkPHP6开发项目》 - ThinkPHP6使用使用中间件验证登录Token

https://blog.csdn.net/centaury32/article/details/134997438 按照https://blog.csdn.net/centaury32/article/details/134999029的方法验证登录Token,那么每一步都需要写同样一段代码,这里可以结合中间件进行验证 一、创建中间件:php thi…

华为配置VRRP负载分担示例

组网需求 如图1所示,HostA和HostC通过Switch双归属到SwitchA和SwitchB。为减轻SwitchA上数据流量的承载压力,HostA以SwitchA为默认网关接入Internet,SwitchB作为备份网关;HostC以SwitchB为默认网关接入Internet,Switc…

【深度学习】机器学习概述(二)优化算法之梯度下降法(批量BGD、随机SGD、小批量)

​ 文章目录 一、基本概念二、机器学习的三要素1. 模型a. 线性模型b. 非线性模型 2. 学习准则a. 损失函数b. 风险最小化准则 3. 优化机器学习问题转化成为一个最优化问题a. 参数与超参数b. 梯度下降法梯度下降法的迭代公式具体的参数更新公式学习率的选择 c. 随机梯度下降批量…

[Linux] Tomcat部署和优化

一、Tomcat相关知识 1.1 Tomcat的简介 Tomcat 是 Java 语言开发的,Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,是 Apache 软件基金会的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。 …

环境搭建及源码运行_java环境搭建_maven

1、介绍 1)管理项目依赖和版本 统一的项目依赖和版本管理 2)Maven支持多模块项目管理 通过定义父子模块的关系来管理多个子模块的构建和依赖关系。使用Maven可以实现多模块项目的统一管理和构建,从而提高项目的可维护性和可重用性。 3&#x…

【️Zookeeper是CP还是AP的?】

😊引言 🎖️本篇博文约3000字,阅读大约10分钟,亲爱的读者,如果本博文对您有帮助,欢迎点赞关注!😊😊😊 🖥️Zookeeper是CP还是AP的? ✅…

Docker及其使用思维导图

Docker的架构 构建分发运行镜像 Client(客户端):是Docker的用户端,可以接受用户命令和配置标识,并与Docker daemon通信。Images(镜像):是一个只读模板,含创建Docker容器…

Sui第八轮资助:七个项目获得资助

今天,Sui基金会宣布本月的资助获得者,他们因构建项目以推动Sui的采用和发展而获得资助。要获得资助,项目必须提交提案,详细说明他们正在构建的内容、预算明细、关键里程碑、团队经验以及对Sui社区的预期贡献。 以下七个项目致力于…