2.2 词向量 Word2vec

2024年6月14日修改
Word2Vec是一种用于将词语嵌入(word embedding)到低维向量空间的方法,它由Tomas Mikolov等人在2013年提出。Word2Vec的目标是通过神经网络模型,将词语表示成实值向量,使得具有相似语义的词语在向量空间中彼此接近。Word2Vec有两种主要的模型结构:连续词袋模型(Continuous Bag of Words, CBOW)和跳字模型(Skip-gram)
1.
跳字模型(Skip-gram)
跳字模型的目标是使用给定的中心词来预测其上下文词汇。具体来说,它通过最大化中心词和其上下文词的共现概率(co-concurrence)来学习词向量。
公式
对于一个给定的词语序列w1,w2,…,wT,Skip-gram模型的目标是最大化以下似然函数:
其中,wtw_twt 是中心词,wt+jw_{t+j}wt+j 是其上下文词,ccc 是上下文窗口的大小。
实现
Skip-gram模型通过一个简单的神经网络来实现:
输入层:一个one-hot编码的词向量。
隐藏层:一个线性层,将输入词向量映射到一个低维向量空间。
输出层:一个softmax层,输出上下文词的概率分布。
2.
连续词袋模型(CBOW)
CBOW模型的目标是使用上下文词汇来预测中心词。它通过最大化上下文词和中心词的共现概率来学习词向量。
公式
对于一个给定的词语序列w1,w2,…,wT,CBOW模型的目标是最大化以下似然函数:
实现
CBOW模型通过一个简单的神经网络来实现:
输入层:多个one-hot编码的上下文词向量。
隐藏层:一个线性层,将输入词向量的平均值映射到一个低维向量空间。
输出层:一个softmax层,输出中心词的概率分布。
训练技巧
为了有效地训练Word2Vec模型,一些优化和技巧通常会被使用:
负采样(Negative Sampling):为了加速训练过程,引入了负采样技术,它通过仅更新部分负样本来简化softmax计算。
层次softmax(Hierarchical Softmax):使用Huffman树来表示softmax层,进一步加速计算。