自然语言处理-词向量模型-Word2Vec

目录

一、前言

二、词向量

三、词向量的实际意义

四、模型的整体框架

五、构建输入数据

六、不同模型的对比

七、负采样方案

八、总结 


一、前言

        计算机只认识数值数字,那么怎么认识自然语言呢???答案就是将自然语言转换转换成数值,就词向量。

        先来考虑一个问题,如何能将文本向量化呢???看起来比较抽象,可以先从人的角度来观察。

        如何来描述一个人呢???只用身高或者体重,还是,综合其各项指标呢??

        例如:Kevin Durant 身高211cm, 体重90kg,这能完全描述他吗???当然不能,还有NBA超巨,全明星,死神,等等描述。

二、词向量

        词向量(Word Embedding)是自然语言处理(NLP)中的一种技术,它可以将词汇表中的单词或短语映射到实数向量空间。以下是关于词向量的详细介绍:

  • 词向量的核心在于将每个单词表示为高维空间中的一个点,这些点不仅代表了单词的语义信息,还可以通过计算向量之间的距离来分析词语之间的关联性和相似性。
  • 词向量的生成方法包括神经网络、单词共生矩阵降维、概率模型等,这些方法使词向量能够捕捉到语言数据中的分布属性,从而量化语言项之间的语义相似性。
  • 词向量已被广泛应用于各种NLP任务中,如语法分析、情感分析、命名实体识别、同义词寻找、词性标注、语义角色标注、句法分析和短语识别。

词向量的一个重要优势是它们能够捕获单词之间的细微差别和语义关系,例如,“king”和“queen”之间的向量差异可以反映出性别差异。尽管词向量技术已经相当成熟,但它们仍面临一些限制,比如可能将单词的多个含义混合在一个单一的向量中,这限制了对具有多重含义单词的精确表达。未来的研究可能会集中在如何改进词向量技术,以更准确地表示单词的含义和用法。

        例如:Kevin Durant生成的词向量

0.023230.33452-0.978651.35533-9.234432.23344...3.99457

        那么这个向量在我们人看来,不能理解为什么是这样,但是计算机可以认出来,这个就是Kevin Durant,包括他所有的描述。而且这个向量的维度50~300维(google得出的)。

        只要有了向量就可以用不同的方法来计算相似度。

        通常用欧氏距离,余弦距离等等。

                cosine\_ similarity([-0.4,0.8],[-0.3,0.2])=0.87\;yes

                cosine\_ similarity([-0.4,0.8],[-0.5,-0.4])=-0.20\;no

        如果我们用一个二维的向量空间来表达词向量,可以吗???

        

        虽然可以表达,但是表达的信息太少了。 

        通常,数据维度越高,能够提供的信息越多,从而计算的结果的可靠性就更值得信赖。

        那么词向量真真的有实际意义吗?或者说能表达出词的意思吗?

三、词向量的实际意义

        我们先看这样的图

   

        其实King和Queen他们又有实际意义,而且两个词都相似,所以在词向量表达中,有相同的部分。 

        光看数字我们难以观察到,把数字转换成热度图。

        假如,我们已经训练好了一个词的向量

   

四、模型的整体框架

        在词向量模型中输入和输出分别是什么???

         

        让模型学到一个词用什么样的向量表达最为合适。

        如果用神经网络来训练模型,就是让神经网络学到前后文的一个逻辑关系。

                 

        我们可以看到,输入单词进入模型,然后模型训练,前向传播得到损失值,反向传播,更新参数,更新embeddings表。

        这里 embeddings表 指的是语料库的一个大表,它装有所有的词。而且是用词向量来表达。在开始的时候对于这个表进行一个类似于神经网络权重参数的初始化操作。而且与神经网络不同的是不仅仅要更新权重参数,还要跟新此表,达到让模型学到一个词用什么样的向量表达最为合适的目的。

        查找输入的词,得到词向量,在经过向量矩阵计算得到一个结果值,类似于做一个分类任务,看那个词的概率最大。这样达到预测到下一个词是什么,让神经网络学到前后文的一个逻辑关系的目的

五、构建输入数据

        数据从哪里来?

        everywhere,只要符合自然语言的上下文逻辑即可。

        如何构建训练数据

         

        可以自己构建数据集,在一篇文章中,采用滑动窗口策略。

         这样其实来看,输入数据集是很好构建的。

六、不同模型的对比

         1. CBOW模型

              

        如图,采用滑动窗口策略,Jay was hit by a 框起来,那么输入就是Jay was by a 输出就是 hit。 

  2. Skipgram模型

        同样的,采用滑动窗口策略, Jay was hit by a 框起来,那么输入就是 hit  输出就是  Jay was by a。

        

七、负采样方案

        问题:一个语料库很大,5W,10W,100W,那么在做得分计算,损失计算,概率计算,SoftMax归一化的时候,计算量可想而知的大。那么如何去处理这样的一个问题呢???

        初始方案:输入两个单词看看他们是不是前后文对应的输入和输出,也就相当于一个二分类任务了。

        出发点很好,但此时训练集构建出来的标签按照二分类标准来说就全是1了,无法进行较好的训练。

 改进方法:

        负采样方案

        

        意思就是在构造数据集时,加入一些不对应上下文的词,并且标签设置为0。上图以Skipgram模型为例,一般加入5个负采样的样本。

八、总结 

        1. 初始化磁向量矩阵

        

        input word和output word都是输入数据,且input word在Embedding里找,output word在Context里找。

        2. 通过神经网络反向传播来计算更新,不光更新权重矩阵W,也要更新输入数据。

 

        3. 得到最有可能的值。 

         

         

       

        

      

         

        

        

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud Alibaba @SentinelResource 注解

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅,从传统的模块之间调用,一步步的升级为 SpringCloud 模块之间的调用,此篇文章为第十五篇,即介绍 SpringCloud Alibaba 的 SentinelResource 注解。 二、简介 这个注解用于标…

Rust那些事之Borrow VS AsRef​

最近看到两个trait长得挺像&#xff0c;带着疑惑前来学习一下。 Borrow VS AsRef Borrow与AsRef是Rust中非常相似的两个trait&#xff0c;分别是&#xff1a; pub trait Borrow<Borrowed: ?Sized> {fn borrow(&self) -> &Borrowed; }pub trait AsRef<T: ?…

threejs 组-层级模型 | 本地坐标和世界坐标 | 局部坐标系和世界坐标系 | 本地矩阵.materix和世界矩阵.matrixWorld

文章目录 组- THREE.Group递归遍历模型树结构object3D.traverse()object3D.add (object.Object3D..) 添加对象 和 object3D.remove(object.Object3D..) 移除对象 局部坐标系和世界坐标系辅助坐标器 AxesHelper 本地坐标和世界坐标 - 基于世界坐标系的位置本地坐标与世界坐标的理…

常用的深度学习自动标注软件

0. 简介 自动标注软件是一个非常节省人力资源的操作&#xff0c;而随着深度学习的发展&#xff0c;这些自动化标定软件也越来越多。本文章将会着重介绍其中比较经典的自动标注软件 1. AutoLabelImg AutoLabelImg 除了labelimg的初始功能外&#xff0c;额外包含十多种辅助标注…

机器人码垛机:科技创新推动物流行业飞跃发展

在数字化、智能化浪潮的推动下&#xff0c;机器人技术已成为推动各行各业转型升级的重要力量。特别是在物流行业&#xff0c;机器人码垛机的应用正逐渐普及&#xff0c;以其高效、精准、节省人力的特点&#xff0c;助力物流行业实现跨越式发展。星派将介绍机器人码垛机如何助力…

nacos分布式程序开发实例

1.通过windows docker desktop 完成 nacos 的安装/启动/配置 &#xff08;1&#xff09;先安装docker desktop docker-toolbox-windows-docker-for-windows-stable安装包下载_开源镜像站-阿里云 &#xff08;2&#xff09;配置docker 国内镜像源 Docker 镜像加速 | 菜鸟教程…

C++ list链表模拟实现

目录 前言&#xff1a; 模拟实现&#xff1a; 迭代器的实现&#xff1a; list类功能函数实现&#xff1a; 初始化成空函数&#xff08;empty_init&#xff09;&#xff1a; 构造函数&#xff1a; 拷贝构造函数&#xff1a; 尾插&#xff08;push_back&#xff09;: 插入…

【触想智能】工业一体机和普通电脑的区别是什么?

工业一体机和普通电脑的区别是什么&#xff0c;工业一体机可以当普通电脑一样使用吗? 要想了解工业一体机和普通电脑的区别是什么?我们首先来看看工业一体机是什么&#xff0c;它跟普通电脑有哪些相似的地方?下面小编就为大家来详细介绍一下。 在工作原理上&#xff0c;工业…

GFS分布式 文件系统

一、GFS的概念 文件存储分为nfs、lvm、raid 对象存储分为GFS、CEPH、fastDFS&#xff08;分布式文件存储&#xff09;NAS OSS S3 switch OSS 属于阿里云 通过URL 链接 S3属于亚马逊通过URL链接 1.1 GFS简介 开源的分布式文件系统&#xff0c;由存储服务器、客户端…

Pillow教程11:九宫格切图的实现方法(安排!!!)

---------------Pillow教程集合--------------- Python项目18&#xff1a;使用Pillow模块&#xff0c;随机生成4位数的图片验证码 Python教程93&#xff1a;初识Pillow模块&#xff08;创建Image对象查看属性图片的保存与缩放&#xff09; Pillow教程02&#xff1a;图片的裁…

xv6源码分析 003

xv6源码分析 003 在开始今晚的内容之前我先纠正以下昨天的一个错误 struct cmd {int type; };代表的是在sh.c开头就定义的宏常量&#xff0c;系统调用号是通过汇编代码来传入的。修改之后的内容如下&#xff1a; 好啦&#xff0c;我们继续昨晚的内容吧。 在sh.c 的 main函数中…

大屏可视化展示平台解决方案(word原件获取)

1.系统概述 1.1.需求分析 1.2.重难点分析 1.3.重难点解决措施 2.系统架构设计 2.1.系统架构图 2.2.关键技术 2.3.接口及要求 3.系统功能设计 3.1.功能清单列表 3.2.数据源管理 3.3.数据集管理 3.4.视图管理 3.5.仪表盘管理 3.6.移动端设计 3.1.系统权限设计 3.2.数据查询过程设…

如何使用vscode启动Flask并实现无公网IP远程访问内网服务

文章目录 1. 安装部署Flask2. 安装Cpolar内网穿透3. 配置Flask的web界面公网访问地址4. 公网远程访问Flask的web界面 本篇文章主要讲解如何在本地安装Flask&#xff0c;以及如何将其web界面发布到公网进行远程访问。 Flask是目前十分流行的web框架&#xff0c;采用Python编程语…

linux网络服务学习(5):iscsi

1.什么是iscsi 1.1 scsi SCSI是一种I/O技术&#xff0c;规范了一种并行的I/O总线和相关协议&#xff08;scsi协议&#xff09;。 SCSI总线通过SCSI控制器&#xff08;target&#xff09;来和硬盘之类的设备&#xff08;scsi设备&#xff09;进行通信&#xff0c;访问的客户端…

图形学物体拾取:CPU VS GPU

一、CPU – raycaster 射线包围盒是一种常用的方法&#xff0c;在 CPU 中进行拾取&#xff0c;性能较好&#xff0c;但是精度较差。当拾取频率不高时&#xff0c;可以考虑使用像素级精度的帧缓冲拾取Framebuffer Picker.射线投射涉及将射线投射到场景中并检查对象和射线之间的…

K8s技术全景:架构、应用与优化

一、介绍 Kubernetes的历史和演进 Kubernetes&#xff08;简称K8s&#xff09;是一个开源的容器编排系统&#xff0c;用于自动化应用程序的部署、扩展和管理。它最初是由Google内部的Borg系统启发并设计的&#xff0c;于2014年作为开源项目首次亮相。 初始阶段 Kubernetes的诞生…

网站想使用https安全协议,必须要安装ssl证书吗?

ssl证书作为保护网站数据传输安全的重要工具&#xff0c;被广泛应用于网站的安全加密通信中。很多人在初次接触ssl证书时&#xff0c;有一个常见的疑问&#xff1a;网站使用https协议必须要ssl证书吗&#xff1f; 答案是肯定的。   HTTPS是一种通过计算机网络进行安全通信的…

计算机网络 网络命令的使用

一、实验内容 1.PING网络命令的实验 ping 127.0.0.1(内部回环测试)ping 本主机的IP地址ping 默认网关地址ping远端目的地的IP地址ping localhostping域名 2.其他网络命令实验 命令用途ipconfig/all 显示当前系统网络配置&#xff0c;包括IP地址、子网掩码、默认网关等trace…

Unity MySql安装部署与Unity连接

1.前言 最近项目用到MySql&#xff0c;记录一下安装部署过程。 数据量过大或者需要管理用户数据的时候用mysql的话数据结构比较清晰明了&#xff0c;便于管理。 2.安装MySql Unity版本&#xff1a;2019.4.16 MySql版本&#xff1a;8.2.0 下载地址&#xff1a;MySql 下载…

LLM - 大语言模型(LLM) 的 应用技术

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/137503579 大语言模型(LLM) 的应用技术范围非常广泛,即: LangChain:开发框架,专为大型语言模型设计,以提高开发人工智能应用的效率,允许开发者将语言模…