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

背景信息

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

数据集

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

实现推荐召回

  1. 进入PAI-Studio控制台。
    1. 登录PAI控制台
    2. 在左侧导航栏,选择模型开发和训练 > Studio-可视化建模
    3. PAI可视化建模页面,单击进入机器学习进入机器学习
  2. 构建实验。
    1. 在PAI-Studio控制台的左侧导航栏,单击首页
    2. 模板列表,单击推荐场景-FM向量召回下的从模板创建
    3. 新建实验对话框,配置参数(可以全部使用默认参数)。
      参数 描述
      名称 输入推荐场景-FM向量召回
      项目 不支持修改。
      描述 输入基于FM-Embedding的推荐召方案。
      位置 选择我的实验
    4. 单击确定
    5. 可选:等待大约十秒钟,在PAI-Studio控制台的左侧导航栏,单击实验
    6. 可选:我的实验下,单击【推荐算法】商品推荐_XX
      其中我的实验为已配置的实验位置【推荐算法】商品推荐_XX为已配置的实验名称_XX为系统自动添加的实验序号)。
    7. 系统根据预置的模板,自动构建实验,如下图所示。
      推荐召回实验
      区域 描述
      针对全量特征的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特征向量