在推荐业务场景中,使用Designer提供的整套FM-Embedding方案可以快速获得User和Item对应的特征向量,您只需要在召回模块对该特征向量进行乘积,即可得到User对Item的评分结果。本文为您介绍如何使用FM算法和Embedding提取算法,快速生成User和Item的特征向量。
前提条件
已创建工作空间,详情请参见创建工作空间。
已将MaxCompute资源关联到工作空间,详情请参见管理工作空间计算资源。
背景信息
智能推荐包括召回和排序模块。召回模块中,通常使用向量分别表示User(用户)和Item(待推荐的内容),且通过User与Item的向量乘积判断User对Item的兴趣程度。该工作流基于真实的推荐场景数据,其完整业务流程已预置在Designer模板中,您仅通过拖拽组件即可快速生成User和Item的特征向量。
数据集
原始数据包括如下字段。
字段名 | 类型 | 描述 |
userid | STRING | 用户ID。 |
age | DOUBLE | 用户年龄。 |
gender | STRING | 用户性别 |
itemid | STRING | 商品ID。 |
price | DOUBLE | 商品价格。 |
size | DOUBLE | 商品大小。 |
label | DOUBLE | 目标列,含义如下:
|
工作流的原始数据示例如下。
实现推荐召回
进入Designer页面。
登录PAI控制台。
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应的工作空间。
在工作空间页面的左侧导航栏选择 ,进入Designer页面。
构建工作流。
在Designer页面,单击预置模板页签。
在模板列表,单击使用FM-Embedding实现推荐召回下的创建。
在新建工作流对话框,配置参数(可以全部使用默认参数)。
其中:工作流数据存储配置为OSS Bucket路径,用于存储工作流运行中产出的临时数据和模型。
单击确定。
您需要等待大约十秒钟,工作流可以创建成功。
系统根据预置的模板,自动构建工作流,如下图所示。
区域
描述
①
针对全量特征的One-Hot编码。One-hot编码可以将字符型数据转换为数值型,该FM-Embedding工作流中,onehot编码-1组件先对全量数据进行One-Hot编码,再将生成的编码模型输入至onehot编码-2和onehot编码-3组件。
②
生成FM模型。您可以单击该组件,在右侧的参数设置页签,查看系统已配置的默认参数。其中维度(默认值为1,1,10)的第三个参数(默认值中的10)表示生成的Embedding维度。
③
生成User特征编码。该组件的输入(选择二值化列)为userid、gender及age,附加列为userid。
④
生成Item特征编码。该组件的输入(选择二值化列)为itemid、price及size,附加列为itemid。
⑤
提取Item-Embedding。该组件的参数含义如下:
Embedding向量的id列名:FM训练中的模型feature_id。
Embedding向量列名:FM训练中的模型feature_weights。
权重向量列名:One-Hot编码对应的稀疏化数据列。
输出结果列名:输出的Embedding字段名。
运行工作流并查看输出结果。
单击画布上方的按钮。
工作流运行结束后,右键单击画布中的Embedding提取-1,在快捷菜单,单击 ,即可查看User特征向量。
右键单击画布中的Embedding提取-2,在快捷菜单,单击 ,即可查看Item特征向量。