天天看点

《推荐系统:技术、评估及高效算法》一2.5 关联规则挖掘

本节书摘来自华章出版社《推荐系统:技术、评估及高效算法》一书中的第2章,第2.5节,作者 [ 美]弗朗西斯科·里奇(francesco ricci)利奥·罗卡奇(lior rokach)布拉哈·夏皮拉(bracha shapira)保罗 b.坎特(paul b.kantor),更多章节内容可以访问云栖社区“华章计算机”公众号查看

关联规则挖掘关注于规则的发现,其他能够根据事务中出现其他物品来预测出现某个物品。两个物品被发现相关只意味着共同出现,但是没有因果关系。注意不要将这种技术与在2.3.3节中提到的基于规则的分类混淆。

我们定义物品集为一个或多个物品的集合(例如,(牛奶,啤酒,尿布))。k-物品集是包含k个物品的集合。给定物品的频繁度称为支持量(比如,(牛奶,啤酒,尿布)=131)。并且物品集的支持度是包含它的事务的比例(例如,(牛奶,啤酒,尿布)=0.12)。频繁物品集是支持度大于或等于最小支持度阈值的物品集。关联规则是公式xy的表达式,其中x和y是物品集。(例如,牛奶,尿布啤酒)。在这个案例中,关联规则的支持度是同时拥有x和y的事务的比例。另一方面,规则的置信度是y中的物品有多经常出现在包含x的事务中。

给定一组事务集合t,关联规则挖掘的目标是发现具有支持度大于等于最小支持度阈值以及置信度大于等于最小置信度阈值的所有规则。暴力法将会列出所有可能的关联规则,为每一个规则计算支持度和置信度,然后删除不满足两个条件的规则。但是,这样的计算开销太大。因此,我们采用两步方法:1)产生了所有支持度大于等于最小支持度的物品集(频繁项集生成);2)从每一频繁物品集中产生高置信规则(规则产生)。

有几个技术来优化频繁物品集的产生。在一个广泛的意义上,它们可以分成:尝试最小化候选集数量(m),降低事务量(n),降低比较量数量(nm)。但是最常用的方法是使用先验规则来降低候选数量。这个原则表明如果物品集是频繁的,那么所有的子集也是频繁的。支持度的衡量标准已经验证了这一点,因为一个物品集的支持度永远不会超过其子集的支持度。apriori算法是这个规则实际的实现。

给定一个频繁集l,产生规则时的目的是发现所有满足最小的置信度需求的非空子集。如果l=k,那么有2k2条候选关联规则。因此,在生成频繁物品集时,需要找到高效的方法来生成规则。对于apriori算法,我们能通过合并规则结果中共用相同前缀的两个规则来产生候选规则。

关联规则在发现模式和推动个性化市场营销方面的显著效果闻名已久[2]。但是,尽管这些方法和推荐系统的目标之间有明显的关联,但是它们还是没有成为主流。主要原因是这种方法类似于基于物品的cf但缺少灵活性,因为它需要事务这个明确的概念——事件共同出现在某个给定的会话中。在第3章中我们将举一些有意义的例子,其中一些表明关联规则仍有潜力。

mobasher等[53]提出一种基于关联规则的个性化网页系统。他们的系统基于用户的导航模式,从共同出现的浏览页面来识别关联规则。他们在精确度和覆盖率指标方面优于基于knn的推荐系统。smyth等[68]提出给推荐系统使用关联规则的两种不同的研究案例。在第一种案例中,为了生成较好的物品物品相似度指标,他们从用户属性中使用先验算法来抽离物品关联规则。在第二种案例中,他们应用关联规则到会话推荐中。这里的目标是发现共同发生的评论,比如,用户通过一个推荐物品的特定特征表明偏好。lin等[49]提出一种新的关联规则挖掘算法,为了获得一个合适的有意义规则数量,在挖掘期间调整规则的最小支持度,因此解决了先前像apriori这样算法的某些缺陷。他们挖掘在用户之间和物品之间的关联规则。测量出的精确度优于基于相关度推荐的报告值,并且接近于更精巧的方法,如svd和ann的结合。

最后,如在2.3.2节中提到的那样,cho等[18]在一个网页商店推荐系统中结合了决策树和关联规则挖掘。在他们的系统,关联规则的导入是为了链接相关的物品集。然后通过连接用户偏好和关联规则来计算得出推荐结果。他们在不同的事务集中寻找关联规则,如商品,购物车,点击率。他们用启发式学习给每一个事务集中规则附加权重。例如,商品关联规则权重大于点击关联规则。

继续阅读