大发5分3d网 首页 > 学霸

从原理到实现,详解基于朴素ML思想的协同过滤推荐算法

2019-09-21 06:25 AI大发5分3d科技大本营

作者丨gongyouliu

编辑丨Zandy

来源 | 大数据与人工智能(ID: ai-big-data)

作者在《》、《》这两篇文章中介绍了几种经典的协同过滤推荐算法。我们在本篇文章中会继续介绍三种思路非常简单朴素的协同过滤算法,这几个算法的原理简单,容易理解,也易于工程实现,非常适合我们快速搭建推荐算法原型,并快速上线到真实业务场景中,作为其他更复杂算法的baseline。

具体来说,我们在本篇文章中会介绍利用关联规则、朴素贝叶斯(naive bayes)、聚类三类机器学习算法来做推荐的方法。并且还会介绍3个基于这三类算法核心思想的工业级推荐系统,这3个推荐系统被YouTube和Google分别用于视频和新闻推荐中(其中会介绍Google News的两个推荐算法),在YouTube和Google News早期产品中得到采用,并且在当时情况下效果是非常不错的,值得我们深入了解和学习。

一、基于关联规则的推荐算法

关联规则是数据挖掘领域非常经典的算法,该算法来源于一个真实的案例:“啤酒与尿布”的故事。该故事发生在20世纪90年代的美国沃尔玛超市中,沃尔玛的超市管理人员分析销售数据时发现了一个令人难以置信的现象:在某些特定的情况下,“啤酒”与“尿布”两件看上去毫无关系的商品会经常出现在同一个购物篮(用户一次购物所买的所有商品形象地称为一个购物篮)中,这种独特的销售现象引起了管理人员的注意,经过后续调查发现,这种现象出现在年轻的父亲身上。

在美国有婴儿的家庭中,一般是母亲在家中照看婴儿,年轻的父亲前去超市购买尿布。父亲在购买尿布的同时,往往会顺便为自己购买啤酒,这样就会出现啤酒与尿布这两件看上去不相干的商品经常会出现在同一个购物篮的现象。

沃尔玛发现了这一独特的现象,开始在卖场尝试将啤酒与尿布摆放在相同的区域,让年轻的父亲可以方便地同时找到这两件商品,并很快地完成购物;这样做沃尔玛超市就让这些客户一次购买了两件商品、而不是一件,从而获得了很好的商品销售收入,这就是“啤酒与尿布”故事的由来。

展开全文

下面我们给出关联规则的定义,假设是所有标的物的集合(对于沃尔玛超市来说,就是所有的商品集合)。关联规则一般表示为的形式,其中是的子集,并且。关联规则表示如果在用户的购物篮中,那么用户有很大概率同时购买了。通过定义关联规则的度量指标,一些常用的关联规则算法(如Apriori)能够自动地发现所有关联规则。

关联规则的度量指标主要有支持度(support)和置信度(confidence)两个,支持度是指所有的购物篮中包含的购物篮的比例(即同时出现在一次交易中的概率),而置信度是指包含的购物篮中同时也包含的比例(即在给定的情况下,出现的条件概率)。它们的定义如下:

支持度越大,包含的交易样本越多,说明关联规则有更多的样本来支撑,“证据”更加充分。置信度越大,我们更有把握从包含的交易中推断出该交易也包含。关联规则挖掘中,我们需要挖掘出支持度和置信度大于某个阈值的关联规则,这样的关联规则才更可信,更有说服力,泛化能力也更强。

有了关联规则的定义,下面我们来讲解怎么将关联规则用于个性化推荐中。对于推荐系统来说,一个购物篮即是用户操作过的所有标的物的集合。关联规则 表示的意思是:如果用户操作过 中的所有标的物,那么用户很可能喜欢 中的标的物。有了这些说明,那么利用关联规则为用户 生成推荐的算法流程如下(假设 所有操作过的标的物集合为 ):

1. 挖掘出所有满足一定支持度和置信度(支持度和置信度大于某个常数)的关联规则;

2. 从1中所有的关联规则中筛选出所有满足的关联规则;

3. 为用户生成推荐候选集,具体计算如下: