根据对问题的回答,余弦相似性是否是决定2个用户是否相似的好方法?
我试图让用户回答10个问题并将这些回答解析为10维整数向量。然后我计划使用余弦相似性来找到类似的用户。
我考虑将每个问题解析为整数并将整数求和以将每个用户解析为单个整数,但这种方法的问题是相似性度量不是特定于问题:换句话说,如果用户给出问题1的答案,解析为5,问题2的答案解析为0,另一个用户回答问题1为0,问题2为5,两个用户"总和为5",但从根本上区别对待每个问题。
因此,余弦相似度会根据每个属性给出一个很好的相似性度量吗?
答案 0 :(得分:2)
将要解析为每个用户的单个整数的所有整数求和似乎不正确。
我认为余弦相似度实际上有助于此作为相似性度量,您可以尝试其他人,如Jaccard,Euclidean,Mahalanobis等。
可能有帮助的是余弦相似性背后的直觉。这个想法是,一旦你创建10维向量,你就在10维空间中工作。每一行都是该空间中的一个向量,因此每个分量中的数字很重要,两个向量之间的余弦给出了这些向量对齐好坏的概念,如果它们是平行的并且角度为0则意味着它们转到相同的方向,意味着组件都是成比例的,在这种情况下相似性是最大的(例如,两个用户在所有问题中回答完全相同的数字)。如果组件开始不同,例如用户给出5个问题,而其他给出0则则向量填充具有不同的方向,答案之间的差异越大,向量越分离,它们之间的角度越大,这会导致较低的余弦,从而产生相似性。
如上所述还有其他相似性措施,ppl通常尝试的一件事是测试集中的几个测量集,看看哪一个表现更好。