FM因式分解机

写在前面

FM全称为factorization machine, 可以用解决回归、二分类问题
目的:解决高维稀疏数据中特征组合问题,适用于categorical feature

参考文献

1、http://www.cnblogs.com/Matrix_Yao/p/4773221.html 梳理了ctr估计问题的大致流程,给出了一些工业界的方法,可以当做入门资料
2、https://blog.csdn.net/google19890102/article/details/45532745 针对于fm讲的很透彻,有些点没提到,程序很好懂
3、https://blog.csdn.net/g11d111/article/details/77430095 背景交代很清楚,我的背景介绍也是copy他的
4、关于fm与LR的比较,可以参看https://www.zhihu.com/question/27043630/answer/151138052最高赞的回答
5、https://blog.csdn.net/itplus/article/details/40536025 理论进阶

背景

1、稀疏数据

强调一点,FM的适用对象是稀疏数据。这一点之后会有更深入的介绍。
实际中,很多特征类型是categorical型,比如性别特征,有男、女两个选项,如果将男性标记为1,女性标记为2是不太合理的,因为数字是具有意义的,2是1的2倍,而不能说女性是男性的2倍,所以对于categorical feature都会使用独热编码one-hot encoding,将男性标记为[1,0],女性标记为[0,1]。其他的categorical feature还有很多,比如文章类型,娱乐、运动、军事、科技等等,这些类别之间不具有数值意义的关系,同理需要使用one-hot encoding,关于one-hot encoding,如果你还不太了解,请看https://www.imooc.com/article/35900
categorical feature做完one-hot encoding之后是非常稀疏的,这在实际中十分常见,而许多方法对于稀疏数据都束手无策,比如SVM,它无法在非常稀疏的数据下学习复杂的非线性内核空间中的参数。

2、特征组合

在进行数据分析的过程中,特征工程是非常重要的一步,在特征工程这部分处理的好的话可以让模型的效果事半功倍。实际中有很多特征是相关联的,比如一般女性用户看化妆品服装之类的广告比较多,而男性更青睐各种球类装备。那很明显,女性这个特征与化妆品类服装类商品有很大的关联性,男性这个特征与球类装备的关联性更为密切。如果我们能将这些有关联的特征找出来,显然是很有意义的。FM就提供了一种这样特征组合的思路。

原理

我们还是先从线性模型说起好啦:)
一般的线性模型为

线性模型.png

n表示n维特征
如果在线性模型中加入二阶特征的组合,那么会是这个样子的
加入二阶特征组合的线性模型.png

这里存在一个问题,对于稀疏数据来说,xi 和xj同时不为0的情况非常少,这样会导致Wij无法通过训练获得。为了解决这个问题,FM诞生了,我们看一下FM是如何解决这个问题的:
FM.png

这也解释了FM因式分解机名字的由来,它是将Wij进行了拆解。FM的模型为
FM.png

求解

先不急着看如何求解的,这部分想解释下为什么将Wij拆解成vi和vj就能够求解了呢?这部分在作者的论文中有提到,下面的图片看着不太舒服的话,可以去看论文的第三部分:)

解释如何求解vi、vj.jpg

求解的话肯定需要一个优化目标,就是使损失函数最小
损失函数.png

其中
sigmoid.png

表示的是阶跃函数Sigmoid
基于随机梯度下降方式的求解:

sgd求解.png

image.png

这也解释了为什么FM的计算复杂度为O(kn)
image.png

FM优点

1、可以对稀疏数据中的特征进行组合
2、计算时间复杂度为O(kn)
3、FM是一种可以与任何实值特征向量一起使用的通用预测器。

缺点

你发现了没?在做特征组合的时候,我们不确定是同一域内的特征相组合(这不太合理,比如男性【1,0】两个维度数据,如果组合的是性别本身这两个维度,不太有意义),还是组合的是域间维度,比如性别和商品类别之间的组合是有意义的,对FM的一个改进是FFM, FFM是使得特征有自己的归属域,比如男性【1,0】是性别域,这两维数据不能拆开,下次我们再详细介绍一下FFM.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容

  • 写作计划: 线性模型LR(没有考虑特征间的关联)——>LR +多项式模型(特征组合,不适用于特征稀疏场景,泛化能力...
    流川枫AI阅读 20,199评论 8 44
  • https://mp.weixin.qq.com/s/BuHiG9FjX-OiSNWx3KquQQ 17.随机梯度...
    _龙雀阅读 3,759评论 0 4
  • 该文章为转载文章,作者简介:汪剑,现在在出门问问负责推荐与个性化。曾在微软雅虎工作,从事过搜索和推荐相关工作。 T...
    名字真的不重要阅读 5,187评论 0 3
  • 过年烧香是持续了不知多少年的传统活动,从小到大二十多年来年年跟着父母后面看着他们买香烛;看着他们将香点起,青烟袅袅...
    你好达达尼安阅读 281评论 0 2
  • 下午出门前,天空下起了雷雨,带着大孩上完课回来,雨已停,外面的空气里全是潮湿,屋里显得闷热,随即全将窗户打开,顿觉...
    素衣半夏阅读 210评论 0 1