为 SVD 推荐器评分

本文介绍如何在 Azure 机器学习设计器中使用“为 SVD 推荐器评分”组件。 使用此组件可以基于奇异值分解 (SVD) 算法,通过经训练的推荐模型创建预测。

SVD 推荐器可生成两种不同类型的预测:

创建第二种类型的预测时,可在以下任一模式下进行操作:

  • 生产模式会考虑所有用户或项目。 它通常用于 Web 服务。

    可以为其创建评分的对象不仅仅是在训练过程中显示的用户,也可以是新用户。 有关详细信息,请参阅技术说明

  • 评估模式针对可评估的精简用户或项目集进行操作。 它通常用于管道操作。

有关 SVD 推荐器算法的详细信息,请参阅推荐器系统的矩阵分解技术

“为 SVD 推荐器评分”的配置方法

此组件支持两种类型的预测,每种类型都有不同的要求。

评级预测

预测评级时,该模型会根据训练数据计算用户对特定项目的反应。 用于进行评分的输入数据必须同时提供用户和要评分的项目。

  1. 将已训练的建议模型添加到管道,并将其连接到已训练的 SVD 推荐器。 必须使用训练 SVD 推荐器组件来创建模型。

  2. 对于“推荐器预测类型”,请选择“评级预测”。 无需其他任何参数。

  3. 添加要对其进行预测的数据,并将其连接到要进行评分的数据集

    要为模型预测评级,输入数据集必须包含用户-项目对。

    数据集可以选择包含第三列,用于第一列和第二列中的用户-项目对的评级。 但在预测过程中将忽略第三列。

  4. 提交管道。

评级预测的结果

输出数据集包含三列:用户、项目以及每个输入用户和项目的预测评级。

向用户推荐

要向用户推荐项目,请提供用户和项目列表作为输入。 在此数据中,该模型利用其关于现有项目和用户的知识来生成可能对每个用户都具有吸引力的项目列表。 可自定义返回的建议数。 并且可以为生成建议所需的以前的建议数设置阈值。

  1. 将已训练的建议模型添加到管道,并将其连接到已训练的 SVD 推荐器。 必须使用训练 SVD 推荐器组件来创建模型。

  2. 要向用户列表推荐项目,请将“推荐器预测类型”设置为“项目建议”

  3. 对于“推荐项选择”,请指示是要在生产中使用评分组件,还是要将其用于模型评估。 请选择以下任一值:

    • 从所有项目:如果设置要在 Web 服务或生产中使用的管道,请选择此选项。 此选项会启用“生产模式”。 该组件将从训练期间看到的所有项中进行推荐。

    • 从评级项目(用于模型评估) :如果要开发或测试模型,请选择此选项。 此选项会启用“评估模式”。 该组件仅从输入数据集中已评级的那些项中进行推荐。

    • 从未评级项目(用于向用户推荐新项目):如果希望组件仅从训练数据集中那些尚未评级的项中进行推荐,请选择此选项。

  4. 添加要对其进行预测的数据集,并将其连接到要进行评分的数据集

    • 对于“从所有项目”,输入数据集应包含一列。 该列包含要为其提出建议的用户的标识符。

      数据集可以包含额外的两列,分别为项目标识符和评级,但这两列将被忽略。

    • 对于“从评级项目(用于模型评估)”,输入数据集应包含用户-项目对。 第一列应包含用户标识符。 第二列应包含相应的项标识符。

      数据集可以包含第三列(用户-项目评级),但此列将被忽略。

    • 对于“从未评级项目(用于向用户推荐新项目)”,输入数据集应包含用户-项目对。 第一列应包含用户标识符。 第二列应包含相应的项标识符。

    数据集可以包含第三列(用户-项目评级),但此列将被忽略。

  5. 向用户推荐的最大项目数:输入要针对每个用户返回的项目数。 默认情况下,组件建议五项。

  6. 每个用户的建议池的最小大小:输入一个值,该值指示所需的以前的建议数。 默认情况下,此参数设置为 2,这意味着至少有其他两个用户推荐了该项目。

    仅当在评估模式下进行评分时才使用此选项。 如果选择“从所有项目”或“从未评级项目(用于向用户推荐新项目)”,则此选项不可用

  7. 对于“从未评级项目(用于向用户推荐新项目)”,请使用名为“训练数据”的第三个输入端口来删除预测结果中已评级的项目 。

    要应用此筛选器,请将原始训练数据集连接到该输入端口。

  8. 提交管道。

项目建议的结果

“为 SVD 推荐器评分”返回的已评分数据集会列出每个用户的建议项目:

  • 第一列包含用户标识符。
  • 根据“向用户推荐的最大项目数”部分设置的值,将生成多个其他列。 每列都包含一个推荐项目(按标识符排列)。 这些建议项目按用户-项目相关性排序。 具有最高相关性的项目放在“项目 1”列中

技术说明

如果具有一个带有 SVD 推荐器的管道,并将该模型移动到生产环境中,请注意,在评估模式中使用该推荐器和在生产模式中使用该推荐器之间存在一些主要区别。

根据定义,评估需要可以在测试集中根据基本事实进行验证的预测。 评估推荐器时,它必须只预测在测试集中已评级的项目。 这会限制预测的可能值。

操作模型时,通常会更改预测模式,以根据所有可能的项目提出建议,从而获得最佳预测。 对于其中许多预测,并没有相应的基本事实。 因此,无法以在管道操作中的相同方式验证建议的准确性。

后续步骤

请参阅 Azure 机器学习可用的组件集