博客
关于我
1.2 词向量计算的工具——word2vec (有趣解释+代码)
阅读量:804 次
发布时间: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/

    你可能感兴趣的文章
    PGSQL安装PostGIS扩展模块
    查看>>
    Phalcon环境搭建与项目开发
    查看>>
    Phantom.js维护者退出,项目的未来成疑
    查看>>
    Pharmaceutical的同学们都看过来,关于补码运算的复习相关内容
    查看>>
    phoenix无法连接hbase shell创建表失败_报错_PleaseHoldException: Master is initializing---记录020_大数据工作笔记0180
    查看>>
    Phoenix简介_安装部署_以及连接使用---大数据之Hbase工作笔记0035
    查看>>
    phoenix连接hbase报错Can not resolve hadoop120, please check your network_记录026---大数据工作笔记0187
    查看>>
    Photoshop工作笔记001---Photoshop常用快捷键总结
    查看>>
    Reids配置文件redis.conf中文详解
    查看>>
    Photoshop脚本入门
    查看>>
    PHP
    查看>>
    Regular Expression Notes
    查看>>
    PHP $FILES error码对应错误信息
    查看>>
    PHP $_FILES函数详解
    查看>>
    PHP $_SERVER['HTTP_REFERER'] 获取前一页面的 URL 地址
    查看>>
    php & 和 & (主要是url 问题)
    查看>>
    php -- 魔术方法 之 判断属性是否存在或为空:__isset()
    查看>>
    php -- 魔术方法 之 获取属性:__get()
    查看>>
    php -树-二叉树的实现
    查看>>
    PHP -算法-二路归并
    查看>>