快生活 - 生活常识大全

基于数据挖掘的图书智能推荐系统


  【摘 要】在传统图书馆服务中,用户主要通过搜索来获取所需信息,这是一种被动的服务方式,只能满足用户的基本需求。和搜索相比,推荐系统能通过研究用户的历史行为,发现用户的兴趣偏好,据此主动为用户提供推荐服务。不但可以使用户获得满意的结果,还能引导用户发现自己的潜在需求。将推荐技术应用于图书馆系统,是图书馆实现信息服务的有效手段,可以有效提高图书馆的服务质量和图书资源的利用率。本文提出一种多算法并行的混合推荐方法来产生推荐结果,满足业务需求。
  【关键词】推荐系统;混合推荐;数据挖掘;图书推荐;算法
  一、智能推荐系统概述
  (一)什么是推荐系统
  随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载的时代。在这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战:作为信息消费者,如何从大量信息中找到自己感兴趣的信息是一件非常困难的事情;作为信息的生成者,如何让自己生產的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。推荐系统就是解决这一矛盾的重要工具。推荐系统的主要任务就是联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。
  (二)智能推送系统总体设计
  本系统根据业务场景,将混合推荐系统分为以下四大模块:
  * 猜你喜欢模块
  猜你喜欢模块是整个系统最核心也是最重要的业务子模块之一,根据用户的实时收藏记录进行实时计算,并实时推荐计算结果到前端进行展示。
  * 相似图书模块
  相似图书模块是根据图书自身的属性进行推荐(例如简介、摘要、作者信息、关键词、标签、中图法分类信息、评分等字段),对图书之间的相似度进行度量和智能排序,结合用户的离线浏览数据进行计算并最终在前端进行展示。
  * 相似用户模块
  相似用户模块是利用用户本身的收藏、浏览等行为数据实时推荐与其相似的用户。
  * 日志分析模块
  日志分析模块通过对用户在平台产生的浏览记录进行离线分析、挖掘和计算,向其推荐图书和相似用户。日志分析模块和猜你喜欢模块互为一个完备事件组,对于没有强行为(如收藏行为)的用户,可以通过日志分析得到精确的推荐结果。从而保证了业务的完备性。
  每个业务模块独立对应一种业务场景并承接一项计算任务,有离线计算也有在线实时计算,彼此相互协作却互不干扰。从而有效保证了业务的完备性,计算的实时性,结果的可解释性。
  二、猜你喜欢模块
  (一)模块逻辑结构
  猜你喜欢是整个推荐系统最核心的模块之一,通过Redis发布订阅模式监听主题对象,当用户在前端产生行为时触发猜你喜欢模块并进行实时计算,结果会直接插入redis中。为了保证实时计算效率,在模块设计中引入聚类思想。在程序触发之前,已离线计算出各簇的相似用户。当新用户发生触发行为时,匹配最近的簇并与簇内用户进行相似度计算。如此设计,可以大幅提升算法的实时性。
  (二)模块功能
  猜你喜欢算法借鉴了协同过滤的基本思想,大幅提升计算的效率来保证用户喜欢一本图书后,结果反馈的实时性和准确性。同时算法还读取了用户的历史收藏数据来组成共同的索引向量,以保证该向量能最大程度的反应当前用户的偏好。
  目前,该算法根据功能流程划分为以下四部分:
  * 数据预处理:对数据进行清洗和转化,输出给算法
  * K-均值算法:对用户进行聚类分析
  * 协同过滤算法:加权计算推荐结果
  * 推荐模块:综合所有计算结果进行处理,智能排序,降低热门图书权重等功能。
  (三)核心算法原理简述
  1.K-均值聚类算法
  K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。K-means算法以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。算法采用误差平方和准则函数作为聚类准则函数。
  2.基于用户的协同过滤算法
  协同过滤根据用户对项目的评分来产生推荐,是目前在推荐系统应用最成功和广泛的推荐技术。根据推荐生产过程的不同,通常可以将协同过滤算法分为基于用户的过滤和基于物品的过滤。本系统主要采用了基于用户的协同过滤算法来产生推荐结果。根据算法的基本原理,可以把算法的实施分为四个阶段:(1)用户相似性计算;(2)选择近邻;(3)预测评分;(4)推荐。基于协同过滤的推荐算法,实施简单有效,可以发现用户潜在的但自己尚未察觉的兴趣偏好。但是,当用户的评分数据较少时,这一方法无法产生推荐结果。当系统的数据规模不断扩大后,推荐效率又会受到影响。
  三、相似图书模块
  (一)模块逻辑结构
  相似图书模块,在整个大数据推荐系统中处于离线部分,系统每日会定期计算当前日期前30天的用户浏览图书数据并和库内所有图书计算相似度后插入redis数据库中。如此设计可以很大程度降低redis数据库的存储压力,方便后台进行快速读写。提高读写效率。
  (二)模块流程
  相似图书算法借鉴了基于内容推荐算法的思想,利用余弦相似度计算稀疏矩阵得到相似度矩阵。常用的距离度量方式有:皮尔逊系数、余弦相似度、曼哈顿距离、阿基米德距离等。这里选用余弦相似度进行度量,好处在于余弦相似度可以在任何维度的向量中进行比较。尤其在高维空间中表现突出。因为图书内容属于文本向量,分词后维度很高,所以在图书推荐算法设计时,距离的度量均采用余弦相似度进行度量。
  根据20/80法则,热门图书与用户经常浏览的图书只占有数据库量级的很小一部分。如果遍历数据库所有图书来进行相似度的计算,会造成难以想象的时间复杂度和空间复杂度,并且计算量随图书量级的增长所消耗时间会呈现指数形式上升。为避免这种情况的出现,在设计相似图书算法的时候,采用日志数据和相似图书计算相结合方式,同时引入随机模块,在保证非齐次性的同时,避免了重复性。
  (三)核心算法原理简述
  1.基于内容的推荐算法
  基于内容的信息推荐方法的理论依据主要来自于信息检索和信息过滤,所谓的基于内容的推荐方法就是根据用户过去的浏览记录来向用户推荐用户没有接触过的推荐项。主要是从两个方法来描述基于内容的推荐方法:启发式的方法和基于模型的方法。启发式的方法就是用户凭借经验来定义相关的计算公式,然后再根据公式的计算结果和实际的结果进行验证,然后再不断修改公式以达到最终目的。而对于模型的方法就是根据以往的数据作为数据集,然后根据这个数据集来学习出一个模型。一般的推荐系统中运用到的启发式的方法就是使用tf-idf的方法来计算,然后再根据被推荐项中的权重高的关键字来作为推荐项的属性特征,然后再将这个两个向量最相近的(与用户特征的向量计算得分最高)的项推荐给用户。在计算用户特征向量和被推荐项的特征向量的相似性时,一般使用的是cosine方法,计算两个向量之间夹角的cosine值。
  四、相似用户模块
  (一)模块逻辑结构
  相似用户模块逻辑与猜你喜欢基本相同,只是最终计算方式有所不同。
  (二)核心算法原理简述
  1. TF-IDF转换概述
  TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TF-IDF实际上是:TF * IDF,TF词频(Term Frequency),IDF逆向文件频率(Inverse Document Frequency)。TF表示词条在文档d中出现的频率。IDF的主要思想是:如果包含词条t的文档越少,也就是n越小,IDF越大,則说明词条t具有很好的类别区分能力。
  某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。
  五、日志分析模块
  (一)模块逻辑结构
  日志分析主要针对没有显性数据的用户,如没有收藏、点赞、评分等显性行为。通过分析其浏览行为来进行推荐的方式。对于本系统,每日会定时分析当天用户的浏览日志,通过智能算法对当天用户感兴趣的图书进行建模分析,做出图书推荐。
  日志分析模块主要是为了保证业务逻辑上的完备性,对于平台用户,可能很大一部分都不会产生显性数据,对于之前的猜你喜欢模块是无法进行图书和相似用户推荐。通过引入用户的浏览日志,可以有效解决这一问题,保证了业务的完备性。
  六、新书热门推荐及冷启动问题
  (一)冷启动问题
  推荐系统需要根据用户的历史行为和兴趣预测用户未来的行为和兴趣,因此,大量的用户行为数据就成为推荐系统的重要组成部分和先决条件。
  对于图书推荐系统而言,在没有历史数据之前,冷启动问题是一个非常严峻的挑战。这需要在没有用户数据前就根据用户的浏览行为做出相应的推荐。
  本系统在设计之处就考虑到冷启动问题,目前通过两种设计方案解决冷启动问题:
  1.借助外部用户数据来解决系统冷启动问题:
  通过网络采集和抓取海量和图书相关的用户数据、用户收藏数据、用户评分数据、用户评论、美文等数据,通过清洗、去重、归一化等处理后,作为系统自身冷启动的原始数据。
  2.采用基于图书本身内容的推荐算法来作为推荐的底层数据:
  基于内容算法的本质是用图书自身的属性作为参数进行关联和计算。比如对于图书的作者、标签、评论、美文等信息通过分词或建立主题模型组成一条向量来代表图书本身,这样就可以通过向量之间的计算等价代换到图书之间、用户之间相似度间的度量。
  (二)新书、热门图书
  对于新书和热门模块,系统会根据用户浏览、收藏、评分、点赞等信息进行智能排序、智能推荐。一方面,系统实时抓取版署新出版图书信息,满足新书速递的要求,另一方面,系统会根据新书本身的内容和网络数据对新书进行综合排序,智能推荐给读者用户。
  七、总结
  本方案将基于内容的算法、协同过滤技术、聚类等算法思想结合在一起,一个新的自动化推荐机制展示了出来。该方案具有以下优势:
  * 基于图书内容的推荐可以有效解决图书推荐冷启动的问题,
  * 协同过滤可以匹配相似用户之间未发觉的兴趣爱好,同时基于用户的协同过滤在聚类时可以大幅降低系统的时间复杂度,避免维灾难。通过混合推荐可以有效避免热门资源始终被推荐,使系统更为强健。
  * 引入随机模块和正则模块,挖掘图书长尾市场,避免推荐的齐次性和重复性。
  * 日志分析模块保证了业务的完备性,对于没有强行为的用户也可以通过浏览日志进行推荐。
  * 算法再学习模块,保证了随着平台数据的积累,算法的不断自动调优和智能推荐效果的提升。
  【参考文献】
  [1] 江宝林,张渊.基于互关联后继树的WEB日志挖掘[J].计算机应用与软件,2004(05).
  [2] 杨明.基于数据挖掘技术的个性化教学研究[D].云南大学,2004.
  [3] 文春勇.基于关联规则的推荐系统在数字图书馆中的应用[J].情报科学, 2007(6).
  [4] 杨焱.基于项目聚类的协同过滤推荐算法的研究[D].东北师范大学,2005.
网站目录投稿:寄文