1

My algorithm RBM for collaborative filtering will not converge... The idea of what I think RBM for collaborative filtering is

  1. initial w , b , c and random at [0,1]

  2. For By User clamp data -> visible (softmax)

    Hidden = sigmoid(b+W*V)

    Run Gibbs on Hidden -> Hidden_gibbs

    Positive = Hidden*Visible

    Hidden -> reconstruct -> reconstruct_visible

    Run Gibbs on reconstruct_visible -> reconstruct_visible_gibbs

    negative = Hidden_gibbs*reconstruct_visible_gibbs

    End for

  3. Update

    w = w + (positive-negative)/Number_User

    b = b + (visible - reconstruct_visible_gibbs)/Number_User

    c = c + (Hidden - Hidden_gibbs)/Number_User

I have seen lots of paper or lecture, and have no idea where is wrong

4

1 回答 1

0

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

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

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

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

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

于 2015-11-20T15:41:17.857 回答