通常,每个人对每个商品(例如电影或音乐)都有一个心理分数,该分数表示用户对商品的满意程度。作为商品提供方,如果能够预测每个用户对商品的心理分数,就能更好地理解用户,从而提供更好的商品推荐。本文为您介绍如何使用ALS矩阵分解算法预测用户对音乐的评分。

前提条件

完成项目的创建,详情请参考创建项目

ALS算法

交替最小二乘ALS(Alternating Least Squares)算法的原理是对稀疏矩阵进行模型分解,评估缺失项的值,从而得到基本的训练模型。在协同过滤分类方面,ALS算法属于User-Item CF(Collaborative Filtering),兼顾UserItem项,也称为混合CF。

以音乐打分为例,您可以获取的原始数据是每个听众对每首歌的评分矩阵A。因为每个用户不一定听过所有歌,且每个用户不一定对每首歌进行评分,所以该评分矩阵可能是稀疏矩阵,如下图所示。原始数据矩阵AALS矩阵分解算法会将矩阵A分解为两个矩阵(矩阵X和矩阵Y)相乘。
矩阵A=矩阵X*矩阵Y的转秩
矩阵X的列和矩阵Y的行可以称为ALS因子。假设有3个因子(性格、教育程度及爱好),则矩阵A经过ALS分解得到的矩阵X如下。矩阵X矩阵A经过ALS分解得到的矩阵Y如下。矩阵Y如果需要预测听众6红豆这首歌的评分,则将听众6在矩阵X中的向量M与红豆在矩阵Y中对应的向量N相乘即可。

预测音乐评分

  1. 进入PAI-Studio控制台。
    1. 登录PAI控制台
    2. 在左侧导航栏,选择模型开发和训练 > Studio-可视化建模
    3. PAI可视化建模页面,单击进入机器学习进入机器学习
  2. 构建并运行实验。
    1. 在PAI-Studio控制台的左侧导航栏,单击首页
    2. 模板列表,单击ALS实现音乐推荐下的从模板创建
    3. 新建实验页面,配置参数(您也可以全部使用默认参数)。
      参数 描述
      名称 输入ALS实现音乐推荐
      项目 不支持修改。
      描述 输入利用ALS实现音乐的内容推荐
      位置 选择我的实验
    4. 单击确定
    5. 等待大约十秒钟,在PAI-Studio控制台的左侧导航栏,单击实验
    6. 我的实验下,单击ALS实现音乐推荐_XX,构建的实验如下图所示。
      其中我的实验为已配置的实验位置ALS实现音乐推荐_XX为已配置的实验名称_XX为系统自动添加的实验序号)。ALS实验
    7. 单击画布上方的运行
      系统已自动配置了实验的数据源和ALS矩阵分解组件的参数(单击画布中的组件,在右侧面板可以查看已配置的参数),您直接运行实验即可。
  3. 查看实验结果。
    1. 实验运行完成后,右键单击画布中的ALS矩阵分解-1,在快捷菜单,选择查看数据 > 查看输出桩1,即可查看矩阵X。输出矩阵X
    2. 右键单击画布中的ALS矩阵分解-1,在快捷菜单,选择查看数据 > 查看输出桩2,即可查看矩阵Y。输出矩阵Y
  4. 预测评分。
    如果预测user1对音乐Item978130429的评分,则将矩阵X中的向量M和矩阵Y中的向量N相乘即可。
    #向量M。
    [0.5775652527809143,0.6737191677093506,0.9059759974479675,0.9866708517074585,0.15602371096611023,0.2735472023487091,0.4610620439052582,0.5312653183937073,0.3408969044685364,1.4993919134140015]
    #向量N。
    [0.2431642860174179,0.6019538044929504,0.4035401940345764,0.254305899143219,0.4056856632232666,0.46871861815452576,0.3701469600200653,0.3757922947406769,0.26486095786094666,0.37488409876823425]