ALS算法实现用户音乐打分预测

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 很多人在决定是否看一部电影之前都会去豆瓣看下评分作为参考,看完电影也会给一个自己的分数。每个人对每个商品或者电影或是音乐都有一个心理的分数,这个分数标明用户是否对这个内容满意。作为内容的提供方,如果可以预测出每个用户对于内容的心理分数,就能更好的理解用户,并给用户提供好的内容推荐。

很多人在决定是否看一部电影之前都会去豆瓣看下评分作为参考,看完电影也会给一个自己的分数。每个人对每个商品或者电影或是音乐都有一个心理的分数,这个分数标明用户是否对这个内容满意。作为内容的提供方,如果可以预测出每个用户对于内容的心理分数,就能更好的理解用户,并给用户提供好的内容推荐。今天就介绍下如何通过ALS矩阵分解算法实现用户对于音乐或者电影的评分预测。

ALS算法介绍

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

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

我们通过音乐打分这个案例介绍下交替最小二乘法的原理,首先拿到的原始数据是每个听众对每首歌的评分矩阵A,这个评分可能是非常稀疏的,因为不是每个用户都听过所有的歌,也不是每个用户都会对每首歌评分。

ALS矩阵分解会把矩阵A分解成两个矩阵的相乘,分别是X矩阵和Y矩阵,

矩阵A=矩阵X和矩阵Y的转秩的乘积

x的列表示和Y的横表示可以称之为ALS中的因子,这个因子是有隐含定义的,这里假设有3个因子,分别是性格、教育程度、爱好。A矩阵经过ALS分解出的X、Y矩阵可以分别表示成:

(上图为x矩阵)

(上图为Y矩阵)

数据经过这样的拆解就很容易做用户对音乐的评分预测。比如有听众6,他从没听过“红豆“这首歌,但是我们可以拿到听众6在矩阵分解中X矩阵的向量M,这时候只有把向量M和”红豆“在Y矩阵中的对应向量N相乘,就能预测出听众6对于”红豆“这首歌的评分。

ALS在PAI实验

现在在PAI上面对ALS算法案例进行实验。整体流程只需要包含输入数据源和ALS矩阵分解组件即可。本案例已经集成于PAI-STUDIO首页模板:

创建后如图:

1.数据源

输入数据源包含4个字段

  • User:用户ID
  • Item:音乐ID
  • score:user对item的评分

2.ALS矩阵分解

需要设置3个对应字段,

参数名称 参数描述 取值范围 是否必选,默认值
userColName user列名 列的类型必须是bigint,可以不连续编号 必选
itemColName item列名 列的类型必须是bigint,可以不连续编号 必选
rateColName 打分列名 列的类型必须是数值类型 必选
numFactors 因子数 正整数 可选,默认值100
numIter 迭代数 正整数 可选,默认值10
lambda 正则化系数 浮点数 可选,默认值0.1
implicitPref 是否采用隐式偏好模型 布尔型 可选,默认值false
alpha 隐式偏好系数 浮点数,大于0 可选,默认值40

3.结果分析

本案例中会输出2张表,对应ALS算法介绍中说的X矩阵和Y矩阵。

X矩阵表如图:

Y矩阵表如图:

比如要预测user1对音乐item994556636的评分,只要将下方两个向量相乘即可

  • User1:[-0.14220297,0.8327106,0.5352268,0.6336995,1.2326205,0.7112976,0.9794858,0.8489773,0.330319,0.7426911]
  • item994556636:[0.71699333,0.5847747,0.96564907,0.36637592,0.77271074,0.52454436,0.69028413,0.2341857,0.73444265,0.8352135]
相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
目录
相关文章
|
搜索推荐 算法 前端开发
音乐推荐与管理系统Python+Django网页界面+协同过滤推荐算法
音乐推荐与管理系统Python+Django网页界面+协同过滤推荐算法
129 1
音乐推荐与管理系统Python+Django网页界面+协同过滤推荐算法
|
6月前
|
传感器 算法
esp32使用fft算法显示音乐频谱
esp32使用fft算法显示音乐频谱
165 0
|
搜索推荐 算法 数据挖掘
# 【推荐系统入门到项目实战】(三):矩阵分解和ALS算法
# 【推荐系统入门到项目实战】(三):矩阵分解和ALS算法
# 【推荐系统入门到项目实战】(三):矩阵分解和ALS算法
|
3月前
|
搜索推荐 前端开发 算法
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
本文介绍了一个基于用户画像和协同过滤算法的音乐推荐系统,使用Django框架、Bootstrap前端和MySQL数据库构建,旨在为用户提供个性化的音乐推荐服务,提高推荐准确性和用户满意度。
269 7
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
|
6月前
|
搜索推荐 算法
音乐推荐系统协同过滤算法解释
音乐推荐系统协同过滤算法解释
100 1
|
机器学习/深度学习 分布式计算 算法
推荐系统入门之使用ALS算法实现打分预测
本场景介绍如何使用ALS算法实现用户音乐打分预测。
|
机器学习/深度学习 搜索推荐 算法
推荐系统[八]算法实践总结V0:腾讯音乐全民K歌推荐系统架构及粗排设计
推荐系统[八]算法实践总结V0:腾讯音乐全民K歌推荐系统架构及粗排设计
推荐系统[八]算法实践总结V0:腾讯音乐全民K歌推荐系统架构及粗排设计
|
机器学习/深度学习 搜索推荐 算法
基于协同过滤算法的电影推荐系统设计(二) - ALS算法详解
基于协同过滤算法的电影推荐系统设计(二) - ALS算法详解
371 0
基于协同过滤算法的电影推荐系统设计(二) - ALS算法详解
|
移动开发 算法 Python
ML之RS之MF:基于简单的张量分解MF算法进行打分和推荐
ML之RS之MF:基于简单的张量分解MF算法进行打分和推荐
ML之RS之MF:基于简单的张量分解MF算法进行打分和推荐
|
机器学习/深度学习 人工智能 分布式计算
推荐系统入门之使用ALS算法实现打分预测
场景将基于机器学习PAI平台,指导您如何使用ALS算法实现用户音乐打分预测。
推荐系统入门之使用ALS算法实现打分预测

热门文章

最新文章

下一篇
无影云桌面