夏文忠 单长吉
(昭通学院物理与电子信息工程学院,云南 昭通 657000)
随着信息技术与计算机技术的发展,数据资源呈几何数量级增长,为解决用户复杂需求与庞大数据资源之间的矛盾,个性化的推荐系统随之出现。个性化推荐技术通过研究用户的喜好和兴趣,为用户推荐所需的各种资源,最初应用于电子商务个性化服务中[1]。
目前,高校图书馆的馆藏资源大幅增长。本次研究采用协同过滤的余弦相似度计算等方法[2]主动为用户推荐馆藏图书或其他信息资源,从而提升图书馆的服务水平与资源利用。
图书馆馆藏图书建设是高校办学的硬指标之一,每年学校都大量投入经费购置纸质图书资源与数字电子资源。随之而来的是,各种资源大幅增加与原有资源利用率低的矛盾也显现出来。在经过十多年的图书馆数字化建设后,已有多种提升资源利用率解决方案。本次研究思路首先是从读者流通借阅历史数据中分析总结相关专业领域知识,通过协同过滤算法查找读者兴趣相似度,然后根据读者兴趣相似度把相关知识推荐给相应的读者。
目前,昭通学院馆藏图书50多万册,自2003年数字化回溯建库实现馆藏资源数字管理至今,已拥有历史流通借阅数据131万多条。我们通过流通借阅数据的分析与挖掘,利用馆藏图书MARC记录的结构化特性,根据读者借阅频次和借阅种类分别分析统计,最后形成分析统计结果集。当新读者查询相应信息资源后,根据先前读者的借阅历史记录,分析当前读者和以前读者的历史借阅记录兴趣相似度。预先设定一个推荐阀值,如两者间相似度低于设置阀值,则做出个性化信息资源推荐,返回结果。返回结果的呈现可以采用电脑客户端、浏览器、手机WAP、手机短信[3]、邮件、微信[4]等形式。昭通学院图书馆当前馆藏数据如表1所示。
表1 昭通学院馆藏图书种类统计
协同过滤(collaborative filtering)概念由Goldberg等研究人员于1992年提出[5],是目前广泛应用的信息系统推荐技术。协同过滤的基本思想是,根据计算机用户间偏好的相似度,在用户群中寻找目标用户的相似用户,在相似用户的基础上自动地为目标用户进行信息资源的推荐和预测。在基于流通日志的协同过滤系统中,通过结构化的流通借阅数据聚类来形成结果集,再通过计算读者间的兴趣相似度来实现结果的个性化推荐。其基本流程如图1所示。
图1 信息协同过滤推荐算法流程
信息协同过滤推荐算法流程包含构建“用户-资源”评分矩阵、最近邻搜索和产生推荐列表这3个阶段。“用户-资源”评分矩阵主要收集到用户信息资源的评分、评价行为等,并进行数据清理和转换,最终给出用户Ui∈U对各种资源Ij(1≤j≤n)的评分Rij,形成用户对资源的评分矩阵。当用户输入对信息资源的评价并形成评分矩阵后,系统就需要利用推荐算法进行最近邻选择。最近邻数据可以来自当前目标用户,也可以来自当前目标资源。产生推荐列表的过程是协同过滤推荐算法的输出过程,系统通过推荐算法的选择,在最近邻推荐集的基础上产生推荐结果集。
推荐系统的效率来源于适合的算法及恰当的数据源。下面以一个效用矩阵来阐述余弦相似性算法在流通日志和协同过滤系统中的应用。将效用矩阵分1—5级,5级为最高级,矩阵中数字代表读者对图书的评级结果,无评级用0表示;空白表示读者目前没有对当前图书评分,图书用 S1,S2,S3,…,Sn,读者对每本书的评级分别用A,B,C,D,…,N表示。每本图书都可以用一个所谓的词频向量表示,词频向量通常很长,并且是稀疏的,即它们有许多0值,在这里需要忽略0匹配的数值数据。
图2 读者对图书评级效用矩阵图
根据图2所示的效用矩阵提供的数据,使用余弦相似性来验证读者间的相似性。余弦相似性通过测量两个向量内积空间的夹角的余弦值来度量它们之间的相似性。
两个向量a,b间的余弦值可以很容易地通过使用欧几里得点积和量级公式推导:
鉴于2个向量的属性,A和B的余弦相似性θ用一个点积形式来表示,Ai和Bi表示矩阵中读者评价结果,于是有下式:
‖A‖ 是向量 A=(A1,A2,A3,…,An)的欧几里得范数,定义为从概念上讲,它就是向量的氏度。类似地,‖B‖是向量B的欧几里得范数,该度量计算向量A和B之间夹角的余弦。余弦值0意味着2个向量90°夹角(正交),没有匹配。余弦值越接近于1,夹角越小,向量之间的匹配越大。
据图2所示数列,有:A×B=4×5+0×5+0×4+5×0+1×0+0×0=20,结合余弦相似性公式,A和B的夹角余弦为:
A和C的夹角余弦为:
在这种距离计算方式下,将会得到A和C,而不是和B更接近。可以通过对评分数据的舍入处理去掉高分和低分的图书之间表面上的相似度。如对评分进行归一化处理,即将每个评分减去某个用户的平均评分值,然后将低分值转换为负数而高评分值转换为正数。再采用余弦距离,将发现对所见同一图书评价相反的用户的向量方向几乎相反,即是说距离可以看成尽可能的远。但是,对所看同一图书评价类似的用户向量之间的夹角相对很小,结果符合推荐阀值。
本次实验数据来源于昭通学院图书馆2003—2014年流通借阅数据。该数据包括2 621位读者,流通借阅数据1 314 367条。实验以中图法分类基础结合我校现有专业,给出分专业和学校类别的推荐结果集。以当前数据借阅流通次数前20的图书为例进行分析。
如读者甲喜欢金庸的小说《鹿鼎记》和《神雕侠侣》,读者乙在借阅读者甲喜欢的这两本书的其中一本时,根据余弦相似定理,把另外一本图书也推荐给读者乙,从而达到个性化推荐的目的。再比如,读者甲是中文专业的同学,对昭通文学作品《好大一对羊》、《云兴街》等文学作品有深入独到的见解。又如,读者甲在昭通文学作品的时候,对这些文学作品写了相关的图书评论,其他读者通过图书业务系统浏览馆藏书目信息时,如恰好访问了与昭通文学作品相关的作品,系统就会根据余弦相似定理自动把与昭通文学作品相关的评论与图书信息推送到这些读者访问的页面,从而提高资源的利用率及好书的推荐率。
通过对流通日志数据的分析与挖掘,利用协同过滤算法,查找多个读者之间的兴趣相似度,从而实现图书馆资源的个性化推荐。通过使用现有历史流通日志数据,改善了协同过滤的冷启动问题,对拓展和改善图书馆的信息服务水平,提高馆藏纸质资源的利用具有重要意义。
[1]吴颜,沈洁,顾天竺,等.协同过滤推荐系统中数据稀疏问题的解决[J].计算机应用研究,2007,24(6):94-97.
[2]陈华,李仁发,刘钰峰,等.个性化搜索引擎推荐算法研究[J].计算机应用研究,2010,27(1):48-50.
[3]夏文忠,杨智明.一种基于MVC模式的图书短信管理系统设计[J].电脑知识与技术,2011,7(20):4790-4793.
[4]黄浩波,何卫华,叶青,等.微信及其在图书馆信息服务中的应用[J].图书馆学刊,2013(1):62-64.
[5]Goldberg D,Nichols D,Brian M O,et al.Using Collaborative Filtering to Weave an Information Tapestry[J].Communications of the ACM,1992,35(12):61-70.