FM算法(二):工程实现】的更多相关文章

主要内容: 实现方法 Python实现FM算法 libFM   一.实现方法 1.FM模型函数 变换为线性复杂度的计算公式: 2.FM优化目标 根据不同的应用,FM可以采用不同的损失函数loss function来作为优化目标,如回归Regression:y^(x)直接作为预测值,损失函数可以采用least square error:二值分类Binary Classification:y^(x)需转化为二值标签,如0,1.损失函数可以采用hinge loss或logit loss:排序Rank:…
1. 什么是FM? FM即Factor Machine,因子分解机. 2. 为什么需要FM? 1.特征组合是许多机器学习建模过程中遇到的问题,如果对特征直接建模,很有可能会忽略掉特征与特征之间的关联信息,因此,可以通过构建新的交叉特征这一特征组合方式提高模型的效果. 2.高维的稀疏矩阵是实际工程中常见的问题,并直接会导致计算量过大,特征权值更新缓慢.试想一个10000*100的表,每一列都有8种元素,经过one-hot独热编码之后,会产生一个10000*800的表.因此表中每行元素只有100个值…
一,FM算法: 1,逻辑回归上面进行了交叉特征.算法复杂度优化从O(n^3)->O(k*n^2)->O(k*n). 2,本质:每个特征都有一个k维的向量,代表的是每个特征都有k个不可告人的信息.(FFM:面对不同的字段field都有k个不可告人的信息.)所以,得到了n*k的矩阵,每一行就是每一个特征的向量. 3,原理推导:https://zhuanlan.zhihu.com/p/37963267 4,代码:https://github.com/challenge-ICME2019-Byteda…
1.FM背景 在计算广告中,CTR预估(click-through rate)是非常重要的一个环节,因为DSP后面的出价要依赖于CTR预估的结果.在前面的相关博文中,我们已经提到了CTR中相关特征工程的做法.对于特征组合来说,业界现在通用的做法主要有两大类:FM系列与Tree系列.今天,我们就来讲讲FM算法. 2.one-hote编码带来的问题 FM(Factorization Machine)主要是为了解决数据稀疏的情况下,特征怎样组合的问题.已一个广告分类的问题为例,根据用户与广告位的一些特…
主要内容: 动机 FM算法模型 FM算法VS 其他算法   一.动机 在传统的线性模型如LR中,每个特征都是独立的,如果需要考虑特征与特征直接的交互作用,可能需要人工对特征进行交叉组合:非线性SVM可以对特征进行kernel映射,但是在特征高度稀疏的情况下,并不能很好地进行学习:现在也有很多分解模型Factorization model如矩阵分解MF.SVD++等,这些模型可以学习到特征之间的交互隐藏关系,但基本上每个模型都只适用于特定的输入和场景.为此,在高度稀疏的数据场景下如推荐系统,FM(…
转自:http://tech.meituan.com/deep-understanding-of-ffm-principles-and-practices.html http://blog.csdn.net/google19890102/article/details/45532745 FM原理 =>解决稀疏数据下的特征组合问题, 1) 可用于高度稀疏数据场景:2) 具有线性的计算复杂度 对于categorical(类别)类型特征,需要经过One-Hot Encoding转换成数值型特征.CTR…
系列目录 分布式共识算法 (一) 背景 分布式共识算法 (二) Paxos算法 分布式共识算法 (三) Raft算法 分布式共识算法 (四) BTF算法 一.背景 1.1 命名 Paxos,最早是Leslie Lamport 用Paxos岛的故事模型进行描述,而得以命名.这位大神原来是学数学的,最终变成了计算机科学家,在2013年获得图灵奖...附上美照: 1.2 Paxos问题 Paxos问题是指分布式的系统中存在故障(crash fault),但不存在恶意(corrupt)节点的场景(即可能…
FM的总结: 1.FM算法与线性回归相比增加了特征的交叉.自动选择了所有特征的两两组合,并且给出了两两组合的权重. 2.上一条所说的,如果给两两特征的组合都给一个权重的话,需要训练的参数太多了.比如我们有N维的特征,这样的话就需要N*N量级的参数.FM算法的一个优点是减少了需要训练的参数.这个也是参考了矩阵分解的想法.有N个特征,特征间的权重,需要一个N*N的权重矩阵.把这个N*N的矩阵分解成  K*N的矩阵V的乘积,权重矩阵W=VT*V.把每个特征用长度为K的向量来表示,此处应该是每个特征也有…
TensorFlow 入门之手写识别(MNIST) softmax算法 二 MNIST Fly softmax回归 softmax回归算法 TensorFlow实现softmax softmax回归算法 我们知道MNIST的每一张图片都表示一个数字,从0到9.我们希望得到给定图片代表每个数字的概率.比如说,我们的模型可能推测一张包含9的图片代表数字9的概率是80%但是判断它是8的概率是5%(因为8和9都有上半部分的小圆),然后给予它代表其他数字的概率更小的值. 这是一个使用softmax回归(s…
因子分解机(Factorization Machine,简称FM)算法用于解决大规模稀疏数据下的特征组合问题.FM可以看做带特征交叉的LR. 理论部分可参考FM系列,通过将FM的二次项化简,其复杂度可优化到\(O(kn)\).即: \[ \hat y(x) = w_0+\sum_{i=1}^n w_i x_i +\sum_{i=1}^n \sum_{j=i+1}^n ⟨vi,vj⟩ x_i x_j \\ =w_0+\sum_{i=1}^n w_i x_i + \frac{1}{2} \sum_{…