博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ALS算法 (面试准备)
阅读量:5300 次
发布时间:2019-06-14

本文共 666 字,大约阅读时间需要 2 分钟。

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就可以进行并行化计算了。

 

转载于:https://www.cnblogs.com/earendil/p/8871711.html

你可能感兴趣的文章
正则表达式学习(三) (转)
查看>>
PHP图片转为webp格式
查看>>
动态创建并访问网页元素
查看>>
Jenkins插件--通知Notification
查看>>
自学Java第五周的总结
查看>>
[LeetCode]Evaluate Reverse Polish Notation
查看>>
线性表总结
查看>>
Oracle insert update 时间处理
查看>>
【百度】大型网站的HTTPS实践(三)——HTTPS对性能的影响
查看>>
jquery+ajax 实现搜索框提示
查看>>
Angular_上拉刷新
查看>>
day57作业(包含data内容)
查看>>
ExtJs 自定义Vtype验证
查看>>
java系统化基础-day01-基础语法知识
查看>>
62. Unique Paths (DP)
查看>>
windows下hadoop伪分布式模式开发环境的搭建(Cygwin)以及Eclipse集成开发环境下的搭建...
查看>>
简单视频播放软件设计
查看>>
2019.1.22 工作日志
查看>>
Spring-AOP基础
查看>>
九度oj 题目1499:项目安排
查看>>