田越 章昊
(南京理工大学紫金学院,江苏南京 210000)
随着时代的发展与科技的进步,图书馆也正朝着智能化的方向发展,图书推荐系统成为了其中不可或缺的一环,民众自觉地或不自觉地接触使用推荐系统,例如京东、天猫、唯品会等大型电商平台,它们首页显示的商品或多或少都是通过自己研发的推荐系统,来实现商品以及内容的推送,为迎合不同用户的喜好与口味实现推送不同的商品和内容。但推荐热销内容给这些“少数群体”是没有任何益处的。目前的图书推荐系统多是基于内容的推荐(Content-based Recommendation)或者是基于协同过滤的推荐(Collaborative-based recommendation)。本文叙述的项目结合基于内容的推荐(Content-based Recommendation)和基于协同过滤的推荐(Collaborativebased recommendation),最终构建了一个基于混合推荐(Hybrid-based recommendation)的图书推荐系统。
该混合推荐系统结合了基于内容的推荐和基于协同过滤的推荐,协同过滤利用用户模型和群体数据的评分与特征生成推荐列表,而基于内容的推荐使用产品的描述信息和分类标签所反映的产品特征来生成推荐列表,通过构建一个混合系统,结合两种推荐算法和模型的优点,有效提高推荐结果。
该系统采用加权式混合策略,通过计算多个(该系统是两个)推荐系统的结果分数的加权和,并将它们组合在一起。这是N元线性回归问题,因此有会n个不同的推荐函数reck,其返回值是一个列向量,并对应相应的回归系数βk,作为每个列向量的权重,可以根据N元线性回归的公式得到如下的混合推荐算法的公式,如公式1所示:
该加权方法按照不同推荐技术的预测能力为权重组合在一起,将基于内容和基于协同过滤的推荐的输出结果结合在一起,并可结合概率统计学实现动态加权方案,动态改变权重以减少模型的预测错误,适应推荐算法的需要。但这种线性回归模型能够有效运作的前提是存在包含大量数据的数据集,即集合R所包含的元素应该是极大的,而且理论上越多越好。接下来写基于协同过滤推荐和基于内容推荐的细节实现。
基于用户的最邻近推荐(user-based nearest neighbor recommendation)的主要思想是通过“键-值”对关系,找出与当前用户有着相似偏好的其他用户,这些与推荐对象有着相似偏好的用户被称为“对等用户(active peer)”或者是“最近邻(nearest neighbor)”。具体算法思想如下所示:(1)找到前K个最近邻,其中K值一般在20到30间[1]。(2)将当前用户(或者说是“推荐对象”)没有见过的每个商品的每个产品组成的集合记为p,利用近邻对p进行评分预测,计算出推荐对象对p中商品的可能评分值。(3)根据计算出的图书评分的预测值,给推荐对象推荐相应的图书。
这个算法的成功实现基于以下两个前提:(1)用户过去的偏好和用户现在的偏好是一致的,且以前图书间具有的相似性和用户间兴趣的相似性与现在图书间具有的相似性和用户间兴趣的相似性也是一致的。(2)用户偏好不随时间而改变。
该算法过于理想化。认为图书间具有的相似性是不会变的,因为图书内容是不变的;而用户间兴趣(对图书的兴趣)的相似性也是基于图书间的相似性的,因此可以近似认为图书间的相似性是不变的[2]。但是“人的兴趣不会随时间发生改变”的前提就显得令人难以信服[3],前提2只能是一个“理想化”的前提条件。且评判用户间兴趣的相似度也是一个重要问题,该项目使用Pearson相关系数来衡量两个用户兴趣的相似度。实验分析显示,Pearson相关系数法比其他对比用户的方法更胜一筹[4]。
图1 图书管理系统的系统结流程图Fig.1 The flow chart of the system structure of the library management system
Pearson相关系数取值从-1(强负相关)到+1(强正相关),Pearson方法考虑到了用户评分标准并不相同的事实,有些用户倾向于只给满分得高分,而有些用户从来不给满分。Pearson相关系数在计算中不考虑平均值的差异而规避了这个问题,使得用户间更加具有可比性。例如,用户A(喜欢给满分)与用户B(很少给满分)对同一本图书评分值虽然不同,但他们对其他书的多次评分的结果必然是呈一定的线性关系的,因此可以通过线性关系来确定用户A和用户B兴趣相似的结论。
该项目也含有基于内容的推荐(Content-based recommendation),解决了上述及协同过滤的推荐无法通过用户的需求和偏好以及物品的特征和属性来直观地给用户推荐商品的缺陷。基于内容的推荐假设物品的特征可以从文档或者是相关的流式文件中提取,并通过比较候选商品(这里是书籍)来和用户过去高度评分的商品(书籍)中出现的关键字来推荐新的图书商品。基于内容推荐系统工作的一般原理是,先评估用户尚未浏览过的书籍,并与用户过去喜爱的书籍进行比较,具体实现就是计算相似度。该项目中是使用评分来实现的,最差是0分,最好是5分。这样就需要通过计算重叠度(相似度),使用的是适合多特征值的Dice系数[5]。如果每本图书Bi由一组关键词keywords(Bi)描述,则Dice系数计算公式如公式(2)所示:
该图书管理系统的系统结流程图如图1所示:
可以看到,该项目主要有两部分组成:供用户使用的图书归推荐系统和供管理员使用的图书管理系统。用户可以在首页通过检索书名和作者名找到相应的图书。用户登陆以后“精彩推荐”和“极力推荐”才会显示相应推荐的图书。
团队通过努力实现图书推荐功能和人脸识别登陆后台管理系统的模块都花了不少的气力,该图书管理系统可以有效满足高校图书馆的需求,且具有一定的图书推荐功能。后台和用户界面都力求实现人机友好,弥补了当下高校图书馆图书管理系统的各种不足,例如缺乏用户推荐、界面老式且不友好的情况。