推荐系统之ALS算法详解

ALS算法是2008年以来,用的比较多的协同过滤算法。它已经集成到Spark的Mllib库中,使用起来比较方便。

从协同过滤的分类来说,ALS算法属于User-Item CF,也叫做混合CF。它同时考虑了User和Item两个方面。

用户和商品的关系,可以抽象为如下的三元组:<User,Item,Rating>。其中,Rating是用户对商品的评分,表征用户对该商品的喜好程度。

ALS算法是基于模型的推荐算法。起基本思想是对稀疏矩阵进行模型分解,评估出缺失项的值,以此来得到一个基本的训练模型。然后依照此模型可以针对新的用户和物品数据进行评估。ALS是采用交替的最小二乘法来算出缺失项的。交替的最小二乘法是在最小二乘法的基础上发展而来的。

假设我们有一批用户数据,其中包含m个User和n个Item,则我们定义Rating矩阵,其中的元素表示第u个User对第i个Item的评分。

一般情况下,k的值远小于n和m的值,从而达到了数据降维的目的。在实际使用中,由于n和m的数量都十分巨大,因此R矩阵的规模很容易就会突破1亿项。这时候,传统的矩阵分解方法对于这么大的数据量已经是很难处理了。

另一方面,一个用户也不可能给所有商品评分,因此,R矩阵注定是个稀疏矩阵。矩阵中所缺失的评分,又叫做missing item。
在这里插入图片描述
针对这样的特点,我们可以假设用户和商品之间存在若干关联维度(比如用户年龄、性别、受教育程度和商品的外观、价格等),我们只需要将R矩阵投射到这些维度上即可。这个投射的数学表示是:
在这里插入图片描述
这里的表明这个投射只是一个近似的空间变换。一般情况下,k的值远小于n和m的值,从而达到了数据降维的目的。
在这里插入图片描述
幸运的是,我们并不需要显式的定义这些关联维度,而只需要假定它们存在即可,因此这里的关联维度又被称为Latent factor。k的典型取值一般是20~200。

这种方法被称为概率矩阵分解算法(probabilistic matrix factorization,PMF)。ALS算法是PMF在数值计算方面的应用。

为了使低秩矩阵X和Y尽可能地逼近R,需要最小化下面的平方误差损失函数:
在这里插入图片描述
考虑到矩阵的稳定性问题,使用Tikhonov regularization,则上式变为:
在这里插入图片描述
优化上式,得到训练结果矩阵。预测时,将User和Item代入,即可得到相应的评分预测值。
在这里插入图片描述
同时,矩阵X和Y,还可以用于比较不同的User(或Item)之间的相似度,如下图所示
在这里插入图片描述
ALS算法的缺点在于:

1.它是一个离线算法。

2.无法准确评估新加入的用户或商品。这个问题也被称为Cold Start问题。

ALS算法优化过程的推导

在这里插入图片描述
在这里插入图片描述

隐式反馈

用户给商品评分是个非常简单粗暴的用户行为。在实际的电商网站中,还有大量的用户行为,同样能够间接反映用户的喜好,比如用户的购买记录、搜索关键字,甚至是鼠标的移动。我们将这些间接用户行为称之为隐式反馈(implicit feedback),以区别于评分这样的显式反馈(explicit feedback)。

隐式反馈有以下几个特点:

1.没有负面反馈(negative feedback)。用户一般会直接忽略不喜欢的商品,而不是给予负面评价。

2.隐式反馈包含大量噪声。比如,电视机在某一时间播放某一节目,然而用户已经睡着了,或者忘了换台。

3.显式反馈表现的是用户的喜好(preference),而隐式反馈表现的是用户的信任(confidence)。比如用户最喜欢的一般是电影,但观看时间最长的却是连续剧。大米购买的比较频繁,量也大,但未必是用户最想吃的食物。

4.隐式反馈非常难以量化。
在这里插入图片描述
http://www.jos.org.cn/1000-9825/4478.htm

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

Spark中ALS的实现原理

Spark利用交换最小二乘解决矩阵分解问题分两种情况:数据集是显式反馈和数据集是隐式反馈。隐式反馈算法的原理是在显示反馈算法原理的基础上作一定的修改,所以在此我们只会具体讲解数据集为隐式反馈的算法。
推荐系统依赖不同类型的输入数据,最方便的是高质量的显式反馈数据,它们包含用户对感兴趣商品明确的评价。例如,大众点评中对餐厅的评价数据,但是显式反馈数据不一定总是找得到。好在推荐系统还可以从更丰富的隐式反馈信息中推测用户的偏好。隐式反馈类型包括购买历史、浏览历史、搜索模式甚至鼠标动作。例如,反复浏览某一个类型理财产品的用户可能喜欢这类理财产品。
了解隐式反馈的特点非常重要,因为这些特质使我们避免了直接调用基于显式反馈的算法。最主要的特点有如下几种:
(1)没有负反馈。通过观察用户行为,我们可以推测那个商品他可能喜欢,然后购买,但是我们很难推测哪个商品用户不喜欢。这在显式反馈算法中并不存在,因为用户明确告诉了我们他喜欢什么他不喜欢什么。
(2)隐式反馈是内在的噪音。虽然我们拼命的追踪用户行为,但是我们仅仅只是猜测他们的偏好和真实动机。例如,我们可能知道一个人的购买行为,但是这并不能完全说明偏好和动机,因为这个商品可能作为礼物被购买而用户并不喜欢它。
(3)显示反馈的数值表示偏好(preference),隐式回馈的数值表示信任(confidence)。
基于显示反馈的系统用星星等级让用户表达他们的喜好程度,例如一颗星表示很不喜欢,五颗星表示非常喜欢。基于隐式反馈的数值描述的是动作的频率,例如用户购买特定商品的次数。一个较大的值并不能表明更多的偏爱。但是这个值是有用的,它描述了在一个特定观察中的信任度。一个发生一次的事件可能对用户偏爱没有用,但是一个周期性事件更可能反映一个用户的选择。
(4)评价隐式反馈推荐系统需要合适的手段。
3.1显式反馈模型
潜在因素模型由一个针对协同过滤的交替方法组成,它以一个更加全面的方式发现潜在特征来解释观察的ratings数据。我们关注的模型由奇异值分解(SVD)推演而来。一个典型的模型将每个用户u(包含一个用户-因素向量ui)和每个商品v(包含一个用户-因素向量vj)联系起来。预测通过内积rij=(uiT)vj来实现。另一个需要关注的地方是参数估计。许多当前的工作都应用到了显式反馈数据集中,这些模型仅仅基于观察到的rating数据直接建模,同时通过一个适当的正则化来避免过拟合。公式如下:
在上述公式中,lambda是正则化的参数。正规化是为了防止过拟合的情况发生。这样,我们用最小化重构误差来解决协同推荐问题。我们也成功将推荐问题转换为了最优化问题。
3.2隐式反馈模型
在显式反馈的基础上,我们需要做一些改动得到我们的隐式反馈模型。首先,我们需要形式化由rij变量衡量的信任度的概念。我们引入了一组二元变量pj,它表示用户u对商品v的偏好。pj的公式如下:
另外,用户购买一个商品也并不一定是用户喜欢它。因此我们需要一个新的信任等级来显示用户偏爱某个商品。一般情况下,rij越大,越能暗示用户喜欢某个商品。因此,我们引入了一组变量Cj,它衡量了我们观察到pj的信任度。C_j一个合理的选择如下所示:
按照这种方式,我们存在最小限度的信任度,并且随着我们观察到的正偏向的证据越来越多,信任度也会越来越大。
我们的目的是找到用户向量以及商品向量vj来表明用户偏好。这些向量分别是用户因素(特征)向量和商品因素(特征)向量。本质上,这些向量将用户和商品映射到一个公用的隐式因素空间,从而使它们可以直接比较。这和用于显式数据集的矩阵分解技术类似,但是包含两点不一样的地方:(1)我们需要考虑不同的信任度。
(2)最优化需要考虑所有可能的u,v对,而不仅仅是和观察数据相关的u,v对。

一种tang两种味
关注 关注
  • 18
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
矩阵分解模型(1):ALS学习算法
oucpowerman的博客
11-15 3万+
一、矩阵分解模型。 用户对物品的打分行为可以表示成一个评分矩阵A(m*n),表示m个用户对n各物品的打分情况。如下图所示: 其中,A(i,j)表示用户user i对物品item j的打分。但是,用户不会对所以物品打分,图中?表示用户没有打分的情况,所以这个矩阵A很多元素都是空的,我们称其为“缺失值(missing value)”。在推荐系统中,我们希望得到用户对所有物品的打分情况,如果
ALS推荐系统实战
本地磁盘_H
07-04 888
拿到某超市的销售数据,将数据整理后得到一年三千万条交易记录,想试试用spark中的推荐系统做一下预测 先把数据导入到HDFS中,数据需要用户id,商品id,和购买次数,这里我拿购买次数当作电影推荐系统中的电影评分 HDFS中的数据用":"分割开。如下:461365:22535:1.0 461365:5059:1.0 461365:5420:4.0 461366:1987:4.0 461366:
ALS算法讲解
热门推荐
大数据训练营
06-22 3万+
Kendall秩相关系数(Kendall rank correlation coefficient) 对于秩变量对(xi,yi),(xj,yj): (xi−xj)(yi−yj)⎧⎩⎨⎪⎪>0,=0,0,concordantneither concordant nor discordantdiscordant τ=(number of concord
ALS推荐算法
webinZ的博客
03-26 3870
1、导致ALS多次训练结果不一致的原因问题描述:    利用ALS算法预测用户对物品的评分,同时将用户已经看过的物品(即用户对该物品已有过评分)进行过滤,并将评分较高的物品作为推荐物品推荐给用户。但是,在模型训练的过程中,发现即使在训练参数,数据集没有做任何改变的前提下,进行两次模型训练,并分别利用两次得到的模型对同一个用户进行推荐,发现两次的推荐结果有一定的偏差。实验数据:    随机生成100...
基于ALS推荐系统
u013259361的博客
03-09 2447
文章目录推荐系统Spark实现相关概念相似度偏好矩阵ALS算法(交替最小二乘法)核心代码项目实现基于用户的电影推荐算法基于商品的用户推荐算法实现思路模型的保存与加载 推荐系统Spark实现 推荐系统模型是基于协同过滤思想实现 基于用户的协同过滤(User) 基于物品的协同过滤(Item) 相关概念 相似度 概念:无论是基于用户还是基于物品的推荐,其本质思想是计算用户和用户之间的相似度,或者计算...
ALS 推荐系统
千丈之松的专栏
12-19 2226
ALS(alternating least squares ):交替最小二乘法 在机器学习中,特指使用最小二乘法的一种协同推荐算法。如下图所示,u表示用户,v表示商品,用户给商品打分,但是并不是每一个用户都会给每一种商品打分。? 表示用户没有打分的情况,所以这个矩阵A很多元素都是空的,我们称其为“缺失值(missing value)”。协同过滤提出了一种支持不完整评分矩阵的矩阵分解方法,不用对评
推荐系统召回算法详解教程.docx
最新发布
06-14
### 推荐系统召回算法详解 #### 一、召回模块在推荐系统中的位置与作用 在构建企业级推荐系统的过程中,整个系统架构的设计至关重要。召回模块作为推荐系统的关键组成部分之一,其主要职责在于进行初步筛选,即从...
基于Spark MLlib 的 ALS 算法实现的电影推荐系统,采用MovieLens数据集进行分析建模.zip
12-24
总的来说,通过本项目,我们可以了解到Spark在处理大规模数据时的优势,以及ALS算法在协同过滤推荐系统中的应用。对于想要深入研究推荐系统或者Spark技术的读者,这是一个极佳的实践起点。在实际工作中,类似的推荐...
ALS 推导详解
05-23
### ALS推导详解 ...综上所述,ALS算法通过分解用户-物品评分矩阵,并通过迭代更新用户和物品的特征向量,实现了有效的推荐。同时,通过合理的分区策略,可以进一步提升其在大规模数据集上的性能表现。
Spark ALS 算法预测评分解释
08-02
### Spark ALS 算法预测评分解释 ...综上所述,ALS算法通过矩阵分解的方式,有效地解决了推荐系统中用户对未评分物品的预测问题,通过合理的参数调整和优化策略,可以显著提高模型的预测准确性和实用性。
基于用户的SparkALS推荐系统和数据源
11-26
基于用户的SparkALS推荐系统,内还有测试数据100万,按照流程跑模型不是问题。下载后请看教程链接https://mp.csdn.net/postedit/84548711
MovieRecommender:使用ALS机器学习算法的电影推荐系统
03-13
IMDB电影推荐系统 组:Priyanka Bijlani,Sharmeelee Bijlani,Laura Thriftwood,Lakshmi Venkatasubramanian 介绍 在考虑观看哪部电影时,用户可以使用大量的选项。 用户想要自定义建议,以确保最佳地利用其收看时间。 通过增强用户的参与度和对流媒体平台的依赖,业务模型将从强大的推荐系统中受益。 通过该项目,我们可以创建自己的电影推荐系统,该系统采用用户输入的一部电影,并利用电影标题,评分和用户信息的丰富数据集来输出推荐电影。 数据 流数据 超过10万个评分 1700多个电影标题 1000多个用户 目录结构 用例 用户将根据他们以前的评分从系统中获得电影推荐 培训输入:用户,电影,评分 用户输入:用户名/ ID 输出:电影 ML算法:协同过滤(分析历史数据) 用户将能够提供电影名称并获得类似的电影 培训输入:用户,电
基于spark的电影推荐系统,包括基于ALS、LFM的离线推荐、实时推荐.zip
09-01
《基于Spark的电影推荐系统详解推荐系统是现代数据驱动的应用中不可或缺的一部分,它能够根据用户的历史行为和喜好,为用户提供个性化的内容推荐。在本项目中,我们将深入探讨一个基于Spark实现的电影推荐系统,...
Spark MLlib ----- ALS算法
Kayleigh520的博客
01-08 2010
在谈ALS(Alternating Least Squares)之前首先来谈谈LS,即最小二乘法。LS算法ALS的基础,是一种数优化技术,也是一种常用的机器学习算法,他通过最小化误差平方和寻找数据的最佳匹配,利用最小二乘法寻找最优的未知数据,保证求的数据与已知的数据误差最小。LS也被用于拟合曲线,比如所熟悉的线性模型。下面以简单的线性一元线性回归模型说明最小二乘法。假设我们有一组数据{(x1,y1),(x2,y2),(x3,y3)…}其符合线性回归,假设其符合的函数为如下:y = w+ wx。
ALS-算法
qq_24857543的博客
04-12 234
Spark机器学习(10):ALS交替最小二乘算法 Alternating Least Square ALS(Alternating Least Square),交替最小二乘法。在机器学习中,特指使用最小二乘法的一种协同推荐算法。如下图所示,u表示用户,v表示商品,用户给商品打分,但是并不是每一个用户都会给每一种商品打分。比如用户u6就没有给商品v3打分,需要我们推断出来,这就是机器学习的任务。 由于并不是每个用户给每种商品都打了分,可以假设ALS矩阵是低秩的,即一个mn的矩阵,是由mk和k*n两个矩阵
ALS算法介绍(协同过滤算法介绍)
qq_42448606的博客
10-22 2万+
目录一、ALS算法概括二、ALS算法原理及运用(1)、协同过滤(2)、ALS算法工作原理(3)、ALS算法输入的参数三、代码实现 一、ALS算法概括 1、ALS算法用来补全用户评分矩阵。由于用户评分矩阵比较稀疏,将用户评分矩阵进行分解,变成V和U的乘积。通过求得V和U两个小的矩阵来补全用户评分矩阵。 2、ALS算法使用交替最小二乘法来进行求解 3、ALS分为显示反馈和隐式反馈两种。显示反馈是指用户有明确的评分。对于商品推荐来说,大部分是通过用户的行为,获取隐式反馈的评分。隐式反馈评分矩阵需要进行处理,如果有
ALS算法 (面试准备)
weixin_30858241的博客
04-18 231
ALS算法描述: 1、ALS算法用来补全用户评分矩阵。由于用户评分矩阵比较稀疏,将用户评分矩阵进行分解,变成V和U的乘积。通过求得V和U两个小的矩阵来补全用户评分矩阵。 2、ALS算法使用交替最小二乘法来进行求解。 3、ALS分为显示反馈和隐式反馈两种。显示反馈是指用户有明确的评分。对于商品推荐来说,大部分是通过用户的行为,获取隐式反馈的评分。 隐式反馈评分矩阵需要进行处理,如果有用户评分...
实例:1. ALS算法(jupyter)
ant的博客
01-07 1902
ALS 是 spark 的协同过滤算法,已集成到 Spark 的 mllib 库中 使用anaconda的jupyter开发,交互性好   数据集: 电影数据集 ml-100k.zip,下载地址:https://grouplens.org/datasets/movielens/ 其中,u.dat是用户评分数据(包括用户id、电影id、评分、日期) u.item是电影数据(包括电影id、...
ALS算法解析
JavaEdge全是干货的技术号
05-06 6123
1 前言 Spark平台推出至今已经地带到2.4.x版本,很多地方都有了重要的更新,加入了很多新的东西。 但是在协同过滤这一块却一直以来都只有ALS一种算法。 同样是大规模计算平台,Hadoop中的机器学习算法库Mahout就集成了多种推荐算法,不但有user-cf和item-cf这种经典算法,还有KNN、SVD,Slope one这些,可谓随意挑选,简繁由君。 我们知道得是,推荐系统这个应用本身...
写文章

热门文章

  • NLP面试题汇总1(吐血整理) 91811
  • LightGBM算法详解(教你一文掌握LightGBM所有知识点) 64293
  • 面试题汇总2(吐血整理) 41636
  • 协同过滤算法详解 36395
  • [NLP] 文本分类之TextCNN模型原理和实现(超详细) 27896

最新评论

  • LightGBM算法详解(教你一文掌握LightGBM所有知识点)

    NLP还是CV?: 你好 LightGBM 的 Histogram algorithm中,直方图除了保存划分阈值和当前bin内样本数以外还保存了当前bin内所有样本的一阶梯度求和(一阶梯度和的平方的均值等价于均方损失)。为什么以此能得到划分之后△loss最大的特征及阈值?

  • LightGBM算法详解(教你一文掌握LightGBM所有知识点)

    机器学习原理与实战: 【LightGBM算法详解】https://blog.csdn.net/weixin_40363423/article/details/99105787

  • Tensorflow的并行计算

    luv-letter: 异步更新不太明白,即便是最终训练结束,那各个gpu的参数都不一样,这和单个gpu训练有什么区别呢?

  • [NLP]高级词向量表达之Word2vec详解(知识点全覆盖)

    K24B;: 虽然乱,但是解决了我不少疑问表情包

  • LightGBM算法详解(教你一文掌握LightGBM所有知识点)

    Geo_NaNa: 为什么不计算训练集的准确率呢?不然不好比较有没有过拟合呀

大家在看

  • 基于黑猩猩算法优化的最小交叉熵图像多阈值分割
  • 静态绑定和动态绑定 555
  • web网页设计制作服装主题html网页源码文件分享?学生作品 1241
  • 算法学习之416周赛 790
  • 免费领源码 springboot校园新闻数据化系统 计算机原创毕业设计

最新文章

  • xgb生成的pkl文件转pmml文件用于跨平台部署并预测
  • 史上最全linux语法汇总,教你一文掌握linux
  • 史上最全pandas语法汇总,教你一文掌握pandas
2022年3篇
2020年56篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家山东商场创意商业美陈风格东莞透明玻璃钢雕塑生产厂家资阳人物玻璃钢雕塑定做昆明商场美陈雕塑玻璃钢雕塑武警战士保山市玻璃钢雕塑哪里有卖湖南玻璃钢卡通雕塑厂家黑龙江佛像玻璃钢雕塑订做价格河南节庆商场美陈价格贵港玻璃钢白鹭雕塑玻璃钢花盆裂了怎么修补松原动物玻璃钢雕塑价格成都市哪里有玻璃钢雕塑厂家舟山学校玻璃钢雕塑品牌玻璃钢雕塑价格合理玻璃钢雕塑 重庆玻璃钢花盆栽月季南昌玻璃钢雕塑摆件厂家毕节商场美陈价格商场增加美陈的申请玻璃钢雕塑动物雕塑四川商场美陈哪里买桐乡街道玻璃钢花盆重庆景观雕塑玻璃钢长春玻璃钢动物雕塑吴鑫玻璃钢雕塑贵阳玻璃钢动物雕塑户外玻璃钢卡通雕塑价格合理广州市玻璃钢花盆厂深圳鑫泰玻璃钢花盆香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化