添加 Word2Vec 嵌入列表是否提供有意义的表示?

Does adding a list of Word2Vec embeddings give a meaningful represenation?

我正在使用预训练的 word2vec 模型 (word2vec-google-news-300) 来获取给定单词列表的嵌入。请注意,这不是我们在标记句子后得到的单词列表,它只是描述给定图像的单词列表。

现在我想获得整个列表的单个矢量表示。添加所有单个词嵌入是否有意义?还是我应该考虑平均? 另外,我希望向量具有恒定大小,因此连接嵌入不是一种选择。

如果有人能解释考虑上述任一方法背后的直觉,那将非常有帮助。

平均是最典型的,当有人正在寻找一种超级简单的方法将词袋转换为单个固定长度向量时。

您也可以尝试简单求和。

但请注意,总和与平均值之间的主要区别在于平均值除以输入向量的数量。因此,它们都会产生一个指向完全相同 'direction' 的向量,只是大小不同。而且,比较此类向量的最常用方法余弦相似度忽略了大小。因此,对于许多基于余弦相似性的稍后比较向量的方法,sum-vs-average 将给出相同的结果。

另一方面,如果您以其他方式比较向量,例如通过欧氏距离,或将它们输入其他分类器,求和与平均可能会有所不同。

同样,有些人可能会在用于任何比较之前尝试对所有向量进行单位长度归一化。经过这样的pre-use normalization,那么:

  • 欧氏距离(从最小到最大)和余弦相似度(从最大到最小)将生成相同的最近邻列表
  • average-vs-sum 将导致不同的结束方向 - 因为单位归一化会提高一些向量的大小,并降低其他向量,从而改变它们对平均值的相对贡献。

应该做什么?没有普遍正确的答案 - 根据您的数据集和目标,以及您的下游步骤使用向量的方式,不同的选择可能会在您执行的任何最终 quality/desirability 评估中提供轻微的优势。因此,尝试几种不同的排列以及不同的其他参数是很常见的。

单独:

  • GoogleNews 向量是在 2013 年左右根据新闻文章训练的;因此,它们的词义可能不是图像标记任务的最佳选择。如果你有足够的自己的数据,或者可以收集它,训练你自己的词向量可能会产生更好的结果。 (使用特定领域的数据,以及根据您自己的评估调整训练参数的能力,都可以提供好处 - 特别是当您的领域是独一无二的,或者标记不是典型的自然语言句子时。)
  • 还有其他方法可以为 运行 个标记创建单个摘要向量,而不仅仅是单词向量的算术组合。一个是 word2vec 算法的小变体,通常称为 Doc2Vec(或 'Paragraph Vector')——它也可能值得探索。
  • 还有一些方法可以比较词向量,利用词向量,不要将词袋折叠成一个固定长度的向量第一 - 虽然它们的计算成本更高,但有时比简单的余弦相似性提供更好的成对 similarity/distance 结果。一种这样的替代比较称为“Word Mover's Distance”——在某些时候,您可能也想尝试一下。