本文共 1294 字,大约阅读时间需要 4 分钟。
2013年,Google开源了一款用于词向量计算的工具——word2vec,引起了工业界和学术界的广泛关注。这款工具的核心优势在于其高效性:它能够在包含百万词典和上亿数据的规模下进行训练,同时能够生成高质量的词嵌入(word embedding),用于衡量词与词之间的相似性。虽然word2vec常被误认为是一种深度学习算法,但其本质上是一个简单的浅层神经网络。
值得注意的是,word2vec本身只是一个用于计算词向量的开源工具。当我们提及word2vec算法或模型时,实际指的是其两种核心模型:CBOW(Continuous Bag-of-Words)和Skip-Gram。
独热编码是一种将分类问题中的每个样本映射为高维向量的编码方法。其核心思想是使用N位状态寄存器对应N个状态,每个状态都有独立的寄存器位,并且在任意时刻,只有一位处于激活状态。例如,若有四个样本,每个样本有三个特征,则独热编码可以将每个样本表示为一个稀疏向量。
举例来说,如果“性别”特征有两种可能(如男/女),而“性别”和“年龄”各有四种取值,则独热编码会确保每个样本中仅有一个特征位为1,其余均为0。这种编码方式虽然能有效区分不同类别,但在大规模词汇表中会导致向量稀疏化,进而引发维度灾难。
word2vec模型本质上是一个简单的神经网络,其输入为独热编码的词向量,输出为目标词的概率分布。具体结构如下:
在训练过程中,模型通过比较预测的目标词与实际标签的差异,逐步优化权重矩阵以提高预测精度。最终,我们关注的是训练得到的权重矩阵参数,而不是训练好的模型。
CBOW模型的训练过程如下:
例如,窗口大小为2时,CBOW模型会同时考虑目标词的前后两个单词作为上下文。通过训练,模型会生成一个词嵌入矩阵,使得任何词的独热编码向量乘以这个矩阵即可得到其词嵌入表示。
Skip-Gram模型的训练目标是预测给定单词的上下文词。其核心流程如下:
Skip-Gram模型的优势在于其对大规模数据集的处理能力。尽管其训练过程需处理大量的上下文信息,但其预测任务更为直接。
通过独热编码和word2vec模型,我们可以将高维词向量映射到低维空间,解决维度灾难问题。CBOW和Skip-Gram两种模型各具特色,适用于不同规模的语料库。通过训练,模型能够生成高质量的词嵌入,帮助研究人员分析词与词之间的语义关系。
转载地址:http://mogfk.baihongyu.com/