RS推荐系统-FFM算法

FFM算法

FFM算法是在FM算法上引入了field的概念,FFM把相同性质的特征归于同一个field。比如下图中“Day=26/11/15”、“Day=1/7/14”、“Day=19/2/15”这三个特征代表日期,放到同一个field中。

当“Day=26/11/15”与Country特征,Ad_type特征进行特征组合时,使用不同的隐向量(Field-aware),这是因为Country特征和Ad_type特征,本身的field不同
在这里插入图片描述

FM算法 VS FFM算法

在这里插入图片描述在这里插入图片描述

对于FM算法:
w E S P N ⋅ w N i k e + w E S P N ⋅ w M a l e + w N i k e ⋅ w M a l e w_{E S P N} \cdot w_{N i k e}+w_{E S P N} \cdot w_{M a l e}+w_{N i k e} \cdot w_{M a l e} wESPNwNike+wESPNwMale+wNikewMale

  • 每个特征有唯一的一个隐向量表示,这个隐向量被用来学习与其他任何特征之间的影响。
  • w(ESPN)用来学习与Nike的隐性影响w(ESPN)*w(Nike),同时也用来学习与Male的影响w(ESPN)*w(Male)。但是Nike和Male属于不同的领域,它们的隐性影响(latent effects)应该是不一样的。

对于FFM算法:
W E S P N , A ⋅ W Nike  , P + W E S P N , G ⋅ W Male  , P + W Nike  , G ⋅ W Male  , A ϕ F F M ( w , x ) = ∑ j 1 = 1 n ∑ j 2 = j 1 + 1 n ( w j 1 , f 2 ⋅ w j 2 , f 1 ) x j 1 x j 2 \begin{aligned} &\mathcal{W}_{E S P N, A} \cdot \mathcal{W}_{\text {Nike }, P}+\mathcal{W}_{E S P N, G} \cdot \mathcal{W}_{\text {Male }, P}+\mathcal{W}_{\text {Nike }, G} \cdot \mathcal{W}_{\text {Male }, A} \\ &\phi_{\mathrm{FFM}}(\boldsymbol{w}, \boldsymbol{x})=\sum_{j_{1}=1}^{n} \sum_{j_{2}=j_{1}+1}^{n}\left(\boldsymbol{w}_{j_{1}, f_{2}} \cdot \boldsymbol{w}_{j_{2}, f_{1}}\right) x_{j_{1}} x_{j_{2}} \end{aligned} WESPN,AWNike ,P+WESPN,GWMale ,P+WNike ,GWMale ,AϕFFM(w,x)=j1=1nj2=j1+1n(wj1,f2wj2,f1)xj1xj2

  • 每个特征会有几个不同的隐向量, f j f_j fj 是第 j 个特征所属的field

===================================================

FM算法:

  • 每个特征只有一列隐向量
  • FM是FFM的特例
    在这里插入图片描述
    FFM算法
  • 每个特征有多列隐向量
  • 使用哪个,取决于和哪个向量进行点乘
    在这里插入图片描述

FFM算法公式:
ϕ F F M ( w , x ) = ∑ j 1 = 1 n ∑ j 2 = j 1 + 1 n ( w j 1 , f 2 ⋅ w j 2 , f 1 ) x j 1 x j 2 \phi_{\mathrm{FFM}}(\boldsymbol{w}, \boldsymbol{x})=\sum_{j_{1}=1}^{n} \sum_{j_{2}=j_{1}+1}^{n}\left(\boldsymbol{w}_{j_{1}, f_{2}} \cdot \boldsymbol{w}_{j_{2}, f_{1}}\right) x_{j_{1}} x_{j_{2}} ϕFFM(w,x)=j1=1nj2=j1+1n(wj1,f2wj2,f1)xj1xj2

  • 隐向量的长度为 k,FFM的二次参数有 nfk 个,多于FM模型的 nk 个
  • 由于隐向量与field相关,FFM二次项并不能够化简,计算复杂度是 O ( k ∗ n 2 ) O\left(k^{*} n^{2}\right) O(kn2),FFM的k值一般远小于FM的k值
  • 特征格式:field_id:feat_id:value
  • field_id代表field编号,feat_id代表特征编号,value是特征值。
  • 如果特征为数值型,只需分配单独的field编号,比如评分,item的历史CTR/CVR等。
  • 如果特征为分类(categorical)特征,需要经过One-Hot编码成数值型,编码产生的所有特征同属于一个field。特征值是0或1,比如性别、商品的品类id等
  • 输入格式如下图:
    在这里插入图片描述
  • FFM的特征组合:
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Wiggles

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值