推荐系统入门之使用ALS算法实现打分预测

简介: 场景将基于机器学习PAI平台,指导您如何使用ALS算法实现用户音乐打分预测。

简介

场景将基于机器学习PAI平台,指导您如何使用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对于”红豆“这首歌的评分。

开通机器学习PAI服务

说明:本场景使用的机器学习PAI服务依赖于MaxCompute大数据计算服务,在运行实验时将会消耗大约2.5元的计算费用,请确保您的账户余额充足。

1.使用阿里云账号登录阿里云官网
在这里插入图片描述

  1. 在顶部的导航栏,依次将鼠标悬停到产品>人工智能处,然后单击机器学习平台PAI。

在这里插入图片描述

  1. 在机器学习PAI控制台首页,单击立即开通。

在这里插入图片描述

  1. 在服务开通页面,选择要开通的机器学习PAI服务所在的区域,例如华东2(上海),然后单击页面下方的立即购买。

在这里插入图片描述

  1. 在订单确认页面,仔细阅读《机器学习(PAI)服务协议》后,勾选我已阅读并同意,最后单击立即开通。

在这里插入图片描述

  1. 开通成功后,单击前往PAI管理控制台。

在这里插入图片描述

创建PAI Studio项目

1.在控制台左侧导航栏,单击可视化建模(Studio)。
在这里插入图片描述

  1. 在PAI Studio页面单击创建项目。

在这里插入图片描述

  1. 在右侧弹出的创建项目页面,MaxCompute选择按量付费,填入项目名称,然后单击确定。

PAI Studio底层计算依赖MaxCompute,如果您未开通过当前区域的MaxCompute,请按照页面提示去购买。

a.  单击购买。

在这里插入图片描述

b.  选择步骤一开通的机器学习PAI服务所在区域,例如华东2(上海),然后单击立即购买。

在这里插入图片描述

c.  仔细阅读《大数据计算服务MaxCompute(按量计算)服务协议》后,勾选我已阅读并同意,最后单击立即开通。

在这里插入图片描述

d.  开通成功后返回PAI Studio控制台页面,再次单击创建项目,在创建项目页面选择MaxCompute付费方式为按量付费,然后填入项目名称,最后单击确认。

在这里插入图片描述

  1. 项目创建需要1分钟左右进行初始化,等待项目操作列出现进入机器学习,表示项目创建完成。

在这里插入图片描述

创建实验

1.单击左侧导航栏的首页。
在这里插入图片描述

  1. 在模板列表找到ALS实现音乐推荐,然后单击从模板创建。

在这里插入图片描述

  1. 在弹出的新建实验框,单击确定。

在这里插入图片描述

查看实验模板

在该模板中已经默认配置了实验的数据源和ALS矩阵分解组件的参数。

1.右键单击数据源节点,然后单击查看数据。
在这里插入图片描述
显示的数据如下。
在这里插入图片描述
该数据源包含4个字段,其中:

user:用户ID。
item:音乐ID。
score:user对item的评分。

  1. 单击ALS矩阵分解-1节点,右侧显示如下,可以看到字段设置已设置为与数据源中的字段一致。

在这里插入图片描述

  1. 单击右侧的参数设置,可以看到模板中默认的算法参数。

在这里插入图片描述

运行实验

1 单击左上角运行。
在这里插入图片描述

  1. 请耐心等待3~5分钟,实验运行完成如下所示。

在这里插入图片描述

查看实验结果

本实验中会输出2张表,对应ALS算法中的X矩阵和Y矩阵。

1.实验运行完成后,右键单击画布中的ALS矩阵分解-1,在快捷菜单,选择查看数据 > 查看输出桩1,即可查看矩阵X。
在这里插入图片描述2. 右键单击画布中的ALS矩阵分解-1,在快捷菜单,选择查看数据 > 查看输出桩2,即可查看矩阵Y。
在这里插入图片描述
预测评分
例如要预测user1对音乐978130429的评分,只要将下方两个向量相乘即可。

user1:[-0.14220297,0.8327106,0.5352268,0.6336995,1.2326205,0.7112976,0.9794858,0.8489773,0.330319,0.7426911]
item978130429:[0.2431642860174179,0.6019538044929504,0.4035401940345764,0.254305899143219,0.4056856632232666,0.46871861815452576,0.3701469600200653,0.3757922947406769,0.26486095786094666,0.37488409876823425]
经计算,两个向量相乘的结果为2.7247730805432644,可以预测user1对音乐978130429的评分为2.7247730805432644。

相关实践学习
使用PAI+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
3月前
|
存储 算法
算法入门:专题二---滑动窗口(长度最小的子数组)类型题目攻克!
给定一个正整数数组和目标值target,找出总和大于等于target的最短连续子数组长度。利用滑动窗口(双指针)优化,维护窗口内元素和,通过单调性避免重复枚举,时间复杂度O(n)。当窗口和满足条件时收缩左边界,更新最小长度,最终返回结果。
|
4月前
|
机器学习/深度学习 人工智能 搜索推荐
从零构建短视频推荐系统:双塔算法架构解析与代码实现
短视频推荐看似“读心”,实则依赖双塔推荐系统:用户塔与物品塔分别将行为与内容编码为向量,通过相似度匹配实现精准推送。本文解析其架构原理、技术实现与工程挑战,揭秘抖音等平台如何用AI抓住你的注意力。
1094 7
从零构建短视频推荐系统:双塔算法架构解析与代码实现
|
3月前
|
存储 算法
算法入门:专题一:双指针(有效三角形的个数)
给定一个数组,找出能组成三角形的三元组个数。利用“两边之和大于第三边”的性质,先排序,再用双指针优化。固定最大边,左右指针从区间两端向内移动,若两短边之和大于最长边,则中间所有组合均有效,时间复杂度由暴力的O(n³)降至O(n²)。
|
3月前
|
存储 算法 编译器
算法入门:剑指offer改编题目:查找总价格为目标值的两个商品
给定递增数组和目标值target,找出两数之和等于target的两个数字。利用双指针法,left从头、right从尾向中间逼近,根据和与target的大小关系调整指针,时间复杂度O(n),空间复杂度O(1)。找不到时返回{-1,-1}。
|
6月前
|
机器学习/深度学习 数据采集 算法
你天天听“数据挖掘”,可它到底在“挖”啥?——数据挖掘算法入门扫盲篇
你天天听“数据挖掘”,可它到底在“挖”啥?——数据挖掘算法入门扫盲篇
138 0
|
10月前
|
机器学习/深度学习 算法 机器人
强化学习:时间差分(TD)(SARSA算法和Q-Learning算法)(看不懂算我输专栏)——手把手教你入门强化学习(六)
本文介绍了时间差分法(TD)中的两种经典算法:SARSA和Q-Learning。二者均为无模型强化学习方法,通过与环境交互估算动作价值函数。SARSA是On-Policy算法,采用ε-greedy策略进行动作选择和评估;而Q-Learning为Off-Policy算法,评估时选取下一状态中估值最大的动作。相比动态规划和蒙特卡洛方法,TD算法结合了自举更新与样本更新的优势,实现边行动边学习。文章通过生动的例子解释了两者的差异,并提供了伪代码帮助理解。
766 2
|
机器学习/深度学习 算法 搜索推荐
django调用矩阵分解推荐算法模型做推荐系统
django调用矩阵分解推荐算法模型做推荐系统
199 4
|
机器学习/深度学习 算法 API
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
|
机器学习/深度学习 算法 大数据
机器学习入门:梯度下降算法(下)
机器学习入门:梯度下降算法(下)
|
机器学习/深度学习 算法
机器学习入门:梯度下降算法(上)
机器学习入门:梯度下降算法(上)