打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
推荐算法(4)利用上下文信息

上下文信息包括: 时间的上下文、地点的上下文、心情的上下文…

一、时间的上下文
1.理论
1)时间上对用户的影响:
1.用户自己的兴趣变化(随年龄,时间的变化,兴趣也在变化)
2.物品有自己的生命周期(新闻、电影)
3.季节效应(夏天喜好和冬天不同)

给定时间侯推荐系统变成体个实时变化的系统,用户行文数据也变为时间序列。
得到数据集是个三元组(u,i,t)

2)系统需要的时间特性:
1.数据集每天独立用户增长情况(确定系统的增长情况)
2.系统物品的变化情况(确定物品的生命周期)
3.用户访问情况(同一用户是否经常访问该网站)

3)度量物品的生命周期:
物品平均在线天数(如果一个商品在一天内,被一个用户动作过,就算当天在线);
相隔T天后物品流行度向量的平均相似度。

4)推荐系统的实时性:
要求每个用户在访问系统时,都根据用户在这个时间点前的行为实时计算推荐列表;
推荐算法需要平衡用户的近期行为和长期行为,即要让推荐列表反应出用户近期行为所体现的兴趣变化,又不能让推荐列表完全受用户近期行为的影响,要保证推荐列表对用户兴趣预测的延续性;

5)提高推荐结果的时间多样性需要分两步解决:
首先,需要保证推荐系统能够在用户有了新的行为后及时调整推荐结果,使推荐结果满足用户最近的兴趣;
其次,需要保证推荐系统在用户没有新的行为时也能够经常变化一下结果,具有一定的时间多样性。

2、算法:
1.时间上下文推荐算法—最近最热门:
这是一种带时间衰减的非个性化方法。给定时间T,物品i最近的流行度ni(T)可以定义为:


其中α是时间衰减系数。

2.时间上下文相关的ItemCF算法
前面介绍的ItemCF的算法,主要包含下面两步比较重要的阶段:
1.利用用户行为离线计算物品之间的相似度
2.根据用户的历史行为和物品相似度矩阵,给用户做个性化推荐
这两步其实都可以加入时间信息。首先回顾不加时间信息的ItemCF算法计算物品相似度的公式:


而在给用户u做推荐时,用户u对物品i的兴趣p(u,i)通过如下公式计算:

在得到时间信息之后,就可以用如下公式改进相似度计算:

这个式子中引入了和时间相关的衰减项f(∣tui−tuj∣)其中tui是用户u对物品i产生行为的时间。f函数的含义是,用户对物品i和物品j产生行为的时间越远,则f(∣tui−tuj∣) 越小。一般可以使用如下的衰减函数:

α是时间衰减函数,可以自己调节。

同样的,也可以根据时间信息改进预测公式:


其中t0 是当前时间,即utj 越靠近t0,和物品j相似的物品就会在用户u的推荐列表中获得越高的排名,β是时间衰减参数。

3. 时间上下文相关的UserCF算法
与ItemCF相似,对于UserCF算法也可以加入时间信息进行改进。

首先是用户相似度计算公式,不加时间信息的是:


加入时间信息的相似度计算公式如下:

同样的,不加时间信息的预测公式如下:

加入时间衰减后的预测公式为:

4.时间段图模型(路径融合算法)*
这里同样可以用图模型进行推荐。在图的构建过程中,需要加入时间信息,即时间段图模型。

时间段图模型G(U,SU,I,SI,E,w,σ) 也是一个二分图。U是用户节点集合, SU 是用户时间段节点集合。一个用户时间段节点vut∈SU 会和用户u在时刻t喜欢的物品通过边相连。I是物品节点集合, SI是物品时间段节点集合。一个物品时间段节点vit∈SI 会和所有在时刻t喜欢物品i的用户通过边相连。E是边集合,它包含了3种边:(1) 如果用户u对物品i有行为,那么存在边e(vu,vi)∈E(2)如果用户u在t时刻对物品i有行为,那么就存在两条边e(vut,vi) ,e(vu,vit)∈E 。w(e) 定义了边的权重,σ(e)定义了顶点的权重。
下图就是一个简单的时间段图模型:


在这个图上之间用PersonalRank方法,需要在全图上进行迭代计算,所以时间复杂度比较高。因此可以用一种路径融合算法,来计算图上两个顶点的相关性:
一般来说,图上两个相关性比较高的顶点一般具有如下特征:
两个顶点之间有很多路径相连;
两个顶点之间的路径比较短;
两个顶点之间的路径不经过出度比较大的顶点。
从这3条原则出发,路径融合算法首先提取出两个顶点之间长度小于一个阈值的所有路径,然后根据每条路径经过的顶点给每条路径赋予一定的权重,最后将两个顶点之间所有路径的权重之和作为两个顶点的相关度。
假设P=v1,v2,v3…vn
是连接顶点v1 和vn 的一条路径,这条路径的权重Γ 取决于这条路径经过的所有顶点和边:


在定义了一条路径的权重后,就可以定义顶点之间的相关度。对于顶点v和v’,令p(v,v′,K) 为这两个顶点间距离小于K的所有路径,那么这两个顶点之间的相关度可以定义为:

对于时间段图模型,所有边的权重都定义为1,而顶点的权重σ(v)定义如下:

这里,α,β∈[0,1] 是两个参数,控制了不同顶点的权重。

二、基于地点上下文信息
几种不同的数据类型:

地点上下文信息的出现方式有三种:
用户,用户位置,物品,评分
用户,物品,物品位置,评分
用户,用户位置,物品,物品位置,评分

解决第一种data的方法:
一般用金字塔模型进行推荐。举个例子:

假设有一个来自中国江苏南京的用户。首先根据所有用户的行为利用某种推荐算法(假设是ItemCF)给他生成推荐列表,然后利用中国用户的行为给他生成第二个推荐列表,以此类推,用中国江苏的用户行为给该用户生成第三个推荐列表,并利用中国江苏南京的用户行为给该用户生成第四个推荐列表。然后,按照一定的权重将这4个推荐列表线性相加,从而得到给该用户的最终推荐列表。

解决第二终data的方法(ICF 最后的结果中加入位置信息)
对于这种情况来说,首先会忽略物品的位置信息,利用ItemCF算法计算用户u对物品i的兴趣P(u,i) P(u,i)P(u,i),但最终物品i在用户u的推荐列表中的权重定义为:


TravelPenalty(u,i)表示了物品i的位置对用户u的代价。计算TravelPenalty(u,i) 的基本思想是对于物品i与用户u之前评分的所有物品的位置计算距离的平均值(或者最小值)。

解决第三种data 第一种加第二种方法组合

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
《推荐系统实践》样章:如何利用用户标签数据
从七桥问题开始:全面介绍图论及其应用
数据结构_树_图_总结
单源最短路算法(4SSSP)
常用算法大全-贪婪算法
最短路径算法—Dijkstra(迪杰斯特拉)算法分析与实现(C/C++)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服