基于亲和度分析的歌曲推荐算法(3)
时间:2023-09-29 10:20 来源:毕业论文 作者:毕业论文 点击:次
国内外研究现状 用进行研究,并希望可以通过研究结果来解决目前音乐智能推荐算法效果不佳的问题。通过Apriori算法来挖掘数据之间的关联规则,将会得到形如“同时下载了M和N两首歌曲的用户可能会下载O歌曲”这样的关联规则。 本课题主要研究的基本内容包括: (1)运用Python语言实现Apriori算法。 (2) 应用关联规则算法中的Apriori算法挖掘歌曲之间的关联规则。 (3) 通过真实数据的自我验证来证明依照本文所述算法实现的音乐推荐规则的可行性及实际的应用价值。 基于此,本文将着眼于音乐产业提升数字音乐产值的需求和提升用户体验的需求,通过数据挖掘的理论和方法,对线上音乐歌曲之间的关联问题进行研究,旨在希望找出相对独立的歌曲之间的潜在关联。本文会通过大量用户的线上历史播放记录,找出各种不同类型的歌曲之间的潜在联系,并将此与单个用户的线上历史播放行为相结合,来预测单个用户感兴趣的歌曲。 关联分析 关联分析算法 在数据挖掘技术和数据分析中,关联分析也被称为亲和度分析,亲和度分析主要用于在不知道事物的具体属性的情况下根据个体或团体的行为活动来发现各个事物之间的关联规则。[4] 关联规则是形如X→Y的表达式。以下载数字音乐为例,假设用户A之前喜欢听M歌曲和N歌曲,然后又喜欢听O歌曲,也就是说他前后一共喜欢听{M,N,O}三首歌曲,则可以把{M,N},{O},{M,N,O}称为项目集(下载项目的集合)。那么我们可以建立这样一条规则,同时喜欢听M和N两首歌曲的用户可能也会喜欢听O歌曲,记为{M,N}→{O}。然后通过大量的历史行为记录就能分析出用户的喜好。上述过程可以用形式化的语言进行如下定义: 由若干个项目组成一个项目集,记为项目集A;由若干个项目集组成一个事务,记为事务t;由若干个事务组合成一个事务集,记为事务集T。现假设项目集B是ti的子集,其中ti∈T。分析事务集T,在满足给定的支持度和置信度时,可以认为规则A→B成立(A,B均为项目集),其中A称为前提(premises),B称为结论(conclusions)。其中支持度可根据实际情况进行定义。置信度可以通过信息熵的理论计算,即条件概率。置信度的具体计算方法由式(1。1)可见。 置信度(confidence)=(count(以A为前提,同时以B为结论的规则))/(count(以A为前提的所有规则))(1。1) 在关联分析方法中,算法的原则是遍历测试所有可能的规则组合,然后计算每个规则的置信度(confidence)和支持度(support)。这样的做法使得我们可以根据置信度的值对规则组合进行排序,并以此来找到最佳的规则。然而如果直接使用这样方法显然是没有效率的。假设在一个网站中有3个物品在售,那么我们将会得到8种有可能的关联组合,4个物品将会有15种有可能的关联组合,5个物品将会有31种有可能的关联组合,当物品的数量达到n时,所有可能的规则的数量将会达到2n-1种。那么随着更多的商品被添加,花费在计算所有规则上的时间将会成倍的增加。即使在计算能力急剧上升的情况下,也仍然无法跟上在线储存项目的增加速度。因此我们需要一个更加优化的算法。 Apriori算法 Apriori演算法是本课题中至关重要的一部分,Apriori算法是挖掘布尔关联规则频繁项目集算法中的一种,其核心是基于两阶段频集思想的递推。该关联规则在分类上属于单维、单层、布尔关联规则,算法定义所有支持度大于最小支持度的项目集称为频繁项目集,简称频集。[5] (责任编辑:qin) |