1,根据graphical model,写出distribution之间的关系,找出要minimize的objective function,假设function是f, 对应的要解决的matrix有U和V
2,用f 分别对 U和V求解偏导数,得到 pian_f/pian_U, pian_f/pian_V, 则根据求解出来的公式更新 pian_U和pian_V
3,对pian_U 和 pian_V一起进行normalize, 方法是假设 uu_ij,和vv_ij是pian_U和pian_V的项,则 pian_norm = sqrt(uu_ij^{2} + vv_ij^{2})对于所有的项,然后根据pian_norm对uu_ij和vv_ij normalize, uu_ij = uu_ij/pian_norm
4,然后用normalize过的pian_U和pian_V来更新U, V, uij = uij – alpha * pian_uij
5,然后迭代这个过程来更新U和V
关于alpha (step size)
alpha可以动态变,当往对的方向走可以*1.1,当往错的方向走可以*0.8,当然数字可以取其他的,最好不对称,并且要给alpha设个upper bound和lower bound。
停止条件,列举两种
1, 根据objective function前后变化的绝对值,比如abs(diff) < 10的次数出现10次,程序停止
2, 根据testing data的mae和rmse的值进行变化