刘彤彤 马文明 李湘南 宋玉龙
(1.烟台大学 山东省烟台市 264005 2.烟台市科学技术情报研究所 山东省烟台市 264005)
随着当今世界机器学习技术的兴起,科学技术也走上了新的高度,人们生活中对科技应用的需求占比也越来越重。人们利用随处可见的智能设备来完成工作娱乐生活,处在这种快节奏的生活下,人们面对随处可见的复杂信息无法进行选择,出现了信息过载[1]的现象。为了解决信息过载的问题,电子商务行业采用推荐系统技术为用户推荐和介绍产品,旨在于对本身需求不清晰的用户提供建议。而现在,随着娱乐方式的增多,推荐系统技术的运用不仅存在于电子商务行业,还扩展到视频音乐等多媒体行业中。
组推荐系统越来越成为研究的热点之一[2]。现代社会越来越重视人与人之间的交往与联系,社交活动影响着社交关系。例如,与朋友一起去风景秀丽的地方旅游,学校组织各种社团活动,社区中的人们一起健身做操,等等。但是大部分情况下,群组内成员对活动的选择会产生分歧,这就需要组推荐为群组活动提供建议或者意见,它旨在为一组用户推荐可能喜爱的项目,而非普通的个性化推荐[3]。组推荐系统将每个人都喜好都考虑到,进行分析和筛选,使其推荐的结果满足群组内多数成员的要求。
本文介绍了传统推荐系统的算法与组推荐系统,分析了组推荐偏好融合的多种策略,并根据分析结果构建模型架构实现面向群组的电影推荐系统。
传统推荐系统(Recommender system)应用在各大知名网站,例如京东和亚马逊网站等。其主要的推荐系统算法分为基于内容的推荐(Content-based Recommendation),协同过滤推荐(Collaborative Filtering Recommendation CF),基于知识的推荐方(Knowledge-based Recommendation)等。基于内容的推荐方法是根据用户历史数据,获取用户喜好,利用用户喜好推荐与其特征匹配的项目。协同过滤推荐方法是传统推荐中最早也是使用最广泛的推荐算法之一[4],主要通过对比相似度来进行筛选。该算法主要分为两种,基于用户的协同过滤算法(User-based CF)和基于项目的协同过滤算法(Itembased CF)。基于知识推荐的算法是将一个项目映射到某一特定用户上,需要使用户资料规范化,才能推荐与之需求相符的项目。
传统推荐算法基于对单个用户推荐项目,只分析该用户的喜好等因素,并且得出的结果可以直接展示给该用户,而组推荐将一个群组设为整体,分析获取群体内所有用户的喜好因素,再将个人结果整合成最终群组结果。因此群组推荐也可为单个用户服务。协同过滤推荐算法在推荐系统的使用中非常普遍[5]。
组推荐系统基于共识分数对群组进行推荐,包括整个群组对预测项目的共同偏好和群组成员之间的差异偏好[2]。组推荐系统获得群组成员的兴趣偏好后,需要对偏好差异进行分析,将各个用户的偏好融合到一起。组推荐常见的融合策略[3]有以下几种:
(1)公平策略。每次推荐时选取组内某个成员的评分作为群组评分。pu为用户的偏好,pG为群组的偏好,du为用户对项目的评分。
(2)均值策略。将某项目的的所有用户评分求平均值,作为该项目的分数,再根据评分高低对群组推荐。
(3)痛苦避免均值策略。设置一个痛苦阈值 ,对所有超出该值的评分求平均值,取该平均值作为群组评分。
(4)最受尊敬者策略。根据群组成员交互关系或其他信息选取某个权重高的成员,该成员的评分作为群组评分。uresp为最受尊敬用户。
模型中预测电影评分采用协同过滤算法,考虑到用户与用户之间可能受到社交关系等因素的影响,计算基于用户的相似度,容易出现不稳定的状况。因此采用基于项目的协同过滤算法,将用户所青睐的类似项目进行推荐,计算复杂度相对较低。
模型中的推荐结果融合策略采用痛苦避免均值策略。均值策略在实际组推荐系统应用中较为广泛,却可能使得个别用户对推荐结果不满意,个别极端的评分对群组推荐的结果产生不利的影响。考虑到去除极端,保留大众化的评分,采用痛苦避免均值策略。该策略对痛苦阈值上的评分数据进行平均处理,过滤掉可能引起痛苦的项目。
图1:模型实现流程图
为群组推荐电影,利用用户对电影的历史评分,对群组成员进行建档。每个成员生成一个用户描述文件,成员所在的每个群组生成一个群组描述文件。对用户资料和群组资料进行整理,除去多余用户信息,建立评分矩阵。m 为用户的数量,n 为电影的数量,矩阵如下:
根据获得的评分矩阵,使用余弦相似度计算目标电影与其他电影的相似程度,余弦相似度公式为:
再根据计算的相似度求目标电影评分,将每个相似度作为权重,计算每个电影与其所占权重乘积并将所有乘积求和,与目标电影相似的历史电影,其评分作为参考的价值越大,最后对加和求平均值,得出目标电影的预测评分。
将所有预测出的用户评分,去掉低于参数α 的用户评分,将剩下的电影评分数据取平均值,作为群组预测电影评分,选择排名前k 个的电影,使其成为预测的群组推荐电影列表。模型实现流程如图1 所示。
3.3.1 准确度
推荐系统的评分指标同样适用于组推荐系统。推荐系统的准确度评价主要有RMSE,MAP,recall 等。RMSE 是体现了预测电影评分与真实评分的偏差,其值越小则偏差越小,说明其准确率越高。
3.3.2 覆盖率
覆盖率通过获取群组的推荐结果占全部项目的比率来评价组推荐系统的覆盖率情况[6]。覆盖越多,项目越多样化,对于提供项目者来说非常有益。覆盖率越高,推荐的项目种类杂,也可能存在着准确度不高的情况,这就需要覆盖率与准确率放在一起来对推荐结果评估。
3.3.3 惊喜度
惊喜度也越来越成为评价组推荐系统结果满意与否的度量之一[7]。惊喜的推荐项目对用户来说是陌生的,与用户的喜好不相似,但是用户却对推荐结果有着不错的评价。例如给用户推荐了没有看过的电影,但是用户看完之后对该电影评分挺高,这就可以认为该推荐能够让用户惊喜。
日常生活中不仅有单人推荐的需求,也有团体推荐的需求,组推荐的出现解决了这一问题。组推荐系统必须顾全所有群组内用户的需求,针对各种应用面对不同的对象,采取相应的融合策略,必要时可以融合多个策略以解决问题,从而更贴合实际,符合用户的需求。在电影推荐系统的设计中采用组推荐的融合策略,为进行社交活动的人们带来了方便,也拓宽了推荐系统实用性的领域。