大数据生态下基于Apache Mahout的推荐系统研究

2016-02-13 16:47樊姗刘丹
图书馆学刊 2016年7期
关键词:个性化协同图书

樊姗刘丹

(华东师范大学图书馆,上海 200240)

大数据生态下基于Apache Mahout的推荐系统研究

樊姗刘丹

(华东师范大学图书馆,上海 200240)

[摘要]大数据技术在给图书馆带来挑战的同时,也赋予了图书馆更多可用的新技术,Apache Mahout正是其中之一。Apache Mahout的出现有利于推荐系统在图书馆的广泛部署、原型化开发、系统优化、算法研究,以及适应大数据生态。

[关键词]推荐系统Apache Mahout机器学习大数据

1 引言

随着互联网时代的到来,信息过载(Information Overload)给人们带来了越来越多的困扰。在过于膨胀的信息面前,要理解隐藏在信息背后的问题、根据信息做出决策已经变得十分困难[1]。在图书馆环境中,丰富的纸本馆藏、电子资源在为读者带来知识的饕餮大餐同时,也将读者置身于信息过载的困境中。长尾(Long Tail)思想已经融入亚马逊等电商的销售策略。基于长尾思想的销售在大量售出数量较少的流行物品基础上,通过寻求售出数量庞大但流行度较低的物品而增加销售额[2]。图书馆馆藏与读者的关系跟电商商品与客户的关系不无相似之处,该策略可以借鉴到馆藏服务中。近年来,随着图书馆纸本图书借阅量的普遍下降,各种图书排行、现场主题书展等活动越来越受到图书馆的青睐,成为广为接受的图书馆资源推荐手段。此类推荐从总的借阅统计排名、分类统计排名、特定活动主题出发聚集图书,反映了图书的流行度、内容特征,但未能考虑到读者的个性化偏好。利用推荐系统提供个性化的资源推荐服务能够帮助图书馆为读者解决信息过载问题,实现资源的长尾策略[3],应对馆藏利用率下降带来的危机。

大数据是一个较为宽泛的概念,通常指当数据量大、结构复杂,传统的数据处理技术不能满足的情形[4]。与传统数据技术相比,大数据具有4V特征,即数据达到一定的容量(Volume)、具有多样性(Variety)、速度(Velocity)敏感、富含价值(Value)[5]。随着大数据技术的流行,数据挖掘理念越来越普及,数据挖掘支持工具也更容易获得。一些原本具有较高技术壁垒,在商业领域使用的技术变得易于为图书馆所掌握利用。推荐系统、机器学习工具库Apache Mahout正是这样的技术。

2 推荐系统简述

推荐系统(Recommender Systems)是信息过滤系统(Information Filtering System)的一个子类,其基本原理是在将符合需要的信息呈现给用户之前过滤掉冗余的、不符合需要的信息。相对于信息过滤系统的其他类型,推荐系统主要关注预测用户对物品的评分或偏好[6]。国外关于推荐系统的研究与应用十分活跃,如美国施乐对Tapestry的研发、斯坦福大学的Fab系统、Citeseer、俄勒冈州立大学图书馆的SERF、加州大学伯克利分校图书馆的Melvyl、以及著名的亚马逊推荐系统[7]。

推荐系统涉及3个主题,推荐方法、推荐解释、推荐评估[8]。推荐方法解决通过什么数据,如何生成推荐。推荐解释通过告知用户推荐背后的缘由增强用户对推荐的认可度。推荐评估通过衡量推荐的质量为提高推荐效果提供参考。

推荐方法是推荐系统的核心,目前主要有协同过滤推荐、基于内容的推荐、基于知识的推荐以及混合推荐4种类型。协同过滤推荐以用户、物品之间的统计关联度进行推荐,不要求关于用户、物品的知识。它由D.Goldberg等1992年在Tapestry中提出,是推荐系统中最成熟,使用最广泛的推荐技术[9]。其优点是可以不考虑内容项的特征,任何形式的内容都可以推荐[10]。在协同过滤推荐技术的基础上,通过融入新的手段来提升推荐效果已成为研究的热点,包括将粗糙集引入到基于用户聚类的协同过滤中[11]、引入读者特征模型,采用优化的协同过滤算法产生个性化图书推荐[12]、应用多目标优化计算双聚类技术实现协同过滤推荐[13]、基于语义手段结合协同过滤技术的混合推荐[14]等。

基于内容的推荐根据人、物品的属性特征进行推荐,不要求大规模的用户、物品数量。此类技术也常常通过加入新的计算方法以获取更好的推荐效果,如基于分类方法的内容过滤推荐技术[15]、引入模糊联想记忆神经网络实现个性化推荐[16]、基于语义扩展的个性化知识推荐[17]。基于知识的推荐能在无法获取大量的用户、物品关系、属性特征时,根据额外的知识进行推理。如应用知识地图实现图书馆个性化信息推荐服务[18]。混合推荐能够结合上述三者的优势提高推荐效果。

3 机器学习工具库Apache Mahout

推荐系统通过计算机程序实现,部署在服务器上提供服务。作为计算机程序,推荐系统的功能与性能是决定其效用的两个重要方面。前者涉及推荐系统自身方法理论的有效性,要求程序设计者掌握推荐系统理论方法;后者涉及计算机软件设计的有效性,要求设计者掌握计算机软硬件体系结构与程序设计方法学。作为一种基于数据挖掘的应用,推荐系统是性能敏感的,对上述两个因素都有严苛的要求,它的实现对设计者提出了挑战。对软件开发的应用域知识技能要求与基础的系统功能、性能要求并存带来的挑战是一个软件开发领域常见的问题。对此问题的解决方案一般通过开发分层实现,应用域软件的开发者关注目标问题域的程序设计与开发,系统架构级开发者关注基础的系统功能与性能支持开发。后者的开发成果通常以软件开发框架、工具库出现。对于推荐系统而言,Apache Mahout正是这样一个起基础系统级功能与性能支持的推荐系统开发工具库。

Apache Mahout是Apache软件基金会旗下的独立子项目。它使用Java语言编写,以开源许可发行。得益于优异的开发团队与Apache基金会的支持,Apache Mahout具有优良的存储设计、架构扩展性,并以高效的方式实现了包含推荐算法在内的经典机器学习算法。Apache Mahout强调体系结构的可扩展性,这种前瞻性设计适应了大数据处理的需求,易于实现分布式计算,其部分组件本身即构建在Apache Hadoop分布式计算平台之上。最新的Apache Mahout已经开始连接大规模数据处理引擎Apache Spark。对于现实中基于大数据的推荐应用,如果没有Apache Mahout这类实现手段,将是一项无法完成的任务[19]。

作为一个软件库,Apache Mahout主要面向开发人员,而非终端用户。它以API调用的方式提供服务,着眼于为机器学习相关的开发提供基础组件支持。其主要组件为推荐引擎、聚类(Clustering)、分类(Classification)等算法实现及辅助工具。

Apache Mahout的推荐引擎实现了大部分主流的推荐算法,包括基于用户的协同过滤、基于物品的协同过滤、Slopone、奇异值分解(SVD)、Knn、聚类推荐。Apache Mahout实现了主流的相似度量算法,包括基于皮尔逊相关系数的相似度(Pearson Correlation Similarity)、基于欧氏距离的相似度(Euclidean Distance Similarity)、谷本系数相似度(Tanimoto Coefficient Similarity)、对数似然相似度(Log Likelihood Similarity)。Apache Mahout内置的推荐评估器支持平均绝对差值(Average Absolute Difference)、均方根(Root Mean Square),以及在信息检索中广泛使用的查准率(Precision)、查全率(Recall)评估标准。

利用Apache Mahout,图书馆不仅可以快速的部署推荐系统,而且可以利用其设计优异的偏好数据存储组件,算法工具、推荐评估组件等基础设施来辅助新的推荐算法开发与测试。由于它的开源性,推荐系统研究与实践者可以灵活的进行代码级定制以符合自身需求。

随着Apache Mahout的成熟与不断普及,部分图书馆、情报学者已经意识到它在推荐系统研究与部署中的作用与价值,开始在研究与实践中纳入Apache Mahout:邱均平[20]、景民昌[21]在其推荐系统的研究中使用了Apache Mahout;欧阳剑等采用Apache Mahout构建了一个简单、方便、快速的同趣、同类书目推荐引擎[22];奉国和等重点对Apache Mahout结合Apache Hadoop实现分布式推荐进行了介绍[23];杨京等从大数据工具的角度介绍了Apache Mahout[24]。但上述研究对该工具价值的论述还不够全面,若能让推荐系统研究者与实践者更好地意识到Apache Mahout的价值,将会有助于推动图书馆推荐系统研究工作的开展与推荐系统的实际部署。

4 Apache Mahout带来的变革

4.1促进推荐系统在图书馆的广泛部署

在没有基础平台的支持下,图书馆要进行推荐系统部署不仅需要实现核心的推荐算法,还需要实现高效的存储机制与计算架构能以满足大数据处理的需求。对于非专业的开发者来说,这是难以克服的挑战。这种高技术壁垒将大多数的图书馆挡在了提供个性化推荐服务的门外。Apache Mahout内置了大部分成熟的推荐算法组件,提供了基础的工具组件。它的出现能让图书馆从开箱即用的推荐技术中受益,具备打造个性化的推荐服务能力,为广泛的图书馆开启推荐系统部署之门。

4.2提供推荐系统原型化开发支持

诸如数据稀疏性、冷启动、推荐多样性、推荐新颖性等问题的广泛存在说明,推荐系统开发本身具有复杂性,不仅涉及机器学习等技术问题,也涉及包括文献老化、阅读心理等因素。特别是图书馆在应用协同过滤推荐中的数据稀疏性问题,虽然许多研究人员对此进行了探索[20-21,25-27],但结果仍不尽如人意。可见,推荐系统设计开发面临了诸多的不确定性因素,且具有较高的技术要求,容易导致失败的推荐系统开发,大量的人力投入却很可能收获较低的效益。软件工程中的原型开发是一种应对需求、问题域不确定性的成功软件开发策略。它通过最小化开发消耗来抵消由不明确性带来的风险。Apache Mahout提供的基础组件为推荐系统开发提供了现成的装配件,使得开发者只需少量的努力即可实现一个可用的推荐系统原型。在开发过程中对大量主流的推荐方法与相似性度量进行测试变得相对容易,包括协同过滤实现,各种相似性算法、推荐评估器。若没有Apache Mahout辅助实现这些快速的原型,整个开发的投入相当高,周期也会更长。Apache Mahout的出现为图书馆通过快速原型,以迭代的方式实现成熟的推荐系统开发提供了支持。

4.3优化推荐系统开发整体质量

实际的推荐系统不仅涉及核心的推荐算法实现,还需要关注数据生成、数据聚合、推荐呈现、应用调度、使用统计等一些常见的事务性程序设计与实现。完整的协同推荐系统涉及多个层面,包括需求层,行为层、过滤层、推荐层、交互层和资源库[28],是一个系统工程。Apache Mahout提供的高可用推荐支持工具解放了开发者,可以使推荐系统开发团队免于一般化的、成熟的基础组件实现,将开发重心投入到系统整体的规划与开发上,处理上述必要的事务设计与实现以及系统的其他层面的问题,从整体上优化推荐系统。

4.4助力推荐算法创新研究

推荐系统中用户的增长和内容的大量增加带来的计算代价的复杂度不是线性的[10]。加上推荐对时间的要求,这往往构成了推荐系统的瓶颈。推荐系统实现在时间和空间上的消耗往往需要研究人员投入大量的资源寻求解决方案[29]。Apache Mahout高效的性能设计与实现有助于解决许多研究者在算法的测试评估过程中所遇到的性能瓶颈问题,为在真实数据集上的算法评测提供支持。通常,大多数推荐算法研究都是在既有算法类型上的修正与突破。由于Apache Mahout的开源性,推荐算法研究者可以在既有的算法代码上进行新算法的实现,专注于算法突破点上的改进。

4.5支持推荐系统适应大数据生态

Apache Mahout提供了高效的推荐系统基础组件,支持了大数据生态下的推荐系统研究与部署。虽然图书馆推荐系统不一定具有大数据的大容量特征,但通常都会涉及数据的多样性、速度敏感性、价值丰富性3个特征,这已经揭示了推荐系统与大数据技术的密切关联。随着推荐系统应用到传统纸本图书外的电子资源推荐、纳入情景数据的推荐[30]、实时的检索推荐、结合分类、聚类技术进行推荐,图书馆推荐系统也会面临大数据容量的问题,推荐系统的大数据特征将更加明显。作为一种大数据工具,Apache Mahout有助于图书馆推荐系统应对大数据挑战,适应大数据生态。

5 结语

信息过载、提高对馆藏资源“长尾”的利用、图书外借量下降等因素,促使图书馆推荐系统研究与部署成为一项迫切的需求。作为一种数据敏感的应用,图书馆环境下的推荐系统研究与部署无论在功能上还是性能上都具有严苛的标准。随着推荐系统技术的发展,个性化实时推荐,如OPAC检索推荐,以及更大规模的电子资源推荐、基于情境的推荐、引入分类聚类等技术的推荐系统越来越显示出大数据的特征。对图书馆而言,要更加适应大数据,能充分运用大数据,把数字图书馆完全融入大数据之中,促进数字图书馆在人们的学习、生活、工作和研究中发挥更大作用[31]。Apache Mahout是一个世界级的、先进而成熟的开源机器学习工具库,与分布式计算框架Apache Hadoop无缝集成,并支持大规模数据处理引擎Apache Spark,是非常优秀的大数据工具。它的出现为图书馆迎接挑战,适应大数据生态,开展推荐系统研究与部署提供了强大的技术支持。

参考文献:

[1]Wikipedia.Information overload[OL].[2015-06-18].https:// en.wikipedia.org/wiki/Information_overload.

[2]Wikipedia.Long Tail[OL].[2015-06-18].https://en.wikipedia.org/wiki/Long_tail.

[3]项亮.推荐系统实践[M].北京:人民邮件出版社,2012.

[4]Wikipedia.Big data[OL].[2015-10-08].https://en.wikipedia.org/wiki/Big_data.

[5]樊伟红,等.图书馆需要怎样的“大数据”[J].图书馆杂志,2012(11):63-68,77.

[6]Wikipedia.RecommenderSystem[OL].[2015-06-19].https:// en.wikipedia.org/wiki/Recommender_system.

[7]黄晓斌,张海娟.国外数字图书馆推荐系统评述[J].情报理论与实践,2010(8):125-128.

[8]詹尼士等.推荐系统[M].蒋凡,译.北京:人民邮电出版社,2013.

[9]Goldberg D,Nichols D,Oki B M,et al.Using collaborative filtering to weave an information tapestry[J].Communications of the ACM,1992(12):61-70.

[10]高凤荣,马文峰,王珊.数字图书馆个性化信息推荐系统研究[J].情报理论与实践,2003(4):359-262.

[11]王晓耘,钱璐,黄时友.基于粗糙用户聚类的协同过滤推荐模型[J].现代图书情报技术,2015(1):45-51.

[12]董坤.基于协同过滤算法的高校图书馆图书推荐系统研究[J].现代图书情报技术,2011(11):44-47.

[13]刘飞飞.基于多目标优化双聚类的数字图书馆协同过滤推荐系统[J].图书情报工作,2011(7):111-113.

[14]汪英姿.基于本体的个性化图书推荐方法研究[J].现代图书情报技术,2012(12):72-78.

[15]王艳,等.基于分类方法的内容过滤推荐技术[J].情报杂志,2005(8):59-60,62.

[16]刘韵毅,梁樑.基于用户偏好的文献推荐系统[J].情报理论与实践,2007(1):61-63,25.

[17]张鼐,周年喜,张英.基于语义扩展的个性化知识推荐技术研究[J].情报理论与实践,2009(8):101-104.

[18]刘钟美.知识地图在图书馆个性化信息推荐服务中的应用研究[J].图书情报工作,2006(10):97-99,103.

[19]欧文等.Mahout实战[M].王斌等,译.北京:人民邮电出版社,2014.

[20]邱均平,张聪.高校图书馆馆藏资源协同推荐系统研究[J].图书情报工作,2013(22):132-137.

[21]景民昌,于迎辉.基于借阅时间评分的协同图书推荐模型与应用[J].图书情报工作,2012(3):117-120.

[22]欧阳剑,曹红兵.基于联机公共检索目录的读者隐性信息行为个性化书目推荐引[J].情报理论与实践,2012 (11):117-120.

[23]奉国和,黄家兴.基于Hadoop与Mahout的协同过滤图书推荐研究[J].图书情报工作,2013(18):116-121.

[24]杨京,等.大数据背景下数据科学分析工具现状及发展趋势[J].情报理论与实践,2015(3):134-137,144.

[25]王代琳,刘亚秋,王真谛.基于平均差异度的数字图书馆个性化推荐算法研究[J].图书情报工作,2009(11):119-122.

[26]安德智,刘光明,章恒.基于协同过滤的图书推荐模型[J].图书情报工作,2011(1):35-38.

[27]张闪闪,黄鹏.高校图书馆图书推荐系统中的稀疏性问题实证探析[J].大学图书馆学报,2014(6):47-53.

[28]胡昌平,孙高岭.个性化网络协同推荐服务的扩展及其实现[J].中国图书馆学报,2008(177):61-64,45.

[29]徐嘉莉,陈佳.一种快速的个性化书目推荐方法[J].现代图书情报技术,2010(2):79-84.

[30]田雪筠.基于情境感知的移动电子资源推荐技术研究[J].情报理论与实践,2015(5):86-89,104.

[31]苏新宁.大数据时代数字图书馆面临的机遇和挑战?[J/ OL].中国图书馆学报,2015(6).http://www.cnki.net/kcms/detail/11.2746.G2.20151020.1128.001.html.

樊姗女,1980年生。硕士,馆员。

刘丹男,1979年生。本科学历,馆员。

[分类号]G250.7

收稿日期:(2016-03-30;责编:姚雪梅。)

猜你喜欢
个性化协同图书
家校社协同育人 共赢美好未来
蜀道难:车与路的协同进化
图书推荐
坚持个性化的写作
欢迎来到图书借阅角
“四化”协同才有出路
班里有个图书角
上汽大通:C2B个性化定制未来
三医联动 协同创新
同桌宝贝