龙空技术网

「推荐算法」基于bayes的推荐算法

智能推荐系统 259

前言:

目前我们对“bpr算法代码讲解”大约比较关怀,同学们都想要知道一些“bpr算法代码讲解”的相关资讯。那么小编也在网上收集了一些对于“bpr算法代码讲解””的相关知识,希望看官们能喜欢,咱们快快来了解一下吧!

导读

贝叶斯个性化推荐算法(BPR,Bayes Personalized Ranking)利用Bayes定理把每个用户对应的所有商品按喜好排序,在实际产品中,BPR之类的推荐排序在海量数据中选择及少量数据做推荐的时候有优势,因此在某宝某东等大厂的应用中也很广泛。

一、算法简介

Bayes(贝叶斯)定理是关于随机事件A和B的条件概率相互转化的一则定理,贝叶斯公式如下:

上述公式中,P(Bi|u)表示的含义是在发生了事件u的情况下,发生事件Bi的概率,P(Bi)表示事件Bi的发生概率,P(u)表示事件u的发生概率。

如何利用上述定理进行个性化推荐,下面我们举个业务实践的例子。

二、业务实践

以应用商店中应用推荐为例,业务场景:当用户进入应用商店,根据用户已安装应用列表给用户推荐应用。

Step1:问题分解

给定一个用户u,给该用户推荐应用B,根据贝叶斯公式用户安装概率为:

设用户的安装列表为{A1 ,…, An},把用户u看作是事件{A1 ,…, An},为了简化问题,假设Ak相互独立,那么:

上述式子可以化为:

在推荐场景中,是对一个用户计算不同应用的得分,然后作降序进行推荐。而对于同一个用户P(u)是不变的,所以我们可以用以下公式作为排序依据:

全库的应用集合记为,所以在贝叶斯推荐模型中主要参数有两个集合,分别为:

Step2:数据准备

首先收集历史的用户在应用商店中应用展示记录,并且关联用户在展示时刻的安装列表,数据格式如下:

表1:初始数据

Step3:模型参数计算

参数集合{P(B)|B∈I}的计算:给定一个应用B. 根据表1,首先中“展示应用=B”的样本数,记为showNumsB然后计算“展示应用=B”且“用户是否安装=1”的样本数记为installNumsB 那么:

参数集合{P(Ai|B)|B∈I,Ai∈I}给定一个应用B及Ai 根据表1,首先计算“Ai∈已安装列表”且“展示应用=B”的样本数,记为showNumsAi,B . 然后计算“Ai∈已安装列表”且“展示应用=B”且“用户是否安装=1”的样本数,记为installNumsAi,B 那么:

在计算P(Ai|B)可能会遇到样本不足的情况,导致计算出异常值,为了避免这类情况,需要根据经验加个最少安装数限制,这里我们定义为最少安装次数为100,那么:

其中P(Ai)是表示在所有用户中,安装了应用Ai用户的占比。

Step4:给用户推荐应用

给定一个用户u,及一批候选推荐应用池,我们通过上述方法计算用户u对候选池中每个应用的得分sortScore(u,B),根据这个值做降序,取top 10的应用推荐给用户。

标签: #bpr算法代码讲解