FFM(Field-aware Factorization Machines)

本文介绍了Factorization Machines (FM)的改进版FFM,强调了引入field概念的重要性,以及如何通过域表示增强特征区分。FFM通过多个隐向量针对不同field表示特征,尽管计算复杂度上升至O(kn^2),但模型精度得到提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

FFM在FM的基础上进一步改进,在模型中引入类别的概念,即field。将同一个field的特征单独进行one-hot,因此在FFM中,每一维特征都会针对其他特征的每个field,分别学习一个隐变量,该隐变量不仅与特征相关,也与field相关。通过引入field的概念,FFM把相同性质的特征归于同一个field。

二、FFM模型

在说FFM之前,最好先了解下FM模型 

Factorization Machines(FM):发展过程、原理及实现_只想做个咸鱼的博客-优快云博客

 文章中提到FM的公式:

 红色两项,分别代表用隐向量内积表示权重系数矩阵,特征的交叉组合

FM存在的问题就是模型在进行特征表示时,是与所有的特征进行组合,即它对所有的特征组合时所用的表示都是一样的,至少也得权衡各个类别里面的交互特征学到,意味着不同的特征应该所表示的不同,例如男和北京、男和篮球,而男与另外两个特征组合时所用的表示是一样,这体现不出他们的不同和重要性

引出FFM的数学表达式:

 可以看到蓝色的隐向量部分多了fj和fi这就是添加的域表示,也可以等同额外添加了另一组隐向量,用来表示特征域的概念,用以区分特征与特征之间的区别,用来增强模型的表示。

三、代码实现

class FFM_Node(object):
    '''
    通常x是高维稀疏向量,所以用链表来表示一个x,链表上的每个节点是个3元组(j,f,v)
    ''&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值