因子分解机FM原理及SGD训练

1.背景

Steffen Rendle于2010年提出Factorization Machines(下面简称FM),并发布开源工具libFM。FM的提出主要对比对象是SVM,与SVM相比,有如下几个优势

(1)对于输入数据是非常稀疏(比如自动推荐系统),FM可以,而SVM会效果很差,因为训出的SVM模型会面临较高的bias。

(2)FMs拥有线性的复杂度, 可以通过 primal 来优化而不依赖于像SVM的支持向量机。

2.模型

2-way FM(degree = 2)是FM中具有代表性,且比较简单的一种。就以其为例展开介绍。其对输出值是如下建模

其中,,n表示特征维度

表示两个大小为k的向量的点积

k是定义factorization维度的超参数,是正整数

因子分解机FM也可以推广到高阶的形式,即将更多互异特征分量之间的相互关系考虑进来。

3.用途

(1)回归问题(Regression):可以采用最小均方误差作为优化的标准(深入理解可以从高斯分布、极大似然估计入手)

(2)二分类问题(Binary Classification):利用sigmoid函数。详细原因见 地址

(3)排序(Ranking)

4.交叉项系数

(1)示例

样本数据

FM交叉项系数

(2)求解

表面上看FM模型的第3项的计算复杂度为O(kn^2),但其实可以经过简单的数学处理,计算复杂度降为O(kn)。

5.SGD求解参数

本文利用随机梯度下降SGD进行参数学习,也是一种简单的在线学习方法。

随机梯度下降与梯度下降主要差别在于batch size不一样

注:大家可以根据自己需要定义Loss Function,通过梯度下降得到参数更新的公式

最初的V通过正态分布的形式给出

所示代码是通过简单的似然估计进行二分类从而进行参数更新

后续会更新利用FTRL训练FM

参考文献

(1)Steffen Rendle.Factorization Machines

(2)Steffen Rendle.Factorization Machines with libFM

(3)参考文章 地址

时间: 2024-10-10 20:13:29

因子分解机FM原理及SGD训练的相关文章

简单易学的机器学习算法——因子分解机(Factorization Machine)

一.因子分解机FM的模型 因子分解机(Factorization Machine, FM)是由Steffen Rendle提出的一种基于矩阵分解的机器学习算法. 1.因子分解机FM的优势 对于因子分解机FM来说,最大的特点是对于稀疏的数据具有很好的学习能力.现实中稀疏的数据很多,例如作者所举的推荐系统的例子便是一个很直观的具有稀疏特点的例子. 2.因子分解机FM的模型 对于度为2的因子分解机FM的模型为: 其中,参数,,.表示的是两个大小为的向量和向量的点积: 其中,表示的是系数矩阵的第维向量,

论文研读1.0 基于神经网络与因子分解机的点击率预估应用研究(陈检)

基于神经网络与因子分解机的点击率预估应用研究(陈检) 摘要 长久以来广告点击预估率问题属于用户行为预测研究问题,其主要解决是特征工程问题. 深度神经网络主要提取高阶特征,因子分解机提取二阶以下特征 注改:因子分解机实际应用中受限于计算复杂度,一般只考虑到2阶交叉特征(FM预测时间复杂度O(kn),FFM预测时间复杂度O(kn^2),FM提取低阶组合特征,Deep提取低阶组合特征,同时学习低阶和高阶的组合特征. FM与Deep共享同样的输入. 通过对比试验发现:基于深度神经网络和因子分解机的组合模

Factorization Machine因子分解机

隐因子分解机Factorization Machine[http://www. w2bc. com/article/113916] https://my.oschina.net/keyven/blog/648747 http://www.cnblogs.com/hxsyl/p/5255427.html http://blog.csdn.net/google19890102/article/details/45532745/

麒麟来源堡垒机设计原理

1序言 运维堡垒机,主要功能为认证.授权.审计,而各厂商又略有不同,麒麟开源堡垒机是一套完整的开源堡垒机系统,具有通用商业堡垒机一切功能模块,安装便利,运用简单,功能全面.易用性都与商业硬件堡垒机完全一样. 2堡垒机的概念和品种   堡垒机从运用拓朴上说,分为两种. 2.1网关型堡垒机 一般选用二层透明桥方法接入网络,一般拓朴方位在运维用户前方,运维用户做运维时,流量经过网关堡垒机,堡垒机对用户的操作进行审计.这种堡垒机曾经在2012年前在国外的一些厂商从么设计,国内厂商很少有这么设计.因为这种

因子分解机模型简介

Steffen Rendle于2010年提出Factorization Machines(下面简称FM),并发布开源工具libFM. 一.与其他模型的对比 与SVM相比,FM对特征之间的依赖关系用factorized parameters来表示.对于输入数据是非常稀疏(比如自动推荐系统),FM搞的定,而SVM搞不定,因为训出的SVM模型会面临较高的bias.还有一点,通常对带非线性核函数的SVM,需要在对偶问题上进行求解:而FM可以不用转为对偶问题,直接进行优化. 目前还有很多不同的factor

手机锁机软件原理

这两天在手机论坛里面发现好多手机被锁屏软件锁屏了,锁屏效果(模拟器中)如下: 初次接触这个软件,我一直以为是锁定了fastloader,但是问哪些被锁屏的人,他们没有root,也没有刷过机,只是单单的安装了这个软件,所以就得排除锁定loader的方式. 直到后来反编译这个锁屏软件的安装包,才解开它真正实现的原理: 1. 通过锁定home键,锁定返回键,这样单凭按键是无法退出该应用. 2. 用户可能选择强制关机,一旦开机之后,系统就会恢复到桌面应用,而不是本应用,为了开机之后打开本应用,就需要是在

支撑向量机SVM-1.原理

支撑向量机的英文名叫: Support Vector Machine,是机器学习领域中的很重要的一种算法.它的思想背后有极强的统计理论的支撑,也是统计学上常用的一种方法.此算法在机器学习中既能解决分类问题,又能解决回归问题.且对真实的数据具有很好的泛化能力. 原理:考虑如下样本数据集,如何分辨此数据集? 之前的逻辑回归算法,确定决策边界的思路是定义了一个概率函数,根据这个概率函数进行建模,形成了损失函数,最小化损失函数来确定决策边界. 支撑向量机和逻辑回归不同,它的实现是找到一条最优的决策边界,

enigma机的原理

           ENIGMA ENIGMA看起来是一个装满了复杂而精致的元件的盒子.不过要是我们把它打开来,就可以看到它可以被分解成相当简单的几部分.下面的图是它的最基本部分的示意图,我们可以看见它的三个部分:键盘.转子和显示器. 在上面ENIGMA的照片上,我们看见水平面板的下面部分就是键盘,一共有26个键,键盘排列接近我们现在使用的计算机键盘.为了使消息尽量地短和更难以破译,空格和标点符号都被省略.在示意图中我们只画了六个键.实物照片中,键盘上方就是显示器,它由标示了同样字母的26个小

Linux堡垒机实现原理

堡垒机 堡垒机登录 可通过google authenticator 这有一篇不错的文章:http://www.osyunwei.com/archives/9045.html 命令审计 本文提供2中记录方式: 第一种着重于会话的录制,可进行播放,能记录vim里面的编辑情况. 第二种着重于命令行的记录. A.使用TermRecord在Ubuntu上录制和回放终端会话(主要是用户录制当时情况) TermRecord是一款用Python语言编写而成的开源工具,它可以将终端会话录制成一个独立的HTML文件