基于协同过滤技术的个性化图书推荐系统研究*

2014-09-22 11:17杨永权
河南图书馆学刊 2014年6期
关键词:推荐系统协同过滤图书馆

杨永权

关键词:图书馆;协同过滤;推荐系统

摘 要:针对传统的大众化推荐如热门图书推荐、新书推荐等无法为读者提供个性化的图书推荐服务,提出了构建在协同过滤技术之上的图书个性化推荐系统模型,分析了协同过滤技术在图书推荐中的运用原理及可行性,最后总结其优缺点。

中图分类号:G250 文献标识码:A 文章编号:1003-1588(2014)06-0119-04

收稿日期:2014-05-13

*本文系2013年度广东外语艺术职业学院立项课题《高职院校图书馆数字资源整合研究》(项目编号:2013G04)的研究成果之一。

1 协同过滤技术

1.1 算法介绍

协同过滤算法是在1992 年由 Goldberg 等人首先提出[1],并将其成功应用在研究型邮件推荐系统 Tap-estry 中。协同过滤算法是利用集体智慧的一个典型方法,简单来说,就是利用兴趣相近、拥有共同经验群体的喜好来推荐使用者感兴趣的资讯,个人透过合作的机制给予资讯相当程度的回应(如评分、点评、购买等),并记录下来以达到过滤的目的进而帮助别人筛选资讯。该算法能够为用户发现新兴趣或者将用户之前喜欢的类似物品推荐给用户,相比基于内容的过滤方法具有如下优点:一是能够过滤难以进行机器自动内容分析的如艺术品和音乐等信息[2];二是可以对他人的经验进行共享;三是能够利用相似用户的反馈信息如评分或评价,增强系统的学习能力,从而不断完善推荐系统的推荐功能。

1.2 算法过程

1.2.1 收集用户偏好。可分为显性和隐形收集,显性如评分、评论、投票,隐形如购买、借阅、查看等[3]。在通常实际应用中,我们提取的用户行为一般都不止一种。收集了用户行为数据后,还需要对数据进行一定的预处理,之后,根据不同应用的行为分析方法,得到一个用户偏好的二维矩阵,一维是用户列表,另一维是物品列表,值是用户对物品的偏好。

接着是建立用户模型过程,协同过滤算法的输入数据通常表示为一个m*n的用户——评价矩阵R(m,n),m行表示m个用户数,n列表示n个项目,其中Rij表示第i个用户对第j个物品的评分值。这里的评分值可以是用户的浏览次数,购买次数等隐式的评分,还可以采用显示评分,如用户对商品的直接评分,如表1所示。

表1 用户——项目评价矩阵R(m,n)

item 1 ...... Item j ...... Item n

user 1 R11 ...... R1j ...... R1n

...... ...... ...... ...... ...... ......

user i Ri1 ...... Rij ...... Rin

....... ...... ...... ...... ...... ......

user m Rm1 ...... Rmi ...... Rmn

1.2.2 找到相似的用户或者物品,寻找最近邻居。寻找距离最近的用户,测算距离一般采用以下三种算法:基于相关系数的相似度、基于余弦相似度和基于调整余弦相似度计算。

第一,基于相关相似性(经常使用皮尔森相关系数)计算。用于计算两个变量之间的线性关系。假设用Iij表示用户i和用户j共同评分过的项目集合,那么可以利用皮尔森相关系数来度量用户i和用户j之间的相似性sim(i,j),其中Ri,c是用户i对项目c的评分,Rj,c是用户j对项目c的评分, 和分别表示用户i和j在已经评价过的项目上的平均分,如公式1所示。

(公式1)

第二,基于余弦相似性计算。把用户评分看做n维空间上的向量,将那些用户没有评过分的项目的评分统一设置为0,那么就可以用矢量间的余弦夹角来表示用户间的相似度。设用户i和j在n维项目空间上的评分分别表示为向量I、J,则可以用公式2表示来用户i和j之间的相似度,如公式2所示。

(公式2)

其中Ri,c、Rj,c分别为用户i和用户j对项目c的评分,分子为两个向量的内积,即两个向量相同位置的数字相乘。

第三,基于调整的余弦(Adjusted Cosine)相似度计算:由于基于余弦的相似度计算没有考虑不同用户的打分情况,可能有的用户偏向于给高分,而有的用户偏向于给低分,基于调整的余弦方法通过减去用户打分的平均值消除不同用户打分习惯的影响。设用户i和j共同评分过的项目集合用Iij表示,Ii和Ij分别表示用户i和j评过分的项目集合,则用户i和j之间的相似性表示成公式3。

(公式3)

其中Ri和Rj分别表示用户i和j在已经打分项目上的平均分。

1.2.3 产生推荐结果。主要包含有TOP-N型推荐和预测型推荐两种推荐类型。Top-N型推荐是指产生一个目标用户a最喜欢的N个项目的集合,即Top-N推荐集,可以记作TPa={tp1,tp2,...,tpN},该集合中的每一个项目通常包含的是目标用户a没有购买的,但是值得给用户推荐的商品。而预测型推荐是指产生一个预测值R(a,j),其中R(a,j)表示目标客户a对商品j的预测评分值,他的值域范围由客户a所决定。

2 推荐系统模型

图书推荐系统模型如图1所示,①读者从流通书库进行借还图书操作,经过多年的积累形成了大量借阅历史,记录存储在流通数据库里。②推荐系统首先需要对不规范的数据进行清洗和预处理,为数据挖掘做好数据准备。③对处理好的数据进行协同过滤挖掘(也可以同时综合多种算法进行挖掘),形成离线规则库。④系统能根据读者的信息和借阅历史自动推送不同的图书推荐信息。图书个性化推荐系统可以通过以下两种方式向读者提供推荐系统信息。第一种是采取被动方式。只有当读者登陆个人数字图书馆,推荐系统才会推送推荐图书信息,类似于登陆亚马逊账号之后的推荐方式。另一种是主动方式。有条件的单位,可将推荐书目信息通过邮件系统或手机短信平台发送;不管使用哪种方式,推荐系统和挖掘模型连接必须通过接口,向算法模型发送查询指令,然后图书推荐信息将作为结果返回给推荐系统。另外,为了提升推荐信息的准确度,挖掘模型的原始数据应该定期更新。

图书推荐系统主要由离线规则库和在线图书推荐构成。图书推荐系统的核心环节是离线规则库的构建,此过程是分别基于用户和基于项目的协同过滤技术处理读者借阅数据,挖掘出图书之间相似性以及与邻居之间的形成,在线图书推荐是基于以上结果,通过推荐界面将推荐信息呈现给读者,为读者提供个性化推荐图书的服务。此外,假如该读者是新用户,或者借阅量太少,系统一时无法做出个性化推荐,可以向读者提供诸如“新书推荐”、“热门图书”以及“馆员推荐”等符合各种大众化图书信息。后台管理可以实现对图书信息进行更新和对各种推荐进行设置。

3 协同过滤个性化推荐设计原理

协同过滤可分成基于用户和基于项目的协同过滤两种算法。如图2所示,在基于协同过滤算法中,首先输入用户-项目的二维矩阵,利用相似度公式计算出用户之间的相似度,得出用户偏好的项目集合,最后为每个用户产生推荐列表。

3.1 建立读者-图书的二维矩阵模型

建立数据库,用于存放推荐系统过程中所用到的各种数据表,将从图书馆流通系统导出来、经过清理后的读者借阅记录导入到相应数据表中。从读者借阅历史记录表中获取图书信息和读者信息,为建立读者-图书模型做好数据准备。

endprint

3.2 寻找最近邻居用户集

[JP2]在进行基于用户的协同过滤计算中,主要目标是得到与目标用户的相似用户集。在这里,可以根据需要设定最多有n个邻居用户,其中用户相似性是以借阅相同图书的册数来衡量的,借阅过相同图书越多说明他们的兴趣爱好越相似;而图书的相似性是一起被借阅过的次数来衡量的,经常被一起借阅过的说明图书之间的相似性越高。我们已经将读者借阅记录填充到二维借阅矩阵里了,有借阅记录的平分设置为1,没有借阅的评分设置为0,如图4所示。

表2 评分后的二维矩阵

读者1 读者2 …… 读者n

图书1 1 0 1 1

图书2 1 1 1 1

图书3 1 1 1 0

…… 1 1 1 1

图书n 0 1 1 1

在这里,用户i和用户j的相似度用公式[HZ(][XC6Q30.TIF][HZ)][KG*2]来计算。

3.3 产生图书推荐

到此为止,基于协同过滤结果已经被保存在对应表里,用户登录系统后,系统会自动辨别该用户信息,并推荐出相关图书。

4 协同过滤技术优缺点分析

4.1 优点

4.1.1 较好的运用到了“人以群分”思想。利用集体的力量,计算出不同用户之间对物品的喜好程度,然后根据不同特点给这些人群进行分类[4],好处在于:由于人类能够对一些比较抽象的、传统的基于内容分析算法难以过滤和理解的东西进行归类,所以挖掘质量相对会大大提高。

4.1.2 由于采用了评价反馈机制如评分、划分等级,其他用户能从已经体验过的邻居评价中得到反馈信息,用户的反馈信息量越大,个性化系统学习速度提升也就越快,只要每个用户为系统贡献一份力量,系统的性能就会越来越完善。

4.1.3 可以帮助用户发现自己潜在的但还没有发现的新兴趣。由于用户与用户之间接触新事物时间不一致,有些用户比其他的邻居提早接触到自己喜欢的新事物,就通过基于用户的协同过滤推荐,将这些新的信息推荐给后来的邻居们[5]。

4.1.4 基于项目协同过滤推荐是根据项目之间的相似性来完成推荐任务的,所以很好解释推荐结果的理由和依据,从而满足特定用户的兴趣需求。

4.2 不足

如基于项目协同过滤推荐给用户的物品是与用户以前所喜欢的物品相似的物品,该算法是通过分析用户对项目的评分得出项目之间的相似度,因此他给目标用户所推荐的,仅局限于和用户之前购买过的相似物品。所以缺乏挖掘用户潜在需求的能力,难以向用户产生新颖的推荐结果。

4.2.1 稀疏性问题。在类似于亚马逊和淘宝这些采用了数据挖掘推荐技术的大型电子购物网站中,他们所拥有的物品都是难以计数,用户可能购买的不到1%的物品[6],不同用户之间购买的物品的重叠性较低,或者几乎为零,而且用户很少会对购买的产品给出评分。据研究结果表明,当用户评价项目数少于总项目数的10%[7],就很容易造成评价矩阵数据稀疏,导致算法难以找到一个用户的偏好相似邻居。而在图书馆中也会遇到同样的问题,图书馆的图书数目必然是远远超过学生人数,并且随着时间的推移这个问题会越发突出。

4.2.2 [JP2]冷启动问题。基于用户协同过滤是建立在有大量用户对某个产品的评价上的,由于在新产品开始阶段没有人购买或者新图书在开始会没有人借阅,也没有对其进行评价,那么在开始阶段也将无法对其进行推荐,因此推荐质量主要是取决于历史数据集。

4.2.3 算法扩展性问题。随着物品数尤其是用户数的剧烈增加,最近邻居算法的计算量也相应增加,不太适合数据量大的情况使用,所以推荐系统性能也会大受影响,而现在的推荐系统几乎是B/S结构,没有快速的相应速度,对网络用户来说是无法忍受的,因此这在某种程度上限制了基于用户协同过滤在推荐系统中的使用。

4.2.4特殊用户问题。在生活中,有一部分人的偏好是比较特殊的,他没有相对固定的兴趣爱好,而这刚好是基于用户协同过滤的前提,那么系统很难为他找出邻居,也就是很难给出比较精确的推荐信息了。

5 结语

基于协同过滤技术的图书推荐系统对于提高图书馆的服务具有重大意义和价值,他能够根据用户的借阅历史进行图书推荐,当读者阅读兴趣发生变化时,系统也能自动更新规则库,主动向读者推送满足其个性化需求的推荐内容。个性化图书推荐是数字图书馆做好服务的根本要求,在实现个性化的方法上,有一些值得改进的地方,如对现有协同过滤算法的改进,或者同时采用多种推荐算法,充分发挥各个算法的优势,达到提高推荐的精度。

参考文献:

[1]李玮平.基于数据挖掘的图书馆读者需求分析[J]. 图书馆论坛, 2004(3):86-88.

[2] 郁 雪.基于协同过滤技术的推荐方法研究[D]. 天津:天津大学,2009.

[3] 张光卫等.基于云模型的协同过滤推荐算法[J].软件学报,2007(10):2403-2411.

[4] 吴 颜等.协同过滤推荐系统中数据稀疏问题的解决[J]. 计算机应用研究,2007(6): 94-97.

[5] 邓爱林.电子商务推荐系统关键技术研究[D]. 上海:复旦大学,2003.

[6] 孔小华.协同过滤系统的稀疏性与冷启动问题研究[D]. 杭州:浙江大学,2005.

[7] 张 亮.推荐系统中协同过滤算法问题的研究[D]. 北京: 北京邮电大学,2009.

(编校:马怀云)

endprint

3.2 寻找最近邻居用户集

[JP2]在进行基于用户的协同过滤计算中,主要目标是得到与目标用户的相似用户集。在这里,可以根据需要设定最多有n个邻居用户,其中用户相似性是以借阅相同图书的册数来衡量的,借阅过相同图书越多说明他们的兴趣爱好越相似;而图书的相似性是一起被借阅过的次数来衡量的,经常被一起借阅过的说明图书之间的相似性越高。我们已经将读者借阅记录填充到二维借阅矩阵里了,有借阅记录的平分设置为1,没有借阅的评分设置为0,如图4所示。

表2 评分后的二维矩阵

读者1 读者2 …… 读者n

图书1 1 0 1 1

图书2 1 1 1 1

图书3 1 1 1 0

…… 1 1 1 1

图书n 0 1 1 1

在这里,用户i和用户j的相似度用公式[HZ(][XC6Q30.TIF][HZ)][KG*2]来计算。

3.3 产生图书推荐

到此为止,基于协同过滤结果已经被保存在对应表里,用户登录系统后,系统会自动辨别该用户信息,并推荐出相关图书。

4 协同过滤技术优缺点分析

4.1 优点

4.1.1 较好的运用到了“人以群分”思想。利用集体的力量,计算出不同用户之间对物品的喜好程度,然后根据不同特点给这些人群进行分类[4],好处在于:由于人类能够对一些比较抽象的、传统的基于内容分析算法难以过滤和理解的东西进行归类,所以挖掘质量相对会大大提高。

4.1.2 由于采用了评价反馈机制如评分、划分等级,其他用户能从已经体验过的邻居评价中得到反馈信息,用户的反馈信息量越大,个性化系统学习速度提升也就越快,只要每个用户为系统贡献一份力量,系统的性能就会越来越完善。

4.1.3 可以帮助用户发现自己潜在的但还没有发现的新兴趣。由于用户与用户之间接触新事物时间不一致,有些用户比其他的邻居提早接触到自己喜欢的新事物,就通过基于用户的协同过滤推荐,将这些新的信息推荐给后来的邻居们[5]。

4.1.4 基于项目协同过滤推荐是根据项目之间的相似性来完成推荐任务的,所以很好解释推荐结果的理由和依据,从而满足特定用户的兴趣需求。

4.2 不足

如基于项目协同过滤推荐给用户的物品是与用户以前所喜欢的物品相似的物品,该算法是通过分析用户对项目的评分得出项目之间的相似度,因此他给目标用户所推荐的,仅局限于和用户之前购买过的相似物品。所以缺乏挖掘用户潜在需求的能力,难以向用户产生新颖的推荐结果。

4.2.1 稀疏性问题。在类似于亚马逊和淘宝这些采用了数据挖掘推荐技术的大型电子购物网站中,他们所拥有的物品都是难以计数,用户可能购买的不到1%的物品[6],不同用户之间购买的物品的重叠性较低,或者几乎为零,而且用户很少会对购买的产品给出评分。据研究结果表明,当用户评价项目数少于总项目数的10%[7],就很容易造成评价矩阵数据稀疏,导致算法难以找到一个用户的偏好相似邻居。而在图书馆中也会遇到同样的问题,图书馆的图书数目必然是远远超过学生人数,并且随着时间的推移这个问题会越发突出。

4.2.2 [JP2]冷启动问题。基于用户协同过滤是建立在有大量用户对某个产品的评价上的,由于在新产品开始阶段没有人购买或者新图书在开始会没有人借阅,也没有对其进行评价,那么在开始阶段也将无法对其进行推荐,因此推荐质量主要是取决于历史数据集。

4.2.3 算法扩展性问题。随着物品数尤其是用户数的剧烈增加,最近邻居算法的计算量也相应增加,不太适合数据量大的情况使用,所以推荐系统性能也会大受影响,而现在的推荐系统几乎是B/S结构,没有快速的相应速度,对网络用户来说是无法忍受的,因此这在某种程度上限制了基于用户协同过滤在推荐系统中的使用。

4.2.4特殊用户问题。在生活中,有一部分人的偏好是比较特殊的,他没有相对固定的兴趣爱好,而这刚好是基于用户协同过滤的前提,那么系统很难为他找出邻居,也就是很难给出比较精确的推荐信息了。

5 结语

基于协同过滤技术的图书推荐系统对于提高图书馆的服务具有重大意义和价值,他能够根据用户的借阅历史进行图书推荐,当读者阅读兴趣发生变化时,系统也能自动更新规则库,主动向读者推送满足其个性化需求的推荐内容。个性化图书推荐是数字图书馆做好服务的根本要求,在实现个性化的方法上,有一些值得改进的地方,如对现有协同过滤算法的改进,或者同时采用多种推荐算法,充分发挥各个算法的优势,达到提高推荐的精度。

参考文献:

[1]李玮平.基于数据挖掘的图书馆读者需求分析[J]. 图书馆论坛, 2004(3):86-88.

[2] 郁 雪.基于协同过滤技术的推荐方法研究[D]. 天津:天津大学,2009.

[3] 张光卫等.基于云模型的协同过滤推荐算法[J].软件学报,2007(10):2403-2411.

[4] 吴 颜等.协同过滤推荐系统中数据稀疏问题的解决[J]. 计算机应用研究,2007(6): 94-97.

[5] 邓爱林.电子商务推荐系统关键技术研究[D]. 上海:复旦大学,2003.

[6] 孔小华.协同过滤系统的稀疏性与冷启动问题研究[D]. 杭州:浙江大学,2005.

[7] 张 亮.推荐系统中协同过滤算法问题的研究[D]. 北京: 北京邮电大学,2009.

(编校:马怀云)

endprint

3.2 寻找最近邻居用户集

[JP2]在进行基于用户的协同过滤计算中,主要目标是得到与目标用户的相似用户集。在这里,可以根据需要设定最多有n个邻居用户,其中用户相似性是以借阅相同图书的册数来衡量的,借阅过相同图书越多说明他们的兴趣爱好越相似;而图书的相似性是一起被借阅过的次数来衡量的,经常被一起借阅过的说明图书之间的相似性越高。我们已经将读者借阅记录填充到二维借阅矩阵里了,有借阅记录的平分设置为1,没有借阅的评分设置为0,如图4所示。

表2 评分后的二维矩阵

读者1 读者2 …… 读者n

图书1 1 0 1 1

图书2 1 1 1 1

图书3 1 1 1 0

…… 1 1 1 1

图书n 0 1 1 1

在这里,用户i和用户j的相似度用公式[HZ(][XC6Q30.TIF][HZ)][KG*2]来计算。

3.3 产生图书推荐

到此为止,基于协同过滤结果已经被保存在对应表里,用户登录系统后,系统会自动辨别该用户信息,并推荐出相关图书。

4 协同过滤技术优缺点分析

4.1 优点

4.1.1 较好的运用到了“人以群分”思想。利用集体的力量,计算出不同用户之间对物品的喜好程度,然后根据不同特点给这些人群进行分类[4],好处在于:由于人类能够对一些比较抽象的、传统的基于内容分析算法难以过滤和理解的东西进行归类,所以挖掘质量相对会大大提高。

4.1.2 由于采用了评价反馈机制如评分、划分等级,其他用户能从已经体验过的邻居评价中得到反馈信息,用户的反馈信息量越大,个性化系统学习速度提升也就越快,只要每个用户为系统贡献一份力量,系统的性能就会越来越完善。

4.1.3 可以帮助用户发现自己潜在的但还没有发现的新兴趣。由于用户与用户之间接触新事物时间不一致,有些用户比其他的邻居提早接触到自己喜欢的新事物,就通过基于用户的协同过滤推荐,将这些新的信息推荐给后来的邻居们[5]。

4.1.4 基于项目协同过滤推荐是根据项目之间的相似性来完成推荐任务的,所以很好解释推荐结果的理由和依据,从而满足特定用户的兴趣需求。

4.2 不足

如基于项目协同过滤推荐给用户的物品是与用户以前所喜欢的物品相似的物品,该算法是通过分析用户对项目的评分得出项目之间的相似度,因此他给目标用户所推荐的,仅局限于和用户之前购买过的相似物品。所以缺乏挖掘用户潜在需求的能力,难以向用户产生新颖的推荐结果。

4.2.1 稀疏性问题。在类似于亚马逊和淘宝这些采用了数据挖掘推荐技术的大型电子购物网站中,他们所拥有的物品都是难以计数,用户可能购买的不到1%的物品[6],不同用户之间购买的物品的重叠性较低,或者几乎为零,而且用户很少会对购买的产品给出评分。据研究结果表明,当用户评价项目数少于总项目数的10%[7],就很容易造成评价矩阵数据稀疏,导致算法难以找到一个用户的偏好相似邻居。而在图书馆中也会遇到同样的问题,图书馆的图书数目必然是远远超过学生人数,并且随着时间的推移这个问题会越发突出。

4.2.2 [JP2]冷启动问题。基于用户协同过滤是建立在有大量用户对某个产品的评价上的,由于在新产品开始阶段没有人购买或者新图书在开始会没有人借阅,也没有对其进行评价,那么在开始阶段也将无法对其进行推荐,因此推荐质量主要是取决于历史数据集。

4.2.3 算法扩展性问题。随着物品数尤其是用户数的剧烈增加,最近邻居算法的计算量也相应增加,不太适合数据量大的情况使用,所以推荐系统性能也会大受影响,而现在的推荐系统几乎是B/S结构,没有快速的相应速度,对网络用户来说是无法忍受的,因此这在某种程度上限制了基于用户协同过滤在推荐系统中的使用。

4.2.4特殊用户问题。在生活中,有一部分人的偏好是比较特殊的,他没有相对固定的兴趣爱好,而这刚好是基于用户协同过滤的前提,那么系统很难为他找出邻居,也就是很难给出比较精确的推荐信息了。

5 结语

基于协同过滤技术的图书推荐系统对于提高图书馆的服务具有重大意义和价值,他能够根据用户的借阅历史进行图书推荐,当读者阅读兴趣发生变化时,系统也能自动更新规则库,主动向读者推送满足其个性化需求的推荐内容。个性化图书推荐是数字图书馆做好服务的根本要求,在实现个性化的方法上,有一些值得改进的地方,如对现有协同过滤算法的改进,或者同时采用多种推荐算法,充分发挥各个算法的优势,达到提高推荐的精度。

参考文献:

[1]李玮平.基于数据挖掘的图书馆读者需求分析[J]. 图书馆论坛, 2004(3):86-88.

[2] 郁 雪.基于协同过滤技术的推荐方法研究[D]. 天津:天津大学,2009.

[3] 张光卫等.基于云模型的协同过滤推荐算法[J].软件学报,2007(10):2403-2411.

[4] 吴 颜等.协同过滤推荐系统中数据稀疏问题的解决[J]. 计算机应用研究,2007(6): 94-97.

[5] 邓爱林.电子商务推荐系统关键技术研究[D]. 上海:复旦大学,2003.

[6] 孔小华.协同过滤系统的稀疏性与冷启动问题研究[D]. 杭州:浙江大学,2005.

[7] 张 亮.推荐系统中协同过滤算法问题的研究[D]. 北京: 北京邮电大学,2009.

(编校:马怀云)

endprint

猜你喜欢
推荐系统协同过滤图书馆
图书馆
基于用户偏好的信任网络随机游走推荐模型
基于链式存储结构的协同过滤推荐算法设计与实现
基于相似传播和情景聚类的网络协同过滤推荐算法研究
基于个性化的协同过滤图书推荐算法研究
个性化推荐系统关键算法探讨
基于协同过滤算法的个性化图书推荐系统研究
混合推荐算法在电影推荐中的研究与评述
浅谈Mahout在个性化推荐系统中的应用
去图书馆