推荐召回方案支持推荐召回场景的自动模型训练、超参优化及模型评估。本文将推荐召回的协同过滤策略与PAI-Designer推荐算法搭配使用,构建完整的召回流程。
使用限制
使用协同过滤召回策略,需要将User-item和Item-item对应的数据分别导入至表格存储OTS(Tablestore),且每张表必须满足如下要求:
- User-item数据表存储用户对商品的历史行为。例如购买、单击或收藏。
- user_id:用户ID。
- item_id:商品ID。
- active_type:行为。0表示单击,1表示购买,2表示收藏。
- Item-item数据表存储通过协同过滤算法计算得到的item相似度。
- item_id:目标商品。
- similar_item_ids:key:value结构,其中key表示商品ID,value表示该商品与目标商品的关系。value值越大,表示关系越紧密。多个key:value数据以英文逗号(,)分隔。
操作流程
通过推荐召回的协同过滤策略和PAI-Designer推荐算法的结合,构建推荐召回的流程如下:
- 步骤一:生成训练数据
使用PAI-Designer构建实验,生成训练数据。
- 步骤二:将数据导入至OTS
按照数据格式的要求,将训练数据导入至OTS中。关于数据格式的要求,请参见使用限制。
- 步骤三:创建实例
创建用于推荐召回的实例。
- 步骤四:配置召回策略
配置召回策略,从海量的待推荐数据中缩小待推荐物品的范围。
- 步骤五:测试并部署模型
系统根据召回策略将推荐方案自动配置成在线测试服务,测试通过后可以将该方案部署到PAI-EAS。
步骤一:生成训练数据
- 进入PAI-Designer页面。
- 登录PAI控制台。
- 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
- 在工作空间页面的左侧导航栏选择 ,进入Designer页面。
- 构建实验。
- 在画布中,保留如下组件,删除多余组件。
读数据表为user-item对应数据,协同过滤etrec组件为Item-item对应数据。
- 单击协同过滤etrec组件,在右侧参数设置页签,配置TopN为5(对于每个item返回5个相关item)。
- 在左侧组件列表,将源/目标下的写数据表组件两次拖入画布,选中该组件,在右侧表选择页签,将表名参数分别配置为user_item_data和item_item_data。同时将组件分别重命名为user_item_data和item_item_data。
- 将读数据表组件的输出与user_item_data连接,将协同过滤etrec组件的输出与item_item_data相连。
- 单击画布上方的运行。
步骤二:将数据导入至OTS
PAI-Designer生成的数据存储在MaxCompute,需要将该数据导入至OTS,才能供推荐召回方案使用。
- 创建OTS数据表,详情请参见创建数据表。
- 使用DataWorks将数据导入至OTS。
- 查看OTS数据导入情况。
步骤三:创建实例
步骤四:配置召回策略
- 在推荐召回方案页面,单击目标推荐召回实例操作列下的打开。
- 在协同过滤召回页签,配置参数。
参数 描述 策略名称 输入pai_rec。 User-Item数据表 选择OTS中对应的user-item表。 Item-Item数据表 选择OTS中对应的item-item表。 召回数量 输入100。 - 单击添加到策略列表。
- 单击下一步。
步骤五:测试并部署模型
- 在数据过滤策略配置页面,单击部署并测试。
- 在部署确认对话框,确认召回策略和过滤策略,并单击确认。
- 在测试模块区域,输入测试数据中的某UserID,并在召回结果数量文本框输入10。
- 单击发送测试请求。
- 在调试信息区域,查看返回的推荐内容。如果对模型结果满意,单击前往EAS部署,将服务部署到PAI-EAS,形成RESTful请求。关于如何将服务部署至PAI-EAS,请参见控制台上传部署。