简介
场景将基于机器学习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.使用阿里云账号登录阿里云官网。
- 在顶部的导航栏,依次将鼠标悬停到产品>人工智能处,然后单击机器学习平台PAI。
- 在机器学习PAI控制台首页,单击立即开通。
- 在服务开通页面,选择要开通的机器学习PAI服务所在的区域,例如华东2(上海),然后单击页面下方的立即购买。
- 在订单确认页面,仔细阅读《机器学习(PAI)服务协议》后,勾选我已阅读并同意,最后单击立即开通。
- 开通成功后,单击前往PAI管理控制台。
创建PAI Studio项目
1.在控制台左侧导航栏,单击可视化建模(Studio)。
- 在PAI Studio页面单击创建项目。
- 在右侧弹出的创建项目页面,MaxCompute选择按量付费,填入项目名称,然后单击确定。
PAI Studio底层计算依赖MaxCompute,如果您未开通过当前区域的MaxCompute,请按照页面提示去购买。
a. 单击购买。
b. 选择步骤一开通的机器学习PAI服务所在区域,例如华东2(上海),然后单击立即购买。
c. 仔细阅读《大数据计算服务MaxCompute(按量计算)服务协议》后,勾选我已阅读并同意,最后单击立即开通。
d. 开通成功后返回PAI Studio控制台页面,再次单击创建项目,在创建项目页面选择MaxCompute付费方式为按量付费,然后填入项目名称,最后单击确认。
- 项目创建需要1分钟左右进行初始化,等待项目操作列出现进入机器学习,表示项目创建完成。
创建实验
1.单击左侧导航栏的首页。
- 在模板列表找到ALS实现音乐推荐,然后单击从模板创建。
- 在弹出的新建实验框,单击确定。
查看实验模板
在该模板中已经默认配置了实验的数据源和ALS矩阵分解组件的参数。
1.右键单击数据源节点,然后单击查看数据。
显示的数据如下。
该数据源包含4个字段,其中:
user:用户ID。
item:音乐ID。
score:user对item的评分。
- 单击ALS矩阵分解-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。