推荐类的算法
① 推荐系统中的BPR算法
一、什么是BPR算法?
BPR算法,全称为贝叶斯个性化排序(Bayesian Personalized Ranking),是一种常用的推荐系统算法。它主要利用用户的隐式反馈,如点击、收藏等,通过对问题进行贝叶斯分析,得到最大后验概率来对物品进行排序,从而产生推荐。
二、BPR算法的基本原理
1.符号定义:
U:用户集
I:物品集
S:隐式反馈集
u:用户u的偏好
此关系满足完整性、反对称性和传递性约束
2.训练数据的预处理:
首先对隐式反馈矩阵进行预处理,得到训练数据集
3.两个基本假设:
BPR算法的基本思想是利用最大化后验概率来确定所有item的正确个性化排序
4.BPR的推导:
根据贝叶斯公式得[公式]
因为BPR假设用户的排序和其他用户无关,那么对于任意一个用户u来说,P(>u)对所有的物品都为一个常数,所以最大化,等价于最大化
这个最大化目标可以分为两部分,左边的部分与数据集有关,右边部分P(θ)与数据集无关
我们先最大化左边的部分[公式]
根据完整性和反对称性约束,上式可以简化成
而对于
这个概率,可以使用下面这个式子来代替:
其中,
事实上[公式] 也可以取其他满足完整性、反对称性和传递性三个约束条件的其他函数,BPR的最先提出者使用sigmod函数是为了方便接下来的计算
这儿的
同样可以是任何关于模型参数向量θ的实值函数,前提是该函数能映射出用户u与物品i和j之间的关系
于是第一部分的优化目标最终变成了
接下来我们再对第二部分P(θ)进行最大化
由于θ的分布是未知的,为了方便我们的计算,不妨假设其服从均值为0,协方差矩阵为的正态分布
于是最大化变成了求解下式的最大值
三、一个BPR算法的求解实例
在上一节的BPR算法的推导中,我们假设θ为某个模型的参数向量,本节我们讨论当这个模型为矩阵分解模型时,BPR算法的求解方法
此时我们的预测目标是得到一个预测排序矩阵
这个矩阵可以被分解为
,其中W为|U|×k维矩阵,H为|I|×k维矩阵,k远小于|U|和|I|
由于BPR是基于用户维度的,所以对于任意一个用户u,对应的任意一个物品i我们期望有:
[公式] 表示物品i对于用户u的排序优先度
此时我们再令
可得到最终需要求解的最大对数后验估计函数
这个式子对θ求偏导后,可以用梯度上升法或者牛顿法等方法来优化求解模型参数
② 个性化推荐算法有哪些
个性化推荐算法主要有以下几种:
1. 协同过滤算法
协同过滤是推荐系统中最常见的一类算法。它基于用户的行为数据,如购买记录、浏览记录等,找出具有相似兴趣的用户群体,然后将相似用户群体喜欢的物品推荐给当前用户。这种算法可以分为基于用户的协同过滤和基于物品的协同过滤。
2. 内容推荐算法
内容推荐主要基于物品的内容特征进行推荐。它通过分析物品的特征,如文本、图片、音频等,提取物品的内容信息,然后计算物品之间的相似度,将相似的物品推荐给用户。这种算法要求物品有明确的特征描述。
3. 深度学习推荐算法
深度学习在推荐系统中也发挥了重要作用。利用深度学习的模型,如神经网络,可以处理大量的用户行为数据,并提取出深层次的用户兴趣特征。常见的深度学习推荐算法包括基于神经网络的协同过滤、基于序列的推荐等。
4. 混合式推荐算法
混合式推荐算法是结合多种推荐技术的一种推荐方法。它将不同的推荐算法进行组合,如结合协同过滤和深度学习等方法,以提高推荐的准确性。混合式推荐算法可以根据不同的场景和需求进行灵活调整。
以上便是主要的个性化推荐算法。随着技术的不断发展,还会有更多的新算法涌现,以更好地满足用户的个性化需求。