深度学习:词嵌入embedding和Word2Vec模型

目录

前言

一、词嵌入(Embedding)

1.传统自然语言处理问题

2.什么是词嵌入

3.主要特点

二、Word2vec模型

1.连续词袋模型(CBOW)

2.跳字模型(Skip-gram)

三、CBOW模型训练过程


前言

        在机器学习里的自然语言处理,是将语料库中的词语转换成词向量矩阵,再使用朴素贝叶斯算法对其进行预测。这篇文章要讲的是深度学习里关于自然语言处理的一些概念

 

一、词嵌入(Embedding)

1.传统自然语言处理问题

  • 早期的模型没有考虑到词序和上下文关系,使得模型无法捕捉句子中词之间更复杂的语义联系
  • 某些传统算法可能需要大量的计算和存储资源,影响其可扩展性

例如:

  1. 一个语料库4960个词语
  2. 每个词语的独热编码都是4959个0和1个1按顺序组成
  3. 第一个词语就是[000000...0001],第二个[0000...0010],依此类推
  4. 将其转换成词向量矩阵就是(4960*4960)
  5. 每一行数据就是一个词
  6. 如果语料库很大,那么就会出现维度灾难
  7. 使用词嵌入解决这种情况

 

2.什么是词嵌入

  • 词嵌入(Word Embedding)是一种将词语转换为固定长度的向量表示的技术。这种表示方式能够捕捉词语之间的语义关系和上下文信息,使得计算机能够更好地理解自然语言。
  • 例如将一个词向量为(1*4960)的词语乘以一个(4960*300)的矩阵,将其变成(1*300)的词向量矩阵,从而达到降维的目的,解决了维度灾难。
  • Word2vec模型就是一种词嵌入方法

 

3.主要特点

  1. 低维表示:词嵌入将高维的词汇表转换为固定长度的稠密向量,通常在几十到几百维之间。
  2. 语义相似性:在嵌入空间中,语义相近的词会被映射到相近的向量位置。例如,“king”和“queen”会在向量空间中距离较近。
  3. 捕捉上下文:词嵌入能够通过上下文信息捕捉词的多义性和用法变化。

 

二、Word2vec模型

  • Word2Vec是由Google的研究团队提出的一种用于词嵌入的模型,旨在将单词转换为向量,以便于计算机理解和处理自然语言。
  • 它能够捕捉词与词之间的语义关系,并在许多自然语言处理任务中得到了广泛应用。

 

1.连续词袋模型(CBOW)

  1. 目标是在给定上下文(周围词)的情况下预测中心词。
  2. 例如,在句子“我喜欢学习”中,如果上下文是“我”和“学习”,模型的目标是预测“喜欢”。
  3. 即输入“我”和“学习”的独热编码,预测“喜欢”的独热编码

 

2.跳字模型(Skip-gram)

  1. 目标是根据中心词预测其上下文。
  2. 例如,在句子“我喜欢学习”中,如果中心词是“喜欢”,模型的目标是预测“我”和“学习”。
  3. 输入“喜欢”的独热编码,预测“我”和“学习”的独热编码

 

三、CBOW模型训练过程

  1. 当前词的上下文词语的one-hot编码输入到输入层。
  2. 这些词分别乘以同一个矩阵W(V*N)后分别得到各自的1*N 向量。
  3. 将多个这些1*N 向量取平均为一个1*N 向量。
  4. 将这个1*N 向量乘矩阵 W'(N*V) ,变成一个1*V 向量。
  5. 将1*V 向量softmax归一化后输出取每个词的概率向量1*V
  6. 概率值最大的数对应的词作为预测词
  7. 将预测的结果1*V 向量和真实标签1*V 向量(真实标签中的V个值中有一个是1,其他是0)计算误差
  8. 在每次向前传播之后反向传播误差,不断调整 W(V*N)和 W'(N*V)矩阵的值。

 

拿一个词语为4960个的语料库来举例,使用CBOW模型完成词嵌入:

  1. 假设选取上下各选两个词语,输入层每一个神经元接收一个词语的独热编码,然后将其乘以第一个权重w1(4960*300)的矩阵,将结果(1*300)的矩阵传入中间层
  2. 中间层将输入层传入的四个结果组合成一个(4*300)的矩阵,然后再对每一列进行求和得到(1*300)的矩阵,将该矩阵传入输出层
  3. 输出层接收到中间层传入的(1*300)的矩阵,将其乘以第二个权重w2(300*4960)的矩阵,得到(1*4960)的矩阵,每一列就是每个词语的预测结果
  4. 对矩阵进行归一化,得到的每一列都是一个词语的概率值
  5. 概率值最大的即为预测词
  6. 然后将该词的预测结果与真实标签进行误差计算
  7. 在每次向前传播之后反向传播误差,不断调整w1和w2的值

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

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

相关文章

crossover和虚拟机哪个好用?Mac电脑玩游戏用哪个软件?

由于大多数热门游戏都是针对Windows平台开发的,这对于Mac用户来说可能会带来一些困扰。幸运的是,有几款虚拟机软件可以帮助解决这个问题,其中最常提到的是Parallels Desktop(简称PD虚拟机)和CrossOver。 PD虚拟机&…

网约巴士订票系统小程序的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,用户管理,巴士信息管理,积分兑换管理,积分纪录管理,新闻信息管理,基础数据管理 微信端账号功能包括:系统…

基于运动合成分解的舵轮底盘运动模型(以正三角形三轮底盘为例)

目录 1.总述 2.车轮参考方向 3.坐标系 4.停止 5.仅平移 6.仅旋转 7.平移旋转 8.电机驱动 9.原方案(弃用) 正三角形 正方形 等腰三角形 等腰三角形(重制) 附录 现代码 原代码 头文件 此文档原本是对附录中代码的解…

Llama3 AI应用开发实战指南

引言 大环境不好的情况下,程序员如何生存,AI大模型开发是一个好的选择和尝试。所谓技多不压身。Llama3,作为近年来备受瞩目的开源大模型之一,以其强大的自然语言处理能力吸引了众多开发者的关注。这篇文章将通过一系列实战步骤&a…

Anthropic Message Batches API 满足批量处理大量请求

现在开发的系统有大量知识汇总统计、跑批处理需求的同学可以尝试一下,看看能不能解决自己目前的问题~~ 可能是一个解决方案 Anthropic 推出的 Message Batches API ,专门用于帮助开发者批量处理大量请求。它的主要目的是通过一次性处理大量非实时任务&a…

阿里云 CDN如何缓解ddos攻击

在网络安全日益重要的今天,DDoS攻击已成为企业面临的主要威胁之一。阿里云CDN(内容分发网络)以其强大的防护能力,成为抵御DDoS攻击的利器。九河云来和大家聊聊阿里云 CDN是如何缓解ddos攻击的吧。 首先,阿里云CDN通过…

基于双波长AWG的窄线宽外差拍频激光器

摘要:基于阵列波导光栅的多波长激光源已被证明可以同时提供多个波长和较窄的光线宽。为了产生毫米波信号,我们开发了两种不同的激光结构,并使用光子集成电路进行了单片集成。在这项工作中,我们报告了毫米波范围内的外差信号特性。…

电脑屏保设置教程 好看的电脑屏保应该怎么设置?

一、电脑自带的屏保设置,主题少,操作复杂; 你需要选择一个合适的屏保。在Windows系统中,你可以通过以下步骤找到合适的屏保: 右键点击桌面空白处,选择“个性化”; 在“个性化”设置中&#x…

leetcode:反转字符串II

题目链接 string reverse(string s1) {string s2;string::reverse_iterator rit s1.rbegin();while (rit ! s1.rend()){s2 *rit;rit;}return s2; } class Solution { public:string reverseStr(string s, int k) {string s1;int i 0;//标记字符串下标int j 0;int length …

【Oracle进阶】_001.SQL基础查询_查询语句

课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :&#x1…

第 2 章 基础支持层(上)

2.1 解析器模块 常见的 XML 处理方式 DOM,基于树形结构的 XML 解析方式,它会将整个 XML 文档读入内存并构建一个 DOM 树,基于这棵树形结构对各个节点(Node)进行操作。 SAX,基于事件模型的 XML 解析方式&a…

【无人水面艇路径跟随控制10】(Matlab)USV代码阅读:testUSV仿真无人水面艇在一定时间内的运动,使用欧拉法对状态进行积分,并绘制仿真结果

【无人水面艇路径跟随控制10】(Matlab)USV代码阅读:仿真无人水面艇在一定时间内的运动,使用欧拉法对状态进行积分,并绘制仿真结果 写在最前面testUSV.m总结代码详解1. **初始化部分**2. **仿真循环**3. **仿真数据提取…

【docker】存储之目录挂载和卷映射

一、前言 之所以讲Docker存储的目录挂载和卷映射,是因为之前我们在做关于修改下载的镜像的内容的时候,我们会发现,这个修改的过程比较复杂的,我们需要多个指令,层层深入。而且如果我们的容器一旦销毁后重新启动&#x…

全网首创Windows Powershell 批量创建、重命名和拷贝文件夹和文件到指定目录

哈喽大家好,欢迎来到虚拟化时代君(XNHCYL)。 “ 大家好,我是虚拟化时代君,一位潜心于互联网的技术宅男。这里每天为你分享各种你感兴趣的技术、教程、软件、资源、福利…(每天更新不间断,福利…

【linux】冯诺依曼架构

🔥个人主页:Quitecoder 🔥专栏:linux笔记仓 目录 01.冯诺依曼体系结构02.操作系统(Operator System)如何理解“管理”操作系统中实现“管理的先描述再组织” 03.系统调用与库函数系统调用库函数 01.冯诺依…

工作笔记【五】——媒体查询

更新一下今天学到的东西——媒体查询(浅学一下~) 今天的任务是做一个网站的footer,要求在类似手机的设备打开时,footer元素竖向排列,在pc类的设备打开时,footer元素横向排列。 PC端: 手机端&a…

SpringBoot+Vue智能社区服务小程序

SpringBootVue智能社区服务小程序 SpringBootVue智能社区服务小程序 项目描述 智能社区服务小程序的前台小程序是一个集成多功能的综合性平台,旨在提供便捷、高效的社区服务。以下是关于各个功能的简单介绍: 用户管理:用户管理模块负责社区…

你知道C++多少——栈和队列

🌈个人主页:小新_- 🎈个人座右铭:“成功者不是从不失败的人,而是从不放弃的人!”🎈 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 🏆所属专栏&#xff1…

数据库管理平台应该具备哪些功能

企业数据的的扁平一体化管理越来越普及。 一个企业如果想要做好数据扁平一体化管理的核心问题是如何高效地管理这些资源。构建一个能够完美整合、系统化组织数据,并提供直观可视分析界面的数据库管理平台,便是企业加速数字化转型的必备工具。 假如公司有…

json格式的post请求目前不行, 要换成form表单形式的post请求怎么改

问: 下面是我的代码 export function fetchDeleteList<T>(agentSessionId: string) {return post<T>({url: http://192.168.0.116:8089/pipe-ics/agent/delete,method: post,data: { agentSessionId },}) } 目前是json格式的post请求, 目前不行, 要换成form表单…