FM(Factorization Machine)算法兼顾特征之间的相互作用,是一种非线性模型,适用于电商、广告及直播的推荐场景。
组件配置
Designer提供的FM算法模板包括FM训练和FM预测组件,您可以在原PAI-Studio控制台首页的FM算法实现推荐模型区域,单击从模板创建;或在Designer控制台工作流模板的基于Alink框架的FM推荐区域,单击创建,快速构建FM实验。
您可以使用以下任意一种方式,配置FM算法组件参数。
方式一:可视化方式
在Designer工作流页面配置组件参数。
组件 | 页签 | 参数 | 描述 |
FM训练 | 字段设置 | 特征列 | 根据输入数据表的特征选择特征列。支持STRING和DOUBLE类型的数据。 |
标签列 | 根据输入数据表的特征选择标签列。仅支持DOUBLE类型。 | ||
高级选项 | 仅在Designer控制台,需要配置该参数。 如果选中高级选项复选框,则Flink配置项生效。 | ||
Flink配置项 | 仅在Designer控制台,需要配置该参数。 配置Flink计算引擎,详情请参见Flink配置。 | ||
参数设置 | 任务类型 | 支持以下取值:
| |
迭代数 | 总训练迭代次数,默认为10。 | ||
正则化系数 | 使用英文逗号(,)分隔的三个浮点数,分别表示0阶项、1阶项及2阶项的正则化系数。 | ||
学习率 | 如果训练发散,则降低该参数取值。 | ||
参数初始化标准差 | 参数初始化的标准差,用来归一化数据。DOUBLE类型,默认为0.05。 | ||
维度 | 使用英文逗号(,)分隔的三个正整数,分别表示0阶项、1阶项、2阶项长度。 | ||
数据块大小 | 性能参数。 | ||
输出表生命周期 | 仅在原PAI-Studio控制台,需要配置该参数。 输出表的生命周期。 | ||
执行调优 | 节点个数 | 与单个节点内存大小配合使用。取值范围为1~9999。 | |
单个节点内存大小 | 与节点个数配合使用。取值范围为1024 MB~64*1024 MB。 | ||
FM预测 | 参数设置 | 预测结果列名 | 预测结果列的名称。 |
预测得分列名 | 仅在原PAI-Studio控制台,需要配置该参数。 预测得分列的名称。 无。 | ||
详细预测信息列名 | 详细预测信息列的名称。 | ||
保持列 | 保存至输出结果表的列。 | ||
高级选项 | 仅在Designer控制台,需要配置该参数。 如果选中高级选项复选框,则每个Worker预测使用的线程数目、模型大小类型生效。 | ||
每个Worker预测使用的线程数目 | 每个Worker下预测使用的线程数目,默认为1。 | ||
模型大小类型 | 模型的大小类型,支持以下取值:
| ||
执行调优 | 节点个数 | 与单个节点内存大小配合使用。取值范围为1~9999。 | |
单个节点内存大小 | 与节点个数配合使用。取值范围为1024 MB~64*1024 MB。 |
方式二:PAI命令方式
组件 | 参数 | 是否必选 | 描述 | 默认值 |
FM训练 | tensorColName | 是 | 特征列名称。 数据格式为key:value,多个特征使用英文逗号(,)分隔。例如1:1.0,3:1.0。 | 无 |
labelColName | 是 | label列名。数据必须是数值类型。如果task取值为binary_classification,则label只能取0或1。 | 无 | |
task | 是 | 任务类型。取值范围为{regression,binary_classification}。 | regression | |
numEpochs | 否 | 迭代数。 | 10 | |
dim | 否 | 使用英文逗号(,)分隔的三个整数,分别表示0次项、线性项及二次项的长度。 | 1,1,10 | |
learnRate | 否 | 学习率。 说明 如果训练发散,则降低学习率。 | 0.01 | |
lambda | 否 | 使用英文逗号(,)分隔的三个浮点数,分别表示0次项、线性项及二次项的正则化系数。 | 0.01,0.01,0.01 | |
initStdev | 否 | 参数初始化标准差。 | 0.05 | |
FM预测 | predResultColName | 否 | 预测结果列名。 | prediction_result |
predScoreColName | 否 | 预测得分列名。 | prediction_score | |
predDetailColName | 否 | 详细预测信息列名。 | prediction_detail | |
keepColNames | 否 | 保存至输出结果表的列。 | 所有列 |
例如,使用如下数据作为FM算法模板的输入数据,训练生成的模型AUC约为0.97。