美文网首页
每日学习记录 2019-10-10

每日学习记录 2019-10-10

作者: hwang_zhic | 来源:发表于2019-10-11 10:23 被阅读0次

    2019-10-10

    问题的提出

    ALS 和 RSVD模型的简介

    • ALS 的预测评分公式如下:

    • R \approx U V^{T}

    其中:

    • R为打分矩阵(m*n,m表示用户个数,n表示物品个数)
    • U表示用户对隐含特征的偏好矩阵(m*k)
    • V表示物品对隐含特征的归属矩阵(n*K)

    上述模型的参数就是U和V,求得U和V之后,就可以近似的得到用户对未评分物品的评分。

    • 另一个模型 RSVD 的预测评分公式如下:

    • \hat{r}_{u i}=U_{u .} V_{i .}^{T}+b_{u}+b_{i}+\mu

    • 其中:

      • \mu 为总电影的平均分
      • bu为用户u的属性值
      • bi为商品i的属性值

      上述模型的参数就是U,V,bu,bi和\mu,求得这些参数之后,就可以近似的得到用户对未评分物品的评分。

    提出问题

    现在想要把 RSVD 模型中的后三项(bu,bi和 \mu )添加到 ALS 中看看效果如何。

    • 原 ALS 的 Cost 函数(代价函数)为:

    • J(U, V)=\sum_{i}^{m} \sum_{j}^{n}\left[\left(r_{i j}-u_{i} v_{j}^{T}\right)^{2}+\lambda\left(\left\|u_{i}\right\|^{2}+\left\|v_{j}\right\|^{2}\right)\right]
      其中:λ 为正则项系数

    因此问题如下:

    • 添加后三项(bu,bi和 \mu )到 ALS 模型中后,代价函数应该变成什么?

    解决问题:

    为了探究代价函数中是如何添加新的正则项,我写了一篇新的简书,里面描述了关于正则项的原理,作用,以及如何调整:

    https://www.jianshu.com/p/c66c337294b9

    在那篇简书中,提到了 2 种不同的正则项的形式:

    • 一是 L2 正则项,添加的是 w_{j}^{2},假设参数 w 是参与预测评分的参数
    • 二是 L1 正则项,添加的是 \left|w_{j}\right|,假设参数 w 是参与预测评分的参数
    • 而 L2 的效果通常比 L1 好,所以代价函数添加正则项时使用 L2 的形式

    因此,我觉得 ALS 模型添加后三项的代价函数应变为:

    • J(U, V)=\sum_{i}^{m} \sum_{j}^{n}\left[\left(r_{i j}-u_{i} v_{j}^{T}-b_i-b_u-\mu\right)^{2}+\lambda\left(\left\|u_{i}\right\|^{2}+\left\|v_{j}\right\|^{2} + \left\|b_{i}\right\|^{2} + \left\|b_{u}\right\|^{2} \right)\right]

    新的问题提出

    原本的 ALS 代码将如何改编?

    明天10-11的计划

    查看代码,以及多个文章,看看如何改编代码。

    计划源码使用 implicit 库的 movielens.py 的代码,在此基础上进行改编。

    相关文章

      网友评论

          本文标题:每日学习记录 2019-10-10

          本文链接:https://www.haomeiwen.com/subject/mwctmctx.html