协同过滤推荐算法(着重时间方面)
协同过滤算法的几个主要步骤:
- 收集用户偏好(评分、页面停留时间、点击次数、评论、收藏),将这些信息数字化,在矩阵中表示出来。偏好就是隐性特征空间。
- 对收集的数据进行减躁和归一化处理。
- 计算相似用户或物品的相似度(计算向量之间的距离)。
- 根据相似性进行预测(加权求和)。
- 推荐
协同过滤算法中基于时间的推荐算法主要分为:
1.分类时间感知算法(时间具有周期性,用户在相同的时间变量具有相同的兴趣)
2.连续时间感知算法(兴趣随时间逐渐变化,具有连续性和时间衰退性)。
协同过滤算法具有推荐新项目的能力,可以发现用户潜在的但自己尚未察觉到的兴趣偏好;不需要领域知识,被推荐的项目可以属于任何领域,但缺点是:存在冷启动问题,不能为新用户推荐。为了解决这个问题:提出引入上下文情景信息。上下文情景信息指:用户与项目互动行为发生的时间、地点等信息。时间信息作为一种很重要的上下文情景信息,包括用户行为的时间信息、季节假日信息,用户的偏好会随着时间发生变化。可以将一个系统中用户兴趣随着时间发生变化这一现象看做概念漂移。概念漂移主要分为两种:一种是突发性的,另一种是渐变性的。例如:当一个家庭有新生儿后,这个家庭的购物偏好会突然发生转变,会突然大量购买婴幼儿产品,这属于突发性的变化;而一个家电的寿命则是随着时间慢慢发生转变,这属于渐变性的变化。如何在概念漂移研究环境下选择数据问题(即用户偏好随着时间变化),可以引入时间衰减函数,因为许多文献表明用户近期的行为更能反映用户的兴趣。时间衰减函数需要满足的条件是取值范围在(0,1)之间且随着时间单调递减,时间越近,时间衰退函数的取值越大。衰减函数的定义有多种,可以表示成指数、对数、幂函数的形式。具体的以后再介绍。
当然对时间的处理有多种方法,时间信息在推荐算法中的常用处理方法:
1.时间衰减函数。
2.滑动窗口
3.采用增量计算的方法
4.将用户/项目的变化融入到模型中
参考文献:
1.推荐系统的改进--在SVD协同过滤算法中引入时间衰退函数
2.https://blog.csdn.net/T7SFOKzorD1JAYMSFk4/article/details/81212427