APP下载

融合类目偏好和数据场聚类的协同过滤推荐算法研究

2023-02-24芳*

现代情报 2023年1期
关键词:类目聚类矩阵

马 鑫 王 芳*

(1.南开大学商学院,天津 300110;2.南开大学网络社会治理研究中心,天津 300110)

伴随信息通信技术的快速发展,数据呈指数式扩增,信息过载问题日益加剧[1]。为了帮助信息消费者从海量信息中获取有价值信息以及信息提供者提供高质量信息,推荐系统应运而生[2]。作为搜索引擎的重要补充,推荐系统能够通过分析用户历史数据,构建用户兴趣模型,对满足用户模糊的、不明确的信息需求具有重要意义,已被广泛应用于电子商务[3]、新闻传媒[4]、搜索引擎和文献信息获取[5]等诸多领域。

目前,推荐系统的常用推荐算法包括基于内容的推荐[6-7]、基于知识的推荐[8]、协同过滤推荐和混合推荐[9-10]。其中,基于内容的推荐利用项目固有的内容属性向用户产生推荐。基于知识的推荐利用用户的显示需求和项目领域知识产生推荐。混合推荐通过两种及以上推荐算法的组合为用户产生推荐。相比之下,协同过滤推荐利用用户和项目的交互评分为用户产生推荐,无需依赖项目的内容属性和领域知识,具有推荐项目类型多样、数据获取和技术复现难度小、个人信息安全性高等优势,成为众多推荐算法中最经典和最通用的一种推荐算法。协同过滤推荐包括基于模型的推荐和基于近邻的推荐[11-13]。基于模型的推荐通过算法模型(关联规则、回归、图等)预测为用户产生推荐。基于近邻的推荐通过用户或项目之间的近邻关系为用户产生推荐,分基于近邻用户的推荐和基于近邻项目的推荐两种。其中,基于近邻用户的协同过滤推荐(User-based Collaborative Filtering Recommendation,U-CFR)是最早为推荐系统开发的推荐算法之一[14]。

1)问题描述

准确、高效的推荐算法是推荐系统的核心,决定了推荐效果的优劣。对于U-CFR算法而言,数据稀疏和计算可扩展问题是最具挑战性的两个问题。为了说明这两个问题,对本研究采集的UserCats(10G)数据集进行了一些初步的实验与分析。

①评分数据稀疏。随机从UserCats数据集中抽取10名用户的历史数据,以研究数据稀疏问题。图1(a)和图1(b)分别绘制了10名用户的用户—项目评分矩阵(User-Item Rating,UIR)评分分布和交互次数,用户对项目进行消费且评分时记为一次交互。结果表明,多数用户仅对1 612个项目中的小部分项目感兴趣[13],最高交互次数为86次(约为项目总量的5.33%),最低交互次数为21次(约为项目总量的1.30%),UIR矩阵稀疏度为97.25%,评分数据极为稀疏。

②计算可扩展性差。从相似度计算次数和推荐耗时两个方面研究算法的可扩展性。图1(c)显示随着用户数的增加,相似度计算次数呈指数式增长。类似的,从图1(d)中可以发现,U-CFR算法的耗时随用户数的增加也呈指数式上升,且变化率更大。结果表明,随着用户数的增加,相似度计算次数和推荐耗时呈指数式上升,U-CFR算法的计算可扩展性将显著下降[2]。

尽管近年来已在U-CFR算法的基础上提出了许多改进算法,例如:用于缓解数据稀疏的基于链接开源数据的推荐[15]和基于图随机游走的推荐[16]等,用于提升计算可扩展性的基于交替最小二乘的推荐[17]和基于划分聚类的推荐[2]等,但算法仍然受到数据稀疏和计算可扩展性问题的限制。一方面,现有缓解数据稀疏性的工作本质上是有限的,受附加数据获取成本、用户隐私保护和归纳偏差等问题制约,且忽视了离散有限评分(例如:5星离散评分)对用户真实偏好的表示能力;另一方面,相比数据稀疏,针对计算可扩展性问题的研究较为欠缺,且优化模型易受超参数和可解释性问题影响,性能波动较大。因此,对U-CFR算法的数据稀疏问题和计算可扩展问题的研究仍然是一个有价值且具有挑战性的任务。

图1 用于说明数据稀疏和计算可扩展问题的初步结果

2)研究贡献

受类目偏好、数据场聚类和评论情感挖掘启发,针对U-CFR算法存在的数据稀疏和计算可扩展性问题,本研究提出了一种融合类目偏好和数据场聚类的协同过滤推荐算法(Category Preferred Data Field Clustering based Collaborative Filtering Recommendation,CPDFC-CFR)。该算法首先基于评论情感构建UIS矩阵,并利用类目偏好比将高维情感矩阵映射为低维用户—类目偏好矩阵(User-Category Preference,UCP)。然后,利用数据场聚类对UCP矩阵中的用户进行分组,按同簇用户间的综合相似度大小确定目标用户最近邻域。最后,利用最近邻域用户的综合相似度和非共有情感值预测未知项目情感,按预测值大小为目标用户生成Top-n项目推荐列表。为了进一步验证算法性能,在两个真实的电商数据集上进行了对照实验,结果表明,本研究所提CPDFC-CFR算法比U-CFR算法的系列改进算法在准确性和计算效率上有了较为显著的提升。

本文所提CPDFC-CFR算法的主要贡献如下:①增强了用户偏好的表示能力:该算法利用一种基于属性的无监督情感挖掘方法计算所得的评论情感代替用户评分,缓解了有限离散评分偏好表示能力有限的问题,且情感挖掘方法本身不受人工或机器标注情感标签的误差影响;②降低了数据稀疏性:该算法引入了类目偏好和用户语义的概念,并将其应用于用户聚类和相似度计算,缓解了稀疏数据对聚类和相似度计算效果的影响;③提高了计算效率和算法鲁棒性:该算法不仅利用划分聚类降低了用户相似度的计算次数,提高了推荐系统的实时性,而且将数据场作为划分聚类的前置算法,有效解决了随机初始聚类中心等对聚类效果的影响(例如:局部最优、反复迭代等),使算法结果更加稳定。

1 相关研究

1.1 基于近邻用户的协同过滤推荐

作为最早为推荐系统开发的算法之一,基于近邻用户的协同过滤推荐(User-based Collaborative Filtering Recommendation,U-CFR)的核心思想是当一个目标用户需要个性化推荐时,算法能够找到与其兴趣相近的用户,并能够将这些用户喜好的而目标用户未交互过的项目推荐给他。算法原理如图2所示。

图2 基于近邻用户的协同过滤推荐算法原理

如图2所示,在5星评分模式下,假设用户u1为目标用户,喜欢项目1和项目2(评分均为5),用户u2喜欢项目4和项目5(评分均为5),用户u3喜欢项目1和项目2(评分均≥4)。鉴于用户u1和用户u2均喜欢项目1和项目2且不喜欢项目3(评分均≤2),偏好更为相近(r=0.97),用户u1喜欢用户u3偏好的项目6的可能性更大,因此推荐系统会将项目6推荐给用户u1。具体计算过程为:

首先利用用户历史评分构建用户—项目评分矩阵(UIR),并计算用户之间的评分相似度,按相似度大小确定与各用户具有相似共同偏好的最近邻用户集,然后结合近邻用户相似度和非共有历史评分对UIR矩阵缺失评分进行预测,最后按预测评分值高低为用户生成个性化项目推荐列表。

1.2 数据稀疏性

关于U-CFR算法数据稀疏问题的研究,主要集中在附加外部数据和隐式图结构两个方面。对于附加外部数据,学者们主要关注如何将在线社区数据或开源数据作为稀疏评分数据的补充,以降低稀疏性对推荐效果的影响。代表性研究有:丁永刚等[18]将社交网络中的社会关系与评分结合,挖掘社交网络好友的历史偏好以缓解评分稀疏;Senthilselvan N等[15]在SVD++模型中加入链接开源数据(Linked Open Data,LOD)构建的用户隐式表示,提出了一种基于LOD的推荐算法。类似的,李浩等[19]将U-CFR算法、基于近邻项目的协同过滤推荐算法和利用项目外部附加数据构建的循环知识图谱相融合,通过实体间的依赖关系来缓解用户评分的稀疏性,以产生高质量推荐。

对于隐式图结构,学者们主要关注如何借助图传递或排序技术利用路径定义用户相似度,取代传统相似度计算,优化稀疏数据推荐表现。代表性研究有:张以文等[20]借助聚类构建用户信任网络,通过网络随机游走量化用户相似度,预测缺失评分并产生推荐;Zengin Alp Z等[16]在多层结构中使用不同类型节点,通过图随机游走提出了一种上下文感知推荐算法。类似的,针对多图融合可能引入的归纳偏差,Wang M等[21]提出了一个多任务多视图的图表示学习框架(M2GRL)来学习Web规模推荐系统中多视图图的节点表示,以应对评分数据的稀疏问题。

尽管上述方法的有效性已被证明,但其在解决数据稀疏问题中发挥的作用本质上是有限的。原因有三:其一,附加外部数据多为开源人口统计信息等个人隐私数据,存在数据滥用和泄露风险,用户的发布意愿较低,数据完整性堪忧[15]。特别是,缺少有关中文场景的链接开源数据库。其二,隐式图结构在为每个用户进行推荐时,均需迭代整个用户—项目二分图至各顶点PR值收敛,时间复杂度极高。其三,受评分规则制约,用户评分与用户喜好之间存在一定偏差,但鲜有研究关注该问题,相似度计算结果易失真。本研究利用评论情感替代用户评分,通过在相似度计算中引入类目偏好和由非隐私数据表示的用户语义偏好的方式应对U-CFR算法的数据稀疏问题。

1.3 计算可扩展性

关于U-CFR算法计算可扩展性问题的研究,主要集中在评分矩阵降维和用户聚类两个方面。对于降低评分矩阵维度,学者们主要关注如何运用矩阵分解算法将高维稀疏UIR矩阵分解为低维用户和项目的稠密矩阵,利用稠密矩阵乘积近似评分矩阵并为用户推荐项目。代表性研究有:Hammou B A等[22]利用矩阵分解分解UIR矩阵,通过结合评论数据计算用户相似度,预测缺失评分并完成推荐;与随机初始化用户和项目特征不同,Zhao J等[23]提出来一种基于属性映射和自编码神经网络的矩阵分解初始化方法,进一步提升了矩阵分解效率。Hu Y等[17]提出了一种改进的矩阵分解方法(Alternating Least Squares,ALS),其采用一个交替的训练程序来获得一组用户和项目的嵌入,通过嵌入点积的形式近似原始UIR矩阵,以此产生推荐。

对于用户聚类,研究人员主要关注如何利用单一或组合聚类算法对用户进行分组,通过创建较少且包含目标用户的聚类簇,缩小最近邻检索范围,提升推荐算法计算效率。代表性研究有:陶维成等[24]利用灰色关联度对用户进行灰色关联聚类,结合近邻用户灰色相似度和非共有评分预测缺失评分并产生推荐;张文等[25]利用谱聚类分别对用户和项目聚类,并根据聚类结果对UIR矩阵中用户和项目位置进行重新调整,通过SVD(Singular Value Decomposition)分解局部稠密分块矩阵,利用施密特变换预测缺失评分。Li J等[2]将Canopy算法作为K-means算法的前置算法,并将输出作为K-means算法的输入(聚类数),因此提升优化聚类效果并降低算法计算耗时。

相比于矩阵分解方法,基于聚类的方法因具有易操作、数据利用率高和结果可解释性较强等优势,成为当下提升U-CFR算法计算效率的研究热点。但是,受聚类矩阵维度和超参数(例如:随机选择的初始聚类中心)问题影响,实际应用中的用户聚类效果并不理想,容易出现计算效率低下和局部最优等情况。本研究从类目偏好角度对用于聚类的UIS矩阵进行降维,并将数据场作为K-means的前置算法,以进一步对推荐算法的计算可扩展性进行优化。

2 融合类目偏好和数据场聚类的协同过滤推荐算法

数据稀疏问题和计算可扩展问题是基于近邻用户的协同过滤推荐算法(User-based Collaborative Filtering Recommendation,U-CFR)优化研究的两个核心问题。为此,学者们借助链接开源数据[15]、图[19]、矩阵分解[17]和聚类[2]等技术方法对U-CFR算法进行了大量的改进研究。但是受用户评分失真、附加数据完整性和安全性差、超参数等问题影响,现有方法对算法准确性和计算效率的提升效果十分有限。

综上所述,本文在U-CFR算法基础之上,提出了一种融合类目偏好和数据场聚类的协同过滤推荐算法(Category Preferred Data Field Clustering Based Collaborative Filtering Recommendation,CPDFC-CFR)。该算法首先采用评论情感构建用户—项目矩阵,修正评分引入的用户偏好表示偏差。然后,引入类目偏好和用户语义偏好的概念,并将其与评论情感相似度结合,缓解数据稀疏问题对推荐准确性的影响。最后,利用类目偏好比对聚类的输入矩阵进行降维,并将数据场作为聚类前置算法,缓解矩阵维度和超参数对用户聚类过程的影响,减少相似度计算次数,提升算法推荐效率。

2.1 推荐算法总体框架

CPDFC-CFR算法的整体计算框架如图3所示,先后分评论情感挖掘(计算单元1)、类目偏好比计算(计算单元2)、数据场聚类(计算单元3)、综合相似度计算以及评分预测(计算单元4)和推荐(计算单元5)5个计算单元。其中,计算单元1负责利用基于属性的无监督情感挖掘方法将评论整体情感量化为一个固定区间的连续值,并构建用户—项目情感矩阵(UIS)。计算单元2负责利用类目偏好比将UIS矩阵转换为维度更低且数据密度更高的用户—类目偏好矩阵(UCP)。计算单元3负责利用数据场聚类算法对用户进行分组,缩小最近邻域检索范围,减少相似度计算次数。计算单元4负责计算由评论情感相似度、类目偏好相似度和用户语义相似度构成的综合相似度,并按相似度大小确定最近邻域。计算单元5负责利用近邻用户综合相似度和非共有评论情感预测目标用户对未知项目的情感,并生成Top-n项目推荐列表。

2.2 评论情感挖掘

受评分规则(例如:五星离散评价)制约,有限离散评分无法准确表示用户对交互项目的连续真实喜好,加之评分分布集中的特点,导致推荐算法捕获用户间细微偏好差异的难度进一步上升[26]。在线评论作为用户做出明智消费决策的重要信息来源,已被证明其情感值要比用户给出的粗略数字评分更有利于度量用户喜好[27-29]。CPDFC-CFR算法首先根据项目评论中细粒度的属性情感和属性权重生成评论整体情感,利用整体情感值构建UIS矩阵。

假设用户u的历史评论集合Tu={t1,t2,…,tj,…,th},项目j的历史评论集合Tj={t1,t2,…,ti,…,tf},m表示用户数,n表示项目数,h表示用户u的历史评论数,f表示项目j的历史评论数,tj表示用户u对项目j的评论(已经过预处理),ti表示用户i对项目j的评论。

首先,利用Apriori算法生成各项词性频繁项集(支持度≥0.50),逐一匹配评论t的属性词—情感词对(w,s),并利用互信息过滤不相关属性词及对应情感词:

(1)

式中,I(w,Gj)表示属性词w与项目j的主题词集合Gj之间的互信息,值越大越相关,g表示Gj中的一个主题词,p(w,g)表示w和g在Tj中共同出现的概率,p(wx)表示w在Tj中单独出现的概率,p(g)表示g在Tj中单独出现的概率。

然后,利用TF-IDF算法计算集合Tj中属性词w的权重whw(大多数人偏好的属性,更易受到关注)[30],生成属性词权重向量WHj=[wh1,wh2,…,whl](l为Tj中属性词个数)。评论t中属性词权重计算如下:

(2)

式中,cht,i表示用户u对项目j的评论t中第i个属性词的权重,wht,i表示评论t中第i个属性词在WHj中的对应权重。

其次,利用台湾大学NTUSD、知网Hownet和清华大学李军情感词典组成的混合词典,按照[积极,中性,消极]=[5,3,1]的规则将评论t中的情感词s量化为cst,i,则评论t的整体情感值计算如下:

(3)

式中,o表示评论t中属性词的个数。最后,按用户和项目之间的对应关系,利用评论情感构建UIS矩阵。

2.3 类目偏好比计算

2.3.1 原理

推荐系统的数据往往过于庞大和稀疏,影响聚类和相似度计算效果,因此有必要降低UIS矩阵维度[2]。鉴于每个项目均对应1个或多个类目,本研究利用Pearson相关系数计算UserCats数据集中各用户相似度,并从中随机选择6个近邻用户和6个非近邻用户的历史数据,分析他们与各级类目交互的频率异同,结果如图4和图5所示。

图4 6个随机近邻用户与各级类目的交互频率比较

由图4不难看出,在不同的类目级别上,近邻用户均表现出极为相似的类目偏好,而图5显示非近邻用户的类目偏好则有较大差异。因此,从类目偏好的角度对UIS矩阵进行降维是合理且可行的。

图5 6个随机非近邻用户与各级类目的交互频率比较

2.3.2 计算

用户类目偏好由类目偏好比进行量化表示,CPDFC-CFR算法通过类目偏好比将高维UIS矩阵转换为低维UCP矩阵。类目偏好比由某一类目下各项目的用户评论情感收敛得到,包括3个部分:①用户对某类目项目的情感偏好在所有类目项目的情感偏好中的占比,比值越大,用户越喜欢该类目;②某类目项目的消费次数在所有类目项目消费次数中的占比,是热门类目的惩罚项;③用户历史评论的平均长度与所有用户的最大历史评论长度的比值,是虚假用户的惩罚项。类目偏好比计算公式如下:

(4)

式中,pu,c表示用户u对类目c的偏好比,∑eu,c表示u对c中各项目情感值的和,∑eu表示u对类目集合C中各项目情感值的和,x(c)表示c的惩罚项,y(c)表示u的惩罚项。

由于小部分受欢迎类目会在多数用户交互中出现,长尾数据训练的算法极有可能为流行类目项目赋予高于其流行度的推荐频率,而更高的曝光率会进一步增加流行度,降低推荐公平性[31]。因此,类目偏好比在一定程度上对热门类目进行了惩罚:

(5)

式中,q(C)表示类目集合C中所有项目被消费的总次数,q(c)表示类目c中所有项目被消费的总次数,类目c中项目被消费的总次数越多表明类目越流行。

面对巨大的商业利益,网络中涌现了一些以虚假评论牟利的用户,他们的类目偏好对于构建推荐模型意义不大。研究表明,人们不愿意在非自发行为上花费太多时间,虚假用户发布评论的长度普遍比真实评论短[32]。因此,类目偏好比还对虚假用户进行了惩罚:

(6)

式中,max(U)表示用户集合U中所有用户历史评论的最大长度,a(u)表示用户u的历史评论的平均长度,用户u历史评论的平均长度越长表明其越有可能为虚假用户。

2.4 数据场聚类

K-means作为划分聚类的经典算法,通过用户聚类减少相似度计算次数,是提升U-CFR算法计算可扩展性的常用方法。受聚类矩阵维度和超参数(随机初始聚类中心等)问题影响,算法聚类效率和聚类结果稳定性出现较大波动。聚类矩阵维度通过类目偏好比进行缩减。对于超参数,CPDFC-CFR算法将数据场作为前置算法,把数据场输出(聚类数和聚类中心)作为K-means算法输入,提升推荐算法计算效率和实时性。

算法首先基于UCP矩阵计算各用户之间的相互作用势值并构建数据场。势值计算公式如下:

(7)

式中,φv(u)表示除用户u外的剩余用户v对u的作用力之和(势值),pu表示用户u的类目偏好向量,pv表示用户v的类目偏好向量,zv表示用户v的质量(∑zi=1),σ表示数据场的作用半径。

已有研究表明,数据场中用户的空间分布规律主要受质量较大的用户影响[13,33]。给定用户质量计算公式:

(8)

(9)

当用户质量z由式(8)和式(9)计算得出,影响因子σ即为影响数据场系统复杂性的唯一不确定因素。因此,本研究采用势熵法求解σ的最优取值[33]:

(10)

式中,arg min表示最小值对应σ,φ(u)表示用户u的势值,∑v∈Uφ(v)表示数据场中所有用户的势值和。

然后,使用随机爬山法计算数据场的势值极大值,将极大值对应的用户类目偏好向量和向量个数分别作为K-means算法的初始聚类中心和最佳聚类数,并基于UCP矩阵对用户进行迭代聚类。

2.5 综合相似度计算

Pearson相关系数具有易理解和量纲敏感度低等优势,是U-CFR算法中测量用户相似度的一种常用方法。CPDFC-CFR算法在传统Pearson相关系数基础上引入类目偏好和语义偏好,计算用户之间的综合相似度,并选择N个相似度最高的用户作为目标用户的最近邻域。综合相似度计算公式如下:

sim(u,v)=α·simt(u,v)+β·simp(u,v)+γ·sims(u,v)

(11)

(12)

(13)

用户语义向量是用户昵称和会员等级拼接并归一化后的50维向量[35]。这样设计的原因有三:其一,用户昵称和会员等级信息公开可查,非敏感人口统计特征(例如:性别、种族等),采集成本较低且不涉及隐私数据泄露风险。其二,昵称作为用户的唯一标识符,在一定程度上反映了用户的心理特征和文化素养[36]。其三,会员等级作为一种常用的用户分群管理指标,能够反映用户的行为规律和属性特点差异[37]。

2.6 评分预测和产生推荐

根据式(11)得到同聚类簇中各用户的N个最近邻后,CPDFC-CFR算法对目标用户未交互项目i的情感得分进行预测,得到完整的UIS矩阵,如图3中计算单元5所示。情感得分预测公式如下:

(14)

按用户u对项目i的情感得分大小,选择前n个项目生成推荐列表。

3 实验与分析

3.1 实验数据

本研究在遵循网站Robots协议前提下,将在某知名电商平台上利用定向爬虫抓取的相关数据作为实验的原始数据集UserCats。该数据集由Categories、Comments和Products 3个json文件组成,大小为10G,存储有585万用户与15万商品的交互数据,例如:用户昵称、产品标题、类目ID、店铺信息、评论、评分等。选择该数据集的原因有两个:第一,尽管用于U-CFR算法验证的开放数据集很多,如MovieLens、Netflix等,但项目类目、评论文本和用户昵称等数据不够完整;第二,电商领域是推荐系统应用最早的领域,也是一直以来推荐重点关注的领域,平台商品类目齐全且层次清晰,数据便于获取。

为确保实验可行性及有效性,本研究随机从UserCats中无放回抽取若干数据生成UserCats1和UserCats2两个实验数据集,并从中剔除未进行评论的用户、无任何评论的商品和有内容安全风险的商品[3]。其中,UserCats1数据集大小为109M,为740个用户和1 006个商品的交互数据,有3个一级类目、5个二级类目和9个三级类目,评论情感稀疏度为96.34%。UserCats2数据集大小为108M,为854个用户与1 373个商品的交互数据,有6个一级类目、9个二级类目和13个三级类目。综合考虑数据实时性和算法规模,采用PC离线方法进行实验[2](Windows 11,PyCharm 2021,Python 3.6,Inter(R)Core TM i7-8550U @ 200GHz,16G RAM)。数据集分训练集(80%)和测试集(20%)。实验数据集描述如表1所示。

表1 实验数据集描述

3.2 评价指标与对照算法

3.2.1 评价指标

实验使用两种类型的指标来评价算法性能:基于准确性的指标和基于即时性的指标。其中,基于准确性的指标为F-measure,该指标根据项目的Top-n推荐列表计算得出,综合考虑了精度和召回率,值越大推荐效果越好,相关定义参见文献[38]。基于即时性的指标为推荐耗时和相似度计算次数,评价的是算法计算效率。推荐耗时指整个推荐过程花费的时间,以秒为单位度量(实际数值取对数),值越大,计算可扩展性越差。总相似度计算次数指为确定各用户最近邻域而需计算的相似度次数,值越大,计算可扩展性越差。

鉴于推荐算法训练数据较大,进一步对相似度计算次数和推荐耗时进行了取对数操作,计算公式如下:

(15)

式中,y表示对数处理后的相似度计算次数或推荐耗时,U表示用户集合,xu表示为用户u生成推荐列表所需的相似度计算次数和推荐耗时。

3.2.2 对照算法

为全面验证CPDFC-CFR算法应对数据稀疏和计算可扩展性问题的有效性,本研究所选对照算法基本涵盖了现有研究提出的不同类型的U-CFR算法。下面,对本研究所选对照算法进行简要说明:

•POP(Popular Products):一种简单的非个性化基线算法,该算法按项目流行度的大小向各用户推荐相同的Top-n项目推荐列表。

•ALS(Alternating Least Squares)[17]:一种矩阵分解算法,该算法采用交替训练的方式获得一组用户和项目的嵌入,通过嵌入点积的形式近似原始的用户—项目矩阵。

•U-CFR(User-based Collaborative Filtering Recommendation)[3]:一种简单的个性化基线算法,该算法基于用户相似度为目标用户推荐其近邻用户喜欢的项目。

•Km-CFR(K-means Based Collaborative Filtering Recommendation)[3]:一种基于聚类的推荐算法,该算法在U-CFR基础上利用K-means算法减少用户相似度计算次数,提升算法推荐效率。

•CKm-CFR(Canopy-K-means Based Collaborative Filtering Recommendation)[2]:一种基于聚类的推荐算法,该算法将Canopy作为K-means的前置算法,缓解了聚类数k对聚类效果的影响,在提升计算效率的同时也确保了结果的稳定性。

上述算法均适用于用户—项目矩阵,其中行表示用户,列表示项目,行列交点表示用户评分或用户评论情感。此外,还比较了CPDFC-CFR算法的3种中间算法,以比较算法不同计算单元的优化效果:

•U-CFR(UIS):与U-CFR算法相比,构建用户—项目矩阵利用的是用户评论情感。

•U-CFR(UIS+DF):与U-CFR(UIS)算法相比,在相似度计算前利用数据场聚类对用户进行了分组。

•U-CFR(UIS+SIM):与U-CFR(UIS)算法相比,Pearson相关系数替换为综合相似度。

POP和ALS算法无用户相似度计算过程,研究仅比较了它们在推荐耗时上的计算效率表现。所有算法由Anaconda 3中Implicit推荐算法库和Sklearn、Scipy等依赖库复现。

3.3 超参数选择

超参数是推荐算法开始学习过程之前人工设置值的参数。取最近邻个数N=10(总用户数的1%~2%)[34]和项目推荐列表长度n=15(与Last.fm等平台的项目推荐长度相近)[38],通过对不同参数进行网格搜索来选择各算法的超参数,并以F-measure值大小作为最佳参数确定标准。实验结果取三折交叉验证结果的平均。各算法超参范围如下(POP除外):

对于ALS,在{10,100,1 000}之间选择嵌入大小,在{500,1 000}之间选择算法迭代次数,在{0.001,0.0001}之间选择正则化因子。对于U-CFR、U-CFR(UIS)、U-CFR(UIS+DF)、Km-CFR和CKm-CFR,在Pearson相关系数之间选择相似度计算函数,在{2,3,4,5,6,7,8,9,10}之间选择最佳聚类数(仅用于Km-CFR算法),在1 000之间选择迭代次数(仅用于Km-CFR和CKm-CFR)。

对于U-CFR(UIS+SIM)和CPDC-CFR,有α∈[0,1]、β∈[0,1]和γ∈[0,1]3个超参数,满足。鉴于3个超参数的值对为三维空间中的等边三角形面,如图6所示,本研究在三条角平分线的7个交点和切割区域的6个对称点之间选择和的最佳取值。

图6 超参数α、β和γ的最佳取值范围

3.4 实验结果分析

本节报告并讨论实验结果。首先探讨不同类目级别对CPDFC-CFR算法推荐准确性和计算效率的影响(3.4.1节),然后介绍CPDFC-CFR算法整体性能(3.4.2节),最后比较不同推荐算法的结果差异(3.4.3节)。

3.4.1 类目级别影响

UserCats1和UserCats2中CPDFC-CFR算法在不同商品类目级别上的性能表现如图7所示。在准确性方面,商品类目级别越高,算法F-measure值越小。在计算效率方面,商品类目级别越高,算法推荐耗时越长,相似度计算次数越多。一个可能的原因是,随着商品类目级别的提升,UCP矩阵贡献的用户类目偏好信息粒度越来越大,如图7(a1)和图7(a2)所示,弱化了用户之间的细微偏好差异,令数据场聚类效果下降,影响了算法计算效率和准确性。鉴于各评价指标值变化的拐点尚未出现,进一步降低商品类目级别(例如:细化三级类目的商品分类,构建四级商品类目),可能是一种提升CPDFC-CFR准确性和计算效率的有效途径。

图7 商品类目级别对CPDFC-CFR算法准确性和计算效率的影响

3.4.2 总体性能分析

对照算法和本文所提算法及其中间算法在两个实验数据集中的F-measure、推荐耗时和相似度计算次数指标的三折及平均结果如图8所示。对比U-CFR和U-CFR(UIS)可知,利用评论情感构建的UIS矩阵能够为近邻协同过滤推荐算法提供比UIR矩阵更加接近用户真实喜好的向量表示。对比U-CFR(UIS)和U-CFR(UIS+DF)可知,利用数据场优化K-means算法的用户聚类效果是可行的,能够有效降低推荐算法的相似度计算次数和推荐耗时并提升准确性。对比U-CFR(UIS)和U-CFR(UIS+SIM)可知,尽管引入用户类目偏好信息(三级产品类目)和语义信息会令推荐耗时增加,但实验结果也基本证实了它们在缓解矩阵数据稀疏上的有效性。综合考虑上述优化思路的CPDFC-CFR算法在两个实验数据集中均取得了最高的F-measure、较少的推荐耗时和最低的相似度计算次数,与算法设计预期相符。

3.4.3 不同推荐算法比较

UserCats1和UserCats2数据集中不同类型推荐算法的性能如图9所示(三折交叉验证均值)。总体而言,两个数据集中本文所提CPDFC-CFR算法均取得了整体上的最优性能(最高的准确性和较高的计算效率)。在准确性方面,交替训练ALS的F-measure值要高于Km-CFR和CKm-CFR等基于传统聚类的协同过滤推荐算法。POP表现最差,因为其基于产品流行度向所有用户推荐相同的商品列表。在计算效率方面,U-CFR耗时最长,POP耗时最短,ALS因无需反复计算相似度耗时较短。受超参数影响,Km-CFR的相似度计算次数和推荐耗时高于CKm-CFR和CPDFC-CFR。此外,从图中数据可知,无论哪种类型推荐算法,UserCats1(稀疏度96.34%)中的结果都优于UserCats2(稀疏度97.94%),这表明数据稀疏性对推荐性能有较大影响。

4 结 语

4.1 结 论

伴随信息过载,推荐成为信息消费者获取个性化信息以及信息提供者提供高质量信息的重要方式。受用户评分失真、附加数据完整性和安全性差以及超参数(例如:随机初始聚类中心)等问题影响,现有针对基于近邻用户的协同过滤推荐算法数据稀疏和计算可扩展性(计算效率)问题的相关研究仍有进一步优化的空间。为此,本文提出了一种融合类目偏好和数据场聚类的协同过滤推荐算法(Category Preferred Data Field Clustering Based Collaborative Filtering Recommendation,CPDFC-CFR)。该算法首先通过评论情感构建用户—项目矩阵,并利用类目偏好比降低矩阵维度;然后,通过数据场聚类对用户进行分组,缩小最近邻域检索范围,减少相似度计算次数;最后,计算同簇中由评论情感、类目偏好和用户语义共同构成的用户相似度,同时预测UIS矩阵缺失评分,产生Top-n个性化项目推荐列表。为进一步验证算法性能,本研究在电商领域的两个真实数据集上进行了对照实验,结果表明,CPDFC-CFR算法比对照算法和U-CFR算法的系列改进算法在准确性和计算效率上有了较为明显的提升(UserCats1数据集上F-measure=27.65%,推荐耗时=3 633.50秒,相似度计算次数=263 096次;UserCats2数据集上F-measure=26.96%,推荐耗时=6 698.18秒,相似度计算次数=364 658次),整体性能最优。

图9 不同类型推荐算法的准确性和计算效率表现

4.2 局限与未来工作

本研究的不足之处在于:第一,受数据采集成本限制,研究仅在电商场景中对算法准确性和计算效率进行了验证,在实验数据的多样性上可能存在一定疏漏,导致研究结果的可靠性和算法的可推广性有待进一步提升。未来工作可能会采集不同场景下的数据集,例如:新闻传媒、金融理财、研发等,在不同数据量级和不同稀疏度等组合条件下验证算法性能。第二,虽然研究未发现类目级别与算法准确性和计算效率之间的均衡点,但却可以看出一定的规律,即:随着类目级别的降低,算法准确性和计算效率逐渐上升,如图8所示。未来的工作可能会尝试利用深度学习或人工方式细化类目分类,找到类目级别与算法准确性和计算效率的均衡点,进一步提升算法推荐效果。

猜你喜欢

类目聚类矩阵
本期练习题类目参考答案及提示
基于DBSACN聚类算法的XML文档聚类
基于高斯混合聚类的阵列干涉SAR三维成像
初等行变换与初等列变换并用求逆矩阵
矩阵
矩阵
矩阵
一种层次初始的聚类个数自适应的聚类方法研究
《中图法》第5版交替类目研究综述
黄三角、长三角、珠三角明、清及民国通志一级类目比较*