onehot-词嵌入-图嵌入

news2024/12/26 22:29:09

目录

一、为什么要有词嵌入?

二、one-hot编码:

三、什么是词嵌入(word embedding)

1、什么是嵌入矩阵?

2、为什么要设置维数?

3、相比one-hot编码的优点

4、什么是word2vec和GLove?

四、图嵌入

1、词嵌入与图嵌入的相似性

2、什么是随机游走

3、Node2vec

4、总结


一、为什么要有词嵌入?

文本是非结构化数据并且是不可计算的

向量是结构化数据并且是可计算的

二、one-hot编码:

猫:[1,0,0,0]

狗:[0,1,0,0]

牛:[0,0,1,0]

羊:[0,0,0,1]

缺点显而易见  真实情况文本出现的单词有成千上万个不同

  1. 无法表达词语之间的关系
  2. 这种过于稀疏的向量,导致计算和存储的效率都不高

三、什么是词嵌入(word embedding)

word embedding 是文本表示的一类方法。跟 one-hot 编码和整数编码的目的一样,但他有更多的优点,比如通过词嵌入可以把高维的one-hot稀疏变为低维稠密

例子:(如下图所示:)

s=’我喜欢学习数学’   使用词嵌入技术,将s中的每个词,都表示为一个128维的向量(这个维数是可以自定义的,只要能够保持与嵌入矩阵的维数是一致的)【为什么要设置维数】(目的是要捕捉词与词之间的关系)。

上图中的右边矩阵E即为嵌入矩阵。

1、什么是嵌入矩阵?

     嵌入矩阵是通过特定的词嵌入算法,如word2vec、fasttext、Glove等训练得到一个通用的嵌入矩阵。(如下图所示)

2、为什么要设置维数?

          设置维数是为了进一步说明词与词之间的关系(如下图左边表示)

        通过降维算法不仅可表达相似性而且可通过计算得到数学关系 ,并绘制在二维平面上,可以发现语义相近的词语对应的位置也更相近。

   上图说明,词嵌入向量不仅可以表达语义的相似性,而且可以通过向量的数学关系,描述词语之间的语义关联。

3、相比one-hot编码的优点

1、通过更低维的表达,表达效率得到提升。

2、可以理解词语的语义,并进行词语的推理,即语义相似的词在向量空间上也会更近。

3、嵌入矩阵是通用的,同一份词向量,可以用在不同的NLP任务中。

详细的视频参考:什么是词嵌入,Word Embedding算法_哔哩哔哩_bilibili

4、什么是word2vec和GLove?

Word2vec 和Glove都是 Word Embedding 的方法之一。他是 2013 年由谷歌的 Mikolov 提出了一套新的词嵌入方法。

       Word2vec有两种训练模式:CBOW(Continuous Bag-of-Words Model)和Skip-gram (Continuous Skip-gram Model)

1、CBOW通过上下文来预测当前值。相当于一句话中扣掉一个词,让你猜这个词是什么

比如:

2、Skip-gram用当前词来预测上下文。相当于给你一个词,让你猜前面和后面可能出现什么词

比如:

详细内容可参考:一文看懂 Word2vec(基本概念+2种训练模型+5个优缺点) (easyai.tech)

Glove算法详细可参考:GloVe详解 | 永远的热河路 (fanyeong.com)

四、图嵌入

将图嵌入到一个低维连续稠密的d维向量,上图中的d=6,这就是图嵌入。

1、词嵌入与图嵌入的相似性

词嵌入与图的随机游走是相似的,相邻的词之间是(相似的)存在一定关系,随机游走也是相邻的节点是相似的(可以预测中间的点)。(左图为节点,右图为词嵌入)

2、什么是随机游走

随机游走(deepWalk)就是在图中选取邻近的结点是完全随机的,其嵌入缺点,完全的随机游走,训练节点嵌入向量,只会把距离自己比较近的存在相似,而距离远但实际相似的是捕捉不到的。

例如,下图苏伊士运河和巴拿马运河随机游走是做不到相似的。它只能找到周边的相似性。

DeepWalk缺点:
1、用完全随机游走,训练节点嵌入向量。
2、仅能反映相邻节点的社群相似信息。
3、无法反映节点的功能角色相似信息。
可参考的视频:Node2Vec【图神经网络论文精读】_哔哩哔哩_bilibili

3、Node2vec

node2vec相当于有偏的随机游走(可调节pq值)。(a乘权重有权图或者乘1无权图

左图,如果把p调小相当于BFS(找周围相似),右图若把q调的小相当于DFS(找远处的相似),可以想象为DFS与BFS的一种结合。是一种二阶的随机游走,而不是deepWalk一阶的(相当于p=1,q=1的特例)。

4、总结

(Node2vec图嵌入算法)是无监督的和deepwalk(相当于把Word2vec用在图上)一样 :

1、Node2Vec解决图嵌入问题,将图中的每个节点映射为一个向量(嵌入)

2、向量(嵌入)包含了节点的语义信息(相邻社群和功能角色)。

3、语义相似的节点,向量(嵌入)的距离也近。

4、向量(嵌入)用于后续的分类、聚类、Link Prediction、推荐等任务。

1、在DeepWalk完全随机游走的基础上,Node2Vec增加p、_q参数,实现有偏随机游走。不同的p、q组合,对应了不同的探索范围和节点语义。

2、DFS深度优先探索,相邻的节点,向量(嵌入)距离相近。

3、BFS广度优先探索,相同功能角色的节点,向量(嵌入)距离相近。

4、DeepWalk是Node2Vec在p=1, q=1的特例。

LinkEmbedding

是两个点的连接,相当于将两个点进行融合到一起。

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

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

相关文章

【计算机毕设案例推荐】高校学术研讨信息管理系统小程序SpringBoot+Vue+小程序

前言:我是IT源码社,从事计算机开发行业数年,专注Java领域,专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务 项目名 基于SpringBoot的高校学术研讨信息管理系统小程序 技术栈 SpringBoot小程序VueMySQLMaven 文…

珠宝行业软件,虽简约但不简单

作者:永远的新手 从学习猫框以来,一直向猫老师请教如何学习猫框和VFP的基础知识,猫老师不厌其烦传授知识于我。因为我是一位纯业余VFP爱好者,我的VFP几乎是零基础,接触猫框后,虽说时间很短,但其…

快来跟我一起抢先看看未来世界的出行,体验未来城市吧~

体验平台:Pony Robotaxi,Apollo Robotaxi,如棋Robotaxi 本文关键词Apollo,自动驾驶,智能出行,无人公交,无人清扫车等 感受未来世界的出行,体验未来城市! 一、未来智能出行…

C++ vector 的模拟实现

目录 1. vector 类的成员变量 2. 无参构造 3. 析构函数 4. size_t capacity() 5. size_t size() 6. void reserve(size_t n) 7. 迭代器 8. void push_back(const T& x) 9. T& operator[](size_t pos) 10. iterator insert(iterator pos, const T& val…

【哈希表完整代码】模拟实现哈希表和unordered_set与unordered_map

目录 HashTable.h: Test.cpp: MyUnorderedSet.h: HashTable.h: #pragma once #include<iostream> #include<vector> #include<utility>//pair头文件 #include<assert.h> #include<string>using namespace std;namespace CLOSEHASH {enum Sta…

mk语法示例

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

【会员管理系统】篇一之项目预热

一、技术架构 vue.js vueCLI 3.x Axios babel EcmaScript6 Eslint Mock.js Easy-Mock Element UI Vuex 二、RESTful风格 三、Mock.js简单使用 1、简单使用 &#xff08;1&#xff09;新建文件夹&#xff0c;在vscode中打开&#xff0c;使用终端…

在线存储系统源码 网盘网站源码 云盘系统源码

Cloudreve云盘系统源码-支持本地储存和对象储存,界面美观 云盘系统安装教程 测试环境:PHP7.1 MYSQL5.6 Apache 上传源码到根目录 安装程序: 浏览器数据 http://localhost/CloudreveInstallerlocalhost更换成你的网址 安装完毕 记住系统默认的账号密码 温馨提示:如果默认…

【数据结构与算法篇】还不会二分查找?看这篇就够了!

​&#x1f47b;内容专栏&#xff1a; 《数据结构与算法篇》 &#x1f428;本文概括&#xff1a;整数二分算法&#xff08;朴素二分&#xff0c;查找区间左端点与区间右端点二分&#xff09;、浮点数二分 &#x1f43c;本文作者&#xff1a; 阿四啊 &#x1f438;发布时间&…

【Python数据挖掘 基础篇】Python数据挖掘是个啥?

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 梦想从未散场&#xff0c;传奇永不落幕&#xff0c;博主会持续更新优质网络知识、Python知识、Linux知识以及各种小技巧&#xff0c;愿你我共同在CSDN进步 目录 一、了解数据挖掘 1. 数据挖掘是什么&#xff…

【LeetCode:1402. 做菜顺序 | 动态规划 + 贪心】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【Kotlin精简】第5章 简析DSL

1 DSL是什么&#xff1f; Kotlin 是一门对 DSL 友好的语言&#xff0c;它的许多语法特性有助于 DSL 的打造&#xff0c;提升特定场景下代码的可读性和安全性。本文将带你了解 Kotlin DSL 的一般实现步骤&#xff0c;以及如何通过 DslMarker &#xff0c; Context Receivers 等…

音乐制作软件 Studio One 6 mac中文版软件特点

Studio One mac是一款专业的音乐制作软件&#xff0c;该软件提供了全面的音频编辑和混音功能&#xff0c;包括录制、编曲、合成、采样等多种工具&#xff0c;可用于制作各种类型的音乐&#xff0c;如流行音乐、电子音乐、摇滚乐等。 Studio One mac软件特点 1. 直观易用的界面&…

Spring中静态代理设计模式

目录 一、为什么需要代理设计模式 二、代理设计模式 三、静态代理设计模式 3.1 存在的问题 一、为什么需要代理设计模式 在项目的开发过程中我们知道service层是整个项目中最重要的部分&#xff0c;在service中一般会有两个部分&#xff0c;一个是核心业务&#xff0c;一个是额…

DJYROS产品:基于DJYOS的国产自主割草机器人解决方案

基于都江堰泛计算操作系统的国产自主机器人操作系统即将发布…… 1、都江堰机器人操作系统命名&#xff1a;DJYROS 2、机器人算法&#xff1a;联合行业自主机器人厂家&#xff0c;构建机器人算法库。 3、机器人芯片&#xff1a;联合行业机器人AI芯片公司&#xff0c;构建专用…

电商API是何时?以什么姿态开启了它的时代?

说到API&#xff0c;非业内技术人士&#xff0c;大家似乎对它还是知之甚少。 但如果有关注这个领域&#xff0c;其实不难发现&#xff0c;国内一些所谓大厂已经在电商API接口方面做了不少动作&#xff0c;不论是对外宣称的API生态&#xff0c;还是相对低调的API市场&#xff0c…

冲刺学习-MySQL-基础

基础 数据类型 常见数据类型的属性 整型 TINYINT、SMALLINT、MEDIUMINT、INT&#xff08;INTEGER&#xff09;和 BIGINT 可选属性 M&#xff1a;表示显示宽度&#xff08;从MySQL 8.0.17开始&#xff0c;整数数据类型不推荐使用显示宽度属性&#xff09;UNSIGNED&#xff1…

hdlbits系列verilog解答(7458芯片)-10

文章目录 wire线网类型介绍一、问题描述二、verilog源码三、仿真结果 wire线网类型介绍 wire线网类型是verilog的一种数据类型&#xff0c;它是一种单向的物理连线。它可以是输入也可以是输出&#xff0c;它与reg寄存器数据类型不同&#xff0c;它不能存储数据&#xff0c;只能…

设计模式——七大原则详解

这里写目录标题 设计模式单一职责原则应用实例注意事项和细节 接口隔离原则应用实例 依赖倒转&#xff08;倒置&#xff09;原则基本介绍实例代码依赖关系传递的三种方式注意事项和细节 里氏替换原则基本介绍实例代码 开闭原则基本介绍实例代码 迪米特法则基本介绍实例代码注意…

【苍穹外卖 | 项目日记】第八天

前言&#xff1a; 昨天晚上跑完步回来宿舍都快停电了&#xff0c;就没写项目日记&#xff0c;今天补上 目录 前言&#xff1a; 今日完结任务&#xff1a; 今日收获&#xff1a; 引入百度地图接口&#xff1a; 引入spring task &#xff0c;定时处理异常订单&#xff1a; …