基于成员贡献的群体推荐系统毕业论文
2020-02-19 20:11:59
摘 要
为一个由多个用户组成的群体提供推荐是许多在线服务平台的一个重要需求。遗憾的是,传统的个人推荐算法无法为一个群体提供推荐,因为每个成员都有属于自己的喜爱偏好。这些偏好之间很可能产生冲突,使用传统的推荐方式无法使得群体中的每一个成员都得到满足。本文的目标是通过根据每个成员在群体中的重要程度对每个成员的贡献进行加权来产生群体推荐(GRS)。为了实现这个目标,本文提出了基于成员贡献(MCS)的得分权重模型,该模型使用余弦相似度来计算每个成员在群体中的重要程度。使用曼哈顿距离计算模型(MLA)来解决推荐中的长尾问题。通过整合MCS-MLA模型,开发了基于成员贡献的群体推荐模型。实验测试表明,本文的群体推荐MCS-GR算法在群体推荐性能上具有明显的进步。
关键词:推荐系统;群体推荐系统;协同过滤;
Abstract
Providing recommendations for a group of multiple users is an important requirement for many online service platforms. Unfortunately, the recommendation of a group cannot be provided using traditional personal recommendation algorithms. Because each member has his or her own favorite preferences, there is a high probability that these preferences will conflict. Using traditional recommendation methods will not satisfy every member of the group. The goal of this paper is to generate group recommendations by weighting each member's contribution based on how important each member is in the group. To achieve this goal, this paper proposes a score weighting model based on member contribution (MCS), which uses cosine similarity to calculate the importance of each member in the group. Use the Manhattan distance calculation formula to solve the long tail problem in the recommendation. By integrating the MCS-MLA model, a group recommendation model based on member contributions was developed. Experimental tests show that the group recommendation MCS-GR algorithm has made significant progress in group recommendation performance.
Key Words:Recommender systems; Group recommender systems; Collaborative filtering
目录
第 1 章 绪论 1
1.1 研究的背景和意义 1
1.2 国内外研究现状 2
第 2 章 文献回顾 3
2.1 基于个人的协同过滤算法 3
2.1.1 基于项目的协同过滤算法 3
2.1.2 基于用户的协同过滤算法 3
2.2 群体推荐方法 4
第 3 章 基于成员贡献的群体推荐方法 6
3.1 生成群体特征 6
3.1.1 步骤一:计算成员在一次采样中的贡献程度 7
3.1.2 步骤二:汇总每一个成员的MCS值 7
3.1.3 步骤三:利用MCS计算群体特征 8
3.2 群体推荐生成阶段 9
3.2.1 计算群体成员和非群体成员之间的相似性 10
3.2.2 计算群体的局部平均分 10
3.2.3 预测群体对未评分项目的评分 11
第 4 章 实验和结果分析 13
4.1 数据集和数据预处理 13
4.2 群体生成协议 13
4.3 评价指标 13
4.4 实验过程 15
4.5 结果分析 16
第 5 章 结论和展望 20
参考文献 21
绪论
研究的背景和意义
很多在线服务系统,比如网上购物系统,电子学习系统,在线听歌系统,都受到信息过载问题的干扰。即用户可以非常容易的获得大量信息,但获得对自己有用的信息却非常困难。推荐系统是为了解决这个问题而提出的最有效的方式之一[[1]],它通过分析用户的喜爱偏好来模拟个人喜好从而定位与用户相关的信息。
无论推荐的内容涉及的领域如何,从成员构成群体的角度来看,GRS中主要有两种类型的群体:稳定群体和随机群体[[2]]。稳定群体中的成员可以积极地参加或者离开群体,并可以明确说明他们的偏好。在这些群体中,群体内部成员的关联性很高。因此群体偏好可以随着时间的推移而集中,然后推荐算法就可以非常容易地找到适合群体每个成员的项目。例如,因为喜欢读书而聚成的兴趣小组可能会缩小阅读范围,最终集中于武侠小说或者言情小说。相比之下,随机组则由那些没有机会明确地指定他们的偏好的成员被动地形成,这些成员间的偏好可能高度冲突。为这些群体进行推荐比较困难。
GRS 中构建群体模型的大部分算法都是基于群体成员对物品的评分信息,当评分矩阵稀疏或者群体成员数量非常多的时候,评分信息可能不准确。许多研究人员在尝试解决这个问题的时候,通常都专注于引入其他外部信息,比如社交信网络信息,标签信息,或者不同情境的下文信息来建立复杂的个人偏好模型[[3]]。然而不同的应用领域并没有通用的附加信息[[4]],在许多情况下,推荐系统没有机会获得随机群体中成员的额外信息。
群体的类型影响了GRS的设计,向随机群体提供推荐的一个主要问题是,群体中不同的成员为了追求自身的偏好而不考虑其他成员的偏好,而这些偏好往往是相互冲突的。当群体中人数较多时,这个问题会变得更加严重。因为对不同偏好的妥协处理难以模型化,对应的推荐就难以生成。一个可行的方式是定量化的考虑每个群体成员在整个群体之中的权重关系来减少冲突,并根据代表性成员的偏好来对群体进行建模。代表性更高的成员的偏好在群体中的重要性应当超过代表性较低的成员的偏好,使用这种方式来生产群体特征,可以保证每个群体成员都能够有较高的满意度。然而,与传统的解决全体成员偏好的问题类似的是,大多数的推荐算法都需要使用额外的信息,比如社交关系或者信任网络关系[[5]]。
本文旨在研究建立一个群体推荐算法。这个算法可以通过只分析成员的评分来对群体进行建模,从而最大限度地提高随机群体对推荐结果的整体满意度。本文衡量每个成员在子评分矩阵中的重要程度,这种方式在即使评分矩阵高度稀疏的情况下也同样适用。这种方式主要由两个阶段构成:(1)群体特征生成阶段和(2)群体推荐生成阶段。本文首先提出第一阶段的群体成员分数(MCS)模型。然后在第二阶段使用基于曼哈顿距离的局部平均分(MLA)来解决推荐系统中存在的长尾问题。
通过整合MCS和MLA模型,本文开发了基于成员贡献的群体推荐(MC-GR)算法。
本论文的主要成果如下。
(1)提出了基于成员贡献的群体推荐算法(MC-GR)方法来处理一般群体推荐中需要使用额外信息进行推荐的问题。测试结果表明,本文应用的方法显著优于群体推荐算法的基准算法。
(2)使用MCS模型来衡量每个成员在子评分矩阵中的贡献程度,使用余弦相似度来识别代表性成员并计算对应的贡献程度。因此,即使评分矩阵高度不完整或者高度稀疏,也可以精确地对群体进行建模。
(3)使用曼哈顿距离计算模型来获取群体的局部平均分从而提高评分预测的精度,以减轻推荐系统存在的长尾问题。
国内外的研究现状
尽管已经有很多科研人员为改进推荐系统做出了非常大的工作,也取得了非常明显的进步,但是大多数推荐系统都集中在面向单个用户(或企业或客户)提供推荐。随着时代的发展,为许多个体构成的群体提供推荐显得越来越重要。群体推荐系统(GRS)必须考虑所有成员最新的喜好[[6]],并提出能够使得群体中每个成员都满意的推荐。国外的Sharon等人设计了一个基于互联网浏览器浏览记录的推荐系统,这个系统能够为一组有相似浏览记录的浏览器推荐相关链接[[7]]。另一个名为 GRec_OC 的系统,可以为在线阅读社区推荐书籍[[8]]。除了文字的推荐,多媒体的内容也可以进行推荐。国内的於志文等研究学者设计了一个可以为单个家庭推荐电视节目的推荐系统[[9]];Juan等学者研究了如何为一个好友群体推荐电影[[10]],MusixFX 可以播放适合健身房中所有人口味的音乐[[11]]。
文献回顾
本节主要介绍两种通用的个人和群体推荐算法。本节回顾这两种方法,因为无论是生成个人推荐还是生成群体特征都会用到这两种方法。本节同时也介绍了与这两种方法相关的一些方法,并对这些方法的局限性做了讨论。
基于个人的协同过滤算法
大部分群体推荐系统GRS允许用户为他们的喜好进行评分(比如从1分到5分,或者评价喜欢不喜欢,即0或1)。协同过滤技术(CF)依赖于用户评分,并被广泛用于群体推荐系统中[[12]]。本节回顾两种最常用的协同过滤算法:基于项目的协同过滤算法(ICF)和基于用户的协同过滤算法(UCF)。ICF方法推荐与用户喜欢的项目最相似的项目[[13]],UCF方法推荐与用户有共同兴趣的人所偏好的项目。未知项目的评分可以通过加权求平均值,求平均偏差等聚合方法进行预测[[14]]。
基于项目的协同过滤算法
ICF 首先测量两两项目之间的相似性,一旦获得这些相似性,就可以用来预测未知项目的评分,并可以获取与用户过去最喜欢的项目最相似的项目。ICF旨在为用户推荐前 K 个最相似的项目[[15]],如公式1所示。为了预测用户 对未评分项目 的评分 ,我们可以使用用户 u 已经评过的评分平均值r ,加上相似项目的评分乘以对应的权重。当获得了用户 u 对项目 i 的评分之后,我们就可以很容易地对用户 u 进行推荐。公式如(2.1)所示:
基于用户的协同过滤算法
相比之下,UCF首先衡量用户之间的相似程度[[16]]。预测用户 u 对未评分项目 i 的评分 ,可以利用对与 u 有着相似偏好的用户来预测。公式如(2.2)所示:
ICF 和UCF也被称为基于邻居相似的方法,因为它们分别识别相似项目或者相似用户。显然,我们可以把一个群体转换成单个个体,即生成一个伪用户,用这一个伪用户来代表整个群体的偏好,然后再利用 UCF 算法对群体进行推荐。
群体推荐方法
不同的应用场景群体形成的过程也不同。群体形成的过程可以是主动的,也可以是被动的。某些群体推荐方法允许用户主动地声明他们所属的兴趣组,而在其他推荐算法中,用户被动地被分配到某组中。比如,喜欢读书的成员主动自发地形成一个读书小组,然后推荐算法就可以为所有成员提供书籍推荐。又比如,人们参加音乐演唱会而被动地形成一个团体,其他音乐节目就不能简单地因为团体成员参加了这次的音乐会就推荐类似的项目。不论是哪种情况,无论是推荐系统为用户提供书籍推荐或音乐推荐,本文都将推荐系统定义为 R,然后推荐系统确定群体中的所有成员,并将他们作为一个单独的实体进行推荐。群体确定以后,本文将 R 中所有的项目表示为I,群体中所有的成员表示为U,将一个组表示为G。其中,并且 G 可以是由用户主动聚集而成(比如因为兴趣相同而形成的读书小组),也可以是由用户被动聚集而成(例如参加同一场演唱会)。因此一个群体推荐系统可以用一个三元组集合表示,其中S表示推荐系统给群体推荐的物品集合,并且 ,S 中的物品尽可能多的满足群体G成员的偏好。
大部分GRS可以被分为两类:(1)聚合个人偏好,通过聚合每个群体成员的偏好形成一个伪用户来表示整个群体的偏好,然后使用这个伪用户的角色来为群体生成推荐;(2)聚合个人推荐,推荐系统首先使用个人推荐算法对每个成员产生不同的推荐,然后聚合每个的推荐形成群体推荐[[17]]。论文[[18]]比较了这两种方式,并且认为前者比后者推荐效果略好。聚合个人偏好的方法需要为群体生成一个伪用户,而生成伪用户的困难在于,群体成员可能并不总是具有共同的偏好,并且当用群体特征来表示群体成员的偏好时,可能产生冲突。一般情况下,需要使用不同的策略来减轻偏好冲突导致的群体不满。
许多策略都被用来为群体建模,本文将这些策略分为四类,来反映不同的解决此问题的角度。
- 基于共识的策略:平均策略
- 基于多数人的策略:多数人投票策略
- 基于边界线的策略:最小痛苦策略,最大满意度策略
- 基于独裁的策略:最重要的成员策略
在上面的四种方式中,基于多数人的策略通常先获得每个成员的推荐,然后再汇总这些推荐。而其他三种方式通常首先汇总每个人的偏好以形成群体偏好,然后再依据此偏好进行推荐。群体推荐主要考虑两个方面的内容:一是每个成员的共同兴趣;二是成员之间会导致冲突的不同兴趣。这两个角度推动了群体推荐的基本设计原则:最大化满意度并最大限度的减少失望。例如,以共识为基础的平均策略就是为了获得最大化的满意[[19]];以边界线为基础的最小痛苦策略就是为了最大限度的减少失望[[20]]。另一种名为“平均无痛苦”的组合策略,通过同时考虑这两方面来平衡这两个要求。但是这种策略需要明确指定的一个评分阈值,用于排除那些不符合要求的群体成员评分。
假设一个群体为G,任何属于G的用户称之为u, 和 是对应的群体特征,那么这些策略都可以概括为
其中 是用户u的权重向量,不同的权重向量对应不同的策略。当 的时候,公式(2.3)就是平均值策略。当只有一个成员的向量权重为 1,其他的成员是0的时候,公式(2.3)就变成了独裁策略。
通过使用复杂的模型,计算成员权重得到的推荐效果已经有了很大改善。为了对一个复杂的群体进行建模,许多推荐系统需要额外的信息,比如社会关系信息或者是标签信息。社会关系信息被用于找出最具有代表性的项目[[21]]。其背后的基本思想是用户倾向于购买那些在此用户的社交关系中,他的朋友最喜欢的产品。这些改进受到额外信息不可获得或不可用的影响,并且当用户组是随机形成的时候,这个问题会变得更加严重。比如,识别飞机上一群陌生人之间的社交关系非常困难,而且乘客并不会事先指明他们的兴趣爱好。其他的额外信息,比如领域知识也可用于对群体进行建模。但是同样,额外信息不可获得的情况也经常出现。
另一种提高群体建模效率的方法是,为群体成员提供交互来明确指定他们的偏好,但是当群体是随机形成时,这些方法并不能够保证总是可用的[[22]]。
基于成员贡献的群体推荐方法
本节首先介绍基于成员贡献分数(MCS)的概念和基于MCS的群体推荐算法,这种推荐算法可以最小化群体成员对推荐的不满意度。这种方法主要由两个阶段构成:(1)群体特征生成阶段(2)群体推荐生成阶段。在群体特征生成阶段中,提出了基于MCS模型来生成群体特征的方法。在推荐生成阶段中,提出了使用曼哈顿距离模型来生成群体推荐的方法。以下是更为详细的说明。
- 群体特征生成阶段:本文认为应当根据群体成员的不同代表性身份考虑其对群体特征做出的贡献,而不是平等的对待所有成员。因此,本文引入衡量每个成员不同代表水平的概念,并提出一个成员贡献分数(Member Contribution Score,MCS)模型来定量的考量每个群体成员的代表状况。然后利用MCS的结果生成群体特征,再利用群体特征为这个群体产生推荐。
- 推荐生成阶段:本文认为,关注目标项目的局部平均值可以有效缓解由长尾分布导致的低精度问题。因此本文提出了基于曼哈顿距离的局部平均模型(MLA),其中与目标项目有关的项目由曼哈顿距离的测量来识别,并计算目标项目相似项目集合的平均值。使用群体特征和局部平均值,通过基于UCF的个体推荐算法为群体推荐前K个项目。
生成群体特征
本阶段介绍如何通过计算来获取代表群体整体偏好的群体特征。为了计算群体特征,特别是那些复杂的随机群体,最具有代表性的成员的偏好的重要性应当被视为高于其他群体成员的偏好。为了解决这个问题,本文使用项目空间上的抽样和聚合体系结构。例如,假设电影推荐系统仅仅包含四部电影。用户u的评分向量是,维度是每个电影的评分。我们不考虑整个项目空间,而是采样项目空间中的部分项目,群体成员对这些项目可以提供没有缺失值的评分矩阵,然后就可以在该评分矩阵上精确地评估代表性成员。经过多次抽样之后,整个项目空间中的代表性成员就可以通过汇总局部项目空间的代表性成员来表示。在本论文中,这个抽样和聚合的过程放在MCS阶段来实现。值得强调指明的是,在本算法中,不需要任何额外的辅助信息。整个群体的MCS方程表示为:
方程(3.1)与方程(2.3)类似,其最重要的区别在于方程(3.1)的MCS模型更加关注不同成员的贡献差异。