个人想法哈,推荐系统三个要素:用户、物品、关联两者的信息(推荐依据)。对于确定的推荐系统而言,用户和物品都是无法选择的,推荐系统的构建就是不断寻找新的推荐依据、并综合现有的推荐依据,设计推荐策略、给用户推荐物品的过程。关键还是推荐依据的寻找,而不是策略或者算法的设定。有了新的信息,比复杂的奇思淫巧强得多。
项亮这本书的后几章,都是在描述不同的推荐依据信息,讲述如何利用这些信息了。
这章的标题是“上下文信息”,内容上讲了两个信息:时间信息和位置信息。
5.1 时间上下文信息
google有google insight,就是看某个搜索词自2004年以来的搜索量变化,从中可以看出人们对这些词的兴趣随着时间的变化而变化。
如何统计某个事物(如:某个网站)的用户访问情况随时间的变化规律?
方法1:统计一段时间以来用户平均活跃天数
方法2:统计两个时间段,如像个T天,访问系统的用户的重合程度
推荐系统的时间多样性:1. 在用户有新行为的时候,根据新行为,调整推荐结果;2. 在没有新行为的时候,也能适当变化推荐结果。
时间上下文推荐算法:
1. 最近最热门
最基本的算法,即在基本的热门排序基础上,通过时间的反函数来对物品出现次数加权,出现时间距离现在越早,则权重越低。
公式为:
n(T) = sum_t<T ( 1 / (1 + alpha * (T - t) ) )
其他的几种算法就是在这个基础之上改进得到的。
2. 时间上下文相关的ItemCF算法
在计算物品相似度的时候,引入时间因素,加入上面公式中的权重。
3. 时间上线问相关的UserCF算法
基本假设是给当前用户推荐和他兴趣相似的用户最近喜欢的物品。也是用1的公式融入到经典算法当中。
时间段图模型:项亮自己的一篇论文的成果,在图模型中引入了时间因素。个人没细看,感觉学术作用大于工业作用。
最后要注意的是:不是引入了时间信息,推荐系统的性能就一定能够提高。例如:百科类网站,实验证明,没啥提高;而youtube、blogSpot等时效性很强的网站,会有很好的正面作用。
5.2 地点上下文信息
最近火热的LBS就是了。这本书讲什么吸引人的东西。