PaddlePaddle / PaddleRec

Recommendation Algorithm大规模推荐算法库,包含推荐系统经典及最新算法LR、Wide&Deep、DSSM、TDM、MIND、Word2Vec、Bert4Rec、DeepWalk、SSR、AITM,DSIN,SIGN,IPREC、GRU4Rec、Youtube_dnn、NCF、GNN、FM、FFM、DeepFM、DCN、DIN、DIEN、DLRM、MMOE、PLE、ESMM、ESCMM, MAML、xDeepFM、DeepFEFM、NFM、AFM、RALM、DMR、GateNet、NAML、DIFM、Deep Crossing、PNN、BST、AutoInt、FGCNN、FLEN、Fibinet、ListWise、DeepRec、ENSFM,TiSAS,AutoFIS等,包含经典推荐系统数据集criteo 、movielens等
https://paddlerec.readthedocs.io/
Apache License 2.0
4.26k stars 721 forks source link

关于xdeepfm代码中的一些疑惑 #704

Open tz28 opened 2 years ago

tz28 commented 2 years ago

hi, xdeepfm代码在实现CIN网络结构(代码:https://github.com/PaddlePaddle/PaddleRec/blob/master/models/rank/xdeepfm/net.py#L130) 时,卷积部分Conv2D中的in_channels参数设置是否和原论文不太一致? 原论文如下图所示: image

以下为个人对原论文中(b)部分的示意图理解,经过(a)得到的Z^{k+1}的维度为m H_k D,在(b)中为了压缩,使用了H_{k+1}个大小为​Hk*m的向量(矩阵)做了一波点乘内积,此时得到是H{k+1}个向量的第一个元素,因为Z^{k+1}的channel为D,因此最终得到的x^{k+1}为H_{k+1}个D维向量。

如上所述,卷积in_channels应该为D,即embedding维度,而不是paddle版本实现xdeepfm中的last_s * self.num_field,请确认。

wangzhen38 commented 2 years ago

您好,论文上看起来确实是这样,但是一开始复现模型的时候,是以参考代码为主来实现的,感谢反馈,我们会关注该问题的! 另外,我们现在鼓励使用者遇到格式错误、代码bug等问题时主动提pr修复,合入后,我们会将您的贡献记录在主页的贡献者列表中噢~