使用上下文信息提出建议

优采云 发布时间: 2020-08-08 22:47

  本文的思想指导如下:

  

  1. 什么是上下文

  本章前面提到的推荐系统算法主要着重于如何联系用户兴趣和项目,并向用户推荐最适合用户兴趣的项目,但是这些算法忽略了一点,即用户的上下文. . 这些上下文包括用户访问推荐系统的时间,地点和心情,这对于改进推荐系统的推荐系统非常重要. 例如,销售衣服的推荐系统应该在冬天和夏天向用户推荐不同种类的衣服. 推荐系统无法在冬季向用户推荐类似的T恤,因为用户在夏天喜欢某件T恤.

  我们在这里主要讨论时间上下文,并简要介绍位置上下文,并讨论如何将时间信息和位置信息建模到推荐算法中,以便推荐系统可以准确地预测用户在特定时刻的兴趣并具体位置.

  2. 时间上下文2.1时间效应

  时间是重要的上下文信息,对用户兴趣具有深远和广泛的影响. 人们普遍认为,时间信息对用户兴趣的影响体现在以下几个方面.

  1)用户兴趣正在改变

  2)物品也有生命周期

  3)季节效应

  2.2系统时间特征分析

  在给定时间信息之后,推荐系统已从静态系统变为时变系统,并且用户行为数据也已成为时间序列. 要研究时变系统,我们首先需要研究系统的时间特性. 收录时间信息的用户行为数据集由一系列三元组组成,其中每个三元组(u,i,t)表示用户u在时间t上项目i的行为. 我们可以研究的时间特征如下:

  数据集中唯一身份用户数量的每日增长

  系统中的物料更改: 例如,物料在线的平均天数. 如果某项在某一天已被至少一个用户操作,则定义该项在该天处于联机状态. 因此,我们可以通过商品的平均在线天数来衡量一类商品的生命周期.

  用户访问权限: 我们可以计算用户活动天数的平均值,以及进入系统T天的用户重叠次数.

  由T天分隔的系统项目流行度向量的平均相似度: 在系统中相邻两个T天,分别计算这两天的项目流行度,以获得两个流行度向量. 然后,计算两个向量的余弦相似度. 如果相似性很大,则意味着系统中的项目在相隔T天之内没有发生显着变化,这表明系统的时效性不强,并且项目的平均在线时间更长.

  2.3推荐系统的实时性能

  实现推荐系统的实时性,不仅需要实时访问用户行为,还需要推荐算法本身的实时性,并且推荐算法本身的实时性意味着:

  1)实时推荐系统无法每天为所有用户离线计算推荐结果,然后在线显示昨天计算的结果. 因此,当每个用户访问推荐系统时,将根据该时间点之前用户的行为实时计算推荐列表.

  2)推荐算法需要平衡用户的近期行为和长期行为,即,推荐列表必须反映出用户最近行为所反映的用户兴趣变化,并且推荐列表不得完全受到影响根据用户的近期行为. 必须保证推荐内容的连续性,以预测用户的兴趣.

  2.4推荐结果的时间多样性

  那么,如何在不损失准确性的情况下提高推荐结果的时间多样性?改善推荐结果的时间多样性需要分两个步骤解决: 首先,必须确保推荐系统可以在用户有新行为后及时调整推荐结果,以使推荐结果满足用户的近期兴趣. 其次,有必要确保推荐系统在用户手中. 当没有新行为时,结果可以经常更改,并具有一定的时间多样性.

  第一步,可以将其分为两种情况进行分析. 首先是从推荐系统的实时角度来看. 一些推荐系统每天都会为所有用户生成推荐,然后将这些结果直接显示给在线用户. 显然,这种类型的系统在用户出现新行为后无法及时调整推荐结果. 其次,由于算法不同,即使是实时推荐系统也具有不同的时间分集.

  那么,如果用户没有任何行为,如何确保向用户推荐的结果具有一定的时间多样性?总体思路如下.

  在生成推荐结果时添加一定程度的随机性,

  记录用户每天看到的推荐结果,然后在每天向用户推荐时,适当降低过去几天中多次看到的推荐结果的能量.

  每天为用户使用不同的推荐算法.

  3. 时间上下文推荐算法3.1最近最受欢迎的

  在没有时间信息的数据集中,我们可以向用户推荐历史上最受欢迎的商品. 然后,在获得用户行为的时间信息之后,最简单的非个性化推荐算法是最近向用户推荐最受欢迎的商品. 在给定的时间T,可以将项i的最近受欢迎程度ni(T)定义为:

  

  3.2与时间上下文有关的ItemCF算法

  基于时间上下文,我们可以从以下两个方面改进ItemCF算法.

  1)项目相似度: 用户在短时间内喜欢的项目具有较高的相似度.

  2)在线推荐: 用户的近期行为比很久以前的用户行为更好地反映了用户的当前兴趣.

  首先回顾一下前面提到的基于项目的协同过滤算法,该算法通过以下公式计算项目的相似度:

  

  向用户u推荐时,用户u对项目i的兴趣p(u,i)由以下公式计算:

  

  获取时间信息后,可以通过以下公式改进相似度计算:

  

  上面使用的衰减函数的可能形式如下:

  

  除了考虑时间信息对相关表的影响外,我们还应该考虑时间信息对预测公式的影响. 一般来说,用户的当前行为应该与用户的最近行为有更大的关系,因此可以进行以下修复:

  

  其中,t0是当前时间. 从上式可以看出,tuj越接近t0,在用户u的推荐列表中,类似于j的项目的排名越高.

  3.3与时间上下文有关的UserCF算法

  类似于ItemCF,我们还可以在以下两个方面使用时间信息来改进UserCF算法.

  1)用户兴趣相似度: 两个用户之所以兴趣相似,是因为他们喜欢相同的项目或对相同的项目有行为. 但是,如果两个用户同时喜欢同一商品,则这两个用户的兴趣应该更大.

  2)兴趣相似的用户的近期行为: 找到一组与当前用户u相似的用户的兴趣后,该组用户的近期兴趣显然比今天的用户u的兴趣更接近于今天的用户u的兴趣. 这群用户很久以前. 换句话说,我们应该向用户推荐具有相似兴趣的用户最近喜欢的项目.

  首先查看UserCF的公式. UserCF通过以下公式计算用户u与用户v之间的兴趣相似度:

  

  N(u)是用户u喜欢的项目的集合,N(v)是用户v喜欢的项目的集合.

  获得用户相似性后,UserCF通过以下公式预测用户对该商品的兴趣:

  

  考虑时间因素,我们可以如下修改用户相似度计算并添加时间衰减因素. 用户u和用户v对项目i作用的距离越远,两个用户的兴趣相似度就越小. :

  

  同样,如果我们考虑与用户u类似的用户最近兴趣,则可以设计以下公式:

  

  3.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.

  下图是一个简单的时间周期图模型的示例. 在此示例中,用户A在时间2作用于项目b. 因此,时间段图模型将首先创建4个顶点,即用户顶点A,用户时间段顶点A: 2,项目顶点b和项目时间段顶点b. : 2. 然后,将3个边添加到图中,即(A,b),(A: 2,b),(A,b: 2). 此处不再添加边(A: 2,b: 2),一方面是因为添加该边不会改善结果,另一方面,因为添加边会增加图的空间复杂度图上算法的时间复杂度.

  

  在这里,我们不再使用PersonalRank算法向用户提出个性化推荐. 相应地,我们使用一种称为路径融合算法的方法来测量图中两个顶点之间的相关性.

  一般而言,图上两个高度相关的顶点通常具有以下特征:

  1)有许多路径连接两个顶点;

  2)两个顶点之间的路径相对较短;

  3)两个顶点之间的路径不通过输出程度更高的顶点.

  在这里很难弄清楚公式,只需要截图:

  

  4. 位置上下文信息

  除了时间,地点作为重要的空间特征,也是重要的上下文信息. 在这里我们不会详细介绍.

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线