乐趣区

FM算法介绍

概述

FM (Factorization Machine) 算法可进行回归和二分类预测,它的特点是考虑了特征之间的相互作用,是一种非线性模型,目前 FM 算法是推荐领域被验证的效果较好的推荐方案之一,在诸多电商、广告、直播厂商的推荐领域有广泛应用。

PAI 平台的 FM 算法基于阿里内部大数据的锤炼,具备性能优越、效果突出的特点。具体使用方式可以参见首页模板:

使用 FM 算法整体流程需要包含 FM 训练和 FM 预测组件,可以搭配评估组件使用。

输入数据要求

目前 PAI 的 FM 算法只支持 libsvm 格式的数据,数据需要包含两列,分别是特征列和目标列。

  • 目标列:Double 类型
  • 特征列:String 类型,特征要以 k:v 格式输入,特征直接以逗号分隔

如图:

组件说明

1.FM 训练

在“参数设置”中可以设置回归或者分类两种模式:

PAI 命令

参数 解释 取值
tensorColName 训练的特征列名 (kv 格式的字符串,例如 ”1:1.0,3:1.0″,特征的 id 必须是非负整数,取值范围是 [0,Long.MAX_VALUE),可以不连续) 必选
labelColName label 列名 (要求是数值类型,如果任务类型是 binary_classification,那么 label 值必须是 0 或 1) 必选
task 任务类型 必选,”regression” or “binary_classification”
numEpochs 迭代数 可选,默认值 10
dim 因子数,字符串,用逗号分隔的三个整数,表示 0 次项、线性项、二次项的长度 可选,默认值 “1,1,10”
learnRate 学习率 可选,默认值 0.01
lambda 正则化系数,字符串,用逗号分隔的三个浮点数,表示 0 次项、线性项、二次项的正则化系数 可选,默认值 “0.01,0.01,0.01”
initStdev 参数初始化标准差 可选,默认值 0.05

备注 1:

  • 如遇到训练发散,可适当降低学习率的值

2.FM 预测

PAI 命令

参数 解释 取值
predResultColName 预测结果列名 可选,默认 ”prediction_result”
predScoreColName 预测得分列名 可选,默认 ”prediction_score”
predDetailColName 详细预测信息列名 可选,默认 ”prediction_detail”
keepColNames 保持到输出结果表的列 可选,默认全选

评估结果

在首页模板案例的数据情况下,使用 PAI FM 生成的模型可以达到接近 0.97 的 AUC


本文作者:傲海

阅读原文

本文为云栖社区原创内容,未经允许不得转载。

退出移动版