范铭煜
摘 要:推荐算法被应用在商品购物、音乐推荐、书籍推荐等网站。如何根据这些已有的用户行为数据让用户快速做出抉择,推荐算法显得十分重要。传统的协同过滤算法没有考虑到用户的兴趣是随时间而变化的。文章首先在传统的协同过滤算法的基础上构建时间变化函数,对用户以往的评分数据,对数据做时间加权,提高预测用户兴趣的能力。针对当前推荐算法都会遇到的评分稀疏性问题,文章提出了把基于时间权重的协同过滤算法与基于关联规则的推荐算法进行混合推荐,提高了算法的准确率。
关键词:推荐算法;时间加权;基于内容;混合推荐;MAE
1 推荐算法研究现状
(1)协同过滤:协同过滤算法根据具有相同行为习惯的人对用户进行推荐[1]。
(2)基于内容的推荐算法:基于内容的推荐算法,实际上是对用户行为数据的属性信息进行分析,包括了用户的属性及商品的属性。
(3)混合推荐算法:混合推荐算法避免了单一算法的弊端,将几种算法进行结合,达到取长补短的效果。
2 基于时间权重的协同过滤算法
2.1 时间相关算法介绍
为了提高推荐算法的精度,时间是比较重要的信息,它具有一定的时效性[2]。根据用户行为的时间信息发现用户兴趣的变化。将用户的评分融入协同过滤算法[3],目前有两种主要的算法时间感知算法和时间依赖算法[4-5]。
时间感知算法的主要思想是用不同的分类方法对时间进行分类。用户的兴趣具有周期性是将能够采用这种分类方法。实验也证明了这种方法的结果优于未利用时间感知信息的推荐算法。
时间依赖算法则是把用户的兴趣变化和时间紧紧地联系在一起,认为用户的兴趣变化和时间是连续变化的量。假设考虑时间因素,那么每个用户近期的评分比之前远期的评分更能反应用户的兴趣偏好。所以时间依赖算法在传统推荐算法的基础上加入了时间因子,给近期的评分更大的参考价值。
2.2 相似度计算
用户的相似度计算主要有余弦相似度和Pearson相关系数两种方法,同时还有对Pearson相关系数加以约束计算用户间的相似性。皮尔森相似度公式为:
Pearson相关系数的方法将用户的评分标准不同纳入了考虑范围,因为每个用户的评分标准尺度不同。Pearson系数消除了用户之间平均值差异的可比性。接下来根据相关数据来预测用户对未曾看过的电影的评分,预测评分公式为:
2.3 时间加权函数
首先定义一个半衰期参数因子T:F(T)=(1/2)f(0),时间权重定义在T天后,时间权重变为原来的1/2,然后定义了一个衰变率ɑ∶ɑ=1/T。时间衰减函数为:
时间衰减函数的值域从0到1,随着时间的推移,历史评分数据越久远的权重会越来越小。当t=0时,表示函数值为1,此时权重最大。参数T0决定了历史评分数据的衰减率,当参数发生变化时,时间函数的曲线会发生变化。
2.4 基于时间权重的相似度计算公式
当用户在计算相似用户时,给每个评分引入了以时间为参数的函数f(a),修改后的公式为:(假设用户分别为u1,u2)。
以上公式带有时间信息,由此可以生成带有时间信息的用户—商品的评分矩阵,利用当前用户的平均评分偏差,实现对用户推荐项目的预测评分。
3 本文方法
3.1 实验设置
本文采用的方法为基于关联规则的推荐算法和基于时间的用户协同过滤算法两种策略做混合推荐,进一步提高算法的精度。
3.2 混合推荐过程
混合推荐分以下几个步骤:(1)利用用户—商品评分矩阵计算用户之间的相似度。选举前N个最近邻居,利用时间衰减函数和Pearson相关系数计算预测评分。(2)用Apriori关联规则分析算法挖掘频繁项集,选取前N个置信度最大的项目。(3)将上述的结果集进行取并操作,生成推荐列表。
4 实验方案
4.1 实验数据
MovieLens-1M数据集,包含大约100万条用户评分记录。数据集包含用户信息、电影信息、用户对电影的评分信息、评分时间戳,是6 040个用户对3 900部电影的1 000 209条评分记录。评分分5个等级,1分表示用户很不喜欢电影,5分表示用户非常喜欢电影。
4.2 环境配置
硬件环境:
(1)windows10
(2)CPU:intel7代8700k
(3)内存24 G
软件环境:Pycharm
4.3 实验对比环节
(1)在相同数量的最近邻居的情况下选择不同的时间因子,进行MAE值的比较;再选取相同的时间因子不同的邻居数进行MAE值对比。
(2)比较混合的推荐算法与传统协同过滤算法在MAE值的差异。
4.4 算法评估
MAE表示评分之间的平均评分偏差。MAE取值0~1。MAE越小,表明算法的推荐效果越好。计算公式表示如下:
P:用户U对商品M的预测评分;R:用户U对商品M的评分;N:商品的总数量。
5 实验结果与分析
(1)选取不同的时间跨度参数T,得到衰变率ɑ,比较不同的时间衰变因子对MAE的影响。最终统计结果如表1所示。
可以得出:随时间因子增大,MAE值逐渐减少,证明了时间跨度距离现在越近,预测结果更加符合用户的偏好。
(2)将基于关联规则算法和基于时间的协同过滤的混合推荐算法同协同过滤算法进行比较,进一步提高算法准确率。MAE值如图1所示。
6 结语
通过构造时间函数模拟用户兴趣随时间变化的规律,融合在用户对项目的评分信息中,与此同时通过关联规则挖掘商品之间的潜在关系,解决用户—项目评分矩阵稀疏性问题,通过构成混合推荐算法,进一步提高了推荐算法的精度。
[参考文献]
[1]BOK K,LIM J,YANG H,et al.Social group recommendation basedon dynamic profilesand collaborative filtering[J].Neurocomputing,2016(C):3-13.
[2]毛晓勐.基于时间效应的协同过滤推荐算法研究[D].上海:华东师范大学,2016.
[3]郑志高,刘京,王平,等.时间加权不确定近邻协同过滤算法[J].计算机科学,2014(8):7-12.
[4]VINAGRE J,JORGE A M.Forgetting mechanisms for scalable collaborative filtering[J].Journal of the Brazilian Computer Society,2012(4):271-282.
[5]CAMPOS P G,DIEZ F,Cantador I.Time-aware recommender system:a comprehensive survey and analysis of existing evaluation protocols[J].User Modeling and User-Aadapted Interaction,2014(1-2):67-119.
(編辑 傅金睿)