代码角度分析DeepFM

DeepFM架构

embedding+Factorization machines(FM)+Deep
在这里插入图片描述

程序中的输出

在这里插入图片描述

很明显,又两个部分组成FM+DEEP

FM

前者由y_first_order与y_second_order组成(对应FM的两个部分)维度分别为特征下标与embedding矩阵的size
在这里插入图片描述

在这里插入图片描述

DEEP

在这里插入图片描述
由多层FC组成维度为最后一层的神经元个数(参数)
(None-BATCHSIZE)

self.out

由上面两个部分拼接后进行一个线性回归得到最终的解

数据集

在这里插入图片描述

Xi

一个field代表一个特征,具体值影响one-hot
len(xi[0])相当于特征个数(如特征颜色)
xi[0][0]相当于这个特征+值(构建字典…)所对应的feature
(应该是这样理解)

Xv

上面feature对应的值
(个人感觉主要考虑到有连续的属性所以加了此项)

y

标签

过程

embeddings

在这里插入图片描述

在这里插入图片描述

基于Xi的值feature,进行一个embedding
(相当于构建一个矩阵feature-size*embedding-size)
基于具体feature找行得到len(xi[0])*embedding-size
再与xv,进行tf.multiply得到embedding层的输出

y_first_order

在这里插入图片描述

FM的线性回归过程,未使用embeddings

y_second_order

在这里插入图片描述
FM的后面过程
(why=-)

Deep

在这里插入图片描述
对embeddings后的数据拉伸为一维进行全连接层的叠加

loss

在这里插入图片描述
self.out是一维数据(二分类CTR)

参考

https://github.com/ChenglongChen/tensorflow-DeepFM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值