DeepFM的实现问题
Created by: stasi009
看了Paddle_baseline_KDD2019下network_confv6.py中关于DeepFM的实现
作者在实现FM的embedding时,将embedding矩阵命名为: sparse_fm_param_attr = fluid.param_attr.ParamAttr(name="SparseFeatFactors", initializer=fluid.initializer.Normal( scale=1 / math.sqrt(sparse_feature_dim)))
而在实现Deep侧时,将名称也取为SparseFeatFactors param_attr=fluid.ParamAttr(name="SparseFeatFactors", initializer=fluid.initializer.Uniform()))
这样做的目的是为了实现DeepFM中“FM侧与DNN侧共享embedding”的设计思路吗?
如果是的话,又为什么二次调用的初始化方式不同?到底是按哪次的方式初始化的?
又为什么不在代码中,两次调用生成的embedding矩阵大小时,采用完全不同的长度变量?之所以没出问题,是因为这些变量的赋值恰好相同罢了。