词向量模型Word2Vec

news2024/11/28 23:39:25

Word2Vec

  • CBOW连续词袋模型
    • 例子
      • CBOW模型的embeddings层
      • CBOW模型的线性层
    • 总结
  • skip-gram跳字模型
    • 例子
    • Skip-Gram模型的结构

CBOW和skip-gram的目标都是迭代出词向量字典(嵌入矩阵)——embeddings

CBOW连续词袋模型

根据上下文词汇预测目标词汇
在这里插入图片描述

例子

使用study的上下文,表示出study

例句:We are about to study the idea of deep learning.

  1. 某个词的上下文,需要提前设置一个上下文窗口长度

窗口长度为1:We are about to study the idea of deep learning. (上下文分别问to和the)
窗口长度为2:We are about to study the idea of deep learning. (上下文分别为about to 和 the idea)

  1. 设置好窗口的长度后,需要通过窗口内的词语,预测目标词:

窗口长度为2时,则有如下对应关系:
We、are、to、study -预测> about
are、about、study、the -预测> to
about、to、the、idea -预测> study

  1. CBOW模型是一个神经网络:该神经网络会将接收上下文词语,将上下文词语转换为最有可能得到的目标词。
    eg.如果向神经网络输入 about、to、the、idea四个词,神经网络则输出study这个词。
    在这里插入图片描述

CBOW模型的embeddings层

CBOW模型中有一个特殊的层——embeddings层
embeddings层是一个N*V的矩阵
N——词表中的词语个数;
V——词向量的维度
他就是我们最终希望得到的嵌入矩阵
在这里插入图片描述
embeddings层的作用是将我们输入的词语转换成词向量
在这里插入图片描述

1.将词语we输入至CBOW,将we转换为One-Hot编码形式,是一个1xN的向量,其中只有与We对应的位置是1,其余位置都是0
2.将we的One-Hot编码(1xN的向量)与embeddings(NxV的矩阵)相乘,得到we的词向量(1xV的向量)

相当于从矩阵中选择一个特定的行,从embeddings中查找we的词向量。
由于某个词的上下文中包括了多个词语,这些词语会同时输入embeddings层,每个词语都会被转换为一个词向量。
在这里插入图片描述

多个上下文词的一个统一表示:v=(v1+v2+v3+v4)/ 4
embeddings层的输出结果:是一个将语义信息平均的向量v

CBOW模型的线性层

在embeddings层后会连接一个线性层
在这里插入图片描述

橙色标记的线性层
不设置激活函数
权重矩阵的维度:VxN
词向量维度:V
词表中词语的个数:N
V个隐藏神经元、N个输出神经元的神经网络

  1. 我们将所有上下文词向量的平均值(向量V),输入该线性层
  2. 通过线性层的计算得到一个1xN的向量
  3. 将1xN的向量再输入至softmax层,最终计算出一个最有可能的输出词,这个词就是CBOW模型的预测目标词
    在这里插入图片描述

总结

CBOW模型包括两部分:embeddings层和线性层
embeddings层:将输入的上下文词语,都转换为一个上下文词向量,并继续求出这些上下文词向量的平均值(代表整个上下文的向量)
线性层:接收该向量,并将其转换为一个输出向量(输出向量的维度与词汇表的大小相同)
最后使用softmax函数,将输出向量转换为一个概率分布,表示每个词作为目标词的概率,概率最大的词就是CBOW模型的预测结果
在这里插入图片描述

skip-gram跳字模型

根据目标词汇预测上下文
在这里插入图片描述

例子

使用词语study,预测出它的上下文

例句:We are about to study the idea of deep learning.

  1. 某个词的上下文,需要提前设置一个上下文窗口长度

设置窗口长度为2后,根据目标词,预测窗口内的上下文词,study -预测-> about、to、the、idea

如何使用一个词预测另一个词:
使用一个词,预测另一个词,尽量使这两个词的词向量接近
Skip-gram在迭代时,调整词向量:
在这里插入图片描述
使目标词的词向量与其上下文的词向量尽可能的接近;
使目标词的词向量与非上下文词的词向量尽可能的远离。
因此我们对于给定的目标词,它与它的上下文的词向量相似,与非上下文词的词向量不相似。

在skip模型中,判断两个词向量是否相似,使用向量点积:
A·B=a1b1+a2b2+…+anbn
A=(a1,a2,…,an)
B=(b1,b2,…,bn)
向量的点积:衡量了两个向量在同一方向上的强度,点积越大——两个向量越相似,它们对应的词语语义就越接近
在这里插入图片描述
需要想办法让study与about的词向量点积尽可能大

Skip-Gram模型的结构

在这里插入图片描述
目标词的概率分布——词汇表中的每个词是目标词的上下文的可能性
在这里插入图片描述
词表中的词,与目标词有两种关系:

  1. 上下文词——正样本,标记为1
  2. 非上下文词——负样本,标记为0
    在这里插入图片描述

基于这一点来优化模型中两个嵌入层——in_embedding和out_embedding
最后将in_embedding作为skip-gram模型的输出
在这里插入图片描述
由此产生的训练数据:有4个上下文词,因此产生4组训练数据
在这里插入图片描述

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

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

相关文章

【FastCAE源码阅读3】几何模型显示:从OCC对象到VTK对象

从几何到显示还是比较麻烦的,需要将几何对象转换成渲染对象,涉及几何建模、面的三角化、图形渲染等学科,阅读本文需了解一些基本的OCC、VTK编程 一、几何体显示基本流程 FastCAE几何内核使用的是OCC,显示渲染用的VTK,…

Leetcode—111.二叉树的最小深度【简单】

2023每日刷题(十八) Leetcode—111.二叉树的最小深度 DFS实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ int minDepth(struct TreeNode* root…

NCL颜色索引表---全平台可用

NCL颜色索引表—全平台可用

三维向量旋转

三维向量旋转 问题描述问题分析 v ⃗ ∣ ∣ \vec{v}_{||} v ∣∣​的旋转 v ⃗ ⊥ \vec{v}_{\bot} v ⊥​的旋转 v ⃗ \vec{v} v 的旋转结论致谢 问题描述 如图1所示,设一个向量 v ⃗ \vec{v} v 绕另一个向量 u ⃗ [ x , y , z ] T \vec{u}[x,y,z]^{T} u [x,y,z]T…

【电路笔记】-相位差和相移

相位差和相移 文章目录 相位差和相移1、概述2、相位差2.1 同频信号2.2 电流与电压信号2.3 相似频率的信号 3、干扰4、总结 当我们听歌曲时,我们将正弦声音波形感知为音乐。 它们的振幅告诉我们信号有多大,频率告诉我们声音是低音还是高音。 然而&#xf…

vue学习part01

02_Vue简介_哔哩哔哩_bilibili Vue.js - 渐进式 JavaScript 框架 | Vue.js (vuejs.org) 1.简介 2.常用用法 新项目一般vue3,老项目vue2 3.vue两种风格:选项式api(vue2)和组合式api(vue3) 两种方式实现累…

JS异常处理——throw和try、catch以及debugger

让我为大家介绍一下异常处理吧! 异常处理是指预估代码执行过程中可能发生的错误,然后最大程度的避免错误的发生导致整个程序无法继续运行 throw 抛异常 第一种写法 function fun(x, y) {// undefined是false 但取反就是trueif (!x || !y) {// 第一种写…

实习记录--(海量数据如何判重?)--每天都要保持学习状态和专注的状态啊!!!---你的未来值得你去奋斗

海量数据如何判重? 判断一个值是否存在?解决方法: 1.使用哈希表: 可以将数据进行哈希操作,将数据存储在相应的桶中。 查询时,根据哈希值定位到对应的桶,然后在桶内进行查找。这种方法的时间复…

在线词典项目-项目介绍及框架搭建

项目介绍 通过代码实现词典的注册、登录、单词注释查询、历史查询、查询记录。 有道词典分析图 客户端流程图 注释:首先开始-->创建流式套接字-->连接服务器-->输入需要执行的命令代码-->创建循环,判断需要执行的函数(如果登录…

基于深度学习的行人重识别(person reid) 计算机竞赛

文章目录 0 前言1 技术背景2 技术介绍3 重识别技术实现3.1 数据集3.2 Person REID3.2.1 算法原理3.2.2 算法流程图 4 实现效果5 部分代码6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的行人重识别 该项目较为新颖,适合…

AIGC | 如何用“Flow”,轻松解决复杂业务问题

随着LLM(大语言模型)的爆火,不少企业都在寻找通过LLM解决企业业务问题的方法,以达到降本增效的效果。但是,当面对较为复杂的业务问题(如:背景资料多、问题分类多、条件判断复杂、涉及模块多等&a…

Java高级互联网架构师之路:垃圾回收器的介绍

本文重点 从本文开始我们将开启垃圾回收器的介绍了,我们知道垃圾回收算法是逻辑改变,而垃圾回收器是具体的实现。我们前面介绍的垃圾回收器有7个,本文将在添加三个,但是这三个目前来看不是很常用,我们只了解一下,我们主要还是讲解这7个垃圾回收器。 十个垃圾回收器 目…

天空卫士为集度智能汽车系上“安全带”

10月27日,集度汽车在北京正式发布了旗下首款量产车型——极越 01 SUV。极越 01 SUV 是一款集科技、智能、美学于一身的纯电动中大型SUV,号称全球首款“AI 汽车机器人”。作为集度的合作伙伴,天空卫士第一时间送上祝福,祝愿极越大卖…

鸿蒙应用开发取消标题栏

在config.json中的module下添加如下内容: "metaData": {"customizeData": [{"name": "hwc-theme","extra": "","value": "androidhwext:style/Theme.Emui.Light.NoTitleBar"}] }…

深度学习_4 数据训练之线性回归

训练数据 线性回归 基本原理 比如我们要买房,机器学习深度学习来预测房价。房价的影响因素有:卧室数量,卫生间数量,居住面积。此外,还需要加上偏差值来计算。我们要找到一个正确率高的计算方法来计算。 首先&#…

web3 React dapp中编写balance组件从redux取出并展示用户资产

好啊 上文WEB3 在 React搭建的Dapp中通过redux全局获取并存储用户ETH与自定义token与交易所存储数量中 我们拿到了用户的一个本身 和 交易所token数量 并放进了redux中做了一个全局管理 然后 我们继续 先 起来ganache的一个模拟环境 ganache -d然后 我们启动自己的项目 顺手发…

SaveToDisk属性

大家好,才是真的好。 Domino Designer的帮助文档里面充满了宝藏,最近就发现一个notesitem对象的SaveToDisk属性,你可以设置它为false,这样,虽然文档保存了,但这个字段本身可以不用保存,不仅可以…

激光雷达标定板如何提高激光雷达避免误判的精准度

激光雷达在提高自动驾驶的安全性方面具有重要作用。它通过高精度测量、避免误判、实时感知、适应不同环境和结合其他传感器等方式,为自动驾驶系统提供准确、可靠的感知数据,从而确保行驶的安全性和稳定性。 激光雷达可以通过以下方式避免误判&#xff1a…

测试用例设计方法:正交试验法详解!

01、正交试验法介绍 正交试验法是研究多因素、多水平的一种试验法,它是利用正交表来对试验进行设计,通过少数的试验替代全面试验,根据正交表的正交性从全面试验中挑选适量的、有代表性的点进行试验,这些有代表性的点具备了“均匀…

2023.11.03 homework

小学4年级数学 1 2 3 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 19…