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

推荐算法(1):协同过滤总结
推荐算法(2):基于内容的推荐
推荐算法(3):利用用户标签数据
推荐算法(4)利用上下文信息
推荐算法(5)利用社交网络数据
推荐算法(6) 实例
推荐算法(7)缺失的评分预测问题
推荐算法(8)评测指标

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

一、时间的上下文
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 第一种加第二种方法组合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值