由 FP-GROWTH 改进的协同过滤算法对论文的智能推荐

发表时间:2020/5/11   来源:《科学与技术》2020年第2期   作者:谢凯欣 龚书琪 邹云云 刘涵
[导读] 由于协同过滤算法的推荐准确度较高,
        摘要:由于协同过滤算法的推荐准确度较高,越来越多的智能推荐应用开始使用协同过滤算法来对用户进行推荐。而受限于评分矩阵的缺失,在论文推荐的领域中,多为基于内容的论文推荐,较少看到协同过滤算法的应用。本文利用FP-growth算法挖掘论文关键词的频繁项集,根据相关参数设置了虚拟评分矩阵,实现了使用协同过滤算法对论文的智能推荐。

        关键词:关联规则;协同过滤;论文推荐
 

1.绪论
        推荐系统主要由两个方法组成,即基于内容属性相似的推荐和基于协同过滤算法的推荐。其中基于内容属性相似的推荐只是单纯的依赖物品之间的属性相似来构建推荐关系,缺乏较高的推荐准确性;而协同过滤算法作为基于内容的算法执行方式,在准确性上具有相当的优势,但其却存在着无法冷启动、推荐同质化和运算效率低等的缺点。[1]因此,我们使用一种改进的混合方法,利用FP-growth挖掘频繁项集,构建虚拟评分,以减少协同过滤算法受冷启动,数据稀疏而造成的推荐准确度降低的影响。
        尽管数字图书馆和信息检索系统取得了重大进展,但由于科学文献的快速增长,开展全面的文献综述变得极其具有挑战性。而论文推荐可以帮助提高这一过程的质量和效率。因此我们将改进的基于用户的协同过滤算法在论文的推荐上进行了应用实验,实验结果的细节见§3。
2.改进方案
2.1传统协同过滤算法的缺陷
传统的基于用户的协同过滤算法需要利用用户-项目评分矩阵计算项目间的相似程度。但在实际应用中,受限于用户的实际评价的项目数据仅占总体项目数据中极小的一部分,从而导致用户-项目评分矩阵的数据稀疏。在数据稀疏问题存在的情况下,相似度计算方法不能准确计算用户间的相似度,从而导致推荐结果的准确性降低。而冷启动问题也同样存在,当新用户加入推荐系统时,由于其存在相关评价数据的缺失,导致无法找到与新用户相似的用户来进行推荐。[2]
2.2结合FP-growth对协同过滤算法的改进
        本文采用了挖掘关联规则的FP-growth算法在基于用户的基础上来进行改进。挖掘关联规则是指从海量数据中挖掘出有用的、潜在的、数据项之间的联系。所采用挖掘关联规则的FP-growth算法是基于Apriori算法所构建,但相比于Apriori算法,FP-growth算法不产生候选项集,它引入了一些数据结构来储存临时数据来减少I/O次数,这样一来只需扫描两次数据集,因此效率相对更高。[3]
使用FP-growth算法挖掘关键词频繁项集的步骤如下:
①扫描数据,删除支持度小于阈值的项,将1项频繁集放入项头表,且按支持度降序排列得到所有频繁一项集的计数;
        ②扫描数据,将读到的原始数据剔除非频繁1项集,且按支持度降序排列;
        ③读入排序后的数据集,按照排序后的顺序插入FP树,排序靠前则为祖先节点,靠后的是子孙节点;
        ④从项头表的底部项依次向上找到项头表项对应的条件模式基;
        ⑤返回满足项数要求的频繁项集。
        ⑥获得项数大于或等于3的频繁项集,取100组作为本次实验所使用的关键词集合。
3.引文推荐实验
3.1 数据集
        由于现有的期刊数据集存在缺少用户评分矩阵,更新较慢,数据集过大等问题,故本次实验的论文数据集是使用现有的爬虫软件八爪鱼采集器8在万方数据知识服务平台所爬取的与协同过滤有关的1977条论文数据,每一条数据都包含有6个属性:论文名、作者、期刊、关键词、被引量、下载量。并按照爬取数据的顺序,对论文进行编号,作为论文ID。
        论文的关键词是不同用户查找论文所用的关键依据,而论文的被引量与下载量则反映了该论文在此领域的影响力。故虚拟评分矩阵的设置是依据所爬取的关键词,被引量,下载量三个属性值。我们使用FP-growth算法所爬取的100组关键词的频繁项集作为100名虚拟用户所使用的关键词。按照关键词集合的顺序,将用户从1-100进行编号,作为用户ID。虚拟评分的设置如下所示:
        ①读取论文数据集中第i条数据;
        ②if数据i的关键词j∈该用户的关键词集合:
        该用户对此论文的评分+1;
        ③重复步骤②,直至关键词被匹配完;
        ④if数据i被引>0:
        该用户对此论文的评分+1;
        ⑤if数据i下载量>100:
        该用户对此论文的评分+1;
        ⑥重复步骤①②③④⑤,直至论文数据集中的数据被匹配完。
        最终,我们将所使用的数据集分为u.item文件与u.data文件。其中u.item文件中数据为论文名称以及其对应ID共1977条,如图3.1所示:
       
图3.1u.item文件
        u.data文件中数据为经过数据预处理后,用户对其借阅过的论文的虚拟评分共197700条,如图3.2所示:
       
图3.2  u.data文件
3.2 算法介绍
        基于物品的相似推荐过于依赖于用户的历史行为,具有极强的个体性,当用户的目标明确时能起到较好的推荐效果。而使用基于用户的相似推荐则可以寻找相似用户群,了解可能具有相同调研目的的其他人所看过的期刊论文,帮助用户(尤其是新参与进学术研究的学生用户以及部分在进行科研过程中由于思路堵塞致使实验停滞不前的用户)在进行学术调研时开拓思维,使用户在目标不够明确亦或是思路受阻的情况下具有较好的推荐效果。
        故本次实验选用了基于用户的协同过滤算法作为推荐算法的主体,并使用了§2中详细介绍的FP-growth算法挖掘频繁项集来构造虚拟评分矩阵。本次实验所使用的的基于用户的协同过滤算法利用用户对论文的虚拟评分向量来计用户之间的相似度。使用欧氏距离(也叫欧几里得距离)的方法计算向量间的距离,公式如下所示:
    
        欧氏距离越小,代表用户之间越相似,为了方便比较用户间的相似度,将欧氏距离归一化,定义相似度S,公式如下:
     
3.3 实验设置
        本次实验采用基于用户的协同过滤算法,以给用户ID为7的用户推荐论文为例,关键词集合为{就业推荐,协同过滤算法,图推荐,用户画像,聚类},其实验步骤如下:
        ①构建用户-物品评分矩阵,矩阵表格中横坐标代表论文序列bookId,纵坐标代表用户数目userId,交叉处代表这个用户对该论文的评分;
        ②找到用户7对论文的偏好,即其可能对哪些论文感兴趣,表现为评分矩阵中该用户对论文的评分大于等于3;
        ③计算用户之间的相似度,即找到与用户7具有相同借阅偏好的用户集合Set<userId>;
        ④本次实验计算相似度采用欧氏距离作为度量,欧氏距离越小,两个用户相似度就越大,得到与用户7最相似的用户如图3.3所示:即用户ID为1,18,47,93的用户,用户ID后为该用户与用户7之间的相似度;

图3.3 与用户7最为相似的用户ID及相似度
        ⑤获取相似用户集合评分记录,筛选出评分大于等于3的论文,添加到列表中,按照评分排序,最终将评分最高的5篇论文推荐给用户7,结果如下图:

图3.4 推荐给用户7的论文
        由于目前没有针对借阅论文的评分系统,对论文进行的虚拟评分有效的改善了用户-物品评分矩阵稀疏的缺点,使得推荐结果更为准确。
4.结论
        本文提出了一种新的虚拟评分矩阵的构建方式,即通过关联规则FP-growth挖掘频繁项集,再根据关键词、被引量、下载量三个属性值对论文进行评分。利用FP-growth算法将推荐准确率较高的协同过滤算法进行改进,极大程度上减少了由于数据不足带来的数据稀疏与冷启动问题所造成的推荐质量下降的情况。但受限于实验环境的不足,本次实验无法使用过大的论文数据集,故用户的数据较少,使得用户相似度较低。
参考文献:
[1] 陈彬,张荣梅. 智能推荐系统研究综述[J]. 河北省科学院学报, 2018, 35(3): 82-92.
[2]冯阿敏.基于用户协同过滤算法的推荐系统的设计与实现[D].陕西:西安电子科技大学,2017.
[3]Han J W, Pei J, Yin Y W. Mining frequent patterns without candidate generation. In:
Proceeding of the 2000 ACM SIGMOD International Conference on Management of Data.New York: ACM Press, 2000. 1-12.
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: