一文彻底搞懂Embedding - Word2Vec(Skip-Gram和CBOW) 原创
Word2Vec
Word2Vec是一种广泛使用的词嵌入(Word Embedding)技术,它能够将单词表示为高维空间中的密集向量,从而捕捉单词之间的语义和语法关系。Word2Vec主要包含两种模型:Skip-Gram(跳字模型)和CBOW(Continuous Bag of Words,连续词袋模型)。
Skip-Gram与CBOW模型的主要差异在于训练方式:Skip-Gram通过中心词预测上下文词汇,类似于“由点及面”的扩展;而CBOW则是利用上下文词汇预测中心词,类似于“由面定点”的填充。前者注重于从局部到整体的推理,后者则强调整体对局部的反映。
Word2Vec
一、Word2Vec
Word2Vec:一种基于神经网络的词嵌入技术,它的目标是将单词映射到实数向量空间中,使得语义相似的单词在向量空间中的距离较近。这种映射是通过在大规模文本语料库上训练神经网络模型来实现的。Word2Vec通过学习单词的共现信息,能够在向量空间中模拟出有意义的语义关系,如同义词、反义词等。
本质是一个神经网络模型,目的是通过模型训练学习得到一个矩阵(Matrix C),一个表示词与词之间关联关系的矩阵。
Word2Vec
二、Skip-Gram
Skip-Gram(跳字模型):Skip-Gram模型通过给定的中心词来预测其上下文中的单词。具体来说,对于文本中的每一个单词,Skip-Gram模型将其视为中心词,并尝试预测该词周围一定窗口大小内的其他单词(即上下文单词)。
Skip-Gram模型如同一个词汇侦探,通过中心词“线索”去“追踪”并预测其周围的上下文词汇,以此构建词汇间的语义网络。
- 输入层:输入中心词的one-hot编码。
- 嵌入层:将one-hot编码转换为词向量。这一层的权重矩阵即为我们要学习的词嵌入矩阵。
- 输出层:对于每一个上下文单词,输出层会输出一个概率分布,表示中心词预测为该上下文单词的概率。通常,输出层使用softmax函数进行归一化处理。
Skip-Gram
Skip-Gram模型训练:通过遍历文本中的中心词及其上下文,使用中心词词向量预测上下文单词分布,计算预测与真实分布间的损失,并利用反向传播更新模型参数与词嵌入矩阵,以优化词向量表示。
- 初始化词嵌入矩阵和模型参数。
- 对于文本中的每一个中心词,遍历其上下文单词。
- 使用中心词的词向量作为输入,通过模型预测上下文单词的概率分布。
- 计算预测概率与真实上下文单词之间的损失(如交叉熵损失)。
- 使用反向传播算法更新模型参数和词嵌入矩阵。
Skip-Gram
三、CBOW
CBOW(连续词袋模型):CBOW(Continuous Bag of Words,连续词袋模型)与Skip-Gram相反,CBOW模型通过给定的上下文单词来预测中心词。具体来说,对于文本中的每一个中心词,CBOW模型会将其周围一定窗口大小内的其他单词(即上下文单词)作为输入,并尝试预测该中心词。
CBOW模型类似于一个高级的完型填空游戏,其中上下文中的词汇(已知选项)被用来“填空”预测出缺失的中心词(答案),从而揭示词汇间的语义联系和模式。
- 输入层:输入上下文单词的one-hot编码。
- 嵌入层:将上下文单词的one-hot编码转换为词向量,并将这些词向量进行平均或求和,得到上下文向量。
- 输出层:输出层同样使用softmax函数输出中心词的概率分布。
CBOW
CBOW模型训练:通过遍历文本中的中心词及其上下文,使用中心词词向量预测上下文单词分布,计算预测与真实分布间的损失,并利用反向传播更新模型参数与词嵌入矩阵,以优化词向量表示。
- 初始化词嵌入矩阵和模型参数。
- 对于文本中的每一个中心词,获取其上下文单词的词向量。
- 将上下文单词的词向量进行平均或求和,得到上下文向量。
- 使用上下文向量作为输入,通过模型预测中心词的概率分布。
- 计算预测概率与真实中心词之间的损失。
- 使用反向传播算法更新模型参数和词嵌入矩阵。
CBOW
本文转载自公众号架构师带你玩转AI 作者:AllenTang