考虑图书推荐列表相似性的图书推荐研究
2018-12-04张恒章成志周清清
张恒 章成志 周清清
摘 要:亚马逊网站为每本图书生成推荐列表,供用户选择其感兴趣的图书,但该推荐方法仅考虑图书之间的相似性。文章在此基础上引入图书推荐列表的相似性,计算不同图书推荐列表的相似度,通过相似度排序为每本图书生成推荐列表,然后将其与亚马逊提供的推荐列表融合对用户进行个性化图书推荐。实验结果显示,相比于仅使用推荐列表的方法,文章所提出的方法所生成的推荐结果在平均准确率、平均召回率、Macro_F1和Micro_F1上都有一定的提升。由此可见,推荐列表的相似性对于图书推荐效果可以起到一定的优化作用。
关键词:图书推荐列表;Jaccard相似度;推荐优化
中图分类号:G250.7;G252 文献标识码:A DOI:10.11968/tsyqb.1003-6938.2018056
Using Similarity of Book Recommendation Lists for Book Recommendation
Abstract The Amazon website generates recommendation lists for each book, allowing users to select the books they are interested in. But this recommendation method only considers the similarity among books. Based on the recommendation lists, this paper introduces a similarity of book recommendation lists, and calculates Jaccard similarity of different book recommendation lists, then generates recommendation list for each book by similarity ranking. This paper combines it and the recommendation list provided by Amazon to conduct personalized recommendation for users. The experimental results show that there is a certain improvement in the average accuracy rate, the average recall rate, Macro_F1 and Micro_F1 compared to using only the recommendation list provided by Amazon. It can be seen that the similarity of the recommendation list of the book can play a certain role in optimizing the recommendation effect.
Key words Book recommendation list; Jaccard similarity; Recommendation optimization
當前全球图书数量正快速增长,尽管图书馆可依据“杜威十进制分类法”“美国国会图书馆分类法”“中国图书馆图书分类法”等分类方法对图书进行分类,以帮助用户查找需要的图书,但用户还是会迷失在“书海”中。为了解决这一问题,图书馆提供关键词检索的方式方便用户快速检索。然而,这依然需要用户在大量的检索结果中寻找满足其需求的图书。另外,仅仅通过关键词匹配并不一定能满足用户的真正需求。随着电子商务的发展,图书的网上交易量逐渐增长。当前,亚马逊、当当网、京东、淘宝等电商平台上呈现海量的图书资源。这些平台积累大量的用户数据,如关于图书的浏览、购买、评论等数据。电商平台以此为基础,主要以协同推荐的方式为用户提供个性化推荐结果。目前,商品的个性化推荐已经成为电商平台的核心竞争力之一。如以亚马逊网站为例,其个性化推荐系统在准确性、时效性和新颖性上都有良好的表现[1]。
传统的图书推荐方法大多依据图书的相关用户行为数据,如购买、浏览记录等,利用协同推荐算法为用户推荐相关图书列表[2]。这种推荐方法仅考虑目标图书与推荐图书的相似性。由于推荐列表中的图书都与目标图书存在一定的相似性,那么推荐列表作为相似图书的集合,在衡量图书相似性时可以被考虑。由此本文在传统推荐方法的基础上,引入图书推荐列表的相似性,进行图书的个性化推荐研究,探索其对于图书推荐效果提升的作用。
2 相关研究概述
图书推荐主要包括两种类型:一是图书馆中的图书推荐。图书馆利用用户的检索、浏览、借阅记录等进行图书推荐。相对来说,图书馆馆藏、用户行为等数据的规模均较小,用户的个性化推荐效果不甚理想。并且,图书馆的图书推荐大多以推荐书目的形式呈现,针对某一人群,聚焦于特定阅读主题;另外一种是电商网站上的图书推荐。随着电子商务的兴起,各大电商网站积累了大量的用户数据,电商网站可以从中细致地挖掘出用户兴趣,实现更为精准的个性化图书推荐。常用的推荐方法主要包括三类,即基于内容相似度的推荐、基于关联规则的推荐、基于协同过滤的推荐。
(1)基于内容相似度的推荐是由信息检索技术发展而来的。在信息检索中,系统事先为数据库中的所有记录生成特征向量,在用户输入检索词后,系统同样将其表示成向量,然后计算检索词与每一条记录的相似度,将满足一定相似度阈值的结果按照相似度从高到低的顺序返回给用户。这种技术应用到图书推荐中后,推荐系统会根据用户之前购买或者浏览的图书,学习出这些图书的内容特征,然后去寻找与之内容相似的图书推荐给用户[3-4]。该过程涉及图书内容的表示,一般使用向量空间模型(Vector Space Model,VSM)[5]来表示图书。其中,内容特征的提取常依据TF-IDF[6]、卡方检验(CHI)[7]、信息增益(IG)[8]等方法完成。内容相似度的计算,依据欧几里得距离、余弦相似度等方法完成。这种推荐方法只能推荐给用户内容相近的图书,但用户的兴趣有时会发生迁移,从一类图书转移到另一类图书上。该方法还存在用户的“冷启动”问题[9-10],即对于新用户,系统中没有关于他的任何记录,不能进行有效的推荐。
(2)基于关联规则的推荐主要通过大量用户的购买记录,发现商品之间的潜在联系,找到用户经常一起购买的商品组合,从而完成商品推荐。如亚马逊网站上商品详情页面中有与该商品“经常一起购买的商品”推荐,这就是一个被大量用户所采购的商品组合。Apriori算法[11]是最常用的关联规则发现算法之一,通过计算图书之间的支持度和置信度,然后依据实际情况分别设定阈值,找出所有满足最小支持度和最小置信度的关联规则,按照置信度大小排序,根据需求取前N个最相关的商品进行推荐。
(3)基于协同过滤的推荐[12]又可细分为两类,即基于用户的协同推荐[13]、基于物品的协同推荐[14]。前者首先需要定位目标用户的邻近用户(即具有相似兴趣和需求的用户群体),然后将邻近用户感兴趣的商品推荐给目标用户。该方法的难点在于如何确定邻近用户,早期的Tapestry图书推荐系统[15]依靠人工选定邻近用户,后来发展出根据用户行为(如对图书的打分)来构建用户特征向量,计算用户之间的相似度来自动识别邻近用户的方法。后者则是先定位“邻近物品”(在图书推荐中即指邻近图书),然后向用户推荐其购买过的图书的邻近图书[16]。邻近图书也可以通过相似度来计算,但并不是图书的内容相似度,而是指基于用户行为记录的相似度。如亚马逊网站上“购买此商品的顾客也同时购买”的推荐列表就是使用基于物品的协同推荐方法生成的。基于用户的协同推荐同样会遇到用户的“冷启动”问题,基于物品的协同推荐雖然可避免用户的“冷启动”问题,但依然存在物品的“冷启动”问题[17]。由于不再局限于图书内容,基于协同过滤的推荐方法可以给用户推荐不同类型的图书,满足用户不断迁移的兴趣。
以上三种推荐方法都依据图书在某些方面的相似性,进行图书推荐。基于内容的推荐从图书内容的角度出发,寻找内容相似的图书;基于关联规则的推荐从被用户组合购买的角度出发,推荐图书与目标图书在同一组合中体现了它们的相似性;基于协同过滤的推荐从群体的角度出发,都与同一群体相关构成推荐图书与目标图书的相似性。通过对比可以发现,图书与推荐图书的关系和论文与参考文献的关系非常相似,引用相同参考文献的论文在研究领域或研究主题上往往是相似的。因此,本文认为推荐列表的相似性也反映了图书在某种程度上的相似性,从而在传统图书推荐方法的基础上,还考虑推荐列表的相似性,进行图书的推荐。
3 研究设计
3.1 研究框架
本文以亚马逊网站上用户购买图书记录与图书的推荐列表数据为数据来源,通过计算图书推荐列表之间的Jaccard相似度[18],为每本图书生成新的推荐列表。然后分别使用基于协同过滤的图书推荐列表、基于推荐列表相似度生成的图书推荐列表以及融合两种推荐列表的图书推荐列表,为用户推荐图书。本文最后对三种推荐方法进行效果评估,验证推荐列表相似度能否对图书推荐效果起到优化作用(具体研究框架见图1)。
3.2 研究问题
基于某一方面的相似性,推荐算法可以找到与目标图书相似的图书,构成推荐列表。这个过程只衡量目标图书与其推荐图书之间的相似性,本文提出的推荐列表相似度则在原推荐算法的基础上考虑图书各自的推荐列表这一外部特征。基于此,本文主要研究以下两个问题:
(1)如何基于图书的推荐列表对用户进行个性化推荐?
(2)图书推荐列表的相似性是否可以提高个性化图书推荐效果?
3.3 关键技术描述
3.3.1 数据采集
本文从亚马逊网站上采集用户和图书的相关数据(数据采集流程见图2)。
首先,本文从亚马逊网站优秀评论者排行榜(10000名用户)中获取每个用户的ID,构建用户主页链接,再从用户主页中采集用户的购买记录信息,并且从购买记录中筛选出图书商品,最后得到7983名购买记录中包含图书商品的用户(部分用户数据样例见表1)。
然后,我们根据这7983名用户购买的图书ASIN号,构建图书详情页面链接,从而采集图书的相关数据。本文用到的图书数据主要是图书的推荐列表,亚马逊网站的图书详情页面中提供了三种推荐列表,即:“经常一起购买的商品”“购买此商品的顾客也同时购买”及“看过此商品后顾客买的其他商品”。第一种推荐是基于关联规则生成的,推荐图书的数量一般为一到两本,第二种推荐是基于协同过滤算法生成的,推荐图书的数量不定,最多为100本,第三种推荐是基于大量用户的浏览记录生成的,推荐图书的数量一般是4本。提取出三种推荐列表中图书的ASIN号,进行新一轮的图书数据采集,如此反复采集N次(本文实验中采集次数为4),最后共得到782355本图书的相关数据(部分图书的推荐列表数据样例见表2)。
3.3.2 图书推荐列表的相似度计算
文本相似度的计算方式有余弦相似度[19]、欧几里得距离[20]、Jaccard相似度[18]等。无论是余弦相似度还是欧几里得距离的计算,一般都考虑向量不同维度的权重。而Jaccard相似度在计算时则不考虑集合中每个元素的权重,要么是0,要么是1。本文不考虑推荐列表中不同图书的权重,因此选择Jaccard相似度来衡量图书推荐列表的相似度大小。
给定集合A和集合B,那么它们的Jaccard相似度计算公式如下[21]:
3.3.3 基于推荐列表相似度的图书推荐列表生成
本文对个性化推荐效果进行评估时,选择购买图书数量不少于50本的1347名用户用于测试。这些用户购买的图书共有85024本,由于部分图书已被亚马逊网站下架,无法获取图书的详情页面,进而无法采集相关数据。因此,进行一定的数据清洗后,最终获取1347名用户购买的71662本图书进行测试。
尽管亚马逊网站基于不同的策略提供了三种图书推荐列表,但是三种推荐列表并不是完全覆盖的。对测试用户购买的所有图书(71662本)的推荐列表情况进行统计发现,详情页面中有第一种推荐列表的图书有41824本,详情页面中有第二种推荐列表的图书有70396本,详情页面中有第三种推荐列表的图书有54057本。为了保证数据的覆盖率,本文选择第二种推荐列表进行研究。
本文计算图书推荐列表的Jaccard相似度,可以得到图书之间的相似度矩阵(计算结果示例见表3)。
对于每本图书,根据相似度矩阵,找出与该图书相似度大于0的所有图书,并按相似度大小排序。由于选择进行研究的第二种推荐列表(基于协同过滤)中图书的最大数量为100,在这里选择相似度最高的前100本作为图书的新推荐列表。
3.3.4 个性化图书推荐
个性化图书推荐包括两个子任务,即基于单一推荐列表的图书推荐、基于两种推荐列表融合的图书推荐。
(1)基于单一推荐列表的图书推荐,分别使用亚马逊提供的基于协同过滤的推荐列表与基于推荐列表Jaccard相似度生成的推荐列表,进行个性化图书推荐(推荐流程见图3)。首先找到用户购买的所有图书的推荐列表,统计找到的所有推荐列表中不同图书出现的次数,按照降序排列,选取前100本作为该用户的个性化图书推荐结果。使用基于推荐列表相似度生成的推荐列表时步骤相同。
(2)基于两种推荐列表融合的个性化图书推荐,首先赋予两种推荐列表不同的权重,然后按照以下规则对两种推荐列表进行融合:如果图书出现在两种推荐列表中,那么该图书的权重为1,如果只在一种推荐列表中出现,则图书的权重等于相应推荐列表的权重,以此来将两种推荐列表中的图书综合在一起。后续的推荐步骤与基于单一推荐列表的个性化图书推荐相似,只是将统计推荐列表中图书的次数相应地改为计算图书的总权重。
3.3.5 推荐效果评估
为验证基于推荐列表的相似度能否提高个性化图书推荐效果,本文选取购买图书记录不少于50条的用户进行个性化图书推荐效果评估。符合要求的用户一共有1347名。按照图书购买记录的时间顺序,将每个用户购买的前70%的图书作为训练集,后30%的图书作为测试集。根据上一步个性化图书推荐中描述的推荐流程,对每一名用户进行个性化图书推荐,基于用户的训练集生成推荐结果,与测试集对比,计算每种推荐方式的准确率(P)、召回率(R)和F1值[22],计算公式如下:
对计算结果进行对比和分析,从而实现推荐效果的评估。对于基于两种推荐列表融合的个性化图书推荐,还将调整两种推荐列表的权重比例,进行多次测试,得到使得推荐效果最优的权重比例。
4 实验结果与分析
4.1 基于单一推荐列表的个性化图书推荐结果
本文比较使用两种不同推荐列表对用户进行个性化图书推荐的性能。基于协同过滤的推荐各项指标要高于基于推荐列表相似度的推荐,尤其是在平均召回率上,前者比后者高了20.35%(见图4)。召回率代表测试集中的图书被准确推荐的数量大小,召回率越大,用户因为推荐而购买的图书越多,这直接与商家所能取得的利润相关。从而证明亚马逊提供的基于协同过滤的推荐列表的重要性是不可忽略的,所以本文还将两种推荐列表融合进行个性化图书推荐。
4.2 基于两种推荐列表融合的个性化图书推荐结果
本文按照不同的比例设置两种推荐列表的权重,将两种推荐列表融合后进行个性化图书推荐(性能评估结果见表4)。从表中可以看出,各评估指标随着权重比例S的减小都呈现先增大后减小的变化趋势。当两种推荐列表的权重比例为6 : 4时,四个评估指标都取得最大值。相比于仅使用基于协同过滤的推荐列表,各项指标都有一定的提升。
以用户“A3I*****HFR”为例,本文分别使用基于协同过滤的推荐和融合推荐的结果(见表5)。使用基于协同过滤的推荐列表对该用户进行个性化推薦准确预测了4本图书,而使用两种推荐列表融合(权重比例S=6:4)进行个性化推荐准确预测了7本图书,准确率、召回率、F1值后者都高于前者。
此外,经过统计发现,仅使用亚马逊提供的基于协同过滤的推荐列表进行个性化图书推荐时,准确推荐的图书数量为“0”的用户有467名;而使用两种推荐列表融合(权重比例S = 6 : 4)进行个性化图书推荐时,准确推荐的图书数量为“0”的用户有441名。后者为更多的用户找到了准确推荐的图书。
5 结语
本文通过计算亚马逊图书推荐列表的Jaccard相似度,为每本图书重新生成了推荐列表,并且设计基于图书推荐列表和用户购买记录进行个性化图书推荐的方法。实验结果显示,基于推荐列表相似度生成的推荐列表的效果不如亚马逊提供的基于协同过滤的推荐列表,但通过调整两种推荐列表的权重比例,将两者融合再进行个性化图书推荐时,推荐效果优于基于协同过滤的推荐列表。当基于协同过滤的推荐列表与基于推荐列表相似度生成的推荐列表的权重之比为6 : 4时,推荐效果最优,Macro_F1提高了5.84%,Micro_F1提高了6.36%。对于推荐效果的评估最直观的方法是使用个性化推荐比前后销售额的变化,但我们无法获取相关的数据,所以选用了准确率、召回率、Macro_F1、Micro_F1这种相对严苛的评价指标来对推荐效果进行评估。在各项评价指标得分普遍很低的情况下,本文提出的推荐方法所取得的推荐效果提升较为可观。这说明推荐列表的相似度可对个性化图书推荐效果起到优化作用。
本文研究还存在一些不足之处,如本文使用的图书数据只有78万余条,这些图书之间的推荐列表相似度并不能代表所有图书,因此基于推荐列表相似度为每本图书生成的推荐列表可能并不完全,有些推荐列表更相似的图书数据可能没有采集到,今后本文将扩大数据规模进行研究。另外,本文提出的图书推荐效果优化方法,需要依赖图书的原始推荐列表,还需要解决“冷启动”问题。
参考文献:
[1] 洪亮,任秋圜,梁树贤.国内电子商务网站推荐系统信息服务质量比较研究——以淘宝、京东、亚马逊为例[J].图书情报工作,2016,60(23):97-110.
[2] 安德智,刘光明,章恒.基于协同过滤的图书推荐模型[J].图书情报工作,2011,55(1):35-38.
[3] Rong H,Gong L,Qin Z,et al.A Personalized Recommendation Approach Based on Content Similarity Calculation in Large-Scale Data[C].In: Proceedings of the 15th International Conference,ICA3PP 2015,Zhangjiajie,China,2015:460-477.
[4] 张麒麟,姜霖.基于文献内容的图书推荐机制研究[J].图书馆学研究,2018(1):78-81,17.
[5] 胡晓,王理,潘守慧.基于改进VSM的Web文本分类方法[J].情报杂志,2010,29(5):144-147.
[6] Quan C,Ren F.Unsupervised product feature extraction for feature-oriented opinion determination[J].Information Sciences,2014,DOI:10.1016/j.ins.2014.02.063.
[7] 曾辉,唐佳丽,熊李艳,等.基于动词名词和CHI特征选择的中文人物社会关系抽取[J].计算机应用研究,2017,34(6):1631-1635.
[8] 刘汝隽,贾斌,辛阳.基于信息增益特征选择的网络异常检测模型[J].计算机应用,2016,36(A2):49-53.
[9] Kalloori S,Ricci F.Improving Cold Start Recommendation by Mapping Feature-Based Preferences to Item Comparisons[C].Proceedings of the 25th Conference on User Modeling,Adaptation and Personalization.New York,NY,USA,2017:289-293.
[10] Shi L,Zhao W X,Shen Y D.Local Representative-Based Matrix Factorization for Cold-Start Recommendation[J].ACM Transactions on Information Systems,2017,36(2):1-28.
[11] Han J,Pei J,Yin Y.Mining frequent patterns without candidate generation[C].ACM SIGMOD International Conference on Management of Data.New York,NY,USA,2000,29(2):1-12.
[12] Parvatikar S,Joshi B.Online book recommendation system by using collaborative filtering and association mining[C].In:Proceedings of IEEE International Conference on Computational Intelligence and Computing Research.Orlando,FL,USA,2016:1-4.
[13] Tan Z,He L.An Efficient Similarity Measure for User-Based Collaborative Filtering Recommender Systems Inspired by the Physical Resonance Principle[J].IEEE Access,2017,5(99):27211-27228.
[14] Li C,He K.CBMR:An optimized MapReduce for item-based collaborative filtering recommendation algorithm with empirical analysis[J].Concurrency and Computation:Practice and Experience,2017,29(10):e4092.
[15] Resnick P,Varian H R.Recommender systems[J].Communications of the ACM,New York,NY,USA,1997,40(3):56-58.
[16] Li D,Chen C,Lv Q,et al. An algorithm for efficient privacy-preserving item-based collaborative filtering[J].Future Generation Computer Systems,2016,DOI:10.1016/j.future.2014.11.003.
[17] Wei J,He J,Chen K,et al.Collaborative filtering and deep learning based recommendation system for cold start items [J].Expert Systems with Applications,2017(69):29-39.
[18] 李斌,张博,刘学军,等.基于Jaccard相似度和位置行为的协同过滤推荐算法[J].计算机科学,2016,43(12):200-205.
[19] 武永亮,赵书良,李长镜,等.基于TF-IDF和余弦相似度的文本分类方法[J].中文信息学报,2017,31(5):138-145.
[20] Wang C,Song Y,Li H,et al.Distant Meta-Path Similarities for Text-Based Heterogeneous Information Networks[C].In:Proceedings of the 2017 ACM on Conference on Information and Knowledge Management.New York,NY,USA,2017:1629-1638.
[21] 俞婷婷,徐彭娜,江育娥,等.基于改进的Jaccard系数文档相似度计算方法[J].计算机系统应用,2017,26(12):137-142.
[22] 奉国和.文本分类性能评价研究[J].情報杂志,2011,30(8):66-70.
作者简介:张恒(1995-),男,南京理工大学信息管理系硕士研究生;章成志(1977-),男,南京理工大学信息管理系教授,博士生导师;周清清(1990-),女,南京理工大学信息管理系博士研究生。