美文网首页
FM算法详解(因子分解机)

FM算法详解(因子分解机)

作者: zh_harry | 来源:发表于2020-12-01 16:23 被阅读0次

什么是FM?

FM即Factor Machine,因子分解机。

任意的N×N 实对称矩阵]都有 N 个线性无关的特征向量。并且这些特征向量都可以正交单位化而得到一组正交且模为 1 的向量。故实对称矩阵 A 可被分解成:

对称矩阵分解

其中Q为正交矩阵,Λ为实对角矩阵。

类似地,所有二次项参数ωij可以组成一个对称阵W

(为了方便说明FM的由来,对角元素可以设置为正实数),那么这个矩阵就可以分解为

image.png
V的第j列vj便是第j维特征xj的隐向量。换句话说,特征分量 xi和xj

的交叉项系数就等于 xi对应的隐向量与和xj对应的隐向量的内积,即每个参数
ωij=<vi,vj>,这就是FM模型的核心思想

为了求出ωij,我们需要求出特征分量xi的辅助向量vi=(vi1,vi2,vi3,...,vik),

xj的辅助向量vj=(vj1,vj2,vj3,...,vjk)
k表示隐向量长度(k<<n),转换过程如下图所示:

image.png image.png

W*矩阵对角线上面的元素即为交叉项的参数。

如何组合?

多项式模型是包含特征组合的最直观的模型。在多项式模型中,特征 xi和 xj

的组合采用 xi xj表示,即 xi和 xj都非零时,组合特征 xi xj才有意义。从对比的角度,本文只讨论二阶多项式模型。模型的表达式如下:

二阶多项式模型1

其中,n代表样本的特征数量, xi是第i个特征的值,ω0iij是模型参数。

从公式来看,模型前半部分就是普通的LR线性组合,后半部分的交叉项即:特征的组合。单从模型表达能力上来看,FM的表达能力是强于LR的,至少不会比LR弱,当交叉项参数全为0时退化为普通的LR模型。

从公式(1)可以看出,组合特征的参数一共有(n*(n-1))/2个,任意两个参数都是独立的。

举例说明

通俗点来讲就是把自己乘自己的那部分减掉,只留下交叉项
假设有3个特征x1 x2 x3,每一个特征的隐变量分别为v1=(1 1)、v2=(4 2)、v3=(1 3),即:

V = [
        [1, 1],
        [4, 2],
        [1, 3]
    ]

所以
W=V*Vt

[
  [ 2  6  4]
  [ 6 20 10]
  [ 4 10 10]
]

Σ3i=1 Σ3j=1wij xi xj=
2x1x1+6x1x2+4x1x3

+6x2x1+20x2x2+10x2x3

+4x1x1+10x3x2+10x2x3

实际上,我们应该考虑的交叉项应该是排除自身组合的项,即对于x1x1、x2x2、x3x3不认为是交叉项,那么真正的交叉项为x1x2、x1x3、x2x1、x2x3、x3x1、x3x2
去重后,交叉项即x1x2、x1x3、x2x3。这也是公式中1/2出现的原因。
W矩阵的上半部分为wij的取值范围,所以个数为(n*(n-1))/2=(3*(3-1))/2=3

隐向量v就是embedding vector?

我们口中的隐向量vi实际上是一个向量组,其形状为(输入特征One-hot后的长度,自定义长度k);
隐向量vi代表的并不是embedding vector,而是在对输入进行embedding vector的向量组,也可理解为是一个权矩阵;
由输入样本xivi得到的向量才是真正的embedding vector。
由输入样本xi
v(矩阵)得到的向量才是真正的embedding vector。

参见https://www.zhihu.com/question/48107602

相关文章

  • FM算法

    FM算法(Factorization Machine) 因子分解机(Factorization Machine, ...

  • FM算法详解(因子分解机)

    什么是FM? FM即Factor Machine,因子分解机。 任意的N×N 实对称矩阵]都有 N 个线性无关的特...

  • 02-21:FM算法

    FM算法 回头看其实FM算法也是非常简单啊 1、算法原理 因子分解机(Factorization Machine,...

  • 推荐算法之—FM

    1、什么是FM算法 FM即Factor Machine,因子分解机 2、为什么需要FM 1)、特征组合是许多机器学...

  • 推荐系统玩家 之 因子分解机FM(Factorization M

    推荐系统玩家 之 因子分解机FM(Factorization Machines)

  • 聊聊因子分解机(FM)

    说到FM先说一个叫交叉特征的事,因为特征都是相互独立的,我们想要找到一些组合特征,只能两两交叉相乘,所以我们在线性...

  • FM算法

    因子分解机(Factorization Machine, FM)是由Steffen Rendle提出的一种基于矩阵...

  • 深度学习CTR预估(一)——FM模型numpy和tensorfl

    1、FM的原理 1.1 FM介绍及其优缺点  FM就是因子分解机。通过不同组合不同的特征,解决推荐系统中数据稀疏的...

  • 因子分解机(FM)系列总结

    背景 特征之间是关联的,线性模型中需要人工的特征组合,表达能力受限 one-hot编码带来特征空间暴增,数据稀疏,...

  • FM,稀疏下的艺术

    最近正好处理一些稀疏数据,抽空看了下FM论文,Factorization Machines,因子分解机。在SVM之...

网友评论

      本文标题:FM算法详解(因子分解机)

      本文链接:https://www.haomeiwen.com/subject/jbxdwktx.html