DeepFM详细流程解析及建模演示

· 流程解析

关于DeepFM理论的说明,很多博客或论文已有说明,这里就不再赘述。下面主要是说一下模型如何使用以及在整个过程中,算法对数据做了些什么事

首先还是这张图:

一眼看过去,超级复杂是不是?确实,但是别慌,我们一小块一小块地看。

1、Sparse Feature框框

Sparse Feature是指离散型变量。比如现在我有数据:xx公司每个员工的姓名、年龄、岗位、收入的表格,那么年龄和岗位就属于离散型变量,而收入则称为连续型变量。这从字面意思也能够理解。

好,现在Sparse Feature框里表示的是将每个特征经过one-hot编码后拼接在一起的稀疏长向量,黄色的点表示某对象在该特征的取值中属于该位置的值

2、Dense Embedding框框

把这些离散型变量经过热编码后又想干嘛?这个长长的向量只有0,1两种取值,并且非常稀疏,如果直接采用权重去加和,将会丢失很多权重,这样会造成最终结果不准确。所以,得想个办法把这个稀疏向量变得稠密一些。在机器学习中关于对离散值的数据预处理有很多种方式,常见的有数据分箱嵌入向量等,这个Dense Embedding就是指的将离散型变量嵌入为连续型变量。什么意思呢?

还是上面说的那个表格,比如年龄共有50个去重数值,岗位有100个去重数值,现在是两个特征。那么经过Embedding之后,年龄就变为了50 x m的矩阵,岗位就变成了100 x m的矩阵,这个m是指嵌入向量的维数,一般取4、8、16。下面的图示可能会比较直观一些:

最终表格就变成了这样:

也就是说,最终入模的数据表长这样:

比如“漩涡鸣人”的特征向量可能就是这样的:

(x1,x2,...,xm,x1,x2,...,xm,...,···,x1,x2,...,xn)

x1,x2,...,xm 表示他的年龄的Embedding向量,x1,x2,...,xm 表示他的岗位的Embedding向量,... 表示他的其他属性的Embedding向量x1,x2,...,xn 表示他的收入等其他连续型特征的归一化或标准化后的值。

一句话,就是拼接起来。

实际上,在DeepFM中,对分析对象也作了Embedding的,这里为了讲明Embedding的原因和原理,故此展示。

3、FM Layer框框

先给出FM的公式:

看黑色线(Normal Connection)连接的两端,一边是Sparse Fea

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Eureka丶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值