ALS算法描述:

1、ALS算法用来补全用户评分矩阵。由于用户评分矩阵比较稀疏,将用户评分矩阵进行分解,变成V和U的乘积。通过求得V和U两个小的矩阵来补全用户评分矩阵。

2、ALS算法使用交替最小二乘法来进行求解。

3、ALS分为显示反馈和隐式反馈两种。显示反馈是指用户有明确的评分。对于商品推荐来说,大部分是通过用户的行为,获取隐式反馈的评分。

隐式反馈评分矩阵需要进行处理,如果有用户评分则置为1,没有则赋值为0。但是对这个处理后的评分矩阵,再有一个置信度来评价这个评分。置信度等于1+a*用户真实评分

4、ALS的代价函数是估计值和现有的评分值误差的平方和,引入了L2正则

ALS算法参数:

参数:
rating:由用户-物品矩阵构成的训练集
rank:隐藏因子的个数
numIterations: 迭代次数
lambda:正则项的惩罚系数
alpha: 置信参数
 

ALS交替最小二乘法求解步骤:

最小二乘法是通过最小化误差的平方和来寻找和数据最匹配的函数。

使用交替最小二乘法来求解。步骤是先设置一个X规定,然后求解另一个矩阵Y。然后再固定一个矩阵Y,求解另一个矩阵X。这就是交替二乘法的步骤。

在矩阵求解的过程中,比如固定Y,求解X的话,目标评分矩阵A。X的每一行可以独立求解,X的第i行和Y的计算得到A的第i行。

这样的话,对于每一步来说,X或者Y的行或者列都是可以独立并行求解的。这样ALS就可以进行并行化计算了。

最新文章

  1. Redis百亿级Key存储方案(转)
  2. mysql awr 1.0.5 GA正式版发布
  3. CF451A Game With Sticks 水题
  4. mvn install
  5. Jquery选择器之基本选择器
  6. 转:Delphi各种Socket组件的模式和模型
  7. nginx 与 lua 开发环境搭建
  8. Redis学习手册(Sorted-Sets数据类型)
  9. oracle导入导出数据库和创建表空间和用户
  10. PCL—低层次视觉—点云分割(邻近信息)
  11. [课程相关]homework-02
  12. 为什么java不支持多重继承?
  13. Mysql数据库乱码与编码问题筛查
  14. nginx负载 发向代理配置文件参考
  15. 中学之Vim实践课程
  16. monkeyrunner_获取apk的包名和activity名
  17. java导出word
  18. JS用斜率判断鼠标进入DIV四个方向的方法 判断鼠标移入方向
  19. MySQL5.7 GTID在线开启与关闭【转】
  20. C/C++---printf/cout 从右至左压栈顺序实例详解

热门文章

  1. 005-Symbol、Proxy、Reflect
  2. The Unreasonable Effectiveness of Recurrent Neural Networks (RNN)
  3. list comprehension & generator expression
  4. js踩过的一些坑
  5. redis 笔记05 Sentinel、集群
  6. APP测试的要点
  7. Python3:读取配置dbconfig.ini(含有中文)显示乱码的解决方法
  8. CSS3 Loading进度条加载动画特效
  9. 20145201《Java程序设计》第1次实验报告
  10. 20145201 《Java程序设计》第五周学习总结