图书借阅排行算法研究*

时间:2022-06-18 08:25:44

图书借阅排行算法研究*

摘 要 目前图书借阅排行的传统算法是仅按借阅次数排序,该算法存在某些热门图书可能会长期占据排行榜前列之不足。论文提出了新的图书借阅排行算法,该算法综合考虑了借阅次数、复本数、入藏日期和最近外借日期等影响因素,在保证了较好推荐效果的情况下,实现了自动淘汰的机制,解决了传统算法的不足。

关键词 推荐书目 导读 借阅排行 算法

分类号 G252

Study on the Book-loaning Ranking Algorithm

Wang Zexian

Abstract The current traditional algorithm of book-lending ranking is only ranked by the frequency of lending, which results in the problem that some pop books may continue to rank top. This paper puts forward a new book-lending ranking algorithm, which comprehensively considered the influencing factors of the lending-frequency, duplicate-mode, collection date and the recent lending date. This new algorithm can ensure the better recommendatory effect, realize the automatically selective system and solve the deficiencies of the traditional algorithm.

Keywords Recommended bibliography. Reading guidance. Book-lending ranking. Algorithm.

0 引言

图书馆藏书数量巨大,少则几十万,多则几百万,且呈不断增长之势,在海量文献中快速、有效地查获所需图书,对多数读者而言绝非易事。开展阅读引导,向读者推荐好书新书,是图书馆做好读者服务、提高馆藏利用率的有效手段。《普通高等学校图书馆规程(修订)》第17条中规定:高等学校图书馆应“通过编制推荐书目、导读书目,举办书刊展评等多种方式进行阅读辅导”[1]。图书馆开展导读的方式和方法有很多种,其中书目推荐就是一种重要的导读手段。书目推荐的途径包括:编制专题目录、馆藏新书通报、馆藏借阅排行等[2]。专家推荐书目向来被公认为引导阅读的最佳方式,但其往往是权威性有余而实效性、灵活性不足。图书馆的图书借阅排行榜能够较为真实地反映该馆读者的阅读取向和偏好[3]。借阅量大的图书,一般是比较受读者欢迎的书,将这些书按月度、半年度、年度等方式进行排行并公之于众,对揭示馆藏利用情况、帮助读者进行阅读选择,具有相当重要的意义。

目前各馆的图书借阅排行只是简单地按借阅次数进行。该方法实现简单,但因其未充分考虑入藏时间、最近外借时间和复本数等相关因素,故该评价方法的可信度不高,未能真实反映图书的价值。本文设计了一个综合考虑各种影响因素的图书借阅排行算法,使图书借阅排行更加科学、合理。

1 图书借阅排行算法

图书借阅排行最直觉、最简单的算法,就是依据指定时间内借阅次数的多少进行排名,借阅次数最多的图书自然就排在第一位。这就是传统的图书借阅排行算法,该算法的优点是简单、容易实现、排序算法计算速度快。但由于这种算法仅考虑了借阅次数,所以存在一个很大的缺点:缺乏自动淘汰的机制,某些热门的图书可能会长期占据排行榜前列,从而失去推荐意义。所以,需要综合考虑影响图书借阅排行的各种因素,设计一种新的借阅排行。

1.1 影响因素

(1)借阅次数Counto:一种图书被借阅(包括借出和续借)的总次数,借阅次数较高的图书,表示拥有效高的借阅频率,较受读者欢迎,应该排列在前。

(2)复本数Countb:同等条件下,复本数多的图书被借阅的机率也可能会相应较多,其被借阅的总次数相应地也会较大;反之,复本数较少的图书被借阅的总次数自然会较少。例如,图书A复本数是20,其借阅次数是50次;而图书B复本数是3,其借阅次数是20次,如果只是按借阅次数排列,A排在B前,显然是不合理的。因此,基于公平性,图书借阅排行计算过程中要排除复本数的影响。

(3)入藏日期Datei:图书到馆加工完成后,上架可以外借的日期。同等条件下,入藏日期较早的图书相应被借阅的可能性也较高,总借阅次数相应较多;入藏日期较后的图书,被借阅的次数自然会较少,但这并不代表这本书的表现就比较差。例如,图书A已入藏300天,其借阅次数是10次;而另图书B才入藏50天,其借阅次数是5次,如果只是按借阅次排数列,A排在B前,明显是不合理的。因此,基于公平性,图书借阅排行计算过程中要考虑入藏日期的影响。

(4)外借日期Datel:图书受到欢迎有一定的周期性,图书的最后外借日期越接近当前日期,表示该书最近才被借出,也体现该书最有可能再度被借阅[4]。就算某图书的借阅总次数较高,但其最后外借日期距当前日期较远,该书很久没有被借阅,表示该书以前受读者欢迎,但近期已经不再受读者欢迎了。

1.2 排行算法

综合考虑以上因素,本文设计了一种新的图书借阅排行算法:在指定的时间范围内(开始日期Dateb、结束日期Datee),图书i的借阅排行得分Score(i)可由公式1得出,然后按借阅排行得分由大到小排序,即可得到图书i在借阅排行榜的位置。

Score(i)=■(公式1)

公式1中:

(1)图书i的平均借阅次数指标C(i)=■。C(i)随着借阅次数CountO(i)的增大而增大,但随着复本数Countb(i)的增大而减少。在其他条件不变的情况下,借阅次数CountO越多,复本数Countb越少,借阅排行得分越大,借阅排名越高。例如:如图1所示,平均借阅次数分别为6、5和4的图书的借阅排行得分曲线,在任一个时间点上,都是C=6曲线在最上方,C=4曲线在最下方。

(2)图书i的入藏及最近外借日期指标D(i)=log10Dayei(i)+log10Dayel(i)。入藏天数Dayei=Datee-Datei,表示结束日期Datee与图书入藏日期Datei间的天数,即图书可被借阅使用时间。最近外借天数Dayel=Datee-Datel,表示结束日期Datee与在统计时段内图书最后被外借日期Datel间的天数。在上面的公式中,两日期相减表示两日期间的天数,不足一天当一天计算。越新的图书或越是最近被借阅的图书,其入藏及最后外借日期因数越少,在其他条件不变的情况下,借阅排行得分越大,借阅排名越高。这意味着随着时间的推移,及无人借阅的时间越长,其借阅排行得分越小,借阅排名越低,随着时间增长会逐渐跌到排行榜的末尾,保证了排名前列的都将是较新的和最近受欢迎的图书。公式1的分母加1是为了防止D(i)=0时分母为0。

图1 借阅排行得分比较图

(3)α是重力因子。表示将图书排名往下拉的力量,也即图书排名随时间增长而下降的速度,根据实际需要调整。如图2所示,三根曲线的其他参数都一样,α的值分别为1.5、1和0.5。值越大,曲线越陡峭,随着入藏及最后外借日期指标D(i)的增大,排名下降得越快。

图2 重力因子作用比较图

2 算法实现

2.1 算法实现流程

按照公式1计算图书借阅排行得分,需要综合图书的入藏日期、复本数,及在指定日期范围的借阅次数、最后外借日期等参数计算得出,而这些参数都需从馆藏表及操作日志表中获取,涉及的数据量比较庞大,难以在需要时即时完成计算并返回结果。例如,广州大学图书馆(以下简称“我馆”)的馆藏记录就有270多万条,2005至2013年的借阅日志记录就有454多万条。所以一般在空闲时段,预先对图书借阅排行计算,需要时直接调用排行榜结果。图书借阅排行计算流程如下:

(1)从日志表中取得在指定日期范围被借阅图书的书目记录号。

(2)根据书目记录号从馆藏表中获取入藏日期、复本数,并从操作日志表中取得在指定日期范围的借阅次数、最后外借日期。然后将这些参数代入公式1计算,得到图书借阅排行得分。

(3)计算出所有被借阅图书的借阅排行得分后,按借阅排行由高到低排序,得到图书借阅排行榜,并将排行结果保存,供需要时使用。

2.2 性能优化

在算法具体实现时,还要注意性能的优化,将计算时间控制在可接受的时间范围内。本文在最初实现算法时,入藏日期、复本数、借阅次数和最后外借日期等参数,都是分开单个从数据库获取。我馆在2011年上半年度,中文图书借阅日志记录总数为285 692条,完成图书借阅排行计算超过16小时,这明显是不能接受的,必须进行优化。经分析,由于馆藏表和日志表数据量庞大,分别单个从数据库获取入藏日期、复本数、借阅次数和最后外借日期等参数耗费了大量时间。后经改进,使用单一SQL查询语句,实现一次从数据库获取所有计算所需的参数,从而大大减少了所需时间,上面需16小时以上才能完成的计算任务,现只需15分钟就能完成。改进后的SQL查询语句如下所示:

select l.logh,count(*)as countO,

(select count(*)from holding where hldb=l.logh) as countB,

(select min(hldc)from holding where hldb=l.logh) as dateI,

max(loga1)as dateL

from ilog l

where loga1>=${begin}and loga1

group by logh

3 验证分析

本文使用了我馆的中文图书馆藏及其借阅日志数据,对借阅排行算法进行了验证分析,公式1中的重力因子取值1.5。参与实验的借阅日志数据记录时间自2011年1月1日至2013年6月30日,共两年半时间,借阅日志记录总数为1281 301条。在本文中,将实验数据每半年一段:2011年1月1日至2011年6月30日为时段1,2011年7月1日至2011年12月31日为时段2,依此类推,共分成了5个时间段。

3.1 排序效果

根据各时段的借阅日志数据,分别进行借阅排行计算。表1是按本文算法计算得出,在时段5的图书借阅排行榜前10名的相关参数及排行情况:借阅排行得分按公式1计算得出,排名按借阅排行得分由高到低排行得到,按借阅排名是仅按借阅次数由高到低的排名。

由该表可以看出,排名受图书的复本数、借阅次数、入藏天数和最后外借日期影响,在其他条件相同的情况下,复本数越少,排名越前,借阅次数越多,排名越前,入藏天数或最后外借天数越少,排名越前。排名虽然受借阅次数影响,但与仅按借阅次数排名关系不大,并且按两种算法得出的借阅排名相差较大。

表1 时段5图书借阅排行榜的前10名

3.2 推荐效果

本阶段实验中,分别将参与实验的两个相邻时段组成一组:第1组时段1作训练期,时段2作验证期;第2组时段2作训练期,时段3作验证期;以此类推,5个时段共组成4组。将训练期的数据分别进行借阅排行计算,然后检测其在验证期是否有借阅,从而验证该图书的推荐成功性。在验证期有借阅,表示推荐成功;在验证期没有借阅,则表示推荐失败。

据调查显示,用户每次检索后,只浏览少数结果页面的比例在逐步提高,而用户实际所访问的结果范围非常小。例如,从1997―2001年,用户每次检索后只浏览一个页面的比例,从28.6%提高到50.5%,而2001年之后更是提高到70%,这意味着检索结果空间都集中到了结果页面的第一页和第二页,有时包括第三页[5]。同样,读者也只会对图书借阅排行的前几十名最感兴趣,只有排名前列的图书才能够吸引读者的注意,起到引导、推荐的作用。所以,本实验中,只取验证期的图书借阅排行榜前100名的图书来进行推荐效果验证,统计结果如表2所示。从该表可以看出按借阅次数和按本文算法得出的图书借阅排行榜都有较高的推荐成功率,排行榜前100名的图书,在验证期起码有96种以上会被借阅,并且两种排行算法的推荐成功率相差不大,相比较按本文算法稍微占优,推荐成功率几乎100%。

表2 推荐成功统计

3.3 自动淘汰效果

首先,分别将5个时段的数据进行借阅排行计算,然后统计时段1的图书借阅排行榜前100名的图书在后面4个时段的图书借阅排行榜前100名中重复出现的次数。表3是统计结果,从表3可以看出:仅按借阅次数排行的图书借阅排行榜,最少的时候也有40种图书重复占据前100名,即存在着某些热门图书长期占据排行榜前列的情况,并且该情况不会随时间的增长而减少;而按本文算法的图书借阅排行榜中,时段1的前100名的图书在后面时段里重复出现在排行榜前列的情况校相对少,最多的时候也仅有16种,并且重复情况会随着时间的增长而减少。也就是说,按本文的图书借阅排行算法有自动淘汰的功能,避免了某些热门图书长期占据排行榜前列的情况。增大重力因子的值可以增快自动淘汰的速度。

表3 重复出现统计

4 结语

本文提供的图书借阅排行算法综合考虑了借阅次数、复本数、入藏日期和最近外借日期等影响因数,在保证了较好推荐效果的情况下,实现了自动淘汰机制,纠正了传统图书借阅排行算法存在的某些热门图书长期占据排行榜前列之不足。借助该算法,生成图书借阅排行榜,可以为读者提供较好的图书推荐、导读服务,帮助读者快捷地筛选图书,提升服务质量、提高馆藏利用率。本文研究的图书排行算法只能针对被借阅过的图书,对于未被借阅过的新书该如何排行、推荐,则是下一步的研究方向。

参考文献:

[ 1 ] 教育部关于印发《普通高等学校图书馆规程(修订)》的通知[EB/OL].[2013-11-05].http:///2002

0610/3058180.shtml.

[ 2 ] 李正祥,陆书红.书目推荐:公共图书馆参与社会阅读的重要途径[J].高校图书馆工作,2012(6):84-87.

[ 3 ] 王喜明,祁莉.打造“推荐图书排行榜”:高校图书馆导读的新思路[J].图书馆建设,2010(7):78-81.

[ 4 ] 张海营.基于RFM模型的图书馆图书评价系统研究[J].图书馆,2012(3):60-61.

[ 5 ] Spink A,Jansen B J,Wolfram D,et al. From e-sex to e-commerce:Web search changes[J]. IEEE Computer,2002,35(3):107-109.

王泽贤 广州大学图书馆副研究馆员。广东广州,510006。

(收稿日期:2014-01-10 编校:邹婉芬)

上一篇:论图书馆学期刊编辑对内对外的有效沟通 下一篇:非物质文化遗产资料管理研究