BPR loss sigmoid vs softplus
Hello, thanks for your implementation in the first place.
I notice that in BPR loss you used softplus instand of sigmiod, which is different from the original paper.
Could you please explain why do so? Thx~
They are same! If we use sigmoid, BPRloss = -logσ(pos-neg) = -log(1 / (1+e^-(pos - neg))). If we use softplus, BPRloss = softplus(neg - pos) = log(1+e^(neg - pos)) = -log(1 / (1+e^-(pos - neg))). they are equal. sigmoid(x) = 1 / (1 + e^(-x)); softplus(x) = log(1 + e^x) .
They are same! If we use sigmoid, BPRloss = -logσ(pos-neg) = -log(1 / (1+e^-(pos - neg))). If we use softplus, BPRloss = softplus(neg - pos) = log(1+e^(neg - pos)) = -log(1 / (1+e^-(pos - neg))). they are equal. sigmoid(x) = 1 / (1 + e^(-x)); softplus(x) = log(1 + e^x) .