推荐系统-FM(Factorization Machine)模型

1. 介绍

在进行CTR(click through rate)预估时,除了单个特征外,通常要进行特征组合,FM算法是进行特征组合时的常见算法。

2. one-hot的问题

FM主要是为了解决数据稀疏的情况下,特征组合问题。一般categories特征经过one-hot编码以后,样本数据会变得很稀疏,假设有10万个item,如果对item的这个维度进行one-hot编码,这个维度的数据稀疏性就是十万分之一,所以数据的稀疏性是,是实际应用中常见的挑战。

one-hot编码的另一个问题是特征空间变大,上面的10万个item,编码后样本空间有一个categories会变成10万维,特征空间会暴增。

3. 特征组合

普通的线性模型,各个特征都是独立考虑的,没有考虑到特征之间的相关性,如果能找出有关联的特征,会有很大的帮助。一般的线性模型为:


从上面公式中看出,一般的线性模型是不考虑特征间的关联的,为了描述特征间的多样性,我们采用多项式模型。在多项式中,特征 和 的组合用 表示,现在讨论二阶多项式模型。

其中,n表示样本的特征数量, 表示第i个特征。公式的第三项就是加入了特征组合的部分。

4. FM求解

从上面的多项式可以看出,特征组合的部分,特征相关参数有 个。但是在数据很稀疏的情况下, 都不为0的情况非常少,这样使得 无法通过训练得出。

为了求出 , 对每一个特征分量 引入隐向量 。将每个 用隐向量的内积<> 表示,然后利用 对 进行矩阵求解。

推荐系统-FM(Factorization Machine)模型_第1张图片

那么 可以表示为:

推荐系统-FM(Factorization Machine)模型_第2张图片

具体过程:


推荐系统-FM(Factorization Machine)模型_第3张图片

5. FM总结

  • FM降低了特征组合项学习不充分的影响。

    参数学习有之前学习 的过程,变成了学习n个单特征对应的k维隐向量的过程。

  • FM提高了预估能力。

    由于FM学习的参数为单特征的隐向量,所以训练集中没有出现的特征组合的样本,FM模型依然可以用来预估。

  • FM提高了参数学习效率,

    参数个数由 变成了 个,模型复杂的由 变为,m为训练样本数。

FM是一个可以表示特征之间关系的函数表达式,可以推广到更高阶,将多个特征之间的关联信息考虑进来。

参考资料

http://www.52caml.com/head_first_ml/ml-chapter9-factorization-family/

你可能感兴趣的:(推荐系统-FM(Factorization Machine)模型)