PaddleRec
PaddleRec copied to clipboard
关于DCN代码中的一些疑惑
DCN代码中的cross网络部分:https://github.com/PaddlePaddle/PaddleRec/blob/master/models/rank/dcn/net.py#L112
def _cross_layer(self, input_0, input_x):
input_w = paddle.multiply(input_x, self.layer_w)
input_w1 = paddle.sum(input_w, axis=1, keepdim=True)
input_ww = paddle.multiply(input_0, input_w1)
input_layer_0 = paddle.add(input_ww, self.layer_b)
input_layer = paddle.add(input_layer_0, input_x)
return input_layer, input_w
这段代码,每一层cross的参数w都是共享的self.layer_w,是否与原论文中不一致?看愿论文中的公式 $$x_{l+1} = x_0x_l^Tw_l + b_l + x_l$$ 每一层的w是独立的而不是共享的。
您好,感谢您对PaddleRec的关注,这里我检查了下,确实存在这种情况,我们会尽快修改,感谢反馈!
您好,感谢您对PaddleRec的关注,这里我检查了下,确实存在这种情况,我们会尽快修改,感谢反馈!
另外探讨一点就是,关于损失函数的正则项,paddle这种的实现似乎只对cross部分的w做了正则,dnn部分的w没有做。看原文论文,似乎应该是对w_cross,w_dnn都做了正则。