neural-network - 为什么我们需要更大的向量空间来显示词嵌入模型中的关系?

标签 neural-network word2vec word-embedding vector-space

我正在研究词嵌入,但对词向量的维度数量有点困惑。我的意思是,以 word2vec 为例,我的问题是为什么我们应该使用 100 个隐藏神经元作为我们的隐藏层?这个数字背后有什么意义或逻辑吗?或者如果它是任意的,为什么不是 300?还是10?为什么不多或少呢?众所周知,显示向量的最简单方法是在二维空间(仅 X 和 Y)上,为什么还要更多维度呢?我阅读了一些相关资源,在一个示例中他们选择 100 个维度,在另一个示例中他们选择其他数字,例如 150、200、80 等。

我知道数字越大,显示单词之间关系的空间就越大,但是我们无法在二维向量空间上显示关系(只有X和Y)?!为什么我们需要更大的空间?每个单词都由向量显示,那么当我们可以在 2 或 3 维空间上显示向量时,为什么我们必须使用高维空间呢?然后使用余弦等相似性技术来查找 2 或 3 维而不是 100 维的相似性(从计算时间的角度来看)会更简单,对吗?

最佳答案

好吧..如果您的最终目的只是显示向量,那么您可以使用 2 维或 3 维向量,这样效果最好。

在 NLP 中,我们通常有明确定义的任务,例如标记、解析、理解含义等。出于所有这些目的,更高维度的向量总是比 2 维、3 维向量表现得更好。因为它有更多的自由度来捕捉你所追求的关系。您可以通过它们包含更丰富的信息。

使用余弦等相似性技术来查找 2 或 3 维而不是 100 维上的相似性(从计算时间的角度来看)更简单,对吗?

没有。这就是说 2 个数字相加比 100 个数字相加更简单。方法(余弦距离)完全相同。

关于neural-network - 为什么我们需要更大的向量空间来显示词嵌入模型中的关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38364327/

相关文章:

nlp - Doc2Vec.infer_vector 每次在特定训练模型上都会不断给出不同的结果

word-embedding - 如何将 BERT 预训练嵌入与我自己的新数据集一起使用?

python - Keras - 从顺序 API 到函数式 API 的转换

c++ - 如何在 C++ 中填充数据或访问 3 维 vector

python - Caffe:尽可能简单地从快照预测图像

python-3.x - 神经网络最后一层 keras 错误

python - 如何使用 gensim 处理 KeyError(f"Key '{key}' not present") wor2vec

apache-spark - Doc2Vec 和 PySpark : Gensim Doc2vec over DeepDist

python - 如何将bert的embedding向量与其他特征结合起来?

java - (Java)用于隐层反向传播的偏导数