FM算法介绍

概述

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

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

FM算法介绍

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

FM算法介绍

输入数据要求

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

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

如图:

FM算法介绍

组件说明

1.FM训练

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

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

FM算法介绍

上一篇:用OWA访问Exchange邮箱


下一篇:他实现了AlphaGo Zero的算法,发现可能还得训练1700年 | 代码