博客
关于我
1.2 词向量计算的工具——word2vec (有趣解释+代码)
阅读量:798 次
发布时间:2023-04-17

本文共 1294 字,大约阅读时间需要 4 分钟。

2013年,Google开源了一款用于词向量计算的工具——word2vec,引起了工业界和学术界的广泛关注。这款工具的核心优势在于其高效性:它能够在包含百万词典和上亿数据的规模下进行训练,同时能够生成高质量的词嵌入(word embedding),用于衡量词与词之间的相似性。虽然word2vec常被误认为是一种深度学习算法,但其本质上是一个简单的浅层神经网络。

值得注意的是,word2vec本身只是一个用于计算词向量的开源工具。当我们提及word2vec算法或模型时,实际指的是其两种核心模型:CBOW(Continuous Bag-of-Words)和Skip-Gram。

1. 独热编码(One-Hot Encoding)

独热编码是一种将分类问题中的每个样本映射为高维向量的编码方法。其核心思想是使用N位状态寄存器对应N个状态,每个状态都有独立的寄存器位,并且在任意时刻,只有一位处于激活状态。例如,若有四个样本,每个样本有三个特征,则独热编码可以将每个样本表示为一个稀疏向量。

举例来说,如果“性别”特征有两种可能(如男/女),而“性别”和“年龄”各有四种取值,则独热编码会确保每个样本中仅有一个特征位为1,其余均为0。这种编码方式虽然能有效区分不同类别,但在大规模词汇表中会导致向量稀疏化,进而引发维度灾难。

2. word2vec模型

word2vec模型本质上是一个简单的神经网络,其输入为独热编码的词向量,输出为目标词的概率分布。具体结构如下:

  • 输入层:一个N维的独热编码向量,其中N为词汇表的大小。
  • 隐层:一个线性变换层,未使用激活函数。
  • 输出层:维度与输入层相同,采用Softmax函数输出概率分布。

在训练过程中,模型通过比较预测的目标词与实际标签的差异,逐步优化权重矩阵以提高预测精度。最终,我们关注的是训练得到的权重矩阵参数,而不是训练好的模型。

2.1 CBOW(Continuous Bag-of-Words)

CBOW模型的训练过程如下:

  • 输入:某个特征词的上下文词向量。
  • 处理:将上下文词向量相加并求平均,得到隐层向量。
  • 预测:通过线性变换层输出目标词的概率分布。
  • 优化:根据预测误差调整权重矩阵。
  • 例如,窗口大小为2时,CBOW模型会同时考虑目标词的前后两个单词作为上下文。通过训练,模型会生成一个词嵌入矩阵,使得任何词的独热编码向量乘以这个矩阵即可得到其词嵌入表示。

    2.2 Skip-Gram

    Skip-Gram模型的训练目标是预测给定单词的上下文词。其核心流程如下:

  • 输入:目标词的独热编码向量。
  • 处理:通过线性变换层计算上下文词的概率分布。
  • 优化:根据预测误差调整权重矩阵。
  • Skip-Gram模型的优势在于其对大规模数据集的处理能力。尽管其训练过程需处理大量的上下文信息,但其预测任务更为直接。

    总结

    通过独热编码和word2vec模型,我们可以将高维词向量映射到低维空间,解决维度灾难问题。CBOW和Skip-Gram两种模型各具特色,适用于不同规模的语料库。通过训练,模型能够生成高质量的词嵌入,帮助研究人员分析词与词之间的语义关系。

    转载地址:http://mogfk.baihongyu.com/

    你可能感兴趣的文章
    Mysql 数据库重置ID排序
    查看>>
    Mysql 数据类型一日期
    查看>>
    MySQL 数据类型和属性
    查看>>
    mysql 敲错命令 想取消怎么办?
    查看>>
    Mysql 整形列的字节与存储范围
    查看>>
    mysql 断电数据损坏,无法启动
    查看>>
    MySQL 日期时间类型的选择
    查看>>
    Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)
    查看>>
    MySQL 是如何加锁的?
    查看>>
    MySQL 是怎样运行的 - InnoDB数据页结构
    查看>>
    mysql 更新子表_mysql 在update中实现子查询的方式
    查看>>
    MySQL 有什么优点?
    查看>>
    mysql 权限整理记录
    查看>>
    mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
    查看>>
    MYSQL 查看最大连接数和修改最大连接数
    查看>>
    MySQL 查看有哪些表
    查看>>
    mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
    查看>>
    MySql 查询以逗号分隔的字符串的方法(正则)
    查看>>
    MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
    查看>>
    mysql 查询数据库所有表的字段信息
    查看>>