2019-10-25
提出问题
怎么把相似度融入 ALS 模型中。
解决方案
想融入进去,先再看看 ALS 模型的损失函数是怎样的
ALS 模型
ALS 模型的原理及推导过程: https://www.jianshu.com/p/a245d20c1b51
简单总结:
- ALS 的损失函数与论文中的 baseline 的损失函数基本一致
- 因此只需要考虑添加用户相似度的正则项即可
计算皮尔逊系数的 Pearsonr() 函数
计算皮尔逊相关系数的函数为 Pearsonr()
-
功能:
- 计算特征与目标变量之间的相关度
-
参数说明:
- 输入:x为特征,y为目标变量.
- 输出:r: 相关系数 [-1,1]之间,p-value: p值。
- PS: p值越小,表示相关系数越显著,一般p值在500个样本以上时有较高的可靠性。
-
具体 Pearsonr() 用法参考链接
-
目前代码的改编状态
- 已经写好相关函数,可以计算出两个用户之间的相似度了
- 下一步再写计算项目之间相似度即可
论文中的相似度安排
论文中添加了相似度的损失函数如下:
-
参数说明
- 其中 α 是正则化参数, 表示用户 与用户 之间的相似度,F +(i)表示用户 的正面好友。
第一和第三项是 baseline 的内容。第二项就是添加用户相似度的结果
-
作用:
- 该方法利用社交网络信息设计社交正则化项,以约束矩阵分解目标函数。
- 社会规范化术语还间接模拟了味觉的传播。
- 更具体地说,如果用户i有一个朋友f,而用户f有一个朋友用户g,则该正则项实际上间接地最小化了潜矢量 ui 和 ug 之间的距离。 一旦学习融合,口味的传播将达到和谐状态。
明日安排
- 继续看项目之间的。这个进程应该很快
- 再看 ALS 代码,看相关的 python 库源码,再看如何添加用户相似度与项目相似度进 ALS 的损失函数中