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

时间:2016-12-26 06:08:30

标签: python tensorflow theano collaborative-filtering

我试图在每对物品之间找到相似之处。项目在python词典中,我一次找到相似性对。代码是 -

var gulp        = require('gulp');
var concat      = require('gulp-concat');
var foo         = require('./index');
var insert      = require('gulp-insert');
gulp.task('default', function() {
    gulp.src([a.html, b.html, c.html])
        .pipe(foo()
        .pipe(insert.append('xxx'))
        .pipe(concat('output.js'))
        .pipe(gulp.dest('./test/output'))
});

问题是外部循环每个项目花费5秒钟。我有~300,000项,所以整个计算需要18天。有没有办法提高速度?我可以使用像Theano,Tensorflow这样的软件包并使用GPU吗?或者可以采用云并将流程并行化?

1 个答案:

答案 0 :(得分:1)

如果没有任何操作或构建块可用于此类所有相似性比较,我认为机器学习库在这里特别有用。

我认为通过查看更通用的并行化解决方案可以带来更好的运气:OpenMP,TBB,MapReduce,AVX,CUDA,MPI,map reduce等。

此外,在C ++中重写相同的代码肯定会加快速度。