作者简介:董立岩(1966-),男,教授,博士生导师.研究方向:数据挖掘.E-mail:dongly@jlu.edu.cn
针对传统的协同过滤算法在计算相似度时未考虑时间因素的影响,导致推荐结果不准确的问题,本文提出将时间因素融入用户项目评分矩阵中,以解决兴趣衰减的问题。首先将遗忘曲线和记忆周期作为时间因素融入算法之中,将艾宾浩斯遗忘曲线用于指数函数拟合,从而获得时间与兴趣衰减的函数关系,以此用于优化用户项目的评分。并将改进的评分矩阵应用到基于项目的协同过滤推荐算法中进行推荐。在评分中加入记忆周期的影响,让目标用户对待预测的项目评分预测更为准确。实验结果表明,改进后的基于时间衰减协同过滤算法在准确性方面有显著的提高。
Since time factor is not considered in calculating score matrix in traditional collaborative filtering, the accuracy for recommendation is limited. In order to solve this problem, we propose a method, which integrates the time factor into the user score matrix. In this method, first the forgetting curve and the memory period are incorporated into the algorithm as the time factor. Then Ebbinghaus forgetting curve is fitted with potential function. This way can get more correct correlation function between time and interest decay. Finally all the results are imported into the user score matrix, and then the matrix is applied in collaborative filtering recommendation algorithm. The factors, which add the memory cycle to the score, make the target user predict the predicted project score more accurately. The experiments show that the results obtained with the proposed method are much more accurate than that of the original one.
推荐系统在电子商务领域占据着十分重要的角色, 它能够很好地处理信息过载的问题。目前, 推荐系统已经被不同程度的应用在各个大型的电商系统中[1]。推荐系统的应用价值很高, 好的推荐系统能够为商家带来高额的商业利润, 而推荐系统的核心便是推荐算法。推荐算法涉及到数学、人工智能、市场营销、认知、管理等多个学科的知识, 推荐算法已经成为计算机领域具有挑战性的研究课题之一[2]。
协同过滤的推荐算法主要是通过相似度计算, 寻找与目标用户相似度最高的用户, 将用户感兴趣的内容或相似度较高的其他内容推荐给最终用户[3]。基于协同过滤的推荐方法忽略了用户和项目自身的很多特征, 基于内容的推荐算法通过对用户和项目自身特征的充分分析和合理利用来获得更加理想的推荐效果。基于图结构的推荐算法是将用户-项目矩阵抽象为一个二部图, 将用户和项目分别用节点表示, 用户对项目的评分用图中的边表示, 结合资源分配的思想, 通过对该图的计算来为目标用户做推荐。混合推荐算法则是对以上几种推荐算法的组合。
汪静等[4]提出了融入共同评分及相似性权重的推荐算法。Choi等[5]提出在对项目的评分时, 将共同评分及待预测物品的相似性作为权重融入协同过滤推荐算法。朱思丞等[6]提出将时间因素作为影响因子融入算法中, 使用户的兴趣具有时效性。
本文在传统协同过滤算法基础上, 引入时间影响因素, 将艾宾浩斯遗忘曲线作为时间函数融入改进的算法之中, 并增加记忆周期影响因子, 使得项目的评分预测更为精确。
由于传统的算法没有考虑用户的兴趣与时间的关系, 这样会导致推荐系统的推荐结果有很大的偏差[7]。因为人们的兴趣会随着年龄的增长, 环境的转变而有所变化, 兴趣并不是一成不变, 影响兴趣的因素过多, 时间是最重要的影响因素之一。在文献[8, 9]中, 把时间作为因变量融合到算法中。
本文把反映人们遗忘规律的艾宾浩斯遗忘曲线融入到算法当中, 进而改善协同规律算法。遗忘曲线表示人们的爱好或者记忆随着时间节点会慢慢减弱[10]。本文对算法的改进加入了记忆周期[11], 在遗忘过程中, 如果重复某个记忆, 则会加深这个记忆并达到很久都不能遗忘的状态。
本文通过Python的matplotlib包, 对艾宾浩斯遗忘曲线进行拟合, 输入曲线数据, 即天数和记忆量, 观察形状, 可以用指数函数进行拟合, 结果如图1所示。
最终的艾宾浩斯遗忘曲线的拟合公式为:
式(1)为时间x与兴趣程度Wt的一个映射关系。
式中: Tui表示了用户u对项目i评分的时间, 因为在拟合的艾宾浩斯指数曲线中, 单位min。
结合式(1)(2), 获得用户兴趣随时间变化的函数:
本文采用余弦相似性及皮尔森相关系数来判断两个项目之间的相似度, 采用传统算法计算相似度的平均绝对偏差如图2所示。
通过以上实验对比结果可知, 采用皮尔森相关系数方法计算平均绝对偏差更理想, 相似度的计算结果更好。
皮尔森相关系数的改进公式为:
记忆周期表示用户对当前项目的熟悉程度。若记忆已经转换为长久记忆, 即使长时间没有接触, 记忆也不会有所衰减[12, 13]。通过加入记忆周期因子, 可对时间衰减进行修正。
设用户集U={U1, U2, …, Un}, 项目集合M={M1, M2, …, Mn}。
记忆周期因子的表达式如式(7)所示:
式中:Grade(Mi)表示目标用户对项目Mi 的评分, M(J, i.type)表示用户J参的项目, 其类型与项目i的类型相同。M(J, i.type)M(J)。本文将
最终的评分预测公式为:
式中:Sim(u, ui)表示目标用户u和用户ui 的相似度; N为用户u及用户ui 共同参与的项目数; gui, s 为用户ui 赋予项目s的分值。
基于时间衰减的协同过滤算法如下:
基于时间衰减的CF算法
输入:数据集S
输出:推荐影片的评分矩阵并选出Top20
1 for M=Movie(Ui)∩ Movie(Uj)
//遍历数据集S中的用户
2 φ t=
//计算用户每个项目的评分时间项
3 根据式(3), 计算Wt, 即每个用户对于已经评分的项目的遗忘值
4 end for //遍历结束
5 for Ui, Uj∈ S
//遍历数据集中的用户
6 M=Movie(Ui)∩ Movie(Uj)
//找到用户i和用户j共同评分过的项目
7 for Ma∈ M
//遍历项目集中共同评分过的项目
8 通过式(4)计算用户间相似度
9 end for
10 end for
11 选出每个用户相似度最高的10个用户, 获得相似用户矩阵USER
12 for Ui∈ USER
//遍历相似用户
13 Mnew=Movie(Ui)∩ !Movie(Uj)
//找到相似用户接触过但是目标用户没接触的项目, 获取项目集合Mnew
14 通过式(6)预测目标用户对Mnew的评分, 获取评分最高的N个MnewTopN
15 end for
16 return MnewTopN
实验所用数据集为MovieLens ml-1M版本数据集, 由984个用户, 2000个电影, 以及10万条评分组成。
根据数据集计算出每个用户评论每个项目的时间段, 形成用户行为的时间表, 如表1所示。
本文实验采用平均绝对偏差(MAE)和命中率[9]两种方案来进行改进后算法优劣的结果评定。
平均绝对误差计算公式为:
式中:ru, i为用户u的实际评分值; Pu, i为用户u的预测评分值。
命中率的计算即判断为用户推荐的
由式(7)和(8)可以判定出, MAE与推荐效果成负相关, 即MAE值越小, 推荐效果越良好。命中率与推荐效果成正相关, 命中率越高, 推荐效果越良好。
本文改进的算法与传统的算法相比, 实验结果如图3所示。
图3是对所有用户的MAE取出并进行均值计算获得的最终结果, 现随机取出20个用户, 用折线图来表示其MAE的一个趋势, 如图4所示更直观地看出新算法的MAE值
在总体上普遍小于传统CF算法。
由图3和图4可以看出, 把艾宾浩斯曲线引入作为时间曲线后以及加入记忆周期影响因子后, 其结果无论是对平均值还是对随机抽样的个体都有很好的改进, MAE值小了很多, 说明推荐结果优秀了很多。因此, 可以看出在协同过滤推荐中, 加入时间因素会使推荐结果更理想。
本文的改进算法与传统的算法相比, 在推荐准确度方面有所提高, 实验结果如图5所示。
由图5可以看出, 基于改进的协同过滤算法比传统的协同过滤算法在条件相同的情况下, 命中率更高。
本文将兴趣的时效性以艾宾浩斯曲线的形式融合到算法之中, 将时间衰减因素融合到皮尔森系数中。在后期评分预测时, 融入了记忆周期的影响因子。实验结果表明, 融合时间衰减因素的协同过滤算法在其他条件一致的情况下, 其推荐结果要优于未考虑时间因素的协同过滤算法, 在一定程度上可以为目标用户更好的推荐结果。
The authors have declared that no competing interests exist.
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|
[15] |
|