acm-header
登录

ACM通信

研究突出了

基于时间动力学的协同过滤


客户检查产品偏好

来源:全球家

客户对产品的偏好随着时间的推移而变化。随着新产品的出现,产品的认知和受欢迎程度也在不断变化。同样,顾客的喜好也在不断变化,导致他们重新定义自己的口味。因此,时间动态建模对于设计推荐系统或一般客户偏好模型至关重要。然而,这带来了独特的挑战。在涉及多个产品和客户的生态系统中,许多不同的特征同时发生变化,而其中许多特征相互影响,这些变化往往是微妙的,与少数数据实例有关。这将问题与概念漂移探索区分开来,后者通常只追踪单个概念。经典的时间窗或实例衰减方法无法工作,因为它们在丢弃数据实例时丢失了太多信号。需要一种更敏感的方法,它可以更好地区分短暂影响和长期模式。我们展示了如何在数据的整个生命周期内对时间变化行为建模。 Such a model allows us to exploit the relevant components of all data instances, while discarding only what is modeled as being irrelevant. Accordingly, we revamp two leading collaborative filtering recommendation approaches. Evaluation is made on a large movie-rating dataset underlying the Netflix Prize contest. Results are encouraging and better than those previously reported on this dataset. In particular, methods described in this paper play a significant role in the solution that won the Netflix contest.

回到顶部

1.简介

时间漂移数据建模是数据挖掘的核心问题。通常,数据随着时间的推移而变化,模型应该不断更新,以反映其当前的性质。对这类数据的分析需要在贴现对未来行为影响很小的临时效应和捕捉反映数据固有性质的长期趋势之间找到正确的平衡。这导致了许多关于这个问题的研究,也被广泛称为概念漂移;你看,比如,施利默和格兰杰,威德默和库巴特。1520.

客户偏好的临时变化带来了独特的建模挑战。在这种情况下,一种概念漂移是新产品或新服务的出现,改变了客户的关注点。与此相关的是季节变化,或特定的节日,这导致了特色的购物模式。所有这些变化都影响着整个人群,属于传统概念漂移研究的范畴。然而,许多用户行为的改变是由本地化因素驱动的。例如,家庭结构的改变可以极大地改变购物模式。同样,个人也会逐渐改变他们对电影和音乐的品味。这种变化不能通过寻求全局概念漂移的方法来捕捉。相反地,对于每一个客户,我们着眼于不同类型的概念漂移,每一种都发生在不同的时间框架中,并朝着不同的方向发展。

由于需要在每个人的水平上建立时间变化的模型,可用于检测这种变化的数据量大大减少。因此,我们应该采用比那些足以模拟全球变化的技术更精确的技术。例如,它将不再足以放弃或只是在时间上低估了用户事务。从这些过去的行为中提取的信号可能对理解客户本身或对其他客户建模有间接帮助。然而,我们需要在排除瞬态噪声的同时提取长期模式。这些考虑需要一种更敏感的方法来处理客户偏好的变化。仅仅集中精力确定和模拟与现在或不久的将来有关的事物是不够的。相反,我们需要对过去的每个点进行精确的建模,这将允许我们区分应该捕获的持久信号和应从模型的较长期部分中隔离出来的噪声。

对用户偏好进行建模与从垃圾邮件过滤到市场分析等多种应用程序相关。在这篇文章中,我们主要关注的是为用户的偏好建模,以构建一个推荐系统,但我们相信,我们学到的一般经验教训也可以应用于其他应用程序。自动化推荐是一个非常活跃的研究领域。12这种系统会分析用户对商品或产品的兴趣模式,从而提供符合用户口味的个性化商品推荐。我们希望用户的偏好会随着时间的推移而改变。这种变化可能源于多种因素;其中一些因素是根本性的,而另一些则是次要的。例如,在电影推荐系统中,用户可能会改变他们喜欢的类型,或者对演员或导演采取新的观点。此外,他们可能会改变反馈的外观。例如,在用户为产品提供星级评级的系统中,用户过去通过“3星”输入表示中立偏好,现在可能表示对相同的“3星”反馈的不满。同样,众所周知,用户反馈受到锚定的影响,在锚定中,当前评级应被视为相对于在同一短时间内给出的其他评级。最后,在许多情况下,系统无法分离访问同一帐户的不同家庭成员,尽管每个成员都有不同的品味,应该使用单独的模型。这实际上创建了一个与该帐户相关联的多层面元用户。 A way to distinguish between different persons is by assuming that time-adjacent accesses are being done by the same member (sometimes on behalf of other members), which can be naturally captured by a temporal model that assumes a drifting nature of a customer.

所有这些模式都应该使时间建模成为构建推荐系统的主要因素。尽管如此,很少有例外(例如,Ding和Li,和Sugiyama等。416),推荐者的文献并没有提到用户行为的时间变化。也许这是因为用户行为是由许多不同的概念漂移组成的,在不同的时间框架和方向上起作用,因此使得处理概念漂移和时间数据的常用方法不太成功。我们发现,在用户行为中捕捉时间漂移模式对于提高推荐的准确性至关重要。我们的发现也给了我们希望,成功的时间建模为推荐人提供的见解将在其他数据挖掘应用中有用。

我们的测试平台是Netflix发布的一个大型电影评级数据集,它是一个广为人知的竞赛的基础。3.对于手头的任务,这个数据集结合了几个优点。首先,它不是一个合成数据集,而是包含了真正付费的Netflix用户的用户电影评分。此外,它相对较大的尺寸(超过1亿个带有日期标记的评级)使其成为现实生活中大规模数据集的更好代理,同时提高了计算效率。最后,与其他主流数据集不同,时间效应是自然的,不是人为引入的。在这个数据集中出现的两个有趣(如果不令人惊讶的话)的时间效应显示在图1.其中一个影响是2004年初发生的评级规模的突然转变。当时,平均评分从3.4星左右跃升至3.6星以上。另一个重要的影响是,电影的评分往往会随着电影的年龄而增加。也就是说,老电影比新电影获得更高的评分。在科伦,8我们阐明了这些效应的起源。

这项工作的主要贡献是提出了一种方法和具体技术,以建模时间漂移的用户偏好在推荐系统的背景下。所提出的方法被应用于上述广泛分析的电影评级数据集,使我们能够坚定地将我们的方法与最近报道的方法进行比较。我们表明,通过合并时间信息,我们取得了迄今为止报告的最佳结果,表明揭示时间效应的重要性。

本文的其余部分组织如下。在下一节中,我们将描述基本概念和符号。然后,在第3节中,我们处理时间改变用户偏好的原则得到了改进。然后,这些原则以截然不同的方式被整合到两种主要的推荐技术中:因子建模(第4节)和条目邻近建模(第5节)。

回到顶部

2.预赛

*2.1.符号

我们被给予评级用户(又称客户)和n项(即产品)。我们保留特殊的索引字母来区分用户和条目:针对用户u, v,表示项目i, j。一个评级r用户界面用户优先级u的项目在美国,高价值意味着更强的偏好。例如,值可以是整数,1(星号)表示不感兴趣,5(星号)表示强烈感兴趣。我们通过符号来区分预测评级和已知评级cacm5304_d.gif用户界面的预测值r用户界面

标量t用户界面表示评级时间r用户界面.我们可以根据手头的应用程序使用不同的时间单位。例如,当时间以天为单位时,那么t用户界面计算从某个早期时间点开始经过的天数。通常情况下,绝大多数的评级都是未知的。例如,在Netflix的数据中,由于用户通常只对一小部分电影进行评分,所以99%的可能评分都没有。(你,我)对r用户界面已知存储在集合中K= {(你,我)|r用户界面被称为},其中被称为训练集。

评分数据的模型是通过拟合之前观察到的评分来学习的。然而,我们的目标是在某种程度上推广这些,使我们能够预测未来,未知的评级。因此,应谨慎,以避免过度拟合观察数据。我们通过使用一种叫做正则化。正则化限制了模型的复杂性,从而防止它们对观察到的数据过于专门化。我们采用l2正则化,它惩罚学习参数的大小。正则化程度由常数控制,常数记为:12,……

*2.2.Netflix的数据

在1999年12月31日至2005年12月31日期间,约48万名Netflix匿名客户对17770部电影进行了超过1亿部带有日期标记的评级,我们对这些数据集进行了算法评估。3.评级为1 ~ 5之间的整数。平均来看,一部电影获得5600个评分,而一个用户给208部电影评分,每个平均评分之间有很大的差异。为了与他人公布的结果保持兼容性,我们采用了一些通用标准。我们在Netflix设计的两个可比较的集上评估了我们的方法:一个抵制集(“探针集”)和一个测试集(“测试集”),每个集包含超过140万的收视率。报告的结果在测试集上,而在抵制集上的实验显示了相同的结果。在我们的时间建模环境中,重要的是要注意每个用户的测试实例比他/她的训练实例来得晚。结果的质量是由它们的均方根误差(RMSE)来衡量的。cacm5304_e.gif

Netflix的数据是Netflix Prize竞赛的一部分,目标是将Netflix电影推荐的准确性提高10%。这个基准是Netflix的专有系统。Cinematch,在测试集上RMSE为0.9514。大奖授予了一个团队,该团队在经过近3年的广泛努力后,设法将RMSE提高到0.8554。测试集上可达到的RMSE值位于一个相当压缩的范围内,这从赢得大奖的难度就可以看出。尽管如此,有证据表明RMSE方面的微小改进可以对前几项推荐的质量产生重大影响。7这项工作中描述的算法在获得大奖的过程中发挥了核心作用。

*2.3.协同过滤

推荐系统通常是基于协同过滤(CF),这个术语是由第一个推荐系统tapestry的开发人员创造的。5这种技术只依赖于过去的用户行为。,their previous transactions or product ratingswithout requiring the creation of explicit profiles. CF analyzes relationships between users and inter-dependencies among products, in order to identify new useritem associations.

CF的一个主要吸引力在于它是无域的,并且避免了大量数据收集的需要。此外,直接依赖于用户行为可以发现复杂和意想不到的模式,这些模式很难或不可能使用已知的数据属性进行分析。因此,CF在过去的十年里引起了很大的关注,取得了很大的进步,并被一些成功的商业系统所采用,包括Amazon,10TiVo,1和Netflix。

CF的两个主要区域是社区的方法而且潜在的因素模型。邻域方法以计算项目之间的关系或用户之间的关系为中心。面向物品的方法根据同一用户对“相邻”物品的评分来评估用户对某一物品的偏好。一个产品的邻居是其他产品,当被同一用户评分时,往往会得到相似的评分。以电影《拯救大兵瑞恩》为例。它的邻居可能包括其他战争电影,斯皮尔伯格的电影,汤姆汉克斯的电影,等等。为了预测某个特定用户对《拯救大兵瑞恩》的评分,我们会查找该用户对该电影的评分中最近的邻居。面向项目的方法的一个对偶是面向用户的方法,它确定了志同道合的用户,他们可以补充彼此缺失的评分。

潜在因素模型组成另一种方法,通过从评级模式推断出的20200个因素来描述项目和用户,从而解释评级。对于电影,通过分解发现的因素可能衡量明显的维度,如喜剧vs.戏剧,动作数量,或儿童取向;定义较模糊的维度,如角色发展的深度或“古怪”,或完全无法解释的维度。对于用户来说,每个因素衡量用户有多喜欢相应的电影因素得分高的电影。潜在因素模型最成功的实现之一是基于矩阵分解;例如,Koren等人。9

回到顶部

3.跟踪漂移的客户偏好

一个经常被提及的概念漂移的例子是随着时间的推移改变客户的偏好,例如,“客户的偏好随着新产品和服务的出现而改变。”6客户偏好漂移的这一方面突出了文献中一个共同的范式,即全球漂移概念影响整个数据。然而,在许多应用程序中,包括我们的推荐系统的焦点应用程序,我们也面临着更复杂的概念漂移形式,许多用户相互关联的偏好在不同的时间点以不同的方式漂移。这就需要学习算法跟踪多个变化的概念。此外,与单个客户相关的数据实例通常数量较少,因此需要更简洁和有效的学习方法,从而最大限度地利用数据中的信号。

在对概念漂移问题的研究中,Tsymbal19认为在文献中可以区分三种方法。的实例的选择方法丢弃与系统当前状态不太相关的实例。一个常见的变体是时间窗方法,只考虑最近的实例。这个简单模型的一个可能的缺点是,它对所考虑的时间窗口内的所有实例赋予了相同的意义,而完全丢弃了所有其他实例。当时移是突然的,同样的显著性可能是合理的,但当时移是逐渐的,就不那么合理了。因此,求精是实例加权实例的权重是基于它们的估计相关性。通常情况下,我们会使用一个时间衰减函数,以减轻发生在过去更深处的实例的权重。第三种方法是基于整体学习,它维护着一系列共同产生最终结果的预测因素。这些预测因素的权重取决于它们与当前时间点的感知相关性,例如,在最近的实例中更成功的预测因素得到更高的权重。

我们使用实例加权方案进行了广泛的实验,在邻域模型和因子模型上尝试不同的指数时间衰减率。一致的发现是,当我们调节时间衰减时,预测质量会提高,在完全没有衰减时达到最佳质量。这一发现是在多年来用户确实改变了他们的品味和评分标准的情况下得出的。然而,许多旧的偏好仍然存在,或者更重要的是,这些偏好有助于在数据中建立有用的跨用户或跨产品模式。因此,忽略过去的操作会失去太多的信号和噪音,这是有害的,因为每个用户的数据是稀缺的。

对于集成学习,拥有多个模型,每个模型只考虑总体行为的一小部分,可能会错过那些只有在考虑整个用户行为范围时才能识别的全局模式。在我们的案例中,让他们更不受欢迎的是需要跟踪许多客户的独立漂移行为。这又需要为每个用户构建单独的集成。这样的分离将极大地复杂化我们沿着多个时间点集成跨用户信息的能力,这是基石协同过滤。例如,产品之间的有趣关系可以通过许多用户在完全不同的时间点的相关操作建立起来。捕捉这样的集合信号需要构建一个包含所有用户和物品的单一模型。

所有这些考虑导致我们采用以下指导方针来对用户偏好漂移进行建模。

  • 我们寻求的模型可以解释用户在整个时间段内的行为,而不仅仅是当前的行为(虽然受性能限制)。这样的建模是能够从每个时间点提取信号的关键,而只忽略噪声。
  • 应该捕获多个不断变化的概念。有些是用户依赖的,有些是条目依赖的。同样,有些是渐进的,而有些是突然的。
  • 虽然我们需要为每个用户和/或物品的独立漂移“概念”或偏好建模,但将所有这些概念结合在一个单一框架中是必要的。这种组合允许对跨用户和项目的交互进行建模,从而确定更高级别的模式。
  • 一般来说,我们不试图推断未来的时间动态,例如,估计未来用户偏好的变化。外推可能非常有用,但似乎太困难了,特别是在已知数据有限的情况下。相反,我们的目标是捕捉过去的时间模式,以便从瞬态噪声中隔离持久信号。这个结果确实有助于预测未来的行为。

现在我们转向如何将这些理想的原则合并到CFmatrix分解和邻域方法的两种主要方法中。

回到顶部

4.Time-Aware因子模型

*4.1.因子模型的解剖

矩阵分解是一种公认的CF方法。91117这种方法很适合对时间效应进行适当的建模。在我们处理这些时间效应之前,我们想要建立一个静态因素模型的基础。

矩阵分解的基本形式是通过从物品评级模式推断出的因素向量来表示物品和用户的特征。商品和用户因素之间的高度对应会导致向用户推荐商品。更具体地说,用户和物品都被映射到一个维度的联合潜在因子空间f,这样评级就被建模为该空间的内部产品。因此,每个用户u与向量有关吗puisin.gifcacm5304_f.giff和每一项与向量有关吗isin.gifcacm5304_f.giff.评级是由规则预测的

eq01.gif

主要的挑战是计算每个项目和用户到因子向量的映射puisin.gifcacm5304_f.giff.完成这个映射后,我们就可以通过公式1轻松计算用户给任何物品的评级。

该模型与奇异值分解(SVD)密切相关,SVD是一种成熟的识别信息检索中潜在语义因素的技术。在CF域中应用SVD需要分解用户条目评级矩阵。由于用户条目评级矩阵的稀疏性,缺失值的比例很高,这样的因子分解会带来困难。当关于矩阵的知识不完全时,传统的SVD是无定义的。此外,如果不小心只处理相对较少的已知条目,则很容易出现过拟合。早期作品13利用插补法填补缺失的评级,使评级矩阵密集。然而,imputation可能非常昂贵,因为它会显著增加数据量。此外,由于不准确的imputation,数据可能会有很大的失真。因此,更多最近的作品(如Koren, Paterek,和Takacs等人)。71117)建议只对观察到的评分直接建模,同时通过适当的正则化模型避免过拟合。为了学习因子向量(pu而且),我们最小化已知评级集上的正则化平方误差:

eq02.gif

最小化的典型方法是随机梯度下降法。

模型(1)试图捕捉产生不同评级值的用户和物品之间的交互。然而,许多观察到的评分值的变化是由于与用户或物品相关的影响,独立于他们的互动,这被称为偏差。一个典型的例子是,典型的CF数据显示出很大的系统性倾向,有些用户会给出比其他人更高的评级,有些商品会获得比其他人更高的评级。毕竟,有些产品被广泛认为比其他产品更好(或更差)。

因此,通过表单的交互来解释完整的评级值是不明智的Tpu.相反,我们将尝试确定这些值中可以由个人用户或物品效应(偏差)解释的部分。相互作用和偏差的分离将允许我们只对数据中真正的相互作用部分进行因素建模。

我们将把那些不涉及用户项交互的效果封装在基线预测。这些基线预测器倾向于捕获大部分观测到的信号,特别是数据中的大部分时间动态。因此,对它们进行准确的建模是至关重要的,这可以更好地识别真正代表用户项交互的信号部分,并且应该进行因数分解。

构建静态基线预测器的合适方法如下。以整体平均评分表示。一个未知评级的基线预测器r用户界面b用户界面并说明了用户和物品的主要效果:

eq03.gif

的参数bu而且b指出用户观察到的偏差u和项目,分别来自平均水平。例如,假设我们想要用户Joe对电影《泰坦尼克号》评分的基线估计。现在,假设所有电影的平均评分是3.7颗星。此外,《泰坦尼克号》比一般的电影要好,所以它往往比平均水平高出0.5颗星。另一方面,Joe是一个关键用户,他的评分往往比平均水平低0.3星。因此,乔对《泰坦尼克号》的基本评价是3.9星(3.7 + 0.5)。

基线预测器应该集成到因素模型中。为了实现这一点,我们将规则(1)扩展为

eq04.gif

在这里,观察到的评级被分为四个部分:全球平均、条目偏差、用户偏差和用户条目交互。这种分离允许每个分量只解释与它相关的信号部分。学习方法和以前类似,通过最小化平方误差函数

eq05.gif

沿着这些路线的计划被描述,例如柯林和帕特莱克。711

在这里,将评级分解为不同的部分很方便,因为它允许我们分别处理不同的时间方面。更具体地说,我们确定了以下影响:(1)用户偏见(bu)随时间变化;(2)项目偏差(b)随时间变化;以及(3)用户偏好(pu)随时间变化。另一方面,我们不期望物品特征有显著的时间变化(),因为物品与人不同,其本质是静态的。我们首先详细讨论基线预测中包含的时间效应。

*4.2.时间变化基线预测器

通过两个主要的时间效应,大部分时间变异性都包含在基线预测因子中。第一个问题是,一件物品的受欢迎程度可能会随着时间的推移而改变。例如,电影的流行度可以由外部事件触发,比如演员在一部新电影中的出现。这在我们的模型中表现为对项目偏差的处理b作为时间的函数。第二个主要的时间效应允许用户随着时间的推移改变他们的基线评分。例如,一个用户曾经给一部普通电影的评分是“4星”,现在可能给这样一部电影的评分是“3星”。这可能反映了几个因素,包括用户评分标准的自然漂移,评分与最近的其他评分相关联的事实,以及评分者在家庭中的身份可能随着时间的推移而改变的事实。因此,在我们的模型中,我们使用参数bu作为时间的函数。这就形成了一个时间敏感基线预测器的模板u的评级在一天t用户界面

eq06.gif

在这里,bu(·)和b(·)是随时间变化的实值函数。构建这些函数的确切方法应该反映出一种合理的方法来参数化所涉及的时间变化。我们在电影评级数据集上下文中的选择展示了一些典型的考虑因素。

一个主要的区别是跨越较长时间的时间效应和更短暂的效应之间的区别。在电影评级的案例中,我们不认为电影的受欢迎程度会在每天的基础上波动,而是会在更长一段时间内变化。另一方面,我们观察到用户效果每天都在变化,这反映了用户行为的不一致性。这就需要更好的时间分辨率来建模用户偏差,而不是用更低的分辨率来捕获物品相关的时间效应。

我们从改变时间的项目偏差的选择开始bt).我们发现它足以将项目偏差分成基于时间的箱子,使用一个恒定的项目偏差为每个时间段。在决定如何将时间轴分割成多个容器时,应该平衡实现更精确分辨率的愿望(因此需要更小的容器)和每个容器需要足够的评级(因此需要更大的容器)。对于电影评级数据,有各种各样的箱子大小,它们的精度都差不多。在我们的实现中,每个bin对应于大约连续10周的数据,导致30个bin横跨数据集中的所有天。一天tBin(t)(我们的数据中1到30之间的数字),这样电影偏差就被分成了平稳部分和时间变化部分:

eq07.gif

虽然将参数绑定在道具上效果很好,但这对用户来说却是一个挑战。一方面,我们希望用户能够获得更精确的分辨率来检测非常短暂的时间效应。另一方面,我们不期望每个用户有足够的评分来对单独的垃圾箱做出可靠的估计。可以考虑用不同的函数形式来参数化临时用户行为,其复杂性和准确性各不相同。

一个简单的建模选择使用线性函数来捕捉用户偏差的可能逐渐偏移。为每个用户u,我们表示评级的平均日期为tu.现在,如果u一天给一部电影分级t,则定义该等级的相关时间偏差为

ueq01.gif

这里|t - tu|度量日期之间的天数t而且tu.通过交叉验证设置的值;在我们的实现中= 0.4。我们为调用的每个用户引入一个新参数u这样我们就得到了依赖时间的用户偏见的第一个定义

eq08.gif

用韩国语描述了一种更加灵活的基于样条的规则。8

利用平滑函数对用户偏置网格进行建模渐进的概念漂移。然而,在许多应用中都有突然飘作为与某一天或某个时段相关的“峰值”出现。例如,在电影评级数据集中,我们发现用户在一天内给出的多个评级往往集中在一个值上。这样的影响不会超过一天。该效果可能反映了用户当天的情绪,一天内给出的评级对彼此的影响,或多人账户中实际评级者的变化。为了解决这种短期影响,我们为每个用户和每一天分配一个参数,吸收特定于一天的可变性。表示为but.注意,在一些应用程序中,基本的时间单位可以比一天短,也可以比一天长。

在Netflix的电影评级数据中,一个用户平均在40天内进行评级。因此,使用but平均需要40个参数来描述每个用户的偏见。预计but作为一个单独的工具来捕捉用户偏见是不够的,因为它错过了跨越一天以上的所有信号。因此,它在前面描述的方案中充当附加组件。时间线性模型(8)变为

eq09.gif

基线预测器本身不能产生个性化的推荐,因为它忽略了用户和物品之间的所有交互。从某种意义上说,它是在获取与建立建议不太相关的那部分数据。尽管如此,为了更好地评估依赖于时间的用户偏差的各种选择的相对优点,我们比较了它们作为独立预测器的准确性。为了学习所涉及的参数,我们利用随机梯度下降最小化相关的正则平方误差。例如,在我们的实际实现中,我们采用规则(9)对漂移的用户偏差进行建模,从而得到基线预测器

eq10.gif

为了了解相关参数,buubutb,b本(t,应该解决

ueq02.gif

在这里,第一项努力构建符合给定评级的参数。正则化项,7bu2+…),通过惩罚参数的大小来避免过拟合,假设中性的0先验。通过运行2030次的随机梯度下降算法进行学习7= 0.01。

表1比较各种建议的基线预测因子解释数据中的信号的能力。通常,捕获信号的数量由测试集上的RMSE测量。提醒一下,对于同一个用户,测试用例的出现时间要晚于训练用例,因此预测通常涉及到时间上的外推。我们对预测器的编码如下:

  • 静态,无时间影响:b用户界面= +bu+b
  • mov,只考虑与电影相关的时间效应:b用户界面= +bu+b+b本(途易
  • 线性,用户偏差的线性建模:b用户界面= +bu+u·戴夫ut用户界面) +b+b本(途易,
  • 线性+,用户偏好和单日效应的线性建模:b用户界面= +bu+u·戴夫ut用户界面) +bu,途易+b+b本(途易

表中显示,虽然时间电影效应存在于数据中(将RMSE从0.9799降低到0.9771),用户偏差的漂移更有影响力。特别是,用户偏好的突然变化是最重要的,这是由每天的参数捕获的。

除了目前所描述的时间效应之外,还可以使用相同的方法捕捉到更多的效应。一个主要的例子就是捕捉周期性效应。例如,有些产品可能在特定的季节或临近特定的节日时更受欢迎。同样,不同类型的电视或广播节目在一天的不同时段(被称为“分日”)受欢迎。在用户端也可以发现周期性的效果。例如,与工作日相比,用户在周末可能有不同的态度或购买模式。建模这种周期性效果的一种方法是为物品或用户的时间段组合指定一个参数。这样,(7)的项目偏差就变成

ueq03.gif

例如,如果我们试图捕捉项目偏差随季节的变化,则期间(tsqu.gif{秋天,冬天,春天,夏天}。同样地,可以通过将(9)修改为来模拟重复出现的用户效果

ueq04.gif

然而,我们没有在电影评级数据集中发现具有显著预测能力的周期性效应,因此我们报告的结果不包括这些。

在基本预测范围内的另一个时间效应与用户评级的变化尺度有关。而bt)是一种独立于用户的物品价值衡量方法在时间t,用户对这种方法的反应往往不同。例如,不同的用户使用不同的评级尺度,单个用户可以随时间改变他的评级尺度。因此,电影的原始价值偏差并不是完全独立于用户的。为了解决这个问题,我们向基线预测器添加了一个依赖时间的缩放特性,由cut).因此,基线预测器(10)变成

eq11.gif

所有讨论了实现的方法but)是有效的cut)。我们选择每天提供一个单独的参数,结果是:cut) =cu+cut.像往常一样,cu稳定的部分是cut),而cut代表day-specific可变性。加上乘数cut)到基线预测器将RMSE降低到0.9555。有趣的是,这个基本模型只捕捉了主要效果,不考虑用户条目的交互,几乎可以解释与商业Netflix Cinematch推荐系统一样多的数据可变性,后者在同一个测试集上发布的RMSE为0.9514。3.

*4.3.时变因子模型

在第4.2节中,我们讨论了时间影响基线预测的方式。然而,正如前面所暗示的,时间动态不仅如此,它们还会影响用户偏好,从而影响用户与道具之间的互动。用户会随着时间的推移而改变他们的偏好。例如,一个“心理惊悚片”的粉丝可能在一年后变成“犯罪剧”的粉丝。同样,人们也会改变对某些演员和导演的看法。这种影响是通过取用户因素(向量pu)作为时间的函数。再一次地,我们需要在非常精细的日常基础上模拟这些变化,同时面对用户评级的内在稀缺性。事实上,这些时间效应是最难捕捉的,因为偏好不像主要效应(用户偏好)那么明显,而是在许多因素中分裂。

我们为用户首选项的每个组件建模putT= (put) [1],put)[2],…put)[f就像我们对待用户偏见一样。在电影评级数据集中,我们发现(9)后的建模有效,导致

eq12.gif

在这里p英国捕捉因子的平稳部分,英国·戴夫ut)逼近随时间线性变化的可能部分,以及pukt吸收非常局部的,特定的天数变化。

此时,我们可以将所有的片段联系在一起,并通过加入时变参数来扩展SVD因子模型(4)。产生的模型将表示为timeSVD,其中预测规则如下:

eq13.gif

时间漂移参数的精确定义bt),but),put)为式7、9、12所示。通过使用正则化随机梯度下降算法最小化训练集上的相关平方误差函数来进行学习。这个过程类似于原始的SVD算法。每次迭代的时间复杂度仍然与输入大小成线性关系,而由于更新时间参数所需的额外开销,挂钟运行时间大约是SVD的两倍。重要的是,收敛速度不受时间参数化的影响,该过程在30次左右收敛。

*4.4.比较

我们在实践中使用的因素模型比目前描述的稍微复杂一些。这个模型被称为SVD++,7通过考虑评分项目所记录的隐含信息(无论其评分值如何),提供了更高的准确性。虽然SVD++算法的细节超出了本文的范围,但它们不影响时间效应的引入,并且按照本节中描述的完全相同的过程对模型进行了扩展,以考虑时间效应。得到的模型被称为timeSVD++,并用韩语描述。8

表2我们比较了三种矩阵分解算法的结果。首先是SVD,即普通矩阵分解算法。第二种是SVD++方法,它在SVD的基础上加入了一种隐式反馈。第三个是timeSVD++,它也考虑了时间效应。三种方法在一系列的因数分解维度(f).它们都受益于越来越多的因素维度,使它们能够更好地表达复杂的电影用户互动。通过SVD++模型处理隐式反馈,可以提高电影评级数据集的准确性。然而,timeSVD++比SVD++所提供的改进始终更加显著。我们不知道在文献中有任何单一的算法可以提供这样的精度。我们将此归因于适当处理时间效应的重要性。捕捉时间动态的重要性的进一步证据是,维度为10的timeSVD++模型已经比维度为200的SVD模型更精确。同样,20维的timeSVD++模型也足以超过200维的SVD++模型。

*4.5.预测未来的日子

我们的模型包括特定日期的参数。一个显而易见的问题是,在我们无法训练特定日期参数的情况下,这些模型如何用于预测未来的评级?简单的答案是,对于那些未来的(未经训练的)日期,特定于日期的参数应该使用它们的默认值。特别是方程11,cut用户界面)设置为cu,bu,途易被设为零。然而,有人想知道,如果我们不能使用特定日期的参数来预测未来,它们为什么是好的呢?毕竟,预测只有在与未来有关的时候才有趣。为了让这个问题更加尖锐,我们应该提到一个事实,Netflix测试集包括许多日期的评分,而同一用户没有其他评分,因此无法利用特定日期的参数。

要回答这个问题,请注意我们的时态建模并没有试图捕获未来的更改。它所做的一切都是试图捕捉短暂的时间效应,这对过去的用户反馈有重大影响。当这些影响被识别出来后,它们必须被调低,这样我们才能模拟更持久的信号。这使得我们的模型能够更好地捕捉数据的长期特征,同时让专用参数吸收短期波动。例如,如果一个用户在某一天给出了比平常更高的评分,我们的模型就会根据可能的某一天特定的好心情来打折,这并不能反映该用户的长期行为。这样,特定于日期的参数有助于清理数据,从而改善对未来日期的预测。

回到顶部

5.邻里模型的时间动力学

最常见的CF方法是基于邻域模型。虽然邻域方法的准确性通常不如因式分解方法,但由于其一些优点,比如解释计算推荐背后的原因,以及无缝地计算新进入的评级,邻域方法受到欢迎。

最近,我们提出了一个基于全局优化的项项模型,7这将使我们能够以一种原则性的方式捕捉时间的动态。静态模型不考虑时间动态,其核心是以下预测规则:

eq14.gif

这里,集合R(u)包含用户评分的项目u.itemitem权重wij而且cij表示我们需要对项目的预测评级做出的调整,给定已知的物品等级j.事实证明,使用两组道具重量是非常有益的wijS)与评分值有关,另一种与评分值无关,只考虑哪些项目被评分(thecijs).这些权重是自动从数据和偏差中学习的b而且bu.常数buj根据式3进行预计算。回想一下,R (u)是由用户评分的项目集合u

在调整规则(14)以处理时间动态时,应分别考虑两个组成部分。第一个组件,+b+bu,对应于基线预测部分。通常,这一成分解释了观测到的信号中大多数的可变性。第二个组件,|Ru)|1/2jisin.gifR (u)ruj-bujwij+cij,捕捉信息更丰富的信号,处理用户项交互。对于基线部分,因子模型不变,我们用+代替bt用户界面) +but用户界面),根据公式7和9。然而,在交互部分中获取时间动态需要不同的策略。

Itemitem重量(wij而且cij)反映物品的固有特性,不会随时间推移而漂移。学习过程应体现不偏不倚的长期价值,而不受偏颇方面的太大影响。事实上,如果没有得到充分处理,数据的时间变化特性可能会掩盖许多长期项目之间的关系。例如,一个用户对这两项都进行评级而且j在短时间内处于高位是将它们联系起来的一个很好的指标,从而推动更高的价值wij.另一方面,如果这两个评级相隔5年,而用户的品味(如果不是她的身份)可能会发生很大的变化,这就无法证明这两个项目之间的关系。最重要的是,我们认为这些考虑是基于用户的;有些用户比其他人更一致,并允许将他们的长期行动联系起来。

我们在这里的目标是提取物品权重的准确值,尽管有干扰的时间效应。首先,我们需要参数化用户评价的两个物品之间的衰减关系u.我们采用由函数形成的指数衰减eu·t,在那里u> 0控制用户特定的衰减率,应该从数据中学习。我们还实验了其他的衰变形式,比如计算成本较低的(1 +ut1,这导致了大约相同的精度,但改进了运行时间。

这就引出了预测规则

eq15.gif

相关参数,bt用户界面) =b+b本(途易but用户界面) =bu+u·戴夫ut用户界面) +bu,途易uwij而且cij,通过最小化相关的正则化平方误差来学习

eq16.gif

采用随机梯度下降法进行最小化。在因素情况下,适当地考虑时间动态可以提高电影评级数据集内的邻域模型的准确性。RMSE从0.9002下降7到0.8885。据我们所知,这比以前已知的邻域方法的结果要好得多。从某种角度来说,这个结果甚至比使用混合方法(如在其他算法的残差上应用邻域方法)所报告的结果更好。21118一个教训是,处理数据中的时间动态比设计更复杂的学习算法对准确性有更重要的影响。

我们想强调与第3节中描述的基本方法有关的一个有趣的点。让u做一个喜好快速变化的用户(u大)。因此,旧的评级由u对他目前的地位不应该有很大影响吗t.一个人可能会被引诱衰减重量u这导致了“实例权重”通过成本函数,如

ueq05.gif

这样的函数集中在当前的用户的状态(当时t),同时弱化过去的行为。我们反对这种选择,并选择在所有过去的评级中对预测误差进行同等加权,如方程16所示,从而建模所有过去的用户行为。因此,等权重允许我们利用过去每一个评级的信号,该信号被提取为项目的权重。了解这些权重将同样受益于用户的所有评级。换句话说,如果用户在短时间内对两件物品进行相似的评级,我们就可以推断出这两件物品是相关的,即使这发生在很久以前。

回到顶部

6.结论

跟踪客户对产品偏好的时间动态提出了独特的挑战。每个用户和产品的特性都可能经历一系列不同的变化。此外,我们经常需要在一个模型中建立所有这些变化的模型,从而将用户(或产品)相互联系起来,以确定共同的行为模式。仅仅是旧实例的衰减或多个独立模型的使用就会丢失太多的信号,从而降低预测的准确性。我们采用的解决方案是沿着整个时间段对时间动态进行建模,使我们能够智能地将瞬态因素从持久因素中分离出来。我们将此方法应用于两种主要的推荐技术。在因子分解模型中,我们模拟了用户和产品特征随时间变化的方式,以便从嘈杂的模式中提取长期趋势。在一个项目-项目邻域模型中,我们展示了如何通过学习用户评价的两个项目之间的影响如何随时间衰减来揭示项目之间更基本的关系。在因子分解和邻域模型中,时间动力学的加入被证明比各种算法增强在提高预测质量方面非常有用。在一个被广泛分析的电影评级数据集上,这导致了迄今为止发表的最佳结果。

回到顶部

参考文献

1.Ali, K., van Stam, W. TiVo:使用分布式协同过滤架构进行展示推荐。在第十届ACM SIGKDD知识发现与数据挖掘国际会议论文集(2004), 394401。

2.Bell, R., Koren, Y.基于联合推导的邻域插值权值的可扩展协同过滤。IEEE数据挖掘国际会议(2007), 4352。

3.Bennet, J., Lanning, S. Netflix奖。KDD杯及工作坊, 2007年。www.netflixprize.com

4.丁勇,李欣。时间权重协同过滤。在第十四届美国计算机学会信息与知识管理国际会议论文集(CIKM'04)(2004), 485492。

5.Goldberg, D. Nichols, D. Oki, b.m., Terry, D.使用协作过滤编织信息织锦。Commun。ACM 35(1992), 6170。

6.动态加权多数:一种跟踪概念漂移的新集成方法。在IEEE数据挖掘会议论文集(ICDM’03)(2003), 123130。

7.因式分解与邻域相遇:一个多面协同过滤模型。在第十四届ACM SIGKDD知识发现与数据挖掘国际会议论文集(KDD’08)(2008), 426434。

8.柯林,Y.时间动态协同过滤。在第十五届ACM SIGKDD知识发现与数据挖掘国际会议论文集(KDD'09)(2009), 447456。

9.Koren, Y., Bell, R., Volinsky, C.推荐系统的矩阵分解技术。IEEE第一版。42(2009), 3037。

10.林登,G,史密斯,B,约克,J。Amazon.com推荐:项目到项目的协同过滤。IEEE互联网计算机(2003), 7680。

11.改进的正则奇异值分解协同过滤。在KDD杯暨研讨会论文集(2007)。

12.蒲平、布里奇、d.g.、莫巴舍、B.、利玛奇等编。在2008年ACM推荐系统会议论文集(2008)。

13.萨华,b.m., Karypis, G., Konstan, J.A., Riedl, J.案例研究:降维在推荐系统中的应用。WEBKDD 2000年。

14.Sarwar, B., Karypis, G., Konstan, J., Riedl, J.基于条目的协同过滤推荐算法。在第十届万维网国际会议论文集(2001), 285295。

15.Schlimmer, J., Granger, R.超越增量处理:追踪概念漂移。在第五届全国人工智能学术会议论文集(1986), 502507。

16.Sugiyama, K., Hatano, K., Yoshikawa, M.基于用户配置文件构建的不需要用户任何努力的自适应网络搜索。在第十三届国际万维网会议(WWW'04)论文集(2004), 675684。

17.G. Takacs, Pilaszy, I., Nemeth, B., Tikk, D.重力推荐系统的主要组成部分。SIGKDD空洞。9(2007), 8084。

18.Toscher, A., Jahrer, M., Legenstein, R.大规模推荐系统的改进邻域算法。KDD'08大型推荐系统研讨会和Netflix奖(2008)。

19.概念漂移的问题:定义和相关工作。技术报告tcd - cs - 2004 - 15所示。都柏林三一学院,2004年。

20.在概念漂移和隐性语境存在下的学习。马赫。学习。23, 69(1996), 101。

回到顶部

作者

耶胡达科伦yehuda@yahoo-inc.com),雅虎!研究,以色列海法。

回到顶部

脚注

这篇论文的前一个版本发表在第十五届ACM SIGKDD知识发现与数据挖掘国际会议论文集(2009), 447456。

DOI: http://doi.acm.org/10.1145/1721654.1721677

回到顶部

数据

F1图1。Netflix电影评级数据集中出现了两个时间效应。:平均电影评级在2004年初突然跃升(自数据集中第一次评级以来的1500天)。:评分会随着评分时的电影年龄而增加。在这里,电影年龄是通过数据集中第一次评级事件以来的时间跨度来衡量的。在这两张图表中,每个点平均有10万个评级实例。

回到顶部

T1表1。比较捕获主要电影和用户效果的基线预测。随着时间建模变得更加准确,预测精度也会提高(降低RMSE)。

T2表2。三种因子模型的比较:对变化因子维数(f).对于所有模型,精度随着尺寸的增加而提高。大多数显著的精度增益是通过timeSVD++模型解决数据中的时间动态实现的。

回到顶部


©2010 acm 0001-0782/10/0400 $10.00

允许制作本作品的全部或部分的数字或硬拷贝用于个人或课堂使用,但前提是该拷贝不是为了盈利或商业利益而制作或分发,并且该拷贝在第一页上带有本通知和完整引用。以其他方式复制、重新发布、在服务器上发布或重新分发到列表,需要事先获得特定的许可和/或付费。

数字图书馆是由计算机协会出版的。版权所有©2010 ACM有限公司


没有发现记录

Baidu
map