首页 理论教育高校图书馆大数据应用实证研究

高校图书馆大数据应用实证研究

【摘要】:本方案是基于内容的文献推荐方法,当用户浏览图书馆信息系统,点击感兴趣的文献链接时,系统查找与用户当前所点击的文献特征高相似度的文献,经过排名后实施推荐。本方案中用户兴趣建模和文献数据建模均采用“混合关联”方案,如图10.13所示。抽取图书数据库中的“书名”和“内容简介”,与论文数据库中的“篇名”和“中文摘要”等元数据实现关联。Spark库中有专用函数支持“相似性度量”关联的实现。

本方案是基于内容的文献推荐方法,当用户浏览图书馆信息系统,点击感兴趣的文献链接时,系统查找与用户当前所点击的文献特征高相似度的文献,经过排名后实施推荐。

基于内容的文献推荐方法一般包括以下三个步骤[27][28]

(1)用户兴趣建模,抽取用户感兴趣的文献特征构建用户偏好模型。

(2)文献数据建模,抽取数据库中备选的海量文献的特征建立模型以匹配用户偏好。

(3)产生推荐列表:结合用户偏好从数据库中检索出高相似度的数据,经过排序后推荐。

本方案中用户兴趣建模和文献数据建模均采用“混合关联”方案,如图10.13所示。

图10.13 基于Spark的图书馆文献“混合关联”推荐方案

图中(1)到(4)标识了混合关联流程的次序,Spark RDD和Spark MLLib分别是支撑“字符串匹配”和“相似性度量”的关键技术。

1.“混合关联”含义

图10.13方案的推荐对象为图书和论文,推荐的方式有两种:①同类文献推荐,包括“图书到图书”和“论文到论文”的推荐;②非同类文献推荐,包括“图书到论文”和“论文到图书”的交叉推荐。

优化推荐性能,设计了包括“字符串匹配”和“相似性度量”两种关联方法。“字符串匹配”应用于文献数据库中的简短且规范化的元数据,如“作者”“关键词”等,比较它们在不同的文献中是否相同,从而确定是否关联;“相似性度量”应用于内容较长且表述方式灵活的文档类型的元数据,如“篇名”“中文摘要”等,采用相应算法计算文档相似度,最后整合成混合权重并排名。

2.“混合关联”及推荐排名算法流程

“混合关联”及推荐列表排名的算法流程如图10.14所示,主要包含4个步骤。

图10.14 “混合关联”及推荐排名实现流程

(1)“字符串匹配”关联。抽取图书数据库中的“作者”和“中图法分类名”,与论文数据库中的“作者”和“关键词”等元数据实现关联。例如,如果某图书和论文的元数据“作者”的值相同(作者的名字相同),就将这两个文献关联成Spark RDD三元组(id1,id2,Wchar),其中id1和id2是文献的id号,Wchar是“字符串匹配”关联的权重,由系统指定,反映该种关联的重要程度。

(2)“相似性度量”关联。抽取图书数据库中的“书名”和“内容简介”,与论文数据库中的“篇名”和“中文摘要”等元数据实现关联。因为相关文档内容较长,所以采用文档相似性度量方法实现关联。主要包含以下步骤:

①文档分词。首先应用分词软件(NLPIR汉语分词系统[29])对元数据文本预处理,将其拆成分词并去掉停用词。

②依据TF-IDF算法[30]分别计算分词的TF和IDF值,相乘得到该分词的TF-IDF值,作为该分词在文档中的权重并归一化。这里TF-IDF是信息检索理论中用于提取文档分词的重要方法。其中词频(TF)是某分词在文档中出现频数,计算方法如公式(1)所示;反文档频率(IDF)用于鉴别某分词是否有良好的区分文档能力,计算方法如公式(2)所示,Dw越小,IDF越大,意味着该分词越重要。

③生成TF-IDF文档向量。将文档内容转换成由分词构成的向量空间模型,{<l1,w1>,<l2,w2>,···<li,wi>,···},式中li为第i个分词,wi=TF×IDF为该分词权重。

④确定文档关联权重。应用公式(3)计算文档D1和D2的余弦相似度Sim(D1,D2),归一化后,作为“相似性度量”阶段的权重WSim,组建RDD三元组,格式为:(id1,id2,WSim)。公式(3)中s为向量空间模型中分词列表长度,wi1、wi2分别为文档D1、D2中对应分词的权重。

Spark库中有专用函数支持“相似性度量”关联的实现。在推荐系统的算法代码中,引入Spark机器学习库MLLib中的函数包TF-IDF,即“import org.apache.spark.mllib.feature.{HashingTF,IDF}”,以支持TF-IDF的计算;引入Spark中的稀疏向量函数包SparseVector,即“import org.apache.spark.mllib.linalg.{Sparse-Vector=>SV}”,实现文档向量的构建和余弦相似度的运算。

(3)计算“混合关联”权重。将文献id1和id2的“字符串匹配”权重和“相似性度量”权重按照公式(4)混合,其计算结果作为两个文献的最终关联权重Whybrid,组建RDD三元组,格式为(id1,id2,Whybrid)。公式(4)中的α是调和参数,取值范围为0≤α≤1,以调节两类关联分别所占的比重;m、n分别为两类关联内部的各自关联次数,例如,如果m、n的取值均为2,表示“字符串匹配”和“相似性度量”各对应两种关联;k是描述关联种类的求和变量

(4)推荐列表排名。依照Whybrid值从大到小排名,组成TOP N推荐列表。一般引入Spark中的RDD排序函数包,即“import org.apache.spark.rdd.OrderedRDD-Functions”,应用rdd.sortBy()函数排名,将与用户当前访问的文献具有高相关度的文献排在前面。