从一阶线性模型到FFM

本文介绍了从一阶线性模型到FFM的演进过程,针对CTR预估问题,FFM模型能够有效处理类别特征并挖掘特征间交叉性质,具有较低的时间复杂度和较好的预测效果。文章详细分析了线性模型的局限性,二阶模型的参数空间问题,以及FM和FFM如何解决这些问题。FFM通过字段感知的方式,解决了FM中向量更新过于宽松的问题,提高了模型的预测能力。
摘要由CSDN通过智能技术生成

前言

说到CTR,CVR预估,最近几年无论是kaggle比赛,还是推荐算法、计算广告中,使用FFM模型可以是一种标准通用的解决方案,因为传统的模型在遇到离散的类别特征时,一般都是想方设法将其连续化,如做Id Embedding等,而FFM模型原生支持处理稀疏的类别特征,而且擅长挖掘出特征间的交叉性质,不仅效果好而且时间复杂度也不高,因此具有较高的应用价值,在很多企业中有实际的应用。

本文以一阶模型作为引入,分析了为什么二阶模型是必要的,然后给出了具有实用性的二阶模型FM以及改良版的FFM,最后简要说明了一下FFM的实现思路。

1.从一阶Linear Model开始

假设我们有下图这样的推荐数据,对于第一行样本,我们用语言翻译:用户1在语境3下对物体2有一个点击行为(click=1);这里,用户(user),语境(context)和物体(item)都是特征,点击行为是label,我们要用一个模型去拟合这个label,使这个模型能够预测一个用户在某语境下对某物体的的点击率。最简单的模型为线性模型,即:
y = ∑ i ∈ C w i x i y= \sum_{i \in C} w_ix_i y=iCwixi
其中, C C C为各特征中的非零项索引的集合, x i x_i xi为非零项对应的值,由于这里都是类别特征(Category Feature),所以非零项 x i x_i xi等于1, w i w_i wi 为非零项对应的权值,是模型要学习的参数。我们把第一行数据带入式子得到图中的等式如下:

在这里插入图片描述

让我们分析一下线性模型的参数空间大小,假设我们一共只有10个用户,10种物体,10种语境,那么参数 W W W由三个向量组成: W u s e r W_{user} Wuser W i t e m W_{item} Witem W c o n t e x t W_{context} Wcontext,每个向量的长度为10,向量中第 i i i个元素的取值代表对应权值 x i x_i xi,那么我们的参数空间一共是30。

这里只是一个最简单的例子,其实每个参数 x i x_i xi也可以用一个长度为 k k k的向量表示,那么 W u s e r W_{user} Wuser W i t e m W_{item} Witem W c o n t e x t W_{context} Wcontext则分别为三个 10 × k 10 \times k 10×k的矩阵。

2. 二阶模型(Degree-2 Polynomial Model)

前面一阶线性模型的缺点是无法挖掘特征之间的相关性,各个特征参数都是独立学习,而往往特征之间是有关联的,例如用户在中秋节的时候更容易对月饼发生点击或者购买行为,此时语境是中秋节,物体是月饼,当这两个条件同时满足时,点击更有可能发生。为了考虑特征之间的相关性,我们有了二阶模型,简单的二阶模型是一阶模型的直接扩展:参数只有在任意两个特征同时取值时才确定。二阶模型的表达为:

y = ∑ j 1 , j 2 ∈ C w j 1 , j 2 x j 1 x j 2 y = \sum_{j_1,j_2 \in C} w_{j_1,j_2} x_{j_1}x_{j_2} y=j1,j2Cwj1,j2xj1xj2
其中, C C C为任意两个特征中的非零项索引组合的集合,而 w j 1 . j 2 w_{j_1.j_2} wj1.j2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值