DeepFM理论

博客围绕CTR预估展开,指出输入数据经one - hot编码后维度高且稀疏,关键是高效提取组合特征。介绍了LR、FM等模型的缺点,如难以兼顾高低阶特征、依赖人工特征工程。重点阐述DeepFM在Wide&Deep基础上改进,能同时学习高低阶特征,无需预训练和人工特征工程,且训练更快更精确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CTR预估

CTR预估数据的特征:输入数据包括类别型和连续型数据,类别型数据在经过one-hot编码之后维度非常的高,而且非常稀疏。
CTR预估的重点在于学习组合特征(二阶,三阶甚至高阶的),高阶和低阶的组合特征都非常重要。关键问题是:如何高效的提取这些组合特征,一种就是引入领域知识人工进行特征工程,凡是弊端是高阶组合特征非常难提取,会耗费极大的人力。而且有些组合特征是隐藏在数据中的,无法进行人工提取出来;

其他方法的缺点

在DeepFm提出之前,已经有LR,FM,FFM,FNN,PNN,Wide&Deep模型,这些模型在CTR或者是推荐系统中被广泛使用;

  1. LR:无法提取高阶的组合特征,表达能力受限,只能处理线性可分或者近似线性可分的问题;

  2. FM:通过隐向量做内积来表示组合特征,从理论上解决了低阶和高阶组合特征提取的问题。但是实际应用中受限于计算复杂度,一般只考虑到二阶交叉特征;

  3. FFM:增加了Field的概念;在这里插入图片描述
    深度模型的引入:使用CNN或者RNN来做CTR预估的模型

  4. FNN:先使用预先训练好的FM,得到隐向量,然后作为DNN的输入来训练模型。缺点在于:受限于FM预训练的效果,只有deep部分且没有对低阶模型建模;

  5. PNN:为了捕获高阶组合特征,在embedding layer和first hidden layer之间增加了一个product layer。根据product layer使用内积、外积、混合分别衍生出IPNN, OPNN, PNN*三种类型;

无论是FNN还是PNN,他们都有一个绕不过去的缺点:对于低阶的组合特征,学习到的比较少。而前面我们说过,低阶特征对于CTR也是非常重要的。

Google意识到了这个问题,为了同时学习低阶和高阶组合特征,提出了:

  1. Wide&Deep模型。它混合了一个线性模型(Wide part)和Deep模型(Deep part)。这两部分模型需要不同的输入,而Wide part部分的输入,依旧依赖人工特征工程。
    在这里插入图片描述

该方法解决的问题

其他模型普遍存在两个问题:

  1. 偏向于提取低阶或者高阶的组合特征,不能够同时提取这两种类型的特征;
  2. 需要专业的领域知识来做特征工程;
    DeepFM在Wide&Deep的基础上进行改进,成功的解决了这两个问题,并做了一些修改;

具体方法实现

在这里插入图片描述

FM Component

FM部分的输出由两部分组成,一个Addition Unit,多个内积单元
在这里插入图片描述

Addition Unit反应的是一阶特征,内积单元反应的是二阶的组合特征对于预测结果的影响。
输入到输出单元的部分并不是一个标量,而是一个向量,最终的维度是:field_size+embedding_size
第一项 &lt; w , x &gt; &lt;w,x&gt; <w,x>,w的维度就是(feature_size,1),直接把X和W做内积即可。
embedding size对应的是第二项的输出,第二项化简过后的公式:
在这里插入图片描述
FM Component总结:

  1. FM模块实现了对于1阶和二阶组合特征的建模
  2. 没有使用预训练
  3. 没有人工特征
  4. embedding矩阵的大小是:特征数量*嵌入维度;
    需要训练的有两部分
  5. input_vector和Addition Unit相连的全连接层,也就是1阶的Embedding矩阵。
  6. Sparse Feature到Dense Embedding的Embedding矩阵,中间也是全连接的,要训练的是中间的权重矩阵,这个权重矩阵也就是隐向量V。
Deep Component

在这里插入图片描述

Deep Component是用来学习高阶组合特征的,网络里面黑色的先是全连接层,参数需要神经网络去学习;如果把one-hot数据直接放入到DNN中,参数非常多,没有那么多数据去训练这样一个网络,所以增加了一个embedding层,用于降低维度。

embedding层

尽管输入的长度不同,但是映射后长度都是相同的;embedding层的参数其实是全连接的weights,通过网络自己学习到的:
在这里插入图片描述

而且FM和Deep模块共享feature embedding的;

该方法的优点

  • 不需要预训练FM得到隐向量
  • 不需要人工特征工程,端到端的训练;
  • 能同时学习低阶和高阶的组合特征;
  • FM模块和Deep模块共享feature embedding部分,可以更快的训练,以及更精确的训练学习;相比之下,Wide&Deep输入向量中包含了大量人工设计的pairwise组合特征,增加了计算复杂度;
  • 共享feature embedding使得在反向传播时,模型学习feature embedding,而feature-embedding又在前向传播时同时影响低阶和高阶特征的学习,使得学习更加的准确;

参考资料:计算广告CTR预估系列(一)–DeepFM理论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值