APP下载

融合时间与兴趣相似度的产品推荐方法研究

2019-09-28孔元元白智远

计算机技术与发展 2019年9期
关键词:准确率权重协同

孔元元,白智远,张 飒,吕 品

(上海电机学院 电子信息学院,上海 201306)

0 引 言

随着互联网和信息技术的快速发展,数字化、网络化越来越普及,大量的信息聚集起来,形成海量信息[1-3]。用户想要从海量的信息中快速找寻自己所感兴趣的内容,已经变得越来越困难,因此,推荐系统便应运而生。目前,推荐技术被广泛应用于电子商务[4]、社交网络[5]、新闻网络[6]等系统中。而推荐技术中,协同过滤推荐技术是应用最早和最为成功的技术之一[4]。协同过滤推荐系统通过计算物品与物品或用户与用户之间的相似度,结合用户的历史喜好,计算出物品对用户的推荐指数,得出推荐结果。

传统的协同过滤推荐系统只考虑用户是否选择了物品,而忽略了用户因时间的推移而产生的兴趣变化。引入用户访问时间的数据权重的改进型协同过滤推荐系统[7]则更好地反映出用户的兴趣变化,改善了系统的准确度。但是没有考虑到用户选择物品的偶然性问题,使得用户在近期偶然选择物品的行为增大了该类型的物品对用户的兴趣度。

本项目以电视产品推荐为例,提出了时间权重与兴趣相似度融合的协同过滤模型。时间权重考虑了用户收视偏好变化与时间的依赖关系;用最近T时段内用户观看的电视节目信息表示兴趣相似度。因此,该方法能有效地反映用户收视的动态变化,克服了传统协同过滤算法在计算推荐过程中将用户已观看的每个电视节目同等对待的弊端,实现了基于用户收视信息、电视产品信息和用户基本信息构建的个性化电视产品推荐。

1 时间权重与兴趣相似度融合的协同过滤模型

1992年,Goldberg、Nicols、Oki及Terry提出了协同过滤的概念[8]。随着个性化推荐技术的快速发展,个性化推荐技术广泛应用于各个领域,其中基于协同过滤的推荐技术最受青睐。协同过滤算法采用给用户使用过的对象(如视频、文档、商品等)反馈信息(如评分),这些反馈被记录下来,通过合作的机制分析数据,帮助潜在用户筛选感兴趣的对象[9]。

时间权重与兴趣相似度融合的协同过滤模型包含三个部分:时间权重、兴趣相似度以及融合模型。

1.1 传统协同过滤推荐模型

在传统的协同过滤推荐系统中,输入数据通常表述为一个a×b的用户—资源访问矩阵R,其中a表示用户数,b表示资源数,Rij表示第i个用户对第j个资源的访问记录。矩阵中的每一个数据元素的值表示用户是否访问该资源(1表示访问,0表示未访问)。

传统的协同过滤算法有两种实现方式[10]:基于用户的实现方式与基于物品的实现方式。

相似度是用于比较两个事物近似度的度量,一般基于距离进行计算。由于通常在原始数据集中,产品的名称和种类繁多,用户矩阵与物品相似度矩阵维度过大。因此,为了提高运行效率,本项目组选择杰卡德相似度度量[11]。杰卡德相似度度量如式1所示。

(1)

其中,|A1∪AM|表示喜欢电视产品1与喜欢电视产品M的用户总数;|A1∩AM|表示同时喜欢电视产品1和电视产品M的用户数。

1.2 时间权重

在目前的大部分协同过滤推荐算法中,主要是通过计算用户或资源间的相似度,而忽略了用户兴趣的动态变化。但在实际生活中,用户在不同的时间内,兴趣爱好会发生很大的变化。此时,现有的推荐系统无法及时反映出用户兴趣变化的过程,一旦用户的兴趣发生改变,可能导致推荐的个性化资源或者营销方案在很大程度上偏离用户的本质需求。因此,文献[7]提出基于访问时间的数据加权算法以解决传统协同过滤算法的不足。

算法将基于时间的数据加权[7]做如下定义:

(2)

其中,Dui表示用户u访问资源i的时间与用户u最早访问某资源的时间间隔;Lu表示用户u使用推荐系统的时间跨度,即该用户最早访问某资源的时间与最近访问某资源的时间间隔;a∈(0,1)称为权重增长指数,改变a的值可以调整权重随访问时间变化的速度。a越大权重增长速度越快,a的大小可以影响到算法性能。

1.3 兴趣相似度

式2中,Wtime(u,i)的值随着用户u访问资源时间间隔呈线性变化,用户近期访问数据的权重总是大于早期访问数据的权重,从而突出了近期数据的重要性。

在实际生活中,不同用户的兴趣变化速度和规律不同,此外用户的兴趣经常存在反复,所以早期访问的资源对于用户生成个性化推荐也很重要。如果只单纯地使用基于时间的数据权重,而削弱推荐系统中早期资源的作用,极有可能对推荐效果产生负面影响。即用户观看的时长在一定程度上可以反映用户的喜好程度。为此,本项目提出基于兴趣相似度的数据权重,如下:

(3)

其中,Tui表示用户u选择产品i的次数;Du表示用户u做出选择的总次数,且Tui≤Du;a∈(0,1)为权重增长因子。在电视节目推荐的应用中,Tui为用户u观看节目i的时长,Du为用户u观看的总时长。

1.4 融合模型

将两个权重函数用式4进行矩阵的融合。

Wfusion=β×Wtime(u,i)+(1-β)×Winterest(u,i)(4)

其中,β∈[0,1],β和1-β分别代表两种权重值所占的比例,通过选择合适的β将两种加权方法结合起来,从而进一步提高推荐算法的准确率。

为了提高模型精确度,选择向量的夹角余弦进行相似度度量,计算产品的相似度矩阵。夹角余弦相似度度量如式4所示。假设把用户评分看作n维空间上的向量,两个用户x,y的评分向量分别为X和Y,则它们之间的余弦相似性[12]计算如下:

(5)

其中,Rx,c、Ry,c分别为用户x和用户y对项目c的评分。

由于考虑到不同用户的评价标度的不同,通过对项目的平均评分对余弦相似度进行方法改进。设用户x和y共同评分项目集合用Ix,y表示,则用户x和用户y之间的相似性计算如式6所示。

sim(x,y)=

(6)

2 基于Python的时间权重与兴趣相似度融合协同过滤模型的实现

Python作为一种编译型语言,拥有大量的第三方库,可用来方便地读取、切片、转置、计算数据。给定模型中数据与数据之间的关联与计算方法,作为Python的输入数据即可进行训练,实现模型。为了更直观地表述模型的实现方法,提出的数据处理流程如图1所示。

图1 数据处理流程

2.1 数据清理

考虑到通常的原始数据中存在着大量错误的信息与无用的信息,这些信息会影响处理的效率与模型的训练效果。因此,在读取原始数据后,需要先进行预处理[13]。

原始信息中通常包含的无用信息有无用的标签、同义词以及无用的时间信息,这里无用的时间信息不包括后期模型所需的访问时间。因此在图1中,本项目组首先使用PHP对原始数据进行过滤与转化,生成格式化后的数据进行下一步处理。

2.2 合并数据

格式化后的数据中可能仍然存在重复的记录,而且数据集中关键信息的单位可能也存在不统一的问题,因此还需要将数据输入MariaDB进行合并去重的处理。同时,也要将模型所用到的不同数据关联起来,生成统一的数据集。

2.3 缺值填充

数据集中还有可能存在着缺值的情况。常见的缺值填充方法有:均值、众数填充,线性回归填充与直接剔除[14]。由于直接剔除会影响缺值记录对用户产生的影响,因此可根据项目对精准度的要求,使用均值、众数填充或线性回归填充[15]。

2.4 训练模型

在完成对数据的处理之后,将数据输入模型,对模型进行训练,计算出用户与物品之间的相似度。最后将测试用的数据集输入模型,即可得出针对每个用户的个性化推荐结果。

3 实例验证与分析

本节将以电视产品个性化推荐为例,基于Python,结合用户的历史收视数据对每个用户进行个性化推荐。再利用测试集数据对推荐结果进行验证,与传统协同过滤模型进行对比,得出改进前后模型的精度差异。

3.1 实验设置

实验采用的硬件环境:Inter(R) Core(TM) i7 2.8 GHz 四核处理器;软件环境:操作系统macOS 10.13,开发环境Python3.6。实验过程中根据每个用户在数据集中的访问记录为其计算推荐集,如果推荐集中某个资源i出现在该用户数据集中的访问记录里,则表示生成了一个正确推荐[16]。为此,使用评估系统效果的准确率(precision)、召回率(recall)和推荐覆盖率(coverage),作为对比传统推荐算法和改进推荐算法的精度标准[17]。

3.2 实验结果对比分析

由于融合时间与兴趣相似度的协同过滤模型反映了用户兴趣随时间变化的特征,因此,分析两种算法的结果后,得到图2和图3所示的用户电视产品信息推荐表。

图2 传统协同过滤推荐结果

图3 融合时间与兴趣相似度的协同过滤模型推荐结果

为了比较两种模型之间用户兴趣变化的大小,设计了3组实验,将它们的推荐效果与传统的基于物品的协同过滤算法进行比对。

实验1:不同β值的融合比例对模型性能的影响。

为了获得式4中最优的β值,表1给出了融合时间与兴趣相似度的协同过滤模型在不同情况下β值由0.3依次增长到0.8时,模型的准确率、召回率和推荐覆盖率。

表1 不同β值的融合比例对准确率、

通过实验发现β值的选取对模型效果有较大影响,得到β=0.6时模型在准确率、召回率、推荐覆盖率上性能较优。这是由于它结合了两种加权方法的优点,不仅能突出近期用户观看电视产品信息的重要性,又避免了早期所观看的电视产品信息被忽略的问题,从而更准确地反映了用户的兴趣变化趋势。

实验2:分析不同k值的推荐数量对模型性能的影响。

表2给出了融合时间与兴趣相似度的协同过滤模型在不同推荐数量k值下的推荐准确率、召回率、推荐覆盖率。其中推荐数量k分别取值为5,10,20,30,40。

表2 不同k值的推荐数量对准确率、召回

通过实验发现,推荐数量k的取值对模型有较大影响,且推荐覆盖率与召回率随着k的增大而提高,而准确率则随着k的增大而降低。得到k=10时模型在准确率、召回率、推荐覆盖率上性能要好于指定的推荐数量k=20的情况。这说明向潜在用户推荐过多的电视产品可能无法真实反映用户的当前兴趣,推荐数量过少则会使推荐出的电视产品具有较大的随机性,难于实现个性化推荐。

实验3:模型性能评估。

评估传统协同过滤模型和融合时间与兴趣相似度的推荐模型的运行时间、准确率。实验结果如表3所示。

表3 两种协同过滤模型的评测指标对比 (β=0.6,k=10)

模型运行时间/s准确率/%传统协同过滤模型358.850.183 5融合时间与兴趣相似度的协同过滤模型564.360.304 9

观察表3发现,融合时间与兴趣相似度的协同过滤模型在准确率上优于传统协同过滤模型。这是因为融合时间和兴趣相似度模型注重了用户兴趣随时间的变化,避免了用户早期观看的电视节目数据被忽略的问题。但是融合时间与兴趣相似度的协同过滤模型运行花费的时间稍高于传统的协同过滤模型。其原因是融合时间与兴趣相似度的协同过滤模型在计算电视产品间相似度矩阵和初步推荐矩阵时花费的时间比传统的协同过滤模型长。

4 结束语

文中提出了一种基于时间权重与兴趣相似度的改进协同过滤模型。首先提出传统协同过滤在实际应用时的问题,其次针对时间与兴趣相似度问题提出了改进型模型,最后将模型使用Python语言实现,并应用在电视产品推荐中,证明了改进后模型的命中率比传统模型的更高。

猜你喜欢

准确率权重协同
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
蜀道难:车与路的协同进化
权重常思“浮名轻”
“四化”协同才有出路
高速公路车牌识别标识站准确率验证法
为党督政勤履职 代民行权重担当
基于公约式权重的截短线性分组码盲识别方法
三医联动 协同创新