Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vector 规范化词向量和文档向量之间的相似性?_Vector_Compare_Similarity_Word2vec_Doc2vec - Fatal编程技术网

Vector 规范化词向量和文档向量之间的相似性?

Vector 规范化词向量和文档向量之间的相似性?,vector,compare,similarity,word2vec,doc2vec,Vector,Compare,Similarity,Word2vec,Doc2vec,余弦相似性广泛用于度量两个向量之间的相似性,其中两个向量可以是单词向量或文档向量 其他如曼哈顿、欧几里德、明考斯基等也很受欢迎 余弦相似性给出了介于0和1之间的数字,因此它似乎是两个向量之间相似性的百分比。欧几里德给出了一些变化很大的数字 当两个向量之间的余弦相似度为0.78xxx时,包括我在内的人们可能会期望“这两个向量有78%的相似度!”,这不是两个向量的实际“相似度” 与余弦相似性不同,minkowski、曼哈顿、堪培拉等甚至给出了一些不在0到1之间的大数字 For word1:wor

余弦相似性广泛用于度量两个向量之间的相似性,其中两个向量可以是单词向量或文档向量

其他如曼哈顿、欧几里德、明考斯基等也很受欢迎

余弦相似性给出了介于0和1之间的数字,因此它似乎是两个向量之间相似性的百分比。欧几里德给出了一些变化很大的数字

当两个向量之间的余弦相似度为0.78xxx时,包括我在内的人们可能会期望“这两个向量有78%的相似度!”,这不是两个向量的实际“相似度”

与余弦相似性不同,minkowski、曼哈顿、堪培拉等甚至给出了一些不在0到1之间的大数字

For word1:word2 example
0.78 (cosine, gives between 0 to 1)
9.54 (Euclidean, gives the actual distance between two vectors)
158.417 (Canberra)

我预计可能会有一些标准化方法广泛用于表示两个向量之间的实际“相似度”。请提供,如果你知道一些。如果有文章或论文,那就更好了

For word1:word2 example
0.848 (cosine, transformed as normalized number)
0.758 (Euclidean, normalized between 0 to 1)
0.798 (Canberra, normalized between 0 to 1)

我不希望您提及softmax数字,因为我读到一篇文章,认为softmax数字本身不应被视为实际百分比

你必须严格定义你所说的“实际的‘相似程度’是什么意思”,才能得到任何可能的答案


这些措施中的每一项都是有用的。如果您需要在该范围内的值,则可以将每个值缩放为0.0到1.0之间的值。但这并不一定会使它们中的任何一个成为“百分比相似性”,因为“百分比相似性”不是一个具有严格含义的概念。

嗨,戈乔莫。我明白,在一定范围内,几乎不可能将分数转换成固定数量,因为它们都在相对域内或来自相对域。因此,当两个句子在不同的领域中完全相同时,每种情况的相似性都可能与其他情况完全不同。例如,句子A和B之间的余弦相似性在域1中约为0.87,但在域2中为0.51。这就是为什么我想知道1。如果有任何方法可以推广类似于本例2的相似性度量。将其他算法的分数从0.0改为1.0我不确定我所问的目的是否能很好地传达给你。你似乎明白我的意思。你是对的,同样的句子,句子A和句子B,在不同的模型中会有不同的余弦相似性——例如,取决于训练中包含的其他句子,词义的变化,向量维数的数量,
否定的
例子的数量等等。但是你想做什么还不清楚-没有“一个真正的相似性”可以将每一个都转换成,这都取决于数据、参数、目标等。如果你的真正目的只是“让更大的范围映射到[0.0,1.0]”,那么有很多方法可以做到这一点,但是没有一个是最适合所有用途的,特别是如果您想将它们与具有不同分布的其他0.0-1.0值进行比较的话。例如,如果您知道某个值的最大值M,只需将所有值除以M即可–瞧,现在所有值都是,您也可以看到–还请注意,有时可以混合使用日志操作,以更好地保持长值范围内的对比度。