一、一句话说明Word2Vec是什么?
Word2Vec是一种常见的词嵌入技术。Word2Vec的目标是将每个词表示为一个向量,使得这些向量能够反映出词语之间的相似性和关联性。
word2vec算法通过预测中心词和上下文词的共现概率来学习词向量,能够捕捉词语之间的语义关系。
二、模型的架构
Word2Vec包括两种模型架构:
无论是CBOW还是Skip-gram,他们的目标都是得出词嵌入矩阵。
(1)CBOW
连续词袋模型(Continuous Bag-of-Words, CBOW)目标是根据上下文预测当前单词。在这个模型中,给定一个上下文,模型试图预测在这个上下文中出现的单词。这种方法对常见的单词效果更好。
- 输入是上下文词,输出是中心词
- 设置窗口上下文
CBOW模型考虑一个词的前后若干个词(定义为一个窗口),将这些上下文词的向量相加(或取平均)作为输入,然后通过一个神经网络模型来预测位于这些上下文中的目标词。
- CBOW模型本质是一个简单的前馈神经网络
输入层:输入是中心词周围的上下文单词。在实际操作中,通常会选择中心词的前后各几个单词作为上下文。这些上下文单词被转化为词向量,通常是通过输入层中的Embedding层实现(嵌入层)。
隐藏层:所有上下文词向量被平均或求和来形成一个固定长度的隐藏层表示,这个过程相当于将输入向量合并为一个单一的向量。
线性层位于输出层前的位置。在处理了上下文向量之后,网络通常会有一个线性层(也称为全连接层),它使用权重矩阵(这些权重在训练过程中学习得到)将上下文表示变换到另一个空间,通常是一个与词汇表大小相同的空间,为了准备最后的分类任务 — 即预测中心单词。
输出层:隐藏层的输出是一个单词的分布式表示,然后这个表示被用来预测中心单词。通常,这涉及到一个softmax函数,它会将隐藏层的输出转换成一个概率分布,对应于词汇表中每个单词是中心词的概率。
(2)Skip-gram
跳字模型(Skip-gram)是相反的过程,目标是根据当前单词来预测其上下文中的单词。这个模型适合捕捉更多的近上下文信息,对罕见词或特殊词汇表现更佳。
- 输入是中心词,输出是上下文词
- 设置窗口上下文
- 使用一个词预测另一个词,就是尽量使这两个词向量接近
- Skip-gram模型本质也是个神经网络
输入层:接收一个中心词的词向量表示。
隐藏层:该层通常包含较多的神经元,用于学习从中心词到上下文词的复杂映射关系。这层的输出可以看作是中心词的潜在表示,但其直接目的是服务于输出层的预测,而非数据重构。
输出层:包含词汇表中所有词的softmax分类器,用于预测围绕中心词的上下文词的概率分布。
三、总结
Word2Vec词嵌入模型的核心目标是通过学习将词汇转化为高维向量的形式(得到一个词嵌入矩阵),使得这些向量能捕捉词语间的语义和句法关系。这些词向量能够表达词语之间的相似性和关联性,从而提升诸如文本分类、情感分析、机器翻译等自然语言处理任务的性能。
Word2Vec主要包含两个模型:Skip-gram模型、CBOW模型