标签:
通过将工作中用到的机器学习算法归纳汇总,方便以后查找,快速应用。
算法名字 | 交叉最小方差, Alternating Least Squares, ALS |
算法描述 | Spark上的交替性最小二乘ALS本质是一种协同过滤的算法 |
算法原理 | 1. 首先将用户推荐对象交互历史转换为矩阵,行表示用户,列表示推荐对象,矩阵对应 i,j 表示用户 i 在对象 j 上有没有行为 2. 协同过滤就是要像填数独一样,填满1得到的矩阵,采用的方法是矩阵分解 算法原理图 3. 原始矩阵 A 是一个很大的稀疏矩阵,然后利用 ALS 分解成近似两个矩阵 B 和 C 的乘,另外两个矩阵就比较密集,而且 B 矩阵的列可以解释为一个事物的几个方面。 4. 用户 k 对对象 h 的喜好程度就可以通过矩阵 B 的 k 行乘 矩阵 C 的 h 列得到 |
使用场景 | 当用户和推荐的对象本身属性数据没有,只存在用户和推荐对象历史交互数据的时候,当提炼出用户推荐对象的关系矩阵可以发现是一个大型的稀疏矩阵 |
算法优缺点 | 优点: 1. 此算法可伸缩 2. 速度很快 3. 适合大数据 4.新异兴趣发现、不需要领域知识 5. 随着时间推移性能提高 6. 推荐个性化、自动化程度高 7. 能处理复杂的非结构化对象 缺点: 1. 稀疏问题 2. 可扩展性问题 3. 新用户问题 4. 质量取决于历史数据集 5. 系统开始时推荐质量差 |
参考资料 | 1. 算法原理 Large-scale Parallel Collaborative Filtering for the Netflix Prize 2. MLlib实现 MLlib - Collaborative Filtering |
标签:
原文地址:http://my.oschina.net/u/1244232/blog/523127