PaddleRec icon indicating copy to clipboard operation
PaddleRec copied to clipboard

关于DCN代码中的一些疑惑

Open tz28 opened this issue 3 years ago • 2 comments

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是独立的而不是共享的。

tz28 avatar Jan 28 '22 09:01 tz28

您好,感谢您对PaddleRec的关注,这里我检查了下,确实存在这种情况,我们会尽快修改,感谢反馈!

wangzhen38 avatar Jan 29 '22 02:01 wangzhen38

您好,感谢您对PaddleRec的关注,这里我检查了下,确实存在这种情况,我们会尽快修改,感谢反馈!

另外探讨一点就是,关于损失函数的正则项,paddle这种的实现似乎只对cross部分的w做了正则,dnn部分的w没有做。看原文论文,似乎应该是对w_cross,w_dnn都做了正则。

tz28 avatar Jan 29 '22 03:01 tz28