利用上下文信息

来源:互联网 发布:用php画环形统计图 编辑:程序博客网 时间:2024/06/02 01:50

上下文包括用户访问推荐系统的时间、地点、心情等。

一、时间上下文信息

1.  时间效应简介

用户兴趣是变化的。因为用户自身原因发生的变化。如小时候、长大了;工作时间增加等。若要准确用户现在的兴趣,应更关注用户最近的行为。这样只针对渐变的用户兴趣,对突变的用户兴趣很难起作用

物品有生命周期。如电影,受上映时间影响,受新闻事件影响。需考虑物品在该时刻是否已过时。

季节效应。反映时间本身对用户兴趣的影响。节日本身也有季节效应。

2.  系统时间特性的分析

推荐系统变成了时变系统,用户的行为数据会变成时间序列。含时间信息的用户行为数据集由三元组(u,i,t)构成,表示用户u在时刻t对物品i产生过行为。

1)物品的生存周期和系统的时效性

如新闻网站中新闻的生存周期较短。可用如下指标度量物品的生存周期。

(1)物品平均在线天数:和物品的流行度成正比。若用户经常查询该物品,则有较长的生存周期。

(2)相隔T天系统物品流行度向量的平均相似度。去系统中相邻T天的两天,计算两天的物品流行度,得到两个流行度向量。计算这两个向量的相似度,若相似性大,说明系统的时效性不强,物品的平均在线时间较长。所有数据集中相似度都随T的增加而下降,但下降速率是不同的。

3.  推荐系统的实时性

用户兴趣的变化体现在用户不断增加的新行为中。亚马逊并非每几十秒刷新随机展示推荐列表,只在有了新显性行为时,推荐列表才发生变化。

4.  推荐算法的时间多样性

推荐系统每天推荐结果的变化程度为推荐算法的时间多样性。主要的问题是如何在不损失精度的情况下提高推荐结果的时间多样性。

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

对于2),有以下三种解决思路:在生成推荐结果时加入一定的随机性,如从推荐列表前20个结果中随机挑选10个结果展示给用户,或按推荐物品的权重采样10个结果展示给用户;记录用户每天看到的推荐结果,然后在每天给用户进行推荐时,对他前几天看到过很多次的推荐结果进行适当的降权;每天给用户使用不同的推荐算法。

推荐系统需首先保证推荐的精度,在此基础上适当考虑时间多样性

5.  时间上下文推荐算法

1)最近最热门

2)时间上下文相关的ItemCF算法

对于物品相似度,用户在相隔很短时间内喜欢的物品有更高的相似度。对于在线推荐,家中用户近期行为的权重,优先给用户推荐那些和他近期喜欢的物品相似的物品。

3)时间上下文相关的UserCF算法

若两个用户同时喜欢相同的物品,则用户应有更大的兴趣相似度。给用户推荐和他兴趣相似的用户最近喜欢的物品。

6.  时间段图模型

将时间信息建模到图模型中

二、地点上下文信息

基于位置的服务(LBS)。谷歌的Hotpot让用户对自己去过的地点评分,通过用户评分给用户推荐地点。在基于位置的推荐中我们需考虑推荐地点和用户当前地点的距离,不能给用户推荐太远的地方。

第一种:用户行为用四元组(用户、用户位置、物品、评分),将数据集根据用户的位置划分成很多子集,形成一个树形结构,叶节点含所有和他同一位置的用户数据集。然后,给定一个用户的位置,可将其分配到一个叶子节点中,在叶子节点的数据集中用ItemCF给用户进行推荐。对每个中间节点都训练出一个推荐模型,最终的结果是这一系列推荐列表的加权。

第二种:每条用户行为用四元组(用户、物品、物品位置、评分)表示用户对某个位置的物品给了某种评分。用ItemCF计算用户u对物品i的兴趣,

0 0
原创粉丝点击