FM算法介绍

简介: 概述FM (Factorization Machine) 算法可进行回归和二分类预测,它的特点是考虑了特征之间的相互作用,是一种非线性模型,目前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

相关实践学习
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
目录
相关文章
|
机器学习/深度学习 人工智能 算法
【上报纸啦】95后大学生用机器学习PAI大战老年痴呆
中国青年报原文链接:http://zqb.cyol.com/html/2017-07/28/nw.D110000zgqnb_20170728_2-06.htm 燕山大学信息科学与技术专业出身的95后大学生谭创创,没想到自己会与阿尔茨海默症(俗称“老年痴呆症”)为“敌”。
10057 111
|
算法
推荐召回场景-FM Embedding实现方案
智能推荐分为排序和召回两大模块,在召回模块中通常会采用将 用户User和待推荐的 内容Item 分别以向量表示,然后通过User和Item的向量乘积大小作为User对Item的感兴趣程度的判断。本案例介绍如何基于真实的推荐场景数据,通过使用PAI平台提供的FM算法和Embedding提取算法产生User和Item的描述向量。
5374 110
推荐召回场景-FM Embedding实现方案
|
SQL 机器学习/深度学习 监控
用户流失预警风控
在业务发展过程中有两个重要的环节,一个是拉新,另一个是留存。如何做到用户的留存需要很多技术手段保证,一个比较重要的方式是建立用户流失模型,通过学习历史上流失用户的特点,通过机器学习的手段训练处风控模型,队可能会流式的用户进行预测,然后可以提前通过运营手段做一些用户流失的防范。
4359 109
用户流失预警风控
|
算法 搜索推荐 数据处理
基于消费信用评估的风控
信用评估是被当前社会广泛关注的领域,特别是在金融行业,如果可以通过每个用户的历史交易数据以及用户画像数据确定用户的个人信用,将有助于银行设置个人借贷额度,确定潜在风险。本文将介绍在金融风控领域如何进行用户画像,使用什么样的算法可以计算出每个用户的信用指标。
2219 110
基于消费信用评估的风控
|
机器学习/深度学习 自然语言处理 算法
基于外卖评论的舆情风控
目前许多商家都有线上留言或者评论反馈平台,消费者可以在这些平台上通过留言表达自己对于消费商品的反馈。消费者的反馈包括表扬性的正向反馈,也有一些批评性质的负向反馈。商家需要掌握消费者对于产品的整体舆论取向来判断自己的产品质量是否符合消费者需求,同时了解评论内容可以方便商家分析舆论导向,指导下一步产品研发工作。
3569 109
基于外卖评论的舆情风控
|
机器学习/深度学习 新零售 人工智能
阿里云机器学习PAI征文大赛正式启动
征文大赛奖品丰厚
3241 109
|
机器学习/深度学习 算法
PAI在线深度学习开发产品DSW发布
产品介绍: PAI-DSW(Data science workshop)是专门为算法开发者准备的云端深度学习开发环境,用户可以登录DSW进行代码的开发并运行工作。目前DSW内置了PAI团队深度优化过的Tensorflow框架,同时也可以通过打开console对话窗口自行安装需要的第三方库。
3556 101
|
机器学习/深度学习 人工智能 算法
|
C#
c#如何实现在两个窗体(Form)间传输数据或变量
在父窗体中显示子窗体时,加上子窗体.Owner=this;在子窗体中定义一个父窗体对象,在Load函数里面让父窗体对象=(父窗体类型)this.Owner。然后用这个父窗体对象就可以在子窗体的任何位置直接使用它的参数了(这些参数要定义成公共的).将父窗体对象定义成子窗体的一个变量,不是在Load中定义父窗体对象,只是在Load中获取父窗口,这样在子窗体的任何位置都应该可以使用这个父窗口对象
2229 108
|
Android开发
【android-tips】关于android应用R文件无法读取
          (转载请注明出处:http://blog.csdn.net/buptgshengod)        很多时候当我们发现从网上下载的一些工程无法使用,只有R布局文件报错的时候,多数原因是工程本身的target和自身eclipse的target不符合。       而自己的target可以从Project-Properties中获得。如图中target为18.
1542 108