APP下载

基于惩罚因子的协同过滤算法的改进与研究

2019-11-16徐立民李涵

物联网技术 2019年10期
关键词:推荐系统

徐立民 李涵

摘 要:当今时代,信息量呈爆炸式增长,推荐系统是处理海量信息的一种有效方式,也是一种无需用户提出明确需求就可帮助用户快速发现有用信息的工具。在推荐系统中,协同过滤算法有着重要应用。传统协同过滤算法通常使用余弦相似度公式進行兴趣相似度计算,但是很多情况下热门物品会影响到推荐结果,并不能较好地反映用户需求。文中对传统协同过滤算法余弦相似度计算公式提出改进方案,给出一个带有惩罚因子的余弦相似度修正公式,可以较好地抑制热门物品对用户实际相似度的影响,改善用户近邻集合的划分,从而实现更好的推荐效果。经实验测试,推荐系统的性能指标得到了一定的改善。

关键词:推荐系统;协同过滤算法;余弦相似度;热门物品;惩罚因子;近邻集合

中图分类号:TP301文献标识码:A文章编号:2095-1302(2019)10-00-03

0 引 言

随着信息量的提升,推荐系统开始发挥越来越重要的作用。目前,推荐系统在新闻行业、娱乐媒体行业以及电子商务领域都有着重要的应用。推荐系统领域出现了多种算法,这些算法都有着明确的应用场景,同时也各有优缺点。常用的推荐算法包括基于内容的推荐、基于关联规则的推荐和协同过滤算法[1]等,其中,协同过滤算法是推荐系统中的经典算法之一,在众多场合都有非常广泛的应用。该算法目标明确、易于理解,同时实用性很强,无需具备专业领域的知识即可完成推荐。随着时间的推移,推荐系统的性能会一直得到增强,因此该算法的自动化程度较高,同时也可较为方便地处理复杂的对象信息和非结构化数据[2]。但是协同过滤算法存在冷启动、数据稀疏、可拓展性差等缺点[3],这些缺点在实际应用中会影响到推荐系统的性能。本文从实际入手,针对协同过滤算法传统的相似度公式无法抑制热门物品的问题,提出惩罚因子的概念,给出修正后的余弦相似度计算公式,并进行实验论证。

1 协同过滤算法

1.1 传统协同过滤算法

协同过滤算法在1992年被提出[5-6],该算法的第一个应用项目是Tapestry[7]。协同过滤算法是在获取到用户信息后,寻找目标用户的近邻集合,选择近邻集合中感兴趣的对象推荐给目标用户,其具体步骤如下:

(1)收集用户行为,产生用户评分矩阵

用户的行为数据可以多种形式展现给后台,因此需要进行预处理。预处理是将自然语言描述的用户历史行为转换为数字化信息[8]。预处理之后,将用户对物品的行为信息描述为一个m×n的矩阵R(m,n),这个矩阵被称为用户-评分矩阵。矩阵R中每一行代表用户,每一列代表物品对象,Rij表示用户i对物品对象j的评分。同时,采取0和1两种数值的方式表征用户行为,数字1代表用户喜欢该物品,反之为不喜欢。用户评分矩阵R为:

(2)建立用户近邻集合,找出用户邻居

用户近邻集合是将目标用户与其他用户进行相似度计算后生成用户的近邻集合。用户之间的相似度通过相似度公式计算得出。兴趣相似度计算公式较多,如Jaccard公式、余弦相似度公式等。其中,余弦相似度公式使用较多。

(3)产生推荐结果

1.3 算法流程

整个系统算法流程包括收集用户历史信息、建立用户评分矩阵、计算用户相似度、生成近邻集合,进而产生推荐。协同过滤算法流程如图1所示。

2 基于惩罚因子的协同过滤改进算法

2.1 惩罚因子

若热门物品出现次数较多,则会使实际相似度计算结果受到影响,导致推荐的物品都是热门物品,无法挖掘用户的实际需求。为了避免这种影响,考虑加入一个惩罚因子作为加权系数,从而抑制热门物品的影响,因此本文对余弦相似度计算公式进行修正,将物品出现次数的倒数作为惩罚因子。物品出现次数越多,即该商品越热门,同时,该商品对于用户兴趣相似度的贡献越少。修正后的公式可衰减热门物品造成的影响,带有惩罚因子的修正公式为:

2.2 其他改进参数

冷启动是推荐系统设计过程中必须经历的一个过程。由于系统刚刚创建,新注册的用户尚未对项目产生有效的行为信息,此时可利用的行为信息极少,这种情况下难以给用户做出合理的推荐[9],因此必须考虑从别的渠道获取更多的用户信息作为参考。通过用户的注册信息挖掘用户爱好是一种有效的方式,在用户注册时加以引导,使用户提供一些信息,通过这些信息最大限度地挖掘出用户感兴趣的信息。用户注册信息完毕后初次登录时,后台系统可根据用户提交的个人信息进行分析与挖掘,从而做出有针对性的推荐。

2.3 改进后的算法流程

本文在原有的推荐流程中加入惩罚因子的参数,该参数作为衰减因子可削弱热门造成的影响,使用用户对该物品发生正反馈的次数衡量物品的热门程度。物品越热门,惩罚力度越高,热门物品对计算兴趣相似度带来的影响越小,因此可较好地解决热门物品对于推荐效果的影响。改进后的算法流程如图2所示。

3 实验结果

首先使用经典的余弦相似度算法进行计算。将推荐数量选定为25,目标用户的邻居个数分别为2,3,4,5,6,7,8,9,10,20,40。由上述数据得到的准确率与召回率(计算结果保留小数点后四位)见表1所列。

由上述实验数据可知,当目标用户的邻居个数为3时,准确率与召回率有较好的效果,因此在对修正后的公式验证时可选定邻居个数3进行准确率与召回率的对比。余弦相似度公式与修正后的相似度公式对比见表2所列。

由表2可知,使用余弦相似度公式的准确率为0.133 8,召回率为0.154 4,使用带有惩罚因子的修正公式的准确率为0.144 6,召回率为0.204 0。实验结果表明,带有惩罚因子的修正公式可以较好地抑制热门物品的影响,提升系统的准确率与召回率。

4 结 语

由于使用传统的余弦相似度公式时,热门物品会影响推荐结果,导致推荐的物品几乎都是热门物品,因此本文提出带有惩罚因子的余弦相似度计算公式,使用热门物品出现次数的倒数作为惩罚因子,物品越热门惩罚力度越大。通过实验验证,该算法可使准确率与召回率得到一定的提升,从而提高推荐效率。

参 考 文 献

[1]孟祥武,胡勋,王立才,等.移动推荐系统及其应用[J].软件学报,2013,24(1):91-108.

[2]孟祥武,纪威宇,张玉洁.大数据环境下的推荐系统[J].北京邮电大学学报,2015,38(2):1-15.

[3]冷亚军,陆青,梁昌勇.协同过滤推荐技术综述[J].模式识别与人工智能,2014,27(8):720-734.

[4]王威,郑骏.基于用户相似度的协同过滤算法改进[J]. 华东师范大学学报(自然科学版),2016(3):60-66.

[5]张鹏飞,熊娇娇,罗绳烨,等.面向电商的基于协同过滤的个性化推荐[J].科技广场,2016(6):15-19.

[6] SARWAR B,KARYPIS G,KONSTAN J,et al.Item-based collaborative filtering recommendation algorithms [C]// International Conference on World Wide Web.ACM,2001:285-295.

[7] KONSTAN J A,MILLER B N,MALTZ D A,et al.GroupLens:applying collaborative filtering to usenet news [C]// Commu-nications of the ACM,1997,40(3):77-87.

[8] OWEN S,ANIL R,DUNNING T,et al.Mahout in action[M].New York:Manning Publication,2011.

[9] GroupLens Research.MovieLens [EB/OL]. [2018-06-10]. https://grouplens.org/datasets/movielens.

[10]于洪,李俊華.一种解决新项目冷启动问题的推荐算法[J].软件学报,2015,26(6):1395-1408.

[11]周成林,黄长江,田景凡,等.基于用户检索历史的个性化内容推荐算法的设计与实现[J].数字技术与应用,2015(10):142.

猜你喜欢

推荐系统
基于用户偏好的信任网络随机游走推荐模型
基于Mahout分布式协同过滤推荐算法分析与实现
基于Baseline SVD主动学习算法的推荐系统