基于用户兴趣序列相似性度量的图书协同过滤推荐方法研究

2019-12-16 08:17王刚郭雪梅
新世纪图书馆 2019年11期

王刚 郭雪梅

摘 要 论文通过用户在一系列时间节点对所借阅图书的评分形成用户兴趣序列,并提取用户之间的最长公共兴趣子序列(LCSIS)和所有公共兴趣子序列(ACSIS),以此为基础计算用户之间的相似性并与传统的协同过滤推荐方法相结合,提出了基于用户兴趣序列的改进协同过滤图书推荐方法。將本文提出的方法和传统的基于用户的协同过滤推荐方法在天津医科大学图书馆图书借阅数据集进行实验验证,结果发现该方法在推荐效果上优于传统方法。

关键词 用户兴趣序列 相似性度量 协同过滤推荐 智能荐书

分类号 G250.7

DOI 10.16810/j.cnki.1672-514X.2019.11.008

Research on Book Collaborative Filtering Recommendation Based on Similarity Measurement of Users Interest Sequences

Wang Gang, Guo Xuemei

Abstract This paper forms user interest sequence through the user rating of the borrowed books in a series of time nodes, and exacts the Longest Common Sub-IS (LCSIS) and All Common Sub-IS (ACSIS) between users interest sequences. Based on this, the similarity between users is measured and combined with the traditional collaborative filtering book recommendation method, and an improved collaborative filtering book recommendation method based on user interest sequence is proposed. The proposed method is compared with the traditional user based collaborative filtering recommendation method by experiment on our library database. The experimental results show that the proposed method is superior to the traditional method in book recommendation effect.

Keywords Users interest sequence. Similarity measurement. Collaborative filtering recommendation. Intelligent book recommendation.

0 引 言

随着互联网技术的迅速发展,数字图书馆的信息量日益增多,浏览大量无关的图书信息会使读者浪费大量的时间,并导致信息过载现象 [1]。为了适应图书馆馆藏数量快速增长的实际情况,便于用户快速准确获取所需馆藏资源,个性化推荐服务应运而生。在图书馆个性化推荐服务所使用的技术中,协同过滤推荐方法应用最为广泛,它通过收集众多类似用户的兴趣来预测用户的评分,该方法基于的假设是过去有类似兴趣的用户在未来可能有共同的兴趣[2-3]。协同过滤最广泛的处理方式是基于目标用户最近邻方法进行实现,它依赖于用户之间的相似性,选择最相似的用户作为目标用户的最近邻,然后使用最近邻的项目评分来预测目标用户的项目评分[4],而对于用户随着时间变化对于项目评分的序列很少被研究,因此本文将评分序列作为研究重点。

1 相关研究

协同信息推荐系统逐渐被应用到数字图书馆中,并成为该领域的主要研究主题之一[3]。董坤提出构建基于协同过滤算法的个性化图书推荐系统,该方法通过引入读者专业、角色、学历、借阅记录等影响和反映读者信息需求的因素构建读者特征模型,基于该模型采用优化的协同过滤算法挖掘读者信息需求,并产生个性化图书推荐信息[5]。林晓霞等在研究传统协同过滤算法的基础上,首先利用借阅记录中的数据构建评分矩阵,然后融合信任相似度对用户相似度进行改进,同时引入对新生、新书推荐的解决方法,并对图书馆借阅数据集进行对比实验[6]。宋楚平提出一种协同过滤改进方法,以图书分类为图书生成用户评价矩阵,并考虑借阅方式、借阅时间和图书相似度对用户兴趣度的影响,优化矩阵中的样本数据;同时,在计算读者相似度时融入读者特征和图书特征[7]。

对相关研究的分析中可以发现,实现图书推荐服务相似性度量是首要工作,最常用的相似性度量方法包括皮尔逊相关系数、余弦相似性和改进余弦相似性等[8]。但是,现有的基于协同过滤的图书推荐方法忽略了用户对于所评分图书的顺序,而用户所借阅图书的评分序列对于提高推荐准确度至关重要,这是由于用户各自的特征会导致每个用户产生独特的项目评分序列,此外评分序列可以反映用户兴趣和偏好的变化,这在一定程度上可以揭示用户兴趣偏好的潜在信息。因此,基于协同过滤的图书推荐中,用户对于所借阅图书的兴趣序列比单个项目评分包含更多的语义,这些语义可以用来分析用户真实的动态兴趣演化模式。这些动态兴趣过程可以通过用户行为序列来表示。以此为基础本文设计了基于用户兴趣序列的用户相似性度量方法以及目标用户所感兴趣图书的评分预测方法。

2 基于兴趣序列相似性度量的协同过滤推荐

2.1 相关定义

时间序列数据大量存在于现实世界中,主要应用于生物信息学、Web挖掘和文本挖掘等[9]。由于连续的时间序列数据的特点和时间,最长公共子序列的长度(LCS)是最常用的测量两时间序列之间距离的指标[10]。协同过滤方法可以使用最长公共子序列为序列之间相似性的度量指标[11],但該方法忽略了其他较短公共子序列中所共有的信息,因此需要引入全部公共子序列的数量来提高序列之间相似性度量的效果。

本文提出的推荐方法是基于用户借阅图书的兴趣序列,根据用户借阅图书的时间顺序考虑用户的图书借阅行为序列。首先对所提出的推荐方法涉及的相关概念进行详细说明。对用户的图书借阅行为可以通过函数形式表示,表明用户对于图书的兴趣。令U={u1,u2,……,un}表示用户集合,I={it1, it2,……,itn}表示图书集合,Ts={ts1, ts2,……, tsn}表示用户借阅图书的时间节点。为了便于描述基于兴趣序列的推荐方法,进行如下相关概念的定义。

定义1:兴趣点(Interest Point,记为IP) 代表用户某一时间节点上对某本图书的借阅行为,它由用户、图书、评分和时间节点组成,记为:

其中,用户u在时间节点tsi借阅图书iti后归还,产生对该图书的评分值,记为。

定义2:兴趣序列(Interest Sequence,记为IS)是根据用户的借阅图书时间序列来表示该用户一系列兴趣点序列,记为:

其中,ts1

基于上述定义,我们可以将所有用户对所借阅图书的评分数据转化为兴趣序列。与现有推荐方法不同,本文利用用户行为分析的方法,分析用户的独特偏好,因为它具有比单独用户的项目评分更深的语义,不仅能揭示用户的动态兴趣,而且能显示其演化模式。为了计算用户之间的相似性,使用最长公共子序列的长度和全部公共子序列的数量,为此进行如下定义。

定义3:兴趣序列匹配(Interest Sequence Match,记为ISM)给定一个用户评分偏差约束阈值θ,以及两个不同用户的兴趣序列中isu、isv的子序列:

当且仅当(1);(2)时,两个子序列形成长度为j的兴趣序列匹配。

在上述定义中,函数用来计算用户u和用户v借阅同一本图书i产生的评分时,评分之间的偏差,记为:

鉴于不同用户对于所借阅图书评分尺度的多样性,即不同用户对于所借阅的相同图书因满足其个人需要的程度不同,导致借阅时长的差距明显,进而导致评分存在明显差异。因此,所有用户对于所借阅图书的评分值应规范为相同取值区间,即[0,1]。如果他们的评分偏差小于偏差约束阈值θ,两用户评分可以考虑相同。阈值θ取值设定越小意味着相似性约束越严格,但过于严格的相似性约束将限制推荐的效果。因此,应该根据具体的应用环境确定合理的阈值。

定义4:最长公共兴趣子序列(Longest Common Sub-IS,记为LCSIS)。两个兴趣序列之间的兴趣序列匹配形成的公共兴趣子序列,当且仅当两个兴趣序列之间没有其他更长的兴趣序列匹配时,才是最长的公共兴趣子序列。

定义5:全部公共兴趣子序列(All Common Sub-IS,记为ACSIS)。计算两个兴趣序列的所有兴趣序列匹配的数量,其中包括空兴趣序列匹配。

通过定义4和定义5可知,当两用户的兴趣序列之间具有更长的LCSIS和更多的ACSIS数量时,表明这两个用户的相似程度较高。

2.2 基于LCSIS和ACSIS的用户相似性度量

本文从用户兴趣序列的角度出发计算用户之间的相似度。正如上节的相关定义,用户兴趣序列使用所借阅的图书及其评分组成的时间序列数据,按照时间顺序排序,并以索引指示各个兴趣点在序列中的位置。最长兴趣子序列是度量时间序列数据之间相似性的重要指标。此外,当两个用户兴趣序列之间存在较长的最长公共子序列和较多的全部公共兴趣子序列数量时,用户之间兴趣偏好的相似程度较高。

分别从用户u和v的历史评分记录中获取两个用户的兴趣序列,分别记为:isu和isv,isu长度为m,isv长度为n,令ω为(m+1)×(n+1)阶矩阵。用户u和v兴趣序列之间的最长公共兴趣子序列记为:lcsis(u,v),其长度计算方法如下:

当0≤i≤m且0≤i≤n时,则|lcsis(u,v)|=ω[m,n]

示例1:如表1所示,给定用户u和v对于所借阅图书集合Item={图书1,图书2,图书3,图书4}的评分形成的兴趣序列isu和isv,令max(ruit)=max(rυit)=5.0且min(ruit)=min(rυit)=0,此外设定阈值θ=0.2,则兴趣序列isu和isv间的最长公共兴趣子序列为{图书1→图书4,图书3→图书4},且|lcsis|=2。

表1 用户u和v借阅图书评分序列

t1 t2 t3 t4

isu (图书1,2.5) (图书3,3.0) (图书2,4.5) (图书4,0.5)

isv (图书3,4.0) (图书2,2.5) (图书1,3.5) (图书4,1.5)

|lcsis|的计算过程如下所示:

兴趣序列isu和isv间的全部公共兴趣子序列的数量记为|acsis(u,v)|,其计算公式如下所示:

当0≤i≤m且0≤i≤n时,则|acsis(u, v)|=ω[m,n]

在最长公共兴趣子序列和全部公共兴趣子序列长度的计算方法中均考虑两个用户评分匹配项的偏差。函数用于获取当且时,用户v的兴趣序列isv中的兴趣点所在的位置x,该函数如下所示:

示例2:考虑示例1中用户u和v的兴趣序列isu和isv,这两个序列间全部公共子序列集合为{ 图书1, 图书3, 图书1→图书4,图书3→图书4},则两个兴趣序列间全部公共子序列数量即|acsis(u,v)|=6,计算过程如下所示:

|acsis(u,v)| =ω[4,4]

=ω[3,4]+ω[3,4-1]

=ω[2,4]+ω[3,3]

=ω[1,4]+ω[1,1-1]+ω[3,3]

=ω[0,4]+ω[0,3-1]+1+ω[3,3]

=1+1+1+ω[2,3]

=3+ω[1,3]+ω[1,1-1]

=3+ω[0,3]+ω[0,3-1]+1

=4+1+1

=6

为了比较两个用户兴趣序列的相似性,将|lcsis(u,v)|和|acsis(u,v)|分别进行归一化,如下所示:

然后,引入调节因子α将上述两个公式进行组合形成基于LCSIS和ACSIS的用户相似性度量方法,如公式(1) 所示:

公式(1)

其中调节因子α取值范围为[0,1],α和1-α分别表示LCSIS和ACSIS在度量方法中的各自权重,其取值的设定根据具体的应用环境而定。

2.3 建立评分矩阵

电商网站中用户对于购买过的商品会做出评价,以此作为对该商品的评分。图书馆图书借阅场景中很难获得用户对于所借阅图书的评分,因此用户对于图书的评分可以通过多种因素综合而成,其中包括以下三个方面:借阅时长、借阅形式及用户类型。

2.3.1 借阅时长

借阅时长能够反映出用户对于所借阅图书的偏好程度,借阅时长与偏好呈正相关关系,本文中的图书借阅时长以“天”为计算单位。tui表示用户u对图书i的借阅天数,tmin(i)表示图书i被借阅的最短天数,tmax(i)表示图书i被借阅的最长时间,用户u对图书i的借阅时长经规范化处理后记为:

2.3.2 用户类型

图书馆特别是高校图书馆针对不同的用户类型赋予不同的图书借阅时长,不同类型用户的图书借阅时长分别记为{d1,d2,…dn},取图书借阅时长最短的用户类型记为dmin=min{d1,d2,…dn},以d1t(t=1…n)表示用户类型t的借阅因子为。

2.3.3 借阅形式

如果用户对于某本图书进行预约,表明该用户对于图书有一定了解,存在一定的兴趣度。相比于预约,初次借阅图书存在一定的盲目性,而续借图书表明用户在初次借阅后产生兴趣。因此对于这三种不同的借阅形式赋予不同的权重值,故用户u对于图书i的借阅形式系数记为buj,其计算公式如下:

因此,综合借阅时长、借阅形式以及用户类型三个因素,可以得到用户u借阅图书i归还后产生评分,得到用户-图书评分矩阵:

2.4 基于兴趣序列相似性度量的评分预测

将基于兴趣序列的相似性度量与现有协同过滤推荐算法中的传统相似性度量相结合,引入皮尔逊相似性计算方法可以进一步改进推荐效果,因此基于用户兴趣序列相似性的度量方法如公式(2)所示:

公式(2)

其中pc(u,v)为通过皮尔逊相关系数利用用户评分计算用户之间的相似性,其计算公式如公式(3) 所示:

公式(3)

fIS(u,v)为权重函数,用于反映用户兴趣序列对用户相似性的影响,其计算公式如公式(4) 所示:

公式(4)

其中,common(u,v)表示用户u和v共同借阅的图书数量,total(u,v)表示用户u和v二者分别借阅的图书总和,SimIS(u,v)表示公式(1)所示的基于LCSIS和ACSIS的用户相似性度量方法。

在计算用户相似性之后,对借阅过所要推荐图书的用户进行排序,排序规则为这些用户与目标用户之间的相似性降序排列,选择排序最高的K个用户作为目标用户的最近邻。对于目标用户u,令作为推荐系统需要给目标用户提供预测评分的图书集合,令为借阅过所要推荐图书的目标用户u最近邻集合,评分预测公式如公式(5)所示:

公式(5)

3 实验对比与分析

为了验证本文所提出的方法的有效性,需要通过数据进行实验验证,并将结果与其它的推荐方法在评估指标上进行性能比对。此外,通过实验验证用户之间评分偏离约束阈值θ,以及基于最长共同兴趣子序列(LCSIS)和所有公共子序列(ACSIS)进行相似性度量中的权重调节因子α对于用户相似性度量结果的影响。

3.1 数据准备

本文在对比实验中使用本校图书馆2018年度1月至8月的图书借阅数据作为实验对象,图书借阅量共计11273条,涉及中外文图书共计3275种。本校图书馆的用户分为三种类型,分别为本科生、研究生以及教职工,对应的图书借阅时间(天)为{30,45,60}。根据建立评分矩阵中的方法,计算得到用户对于所借阅图书的评分数据。实验将数据集分割为训练集(80%)和测试集(20%)。此外,为了便于实验比对,将本文提出方法中用户之间评分偏离约束阈值θ設置为0.8,最长共同兴趣子序列(LCSIS)和所有公共子序列(ACSIS)进行相似性度量中的权重调节因子α设置为0.5。

3.2 评价标准

为了验证实验效果,本文在对比实验中采用均方根误差(RMSE)和平均绝对误差(MAE)来验证两种推荐方法的推荐质量[12],其计算公式如下:

其中,u∈Users表示目标用户,i∈upred表示目标用户的未评分项目,表示目标用户对于项目的实际评分,表示目标用户对于项目的预测评分,表示目标用户未评分项目的数量。因此,可知RMSE和MAE值越低表明推荐效果越精确。

3.3 对比分析

为了验证本文所提出方法的性能和有效性,将该方法与传统的基于用户的协同过滤推荐方法和基于用户动态信息的推荐方法进行比较。文献[13]所提出的基于用户的协同过滤推荐方法(记为User-Based) 是利用用户的评分历史计算用户之间的相似度,然后结合相似度度量结果以及目标用户最近邻的评分进行评分预测。文献[14]考虑用户兴趣的动态变化,通过引入时间递减函数来模拟用户的动态兴趣特征实现对目标用户的推荐,该方法记为Interest-Based。

3.3.1 RMSE和MAE结果对比

将User-Based、Interest-Based及本文方法在借还书记录数据集上的实验结果进行比较,并将最近邻K值设置为{10,20,30,40,50,60,70,80}。MAE和RMSE实验对比结果分别如图1和图2所示。

通过实验结果可以发现,三种方法中User-Based推荐精度最差,本文提出方法的推荐精度最高。当K=10时,三种方法的推荐精度均最低,随着K取值提高,三种方法的推荐精度逐步提高。其中,K提高至20时推荐精度提高程度最大。当K=30时,本文所提出方法的推荐精度达到最高;当K>30时,其他两种方法推荐精度提升程度降低,且随着K取值增大,推荐精度保持平稳;而本文所提出的方法在K>30情况下,推荐精度略微下降,这种情况说明最近邻数量的提高对于本文所提出的方法有着细微的影响,但总体的推荐精度仍然优于另两种方法。

3.3.2 参数θ和α对相似性度量结果的影响

为了评估最长公共子序列和所有共同興趣子序列对推荐结果的影响,在该部分实验中为评分偏离约束阈值θ,以及基于最长共同感兴趣子序列(LCSIS)和全部公共子序列(ACSIS)进行相似性度量中的权重调节因子α设置不同的取值。其中,θ取值为{0.2,0.5,0.8}分别表示用户之间评分的偏差弱、中、强约束,同时将α取值设置为{0.2,0.5,0.8},表示在进行用户相似性计算时,LCSIS和ACSIS各自所占权重。预期结果应该是随着θ和α取值不同会导致不同的相似性度量结果,但是通过实际的实验结果发现,推荐精度几乎保持不变。其原因在于,用户对于项目的评分历史具有较高的稀疏性。因此,最长公共子序列的长度和全部公共子序列的数量不会随着θ和α取值发生显著变化。

4 结语

传统的基于协同过滤技术的图书推荐方法中通常关注于用户对于所借阅图书的静态评分,而忽略了用户随着时间变化对于所借阅图书评分顺序。但是,用户对于所借阅图书的评分序列可以反映用户兴趣和偏好的变化,用户兴趣序列可以揭示用户兴趣偏好的潜在信息。针对这一问题,本文首先引入最长兴趣子序列和全部兴趣子序列这两项指标,并给出了指标的规范化定义。其次,将这两项指标应用于用户之间兴趣序列相似性度量,结合基础与传统的协同过滤推荐方法产生目标用户所感兴趣图书的评分预测。最后,将本文提出的方法与其他两种推荐方法在本校图书馆图书借阅数据集进行实验验证,通过对比实验验证引入用户兴趣序列在提高推荐精度方面的有效性。

参考文献:

[1] 朱白.数字图书馆推荐系统协同过滤算法改进及实证分析[J].图书情报工作,2017,61(9):130-134.

[2] 邓爱林,朱扬勇,施伯乐.基于项目评分预测的协同过滤推荐算法[J].软件学报,2003(9):1621-1628.

[3] 吴志强,马慧娟.协同信息推荐技术及其在数字图书馆中的应用研究述评[J].图书情报工作,2012,56(19):122-127.

[4] 荣辉桂,火生旭,胡春华,莫进侠.基于用户相似度的协同过滤推荐算法[J].通信学报,2014,35(2):16-24.

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

[6] 林晓霞,刘敏,杨晓东,徐尧.融合信任相似度的高校图书馆个性化推荐研究[J].数字图书馆论坛,2018(8):14-19.

[7] 宋楚平.一种改进的协同过滤方法在高校图书馆图书推荐中的应用[J].图书情报工作,2016,60(24):86-91.

[8] Lu Z, Dou Z, Lian J, et al. Content-Based Collaborative Filtering for News Topic Recommendation[C].In: Procedings of the twenty-Ninth AAAI Conference on Artificial Intelligence. Austin Texas, USA, 2015:217–223.

[9]  Deorowicz S, Obstoj J. Constrained Longest Common Subsequence Computing Algorithms in Practice[J]. Computing & Informatics, 2010, 29(3):427-445.

[10] 李晓静,张晓滨.基于LCS的用户时空行为兴趣相似性计算方法[J].计算机工程与应用,2013,49(20):251-254.

[11] 汪彦红,杨波,胡玉鹏.个性化推荐推荐系统中基于WEB的挖掘[J].计算机系统应用,2011,20(10):67-70,119.

[12] 于金明,孟军,吴秋峰.基于改进相似性度量的项目协同过滤推荐算法[J].计算机应用,2017,37(5):1387-1391,1406.

[13] Su X, Khoshgoftaar T M. A Survey of Collaborative Filtering Techniques[M]. Hindawi Publishing Corp. 2009.

[14] Cheng J, Liu Y, Zhang H, et al. A New Recommendation Algorithm Based on Users Dynamic Information in Complex Social Network[J]. Mathematical Problems in Engineering,2015,(2015-3-29), 2015, 2015(9):1-6.