BPR算法笔记

推荐对级排序模型

对级排序模型,

目标函数:如何让逆序对最小。

目标函数.png

使用铰链损失(Hinge Loss)作为代理损失函数

L_{hinge}(f,u,x_i^+,x_j^-)=(1-(f(u,x_i^+)-f(u,x_j^-)))^+

(1-(f(u,x_i^+)-f(u,x_j^-)))^+=max(1-(f(u,x_i^+)-f(u,x_j^-)),0)

指数损失

L_{exp}(f,u,x_i^+,x_j^-)=exp(-(f(u,x_i^+)-f(u,x_j^-)))

逻辑斯蒂损失

也是BPR算法的损失

L_{logistic}(f,u,x_i^+,x_j^-)=log(1+exp(-(f(u,x_i^+)-f(u,x_j^-))))

bpr

目标:最大化后验概率p(\theta|\Omega)

给定训练集,寻找参数集合,概率最大化。

贝叶斯公式。

P(\Theta|>_u) \propto p(>_u|\Theta)p(\Theta)

去掉了p(>_u),因为对于样本是一样的。

p(\Theta)正则项。

两个假设(通过独立假设,把联合概率转换成简单概率相乘)

1.用户之间的偏好行为相互独立

2.同一用户对不同项目对的偏序相互独立

\prod_{u\in U}p(>_u|\Theta)=\prod_{(u,i,j)\in D_s}p(i>_uj|\Theta)

只考虑i属于正反馈样本集,j属于负反馈样本集的情况。

概率如何得到呢?

用sigmoid函数,来估计p(i\succ_u j |\theta)

P(i\succ_u j |\Theta):=\sigma(\hat{r}_{uij}(\Theta))

\hat{r}_{uij}:=\hat{r}_{ui}-\hat{r}_{uj}

推导.png
伪码.png

https://blog.csdn.net/JHSHUN/article/details/108908943

http://d0evi1.com/bpr/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容