【自然语言处理】用 Word2Vec 将词语映射到向量空间详解


一、背景介绍

在自然语言处理(NLP)领域,我们常常需要将文本信息转化为机器能够理解和处理的形式。传统的方法,如 one-hot编码,虽然简单,但存在严重的稀疏性高维度问题,且无法体现词语之间的语义关系。

为了解决这一问题,研究人员提出了Word Embedding(词嵌入)的方法。其中最著名、应用最广泛的模型之一便是 Word2Vec


二、什么是 Word2Vec?

Word2Vec 是由 Google 团队在 2013 年提出的一种将单词映射为连续向量的浅层神经网络模型。

其核心思想是:

将词语投影到一个低维度的向量空间中,使得语义上相近或语法上相关的词在向量空间中也接近。

简单来说,Word2Vec 可以把“王(king)”和“女王(queen)”之间的关系,与“男人(man)”和“女人(woman)”之间的关系用向量差异表示出来,且这些关系在向量空间中保持一致。

从图中可以看到,

  • King - Man + Woman ≈ Queen
    也就是:“男人之于国王,就像女人之于女王”。

这种特性使得 Word2Vec 在 NLP 各种任务中都发挥了巨大的作用,如文本分类、情感分析、机器翻译、推荐系统等。


三、Word2Vec的两种训练方法

Word2Vec 提供了两种主要的训练策略:

  1. CBOW(Continuous Bag of Words,连续词袋模型)

    • 通过上下文词(周围的词)来预测当前的中心词。

    • 适合小型数据集,训练速度快。

    • 示例:给定句子 "The cat sits on the mat",如果中心词是 "sits",那么输入是 "The", "cat", "on", "the", "mat",目标是预测 "sits"。

  2. Skip-gram

    • 通过当前词预测周围的上下文词。

    • 更适合大规模数据集,且能够更好地捕捉稀有词的信息。

    • 示例:给定中心词 "sits",目标是预测 "The", "cat", "on", "the", "mat"。

这两种方式本质上都是在通过局部上下文来学习词的分布式表示(distributional representations)。


四、向量空间的语义特性

如图所示,经过训练后,单词被映射到一个高维向量空间,具备如下特性:

  • 语义相似性:词义相近的词在空间中位置也接近。

    • 例子:king 与 queen,man 与 woman。

  • 语法相似性:词性相同的词之间的向量方向相近。

    • 例子:复数形式(cars vs. car),时态变化(running vs. run)。

  • 向量运算:可以用简单的向量加减表示词与词之间的关系。

    • 例子:vector(king) - vector(man) + vector(woman) ≈ vector(queen)

这一点,极大地提升了自然语言处理中理解、推理和生成文本的能力。


五、技术细节:训练过程

Word2Vec 的训练过程其实非常高效,主要分为以下几个步骤:

  1. 初始化词向量:为每个词随机初始化一个向量。

  2. 正样本采样:根据训练策略(CBOW或Skip-gram),抽取正样本。

  3. 负样本采样(Negative Sampling):为了减少计算量,仅更新少量负样本而不是全部词汇表。

  4. 误差反向传播:通过浅层神经网络(通常只有一层),更新词向量。

  5. 迭代优化:通过多次遍历数据集(epoch),使向量逐渐收敛。

最终,得到的词向量可以直接用于后续各种NLP任务。


六、应用场景

  • 文本相似度计算:基于词向量的余弦相似度评估两段文本的相似性。

  • 推荐系统:基于用户历史偏好推荐相关内容(例如基于文章标题、商品描述的Embedding相似性)。

  • 情感分析:通过分析词向量组合,预测评论、帖子中的情感倾向。

  • 问答系统:辅助搜索最相关的答案。

  • 知识图谱构建:在向量空间中发现实体之间的潜在关联。


七、总结

Word2Vec 作为自然语言处理中里程碑式的技术,为后来的各种深度学习模型(如BERT、GPT)奠定了基础。
即使到今天,理解词嵌入和向量空间的基本原理,仍然是掌握高级自然语言处理技术的重要前提。

本文通过图示,简单直观地展示了 Word2Vec 如何将单词映射到向量空间,并体现出词语之间微妙而丰富的语义关系。
希望能帮助你更好地理解这一经典模型,为后续深入学习打下基础!


八、参考资料

  • Tomas Mikolov et al. (2013), “Efficient Estimation of Word Representations in Vector Space”

  • Chris Albon, Machine Learning Flashcards

  • 《Deep Learning》 — Ian Goodfellow 等


🔔 如果你觉得本文有帮助,欢迎点赞、收藏或留言交流!

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

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

相关文章

支付宝 SEO 优化:提升小程序曝光与流量的完整指南

在拥有庞大用户基数的支付宝平台上,小程序已成为商家触达用户、提供服务的重要渠道。然而,随着平台上小程序数量的快速增长,如何在激烈的竞争中脱颖而出,获得更多的曝光和流量,成为每个开发者和运营者必须面对的关键挑…

20250509——TOPSIS计算各方案得分

目录 TOPSIS原理 算例分析 参考文献 逼近理想解排序法(Technique for Order Preference by Similarity to an Ideal Solution, TOPSIS)是一种多属性决策分析工具,其核心在于通过衡量备选方案与理想目标的接近程度实现科学排序。该方法首先…

【QT】项目打包与发布安装

文章目录 一、引言二、前期准备三、打包QT项目3.1 编译release版3.2 相关依赖打包3.3 打包发布3.4 安装 四、打包普通项目五、结束语 一、引言 当Qt程序编写完成通过IDE编译就可以得到对应的可执行程序,这个可执行程序在本地运行是完全没有问题的。因为在本地有Qt环…

提示词工程:通向AGI时代的人机交互艺术

‌引言:从基础到精通的提示词学习之旅‌ 欢迎来到 ‌"AGI时代核心技能"‌ 系列课程的第二模块——‌提示词工程‌。在这个模块中,我们将系统性地探索如何通过精心设计的提示词,释放大型语言模型的全部潜力,实现高效、精…

三款实用电脑工具

今天为大家精心推荐三款实用软件,分别是人声伴奏分离软件、文件夹迁移软件和文字转拼音软件。 第一款:NovaMSS NovaMSS是一款功能强大的人声伴奏分离软件,它提供社区版和专业版,社区版永久免费。 该软件能够一键提取人声、伴奏、…

CentOS 7 安装指定版本 Docker 及镜像加速/配置优化攻略

摘要 本文详述 CentOS 7 系统下安装指定版本 Docker ,涵盖镜像加速配置(实测最快)、存储位置优化、日志轮转等核心配置。 文章目录 一、安装指定版本Docker1.1 卸载旧版本(如有)1.2 安装依赖包1.3 添加Docker仓库&…

达梦、PostgreSQL数据库讲json解析成临时表(json_table函数的使用)

官网json_table文档路由 路径表达式文档路由 背景:有一些动态表格,需要新建一张中间表,里边就两三个字段比如主表id,某某类型id,某某类型是否选中。对于这种表新建个表还得加各种创建人修改人版本号是否逻辑删除啥的字段太过麻烦。于是可以直…

【软件测试】测试用例的设计方法

目录 一、基于需求进行测试用例的设计 1.1 功能需求测试分析 二、黑盒测试用例设计方法 2.1 等价类划分法(解决穷举) 2.1.1 等价类设计步骤 2.1.2 等价类划分法案例 2.1.2.1 验证 QQ 账号的合法性 2.1.2.2 验证某城市电话号码的正确性 2.1.3 适用场景 2.2 边界值分析…

微服务系统设计

在设计微服务系统时,需要综合考虑架构、业务划分、通信方式、数据管理、安全性、运维等多个方面的问题。 一、微服务系统设计需考虑的问题 1. 服务划分 如何合理拆分服务,避免“微服务地狱”。拆分粒度不宜过小:太多服务增加管理和通信成本…

Django ORM: values() 和 annotate() 方法详解

1. values()方法 1.1 基本概念 values()方法用于返回一个包含字典的QuerySet,而不是模型实例。每个字典表示一个对象,键对应于模型字段名称。 1.2 基本用法 # 获取所有书籍的标题和出版日期 from myapp.models import Bookbooks Book.objects.value…

43.防雷击浪涌设计

防雷击浪涌设计 1. 雷击浪涌形成的机理2. 雷击浪涌的防护 1. 雷击浪涌形成的机理 雷击浪涌分为直击雷和感应雷: 直击雷——带电荷的云对建筑物、避雷针等放电,或者带异种电荷的雷云撞击放电,其能量超级大; 感应雷——雷云在高压…

双端口ram与真双端口ram的区别

端口独立性 真双端口RAM:拥有两个完全独立的读写端口(Port A和Port B),每个端口都有自己的地址总线、数据总线、时钟、使能信号和写使能信号。这意味着两个端口可以同时进行读写操作,且互不干扰。 伪双端口RAM&…

Python毕业设计219—基于python+Django+vue的房屋租赁系统(源代码+数据库+万字论文)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于pythonDjangovue的房屋租赁系统(源代码数据库万字论文)219 一、系统介绍 本项目前后端分离,分为租客、房东、管理员三种角色 1、租客: 注册、登录、公…

Webpack基本用法学习总结

Webpack 基本使用核心概念处理样式资源步骤: 处理图片资源修改图片输出文件目录 自动清空上次打包的内容EslintBabel处理HTML资源搭建开发服务器生产模式提取css文件为单独文件问题: Css压缩HTML压缩 小结1高级SourceMap开发模式生产模式 HMROneOfInclud…

数字IC前端学习笔记:锁存器的综合

相关阅读 数字IC前端专栏https://blog.csdn.net/weixin_45791458/category_12173698.html?spm1001.2014.3001.5482 锁存器是一种时序逻辑,与寄存器相比面积更小,但它的存在会使静态时序分析(STA)变得更加复杂,因此懂得什么样的设计会综合出…

LVGL源码学习之渲染、更新过程(2)---无效区域的处理

LVGL版本:8.1 往期回顾: LVGL源码学习之渲染、更新过程(1)---标记和激活 区域合并 在前面的代码分析中,发现标记无效区域的工作其实很繁琐,虽然大部分区域因为包含关系被剔除,但仍可能存在相互交叉的区域&#xff0c…

01 dnsmasq 中 dns服务

前言 这里我们主要是 来看一下 dns 服务器这边的相关业务处理 通常来说 在我们日常生活中 还是经常会需要使用 dns 的情况, 主要是更加友好的去给一个主机命名一个别名 比如 现在我的应用在服务器 192.168.220.133 但是我不想记这个生硬的 ip, 我可能更期望记录一个域名, …

最优化方法Python计算:有约束优化应用——线性Lasso回归分类器

利用线性Lasso模型类LineLassoModel类(见博文《最优化方法Python计算:有约束优化应用——线性Lasso回归预测器》)及分类器类Classification(见博文《最优化方法Python计算:无约束优化应用——线性回归分类器》&#xf…

Python基础学习-Day20

目录 奇异值分解(SVD)的输入和输出奇异值的应用实际案例1. 问题分析2. 解决方案:对测试集应用相同的变换3. 为什么不能对测试集单独做 SVD?4. 代码示例:训练集和测试集的 SVD 降维6. 实际操作中的注意事项 奇异值分解&…

2025年 全新 AI 编程工具 Cursor 安装使用教程

一、Cursor 软件下载 首选,登录Cursor官网,进行软件下载,官网下载地址如下: Cursor AI IDE 下载 二、Cursor软件安装配置 此处以Windows10系统安装为例,下载完成之后,右键安装包,以管理员身份…