推荐系统实践笔记 (五)
第五章 利用上下文信息
5.1 时间上下文信息
给定时间信息后,推荐系统从一个静态的系统变成了一个时变的系统.有一个三元组(u,i,t)表示用户u在时刻t对物品i有过行为.
(a) 评价物品的生命周期的指标:
(1) 物品平均在线天数:如果一个物品在某天被至少一个用户产生过行为,就定义该物品在这一天在线
(2) 相隔T天物品流行度向量的平均相似度(余弦相似度) 用来评估一个系统的时效性
(b) 推荐算法的时间多样性: 推荐系统每天推荐结果的变化程度被定义为推荐系统的时间多样性
(c) 在用户没有行为的情况下如何保证推荐结果具备一定的时间多样性:
(1) 在生成推荐结果时加入一定的随机性
(2) 记录用户每天看到的推荐结果,然后在推荐的时候对用户已经看过的推荐降底权重
(3) 每天给用户使用不同的推荐算法
(d) 时间上下文推荐算法
(1) 最近最热门:给用户推荐最近一段时间最热门的物品,给定时间T,物品i最近的流行度$n_i(T)$可以定义为:
(2) 时间上下文相关的itemCF算法
itemCF的核心部分为:利用用户行为离线计算物品之间的相似度;根据用户的历史行为和物品相似度矩阵,给用户做在线个性化推荐。
利用时间信息对计算物品相似度的矩阵做一个改进:
公式中$f(\left|{t_{u,i}-t_{u,j}}\right|)$是和时间有关的衰减项目,$t_{u,i}$是用户u对物品i产生行为的时间.f函数的意义是用户对物品i和物品j产生行为的时间间隔越大则f的值越小,具体函数如下($\alpha$是衰减系数,为超参数,需要通过多次的训练获取合适的值):
同理在预测的时候也需要利用时间的信息来修正预测的结果,相应的公式如下:
(3) 时间上下文相关的userCF算法
采取的方法和itemCF类似,引入了时间衰减因子,就不累述了.
(4) 时间段图模型
时间段图模型 G ( U , $S_U$ , I , $S_I$ , E , w , $\sigma$ ) 也是一个二分图.U是用户节点结合,$S_U$是用户时间段节点集合.一个用户时间段节点$V_{ut}{\in}S_U$会和用户在时间t所有感兴趣的物品相连。I是物品集合,$S_I$是物品时间段集合。一个物品时间段节点$V_{it}{\in}S_I$和在时间t对物品i有过行为的所有用户通过边连接。E是边的集合,主要包含了三种边(a) 用户u对物品i有行为,则有$e(v_u,v_i){\in}E$;(b)如果用户u在时间t对物品i有行为,那么存在两条边$e(v_{ut},v_i),e(v_u,v_{it}){\in}E$.$w(e)$定义了边的权重,$\sigma(e)$定义了顶点的权重。通过路径融合算法来计算图上两个顶点之间的相关性。示例图如下所示:
(d) 基于位置的推荐算法
> 兴趣本地化
> 活动本地化
算法介绍本章比较清楚就不叙述了.