Week1-Word2Vec基础知识

参考

一、Word2Vec 算法背景与目标

在自然语言处理(NLP)中,传统的 “词袋模型”(Bag of Words)将文本看作无序的词汇集合,虽然简单易用,但无法捕捉词与词之间的语义关系,也无法处理词汇的上下文信息。Word2Vec 算法应运而生,它旨在将词语映射为低维、稠密的向量,使得语义相近的词在向量空间中距离较近,从而有效解决上述问题。Word2Vec 包含 CBOW(Continuous Bag of Words,连续词袋模型)和 Skip - gram 两种模型,下面我们来详细了解它们。

二、CBOW 模型

(一)出发点

CBOW 模型基于 “上下文预测当前词” 的思路。它认为一个词的含义可以通过其上下文的词语来推测。例如,在句子 “我喜欢阅读 [书籍]” 中,根据 “我”“喜欢”“阅读” 这些上下文词汇,能够预测出空缺处的词大概率是 “书籍”“文章” 等相关词汇。

(二)算法内容

  1. 输入层:将上下文词语的 One - Hot 向量作为输入。One - Hot 向量是一种将词语编码为向量的方式,只有对应词语的位置为 1,其余位置为 0。假设词汇表大小为,那么每个词语的 One - Hot 向量长度就是
  2. 隐藏层:对输入的上下文词语向量进行求和平均操作(或其他聚合方式),得到一个固定维度的隐藏层向量。这一步相当于将多个上下文词语的信息融合到一个向量中。
  3. 输出层:输出层是一个 Softmax 层,其神经元个数与词汇表大小相同。隐藏层向量与输出层神经元之间通过权重矩阵连接,经过 Softmax 函数计算,得到词汇表中每个词作为当前词的概率。目标是最大化预测出真实当前词的概率。

三、Skip - gram 模型

(一)出发点

Skip - gram 模型与 CBOW 模型相反,它是基于 “当前词预测上下文” 的思路。即已知一个词,去预测它周围可能出现的词。例如,已知 “书籍”,Skip - gram 模型会尝试预测出 “阅读”“购买”“收藏” 等可能出现在其上下文的词汇。

(二)算法内容

  1. 输入层:将当前词的 One - Hot 向量作为输入。
  2. 隐藏层:输入的 One - Hot 向量与隐藏层和输入层之间的权重矩阵相乘,得到隐藏层向量。
  3. 输出层:同样是 Softmax 层,隐藏层向量与输出层神经元之间通过权重矩阵连接,经过 Softmax 函数计算,得到词汇表中每个词作为上下文词的概率。模型训练的目标是最大化预测出真实上下文词的概率。

四、Word2Vec 的加速技巧

(一)Hierarchical Softmax

  1. 出发点:在 CBOW 和 Skip - gram 模型中,输出层使用 Softmax 函数计算所有词的概率,计算量与词汇表大小成正比,当很大时,计算效率很低。Hierarchical Softmax 通过构建二叉树结构来降低计算复杂度。
  2. 算法内容:将词汇表中的词组织成一棵二叉树,树的叶子节点是词汇表中的词,非叶子节点是一个二分类器。从根节点到叶子节点的路径对应着对某个词的预测过程,每次在非叶子节点进行二分类决策,向左或向右走。这样,预测一个词的概率只需要进行次计算,大大减少了计算量。

(二)Negative Sampling

  1. 出发点:和 Hierarchical Softmax 类似,也是为了减少 Softmax 计算量。Negative Sampling 不构建二叉树,而是通过随机采样一些负样本(非真实上下文词)来简化计算。
  2. 算法内容:在训练过程中,对于每个正样本(真实上下文词),根据一定的采样策略随机选取若干个负样本。模型的目标变为最大化正样本的概率,同时最小化负样本的概率。通过这种方式,将原本对所有词的 Softmax 计算转化为对少量样本的计算,提高了训练效率。

(三)Sub - sampling 高频词

  1. 出发点:在语料库中,一些高频词(如 “的”“了”“是” 等)出现频率过高,它们对模型学习语义信息的帮助较小,反而可能影响模型对其他重要词汇的学习,并且增加训练时间。Sub - sampling 高频词技术用于降低高频词的出现频率。
  2. 算法内容:对于每个词,根据其出现频率,按照一定的公式计算保留该词的概率,公式通常为(其中是一个预设的阈值,通常为左右)。然后根据这个概率对每个词进行随机丢弃,从而减少高频词在训练数据中的出现次数,提高模型训练效率和效果。
posted @ 2025-05-19 22:54  SIo_2  阅读(24)  评论(0)    收藏  举报