推荐系统(四)—— 基于上下文推荐

上下文包括用户访问推荐系统的时间、地点、心情等,对于提高推荐系统的推荐系统是非常重要的。比如:

  • 一个卖衣服的推荐系统在冬天和夏天应该给用户推荐不同种类的服装
  • 当用户在中关村打开一个美食推荐系统时,如果这个推荐系统推荐的餐馆都是中关村附近的,显然推荐结果更加能够令用户满意
  • 用户上班时和下班后的兴趣会有区别
  • 用户在平时和周末的兴趣会有区别
  • 用户和父母在一起与和同学在一起时的兴趣有区别

基于时间的推荐

时间信息对用户兴趣的影响表现在以下几个方面:

  1. 用户兴趣是随时间变化的
  2. 物品也是有生命周期的
  3. 季节效应

系统的时间特性分析:

  1. 用户每天独立用户数增长情况:用来度量系统是处于增长期、稳定期还是衰落期
  2. 系统物品变化情况:新闻网站变化很快,但图书网站变化很慢
  3. 用户访问情况:统计用户平均活跃天数,也可以统计相隔T天用户的重合度

推荐系统中的时间效应:

  1. 推荐系统的实时性:实时推荐系统需要在每个用户访问推荐系统时,都根据这个时间点前的行为实时计算推荐列表;推荐系统需要平衡考虑用户的近期行为和长期行为
  2. 推荐系统的时间多样性:推荐系统每天推荐结果的变化程度。有以下几种方式来实现推荐系统的时间多样性:
    1. 在生成推荐结果时加入一定的随机性;
    2. 记录用户每天看到的推荐结果,然后再每天的推荐中对重复出现的推荐结果适当降权;
    3. 每天使用不同的推荐算法进行推荐

最近热门推荐

包含时间信息的用户行为数据集可以由三元组集合表示,其中每条样本(u,i,t)代表用户u在时刻t对物品i产生过行为。

物品i最近的流行度可以定义为:

  • T:当前时刻
  • $\alpha$:时间衰减系数

按时间衰减的UserCF和ItemCF

按时间衰减的UserCF和ItemCF原理类似,下面以ItemCF为例来介绍,权重衰减很容易就可以同样移植到UserCF中去。

通过时间间隔修正物品间的相似度:

  • $f(\left | t{ui}-t{uj} \right |)$:衰减项,该行为时间越远,则重要程度越小
  • $t_{ui}$:用户u对物品i产生行为的时间

一种可选的衰减函数:

还可以通衰减项来修正用户u对物品i的兴趣度:

  • $t_0$:当前时间
  • $t_uj$:用户u对j产生行为的时间,越靠近当前时间,该物品在推荐列表中的排名越高
  • $\beta$:时间衰减系数

基于位置的推荐

位置信息对用户兴趣的影响表现在以下几个方面:

  1. 不同地区的用户兴趣有所不同
  2. 用户到了不同地方兴趣也会有所不同

LARS

明尼苏达大学的研究人员提出过一个称为LARS(Location Aware Recommender System,位置感知推荐系统)的和用户地点相关的推荐系统,他使用的数据集有三种不同形式:

  1. (用户,用户位置,物品,评分):每一条记录代表了某一个地点的用户对物品的评分。
  2. (用户,物品,物品位置,评分):每一条记录代表了用户对某个地方的物品的评分。
  3. (用户,用户位置,物品,物品位置,评分):每一条记录代表了某个位置的用户对某个位置的物品的评分。

(用户,用户位置,物品,评分)

位置信息是一个树状结构,比如国家、省、市、县结构,对于第一种数据集,可以将用户按照位置树状结构划分成很多子集。给定一个用户的位置,可以将其分配到某一个叶子节点中,该叶子节点包含了所有和他同一位置的用户行为数据集。然后利用这个叶子节点上用户行为数据,通过ItemCF给用户进行推荐。

数据稀疏问题:每个叶子节点上用户数可能很少,从而无法训练出一个好的推荐算法;

金字塔模型:利用每个中间节点上的数据为用户生成一个推荐列表,最终的推荐列表是这一系列推荐列表的加权。金字塔深度是影响系统性能的一个重要指标

(用户,物品,物品位置,评分)

首先忽略物品的位置信息,利用ItemCF算法计算用户u对物品i的兴趣度p(u,i),然后通过距离来惩罚兴趣度:

  • $TravelPenalty(u,i)$:物品i的距离对兴趣度的惩罚,基本思想是计算物品i和用户u之前感兴趣的所有物品的距离的平均值(或最小值)。距离可以用欧式距离或者曼哈顿距离。

(用户,用户位置,物品,物品位置,评分)

给用户推荐那些离他较近,且与他之前感兴趣的物品相似的物品。

坚持原创技术分享,您的支持将鼓励我继续创作!