V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
starvedcat
V2EX  ›  编程

问一个关于推荐系统的问题

  •  
  •   starvedcat · 2018-04-11 15:51:36 +08:00 · 2643 次点击
    这是一个创建于 2426 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我现在在尝试实现使用基于用户的协同过滤算法( user-based collaborative filtering )来进行推荐。 输入是一些用户对一些物品的评分(一个形如 userId,itemId,rating 的 csv ),输出是为每位用户列出 N 个推荐的物品

    具体的过程是,先预测每位用户对“所有他没有评分过的物品”的评分,然后找出评分最高的 N 个物品作为推荐

    至于预测某个用户对某个物品的评分,我看的是这篇论文(Empirical analysis of predictive algorithms for collaborative filtering)中的算法(据说是非常经典的论文)

    但现在的问题是:由于每个用户只给很小一部分物品评过分,所以“预测每位用户对‘所有他没有评分过的物品’的评分”计算量非常大。即使只用训练样本中的一小部分( 10000 行数据,包含大约 100 个用户、3000 个物品),对每位用户也都要计算很久(每位用户约 1 分钟,环境是 python+i7 笔记本)

    所以就想问一下这个算法应该如何改进?

    初学这些知识,请多指教,谢谢!

    2 条回复    2018-04-11 16:34:25 +08:00
    Morriaty
        1
    Morriaty  
       2018-04-11 16:11:06 +08:00   ❤️ 1
    als 算法
    laohubuchiyu
        2
    laohubuchiyu  
       2018-04-11 16:34:25 +08:00
    mark
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2849 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:07 · PVG 20:07 · LAX 04:07 · JFK 07:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.