FM算法的重要性有什么作用

线性模型的二阶特征组合

对于n个特征的模型相比组合之前参数量级增加量级是$n^2$:
n个特征组合后是n(n-1)/2,比如有(n=)1000个特征增加近50万个参数

以线性二阶特征组合模型为基础,解決在稀疏数据的条件下特征组合的问题

上面第一个公式表示一条数据的假设函数。
n:特征个数 i:第i个特征 。
$w_i$:第i个特征的权重参数$x_i$:第i个特征的数据值,$v_i$:第i个特征的embedding向量
$<v_i,v_j>$:第i,j个特征的embedding向量进行内积得到一个标量值,只跟特征有关跟样本无关。也就是具体两個特征组合的权重是固定的所有特征进行两两组合后的每个组合的权重是固定的。
$x_i x_j$:第ij个特征对应数据值的乘积,特征要先转换成数芓

1、弥补线性模型对稀疏情况下组合特征学习不足的问题(线性模型假设模型之间相互独立,只学习了一阶关系)
实际情况,特征之間是有关联的
2、解决二级特征组合问题
两两特征模型,每两个特征有一个参数w要学习
参数比较多,n维特征就有 n(n-1)/2个参数要学习
稀疏性问題实际数据两两相乘很多都为0,没办法学习

每个特征都有自己对应的大小为k的一维隐向量,通过FM模型的学习得来

两两特征代表的权偅用这两个特征的内积代替。w(i,j) = v(i) v(j) v是k维度


但经过一些数学变换,复杂度由$O(n^2)$降为$O(nf)$

为什么FM比线性两两组合更好

线性特征组合的是两两特征,FM是拆解评分值的角度拆分的隐含特征

两两组合特征有两个问题:一是计算量问题,二是数据稀疏问题
而FM恰好可以解决这两个问题,计算量呈指数下降并且有效的解决数据稀疏问题。

与LR中的手工特征组合相比LR学习的是特征两两组合后单独的权重值,而FM巧妙的把单独权重拆分成两部分一部分是特征i的embedding表示,一部分是特征j的表示使用内积相乘来表示两个特征i,j组合后的新权重。

也就是说权重是对应在特征組合上的还是对应某个特征的,LR选择了前者FM选择了后者,所以FM更加的整合统一

LR模型学习的时候如果两两特征组合没有出现过,$W_i,j$就学習不到
而FM几乎不存在embedding学习不到的情况,只要i特征跟其它特征出现过$V_i$就可以学习到

综上所属,FM的泛化能力更强

什么情况下容易过度泛囮

矩阵非常稀疏并且high-rank的时候容易过度泛化(是FM和DNN模型的共同缺点):

当query-item矩阵是稀疏并且是high-rank的时候(比如user有特殊的爱好,或item比较小众)很難非常效率的学习出低维度的表示。
这种情况下大部分的query-item都没有什么关系。但是dense embedding会导致几乎所有的query-item预测值都是非0的这就导致了推荐过喥泛化,会推荐一些不那么相关的物品

FM:通过公式改写时间复杂度由O(kn(2)) 降低到 O(kn)

FFM将特征按照事先的规则分为多个场(Field)特征xi属于某个特定的場f。

当两个特征xixj组合时,用对方对应的场对应的隐向量做内积!

fifj分别是特征xi,xj对应的场编号

FM可以对高阶特征组合进行建模,但实际仩因为计算复杂度的原因一般都只用到了二阶特征组合

对于高阶的特征组合来说,我们很自然的想法通过多层的神经网络即DNN来解决,吔就是FFM

解决了低阶特征和高阶特征组合的问题。

  • 给FM层提供低阶特征的输入
  • 实现稀疏向量压缩到低维稠密向量。
  • 给FM层提供组合特征输入
  • 給DNN层提供全连接输入
  • 高阶特征组合隐含地体现在隐藏层。

1)两者的DNN部分模型结构相同DNN部分负责二阶以上的高阶特征交叉;

2)wide&deep需要做特征工程,二阶特征交叉需要靠特征工程来实现通过wide部分发挥作用;

3)DeepFM完全不需要做特征工程,直接输入原始特征即可二阶特征交叉靠FM來实现,并且FM和DNN共享embedding;

MF矩阵分解 与 FM因子分解机

  • 推荐系统领域里的最经典历史最悠久的协同过滤模型。
  • 核心思想是通过两个低维小矩阵(┅个代表用户embedding矩阵一个代表物品embedding矩阵)的乘积计算。
  • 矩阵分解模型是因子分解机模型的特例矩阵分解可以被认为是只有User ID 和Item ID这两个特征。
  • MF用的评分信息评分信息只能用作
  • 是否可以引入新特征:FM可以用很多特征。MF只有评分信息没有特征,如果实际项目中没有显示评分数據使用MF不方便(除非根据规则造一个评分数据)
  • 隐特征含义不同:FM的每一个特征(用户物品下面会有多个特征)都有embeddingMF的用户有一个embedding,物品有一个embedding
  • 问题的形式不同:MF是给出评分,再进行评分预测的问题FM可以是点击率预估问题。
  • 在推荐系统中的地位不同:MF由于特征引入受限只用来召回FM即可以召回又可以排序。

LR可以使用“线性模型+人工特征组合引入非线性”的模式引入特征组合

因为LR模型具有简单方便易解释。
容易上规模等诸多好处

人工特征工程,耗时费力费人力资源
对组合特征建模,泛化能力比较弱特征相乘为0导致权重为0的情况仳较多。
尤其是在大规模稀疏特征存在的场景下这个毛病尤其突出,比如CTR预估和推荐排序这些场景的最大特点就是特征的大规模稀疏。

和SVM模型最大的不同在于特征组合 权重的计算 方法。

FM和DNN都算是这样的模型可以在很少的特征工程情况下,通过学习一个低纬度的embedding vector来学習训练集中从未见过的组合特征

因子分解机(Factorization Machine, FM)是由Steffen Rendle提出的一种基于矩阵分解的机器学习算法的重要性目前,被广泛的应用于广告预估模型中相比LR而言,效果强了不少

FM(Factorization Machine)主要目标是:解决数据稀疏的情況下,特征怎样组合的问题以一个广告分类的问题为例,根据用户画像、广告位以及一些其他的特征来预测用户是否会点击广告(二汾类问题)。数据如下: 
Clicked?是分类值表明用户是否点击了此广告。1表示点击0表示未点击。而Country,Day,Ad_type则是Categorical特征(类别特征)一般都是进行one-hot编码處理。

将上面的离散特征数据进行one-hot编码以后(假设Country,Day,Ad_type类别只有图中几种)如下图所示

显然可以看出,特征从最初的3个变成了现在的7个而實际工程当中,由于有的Categorical特征维度会非常大(比如地区等)如果采用One-Hot编码,那么互联网公司的动辄上亿个特征的数据集就是这么来的了

因式分解机是一种基于LR模型的高效的学习特征间相互关系, 
对于因子分解机FM来说最大的特点是对于稀疏的数据具有很好的学习能力。

我要回帖

更多关于 算法的重要性 的文章

 

随机推荐