FM(Factorization Machine)算法兼顾特征之间的相互作用,是一种非线性模型, 适用于电商、广告及直播等推荐场景。PAI-Designer使用FM训练、FM预测及评估组件预置了FM算法模板,您可以使用该算法模板构建基于Alink框架的FM推荐模型。 本文为您介绍如何通过PAI-Designer预置的FM算法模板,快速构建推荐模型。
操作步骤
-
进入PAI-Designer页面。
-
登录PAI控制台。
-
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
-
在工作空间页面的左侧导航栏选择模型开发与训练 > 可视化建模(Designer),进入Designer页面。
-
- 构建工作流。
- 在PAI-Designer页面,单击预置模板页签。
- 在模板列表,单击基于Alink框架的FM推荐下的创建。
- 在新建工作流对话框,配置参数(可以全部使用默认参数)。其中:工作流数据存储配置为OSS Bucket路径,用于存储工作流运行中产出的临时数据和模型。
- 单击确定。您需要等待大约十秒钟,工作流可以创建成功。
- 在工作流列表,选择基于Alink框架的FM推荐工作流,单击进入工作流。在工作流页面,创建成功的工作流模板如下图所示。
上图工作流模板提供了以下两种方式来调用Alink算法进行FM训练和预测。
- 方式一:使用封装好的FM训练组件和FM预测组件进行训练和预测。
FM训练组件和FM预测组件属于Alink框架的算法组件,在组件左上角使用紫色的小点进行标识。Alink框架的算法组件支持合并运行,具体的使用方法及优劣势,详情请参见高级功能:Alink组件成组执行。
- 方式二:使用PyAlink进行FM训练和预测。
使用自定义算法PyAlink组件通过Python代码实现和方式一相同的功能。关于PyAlink组件支持的Operator的更多内容,详情请参见Alink介绍。
- 方式一:使用封装好的FM训练组件和FM预测组件进行训练和预测。
- 配置FM训练-1组件参数。
- 单击工作流中的FM训练-1组件。
- 在右侧的字段设置页签,配置参数。
参数 描述 特征列 特征数据的格式为key:value,多个特征以半角逗号(,)分隔。 标签列 仅支持DOUBLE类型。 PAI-Designer提供的FM算法仅支持LibSVM格式数据(针对其他格式数据,可以通过one-hot编码组件将其转化为LibSVM格式数据,详情请参见one-hot编码),且输入数据必须包括特征列和标签列,如下图所示。
- 在右侧的参数设置和执行调优页签,配置训练参数。针对1.2亿条样本数据、130万特征数据场景,建议参考如下表格进行参数配置,其他参数使用默认值。您可以结合实际数据量级,适当地调整训练参数。
页签 参数 描述 参数设置 学习率 建议配置为0.005。如果训练发散,则适当减小该参数值。 维度 建议配置为1,1,16。 数据块大小 - 如果特征数据量小于200万,则建议配置为1000000。
- 如果特征数据量大于200万,则无需手动配置。
执行调优 节点个数 建议配置为32。如果数据量超大,则适当增大该参数值。 单个节点内存大小,单位M 建议配置为16384 MB。
- PyAlink-FM训练组件和PyAlink-FM预测组件的代码配置,具体如下所示。
- PyAlink-FM训练组件代码配置。
from pyalink.alink import *def main(sources, sinks, parameter): print('start') # 算法调用方式1。 # train = HugeFmTrainBatchOp().setVectorCol('features').setLabelCol('label').linkFrom(sources[0]) # 算法调用方式2。 train = HugeFmTrainBatchOp( vectorCol='features', labelCol='label', task='binary_classification', numEpochs=10) # 从输入端口0获取训练数据,训练完的模型通过输出端口0向下传递。 sources[0].link(train).link(sinks[0]) BatchOperator.execute() print('end')
- PyAlink-FM预测组件代码配置。
from pyalink.alink import *def main(sources, sinks, parameter): predictor = HugeFmPredictBatchOp().setPredictionCol("prediction_result")\ .setPredictionDetailCol("prediction_detail").setReservedCols(["label"]) output = predictor.linkFrom(sources[0], sources[1]) # 将预测结果通过第一个输出port向下游透传。 output.link(sinks[0]) BatchOperator.execute() print('predict end')
- PyAlink-FM训练组件代码配置。
- 单击画布上方的运行。
- 任务运行完成后,右键单击工作流中的二分类评估组件,在快捷菜单,单击可视化分析。基于预置模板案例的数据,PAI-Designer FM算法生成模型的AUC值约为0.92。
- 使用方式一生成的评估图表。
- 使用方式二生成的评估图表。
- 使用方式一生成的评估图表。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/165149.html