DeepFM 中参数的理解

 上图为Sparse Feature 层到 Dense Embedding 层的神经元连接示意图。

1、每个圆点代表一个神经元,神经元本身是没有数值的,我们需要知道的是Sparse Feature 到 Embedding 层之间连线的权重,这个权重就是所谓的Embedding Vector。

2、一共有m个field,每个field对应k个嵌入维数,所以嵌入层神经元的个数为m*k。

3、Embedding Vector的确定:

      在FM里得到的隐变量Vik现在作为了嵌入层网络的权重。假设我们的k=5,首先,对于输入的一条记录,同一个field 只有一个位置是1,那么在由输入得到embedding vector的过程中,输入层只有一个神经元起作用,得到的embedding vector其实就是输入层到embedding层该神经元相连的五条线的权重,即vi1,vi2,vi3,vi4,vi5。这五个值组合起来就是我们在FM中所提到的Vi。在FM部分和DNN部分,这一块是共享权重的,对同一个特征来说,得到的Vi是相同的。

     一共有m 个field ,所以得到的embedding vector 是 m*k 的矩阵。(这里是错的,正确的是一共有N个特征,得到N*k的矩阵,因为即便是特征的值为0,但是它依然参与了计算。样本1的第一个特征为0,但是样本2的第一个特征就为1了)

  2019-4-29 修正:看实现的代码,这里,就是m*k 。 N个特征作用在<w,x>这里的 w [1,N]。m个field作用在嵌入层。

      field 经过one-hot 编码之后,假设field编码之后的长度为n, 对应的input layer 只有一个位置是1,其余n-1位置是0。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值