Poly2,FM,FFM

传统的特征交叉是先手动再组合特征,再通过各种分析手段筛选特征的方法——低效。

Poly2模型

Degree-2 Polynomial Margin (Poly2)

y=w_0+\sum_{i=1}^nw_ix_i+\sum_{i=1}^{n-1}\sum_{j=i+1}^nw_{ij}x_ix_j
Poly2模型总的参数数量为1+n+\frac{(1+(n-1))(n-1)}{2}=1+n+\frac{n(n-1)}{2}=\frac{n(n+1)}{2}+1

相比LR模型,新增\frac{(1+(n-1))(n-1)}{2}个交叉特征,任意两个参数都是独立的。

我们可以把所有的w_{ij}写成矩阵:
\hat W=\begin{pmatrix} 1 & w_{1,2} & w_{1,3} & ... & w_{1,n}\\ w_{2,1} & 1 & w_{2,3} & ... & w_{2,n}\\ w_{3,1} & w_{3,2} & 1 & ... & w_{3,n}\\ ...&...&...&...&...\\ w_{n,1} & w_{n,2} & w_{n,3} & ... & 1\\ \end{pmatrix}
上面的矩阵是关于对角线对称的。

Poly2模型的缺陷
1、容易发现,要训练w_{ij}需要x_ix_j同时不为0,而推荐系统中的共现矩阵是很稀疏的,因此你难以训练组合特征的参数w_{ij}
2、参数量由LR的n个直接上升到n^2个,极大的增加了模型训练的复杂度。

FM模型 (因子分解机,Factorization Machine,FM)

因为\hat W是关于对角线对称的,所以\hat W可以分解成\hat W=V^TV,其中Vn*k,(k<<n),也就是说矩阵Vn行,任意两行的内积w_{ij}=v_{i}\cdot v_{j}一共有\frac{n(n-1)}{2}个值,那么假设函数为:
y=w_0+\sum_{i=1}^nw_ix_i+\sum_{i=1}^{n-1}\sum_{j=i+1}^n\langle v_{i},v_{j}\rangle x_ix_j
=w_0+\sum_{i=1}^nw_ix_i+\sum_{i=1}^{n-1}\sum_{j=i+1}^n(v_{i}\cdot v_{j})x_ix_j
=w_0+\sum_{i=1}^nw_ix_i+\sum_{i=1}^{n-1}\sum_{j=i+1}^n(v_{i}^T v_{j})x_ix_j

v_{i}v_{j}是向量,对应矩阵V的第i行和第j行。
此时参数量为1+n+nk。复杂度为O(kn^2),但是我们可以对上面的公式进行变换,使得复杂度降低为线性的O(kn),具体推导过程如下:

FFM模型

Field Factorization Machine,FFM

首先要理解什么是特征域(Field) ?
对于分类变量性别:[男,女,未知]
对于年龄分箱后:[x<=20,20<x<=40,40<x<=60,x>60]
对于一个33岁的女人,其one-hot编码为:0100100,前3个数字表示性别,后4个数字表示年龄,这7个特征对应两个特征域即性别和年龄。

在FM中没有特征域的概念,或者说所有的特征都属于1个特征域,即此时1个特征域对应1个矩阵V,其大小为n*k

在FFM模型中,如果有f个特征域,就有f个矩阵V。不同的Field变成one-hot编码后得到的sparse features数量书不同的,所以不同Field对应的矩阵V的行长度是不同的,列长度为k。当特征x_i与特征x_j交叉时,从x_i对应的特征域矩阵(即一组向量)V_{f_{x_i}}中选择第i行向量v_{i,f_{x_i}};从x_j对应的特征域矩阵V_{f_{x_j}}中选择第j行向量v_{j,f_{x_j}},那么就有假设函数:
y=w_0+\sum_{i=1}^nw_ix_i+\sum_{i=1}^{n-1}\sum_{j=i+1}^n(v_{i,f_{x_i}}^T v_{j,f_{x_j}})x_ix_j
显然FFM模型的参数量为1+n+nkf

FM模型的复杂度由O(kn^2)可以降低为O(kn),但是FFM模型不具有FM模型的等价推导,所以其复杂度为O(kn^2)。所以实际应用中,要在模型效果(FFM更好)和工程投入(FM投入小)之间做出权衡。

总结

不管是Poly2,FM还是FFM都可以由2阶(两两交叉)推广到多阶,但是带来的是复杂度的急剧增加,不具有实际工程应用条件。所以Poly2,FM和FFM都只适合两两特征组合!

https://tech.meituan.com/2016/03/03/deep-understanding-of-ffm-principles-and-practices.html
https://blog.csdn.net/ddydavie/article/details/82667890
https://www.cnblogs.com/pinard/p/6370127.html

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

推荐阅读更多精彩内容