如何使基于项目的协同过滤运行得更快?

2024-09-28 01:23:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力寻找每一对物品之间的相似性。项目在python字典中,我发现一次相似性占用对。密码是-

def allSimilarity(itemsDict, similarityMetric):
    itemList = itemsDict.keys()
    itemSimilarityDict = {}
    for item1 in itemList:
        itemSimilarityDict[item1] = {}
        for item2 in itemList:
            if(item1 == item2):
                continue
            itemSimilarityDict[item1][item2] = similarityMetric(itemsDict, item1, item2)
    return itemSimilarityDict

问题是,外部循环对每个项目需要5秒时间。我有~30万个项目,所以整个计算需要18天。有什么方法可以提高速度吗?我可以使用诸如Theano、Tensorflow等软件包,并使用GPU来实现这一点吗?或者可以采取云并将过程并行化?


Tags: 项目in密码for字典def相似性物品
1条回答
网友
1楼 · 发布于 2024-09-28 01:23:51

我不认为机器学习库在这里会特别有用,如果没有现成的操作或构建块来进行这种全对所有的相似性比较。在

我想你会有更好的运气,看看更通用的并行化解决方案:OpenMP、TBB、MapReduce、AVX、CUDA、MPI、map reduce等等

同样,C++中重写相同的代码肯定会加速事情的发展。在

相关问题 更多 >

    热门问题