【问题标题】:RBM for collaborative filtering用于协同过滤的 RBM
【发布时间】:2015-11-20 23:41:17
【问题描述】:

我的协同过滤算法 RBM 不会收敛... 我认为RBM对于协同过滤的想法是

  1. 初始 w 、 b 、 c 和 [0,1] 处的随机数

  2. 按用户 钳位数据 -> 可见(softmax)

    隐藏 = sigmoid(b+W*V)

    在 Hidden 上运行 Gibbs -> Hidden_​​gibbs

    正面 = 隐藏*可见

    隐藏 -> 重构 -> 重构可见

    在reconstruct_visible 上运行Gibbs -> rebuild_visible_gibbs

    负数 = Hidden_​​gibbs*reconstruct_visible_gibbs

    结束

  3. 更新

    w = w + (正负)/Number_User

    b = b + (可见-reconstruct_visible_gibbs)/Number_User

    c = c + (Hidden - Hidden_​​gibbs)/Number_User

看了很多论文或讲座,不知道哪里错了

【问题讨论】:

    标签: machine-learning neural-network collaborative-filtering deep-learning rbm


    【解决方案1】:

    这不是一个简单的问题!您对学习过程的描述看起来不错。但是,从描述到实际代码都有很大的错误空间。此外,对于 CF,“香草”RBM 将不起作用。

    • 您是如何实现可见的“softmax”单元的?

    • 您是否按照原始工作 [1] 中的建议使用“单用户”数据集训练您的 RBM?

    还有 2 个关于权重更新和预测过程的细节与 vanilla 的 RBM 略有不同

    [1] 萨拉赫特迪诺夫http://www.machinelearning.org/proceedings/icml2007/papers/407.pdf

    【讨论】:

    • 我看过论文,对更新部分感到困惑。 RBM 是否按用户批次更新?还是单用户?
    • 理想情况下,最好一次培训一位用户。但是,有些作品以小批量方式报告了结果训练,例如:orbi.ulg.ac.be/handle/2268/74400
    • 你好,丹,你好运吗?我一直在使用每个用户的更新来训练 CF 的 RBM,但是,如果您按小批量更新,它也可以工作。请记住,理想情况下,您的学习率应该与批次大小成正比。
    • 你好,丹!我对这个模型的工作实现:github.com/felipecruz/CFRBM希望它对你有帮助。
    猜你喜欢
    • 2012-04-30
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 2011-01-27
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多