我有一个大的用户兴趣列表(> 10k)。每个列表都相当长并且包含一些用户兴趣,例如['足球','拳击','电影' ..],因用户而异。因此数据非常高维。
现在,我想计算每个列表之间的成对相似性。实际上,具体来说,对于某个列表,我想得到n个最相似的列表,其中n是任意的。我为此使用了scikit,到目前为止,我只是在对列表进行矢量化并计算每个列表之间的余弦相似度。可以理解的是,这似乎很慢,并且不能很好地扩展到大而稀疏的数据集。使用像kd-Tree或Ball-Tree这样的东西会更好吗?
答案 0 :(得分:0)
稀疏数据和余弦的最有效方法是反转列表索引。
想想一个文本搜索引擎。它完全符合您的需求。