RS推荐系统-DeepFM算法

DeepFM算法

在前面推荐系统的文章里面提到了FM算法,它可以做特征组合,但是计算量大,一般只考虑2阶特征组合。那么如何既考虑低阶(1阶+2阶),又能考虑到高阶特征呢?这时候引入了DeepFM = FM+DNN,DeepFM设计了一种end-to-end的模型结构 ,无需特征工程,但是在各种benchmark和工程中表现效果都很好。

DeepFM = FM + DNN
在这里插入图片描述

  • 提取低阶(low order)特征 => 因子分解机FM
    既可以做1阶特征建模,也可以做2阶特征建模
  • 提取高阶(high order)特征 => 神经网络DNN
  • 对于特征i,wi是1阶特征的权重,
    Vi表示该特征与其他特征的交互影响,输入到FM模型中可以获得特征的2阶特征表示,输入到DNN模型得到高阶特征。

FM模型

  • 1阶模型的建模
  • 通过隐向量点乘=> 得到2阶特征组合
    y F M = ⟨ w , x ⟩ + ∑ j 1 = 1 d ∑ j 2 = j 1 + 1 d ⟨ V i , V j ) x j 1 ⋅ x j 2 y_{F M}=\langle w, x\rangle+\sum_{j_{1}=1}^{d} \sum_{j_{2}=j_{1}+1}^{d}\left\langle V_{i}, V_{j}\right) x_{j_{1}} \cdot x_{j_{2}} yFM=w,x+j1=1dj2=j1+1dVi,Vj)xj1xj2

Deep模型
在这里插入图片描述在这里插入图片描述

  • 原始特征向量维度非常大,高度稀疏,为了更好的发挥DNN模型学习高阶特征的能力,设计子网络结构(从输入层=>嵌入层),将原始的稀疏表示特征映射为稠密的特征向量。(Input Layer => Embedding Layer)
  • 不同field特征长度不同,但是子网络输出的向量具有相同维度k
  • 利用FM模型的隐特征向量V作为网络权重初始化来获得子网络输出向量

什么是embedding?

  • embedding是一种降维方式,将不同特征转换为维度相同的向量。
  • 在推荐系统中,对于离线变量我们需要转换成one-hot => 维度非常高,可以将其转换为embedding向量。
  • 原来每个Field i维度很高,都统一降成k维embedding向量。  Field  ( i ) = > e i \text { Field }(i)=>e_{i}  Field (i)=>ei
  • 方法:接入全连接层,对于每个Field只有一个位置为1,其余为0,因此得到的embedding就是图中连接的红线,对于Field 1来说就是 V 11 , V 12 , … , V 1 k V_{11}, V_{12}, \ldots, V_{1 k} V11,V12,,V1k

在这里插入图片描述

  • FM模型和Deep模型中的子网络权重共享,也就是对于同一个特征,向量Vi是相同的。

DeepFM中的模块

  • Sparse Features,输入多个稀疏特征。
  • Dense Embeddings,对每个稀疏特征做embedding,学习到他们的embedding向量(维度相等,均为k),因为需要将这些embedding向量送到FM层做内积。同时embedding进行了降维,更好发挥Deep Layer的高阶特征学习能力。
  • FM Layer
    一阶特征:原始特征相加。
    二阶特征:原始特征embedding后的embedding向量两两内积。
  • Deep Layer,将每个embedding向量做级联,然后做多层的全连接,学习更深的特征。
  • Output Units,将FM层输出与Deep层输出进行级联,接一个dense层,作为最终输出结果。

DeepFM模型效果对比

1.对于不同激活函数,不同模型的AUC和Logloss对比

  • relu和tanh比sigmoid更适合
  • relu对于所有深度模型来说更适合
    在这里插入图片描述

2.对于不同Dropout,不同模型的AUC和Logloss对比

  • Dropout一般设置为0.6-0.9之间最适合
    在这里插入图片描述

3.对于不同神经元个数,不同模型的AUC和Logloss对比

  • 每层的神经元个数越多,未必越好
  • 设置为200-400个比较适合
    在这里插入图片描述

4.对于不同隐层层数,不同模型的AUC和Logloss对比

  • 层数越多,起初效果明显,之后效果不明显,甚至更差,容易过拟合
  • 3层比较适合
    在这里插入图片描述

5.不同模型的训练时间对比

  • 不论是CPU还是GPU,DeepFM的执行时间都是最短的
    在这里插入图片描述

6.对于不同网络形状,不同模型的AUC和Logloss对比

  • 固定(200-200-200),增长(100-200-300), 下降(300-200-100), 菱形(150-300-150).
  • 采用固定的形状效果最好
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mr.Wiggles

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

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

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

打赏作者

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

抵扣说明:

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

余额充值