We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
你好,我最近阅读了PaddlePaddle对ESCM2模型的代码实现,我对其中的 IPW 代码部分有点疑问:
def counterfact_ipw(self, loss_cvr, ctr_num, O, ctr_out_one): PS = paddle.multiply( ctr_out_one, paddle.cast( ctr_num, dtype="float32")) min_v = paddle.full_like(PS, 0.000001) PS = paddle.maximum(PS, min_v) IPS = paddle.reciprocal(PS) batch_shape = paddle.full_like(O, 1) batch_size = paddle.sum(paddle.cast( batch_shape, dtype="float32"), axis=0) #TODO this shoud be a hyparameter IPS = paddle.clip(IPS, min=-15, max=15) #online trick IPS = paddle.multiply(IPS, batch_size) IPS.stop_gradient = True loss_cvr = paddle.multiply(loss_cvr, IPS) loss_cvr = paddle.multiply(loss_cvr, O) return paddle.mean(loss_cvr) 请问为什么需要乘 "ctr_num" 和 "batch_size" 呢?这跟ESCM2论文中描述的 IPW 公式不太一样?通常来说IPW不就是直接除以 CTR 的概率吗 ?
The text was updated successfully, but these errors were encountered:
No branches or pull requests
你好,我最近阅读了PaddlePaddle对ESCM2模型的代码实现,我对其中的 IPW 代码部分有点疑问:
The text was updated successfully, but these errors were encountered: