推荐系统实践 笔记5 利用上下文信息
AngelAndAngel
2012-12-14
我个人认为,假如对于基本的推荐算法了解的深入点的话,就能很好理解上下文信息的推荐算法。顶多是对各种上下文信息,如时间,地点等进行加权的处理。
时间上下文 用户在某个时间段可能需求是不一样的,物品也是有生命周期的,所以有必要了解一下基于时间的推荐过程 物品的生存周期可以通过如下指标度量: 1,物品平均在线天数,如果物品在某天被至少一个用户产生过行为,就定义该物品在这一天在线。 2,相隔T天物品流行度向量的相似度。取得T天内的两天,分别取得这两天物品的流行度向量,计算相似度,假如 相似度小,那么说明此系统物品在这段时间发生了很大变化,系统实效性强,反之亦然。 提高推荐结果的时间多样性需要分为两步: 1,保证推荐系统能在用户有了新的行为后及时调整推荐结果,使推荐结果满足用户最近的兴趣; 2,保证推荐系统在用户有新的行为时也能够经常变化结果,具有一定的时间多样性 时间上下文推荐算法 时间上下文相关的ItemCF算法的步骤 1,利用用户行为离线计算物品之间的相似度 用户在相隔很短的时间内喜欢的物品具有更高的相似度,比如用户在昨天和今天看的电影比今天和去年看的电影的相似度高 2,根据用户的历史行为和物品相似度矩阵,给用户做在线个性化推荐 用户近期的行为比用户很久之前的行为,更能体现自己的兴趣 基于物品的相似度计算公式 sim(i,j)(N(i) & N(j))/sqrt(N(i) || N(j)) 在得到用户对物品产生行为的时间后,我们可以改进一下相似度的计算公式:设U属于N(i)和N(j)的交集,在分子上乘以时间有关的衰减项,衰减函数为1/1+a|tui-tuj|,tui是用户U对物品i产生行为的时间,a是时间衰减参数,假如一个系统用户兴趣变化很快,感兴趣的东西相差很大(相似度小),那么这个值应该取大点。 考虑到用户的行为和最近的行为最为相关,所以最终的推荐公式,必须在累加权重时分别乘以 1/1+b|t0-tuj| t0表示当前时间,tuj表示拥护对物品j的行为时间, 时间上下文相关的UserCF算法和ItemCF算法差不多,不再赘述。 |