2019-10-10
问题的提出
ALS 和 RSVD模型的简介
-
ALS 的预测评分公式如下:
-
其中:
- R为打分矩阵(m*n,m表示用户个数,n表示物品个数)
- U表示用户对隐含特征的偏好矩阵(m*k)
- V表示物品对隐含特征的归属矩阵(n*K)
上述模型的参数就是U和V,求得U和V之后,就可以近似的得到用户对未评分物品的评分。
-
另一个模型 RSVD 的预测评分公式如下:
-
-
其中:
-
为总电影的平均分
- bu为用户u的属性值
- bi为商品i的属性值
上述模型的参数就是U,V,bu,bi和
,求得这些参数之后,就可以近似的得到用户对未评分物品的评分。
-
提出问题
现在想要把 RSVD 模型中的后三项(bu,bi和 )添加到 ALS 中看看效果如何。
-
原 ALS 的 Cost 函数(代价函数)为:
-
其中:λ 为正则项系数
因此问题如下:
- 添加后三项(bu,bi和
)到 ALS 模型中后,代价函数应该变成什么?
解决问题:
为了探究代价函数中是如何添加新的正则项,我写了一篇新的简书,里面描述了关于正则项的原理,作用,以及如何调整:
https://www.jianshu.com/p/c66c337294b9
在那篇简书中,提到了 2 种不同的正则项的形式:
- 一是 L2 正则项,添加的是
,假设参数 w 是参与预测评分的参数
- 二是 L1 正则项,添加的是
,假设参数 w 是参与预测评分的参数
- 而 L2 的效果通常比 L1 好,所以代价函数添加正则项时使用 L2 的形式
因此,我觉得 ALS 模型添加后三项的代价函数应变为:
新的问题提出
原本的 ALS 代码将如何改编?
明天10-11的计划
查看代码,以及多个文章,看看如何改编代码。
计划源码使用 implicit 库的 movielens.py 的代码,在此基础上进行改编。
网友评论