雷曼 龚琴 王纪超 王保群
摘 要:针对传统协同过滤推薦算法中由于相似度计算导致推荐精度不足的问题,提出一种基于标签权重相似度量方法的协同过滤推荐算法。该方法首先,通过改进当前算法中标签权重的计算,并构成用户标签权重矩阵和物品标签权重矩阵;其次,考虑到推荐系统是以用户为中心进行推荐,继而通过构建用户物品关联矩阵来获取用户对物品最准确的评价和需求;最后,根据用户物品的二部图,利用物质扩散算法计算基于标签权重的用户间相似度,并为目标用户生成推荐列表。实验结果表明,与一种基于“用户项目用户兴趣标签图” 的协同好友推荐算法(UITGCF)相比,在稀疏度环境为0.1时该算法的召回率、准确率和F1值分别提高了14.69%、9.44%、17.23%。当推荐项目数量为10时,三个指标分别提高了17.99%、8.98%、16.27%。结果表明基于标签权重的协同过滤推荐算法可有效提高推荐结果。
关键词:用户标签权重;物品标签权重;推荐系统;协同过滤;物质扩散
中图分类号: TP183
文献标志码:A
文章编号:1001-9081(2019)03-0634-05
Abstract: Aiming at the problem that the recommendation accuracy is not good enough due to the similarity calculation in traditional collaborative filtering recommendation algorithm, a collaborative filtering recommendation algorithm based on the similarity measurement method of tag weight was proposed. Firstly, the calculation of tag weights in existing algorithm was improved to construct a user-tag weight matrix and an item-tag weight matrix. Secondly, as the recommendation system is based on the user-centered recommendation, the most accurate evaluation and demand of the users were obtained by constructing a user-item association matrix. Finally, according to the user-item bipartite graph, the similarity between users based on the label weight was calculated by the material diffusion algorithm, and the recommendation lists were generated for the target users. The experimental results show that compared with UITGCF (a hybrid Collaborative Filtering recommendation algorithm by combining the diffusion on User-Item-Tag Graph and users personal interest model), when the sparsity environment is 0.1, the recall, accuracy, F1 score of the proposed algorithm were respectively increased by 14.69%, 9.44% and 17.23%. When the recommendation item number is 10, the three indicators respectively were increased by 17.99%, 8.98%, and 16.27%. The results show that the collaborative filtering recommendation algorithm based on tag weight effectively improves the recommendation results.
Key words: user-tag weight; item-tag weight; recommendation system; collaborative filtering; material diffusion
0 引言
近年来,随着物联网、云计算和社会网络等技术的迅猛发展,网络空间中所蕴含的信息量呈指数级增长[1]。在大数据时代,信息消费者难以在海量数据中有效挖掘信息,推荐系统应运而生。推荐系统的主要作用是通过从大量数据中检索最相关的信息和服务来减少信息过载,从而提供个性化的服务。其在学术界和工业界取得了大量相关研究成果。推荐系统主要应用于在线电子商务网站[2](如eBay、Amazon、阿里巴巴、亚马逊、豆瓣等),社交网络[3](如Twitter、Facebook、新浪微博等),信息检索[4](如Google、GroupLens、百度等),以及移动应用,个性化邮件,基于位置的服务等各个领域。
推荐系统的核心是推荐算法,目前推荐算法主要分为:基于内容的推荐算法、基于用户的协同过滤推荐(User-Based Collaborative Filtering, UBCF)算法[5]以及基于项目的协同过滤推荐(Item-Based Collaborative Filtering, IBCF)算法[6]。其中,协同过滤(Collaborative Filtering, CF)推荐算法是目前最广泛应用和研究的推荐技术[7]。相似度计算是协同过滤算法的重要环节[8-11]。相似度的计算方法有许多种,目前应用最多的皮尔森相关系数或者余弦相似度[12],然而根据具体问题的不同,各种相似度的适应程度也不一样。传统的推荐算法太过依赖用户评分信息,忽略标签信息,为解决此问题文献[13]考虑了项目之间的标签信息,结合KNN(K-Nearest Neighbors classification)算法和Slope One提出的融合项目标签相似性的协同过滤(M2_KSP)推荐算法。并计算项目中最重要的标签之间相似性来构成项目最近邻的项目集。文献[14]提出了一种新颖的用户推荐框架User Rec(User Recommendation),对用户标签图进行社区发现来构建用户兴趣模型,利用KL(Kullback-Leibler)距离来计算用户之间的相似度。文献[15]提出一种基于“用户项目用户兴趣标签图” 的协同好友推荐算法——UITGCF(a hybrid Collaborative Filtering recommendation algorithm by combining the diffusion on User-Item-Tag Graph and users personal interest model)。通过构建“用户项目标签”三部图物质扩散算法计算用户相似度,以及用户和标签之间的联系用KL距离计算用户相似度。最后结合两者相似度结果综合得到用户间相似度。但上述文献中仅仅只是利用了用户的评价行为以及用户标签标注行为计算用户间相似度,并没有深入挖掘用户、物品与标签之间的权重关系,以及标签之间的关联关系对用户和物品的影响。
在传统的推荐算法基礎上,研究者提出大量改进方法,虽然一定程度上解决了相关问题并改善推荐系统性能,但仍存在不足之处。用户的标签信息没有合理地体现出用户兴趣偏好,应通过为每个标签赋予相应的权值,来描述用户对标签的偏好程度。在现实推荐中,大多的推荐平台都是为物品匹配了相应的标签,而用户主动为物品打的标签信息越少。在此基础上,也应根据标签特征属性,来为用户标签和物品标签匹配相应的权重。该方法比传统的方法能降低用户客观因素带来的评分影响。
本文围绕协同过滤推荐算法相似度的分析与改进,提出一种基于标签权重(Tag weight)的协同过滤(CF)推荐算法TagW_CF(Tag Weight_Collaborative Filtering)。该方法首先通过社交平台上获取到的用户标签信息和物品标签信息,根据一定的规则计算用户标签的权重和物品标签的权重,得到用户标签权重矩阵和物品标签权重矩阵。在推荐系统中,最终目标是为用户推荐物品,继而得到用户物品的标签权重矩阵。最后利用物质扩散算法计算用户间相似度,为目标用户生成推荐列表,提高推荐性能。为验证本文算法的有效性,在豆瓣网上抓取的数据集进行测试,该算法在召回率、准确率和F1值3个指标上均表现出较好的推荐效果。
1 标签权重
针对现有研究考虑标签因素不周全,在数据信息中有大部分的用户不愿意花时间给物品打上标签。即使有的用户给物品打上标签,由于标签是用户自主用来标注物品和个性化分类的,在语义上可能存在同义性、歧义性和不确定性[16]。所以很多的网站自动给物品匹配标签,以节约用户打标签的时间开销。在已有的标签集合中每个物品都有对应的标签属性,通过加上标签权重用来描述用户的标签偏好、物品的标签特征。同时,该方法还能最大化降低客观因素对用户打分的影响,提高用户评分的准确性。
1.1 用户标签权重矩阵
在电子商务网站上,一般通过用户对物品的评分获取用户满意程度,评分范围为1~5分,用户评分越高代表用户满意度越高。基于用户标签权重是指用户对物品的评分偏高,则认为该用户对其物品具有较高评分的标签特征更为偏重,然后按照一定的规则提高评分。经过多次的迭代后,得到用户对物品的综合评分,又结合用户使用标签的频率,得到最后的用户标签权重矩阵。具体方法步骤如下。
1.2 物品标签权重矩阵
基于物品标签权重是把物品标签特征的评分作为标签权重,再结合标签特征的关联关系得到物品标签权重矩阵。具体步骤如下。
步骤1 计算标签关联关系。一个物品可能会有多个标签共同标注,考虑描述该物品的标签与标签间的关联关系,本文通过多标签共同标注物品的次数和多标签共同标注的总数之比表示共现关系,以及标签之间的密切度,得到最后多标签关联关系。所对应的标签共现关系计算如式(4):
步骤2 计算物品标签权重。物品被描述的次数较多的标签应被赋予更高的权重。在这里简单地把标签特征下的评分作为特征权重,并将物品所有评分累加到该物品的标签评分下作为标签权重。然后同样归一化处理评分,最后再加上标签关联关系得到最后物品具有标签特征下的标签权重。计算公式如下:
2 基于标签权重的二部图物质扩散算法
基于标签权重的二部图物质扩散算法是利用物质能量扩散的过程来获取用户间相似度,本文主要是利用基于标签权重的“用户物品”二部图来计算用户间相似度。在推荐系统中,为用户提供满意的和感兴趣的物品才是推荐系统的目标。因此,首先根据“用户标签”权重矩阵和“物品标签”权重矩阵相乘,得到基于标签权重的“用户物品”矩阵。当两者相乘激励用户对于该物品下标签权重偏高的感兴趣的物品,减弱用户对该物品下标签权重偏低的不感兴趣的物品,其次构建一个“用户物品”的二部图。基于该矩阵的基础下,提出优化的二部图物质扩散算法计算用户间相似度,提高相似度的计算方法,进一步提高预测结果的准确性。
2.1 基于标签权重的用户物品矩阵
由上述方法得到的用户标签权重矩阵可以很好地解释用户更偏好某些特征标签的物品,而物品标签权重矩阵准确地描述了物品更属于哪些标签属性,因此,结合Wu,t和Wi,t可以更细分地描述用户更喜欢某些标签特征下的某些物品,使得为用户推荐更为准确的物品。例如,假设电影的标签特征有“科幻,奇幻,剧情,喜剧,悬疑,爱情,动作,冒险”,某用户对这些标签下的权重为{0.35,0,0.25,0,0.1,0.1,0.2,0}。可以理解为用户更喜欢标签为“科幻,剧情,动作”的电影。如电影《复仇者联盟3》的标签特征为“科幻,动作,奇幻,冒险”,计算出电影标签权重为{0.3,0.4,0.2,0.1},由此可以看出该电影更偏向“科幻、动作”的标签特征。电影《盗梦空间》的标签特征为“科幻,悬疑,剧情,冒险”,对应的标签权重为{0.3,0.2,0.4,0.1},更偏向“科幻、剧情”的标签特征。可以看出《盗梦空间》这部电影更适合被先推荐给该用户,因为剧情所占的权重大于动作的权重。因此相比之下,为该用户推荐列表上《盗梦空间》先于《复仇者联盟3》。
2.2 二部图物质扩散算法
物质扩散算法又称资源分配算法,主要是模拟了物理学中的物质扩散过程。当物质浓度有一定的差异时,高浓度的区域分子向低浓度的区域进行扩散,直到区域浓度达到平衡状态结束。在推荐系统中把目标用户产生过购买行为的物品看成低浓度区域,目标用户为高浓度区域的分子。若目标用户的资源为1个单位,每个被该用户购买过的物品将平均分配1个单位的资源。该算法能够解决个性化推荐系统中的用户相似性问题,提高用户相似度的准确性。由上述矩阵Wu,i可以构建一个基于标签权重的二部图,图中节点是用户和物品。具体物质能量扩散的过程为目标用户u将其自身的能量资源值平均分配到用户所感兴趣的物品,同时物品将获取到的能量平均分配到对其感兴趣的用户上。首先初始化资源分配,目标用户为1,其余为0。物品i从用户u分配到的能量资源为eiu:
其中:wu,i为“用户物品”矩阵中的标签权重值,k(u)为用户u在“用户物品”二部图中的度,au,i为二部图中的度为1表示用户u感兴趣的物品,0为用户不感兴趣的物品。然后资源能量回流,采用物品从用户分配到的能源资源的分配和累加原理,将物品收到的资源再扩散给其用户集合。能量从物品再流回到用户u,设用户u到用户v∈U能量分配的标签权重Suv表示为:
此时,Suv体现出目标用户u与用户v之间的相似度。根据用户相似群体对某物品的评分,预测目标用户对该物品的评分。再通过评分高低排序为该用户生成Top-N推荐列表。预测评分的计算公式为:
3 实验结果与分析
3.1 实验数据与评价指标
本文实验采用豆瓣数据集完成,该数据集是豆瓣网公开API抓取的真实数据。豆瓣网是一个提供关于书籍、电影、音乐等作品的评论网站,初始数据集包含了415个用户对2045部电影的评分信息,标签数为4012。在所有用户中,每个用户至少对20部电影进行过评分,每部电影也至少被20个用户评价过,评分范围为1~5分。
本实验采用的评价指标为:召回率(Recall)、准确率(Precison)和F1值。
3.2 Δr参数对推荐性能的影响
在计算用户标签权重时,本文按照一定规则提高用户评分来表示用户对标签的评分。通过此评分和标签使用频率作为用户对标签的权重,Δr决定了用户标签权重的值。在实际实验中,用户评分范围为1~5,评分阈值只能选取1~5的整数。通过实验的验证,本文选取评分阈值L=4。
3.3 不同训练集的实验对比分析
为了验证本文提出的推荐算法的有效性,在选定参数L=4,Δr=0.4时,选择基于用户的协同过滤(User-Based Collaborative Filtering, UBCF)推荐算法、文献[15]的融合项目标签相似性的协同过滤推荐算法(M2_KSP)以及文献[17]的基于“用户项目用户兴趣标签图” 的协同好友推荐算法(UITGCF)与本文算法(Tagw_CF)分别从召回率Recall、准确率Precision以及F1值进行对比。
在实验中,将数据分为训练集和测试集。训练集用来训练模型中的参数,测試集用来验证准确性。通过改变训练数据集占整个数据集的数量,观测各个算法在3个指标上的推荐结果。引入变量training ratio(0.1~0.9)表示训练集占整个数据集的百分比。训练集比例越低数据越稀疏,反之亦然。实验结果如图2所示。从图2中的结果可以看出,本文算法在3个指标上都好于基于用户的协同过滤推荐算法(User-based collaborative filtering, UBCF)、M2_KSP和UITGCF(a hybrid collaborative filtering recommendation algorithm by combining the diffusion on user-item-tag graph and users personal interest model)。UBCF算法和M2_KSP算法推荐效果明显低于本文算法,而UITGCF算法推荐效果与本文最为接近。在训练集比例为0.1时,TagW_CF比UBCF、M2_KSP、UITGCF的召回率分别提升了343.68%、67.29%、14.69%。在训练集比例为0.3时,TagW_CF召回率比UITGCF算法低7.43%;但在整体性能上,本文算法略高于该算法。在准确率对比实验中,TagW_CF比UBCF、M2_KSP、UITGCF高75.75%、34.47%、9.44%。当训练集比例为0.4时,UITGCF与TagW_CF的F1值接近。在训练集比例为0.1时, TagW_CF的F1值比UBCF、M2_KSP、UITGCF高199.60%、49.64%、17.23%。
3.4 Top-N推荐的实验对比分析
在推荐系统中,常见的应用是Top-N推荐。本实验比较了上述各算法在不同推荐列表长度N值对推荐性能的影响,实验选取各算法在最佳状态时的结果进行Top-N推荐比较。
在图3中,对比了4种算法在豆瓣数据集上的实验结果。随着N值增大,4种算法均呈一样的趋势。本文分别取N=10,50,95将UBCF、M2_KSP、UITGCF算法在召回率、准确率、F1值作一个综合比较。UITGCF是与TagW_CF在推荐性能最为接近。在N=10,50,95时,与UITGCF相比,TagW_CF的召回率分别提高17.99%,10.68%,8.73%;TagW_CF的准确率提高8.98%,6.54%,4.59%;TagW_CF的F1值提高16.27%,8.57%,6.10%。整体上,本文提出的基于标签权重的协同过滤推荐算法在召回率、准确率和F1值这3个评价指标上比各算法有一定的提高。分析结果产生的原因,TagW_CF算法的优越性体现在:
首先,本文利用标签信息和评分信息作为数据源,传统的基于用户的协同过滤算法(UBCF)仅使用单一的用户评分数据,并不能有效分析用户行为偏好。在很大程度上充分利用标签信息使算法具有更优的推荐性能。
其次,构建用户标签权重、物品标签权重矩阵。不仅考虑用户对标签产生的直接行为,而且可较准确描述用户与标签权重和物品与标签权重的间接关系。而UITGCF算法忽略此间接关系,对用户偏好分析粒度略差,推荐效果略低于本文算法。
最后,为得到收敛的用户物品标签权重,将更新后的用户标签权重和物品标签权重迭代相乘,可更准确得到用户的偏好。再利用改进的物质扩散方法计算用户间相似度,并提高了推荐质量。
4 结语
本文算法利用标签信息以及评分信息构建了用户标签权重矩阵和物品标签权重矩阵,更准确地描述出用户对物品的评价和需求。在推荐系统中,通常是给用户一个个性化的Top-N推荐列表,因此将两矩阵相乘来获取用户与物品之间的联系。最后,利用改进的物质扩散方法选取目标用户的候选集,根据候选集评分行为预测目标用户的物品评分,最后根据评分高低为目标用户生成推荐列表。实验结果表明在Top-N推荐对比实验中,该算法能有效提高推荐性能。在整体上,本文算法在召回率、准确率以及F1值上均优于对比算法。