python - word2vec向量[gensim库]的 "size"是什么意思?

标签 python gensim word2vec word-embedding

假设字典中有 1000 个单词(A1、A2、...、A1000)。据我了解,在单词嵌入或 word2vec 方法中,它的目的是用一个向量表示字典中的每个单词,其中每个元素表示该单词与字典中其余单词的相似度。每个向量应该有 999 个维度,或者每个 word2vec 向量的大小应该是 999,这样说是否正确?

但是使用 Gensim Python,我们可以修改 Word2vec 的“size”参数的值,在本例中假设 size = 100。那么“size=100”是什么意思呢?如果我们提取 A1 的输出向量,表示为 (x1,x2,...,x100),那么在这种情况下 x1,x2,...,x100 代表什么?

最佳答案

“[word2vec] 旨在用一个向量表示字典中的每个单词,其中每个元素表示该单词与字典中其余单词的相似度”,但情况并非如此。

相反,给定特定的目标维度(例如 100),Word2Vec 算法会逐渐训练 100 维的单词向量,以便更好地完成其训练任务,即预测附近的单词。

这个迭代过程往往会迫使相关的单词彼此“接近”,大致与它们的相似度成比例 - 甚至进一步,这个 100 维空间中的各种“方向”通常倾向于与人类可感知的相匹配语义类别。因此,著名的“wv(king) - wv(man) + wv(woman) ~= wv(queen)”示例通常有效,因为“男性/女性”和“皇室”是空间中模糊一致的区域/方向。

单独的尺寸并没有任何意义。训练过程包括随机性,随着时间的推移,就会“做任何有效的事情”。有意义的方向并不与尺寸轴完全对齐,而是与所有尺寸成一定角度。 (也就是说,您不会发现 v[77] 是一个类似性别的维度。相反,如果您采用数十个交替的类似男性和女性的单词对,并且平均所有差异,您可能会发现一些暗示性别方向的 100 维向量维度。)

您可以选择任何您想要的“大小”,但当您有足够的训练数据时,100-400 是常见值。

关于python - word2vec向量[gensim库]的 "size"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53587960/

相关文章:

python - 如何将 EMR 流作业的输出写入 HDFS?

doc2vec的Python简单实现?

python - 为什么在 gensim word2vec 中创建多个模型文件?

python - 如何通过Python TypeError更新或插入Elasticsearch?

python - 在编译或拟合之前合并 keras 模型?

python - 当 .csv 文件保存在 Python 中的 .zip 文件中时,如何从 url 中抓取 .csv 文件?

Python 3.6 : ImportError: cannot import name 'config' when trying to import gensim

nlp - 是否有一种语义相似度方法在语义准确性方面优于 word2vec 方法?

python - word2vec如何解析文本文件?

python - 值错误 : cannot reshape array of size 3800 into shape (1, 200)