基于大数据的智慧图书馆系统框架与实现
2020-10-08徐蕾,孔伟
徐 蕾,孔 伟
(南京信息工程大学 图书馆,江苏 南京 210044)
2018 年10 月,中国图书馆学会举办智慧图书馆建设与服务研讨会,明确提出掌握智慧图书馆发展现状、交流智慧图书馆建设经验、培养智慧图书馆建设专业人才,从而推动我国图书馆事业走向世界前列。不难看出,学界和业界已经把智慧图书馆作为未来图书馆发展和建设的方向。我国自2005 年开始智慧图书馆的实践和研究,多位专家对其概念做出了详细的定义。严栋[1]认为智慧图书馆只是通过新的技术来改变人和图书馆的信息交互方式,并且提出了“智慧图书馆=图书馆+物联网+云计算+智慧化设备”这一等式,但笔者认为智慧图书馆并不单纯是一个建筑加上技术的硬件结合体。笔者比较赞同王世伟[2-3]对于智慧图书馆的定义,“智慧图书馆是以数字化、网络化和智能化技术为支撑,而以人为本,为读者提供更为方便的服务才是智慧图书馆的核心”。因此,本研究拟在该概念上进行扩展:智慧图书馆的服务对象不仅仅是读者,也包括管理人员和服务人员。
在当前大数据的背景下,智慧图书馆的建设应当秉承其收集、整理、收藏图书资料以供人阅览、参考的基本理念[4]。大数据是指在社会生产实践中所产生的数量极大的、形式多样的数据集合[5-6]。托勒夫早在1983 年就预言到“大数据”时代的到来并称赞其为“第三次浪潮中的华彩乐章”[7],在当今社会下主动拥抱大数据成为各个行业发展的基本方向。如今,读者、管理人员和服务人员与智慧图书馆的交互形式多样,既发生在实在环境,又发生在拟态环境,其含义早已不仅仅是简单的借书、还书、整理书,更多是人与智慧图书馆在网络空间中基于数据的交互。智慧图书馆快速有效收集、处理、分析、应用数据的能力能够极大提高读者的满意度,降低管理人员的决策难度,增强服务人员的工作效率。
1 相关研究
由于当前图书馆在数字化时代累积了庞大且不断增加的数据资源(包括馆藏数据资源、用户数据、工作数据等)[8],以及读者群体数量和对于图书资源的多元化需求快速增长,增加数据中心设备的传统模式难以为继。当前图书馆首先应该在了解读者的共性要求和个性需求的基础上拓展服务对象,其次在分析读者的差异性阅读爱好基础上创新个性化服务,最后在获取可靠数据的基础上精确化图书馆的决策管理。但与之矛盾的是,当前图书馆处理数据能力的相对落后使得大量的读者阅读的实时数据、馆员工作的实时数据等没有被收集和处理;图书馆资源不是基于对读者的阅读需求的深入理解[9],并且馆员主动提供优质服务的能力不足[10];数据资源应用能力较低,不能为决策提供有效的辅助。因此,提高当前图书馆数据处理、个性化推荐和决策辅助能力成为建设智慧图书馆的关键。
1.1 数据处理方面
数据处理是大数据的基础,是信息的收集、存储、检索、加工及转换等过程[11],简单来说就是收集和操作数据项来产生有意义的信息。但是传统的图书馆面对大量的读者的实时访问和阅读信息、馆员的实时工作信息等却达不到充分收集和处理的标准。而图书馆对于数据的实时采集和处理能力,将为下一步的数据分析提供基础支持。
在图书馆数据处理方面,2017 年柳益君等[12]使用一个开源的分布式海量日志收集系统Flume,将用户访问的数据日志定期地收集和存储在分布式存储中。同年,白林林等[13]使用Drupal 框架来采集数据。但是这些研究只考虑了从外部信息平台获取图书馆数据,没有考虑图书馆本身也有大量的内部数据产生。2018年,刘景亮等[14]、曹健等[15]、陈臣[16]侧重使用基于Hadoop 框架来构建智慧图书馆内外部数据的收集和处理,但是由于“Hadoop + MapReduce”框架在面对海量的实时数据时是基于磁盘进行分布式批量处理,因此存在较大的延迟,不能对实时性要求高的图书馆数据处理任务做出及时的响应。
1.2 个性化推荐方面
个性化推荐服务是智慧图书馆的核心,是图书馆从被动式提供文献查阅向主动为用户提供内容阅读服务转变的技术保障。这要求在新的时期下,图书馆能够利用大数据中的推荐技术,继承和创新图书馆的服务模式,完善个性化推送服务。
在图书馆个性化推荐服务方面,柳益君等[17]、李欣[18]通过使用有关用户阅读习惯等关联性来制定一种广泛性的信息集联和筛选规则,但是其关联性规则需要人工制定、修改、删除,馆员工作量巨大且规则更新缓慢。左素素[19]、黄宇[20]等使用基于内容过滤的推荐算法,通过建立用户需求向量和文本资源向量的相似度比较来对读者进行内容的个性化推荐。但上述方案侧重于文本内容的特征提取,面对智慧图书馆中的多媒体资料不能有效反映其内容的特征向量,两者准确度相差较大。
1.3 决策辅助方面
智慧图书馆相关决策的制定包括图书馆书籍或者电子资源的采购、馆员人数的分配等。目前传统图书馆在制定采购计划时容易受到主观因素和个人因素的影响,导致计划缺乏全面性和继承性。在新时代信息化的背景下,图书馆采购资源时应该主动依靠大数据的相关技术,为读者提供更具吸引力的阅读体验。
在图书馆决策辅助方面,严建援[21]提出使用层次分析法来进行图书馆的决策辅助,通过将人们的主观判断和客观标准结合起来,将若干种图书种类按照其适合程度进行排序,但是方法评价指标的权值依赖个人和专家,具有相当大的主观性和不确定性。田磊等[22]、迟春佳等[23]通过分类的方法找出利用率不同的图书的类别,使用聚类的方法对利用率较高的图书种类进行分析,制定出相对精确的采购书目。但是上述方案对非线性决策边界处理的性能较差,且需要图书馆管理员设定集群的数量。
1.4 存在的问题
综上所述,国内外研究学者对智慧图书馆数据处理、个性化推荐和决策辅助已做了大量的研究,但现有的研究还存在以下问题:
(1)现有图书馆数据处理的方法,如“Hadoop+MapReduce”大数据采集和处理框架,一是没有考虑当前图书馆处理实时数据的任务量较大,二是面对海量数据的处理延迟较大。
(2)图书馆个性化推荐现有的研究成果在对数据进行分析时,缺乏自动化的关联规则制定和可拓展的非文本的数据资源处理方法。
(3)现有的图书馆决策辅助机制研究尚未成熟,主要还是依靠个人经验和专家指导来采购图书馆资源,主观性和不确定性相对较大;同时数据挖掘算法如分类和聚类具有只解决特定问题的局限性。
2 基于大数据的智慧图书馆系统框架
为了解决上述问题,本文从智慧图书馆建设的实际出发,以服务读者为中心,构建了基于大数据的智慧图书馆系统框架(见图1 所示)。将智慧图书馆分为物理层资源、数据处理层、数据分析层和数据应用层。
图1 基于大数据的智慧图书馆系统框架图
(1)物理层资源。这是由硬件存储器存储的数据、传感器和内部网络收集的读者阅读数据、外部互联网中收集的有关图书馆或者图书更新的数据组成,并且通过较成熟的RFID、WiFi、ZigBee 和NFC 等数据传输协议将图书馆收集的数据传送到数据处理层。
(2)数据处理层。基于Spark 大数据处理技术实时地收集和处理相关的业务数据,并且将杂乱异构的数据抽取和转换成有特定含义的、符合特定需求的、有意义的数据。
(3)数据分析层。根据不同的需求,基于处理后的数据使用混合型的协同过滤算法来进行个性化的推荐。
(4)数据应用层。在数据应用层针对决策辅助这一特定的应用环境,通过方差分析模型来辅助采购的决策,减少图书采购环节主观性大且片面的缺陷。
3 基于大数据的智慧图书馆系统实现
3.1 基于Spark 框架的数据处理
读者对于图书馆能够实现广泛互联、资源共享[24]的呼声越来越高,这就意味着图书馆的数据库资源和业务数据会空前地增加。传统的Hadoop MapReduce框架会把大量的数据交由网络上的各个节点处理,最后返回处理结果,但是由于数据处理过程中需要不断地进行磁盘IO 操作,延时较高。Spark 框架将执行模型变为有向无环图执行计划(DAG),将中间的运算结果写入内存当中,大大提高了理论上的处理速度,在内存中Spark 能比Hadoop MapReduce 快约100 倍,在硬盘中则要快10 倍左右。
基于Spark 框架的图书馆大数据能够处理实时性要求高、来源多样的异构化数据。图2 为基于Spark并且结合智慧图书馆的特点设计的框架。数据接收部分中,通过使用一个可监控大型分布式系统的分布式数据收集系统Chukwa 和一个Hadoop 与传统数据库间进行数据传递的开源工具Sqoop,分别把收集的图书馆内部产生的数据和外部网页上产生的数据写入到Kafka 消息系统中。通过Kafka 把数据分为两类来处理:(1)可以设定一个长时间段(一天或者是一周)
进行数据收集并写入Kafka 系统中,然后进行离线处理;(2)可以收集每一分钟的数据或者是收集确定大小的文件,之后进行实时处理。最后,将保存在Kafka消息系统中的不同的日志数据按照其不同的需求转发给Spark Streaming 进行处理。同时,作为处理系统中的核心模块,Spark Streaming 可以接收实时的输入数据流,将数据按照一定的时间窗口拆分成多个批数据,最后进行数据处理。
图2 基于Spard 框架的数据处理图
3.2 使用混合型协同过滤算法的个性化推荐
为了实现大数据而“大数据化”的思路是无法建设好智慧图书馆的[25-26]。传统图书馆大量的数据资源闲置,并不是它们的内容不够丰富,而是特定的资源不能被有需求的读者所发现。个性化推荐的过程就是为了实现“为书找人”的目标,挖掘出读者的现实需求和隐含需求,从而提高图书馆资源的利用率。本研究利用基于用户、项目和模型的三种协同过滤算法,提高推送的准确度。
如图3 所示,当数据经过处理后,会存储在硬盘HDFS、内存Hbase 或者关系型数据库MySQL 中,可以对其中的数据进行特定分析。首先,协同过滤分为在线协同和离线过滤两个部分,在线协同是指系统通过内部收集的数据判断读者可能更感兴趣的资源,离线过滤是指系统会过滤和筛选出可能对于读者不值得推荐的资源。而按其类型则分为基于用户的协同过滤(user collaborative filtering,Vser CF)、基于物品的协同过滤(item collaborative filtering,Item CF)和基于模型的协同过滤(model-based collaborative filtering,Model-based CF),但是每种分类方法都有特定的应用场景。User CF 算法以用户和用户之间的相似度作为推荐的依据,通过皮尔逊相关系数的计算来获得用户间的相似度关系,找到相似读者喜欢的物品来推荐。该模型可以帮助用户发现新的类别的感兴趣的图书馆资源,但是在图书馆中通过类似兴趣的人阅览的书来推荐具有相当的不确定和不稳定性。类似的是,Item CF 算法则按照物品和物品的相似度来进行推荐,若某读者阅览了一本JAVA 语言的书,那么智慧图书馆便会推送相关开发的资源。但是其缺点也是显而易见的:无法主动挖掘读者隐藏的兴趣而只能被动推荐。若是面对若干读者和图书馆资源,而仅仅只有部分读者对部分图书馆资源是有评分的,以上两种方法都不是最好的选择,因为推荐的精度会严重下降。因此,对于个性化推荐的方案中分为两种情况:一若是图书馆与读者互动良好、读者对于馆内资源评分评价丰富,在计算两个读者相似度时将读者对于图书馆资源的评价嵌入其中,采用Item CF 与User CF 的混合推荐算法;二若是不存在大量评价,采用Model-based CF 通过已有的稀疏矩阵来预测出读者对于其他空白图书馆资源的评分,从而给读者推荐评分最高的资源。
图3 基于混合型协同过滤算法的个性化推荐
3.3 采用多因素方差分析的采购决策辅助
高质量的图书馆资源采购是建设智慧图书馆的保障,如何在有限的资金下满足读者各个方向和层面上的阅读需求,是智慧图书馆建设的重点研究方向。本研究提出智慧图书馆可在大数据背景下,利用多因素方差分析的方法来提升采购质量。
在基于Spark 框架的实时数据处理系统下,能够快速得到图书馆资源借阅和访问的总量、某一类图书馆资源借阅和访问量。从这两种数据出发,可以通过方差分析法得到增加或者减少某一类图书馆资源的采购对于图书馆借阅和访问总量的影响。因为影响图书馆资源借阅和访问总量的因素不仅仅只有资源采购,也有很多其他的因素包括考试的时间、专业的增加或者减少等,所以选用多因素方差分析法。其基本理念是将图书馆借阅和访问这一因变量的变换总量分解成由各个因素(图书馆不同种类资源的采购)及其交互作用的影响部分和随机误差的影响部分,来判断不同因素的不同水平对于因变量的显著性影响,并且能够分析出各个因素之间的相互作用对于因变量的影响。
首先,基于多因素方差分析方法设计从多个影响因素得到决定性因素的快速算法,部分如式(1)所示:
式中,∂是因子影响总平方和,N代表影响因子的数量,e代表平均误差和,M是样本偏差,p是观测总数。其次,若将某一类书的采购数量记作因素A,可以通过给定的显著性水平查出相应的分布分位数,若是M高于分布分位数,那么可以断定因素A在同水平下和其他因素对于因变量的影响是显著的。最后,通过多因素的方差分析法,能够确定某类资源的采购或者某几类资源的组合采购对于图书馆资源的借阅和访问的影响较显著,从而辅助采购决策,满足读者的多元化阅读需求。
4 结语
(1)在数据处理的实践中,本研究采用 Spark Streaming 流式处理框架结合Chukwa 分布式收集系统和Kafka 消息系统,比传统的Hadoop 具有更高的效率、更高的容错性和更好的通用性。下一步计划在更大规模的数据集上进行测试,并在实际的建设中应用,通过测试和维护系统的稳定性和可靠性,来保证基于大数据的智慧图书馆满足用户对高效、高精度和高智慧化的服务需求。
(2)智慧图书馆通过使用混合型协同过滤算法来实现对读者爱好的分析,本研究将用户、项目之间的关联性和稀疏矩阵的方法针对不同的场景使用,有效地提高了个性化推荐的效率。但值得注意的,在进行数据分析或发生黑客攻击时,大量读者的隐私阅读数据将会暴露给分析人员或恶意的攻击者。因此,目前智慧图书馆存在十分严重的隐私泄露的风险。笔者建议在数据分析系统建立之前就要详细地考虑如何保护读者的阅读数据隐私,通过账号的匿名化、访问权限设置和隐私数据的加密存储等来保护读者的隐私。
(3)在智慧图书馆的决策方面,本研究采用多因素方差分析来辅助管理人员的采购决策,通过观测不同类图书采购对于图书馆资源的阅读量产生的显著性影响和多种因素的相互影响来选择最优的采购组合。不难看出,大数据在智慧图书馆的决策中处于辅助地位,真正处于决策地位的是管理人员。因此,为了保证决策的正确,高素质的人才必不可少。在智慧图书馆的建设中,应该坚持人才引进和长期培训相结合,加强人才队伍建设和人才资源储备,提升馆员的整体素质,为智慧图书馆的发展提供正确的决策方案。