上下文包括用户访问推荐系统的时间、地点、心情等,对于提高推荐系统是非常重要的。
时间上下文信息
时间信息对用户兴趣的影响表现在:用户的兴趣是变化的、物品也是有生命周期的、季节效应
推荐系统的实时性意味着:实时推荐系统不能每天都给所有用户离线计算推荐结果,然后在线展示昨天计算出来的结果;推荐算法需要平和考虑用户的近期行为和长期行为。
时间多样性:不同时间推荐的内容不一致
时间上下文推荐算法:
最近最热门: n i ( T ) = ∑ ( u , i , t ) ∈ T r a i n , t < T 1 1 + α ( T − t ) n_i(T) = \sum_{(u,i,t) \in Train, t < T}\frac{1}{1+\alpha(T-t)} ni(T)=∑(u,i,t)∈Train,t<T1+α(T−t)1
时间上下文相关的ItemCF算法:
物品相似度: s i m ( i , j ) = ∑ u ∈ ∣ N ( i ) ⋂ N ( j ) ∣ f ( ∣ t u i − t u j ∣ ) ∣ N ( i ) ∣ ∣ N ( j ) ∣ sim(i,j) = \frac{\sum_{u \in \mid N(i)\bigcap N(j)\mid}f(\mid t_{ui} - t_{uj} \mid)}{\mid N(i)\mid\mid N(j)\mid} sim(i,j)=∣N(i)∣∣N(j)∣∑u∈∣N(i)⋂N(j)∣f(∣tui−tuj∣),
其中 f ( ∣ t u i − t u j ∣ ) f(\mid t_{ui} - t_{uj} \mid) f(∣tui−tuj∣)为时间衰减函数,可以为 f ( ∣ t u i − t u j ∣ ) = 1 1 + α ∣ t u i − t u j ∣ f(\mid t_{ui} - t_{uj} \mid) = \frac{1}{1+\alpha\mid t_{ui} - t_{uj} \mid} f(∣tui−tuj∣)=1+α∣tui−tuj∣1
预测公式: p ( u , i ) = ∑ j ∈ N ( u ) ⋂ S ( i , k ) s i m ( i , j ) 1 1 + β ∣ t 0 − t u j ∣ p(u,i) = \sum_{j \in N(u) \bigcap S(i,k)}sim(i,j)\frac{1}{1+\beta\mid t_0-t_{uj}\mid} p(u,i)=∑j∈N(u)⋂S(i,k)sim(i,j)1+β∣t0−tuj∣1
时间上下文相关的UserCF算法:同ItemCF一样添加一个时间衰减函数
地点上下文信息
基于社交网络的推荐可以很好的模拟现实社会。
获取社交网络数据的途径:电子邮件、用户注册信息、用户的位置数据、论坛和讨论组、即时聊天工具、社交网站。
社交图谱(Facebook)、兴趣图谱(Twitter)
基于社交网络的推荐:
好友推荐可以增加推荐的信任度、社交网络可以解决冷启动问题
基于领域的社会化推荐算法:
用户u对物品i的兴趣: p u i = ∑ v ∈ o u t ( u ) w u v r v i p_{ui} = \sum_{v \in out(u)}w_{uv}r_{vi} pui=∑v∈out(u)wuvrvi
其中 w u v w_{uv} wuv由两部分组成:用户之间的熟悉程度( f a m i l i a r i t y ( u , v ) = ∣ o u t ( u ) ⋂ o u t ( v ) ∣ ∣ o u t ( u ) ⋃ o u t ( v ) ∣ familiarity(u,v) = \frac{\mid out(u)\bigcap out(v)\mid}{\mid out(u)\bigcup out(v)\mid} familiarity(u,v)=∣out(u)⋃out(v)∣∣out(u)⋂out(v)∣),
用户之间的兴趣相似度( s i m i l i a r i t y ( u , v ) = ∣ N ( u ) ⋂ N ( v ) ∣ ∣ N ( u ) ⋃ N ( v ) ∣ similiarity(u,v)=\frac{\mid N(u) \bigcap N(v)\mid}{\mid N(u) \bigcup N(v)\mid} similiarity(u,v)=∣N(u)⋃N(v)∣∣N(u)⋂N(v)∣)
基于图的社会化推荐算法:将用户之间的社会关系结合进之前的用户-物品图中,具体结合方式为:如果两个用户为好友,则在他们之间添加一条边。然后使用PersonalRank算法进行计算
为用户推荐好友
基于内容的匹配:为用户推荐和他们有相似内容属性的用户作为好友
基于共同兴趣的好友推荐
基于社交网络图的好友推荐