- 1 -
中国科技论文在线
一种基于时间效应和用户兴趣变化的改进
推荐算法
孙光辉1,2,孟祥武1,2**
作者简介:孙光辉(1987-),男,硕士研究生,主要研究方向为上下文感知推荐系统
通信联系人:孟祥武(1966-),男,教授,博士生导师,主要研究领域为网络服务、智能信息处理、通信
软件
(1. 北京邮电大学智能通信软件与多媒体北京市重点实验室 北京 100876; 5
2. 北京邮电大学计算机学院 北京 100876)
摘要:该文针对传统的协同过滤推荐算法较少考虑用户兴趣的变化而导致推荐结果不理想的
问题,提出一种基于时间效应和用户兴趣变化的改进推荐算法。该算法通过借鉴心理学上的
遗忘规律,依据评价时间确定每项评分的重要性,将用户的兴趣变化用遗忘规律进行模拟,10
并与协同过滤算法进行结合,综合考虑时间效应和用户的兴趣变化对用户之间相似度的影
响,最终为用户提供高效的推荐。实验结果表明,与传统的协同过滤推荐算法相比,该算法
提高了推荐结果的准确性。
关键词:推荐系统;协同过滤;兴趣变化;时间效应;遗忘曲线
中图分类号:TP393 15
A Recommended Algorithm based on Time Effect and
Changes in user interest
SUN Guanghui
1,2
, MENG Xiangwu
1,2
(1. Beijing Key Laboratory of Intelligent Telecommunications Software and Multimedia, Beijing 20
University of Posts and Telecommunications, Beijing, 100876;
2. School of Computer Science, Beijing University of Posts and Telecommunications, Beijing,
100876)
Abstract: According to the problem of less consideration changes in user interests in the
traditional collaborative filtering recommendation algorithm, a recommended algorithm based on 25
time effect and changes in user interest is proposed. It simulated changes in user interests based on
the forgotten laws on psychology, and with the combination of collaborative filtering algorithms,
considering the effect of similarity between the users under the time effect and the interest change,
providing efficient recommendation for users at results show that the algorithm
based on time effect and changes in user interest improves the recommendation accuracy 30
Compared with the traditional collaborative filtering algorithm.
Key words: Recommended systems; Collaborative filtering; Time effect; Changes in interest;
Forgetting Curve
0 引言 35
推荐系统[1][2]作为处理“信息过载”和“信息迷航”的主要方法,已经吸引了越来越多
的学者和研究人员投身其中。它能够快速并智能地帮助用户从互联网庞杂的信息海洋中找到
自己真正感兴趣的部分,提高信息检索效率。推荐系统一般包括基于内容的过滤和协同过滤
两大最为经典的推荐技术。其中,协同过滤是推荐系统领域最为成功的算法。最著名的两个
协同过滤算法是基于用户的协同过滤算法(UserCF)和基于项目的协同过滤算法(ItemCF),在40
学术界和业界都得到了广泛研究和应用。
然而随着互联网技术的快速更新迭代,较早期的一些推荐算法已经不能很好的支持用户
- 2 -
中国科技论文在线
动态变化的兴趣和多种多样的需求,将用户的兴趣变化和系统时效性加入到推荐算法中,已
经成为推荐领域一个很重要的研究课题。本文从传统的协同过滤算法的分析出发,将反映人
们遗忘规律的艾宾浩斯遗忘曲线[3]作为时间效应因子引入到了推荐算法中,并对传统的协同45
过滤算法进行改进,提出了一种基于时间效应和用户兴趣变化的推荐算法,使其能够适应用
户的兴趣变化和项目的时效性。
本文第 1 节简单介绍了协同过滤及相关研究背景,第 2 节提出了基于时间效应和用户兴
趣变化的改进推荐算法,第 3 节介绍了实验过程和实验结果分析,最后总结全文。
1 相关工作 50
基于用户的协同过滤算法(UserCF)是推荐系统中最早期的算法。其大致思想是,当需要
给用户 A 进行个性化推荐时,可以先找到和用户 A 有相似兴趣的其他用户,然后把那些用户
喜欢的、而 A 没有产生过行为的物品推荐给 A。因此,基于用户的协同过滤算法首先要找到
与目标用户有相似兴趣的用户集合,然后找到相似用户集合中用户喜欢的、且目标用户没有
产生过行为的物品推荐给目标用户。算法最关键的部分就是计算两个用户的兴趣相似度。而55
基于项目的协同过滤算法(ItemCF)思想是给目标用户推荐那些和他们之前喜欢的物品相似
的物品。比如,该算法会因为你购买过《机器学习》而给你推荐《数据挖掘绪论》。不过,
基于项目的协同过滤算法并不利用物品本身的属性计算物品之间的相似度,而主要是通过分
析用户的行为记录计算物品之间的相似度。该算法计算相似度的思想是,两个物品具有很大
的相似度是因为喜欢物品 A 的用户大部分也喜欢物品 B。 60
UserCF 是给用户推荐那些和他有相同兴趣爱好的用户喜欢的物品,而 ItemCF 给用户推
荐那些和他之前感兴趣的物品类似的物品。从算法的原理可以看出,UserCF 对用户兴趣的
反映程度要大于 ItemCF。因此,本节从 UserCF着手,通过对 UserCF 进行改进,设计一种
基于时间效应和用户兴趣变化的推荐算法。
基于用户的协同过滤算法(UserCF)主要通过分析用户行为来计算用户之间的相似度。算65
法主要包括三个步骤:(1)计算用户之间的相似度(2)根据用户的相似度列表,找出和目标目
标用户最为相似的邻居用户(3)将邻居用户中目标用户没有产生过行为的物品推荐给目标用
户。它一般通过皮尔森系数计算用户之间的相似度:
( , ) ( , )
2 2
( , ) ( , )
( )( )
( , )
( ) ( )
ab
ab ab
a s a b s b
s S
u
a s a b s b
s S s S
r r r r
sim a b
r r r r
(1)
其中,
ab a bS S S 表示用户 a和用户b共同评分过的对象集合, ( , )a sr 表示用户 a对对象 s的评70
分,
ar 表示用户 a对对象的平均评分。
偏好预测则普遍采用的是加权平均预测公式[1]:
'
( ,s)=k ( , ') ( ', )u
u N
R u sim u u R u s
(2)
其中集合 N 为用户 u 的邻居集合, k为一个标准化因子,
1
| ( , ') |'
k
sim u uu N u
。
我们可以看到,这种传统的推荐算法在设计时并没有主动的考虑到时间因素,用这种方75
法给用户的推荐结果不会随着新的物品、新的用户行为不断加入到推荐系统中而动态变化。
例如过去喜欢喜剧类电影的用户 A 现在喜欢科幻类电影,用户 B 喜欢喜剧类电影,用户 C
喜欢科幻类电影。由于用户 A 和用户 B 过去的兴趣相似并且他们对项目的评分也相似,所以
用户 A 和用户 B 的相似度要比用户 A 和用户 C 的相似度高。在确定用户 A的邻居用户时,传
- 3 -
中国科技论文在线
统的协同过滤算法就会选择用户 B 而不是用户 C。如表 1 所示,如果要预测用户 A 对电影 480
的评分值,按照传统的协同过滤算法,用户 B将是用户 A的邻居。然而,通过表 2 可以发现
2013 年用户 1 逐渐喜欢上了科幻片,这时,他的相似用户应该是 C 而不是 B。可见,在这种
情况下传统的协同过滤算法并不能给出好的推荐结果。
表 1 用户评分表 表 2 用户评分时间表
User rating User rating time 85
电影 1
喜剧
电影 2
喜剧
电影 3
科幻
电影 4
科幻
电影 1
时间
电影 2
时间
电影 3
时间
电影 4
时间
用户 A 5 5 5 ? 用户 A 2012-3 2012-4 2013-4 2013-5
用户 B 5 5 1 2 用户 B 2012-3 2012-4 2012-4 2012-6
用户 C 2 2 2 5 用户 C 2012-3 2012-5 2013-5 2013-6
针对上述问题,一些学者已经在传统的推荐算法上引入了时效性和用户兴趣变化的因
素。Ding 在文献[4]中提出,用户未来的兴趣主要受他近期兴趣的影响,所以推荐算法应该
加重用户近期行为对最终结果的影响。他们通过在协同过滤算法的基础上引入时间衰减函数
来提高了推荐的准确度。Lu[5]修改了传统的协同过滤算法中的矩阵分解模型,将用户和物品90
的特征向量看作一个随时间变化的动态特征向量,从而将时间作为新的一维建模到推荐模型
中去。此外,Koren 等人在文章[6]中提出了几种主要的时间效应,包括:用户兴趣随着时间
变化、物品偏好随着时间变化、用户行为的季节效应等。Koren 用矩阵分解的模型对上面的
时间效应进行建模,并利用随机梯度下降法对模型进行优化。该模型相对于其他模型取得了
很大的提高。 95
2 基于时间效应和用户兴趣变化的推荐算法
基于本文在传统的协同过滤基础上,结合用户兴趣随时间变化的规律,设计一种基于时
间效应和用户兴趣变化的推荐算法。
以上面的情况为例,我们在寻找目标用户邻居的时候考虑用户兴趣随时间的变化,在计
算用户间评分相似度的时候,需要引入一个时间函数 ( )f t [7][8] 100
0
max 0
( ) 1cur
T T
f t m m
T T
(3)
其中, curT 为用户评分的实际时间, 0T 为系统开始时间, maxT 为系统用户最后一次产生行为
的时间。系数m 反映 ( )f t 的遗忘能力,m 越大遗忘的越快,反之越慢。当m =1 时, ( )f t 对
用户评分进行完全的线性遗忘;当0 1m 时,进行部分的线性遗忘;当 0m 时,未进
行线性遗忘,即用户兴趣不发生变化。m 值的设置受推荐系统中用户兴趣变化速度的影响,105
若用户兴趣变化快,则m 的值应大些,反之应小些。
本文将反映人们遗忘规律的艾宾浩斯遗忘曲线作为参数引入到了推荐算法中。艾宾浩斯
遗忘曲线是德国心理学家艾宾浩斯对人们的遗忘现象做的系统的研究,他用无意义的字母组
合作为记忆材料,在一系列的时间间隔后检查人们对记忆材料的遗忘率,并将随时间变化的
遗忘率绘制成一条曲线,曲线表明了人们遗忘的过程不是均匀的,起初遗忘的快,后来就逐110
渐减慢了。这和人们的遗忘规律相似,可以用来作为反映用户兴趣变化的曲线,下图是艾宾
浩斯遗忘曲线图。
- 4 -
中国科技论文在线
图 1 艾宾浩斯遗忘曲线图
The Ebbinghus Forgetting Curve 115
通过用 Matlab 对艾宾浩斯遗忘曲线进行拟合,确定系数(R-square)和修正的确定系数均
表明,指数函数相对其他类型的函数得到的拟合结果更加准确,将曲线拟合后得到的函数为:
( ) xf x e e (4)
将艾宾浩斯遗忘曲线与公式(3)进行结合,可以得到反映用户兴趣变化的函数为:
0 0
max max
( ) ( )
( ) ( )
2 2( )
cur curT T T TT T
curf T e e
(5) 120
其中 ( )curf T 为单调非递增, curT 为用户评分的实际时间, 0T 为系统开始时间, maxT 为系统用
户最后一次产生行为时间。即距离系统当前时间越远,时间权重越小,对用户的总体兴趣贡
献越小。
将遗忘曲线函数引入到皮尔森系数中,可以反映出用户在对物品评分时的兴趣变化。
引入时间函数后新的用户评分相似度公式为: 125
( , ) ( , )
2 2
( , ) ( , )
( ( ) )( ( ) )
( , )
( ( ) ) ( ( ) )
ab
ab ab
a s a b s b
s S
u
a s a b s b
s S s S
r f t r r f t r
sim a b
r f t r r f t r
(6)
在计算出用户之间相似度的时候,使用以上改进公式可以反映出用户兴趣随时间变化的
特征。同时,为了反映项目时效性随着时间变化的特征,我们采用一种时效性预过滤的方法,
在计算用户相似度之前,对相似用户集进行时效性划分。即将符合一定时效性集合中的用户
作为有共同评分项目的用户集,将不在这个集合中的用户过滤掉,可以减少运算次数,提升130
效率,同时可以提高项目时效性,避免冗余用户和项目对推荐结果的影响。
设数据集中用户集合为 1 2 3 4, , , ,..., nU U U U U U ,项目集合为 1 2 3 4, , , ,..., mI I I I I I ,同
时用一个三元组 , ,User Item Time 表示数据集中的一条记录,每一条记录表示为
, ,i j kC U I T 。我们在进行相似度计算之前,先判断两个用户共同评分的记录是否属于同
一个时效性集合,每一个目标用户都会对应存在一个时效性集合。假设存在记录135
1 1 2 1, , tC U I T 、 2 1 2 2, , tC U I T 和 3 1 2 3, , tC U I T ,如果 1t 和 2t 时间间隔在时效性集合的时
间内,我们就认为这是一条符合条件的记录;如果 3t 和 1t 时间间隔不在时效性集合的时间内,
就在计算相似度之前把它预先过滤掉。
这样,在每一次对目标用户进行相似度计算之前,用预过滤的方式过滤掉不符合时效性
的记录,可以提高效率、增加推荐准确度。 140
- 5 -
中国科技论文在线
3 实验过程及结果分析
本文实验环境为:Intel(R)处理器, CPU , RAM 2GB,Windows XP SP3 操作系统,
Java 开发语言,MyEclipse 集成开发环境和 数据库。
数据集
为了验证本文提出推荐方法的准确性和有效性,及其相对传统协同过滤算法具有更优的145
推荐准确度,分别使用两个数据集展开实验。一个是公开可用的面向上下文感知的电影推荐
的评分数据集 Moviepilot[9],一个是从中国电信应用商城天翼空间()上采集
的用户下载记录。
(1)Moviepilot 公开数据集
Moviepilot 数据集包含用户对电影评分的时间上下文信息,所以可以用来作为基于上下150
文推荐算法的实验数据集(评分值是从 0 到 100 的整数)。本文从原始数据集中选出评分记
录最多的用户和测试集中的用户作为用户集,最终采用的训练集包括 2,320 个用户对 23,628
部电影的 1,628,955 条评分记录。
(2)中国电信应用商城数据集 电信应用商城数据集采集的数据是从 2013 年 1 月 11 日
21 时 46 分到 2013 年 2 月 14 日 22 时 16 分的电信用户在商城中的应用下载情况。从原始数155
据集选出了下载记录最多的 200 个用户,包含了对 1147 个应用的 4039 条下载记录,平均每
个用户下载应用的个数为 20 个。
度量标准
为了验证推荐性能,将数据集 D 划分为训练集和测试集,并使用命中率 ( )H rate 和
@P N指标来评测推荐结果。假定
T
D 表示目标用户 u 在测试集中下载的应用集合,其数量160
为M ,
u
R 表示通过推荐算法为 u 推荐的M 个应用集合,则命中率定义为:
-rate
| |
T uu
Tu
D R
H
D
(7)
@P N
[10]表示为目标用户 u 生成的 TOP-N 推荐列表中符合用户需求的项目数与 N 的比值:
#relevant items in top N items for u
(u)@ =P N
N
(8)
实验过程与结果分析 165
基于 Moviepilot 公开数据集的实验
本实验首先将训练集和测试集中的时间戳按月份归类,用户的兴趣变化以月份为单位。
首先根据用户对每项评分值的评分时间,得到遗忘曲线函数,之后根据公式(1)和(6)来分别
算出基于传统协同过滤的推荐准确度和本文提出的一种基于时间效应和用户兴趣变化的推
荐算法的准确度。通过进行交叉实验验证,在进行时效性集合预过滤的时候,我们设定时效170
性集合的时间间隔是六个月。
实验结果见图。从中可以看出,在选取不同邻居数目的情况下,本文提出的改进算法与
传统协同过滤算法相比,均具有更高的命中率及更高的 @P N准确率,表明改进算法在考虑
时间效应和用户兴趣变化后,比传统协同过滤算法有更高的推荐质量。
- 6 -
中国科技论文在线
175
图 2 Moviepilot数据集命中率及 P@50实验结果
The H-rate and P@50 in Moviepilot Dateset
基于中国电信应用商城天翼空间数据集的实验
电信应用商城数据集采集的数据是从 2013 年 1 月到 2 月将近一个月时间电信用户在天
翼空间中()的应用下载情况,由于下载记录中包含用户下载时间,因此直180
接通过用户下载应用的时间计算得到影响推荐结果的遗忘曲线函数。从原始数据集选出了下
载记录最多的 200 个用户,包含了对 1147 个应用的 4039 条下载记录本文将 4039 条下载记
录按时间先后进行排序,将前 3200 条记录取出,作为训练集,后面的 839 条记录作为测试
集,同时设定时效性集合的时间间隔是 15 天。实验结果如图所示。
185
图 3 天翼空间数据集命中率及 P@50实验结果
The H-rate and P@50 in Telecom Dateset
同样地,在选取不同邻居数目的情况下,本文提出的改进算法与传统协同过滤算法相比,
均具有更高的命中率及更高的 @P N 准确率,考虑时间效应和用户兴趣变化提高了推荐质
量。 190
4 结论
该文针对传统的协同过滤推荐算法较少考虑用户兴趣的变化而导致推荐结果不理想的
问题,提出一种基于时间效应和用户兴趣变化的改进推荐算法。该算法通过借鉴心理学上的
遗忘规律,依据评价时间确定每项评分的重要性,将用户的兴趣变化用遗忘规律进行模拟,
并与协同过滤算法进行结合,综合考虑时间效应和用户的兴趣变化对用户之间相似度的影195
响,最终为用户提供高效的推荐。对比实验表明,该算法相对于传统协同过滤推荐算法,较
大地提高了推荐准确度。在现有研究的基础上,在以后的工作中还需要做更深层次的探索,
比如如何更加细化地实现不同时效性下的推荐重心,将是下一步研究工作的重点。
[参考文献] (References)
[1] Adomavicius G, Tuzhilin A. Towards the next generation of recommender systems: a survey of the 200
state-of-the-art and possible extensions[J]. IEEE Transactions on Knowledge and Data Engineering, 2005, 17(6):
734-749.
- 7 -
中国科技论文在线
[2] 许海玲, 吴潇, 李晓东, 等. 互联网推荐系统比较研究[J]. 软件学报, 2009, 20(2): 350-362.
[3] Zeng L, Lin L. An Interactive Vocabulary Learning System Based on Word Frequency Lists and Ebbinghaus'
Curve of Forgetting[C]. Digital Media and Digital Content Management (DMDCM), 2011 Workshop on IEEE, 205
Hangzhou, China, 2011: 313-317.
[4] Ding Y, Li X. Time weight collaborative filtering[C]. Proceedings of the 14th ACM international conference
on Information and knowledge management, New York, USA, 2005: 485-492.
[5] Lu Z, Agarwal D, Dhillon I S. A spatio-temporal approach to collaborative filtering[C]. Proceedings of the
third ACM conference on Recommender systems, New York, USA, 2009:13-20. 210
[6] Koren Y. Collaborative filtering with temporal dynamics[C]. Proceedings of the 15th ACM SIGKDD
international conference on Knowledge discovery and data mining, New York, USA,2009:447-456.
[7] 行春晓, 高凤荣, 战思南等. 适应用户兴趣变化的协同过滤推荐算法[J]. 计算机研究与发展, 2007, 44(2):
296-301
[8] Li Z, Lin J. An Analysis of the Subscription in User-Generated Content Video Systems[C]. Computer 215
Communications and Networks (ICCCN), 2012 21st International Conference on IEEE, Beijing, China, 2012:1-7.
[9] Wang Li-cai, Meng Xiang-wu, Zhang Yu-jie, et al.. New approaches to mood-based hybrid collaborative
filtering[C]. In Proceedings of the Workshop on Context-Aware Movie Recommendation at the 4th ACM
Conference on Recommender System, Barcelona, Spain ,2010:28-33.
[10] 徐风苓, 孟祥武, 王立才. 基于移动用户上下文相似度的协同过滤推荐算法[J].电子与信息学报, 2011, 220
33(11): 2785-2789