APP下载

基于标签的协同过滤推荐方法研究

2021-05-21齐晶刘瀛刘艳霞胡美振乐海丰

北京联合大学学报 2021年2期
关键词:个性化推荐协同过滤

齐晶 刘瀛 刘艳霞 胡美振 乐海丰

[摘 要] 摘要传统基于物品的协同过滤算法由于物品相似度矩阵稀疏,推荐准确率不高。针对这一问题,提出一种基于标签和改进杰卡德系数的协同过滤算法,进行电视节目个性化推荐。首先,爬取相关信息对原始数据进行扩充,并利用统计学方法对时间特征进行归一化处理,计算用户偏好系数;然后,统计出现次数较高的类别作为推荐类别标签,并利用改进的杰卡德系数构造标签相似度矩阵;最后,根据推荐类别标签的用户偏好系数计算节目的推荐系数。实验结果表明,基于标签的协同过滤算法可以降低稀疏矩阵对推荐准确率的影响,相比基于物品的协同过滤算法,准确率提高了5%,召回率提高了3.1%。另外,使用改进的杰卡德系数计算相似度,减少了热门标签对推荐系统的影响,进一步将准确率提高了5%,召回率提高了2.3%。

[关键词] 关键词协同过滤;标签类别相似度;个性化推荐;惩罚系数;杰卡德系数

[中图分类号] 中图分类号TP 391.3[文献标志码] A[文章编号] 1005-0310(2021)02-0047-06

Research on Collaborative Filtering Recommendation Method Based on

Labels

Qi Jing1,Liu Ying2,Liu Yanxia2,Hu Meizhen2,Le Haifeng3

(1. Tourism College, Beijing Union University, Beijing 100101, China; 2. College of Urban Rail Transit and Logistics, Beijing Union University, Beijing 100101, China; 3. College of Robotics, Beijing Union University, Beijing 100101, China)

Abstract: 摘要In the era of big data, traditional itembased collaborative filtering algorithms lead to the sparseness of item similarity matrix, and the recommendation accuracy rate is not high. To solve this problem, a labelbased collaborative filtering algorithm is proposed. First, this algorithm expands the original data by crawling the relevant information, and uses statistical methods to normalize the time characteristics to calculate the user preference coefficient. Next, it selects those with higher occurrences from all crawled categories as recommended category labels. The category constructs a label similarity matrix using the improved Jaccard coefficients that incorporate the penalty coefficients. Finally, the program recommendation coefficients are calculated according to the user preference coefficients of the recommended category labels. The experimental results show that the

labelbased

collaborativefiltering algorithm can reduce the influence of sparse matrix on the recommendation accuracy. Compared with the

itembased collaborative filtering algorithm,

the accuracy rate increases by 5% and the recall rate increases by 3.1%. In addition, using the improved Jaccard coefficient to calculate the similarity can reduce the influence of hot tags on the recommendation system, and further improve the accuracy rate by 5% and the recall rate by 2.3% on the labelbased collaborative filtering algorithm.

Keywords: 關键词Collaborative filtering; Label category similarity; Personalized recommendation; Penalty coefficient; Jaccard coefficient

0 引言

北京联合大学学报2021年4月第35卷第2期齐 晶等:基于标签的协同过滤推荐方法研究

随着电视“互联网+”和电子商务的兴起,个性化推荐有了突飞猛进的发展,相关研究主要集中在推荐算法和推荐应用,不同类型的物品使用不同的推荐算法来达到既定的目的[1]。在推荐算法中,最常用的经典推荐算法包括协同过滤推荐算法、基于内容的推荐算法和基于数据挖掘的推荐算法等[2]。协同过滤推荐算法是通过利用客户的以往记录信息建立数学模型,然后对客户进行推荐;基于内容的推荐算法是根据客户对内容的喜好建立客户兴趣模型,进一步求解内容-客户相似度进行产品推荐[3];基于数据挖掘的推荐算法利用从大数据中挖掘到的相关知识对客户进行推荐。随着客户和商品的数目不断增长,计算的评价矩阵面临稀疏性问题。为解决这个问题, Sarwar等提出利用奇异值分解评价矩阵,压缩矩阵维度[4]。Yu等用信息理论的方法衡量客户和商品相关度,采用特征加权求和方法改进传统推荐算法,可以提高推荐的准确率和速度[5]。于洪等则利用客户时间信息作为权重改进传统方法,可以有效解决对新客户的推荐问题[6]。黄创光等提出了不确定性近邻用户的方法,可在不同应用场景下自适应选择近邻用户[7]。

在传统的推荐算法中,客户对商品信息的记录(例如评分,很多用户不会主动对商品进行评分)往往很少,这就会导致数据非常稀疏,影响系统推荐的准确率,因此,能否挖掘出有用且充分的信息成为推荐准确率的关键。徐德智等将推荐算法和云模型相结合,用云模型计算用户之间相似度,可以提高推荐系统的准确率[8]。张光卫等融合知识处理机制来计算用户相似度,利用云模型在知识之间进行定性和定量的转换,进一步提高用户之间相似度的准确性[9]。蒋翠清等将PLSA模型应用在用户相似度计算上,把用户信息映射到更加明确的语义上,解决了用户信息语义模糊问题[10]。Kim等则利用聚类方法改进传统算法,扩展了传统算法的应用性[11]。然而,这些算法都没有讨论热门物品或者活跃用户对推荐结果准确率的影响,并融合相关信息进行推荐。

本文提出一种基于项目标签的协同过滤算法,并利用惩罚系数减少热门标签对相似度矩阵计算的影响,将推荐项目的类别与用户偏好系数相融合计算项目推荐系数,完成节目推荐。算法分为数据处理、特征提取和算法改进3个阶段。

1 数据处理

1.1 数据集

数据来自机顶盒用户实际观看记录,统计时间从2017年4月到10月,数据项包括用户ID、观看开始时间,观看结束时间、星期、清晰度、节目名称等。部分数据集如表1所示。

1.2 数据预处理

在数据挖掘前须对原始数据进行预处理,以便后期特征提取和建模。预处理步骤如下:

1) 基于物品的协同过滤算法相似度矩阵非常稀疏,影响推荐准确度

。本文嘗试基于标签的协同过滤算法,根据数据集中的节目名称爬取节目类型标签,补充数据集信息。

2) 将同一用户在不同时间段观看的同一节目时间进行累加合并。如表1中,用户10290在不同时间段观看《小公主苏菲亚》,将其观看时间相加得到此用户观看该节目的总时间。

3) 将爬取到的类别标签与数据集中相应的节目进行匹配,建立标签字典,记录所有标签出现的频率,排除出现次数过低的标签。

4) 利用融合以后的总时间计算用户偏好系数(计算过程在2.1节中说明)。

5) 在用户偏好系数中,设置阈值为0.12,即观看时间为5分钟,排除小于阈值的观看记录。

6) 在清洗过的数据集中随机抽取80%作为训练集,20%作为测试集,分别用来训练和评估模型。数据预处理结果如表2所示。

2 特征提取

2.1 用户偏好系数计算

用户对节目的评分是其偏好程度最直观的反映,遗憾的是多数用户的评分项是缺失的,巨大的稀疏性导致评分项并不能反映每个用户的

偏好系数。本文根据用户对每个节目的观看时长计算其偏好系数,如式(1)所示。

Pi=Tei-Tsi。(1)

其中,Tei是用户观看第i(i[1,n])个节目的结束时间,Tsi为用户观看第i个节目的开始时间。为使用户观看时长具有可比性,便于计算推荐系数,须进行标准化和归一化处理,如式(2)和(3)所示。

Qi=Pi-μσ。(2)

Ni=Qi-QminQmax-Qmin。(3)

其中,μ为全部用户观看节目时长的均值,μ=ni=1pin;σ为标准差,σ=1nni=1(pi-μ)2;Ni为归一化后的偏好系数。

2.2 标签相似度矩阵

将所有用户观看的电视节目预先划分到不同的类别标签中,构造一棵类别-节目树,如图1所示。属于同一类别的节目相似度显然高于属于不同类别之间的节目。

1) 构建用户-标签矩阵。统计每个用户观看过的类别标签,看过的标记为1,没看过的标记为0。部分用户-标签矩阵如表3所示。

2) 构建标签-标签矩阵。利用杰卡德系数计算两个不同类别标签之间的相似度方法为

J(A,B)=A∩BA∪B。(4)

其中,A、B为不同的标签类别。A∩B表示在用户-标签矩阵中,这两个标签类别同时被标注为1的用户总数;A∪B表示在用户-标签矩阵中,这两个标签类别的任何一个或两个被标注为1的用户总数。例如,对于表3中4个用户而言,剧情和喜剧之间A∩B=1, A∪B=4,相似度约为0.25。对于相同类别,即将标签-标签矩阵中的对角线数值设置为0。针对全部用户,采用传统杰卡德系数计算相似度时,没有考虑热门物品对计算结果的影响,会影响推荐系统的准确率,计算结果如表4所示。

在计算物品相似度时,加入惩罚因子,如式(5)所示,以减少热门物品对计算结果的影响,计算结果如表5所示。

J(A,B)=A∩BA∪B×1A∪B。(5)

以用户2看过的类别标签(喜剧)为例,在标签-标签矩阵中,与喜剧标签相似度最高的两个标签分别为剧情和动作。对比表4和表5发现,喜剧与剧情类别标签相似度降为原来的6.63%,喜剧与动作类别标签相似度降为原来的8.16%,喜剧与动画类别标签相似度降为原来的8.18%。明显可以看出,加入惩罚因子后,与热门标签相关的类别相似度降幅最大。据此进行电视节目推荐,可以避免热门标签对电视节目推荐所占权重过大的问题。实验表明,改进杰卡德相似系数可以提高推荐系统的准确率和召回率。

3 算法改进

利用傳统算法推荐节目时,先基于用户观看过的节目信息,再根据节目-节目相似度矩阵,直接选择K个相似度较大的节目推荐,并忽略已观看的节目。基于标签的协同过滤算法不同于传统基于物品的协同过滤算法,除了选择K个相似度较大的新标签类别进行预推荐外,也不忽略已观看的标签类别,因为属于这类标签的新节目更值得向用户推荐。

3.1 新标签类别的节目推荐

向用户推荐新标签类别节目的主要过程分两步:

1) 计算新标签和用户已观看标签类别间的相似度。对于测试集D中的某用户Ui(UiD),根据其已观看的类别标签信息,在标签-标签矩阵

S中选择与其观看过的标签Xj相似度排名前k个的标签类别,作为预推荐标签。这些标签类别和用户Ui观看过的标签类别Xj之间的相似度系数为Sxj,ki。

2) 计算节目推荐系数。对于预推荐的标签类别ki,统计训练集T中所有用户Tu对属于ki标签类别的节目m的偏好系数λkim,并从大到小排序。假设λkim1≥λkim2≥λkim3≥λkim4≥λkim5≥...,选择前5个节目m1,m2...,m5进行推荐,推荐系数Rmj为

Rmj=Sxj,ki×λkimj。

(6)

3.2 已观看标签类别的节目推荐

对于用户已观看标签类别的节目推荐过程也分两步:

1) 计算已观看标签类别的影响因子。从测试集D中选择某用户Ui(UiD), 统计其所有已观看的标签类别X,并建立字典dict{Xj:nj},其中,XjX,nj为Xj在X中出现的次数。已观看标签类别对于推荐节目的影响因子j为

j=nj/n。(7)

其中,n为用户Ui观看所有节目标签类别的总次数。

2) 计算节目推荐系数。对于已观看标签类别的节目推荐系数为

Rmj=j×λxjm。(8)

其中,λxjm为用户Tu对已观看标签Xj中节目m的推荐系数。

3.3 选择节目完成推荐

对上述得到的推荐系数Rmj从大到小排列,将前N个推荐系数所对应的电视节目iN={im1,im2,...,imN} 推荐给用户Ui。

4 实验结果及分析

4.1 评价指标

推荐系统的评测指标很多,常用的有平均误差(MAE)、准确率(Precision)和召回率(Recall)。通常在离线环境下采用预测准确率来评测推荐系统预测用户行为的能力。本文基于标签的协同过滤算法采用准确率与召回率来度量,计算方法分别如式(9)和(10)所示。

P=u∈UR(u)∩T(u)u∈UR(u)。(9)

c=u∈UR(u)∩T(u)u∈UT(u)。(10)

其中,R(u)表示在训练集上为用户U推荐出的节目集合,T(u)表示用户U在测试集上观看过的节目集合。

4.2 实验参数选择

相似度较高的标签类别数量(k)的选择非常重要,直接影响模型推荐准确率。在基于标签的协同过滤算法中,分别选择k=1,2,3,4,5,6进行实验。实验表明,当k=2时推荐系统准确率和召回率相对较高,分别如图2和3所示。

4.3 实验结果比较

为验证改进算法的效果,对传统基于物品的协同过滤算法和本文所提出的基于标签类别的协同过滤算法进行了实验对比,准确率和召回率结果如图4所示。

从图4中可以看到,基于标签的协同过滤算法比传统基于物品的协同过滤算法,在准确率和召回率上都有更好的表现,准确率从10%提高到15%,召回率从13%提高到16.1%。这主要是因为改进算法降低了矩阵稀疏程度,更有利于提升推荐系统的准确率和召回率。

另外,改进杰卡德相似度系数对推荐系统性能和评价指标的影响如图5所示。

从图5可知,利用改进杰卡德系数计算标签-标签相似度矩阵,可使推荐系统的准确率和召回率进一步提升,其中,准确率提高了5%,召回率提高了2.3%。这主要是因为在改进杰卡德系数中加入了惩罚因子,对热门标签进行惩罚,减少了它对推荐结果的影响。

5 结束语

电视节目推荐不同于其他推荐系统,其推荐范围大、用户偏好广、数据更加分散。这些特点使得电视节目推荐存在更大的挑战,受到了很多学者关注。在协同过滤算法中,相似度矩阵的计算直接影响推荐系统性能[12]。本文提出的基于标签的协同过滤算法,对标签进行预推荐,大大减小了物品相似度矩阵的计算维度。另外,为了降低热门标签对推荐结果的影响,加入惩罚因子改进杰卡德系数。实验结果表明,基于标签的协同过滤算法和加入惩罚因子的杰卡德系数,相比传统算法在准确率和召回率上都有一定程度的提高。

[参考文献]

参考文献内容

[1] 王强.基于协同过滤的个性化推荐算法研究及系统实现[D].成都:西南交通大学, 2017.

[2] 嵇晓声,刘宴兵,罗来明.协同过滤中基于用户兴趣度的相似性度量方法[J].计算机应用,2010,30(10):2618-2620.

[3] 刘青文.基于协同过滤的推荐算法研究[D]. 合肥:中国科学技术大学,2013.

[4] SARWAR B,KARYPIS G,KONSTAN J, et al. Itembased collaborative filtering recommendation algorithms[C]//International Conference on World Wide Web. Hong Kong:ACM,2001:285-295.

[5] YU K,XU X,ESTER M,et al.Feature weighting and instance selection for collaborative filtering:An informationtheoretic approach [J].Knowledge & Information Systems, 2003, 5(2):201-224.

[6] 于洪,李俊華.一种解决新项目冷启动问题的推荐算法[J].软件学报,2015, 26(6):1395-1408.

[7] 黄创光,印鉴,汪静,等.不确定近邻的协同过滤推荐算法[J].计算机学报,2010, 33(8):1369-1377.

[8] 徐德智,李小慧.基于云模型的项目评分预测推荐算法[J].计算机工程,2010, 36(17):48-50.

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

[10] 蒋翠清,张玉,陆文星,等. 基于标签的大众标注系统协同推荐算法[J].情报学报,2011,30(11):1152-1157.

[11] KIM T H, YANG S B. An effective recommendation algorithm for clusteringbased recommender systems[C]// AI 2005: Advances in Artificial Intelligence. Springer Berlin Heidelberg,2005: 1150-1153.

[12] 赵培.面向家庭用户的电视节目动态推荐方法研究[D].合肥:合肥工业大学, 2017.

(责任编辑 责任编辑白丽媛)

猜你喜欢

个性化推荐协同过滤
基于远程教育的个性化知识服务研究
图书推荐算法综述
改进的协同过滤推荐算法
基于链式存储结构的协同过滤推荐算法设计与实现
基于相似传播和情景聚类的网络协同过滤推荐算法研究
个性化推荐系统关键算法探讨
基于协同过滤算法的个性化图书推荐系统研究
混合推荐算法在电影推荐中的研究与评述
文本数据挖掘在电子商务网站个性化推荐中的应用