杨彦荣 张莹
摘 要:针对协同过滤推荐算法中因图书评分数据稀疏,导致推荐质量和推荐效率低的问题,提出结合用户聚类的图书协同过滤推荐算法。首先将用户身份特征数据和行为数据进行向量化表示,并利用K-means聚类算法进行用户聚类成为不同的类别;其次计算目标用户与各类别的距离,并选择最近距离的类别作为目标用户的检索空间;最后,从检索空间中通过相似度计算确定目标用户的最近邻居,在此基础上产生推荐列表。实验结果表明,所提算法能够有效提高推荐精度,降低推荐所耗时长。
关键词:推荐系统 协同过滤 用户聚类 K-means
中图分类号:TP391 文献标识码:A 文章编号:1672-3791(2020)03(c)-0198-02
随着网络技术的进步和信息化的推进,数字资源得到了迅速发展,高校图书馆的资源数据量呈爆炸式增长,浩瀚如烟的数字资源使得用户产生了信息迷航。海量文献数据所造成的“信息过载”使得信息检索人员寻找对自己有用的文献变得越发困难。个性化推荐是缓解信息过载问题的最有效的方法之一,此技术能够对用户的历史行为信息进行提取,建立用户偏好模型,并依此模型向目标用户推荐符合用户期望的文献。
推荐算法是推荐系统中核心部分,决定着推荐系统的性能优劣,目前应用比较多的算法包括基于内容、基于关联规则、基于协同过滤以及混合推荐等。然而应用最多、最广的是协同过滤推荐[1-2]。协同过滤算法又可分为基于用户和基于项目的协同过滤算法。用户协同合作是基于用户协同过滤的核心思想,通过用户相似度计算找到与目标用户兴趣相似的用户集合,再在这个集合中搜寻用户喜好的,且目标用户没有评分过的物品,通过预测评分将评分高的物品推荐给目标用户。预测评分依据用户相似群体的评分产生,用户评分数据稀疏性是该类数据的一大特点,从而导致以用户评分数据为依据的协同推荐算法很多时候推荐结果不理想。该文在基于用户协同过滤的基础上,将用户聚类融合到协同推荐的过程中,在协同过滤推荐之前首先使用K-means聚类算法对用户进行聚类,能够一定程度上解决图书用户评分数据稀疏问题,同时目标用户的检索空间也缩小,从而評测评分的计算时间也降低了,进而提高了推荐算法的效率。
1 基于用户聚类的协同过滤推荐
1.1 聚类算法
数据挖掘的主要任务之一是聚类分析,它将物理或抽象对象的集合划分成多个类簇,同一个簇中的对象彼此相似,不同簇中的对象彼此相异。在众多的聚类算中最常用、最经典的是K-means聚类算法[3]。K-means聚类原理是:依据两个对象的距离越大,相似度越小的准则,通过最小化误差函数优化将所有对象划分为K个簇,K为预先确定的常数。K-means聚类算法具有速度快、质量高、伸缩性好等优点,经常被应用到各种聚类任务中,其主要流程如下。
(1)在包括N个对象的数据集中随机选择K个对象作为聚类中心的初始值。
(2)通过距离公式对每个对象到聚类中心的距离进行计算,从中根据最近原则将对象依次分配到距离它最近的聚类中心存在簇中,计算误差平方和准则函数E的值。
(3)设立新的聚类中心,通过计算各个簇中的所有对象的平均值作为各个簇的聚类中心,以此来得到误差平方和准则函数E的值。
(4)把步骤(3)的E值同前一次计算E值来对比,假如两个E值的差的绝对值小于等于之前设定好的阈值,则聚类的准则函数收敛,转到步骤(5),否则转到步骤(2)。
(5)输出K个聚类。
1.2 协同过滤推荐算法
作为当前应用最广泛的个性化推荐技术之一,协同过滤推荐算法在用户行为中寻找特定模式,创建用户特有的推荐内容。协同过滤本算法优点是无需了解领域知识,大多数情况推荐结果令人满意,但也有结果缺乏解释性的缺点。基于用户的协同过滤算法包含以下步骤。
(1)相似度计算构建目标用户兴趣相似的用户集合,Pearson相关系数常用来计算两个用户之间的相似度,在Pearson基础上引入用户评分来计算用户相似度[4]。目标用户u与用户v的相似度用Suv来表示,用户u和v都评分过的共同项目集合用Iuv表示,目标用户u和用户v对物品i的评分用rui和rvi表示,表用户u和用户v所有评分的平均分用和表示。用户相似度计算如式(1)所示。
(1)
(2)评分预测计算预测目标用户对其没有评价过文献的评分,基于用户相似集合通过评分预测来预测评分。
(2)
公式中,Pui是目标用户u对物品i的评分预测,得出的P评分预测越高,目标用户U感兴趣的程度或者几率就越高。
(3)最终按照评分的高低可以给予目标用户TOPN的推荐列表。
1.3 基于用户聚类的图书协同过滤推荐
针对图书用户评分数据稀疏导致基于用户协同推荐效率低的问题,在基于用户协同过滤的基础上,将用户聚类融合到协同推荐的过程中,在协同过滤推荐之前首先使用K-means聚类算法对用户进行聚类,将用户划分成不同的类别;然后计算目标用户与各类别的距离,并选择最近距离的类别作为目标用户的检索空间,与整个用户空间相比目标用户搜索空间大大缩减;最后在目标用户的检索空间中通过用户相似度计算确定目标用户的最近邻居,在此基础上产生推荐列表。
2 实验及分析
2.1 数据收集及数据预处理
该文实验中以某高校图书馆图书借阅数据为基础,通过选择借阅图书数量超过20次的读者产生的借阅记录,并经清洗、集成和归约等预处理形成实验数据集,总共生成150000条评分的记录,包含2350个用户及3700本图书和150000条评分的记录作为实验数据集,将数据集80%为训练集,20%作为测试集。
用户数据包括用户固有特征数据以及用户的借阅的图书数据,数据有字符型、数值型,需要标准化预处理,同时为满足聚类模型,需要用户数据对进行预处理及向量特征表示过程如下。
(1)用户身份属性特征表示。通过数值符号将包括年龄、性别、职业、专业及年龄等用户身份数据数字化,如将性别数据转化为0和1,将专业、身份等数据转化为数字,通过数字符号转换形成如U1=(46,1,13,5)的用户属性向量,其表示为用户是一个计算机学学院年龄为46岁,从事计算机教学的女教师。
(2)用户行为特征表示。首先依据图书的类别将每一本图书映射成为一个对应类别位置为1,其他为0的向量,由于图书有22个类别,因而图书特征有22个维度;其次,将用户所借阅图书的向量进行累加,用图书向量的累加向量表征用户行为特征。
2.2 评价指标
该文采用推荐算法中常用的平均绝对偏差MAE、准确率和运行时间对预测精准度进行分析。MAE值表示将实际评分与目标用户的预测评分的平均绝对偏差,MAE的值与推荐质量成反比,值越大表示推荐质量越低。
2.3 结果分析
通过多次实验当聚类数目K=10时准确率最高,因此在该文的实验种将用户聚类数K设置为10,为了验证文本方法在推荐中的优势,分别采用推荐中常用的基于内容和基于用户协同过滤推荐进行试验,3种不同方法的MAE结果如表1所示。
从表1中可以看出,从实验的对比结果可知,该文提出的推荐方法在平均绝对偏差和准确率方面都要优于其他两种算法;同时相比基于用户协同过滤推荐该文提出的方法运行时间有很大的提升,这是因为通过用户聚类后,目标用户的相似用户搜索空间大大降低,使得推荐效率更高。
3 结语
该文在分析传统协同过滤算法的基础上,针对协同过滤推荐算法中因图书评分数据稀疏而导致推荐质量和推荐效率低的问题,提出基于用户聚类的图书协同过滤推荐算法。该算法结合用户聚类来缓解评分数据稀疏问题以及缩减目标用户的检索空间以提高推荐的效率。首先分别用户身份属性数据和行为数据进行特性相量表示,并将两种相量连接以此作为用户的特征表示;在此基础上采用K-means聚类算法对用户进行类别划分,将用户划分成不同的类别;然后计算目标用户与各类别的距离,并选择最近距离的类别作为目標用户的检索空间,从而大大缩减搜索空间以及时间;最后在目标用户的检索空间中通过用户相似度计算确定目标用户的最近邻居,在此基础上产生推荐列表。
参考文献
[1] 郭晓慧.基于改进协同过滤的图书推荐算法研究[J].情报探索,2018(1):34-36.
[2] 何明,孙望,肖润,等.一种融合聚类与用户兴趣偏好的协同过滤推荐算法[J].计算机科学,2017,44(S2):391-396.
[3] 熊平,顾霄.基于属性权重最优化的K-means聚类算法[J].微电子学与计算机,2014,31(4):40-43.
[4] 陈功平,王红.改进Pearson相关系数的个性化推荐算法[J].山东农业大学学报,2016,47(6):941-942.