情感测试
情感测试

您现在的位置: 情感测试简介_情感测试玩法 > 情感测试玩法 > 深度推荐系统DeepFM

深度推荐系统DeepFM

发布时间:2021-5-14 19:23:01   点击数:

摘要:DeepFM的思想就是结合FM在一阶和二阶特征的简洁高效和深度学习在高阶特征交互上的优势,同时通过共享FM和DNN的Embedding来减少参数量和共享信息,从而得到更好的模型.

1模型结构

DeepFM包含两部分:神经网络部分与因子分解机部分,分别负责低阶特征的提取和高阶特征的提取。这两部分共享同样的输入。DeepFM的预测结果是把FM和DNN的结果加起来用sigmoid激活函数.

1.1FM部分

FMLayer是由一阶特征和二阶特征Concatenate到一起在经过一个Sigmoid得到logits.

1.2Deep部分

深度部分是一个前馈神经网络。与图像或者语音这类输入不同,图像语音的输入一般是连续而且密集的,然而用于CTR的输入一般是及其稀疏的。因此需要重新设计网络结构。具体实现中为,在第一层隐含层之前,引入一个嵌入层来完成将输入向量压缩到低维稠密向量。

2代码部分

首先定义一个FM_Layer层,重写Layer的方法.

classFM_Layer(Layer):def__init__(self):super(FM_Layer,self).__init__()defcall(self,inputs):#优化后的公式为:0.5*求和(和的平方-平方的和)=Bx1concated_embeds_value=inputs#Bxnxksquare_of_sum=tf.square(tf.reduce_sum(concated_embeds_value,axis=1,keepdims=True))sum_of_square=tf.reduce_sum(concated_embeds_value*concated_embeds_value,axis=1,keepdims=True)#Bx1xkcross_term=square_of_sum-sum_of_square#Bx1xkcross_term=0.5*tf.reduce_sum(cross_term,axis=2,keepdims=False)#Bx1returncross_termdef

转载请注明:http://www.zmax-alibaba.com/qgwf/137222.html

网站简介 | 发布优势 | 服务条款 | 隐私保护 | 广告合作 | 合作伙伴 | 版权申明 | 网站地图

当前时间: