Transformer——词向量

词向量

在自然语言处理任务中,模型的输入大多为单个字或者词。但是字词都是自然语言的表述,对于以二进制为处理语言的计算机来说,其并不认识这个字词。所以需要将字词转换为计算机认识的数据

转换的方法有很多,我们接下来将介绍其中最简单的一种:独热编码,这是一种将字词转换为计算机可以识别的数字向量的方式。

注:为什么不可以使用Unicode编码?其不也是唯一的吗?
Unicode编码是表示单个字的编码方式,但是在预模型中,很多词向量表示的是一个词,比如:“我” “有” “一只” “猫”
其中“一只”是一个词,其如果用Unicode编码表示,其长度维度和其他字词不一致。

One-Hot 独热编码

独热编码是一种将离散型(可以划分为n个类别)的数据转化为计算机能够理解的方式,其基本思想是在 n n n维向量空间中,使用 n n n个单位向量,每个单位向量代表一个类别。也就是说,如果我们有 n n n个类别,那么我们就会有一个长度为 n n n的向量,其中有一个元素为1,其余元素为0。这个1的位置就代表了这个类别在向量中的位置。

下面是“我” “有” “一只” “猫”的独热编码表示:

词语一只
1000
0100
一只0010
0001

独热编码虽然可以表示一个字词,但是假如说我的词库非常大。为了让每一个字词都在其中有着唯一的表示,我每个字词的表示就都是 n n n维的,这会带来极大的存储成本。同时,在独热编码中,每个单词都是由一个完全不同的向量表示的。这意味着相似的单词,其向量表示完全不同。这就导致我们在计算独热编码两两的相似度时,得到的欧氏距离都是相同的。

注1:词库:
也称为词汇表或字典,是用于自然语言处理(NLP)的基本工具之一。它是一个包含所有可能单词的集合,每个单词都有一个与之对应的索引。

注2:总结:独热编码在高纬度计算语义信息表示上面有缺陷。

为了解决这个问题,我们需要引入一个新概念:词向量

词向量

词向量是一种用来表示单词的向量,它比独热编码更高级。词向量的长度通常比词库的大小要小得多,例如,我们可以用一个200维的向量来表示所有的单词,而不是使用一个100,000维的向量。此外,词向量可以捕捉到单词之间的语义关系,例如,“猫”和“狗”的词向量可能在向量空间中非常接近。

注:词向量的语义关系捕获
在自然语言处理(NLP)中,常见的词向量训练方法有Word2Vec、GloVe和FastText等。

  • 在Word2Vec算法中,它通过学习预测上下文,使得语义相近的词在向量空间中靠得更近。
  • GloVe算法则是通过利用全局统计信息(即词共现矩阵)来生成词向量。这种方法可以捕获到更丰富的词语共现信息,因此可以更好地表达词与词之间的关系。
  • FastText算法则是通过考虑词的上下文信息以及词内部的字母级信息,从而更好地处理形态丰富的语言,以及处理词典中没有的词。

词向量是独热编码的一种改进和优化,其可以由独热编码 w x w_x wx乘以权重矩阵 Q Q Q得到,公式如下:
w x ∗ Q = c x ( 词向量 ) w_x*Q=c_x(词向量) wxQ=cx(词向量)
上面的例子,可能会得到如下的词向量表示:

词语维度1维度2维度3
0.10.30.2
0.20.40.1
一只0.40.10.3
0.30.20.4

注:权重矩阵Q
权重矩阵Q是通过模型训练过程中的优化算法得到的。 以深度学习模型为例,权重矩阵Q是模型中的参数,通过反向传播和梯度下降等优化算法,不断调整这些权重,使得模型在训练数据上的预测误差最小。

word2vec

Word2Vec是Google于2013年提出的一种用于生成词向量的两层神经网络模型。它的目标是根据给定的语境预测单词或根据单词预测语境。其主要用CBOW(Continuous Bag of Words)Skip-Gram模型来做预测语境。

  • Skip-Gram:输入是一个词,输出是该词周围的一些词。模型的目标是最大化给定单词的情况下,其上下文词出现的概率。适用于处理大型语料库,因为它对罕见词的处理效果比较好。
  • CBOW:和Skip-Gram模型刚好相反,输入是某个词的上下文,输出是这个词。模型的目标是最大化给定上下文的情况下,中心词出现的概率。这种模型训练速度更快,但对罕见词的处理效果不如Skip-Gram。

假设我们有一个句子:“我有一只猫”,我们使用Skip-Gram模型,并设定窗口大小为2,那么对于每个词,我们都会考虑它前后各两个词。
以词"一只"为例,它前面两个词是"我"和"有",后面两个词是"猫"。那么,我们的训练样本就是(“一只”,“我”),(“一只”,“有”),(“一只”,“猫”)。在训练过程中,我们的模型需要学习到这样的信息:当"一只"出现的时候,“我”,"有"和"猫"是可能出现在它周围的词。

from gensim.models import Word2Vec# 训练文本
sentences = [["我", "有", "一只", "猫"]]# 训练模型
model = Word2Vec(sentences, min_count=1, window=2)# 打印"一只"的词向量
print(model.wv["一只"])

注:我们的例子只有一个很短的句子,在实际应用中,Word2Vec通常需要在大量文本数据上进行训练,才能得到有用的词向量。

词向量的局限性

词向量虽然能够捕获词与词间的语义关系,但也存在一些局限性。例如,传统的词向量模型无法处理一词多义的问题,因为它们都是为每个词分配一个固定的向量。然而,最新的预训练模型(如BERT、GPT等)通过引入动态词向量的概念,成功解决了这个问题。在这些模型中,一个词的向量表示会随着其上下文的变化而变化,从而能够捕获到词的多义性。

参考

  1. chat-gpt4
  2. 预训练语言模型的前世今生

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

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

相关文章

【Matlab深度学习】详解matlab深度学习进行时间序列预测

🔗 运行环境:Matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 🔐#### 防伪水印——左手の明天 ####🔐 💗 大家…

bat文件的外部参数

bat执行时有两种获得参数的方法,一种是执行时在命令行中输入,一种是运行时从键盘输入。 从命令行输入参数,使用两个%中间包含数字表示,数字从1至9,命令行参数最多为9个。示例: echo off echo show %1%键盘…

力扣——盛最多水的容器

题目描述: 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:…

最短路径(2.19)

目录 1.网络延迟时间 弗洛伊德算法 迪杰斯特拉算法 2. K 站中转内最便宜的航班 3.从第一个节点出发到最后一个节点的受限路径数 4.到达目的地的方案数 1.网络延迟时间 有 n 个网络节点,标记为 1 到 n。 给你一个列表 times,表示信号经过 有向 边的…

day32贪心算法 part02

贪心系列的时候,题目和题目之间貌似没有什么联系,是真的就是没什么联系,因为贪心无套路,没有个整体的贪心框架解决一系列问题,只能是接触各种类型的题目锻炼自己的贪心思维。贪心只是一类题的统称,并没有什么固定套路。 122. 买卖…

Android NDK底层BUG,记录:connect、socket(AF_INET, SOCK_STREAM, 0) 等系统套接字接口函数崩溃问题。

在 Android NDK 之中,看上去调用 connect、socket 函数是不会崩溃的,但这是否定的,它在特定的情况下存在必定的崩溃的问题。 但是这种情况放到MACOS、LINUX、WINDOWS都不会崩溃,而它崩溃的点出现在操作系统底层。 人们需要参考这…

香橙派企业信用问题-劝一个是一个,别买!!!

1. 背景 香橙派推广旗下AI PRO 开发板,在B站做直播,一场直播两个直播间,分别抽取一名观众,宣传是场场送AI PRO开发板!!! 2. 收到奖品与宣传不符合 3.咨询群主:态度很傲慢&#xff0c…

MES的生产计划管理与ERP的生产计划管理到底有什么不同?

在制造业信息化的道路上,ERP系统和MES系统是两个非常重要的信息化管理工具。大多数制造业企业往往首先考虑上ERP系统,经过一段时间的深度使用后,再引进MES系统进行报工或数采。但我们可以发现,这两个系统都能进行生产管理&#xf…

数学建模团队分工建议

文章目录 引言数学建模概述数学建模团队的组成与角色定位一、团队组成与角色定位1.1 团队成员1.2 角色定位 二、团队协作方式 分工方案分工原则分工策略 按照任务流程分工数据收集与处理分工模型建立与优化分工结果分析与报告撰写分工用代码来表示这个过程 总结模块目录模块一&…

详细了解网络通信流程、协议组成、编码方式、数据传输方式和途径、Http 协议的编码、cookie的使用和提取路径

详细了解网络通信流程、协议组成、编码方式、数据传输方式和途径、Http 协议的编码、cookie的使用和提取路径。 一、网络通信简介 现代的网络传输介质以以太网链路居多,完整的网络数据报结构大致如下。传输层及其以下的机制由操作系统内核提供,应用层由用户进程提供,应用程…

上位机图像处理和嵌入式模块部署(qmacvisual学习1)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 虽然我们前面学习了很多的知识点,比如说在windows这边,用qt写界面,用opencv写图像处理代码;在linux…

二维码门楼牌管理系统技术服务:构建智慧城市的基石

文章目录 前言一、标准地址设置规则二、门楼牌作为标准地址的法定载体三、二维码门楼牌管理系统技术服务的优势与应用前景 前言 在智慧城市建设的浪潮中,二维码门楼牌管理系统技术服务以其高效、便捷的特性,逐渐成为城市管理的重要工具。本文将深入探讨…

一张草图直接生成视频游戏,谷歌推出生成交互大模型

谷歌DeepMind的研究人员推出了,首个无需数据标记、无监督训练的生成交互模型——Generative Interactive Environments,简称“Genie”。 Genie有110亿参数,可以根据图像、真实照片甚至草图,就能生成各种可控制动作的视频游戏。Ge…

项目可行性方案:人脸识别实现无感考勤的项目技术可行性方案

目 录 1.引言 1.1编写目的 1.2背景 2.可行性研究的前提 2.1要求 2.2目标 3.对现有系统的分析 3.1系统改进示意图 3.2改进之处 3.3技术条件方面的可行性 4.结论 1.引言 1.1编写目的 本报告编写的目的是探究学校里对教室和办公室内教师的人脸进行识别从而…

Linux --- 应用层 | HTTP | HTTPS

前言 前面写的TCP/UDP客户端在访问服务端的时候,需要输入ip地址和端口号才可以访问, 但在现实中,我们访问一个网站是直接输入的一个域名,而不是使用的ip地址端口号。 比如在访问百度 https://www.baidu.com/的时候, …

RocketMQ - 深入研究一下消费者是如何获取消息处理以及进行ACK

1. 消费者组到底是个什么概念 消费者组的意思就是让你给一组消费者起一个名字,比如有一个Topic叫“TopicOrderPaySuccess”,然后假设有库存系统、积分系统、营销系统、仓储系统他们都要去消费这个Topic中的数据。 此时我们应该给这四个系统分别起一个消费组的名字,比如sto…

Linux:管道文件及相关API

目录 前言一、管道文件1、基本概念2、匿名(无名)管道3、命名(有名)管道4、管道的特点5、思考:何时只能使用无名管道,何时又只能用有名管道?无名管道(匿名管道)适用的情况:有名管道(命名管道&…

2024最新AI系统ChatGPT网站源码, AI绘画系统

一、前言说明 R5Ai创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧。已支持GP…

CVE-2024-23334 AIOHTTP 目录遍历漏洞分析

漏洞描述: aiohttp 是一个用于 asyncio 和 Python 的异步 HTTP 客户端/服务器框架。使用aiohttp作为Web服务器并配置静态路由时,需要指定静态文件的根路径。此外,选项“follow_symlinks”可用于确定是否遵循静态根目录之外的符号链接。当“f…

css样式元素的相对定位,绝对定位,固定定位等元素定位运用技巧详解

文章目录 1.相对定位 relative2.绝对定位 absolute3.固定定位4.display 转换元素5.float浮动6.float产生内容塌陷问题7.overflow CSS样式学习宝典,关注点赞加收藏,防止迷路哦 在CSS中关于定位的内容是:position:relative | absolute | static…