在推荐业务场景中,使用PAI-Designer提供的整套FM-Embedding方案可以快速获得User和Item对应的特征向量,您只需要在召回模块对该特征向量进行乘积,即可得到User对Item的评分结果。本文为您介绍如何使用FM算法和Embedding提取算法,快速生成User和Item的特征向量。

前提条件

已创建工作空间,详情请参见创建工作空间

背景信息

智能推荐包括召回和排序模块。召回模块中,通常使用向量分别表示User(用户)和Item(待推荐的内容),且通过User与Item的向量乘积判断User对Item的兴趣程度。该工作流基于真实的推荐场景数据,其完整业务流程已预置在PAI-Designer模板中,您仅通过拖拽组件即可快速生成User和Item的特征向量。

数据集

原始数据包括如下字段。
字段名 类型 描述
userid STRING 用户ID。
age DOUBLE 用户年龄。
gender STRING 用户性别
itemid STRING 商品ID。
price DOUBLE 商品价格。
size DOUBLE 商品大小。
label DOUBLE 目标列,含义如下:
  • 1:表示购买。
  • 0:表示未购买。
工作流的原始数据示例如下。 原始数据

实现推荐召回

  1. 进入PAI-Designer页面。
    1. 登录PAI控制台
    2. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
    3. 在工作空间页面的左侧导航栏选择模型开发和训练 > 可视化建模(PAI-Designer),进入Designer页面。
  2. 构建工作流。
    1. 在PAI-Designer页面,单击预置模板页签。
    2. 模板列表,单击使用FM-Embedding实现推荐召回下的创建
    3. 新建工作流对话框,配置参数(可以全部使用默认参数)。
      其中: 工作流数据存储配置为OSS Bucket路径,用于存储工作流运行中产出的临时数据和模型。
    4. 单击确定
      您需要等待大约十秒钟,工作流可以创建成功。
    5. 系统根据预置的模板,自动构建工作流,如下图所示。
      推荐召回实验
      区域 描述
      针对全量特征的One-Hot编码。One-hot编码可以将字符型数据转换为数值型,该FM-Embedding工作流中,onehot编码-1组件先对全量数据进行One-Hot编码,再将生成的编码模型输入至onehot编码-2onehot编码-3组件。
      生成FM模型。您可以单击该组件,在右侧的参数设置页签,查看系统已配置的默认参数。其中维度(默认值为1,1,10)的第三个参数(默认值中的10)表示生成的Embedding维度。
      生成User特征编码。该组件的输入(选择二值化列)为useridgenderage附加列userid
      生成Item特征编码。该组件的输入(选择二值化列)为itemidpricesize附加列itemid
      提取Item-Embedding。该组件的参数含义如下:
      • Embedding向量的id列名:FM训练中的模型feature_id
      • Embedding向量列名:FM训练中的模型feature_weights
      • 权重向量列名:One-Hot编码对应的稀疏化数据列。
      • 输出结果列名:输出的Embedding字段名。
  3. 运行工作流并查看输出结果。
    1. 单击画布上方的运行
    2. 工作流运行结束后,右键单击画布中的Embedding提取-1,在快捷菜单,单击查看数据 > 输出,即可查看User特征向量。User特征向量
    3. 右键单击画布中的Embedding提取-2,在快捷菜单,单击查看数据 > 输出,即可查看Item特征向量。Item特征向量