word2vec 猜测词嵌入

word2vec guesing word embeddings

word2vec 可以用于仅根据上下文猜测单词吗? 用大数据集训练模型,例如Google news 如何使用 word2vec 来预测仅具有上下文的相似词,例如在国际象棋上统治了 15 年以上的“输入”将在密苏里州圣路易斯与 9 名顶级棋手竞争。输出应该是 Kasparov 或者 Carlsen。

我只看到了相似性 api,但我不明白如何将它们用于此目的?这不是 word2vec 打算使用的方式吗?

这不是 word2vec 的预期用途。 word2vec 算法在内部尝试使用周围的词来预测准确的词,作为一种迂回的方式来为那些周围的词学习有用的向量。

但即便如此,它在训练过程中并没有形成准确的预测。它只是查看一个狭窄的训练示例——上下文词和目标词——并执行非常简单的比较和内部微调,使其与那个示例的一致性稍微好一些。随着时间的推移,它会自我调整为有用的向量——即使预测的质量仍然千差万别。

大多数 word2vec 库不提供用于显示给定上下文词的排名预测的直接界面。 Python gensim 库,对于最近的几个版本(截至 2017 年 7 月的当前版本 2.2.0),提供了一种 predict_output_word() 方法,该方法粗略地显示模型在给定上下文词的情况下的预测结果,对于某些训练模式。参见:

https://radimrehurek.com/gensim/models/word2vec.html#gensim.models.word2vec.Word2Vec.predict_output_word

但是,考虑到您的填空查询(在相关教育或机器学习环境中也称为 'cloze deletion'):

_____, who dominated chess for more than 15 years, will compete against nine top players in St Louis, Missouri

普通的 word2vec 模型不太可能做到这一点。它对单词的相对重要性知之甚少(除非某些单词对其他单词的预测范围更窄)。它没有 grammar/ordering 或连接短语的组合意义(如 'dominated chess',而不是单独的词 'dominated' 和 'chess')。即使描述同类事物的词通常彼此接近,但它不知道类别能够确定空白必须是 'person' 和 'chess player',并且模糊相似性word2vec 的词不保证 words-of-a-class 必然比其他词更接近。

已经进行了大量工作来训练 word/concept 向量(又名 'dense embeddings')以更好地帮助完成此类问答任务。一个随机示例可能是 "Creating Causal Embeddings for Question Answering with Minimal Supervision",但像 [word2vec question answering] 或 [embeddings for question answering] 这样的查询会找到更多。不过,我不知道有或没有 word2vec 核心的简单开箱即用库可以做到这一点。