平均向量的余弦相似度是否与余弦相似度的平均值相同?

Is the cosine similarity of the average vector same as the average of the cosine similarities?

我有一个向量 v,我想将其与一组向量 U = [u1, u2, u3 ...] 进行比较。 我想找到 vU.

中所有向量的平均余弦相似度

我的第一个想法是计算:

s1 = cosine_similarity(v, u1) 
s2 = cosine_similarity(v, u2) 
... 

然后取平均值为

s = np.mean([s1, s2, s3 ...])

但是我想知道这个过程是不是和只取U的平均值得到一个向量u然后计算是一样的

u = np.mean(U)
s = cosine_similarity(x, u)

两种情况下的结果一样吗?

你可以举一个简单的例子,看看结果是否相同。简答,没有。

import numpy as np
from sklearn.metrics.pairwise import cosine_similarity

x1 = np.random.rand(1, 100)
x2 = np.random.rand(1, 100)

y = np.random.rand(1, 100)

print(cosine_similarity(x1, y) + cosine_similarity(x2, y))

m = x1+x2
print(cosine_similarity(m, y))