DeepFM架构

embedding+Factorization machines(FM)+Deep
代码角度分析DeepFM

程序中的输出

代码角度分析DeepFM

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

FM

前者由y_first_order与y_second_order组成(对应FM的两个部分)维度分别为特征下标与embedding矩阵的size
代码角度分析DeepFM

代码角度分析DeepFM

DEEP

代码角度分析DeepFM
由多层FC组成维度为最后一层的神经元个数(参数)
(None-BATCHSIZE)

self.out

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

数据集

代码角度分析DeepFM

Xi

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

Xv

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

y

标签

过程

embeddings

代码角度分析DeepFM

代码角度分析DeepFM

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

y_first_order

代码角度分析DeepFM

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

y_second_order

代码角度分析DeepFM
FM的后面过程
(why=-)

Deep

代码角度分析DeepFM
对embeddings后的数据拉伸为一维进行全连接层的叠加

loss

代码角度分析DeepFM
self.out是一维数据(二分类CTR)

参考

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

相关文章:

  • 2022-12-23
  • 2021-05-15
  • 2021-05-20
  • 2021-05-14
  • 2022-12-23
  • 2021-09-23
  • 2021-12-04
  • 2021-04-01
猜你喜欢
  • 2022-12-23
  • 2021-07-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-13
  • 2021-12-25
相关资源
相似解决方案