在word2vec中,任务是学习预测在一些长文本语料库中哪些词最有可能彼此靠近。对于每个单词在语料库中,模型输出概率分布彼此的可能性有多大在词汇表中是在一定数量的单词之内. 我们称之为“中心词”和“外语”。
我们选择 softmax 分布作为模型的输出:
在哪里和是分别表示外部和中心词的向量。
问题。向量有什么作用 和看起来像?它们只是一种热编码吗?我们也需要学习它们吗?为什么这很有用?
在word2vec中,任务是学习预测在一些长文本语料库中哪些词最有可能彼此靠近。对于每个单词在语料库中,模型输出概率分布彼此的可能性有多大在词汇表中是在一定数量的单词之内. 我们称之为“中心词”和“外语”。
我们选择 softmax 分布作为模型的输出:
在哪里和是分别表示外部和中心词的向量。
问题。向量有什么作用 和看起来像?它们只是一种热编码吗?我们也需要学习它们吗?为什么这很有用?
不,词向量不是 one-hot 编码。是的,他们是有学问的。
word2vec 模型的目的实际上是为单词学习密集的、语义上有意义的编码。也就是说,如果你的话维向量,然后每个单词在该向量空间中的位置说明了该单词的含义。这是因为 word2vec 学会以相似的方式表示单词,如果它们在您的语料库中经常靠近在一起。它实现了分布相似性的思想。
给定“中心词”来预测“外部词”的任务以间接的方式完成了所有这些工作。
word2vec 最大化的朴素目标函数是
在哪里是你的语料库的长度,是您要考虑的每个中心词的“半径”,是一个外来词,并且是一个中心词。
如果我们让是softmax分布,然后最大化意味着最大化内积在 softmax 的分子中。最大化内积意味着使中心词尽可能接近它们的相邻词,为您提供一些语义上有意义的词向量,以在下游 NLP 任务中使用。
斯坦福 CS224N 的这个讲座更详细。