2.1. 传统的协同过滤算法
协同过滤利用类似用户的行为(分数、点击等)来预测目标用户对特定项目的兴趣。然后,它会根据预测的兴趣做出相应的推荐。目前流行的协同过滤推荐算法主要分为基于邻域的推荐算法和基于模型的推荐算法。
采用基于邻域的协同过滤方法,首要步骤是依据用户的历史行为数据来量化评估用户间的相似性程度,随后,通过选取与目标用户具有较高相似性的邻居用户群体,借鉴这些邻居用户对未被目标用户评价过的其他物品的评分信息,以此作为依据来推测目标用户对特定物品可能存在的喜好程度。将用户的偏好程度作为推荐阈值。目前,基于邻居的协同过滤主要包括基于用户的过滤和基于项目的过滤。
相较于依赖于领域的协同过滤技术,基于模型的协同过滤方法更注重于构建并训练一个预测模型,该模型充分利用用户的评分数据作为输入信息。通过这一模型,能够对尚未获取评分的项目或商品进行有效的预测分析,从而揭示用户潜在的喜好倾向[6]。当前,这一领域的代表性技术主要包括聚类模型[7]、概率相关模型[8] [9]、潜在因素模型[10]-[12]和贝叶斯层次模型[13] [14]。近来,针对大数据处理的需求,Mnih等[15]提出了一种概率矩阵分解(PMF)算法,该算法使用低维近似矩阵分解生成推荐。一般来说,它假设每个用户的兴趣偏好仅受到有限几个关键因素的影响。其核心机制在于将用户和物品映射到一个更低维度的特征空间内,而这一映射过程所依据的学习参数,则来自于用户实际提供的评价反馈数据。通过运用这些参数得到的用户特征向量,可以有效重建原始的评价矩阵。经实验验证,PMF在处理大规模数据方面具有高效性和良好的预测准确性。为了克服在参数设置带来的负面影响,Salakhutdinov等[16]提出了贝叶斯概率矩阵分解(BPMF)。其实验结果显示性能优于PMF。
Lawrence等[17]从理论上证实了PMF与概率主成分分析之间的准确性。并基于此提出了一种非线性PMF,其结合高斯过程对PMF进行非线性扩展,旨在获得更好的性能。尽管传统的协同过滤算法在推荐效果上常能达到令人满意的效果,但其局限存在于仅依赖于评分数据,并未能充分利用与推荐紧密相连的时间信息和关系信息。基于此,研究者们提出了许多基于时间信息和关系信息的推荐算法。
2.2. 基于时间信息的推荐推荐算法
该模型具备学习数据动态变化的能力并以此优化推荐。Koren [18]提出了TimeSVD++,该算法通过将时间维度信息融入用户特征向量,有效地解决了兴趣随时间推移可能出现的漂移问题,实验结果表明了TimeSVD++的优势。Xiong等[19]以时间信息为第三维,利用张量分解对动态变化进行建模。Chen等[20]动态地将用户分配到未使用的集群中,并基于进化共聚类提出进一步的推荐。Li等[21]指出,在特定时间段内,用户的兴趣焦点往往会集中在少数几个特定领域,并基于此,提出了一种跨领域协同过滤框架。实验结果显示,该框架不仅能有效地捕捉并推荐符合用户兴趣迁移趋势的内容,还能实时追踪用户兴趣的动态变迁。Ren等[22]观察到,当前推荐系统普遍忽视了用户的偏好模式及其动态变化特性。为此,他们将用户的偏好模式进行稀疏矩阵表示,并运用相应的子空间,分步骤地捕捉和构建个性化及全局范围内的用户偏好模式。
与以往的研究不同,本研究使用时间信息来构建用户或项目之间的结构关系。基于结构关系,计算相似度并将其整合到概率矩阵分解中,生成新的推荐框架。
2.3. 基于关系信息的推荐算法
传统协同过滤算法常常假定用户和项目之间不存在相互联系,故而在推荐过程中忽视了两者间可能存在的结构关联性。针对这一局限,将用户或项目间的关系网络纳入现有协同过滤框架,通过强化单一用户信息的多元性,提升推荐结果的精准度。
在基于关系挖掘的协同过滤技术中,一项至关重要的环节即是萃取用户之间的关联性。当前获取用户关系的途径主要分为显式和隐式两种。在[23]-[25]中,作者借助显式社交网络关系捕获了用户间的相互关联。Jamali等[26]提出了一种基于用户信任关系网络的随机游走模型,该模型通过在网络中执行随机游走以查找到相似项目,并借此扩充目标项目预测评分的数据来源,从而减轻了数据稀疏性所带来的不利影响。然而,在实际应用场景中,搜集充足且有效的网络关系是一项颇具挑战的任务。Zhou等[27]利用标签信息得到推荐的隐式关系矩阵。
鉴于前文所述的显式和隐式关系建模手段时常受限于大规模相关数据采集,本研究着重利用用户消费的时间序列信息挖掘隐含关联性,并将用户或物品关系集成到矩阵分解模型中。在此基础上,设计了一种基于时间序列行为的协同过滤推荐算法(称为TemporalMF)。
3. 定义问题和分解概率矩阵
假设我们有一个推荐系统,它包含
个用户,表示为
,包含
项,记为
,用户–物品评分矩阵表示为
,其中每个元素
表示第i个用户对第j个物品的评分。协同过滤算法使用概率矩阵分解模型学习用户或物品的特征向量,然后根据该特征向量预测未知的评级[28]。
设
和
分别为用户和项目的特征矩阵。根据上述定义,现有评级数据的条件概率定义如下:
(1)
其中
表示
和
的正态分布。
是一个0~1函数,其中如果第i个用户评价第j项,返回1;否则,返回0。
是将x映射到[0, 1]的函数。
(2)
为了避免过拟合,假设用户和项目的特征向量都遵循高斯先验分布,
。
(3)
(4)
根据贝叶斯推理理论,
和
的后验概率可表示为:
(5)
Figure 1. Probability matrix decomposition diagram
图1. 概率矩阵分解图
图1给出了概率矩阵分解图。根据公式(3),有了用户项评分矩阵,就很容易学习到相应的特征向量。
4. 提出的方法
4.1. 基于时间序列行为的协同过滤推荐算法
在基于关系的矩阵分解中,核心步骤之一是获取用户或项目关系。传统的协同过滤忽略了消费时间信息。但是,时间序列信息可以提供一些隐藏的模式,这些模式可用于挖掘用途和项之间的关系。为了发现这些潜在的关系,我们首先引入一个基于时间序列的用户消费网络,如图2所示。
Figure 2. User consumption network diagram
图2. 用户消费网络图
我们使用
来表示图2所示的网络,其中
为用户集;
表示边集;
表示边权矩阵。“()”中的数字表示用户消费的物品数量。在给定的时间段内,如果用户i和j先后消费相同的物品,则边集
的权重
增加1。通过迭代所有乘积,我们可以更新边权矩阵
。因此,我们可以定义影响关系权重如下:
(6)
其中
表示集合A和集合B中同时包含的相同元素的个数。
可以解释为第i个用户对第j个用户的影响。例如,如果用户1和2消耗的物品数量为100,则1对2的影响为
。反之,2对1的影响为
。因此,我们观察到影响是有方向性的,这比无方向性的情况更合理。
类似地,基于时间序列的物品消费网络可以很容易地构建,图3给出了一个简单的例子。“()”中的数字现在表示消费该商品的用户数量;权重
现在表示逐个消费商品i和j的用户数量。因此,影响关系权重可定义为:
(7)
Figure 3. Project consumption network diagram
图3. 项目消费网络图
4.2. 矩阵分解
在确定了用户或项目间相互作用关系并成功识别出最相近邻集合之后,将这一邻近关系引入到矩阵分解模型中。且最近邻的会影响到用户或项目的特征向量。换句话说,相似的用户或项目应该具有相似的特征向量。
(8)
(9)
其中
表示i的邻居集(用户或项目)。
和
分别表示近似特征向量。与[6] [8]不同的是,我们的算法综合考虑了用户或物品的内在特征和关系的双重因素。每个用户或项目的特征向量不仅遵循
的高斯先验分布以避免过拟合,而且需要与用户或项目关系特征向量相似。由于考虑了时间序列信息,影响关系更清晰,更符合实际情况。
(10)
(11)
利用贝叶斯理论进行推到,该模型的概率图如图4所示。
Figure 4. temporalMF recommendation algorithm framework
图4. temporalMF推荐算法框架图
4.3. 推荐算法步骤及计算复杂度分析
推荐算法分为四个步骤:
步骤一:数据读取:输入包含用户的评分信息和评分时间信息。
步骤二:邻居集构建:根据输入,构建用户消费网络和物品消费网络。然后,构造最近邻集。
步骤三:概率矩阵分解:我们将邻居集应用到概率矩阵分解模型中,学习用户和物品的特征向量。
步骤四:评分矩阵重构:基于用户和物品的特征向量,重构评分矩阵,得到相应的用户推荐。
在我们提出的算法中,消耗大量CPU秒的步骤来自两个方面。
一是消费网络建设和关系挖掘。二是根据得到的影响关系提出建议。我们以用户视角的网络为例,若每一件商品平均被
个用户购买,首先按照用户给商品打分的时间顺序对评分信息进行排列,随后分析这些用户所形成的网络连接权重是否有所增加。依照这个流程,构建单个用户消费网络所需的计算复
杂度大致为,构建涵盖所有用户的用户消费网络,其总体时间复杂度为。同样,假设每个用户平均消费的商品数量为
,则构建该商品的用户消费网络的时间复杂度为。因此,构建用户消费网络的时间复杂度为。在建立这个网络之后,我们利用这个网络来挖掘影响关系。由于每个用户平均消耗
个物品,因此每个用户在网络中有
条边。
因此,依次计算每个用户对其他用户的影响并排序的时间复杂度为。同样,在基于物品的消费网络中,该时间复杂度为。根据上述分析,第一个方面的总时间复杂度为。
根据[6]的分析,梯度计算的总时间复杂度为,l表示影响某个用户的邻居数。值得注意的是,构建网络的过程仅需顺序遍历评级信息,无需涉及迭代操作。与此同时,考虑到
和
数值相对较小,故模型的整体时间相对较低,因此适合应用于大数据的处理任务。
5. 实验结果
5.1. 数据集
为全面探讨各类信息及关系因素对推荐效果产生的差异化影响,构建的实验数据集应整合包括但不限于用户评分记录、项目标签信息以及用户社交网络链接等多元数据。鉴于此需求,在本次研究中,我们选定豆瓣平台作为数据来源,旨在针对性地获取并整合上述各类相关信息,以此为基础搭建起用于实证分析的实验数据集。豆瓣中的每位用户均可对各类书籍、音乐或电影作品进行1到5分的评分。此外,豆瓣还借鉴了Facebook的社交关系功能,允许用户通过电子邮箱地址查找并连接好友。因此,豆瓣所提供的丰富多样的数据资源恰好符合我们进行实验研究所需的条件。
本研究使用的数据集见表1,其中包含两组数据。
一组数据专注于用户对图书的评价反馈,还包含了用户的社交网络关系数据以及相关的标签信息。另一组数据则围绕用户对电影的评分活动展开,同样提供了丰富的评分数据以及其他与之对应的各类相关信息。
Table 1. Douban data
表1. 豆瓣数据
信息 |
数据类型 |
书籍 |
电影 |
用户 |
23,944 |
9601 |
项目 |
219,725 |
44,779 |
标签信息 |
74,095 |
50,530 |
评级记录 |
1,642,111 |
1,960,682 |
社会关系 |
588,269 |
91,945 |
5.2. 评估标准
本研究采用RMSE [29]作为评价标准:
(12)
其中
表示预测向量,
表示真值向量。
5.3. 实验结果与分析
在本节中,我们选择了四种方法作为比较算法,它们是PMF、BPTF、SocialMF和TagMF。从特征向量不同维度下的性能、计算复杂度和鲁棒性分析三个方面报道我们的实验。
首先,我们将特征向量K的维度分别设置为5、10和20。
表2显示了不同K下所有算法的均方根误差。我们观察到,我们提出的算法在每个K下的性能都是最好的。
Table 2. Root mean square error of all algorithms under different K values
表2. 不同K值下所有算法的均方根误差
算法 |
K = 5 |
K = 10 |
K = 20 |
书籍 |
电影 |
书籍 |
电影 |
书籍 |
电影 |
PMF |
0.7511 |
0.7358 |
0.7465 |
0.7327 |
0.7435 |
0.7311 |
BPTF |
0.7317 |
0.7279 |
0.7267 |
0.7231 |
0.7242 |
0.7228 |
SocialMF |
0.7339 |
0.7309 |
0.7307 |
0.7269 |
0.7289 |
0.7245 |
TagMF |
0.7298 |
0.7267 |
0.7240 |
0.7235 |
0.7219 |
0.7218 |
TemporalMF |
0.7294 |
0.7251 |
0.7238 |
0.7229 |
0.7217 |
0.7208 |
1) 当K值不断提升时,该算法的准确度呈现出逐渐增强的趋势。然而,必须留意的是,随着K值的增长,模型所对应的时间复杂度也将相应有所增加。
2) 与PMF相比,BPTF、TagMF、SocialMF和本文算法的性能都有显著提高,表明时间信息与用户(物品)之间的关系对提高传统协同过滤算法的准确性有更大的作用。
3) 相较于SocialMF,BPTF在性能表现上有所提升,这一改进部分归因于SocialMF中所反映出的社会关系的稀疏性问题。与TagMF和TemporalMF相比,BPTF的性能结果则稍显逊色。
4) 与TagMF和我们的方法相比,SocialMF的表现略差,这主要是因为SocialMF没有考虑项目之间的关系。此外,SocialMF不考虑朋友之间关系的方向。
5) 相较于TagMF,本研究所提出的算法在性能上显著超越了前者,这一对比有力地证实了本文引入的影响关系对提升算法准确性的积极作用。另外,鉴于本文算法仅需依赖最基本的时间信息,从信息获取的简易性及适用范围的广泛性角度来看,该算法均展现出一定的优越性。
实验数据显示,相较于传统的概率矩阵分解算法,本文所提出的算法在性能表现上更为出色,有力验证了文中引入的影响关系概念在实践中的合理性与实效性。尽管改进效果并非大幅度飞跃,但在真实世界推荐系统环境中,SocialMF和TagMF所依赖的社会关系数据或标签信息往往难以全面获取或极度稀疏,而本文算法只需利用易于获得的时间信息即可运作,体现出独特的优势。因此,该算法可以广泛应用于许多实际应用中。
表3给出了在Intel(R) Core(TM) i5-12600KF 3.70 GHz,Windows 10系统,16 GB内存环境下,所有算法每次迭代的CPU秒数。
我们可以看到,BPTF算法所需的时间成本远超过其他算法。主要原因在于BPTF在采用马尔可夫蒙特卡罗方法进行训练的过程中耗费了大量的计算时间,从而导致了其较高的计算复杂度水平。由表3也可以看出,关系越多,计算复杂度越高。一般来说,TemporalMF占用的时间是可以接受的。对于PMF和BPTF,处理书籍的时间要小于处理电影的CPU秒数。相比之下,其他的算法在运行时间上则有所不同。究其原因,PMF和BPTF这两种算法并未将邻居关系纳入考量范畴,因此它们的计算复杂度主要取决于训练集中评分数据条目的总量。与电影的评级数据相比,书籍的评级数据很少,因此书籍需要更少的时间。其余的算法将邻居关系考虑在内。由于图书数据集比电影数据集包含更多的用户和项目,因此算法为图书消耗更多的时间。
Table 3. CPU time consumed per iteration of all algorithms (s)
表3. 所有算法每次迭代所消耗的CPU时间(秒)
算法 |
书籍 |
电影 |
PMF |
1.7 |
1.9 |
BPTF |
15.2 |
18.6 |
SocialMF |
2.9 |
2.7 |
TagMF |
4.2 |
3.9 |
TemporalMF |
4.4 |
4.0 |
在TemporalMF算法中,参数
起到了度量用户或项目对其关联信息敏感度的作用。
的数值增大时,用户或项目对其关系信息的依赖程度也随之提升。为了简化本次实验的复杂性,我们设置
。
的值分别设置为0.1,0.5,1,5,10和20。另外,我们将K设为5。不同
的TemporalMF在书籍和电影上的表现如图5所示。
Figure 5. TemporalMF’s performance in books and films under different
图5. 不同
下TemporalMF在书籍和电影的表现
从结果可以看出,参数
对TemporalMF的影响较大。随着
的增大,TemporalMF的性能有所提高。这一现象有力验证了本文中通过时间信息所构建关系的可信度及其对改进算法性能的积极促进作用同时,观察到当
值增至20时,其对TemporalMF的正面效应开始呈现递减趋势,这主要是由于
值过大可能会引起算法对训练数据的过拟合现象,导致准确率下降。
为了比较算法在不同稀疏度条件下的效果,我们以用户评分数为基础,将训练集中的用户分为[0:10],[10:100],[100:500]和[500:inf]四组。图6展示了在两组数据中,各组用户占比的具体分布情况。
在对数据进行相应的划分后,我们使用训练集学习相应的模型,然后计算测试集上四组用户的RMSE。我们观察到:
在数据极度稀疏的情况下(分数个数小于10),TemporalMF的改进效果不明显,相较于那些融入额外信息的SocialMF和TagMF算法,其表现相对较弱。主要原因在于,过于稀疏的数据致使TemporalMF构建的关系网络也非常稀疏,这直接影响了其预测的准确性。BPTF引入了参数训练方法,性能优于TemporalMF。然而,TemporalMF仍然比传统的PMF更好。
值得注意的是,即使在这样的情况下,TemporalMF依然胜过传统的PMF算法。随着用户评分数据量的增加,TemporalMF相较于TagMF、SocialMF以及BPTF表现出更佳的性能,这进一步证实了本文所提出的基于时间序列影响关系的确能有效提升推荐系统的精确度。
Figure 6. The proportion of users in each group in the two groups
图6. 两组数据中每组用户占比
Table 4. Root-mean-square error of each algorithm with different user scores (books)
表4. 不同用户分数下各算法的均方根误差(书籍)
算法 |
[0, 10) |
[10, 100) |
[100, 500) |
[500, inf) |
PMF |
0.8411 |
0.7504 |
0.7321 |
0.7777 |
BPTF |
0.8324 |
0.7402 |
0.7158 |
0.7320 |
SocialMF |
0.8301 |
0.7423 |
0.7256 |
0.7541 |
TagMF |
0.8227 |
0.7354 |
0.7148 |
0.7318 |
TemporalMF |
0.8400 |
0.7258 |
0.7125 |
0.7320 |
Table 5. Root-mean-square error of each algorithm with different user scores (movie)
表5. 不同用户分数下各算法的均方根误差(电影)
算法 |
[0, 10) |
[10, 100) |
[100, 500) |
[500, inf) |
PMF |
0.8588 |
0.7501 |
0.7378 |
0.7458 |
BPTF |
0.8574 |
0.7408 |
0.7305 |
0.7402 |
SocialMF |
0.8361 |
0.7410 |
0.7304 |
0.7403 |
TagMF |
0.8114 |
0.7408 |
0.7304 |
0.7406 |
TemporalMF |
0.8362 |
0.7407 |
0.7302 |
0.7402 |
从表4和表5也可以看出,无论是使用TemporalMF还是其他算法,RMSE结果都不会随着评分次数的增加而继续降低。当评分数达到500及以上时,算法的效果开始下降。这主要是因为当分数数量较少时,数据的稀疏性会算法的表现产生了消极影响,此时模型易陷入过拟合状态,尽管对训练数据的拟合程度较高,但在未知测试样本上的预测准确性却偏低。随着评分数量的不断增加,数据密度逐渐提高,稀疏性问题得到缓解,算法性能随之逐渐改善。积累了足够多的评分后,用户的兴趣偏好可能出现多样化转变,这使得模型难以捕捉到用户稳定的特征和偏好,从而影响模型的准确性。因此合理控制样本数量对模型预测性能至关重要。从表4和表5可以观察到,对于本研究所使用的数据集而言,在用户评分样本数量位于(100~500)区间时,算法表现最优。
6. 结论
本研究利用时间信息建立用户(物品)消费网络。通过该网络,找到用户(项)潜在交互关系和最近邻集。进一步地,将此类动态关系信息巧妙融入到基于矩阵分解的协同过滤推荐算法体系中,从而有力提升了对用户评分预测的精确度。考虑到消费时间数据相比社交网络属性和标签信息更加易于取得,基于时间行为的协同过滤推荐方法在实际应用中表现出广泛的适应性和可行性。在对豆瓣推荐数据集进行的实证分析中,我们发现相较于传统的推荐算法,这种方法展现了一定的竞争优势。未来的研究工作中,我们将持续深化探究此方法在应对稀疏消费网络和用户与物品冷启动问题时所面对的挑战。此外,我们提出的关联性获取策略并不仅限于概率矩阵分解算法范畴,它同样适用于与其他类型的矩阵分解方法相结合。未来计划还包括进一步探索将此技术运用于电子商务产品推荐预测的优化提升。
NOTES
*通讯作者。