RBM用于协同过滤

时间:2015-05-12 07:19:49

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

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

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

  2. For By User 钳位数据 - >可见(softmax)

    隐藏= sigmoid(b + W * V)

    隐藏运行吉布斯 - > Hidden_​​gibbs

    肯定=隐藏*可见

    隐藏 - >重建 - > reconstruct_visible

    在reconstruct_visible上运行Gibbs - > reconstruct_visible_gibbs

    negative = Hidden_​​gibbs * reconstruct_visible_gibbs

    结束

  3. 更新

    w = w +(正 - 负)/ Number_User

    b = b +(visible - reconstruct_visible_gibbs)/ Number_User

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

  4. 我看过很多论文或讲座,不知道哪里出错了

1 个答案:

答案 0 :(得分:0)

这不是一个容易的问题!您对学习过程的描述看起来很好。但是,从描述到实际代码的错误还有很大的余地。此外,对于CF," vanilla" RBM不会工作。

  • 你是如何实现可见的" softmax"单位?

  • 您是否使用"单用户"培训您的RBM?数据集,如原始作品[1]中所推荐的那样?

有两个关于体重更新和预测程序的细节与香草RBM略有不同

[1] Salakhutdinov http://www.machinelearning.org/proceedings/icml2007/papers/407.pdf