关于DeepFM模型的Embedding层问题
请教下deepfm/net.py里的FM layer里为何只总共只有一个embedding layer(self.embedding)?
实际上对于不同的categorical feature应该是各有一个不同的embedding层。不同特征共享同一个embedding层是没有意义也行不通的吧。
另外,即使在FM框架下,各个embedding的embedding_dim(嵌入向量维度)是相同的,num_embeddings( 嵌入字典的大小)也可能是不同的,但模型__init__部分并没有对各个特征分别输入num_embeddings,可能可以用,但感觉是有些问题的吧。
不知是否理解有误,期待解答。
参考某pytorch版本实现里的embedding层计算

我在看wide&deep实现的时候也存在这种情况,求官方解答一下。
deepfm中的FM layer有self.embedding_one和self.embedding两个embedding layer。在这里我们在__init__部分直接使用超参数定义了num_embeddings,不需要如pytorch实现时一个个append。
wide&deep在实现时关于embedding的问题您是否想表达如这个issue所示:https://github.com/PaddlePaddle/PaddleRec/issues/470
明白了,就是把所有离散特征的id映射到一个字典,不同离散特征做好区分就好了,谢谢解答~