大数据课程K18——Spark的ALS算法与显式矩阵分解

这篇具有很好参考价值的文章主要介绍了大数据课程K18——Spark的ALS算法与显式矩阵分解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州

 ▲ 本章节目的

⚪ 掌握Spark的ALS算法与显式矩阵分解;

⚪ 掌握Spark的ALS算法原理;

一、ALS算法与显式矩阵分解

1. 概述

我们在实现推荐系统时,当要处理的那些数据是由用户所提供的自身的偏好数据,这些数据被称作显式偏好数据,由显示偏好数据建立的矩阵称为显式矩阵。这类数据包括如物品评级、赞、喜欢等用户对物品的评价。

这些数据可以转换为以用户为行、物品为列的二维矩阵。矩阵的每一个数据表示某个用户对特定物品的偏好。大部分情况下单个用户只会和少部分物品接触,所以该矩阵只有少部分数据非零(即该矩阵很稀疏)。在生产环境下,偏好矩阵一般的是稀疏的。

举个简单的例子,假设我们有如下用户对电影的评级数据:

Tom, Star Wars, 5

Jane, Titanic,  4

Bill, Batman,  3

Jane, Star Wars, 2

Bill, Titanic, 3

它们可转为如下评级矩阵:

大数据课程K18——Spark的ALS算法与显式矩阵分解,大数据,spark,分布式

为了更好的实现推荐系统,我们需要对这个稀疏的矩阵建模。一般可以采用矩阵分解(或矩阵补全)的方式。

具体就是找出两个低维度的矩阵,使得它们的乘积是原始的矩阵。因此这也是一种降维技术。假设我们的用户和物品数目分别是U和I,那对应的“用户-物品”矩阵的维度为U×I,如下图所示:

大数据课程K18——Spark的ALS算法与显式矩阵分解,大数据,spark,分布式

要找到和“用户-物品”矩阵近似的k维(低阶)矩阵,最终要求出如下两个矩阵:一个用于表示用户的U×k维矩阵,以及一个表征物品的k×I维矩阵。这两个矩阵也称作因子矩阵。它们的乘积便是原始评级矩阵的一个近似。值得注意的是,原始评级矩阵通常很稀疏,但因子矩阵却是稠密的(满秩的),如下图所示:

大数据课程K18——Spark的ALS算法与显式矩阵分解,大数据,spark,分布式

这类模型试图发现对应“用户-物品”矩阵内在行为结构的隐含特征(这里表示为因子矩阵),所以也把它们称为隐特征模型。隐含特征或因子不能直接解释,但它可能表示了某些含义,比如对电影的某个导演、种类、风格或某些演员的偏好。

由于是对“用户-物品”矩阵直接建模,用这些模型进行预测也相对直接:要计算给定用户对某个物品的预计评级,就从用户因子矩阵和物品因子矩阵分别选取相应的行(用户因子向量)与列(物品因子向量),然后计算两者的点积即文章来源地址https://www.toymoban.com/news/detail-698771.html

到了这里,关于大数据课程K18——Spark的ALS算法与显式矩阵分解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Spark ALS模型 + Faiss向量检索实现用户扩量实例

    1、通过ALS模型实现用户/商品Embedding的效果,获得其向量表示 准备训练数据, M = (U , I, R) 即 用户集U、商品集I、及评分数据R。 (1)商品集I的选择:可以根据业务目标确定商品候选集,比如TopK热度召回、或者流行度不高但在业务用户中区分度比较高的商品集等。个人建议量

    2024年02月13日
    浏览(39)
  • 【推荐算法】协同过滤算法代码(pyspark | ALS)

    【推荐算法】协同过滤算法介绍_MachineCYL的博客-CSDN博客 上文介绍了协同过滤算法的原理,接下来我介绍一下协同过滤算法的代码实现。 下面我就开始介绍用pyspark中的ALS(交替最小二乘矩阵分解)来实现协同过滤代码。 ALS算法是2008年以来,用的比较多的协同过滤算法。它已

    2024年02月06日
    浏览(39)
  • 大数据课程K3——Spark的常用案例

    文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州 ⚪ 掌握Spark的常用案例——WordCount; ⚪ 掌握Spark的常用案例——求平均值; ⚪ 掌握Spark的常用案例——求最大值和最小值; ⚪ 掌握Spark的常用案例——TopK; ⚪ 掌握Spark的常用案例——二次排序; 1. 创建spar

    2024年02月12日
    浏览(31)
  • 大数据课程K14——Spark的数据挖掘案例

    文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州 ⚪ 掌握Spark的案例——预测商品需求量; ⚪ 掌握Spark的案例——预测谋杀率; 某种商品的需求量(y,吨)、价格(x1,元/千克)和消费者收入(x2,元)观测值如下表所示。 y= β 1 X1+ β 2 X2+ β 0  y x1 x2   10

    2024年02月11日
    浏览(35)
  • 大数据课程K5——Spark的框架核心概念

    文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州 ⚪ 了解Spark的框架核心概念; ⚪ 掌握Spark的Spark集群模式安装; ⚪ 掌握Spark的Spark架构; ⚪ 掌握Spark的Spark调度模块; 1. RDD。弹性分布式数据集,是Spark最核心的数据结构。有分区机制,所以可以分布式进行处

    2024年02月11日
    浏览(35)
  • 大数据课程K6——Spark的Shuffle详解

    文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州 ⚪ 了解Spark的定义特点目的优缺点; ⚪ 掌握Spark的相关参数配置; ⚪ 掌握Hadoop的插件配置; Shuffle,就是洗牌。之所以需要Shuffle,还是因为具有某种共同特征的一类数据需要最终汇聚(aggregate)到一个计算节点

    2024年02月11日
    浏览(38)
  • 大数据课程K16——Spark的梯度下降法

    文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州 ⚪ 了解Spark的梯度下降法; ⚪ 了解Spark的梯度下降法家族(BGD,SGD,MBGD); ⚪ 掌握Spark的MLlib实现SGD; 求解机器学习算法的模型参数,即无约束优化问题时,梯度下降法是最常采用的方法之一,另一种常用的方

    2024年02月10日
    浏览(27)
  • 大数据课程K12——Spark的MLlib概述

    文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州 ⚪ 了解Spark的MLlib概念; ⚪ 掌握Spark的MLlib基本数据模型; ⚪ 掌握Spark的MLlib统计量基础; MLlib是Apache Spark的可迭代机器学习库。 适用于Java、Scala、Python和R语言。 MLlib适用于Spark的API,并与Python中的NumPy(从Spa

    2024年02月11日
    浏览(37)
  • 大数据课程K2——Spark的RDD弹性分布式数据集

    文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州 ⚪ 了解Spark的RDD结构; ⚪ 掌握Spark的RDD操作方法; ⚪ 掌握Spark的RDD常用变换方法、常用执行方法; 初学Spark时,把RDD看做是一个集合类型(类似于Array或List),用于存储数据和操作数据,但RDD和普通集合的区别

    2024年02月12日
    浏览(55)
  • 大数据课程K4——Spark的DAG&&RDD依赖关系

    文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州 ⚪ 了解Spark的DAG; ⚪ 掌握Spark的RDD的依赖关系; ⚪ 了解Spark对于DAG的Stage的划分; Spark会根据用户提交的计算逻辑中的RDD的转换和动作来生成RDD之间的依赖关系,同时这个计算链也就生成了逻辑上的DAG。接下来以

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包