基于Bayes(贝叶斯)的推荐算法

1.1原理介绍

Bayes(贝叶斯)定理是关于随机事件A和B的条件概率相互转化的一则定理,贝叶斯公式如下:
在这里插入图片描述
上述公式中,P(Bi|u)表示的含义是在发生了事件u的情况下,发生事件Bi的概率,P(Bi)表示事件Bi的发生概率,P(u)表示事件u的发生概率。

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

1.2业务实践

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

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的应用推荐给用户。

1.3实例代码

参考来源
[1] https://mp.weixin.qq.com/s/9F_BRgnhAxP-nALtBdIZpg

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值