NLP-词向量、Word2vec

时间:2024-02-29 14:11:13

Word2vec

Skip-gram算法的核心部分
我们做什么来计算一个词在中心词的上下文中出现的概率?
在这里插入图片描述

似然函数

词已知,它的上下文单词的概率 相乘
然后所有中心词的这个相乘数 再全部相乘,希望得到最大

在这里插入图片描述

目标函数(代价函数,损失函数)

平均对数似然 + 转化为极小化问题

在这里插入图片描述

最小化目标函数 J(θ) <==> 最大化预测的准确性

  • 为了简化数学和优化,每个单词都用两个向量表示:

预测函数

模型训练目的:具有相似上下文的单词,具有相似的向量。
所有上下文之间的向量最相似,这样似然函数最大,损失函数最小!

在这里插入图片描述

取幂 用于使得所有数都为正
点乘 用于计算向量相似程度。向量之间越相似,点乘结果越大。
目的:找到与中心词向量 点乘最大的词向量,得到最相似的向量。
分母 用于归一化,最终得到概率分布 => 所有词跟中心词的相似程度所构成的概率#

预测函数使用的softmax函数

在这里插入图片描述

最小化损失函数来调整词向量 -> 最大化 在中心词的上下文实际看到的词的概率

θ表示模型所有的参数,向量长度为2dV。调整θ来最大化上下文词的预测!
词库一共有V个词,每个词向量都是d维。
每个词都有上下文词向量和中心词向量。

梯度下降法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结:

  1. 为上下文词和中心词随机初始化一个向量
  2. 使用迭代算法逐步更新这些词向量 (梯度下降法)
  3. 可以更好的预测哪些词会出现在其他词的上下文中