推荐系统算法需要考虑用户所处的上下文,包括时间、地点、心情等。比如,卖衣服的推荐系统在冬天和夏天应该推荐不同的服装,餐馆推荐系统应该基于用户的实时定位尽可能推荐离用户较近的。
5.1 时间上下文信息
5.1.1 时间效应简介
时间信息对用户兴趣的影响有以下几方面:
用户兴趣是变化的
物品本身具有生命周期
季节效应
5.1.2 时间效应举例
基于对一些食品的搜索量变化曲线分析。用户在夏天吃冰淇淋,冬天喝汤。而巧克力,则可以看到两个尖峰,一个是圣诞节,另一个是情人节。
5.1.3 系统时间特性的分析
包含时间信息的用户行为数据集由一系列三元组构成,其中每个三元组(u,i,t)代表了用户u在时刻t对物品i产生过行为。
物品的生命周期可以由以下两个指标度量:物品平均在线天数、相隔T天系统物品流行度向量的平均相似度。
5.1.4 推荐系统的实时性
实现推荐系统的实时性既要求系统对用户行为的存取有实时性,还要求推荐算法本身具有实时性。这意味着:
推荐系统不能离线计算推荐结果,而是在用户访问推荐系统时,根据用户这个时间点前的行为实时计算推荐列表。
推荐算法需要平衡考虑用户的近期行为和长期行为。
5.1.5 推荐算法的时间多样性
衡量时间多样性的指标是推荐系统每天推荐结果的变化程度,提高时间多样性的过程一般分为两步。
第一步是保证推荐系统能够在用户有新行为以后及时调整推荐结果。第二步是保证推荐系统没有新的行为时也能经常变化一下结果。比如在生成推荐结果时加入一定的随机性、对于用户近期看到过的结果进行适当降权、每天使用不同的推荐算法等等。
5.1.6 时间上下文推荐算法
给定时间T,物品i最近的流行度
在ItemCF中,物品相似度在引入时间信息后变为
这里引入了和时间有关的衰减项f,比如
预测公式在引入时间信息后被修正为
在UserCF中,用户相似度在加入时间信息后变为
预测公式在引入时间信息后被修正为
5.2 地点上下文信息
在餐厅推荐系统中,距离是用户考虑的重要因素。因此,许多基于位置的服务-LBS都提供了推荐“附近”的功能。
含地点上下文信息的数据集一般有3种不同的形式:
(用户,用户位置,物品,评分)
(用户,物品,物品位置,评分)
(用户,用户位置,物品,物品位置,评分)
用户兴趣和地点相关的两种特征是:兴趣本地化、活动本地化。
对于第一种数据集,早期将位置信息定义成树状结构,对于每一个用户的位置。将其分配到一个叶子结点中,该叶子结点中有和她同一个位置的用户行为数据集,随后基于ItemCF进行推荐。当然,我们也可以对树状结构中的中间节点也加入推荐模型,将整条路径所有节点的推荐结果进行加权以得到最终结果,这样可以解决用户量较少的叶节点的推荐问题。
对于第二种数据集,我们加入地点信息的方式一般是,加入一个位置惩罚函数Penalty(u,i),比如物品i和用户u之前评分的所有物品的平均距离等。这里的距离不适合用欧式距离,而是利用交通网络数据,将人们实际需要走的最短距离作为距离度量。