实战十三:基于BPR算法实现个性化排名推荐 代码+数据

任务描述:以用户的历史购买行为为基础,针对每个用户,推荐其可能购买的商品排序

  • 方法概述

    • BPR

      首先使用BPR(Bayesian Personalized Ranking)推荐模型。BPR中文名称为贝叶斯个性化排序,它是基于矩阵分解的排序算法。它的算法训练集是一个个的三元组$$,其表示对用户u来说,商品$i$的优先级要高于商品$j$。

      我们的预测目标是得到一个预测排序矩阵$\hat{X}$,这个矩阵可以被分解为$\hat{X}:=W H^{t}$,其中$W$为$U×k$维矩阵,$H$为$I×k$维矩阵,$k$远小于$U$和$I$

      由于BPR是基于用户维度的,所以对于任意一个用户u,对应的任意一个物品i我们期望有:^xui=〈wu,hi〉=k∑f=1wuf⋅hifx^ui=〈wu,hi〉=∑f=1kwuf⋅hif

      $x^{\wedge} u i$表示物品$i$对于用户$u$的排序优先度。此时我们再令^xuij:=^xui−^xujx^uij:=x^ui−x^uj

      可得到最终需要求解的最大对数后验估计函数∑(u,i,j)∈DSlnσ(^xui−^xuj)−λθ∥θ∥2∑(u,i,j)∈DSln⁡σ(x^ui−x^uj)−λθ‖θ‖2

      这个式子对${\theta}$求偏导后,可以用梯度上升法或者牛顿法等方法来优化求解模型参数

  • 流程图

你可能感兴趣的:(机器学习实战100例,算法,python,开发语言,推荐,人工智能)