FM算法介绍

概述

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

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

使用FM算法总体流程须要包含FM训练和FM预测组件,能够搭配评估组件使用。学习

输入数据要求

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

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

如图:spa

组件说明

1.FM训练

在“参数设置”中能够设置回归或者分类两种模式:blog

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的AUCget


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