Bayesian Personalized Ranking(BPR个性化排序)

小编 2026-06-04 阅读:1603 评论:0
如题,在推荐系统中我们在推荐给用户的商品中一定是需要先后顺序的,即我们需要关心的是用户将会更喜欢我们所推荐的商品,从而得到–个性化排序。但是没错,前几篇所整理的方法目的也是为了预测用户喜好,...

\"在这里插入图片描述\"
如题,在推荐系统中我们在推荐给用户的商品中一定是需要先后顺序的,即我们需要关心的是用户将会更喜欢我们所推荐的商品,从而得到–个性化排序。但是没错,前几篇所整理的方法目的也是为了预测用户喜好,但往往我们只能通过观察到的正例去估计暗含着负例与缺失值的“?”中,而实际填充也如上图一样,一般用0做填充。然后基于此计算出得分,从某种意义上也可以得到用户优先级的排序,所以首先同样的我们需要解决的问题还是:
对于用户集U和物品集I的对应的 U × I 的预测排序矩阵 X,避免矩阵分解所需要的稠密性,同样采取分解为两个矩阵,即:X=WHT\\overline{X} = WH^TX=WHT然后同样需要寻找最好的W和H,使其与真正X的误差最小,但是与先前的SVD不同,不是尝试对项目打分再排序,而且从整个思想上进行优化,所以作为先验与后验的桥梁----贝叶斯的思想。

\"在这里插入图片描述\"
**首先为了排序,引入三元组的概念:即如果用户u在同时有物品 i 和 j 的时候点击了 i,那么定义三元组<u,i,j><u,i,j>,即对用户u来说,i 的排序要比 j 靠前。如上图中,在左侧显示了观测数据和一些未知的“?”数据,三元组处理后,变成在右侧的,“+” 表示用户更喜欢项 i 大于 j 项;“-” 表示更喜欢j而不是i。

基于用户的全序关系的贝叶斯就变成:
P(θ&gt;u)=P(&gt;uθ)P(θ)P(&gt;u)P(\\theta|&gt;_u) = \\frac{P(&gt;_u|\\theta)P(\\theta)}{P(&gt;_u)}P(θ>u)=P(>u)P(>uθ)P(θ)
其中W和H用θ\\thetaθ表示,为了得到最好的W,H,即得到最好的θ\\thetaθ,需要优化后面的这一堆,同样的分母(某用户的全序,对所有的都是物品一样)一样,可以先舍去不考虑。那么对于分子第一项可以有最大似然估计:uUP(&gt;uθ)=(u,i,j)(U×I×I)P(i&gt;ujθ)δ((u,i,j)D)(1P(i&gt;ujθ))δ((u,j,i)̸D)\\prod_{u \\in U}P(&gt;_u|\\theta) = \\prod_{(u,i,j) \\in (U \\times I \\times I)}P(i &gt;_u j|\\theta)^{\\delta((u,i,j) \\in D)}(1-P(i &gt;_u j|\\theta))^{\\delta((u,j,i) \\not\\in D) }uUP(>uθ)=(u,i,j)(U×I×I)P(i>ujθ)δ((u,i,j)D)(1P(i>ujθ))δ((u,j,i)̸D)其中δ(b)={1if&ThickSpace;b&ThickSpace;is&ThickSpace;true0else\\delta(b)= \\begin{cases} 1&amp; {if\\; b\\; is \\;true}\\\\ 0&amp; {else} \\end{cases}δ(b)={10ifbistrueelse
P(i >u j | θ)即<u,i,j>,i 排名高于 j。
但是其实,既然是排序–定义使 i 大于 j,那么就使P(i >u j|θ)出现的概率越大越好就行了。那么P(i&gt;ujθ)=σ(xuij(θ))σP(i &gt;_u j|\\theta) = \\sigma(\\overline{x}_{uij}(\\theta)),其中\\sigma函数用于优化计算P(i>ujθ)=σ(xuij(θ))σ而且如果要是一方的概率越大,那么另一方就小就好,那么自然期望他们之间的差异就越大即:xuij=xuixuj\\overline{x}_{uij} = \\overline{x}_{ui} - \\overline{x}_{uj}xuij=xuixuj而且这就已经直接是预测矩阵X中的对应位置的值了。即分子第一项变为:uUP(&gt;uθ)=(u,i,j)Dσ(xuixuj)\\prod_{u \\in U}P(&gt;_u|\\theta) = \\prod_{(u,i,j) \\in D} \\sigma(\\overline{x}_{ui} - \\overline{x}_{uj})uUP(>uθ)=(u,i,j)Dσ(xuixuj)
然后分子第二项P(θ)P(\\theta)P(θ),直接使用贝叶斯假设,即 θ\\thetaθ 符合正太分布,而总所周知,正太分布的对数形式是跟θ2||\\theta||^2θ2成比的!(除了优化式子外,居然还能曲线救国,漂亮的完成了正则化的作用??所以直接假设使用参数符合正太分布的操作设计很巧妙呀)那么整个下来的的式子就直接变成了:ln&ThickSpace;P(θ&gt;u)ln&ThickSpace;P(&gt;uθ)P(θ)=ln&ThickSpace;(u,i,j)Dσ(xuixuj)+lnP(θ)=(u,i,j)Dlnσ(xuixuj)+λθ2&ThickSpace;ln\\;P(\\theta|&gt;_u) \\propto ln\\;P(&gt;_u|\\theta)P(\\theta) = ln\\;\\prod\\limits_{(u,i,j) \\in D} \\sigma(\\overline{x}_{ui} - \\overline{x}_{uj}) + ln P(\\theta) = \\sum\\limits_{(u,i,j) \\in D}ln\\sigma(\\overline{x}_{ui} - \\overline{x}_{uj}) + \\lambda||\\theta||^2\\;lnP(θ>u)lnP(>uθ)P(θ)=ln(u,i,j)Dσ(xuixuj)+lnP(θ)=(u,i,j)Dlnσ(xuixuj)+λθ2

然后同样让我们求导,让我们使用梯度。(不过这里需要使用梯度上升法,因为为了求最大值,即求“上坡”)ln&ThickSpace;P(θ&gt;u)θ(u,i,j)D11+exuixuj(xuixuj)θ+λθ\\frac{\\partial ln\\;P(\\theta|&gt;_u)}{\\partial \\theta} \\propto \\sum\\limits_{(u,i,j) \\in D} \\frac{1}{1+e^{\\overline{x}_{ui} - \\overline{x}_{uj}}}\\frac{\\partial (\\overline{x}_{ui} - \\overline{x}_{uj})}{\\partial \\theta} + \\lambda \\thetaθlnP(θ>u)(u,i,j)D∑@font-face { font-family: "autolinktags"; src: url("https://www.seowoai.com/zb_users/plugin/AutoLinkTags/style/fonts/iconfont.woff2") format("woff2"), url("https://www.seowoai.com/zb_users/plugin/AutoLinkTags/style/fonts/iconfont.woff") format("woff"), url("https://www.seowoai.com/zb_users/plugin/AutoLinkTags/style/fonts/iconfont.ttf") format("truetype"); font-weight:normal; font-style:normal; }.tagslink::after { content:"\e613"; margin:2px 0 0 0px; font-size:12px; font-family:"autolinktags"; display:inline-block; vertical-align:top; }

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
标签列表