DeepFM模型介绍

DeepFM模型结合了FM模型的二阶特征交叉和DNN的高阶特征学习,用于点击率预估。文章介绍了FM模型的原理、优势及算法效率,以及DeepFM如何解决FM的局限性,并提供了代码实践示例。
摘要由CSDN通过智能技术生成

场景

CTR预估是目前推荐系统的核心技术,其目标是预估用户点击推荐内容的概率,在特征工程中,二阶特征的交叉非常重要,但是人为的特征交叉及其繁琐,且需要很多领域和业务经验。FM模型具有特征自动交叉的作用,能够学到二阶特征,但是无法学习到更高阶的特征,DNN可以学习到高阶特征组合,结合FM和DNN,产生了DeepFM模型。本文简单的介绍了FM模型和DeepFM模型,并给出了一些代码案例。

FM模型

作用:将特征向量化后,利用特征向量的点积作为交叉项的权重,从而进行自动二阶交叉。
优点:泛化能力强,尤其是大规模稀疏特征场景,对于没有同时出现的特征交叉也可以学到权重。
在这里插入图片描述
本质上,MF模型是FM模型的特例,MF可以被认为是只有User ID 和Item ID这两个特征Fields的FM模型,MF将这两类特征通过矩阵分解,来达到将这两类特征embedding化表达的目的。而FM则可以看作是MF模型的进一步拓展,除了User ID和Item ID这两类特征外,很多其它类型的特征,都可以进一步融入FM模型里,它将所有这些特征转化为embedding低维向量表达,并计算任意两个特征embedding的内积,就是特征组合的权重

算法效率:
从FM的原始数学公式看,因为在进行二阶(2-order)特征组合的时候,假设有n个不同的特征,那么二阶特征组合意味着任意两个特征都要进行交叉组合,所以可以直接推论得出:FM的时间复杂度是n的平方。
二阶特征交叉公式改写后,复杂度为:kn
在这里插入图片描述

DeepFM模型

DeepFM模型包含FM和DNN两部分,FM模型可以抽取low-order特征,DNN可以抽取high-order特征。无需Wide&Deep模型人工特征工程
在这里插入图片描述
在这里插入图片描述

代码实践

特征分为两种:
onehot特征:用户属性,歌曲属性等
连续特征:用户在不通类目下的偏好,歌曲转化率等。
FM部分输入:onehot特征
DNN部分数据:concat (onehot+dense)
输入:feat_index (B x F) feat_value (B x F)
embedding 层, 对每个特征映射到k维度的embedding向量: B X F X K

 # model
self.embeddings = tf.nn.embedding_lookup(self.weights["feature_embeddings"], self.feat_index) 
feat_value = tf.reshape(self.feat_value, shape=[-1, self.field_size, 1])
self.embeddings = tf
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值