您的位置:首页 > 其它

如何捕捉推荐系统中随时间变化的动态信息

2013-12-21 22:13 309 查看
首先来看为时间信息建模的重要性

事物是动态变化的。不仅是人的喜好、品味会随着时间的推移改变(比如,一个喜欢看韩剧的用户渐渐喜欢上了国产“恐怖片”;或用户打分的标准比以往更严格了,感觉极好的也只打4分)。物品的流行度也会随着其他物品的出现,时间的发展而改变(文中显示,老电影评分tend to 比新电影的高)。因此,让推荐系统捕捉到用户和物品的改变能显著地提高推荐的准确度。[2]

进一步,用户和物品的变化可以分两种:long-term trends 和 temporary effects。 模型的目的应该是捕捉到长期的变化趋势,忽略一些暂时表现出的noise。以往的方法会对以前的评价赋予较小的权值,以重点考虑当前的行为。但作者指出在衡量物品间的相似度方面,历史评价记录跟最新评价是同样efficient的(如,看了A的90%用户也看了B,那么A和B是相似的,这点无论在过去还是现在都成立)。[2]

接下来看两个实际的模型

[1] Exploring Temporal Effects for Location Recommendation on Location-Based Social Networks

作者在矩阵分解中加入时间信息,它利用了用户签到在时间上的两个属性:首先,用户在不同时间呈现不同的签到喜好。其次,用户在相邻时间呈现的签到喜好是相近的。因此,假设总共有T个时间段,该方法为每个用户在T个时间段分别创建用户preference矩阵。然后对相邻时段的两个preference矩阵的差值做约束 —— 约束因子为对应时段两个签到向量的余弦相似度。

[2] Collaborative Filtering with Temporal Dynamics

首先解释几个词的意思(自编,仅供参考):

物品bias:某一样物品内在就比其他好,于是获得的评分相对高一般水准要高个0.4分,比如说。

物品的bias动态:举个例子,虽然一个电影从质量上来讲要高于其他电影0.5分,但实际表现出来的差值在不同时间段是不同的 —— 动态变化的

用户bias:每个用户心中的基准分是不一样的。对于大家都认为一般的电影,有人给3分,有人给4分。

用户的bias动态:举个例子,一个用户打分标准变宽松了,平均提高了0.3分 —— 动态变化了

1、作者首先为系统的bias建模。

为物品的bias动态建模:因为物品的变化相对人的变化要小,所以可以把总的时间段分成几段(文中采用的是10周一段),并为每一段分别赋一个物品bias值。

为用户的bias动态建模:由于人比物易变,因此这里采用的时间段长度是1天。大体上,若以函数 f 来建模,其自变量x就是时间点t到参照时间点t_0的距离。当然,f(|t-t_0|)可以是线性函数,也可以是更复杂的函数。另外,作者发现用户一天中的评论趋向于集中在一个评分上,即方差小。于是他又为用户加上一个按天计的bias(原文:assign a single parameter per user and day, absorbing the day-specific variability)。至于参照时间点t_0的选取,文中采用评分记录覆盖的时间段的中间位置。

这里有个疑问:既然是per user and day,那如果测试集数据采集的日期大于训练集采集的日期怎么办?

2、这些与用户真正喜好无关的bias被建模之后,剩下的就能更准确地反应用户的喜好和物品的类属。于是可以大胆地使用隐语义和基于邻域的方法了。

对于隐语义:保持物品的特征不变,使用之前类似的思想给用户的特征加上了随时间的线性变化。

对于邻域模型:由于用户兴趣的变化,过去打5分的电影与现在打5分的电影“相似度”不大可能高(比如,以前他打5分的恐怖片可能现在只会给3分,因为他转性看文艺片了)。所以一个物品对另一个物品的参考价值,是随时间距离的增长而递减的。

这个模型为称为timeSVD++,当特征维度为200,它在Netflix上取得了0.8799的成绩。

总结

其实要在推荐系统中加入时间因素很直观,可以把捕捉用户动态的问题看成一个regression问题。但问题是这种变化通常不是连续的[1][2]。解决的办法是同时捕捉连续和离散的成分。连续成分:使用全局的regression函数来捕捉。离散成分:将timeline分段,并为每段设置独有的基准值。可以看到,[1]中的基准值是那T个用户preference矩阵。[1]不同于[2]的做法是,不使用连续的函数,而是改用“使相邻两个变量的差值尽可能小“的限制。不过本质上都是一样的。

参考文献:

[1] Exploring Temporal Effects for Location Recommendation on Location-Based Social Networks

[2] Collaborative Filtering with Temporal Dynamics
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: