因式分解遇上邻域:一个多方面的协同过滤模型

因式分解遇上邻域:一个多方面的协同过滤模型


推荐系统为用户在产品和服务方面提供了个性化的建议。为了建立用户和产品之间的关系,这些系统通常依靠协同过滤来分析过去的交易情况。还有两个成功的协同过滤模型是潜在因子模型,直接描述用户和产品和邻域模型,通过分析产品和用户之间的相似度。在这项工作中,我们介绍这两种方法的一些创新。因子模型和邻域模型现在可以无缝的合并,这样的话可以建立一个更加准确的合并模型。利用用户的显式和隐式反馈,扩展了原来的模型以达到精确度的进一步提高。这种方法在NetFlix数据上测试过。结果比之前用这种数据集的方法要好。另外,我们建议一个新的评估指标,根据这些方法在top-k推荐任务中的表现,突出这些方法的不同


类别和主题描述符


关键词:

协同过滤,推荐系统


介绍

现代的消费者选择很多,电商和内容提供者为用户提供了前所未有的机会,来满足不同需求和不同口味。为消费者提供最合适的产品并非易事,但是这是增加用户满意度和忠诚度的关键,这突出了推荐系统的重要性。为了满足用户的口味,提供用户个性化的推荐产品。 互联网领导者,像amazon, google, Netflix, tivo, yahoo越来越青睐这样的推荐系统。


推荐系统通常基于协同过滤,通过用户过去的行为(例如,之前的产品交易或者产品打分),并且不需要创建显示的描述。尤其是,协同过滤技术不需要领域知识,并且不需要大量的数据收集。另外,直接依靠用户的行为可以发现复杂或者不可预知的模式,这种模式在数据属性的情况下很难或者根本不可能发现。所以,协同过滤在过去的数十年吸引了很多注意,结果是取得了显著的进展并且被一些成功的商业系统采用,包括亚马逊,tivo, Netflix.

为了建立推荐系统,协同过滤系统需要从根本上比较不同的推荐:产品和用户。主要有两种主要的方法来让比较更容易,构成了协同过滤两个主要的学科:邻域方法和因子模型

邻域方法集中于计算产品或者用户之间的关系。面向产品的方法根据用于对相似产品的评分来评估这个用于对一个产品的偏好程度。从某种意义上来说,这些方法通过将用户视为已经为商品评分的篮子,将用户转换到商品空间,这样我们就不需要将用户和商品比较,而是直接让商品和商品相关联。

潜在因子模型,例如SVD(奇异值分解),通过将商品和用于转换为相同的潜在因子空间。因此让他们可以直接比较。潜在空间试图通过根据用户反馈自动推断出的因素来表征商品和用户,从而来解释评分。例如,当用户是电影时,因素可能是衡量明显的维度,比如喜剧和戏剧,动作,或者是否面向儿童,定义不充分的维度,例如角色发展的深度或者古怪程度或者完全无法解释的维度。

自从200610NETFLIX竞赛以来,协同过滤领域就引起了人们的关注,NETFLIX发布了一个包含了1亿个电影收视率的数据集,并向研究界发起了挑战,要求开发出能够击败他的推荐系统CINEMATCH的算法。从这个竞赛我们学到的是邻域和潜在因子方法处理的是数据中结构不同的层次,所以他们都不是最优的。

邻域模型在检测非常本地化关系时是最有效的。他们依赖几个重要的邻域关系。通常会忽略用户的绝大多数评分。因此,这些方法无法捕获用户所有评分中包含的全部弱信号,潜在因子模型通常可以有效的评估与大多数或者所有商品同时相关的整体结构,但是这些模型在检测少量紧密相关的商品的强关联性方面表现欠佳,而这正是邻域模型最擅长的地方。

在这项工作中,我们提出了一种可以预测准确率的组合模型,利用邻域和潜在因子的方法。据我们所知,这是第一次将两个方法集成到一个模型中。事实上,过去的一些工作认识到了合并这些方法的作用。但是他们建议后期处理因子分解的结果,而不是对称的考虑邻域和因子信息。

NETFLIX有奖竞赛中学到的另外一个是将不同形式的用户输入整合起来的重要性。推荐系统依赖不同形式的用户输入。最方便的是高质量的显式反馈,比如,NETFLIX收集用户通过大拇指向上向下为TV偏好打的评分。但是,显式反馈并不总是可以获得的。因此,推荐这可以从更为丰富的隐式反馈中推断出用户的偏好,通过观察用户行为,间接的反应用户的想法。隐式反馈的类型包括,购买记录,浏览记录,搜索记录,甚至是鼠标移动记录。例如,一个用户从买过同一个作者的许多本书,肯定是喜欢这个作者。我们主要集中在显式反馈是不是可以获得。尽管如此,我们认识到隐式反馈的作用,它可以说明未提供足够显式反馈的用户,因此我们的模型集成了显式反馈和隐式反馈。

剩余论文的结构如下:我们在第2节介绍一些初步的情况和相关的工作。然后,在第三节,我们描述了一个新的,更加准确的邻域模型。新的模型基于优化过框架,可以与潜在因子模型无缝整合,并且包括隐式用户反馈。第四节介绍了SVD的潜在因子模型,并且介绍了游泳的扩展。这些扩展包括了因子模型,可以解释推荐背后的原因。可解释性在实际系统中很重要,对于潜在因子模型来说,可解释性是个问题。在第三,四,五节,通过集成邻域和因子模型到一个框架的方法,相关的实验结果在每一节中。并且在第六节我们建议一个姓的方法来评估模型的有效性,带来了令人鼓舞的成绩。


前提条件

我们保留特殊的索引字母来区分用户和商品,u,v是用户,i,j是商品。评分r_ui表示用户u对于商品i的偏好程度。例如,从1星代表用户没兴趣到5星代表用户有极大的兴趣。我们用符号(r_ui ) ̂来区分预测分数和已知分数。已知的(u,i)集合对r_ui对存储在K里,通常情况下,大部分的分数是未知的。例如,在NETFLIX数据集里,99%的分数是缺失的。为了避免稀疏打分数据的过拟合,模型进行了正则化,以便将估计是缩小至基线默认值。正则化是用常量λ_1λ_2…这些常数是由交叉验证决定的,随着他们增长,正则化变得越来越重。

基准评估

典型的协同过滤数据会显示出较大的用户和商品影响。系统的趋势是某些用户给的评分要高于其它用户,而对于某些商品的评价要高于其它用户。通常通过考虑这些影响来调整数据,我们将这些影响封装在基线估计中。μ表示整体的平均分。未知评分r_ui的基线估计b_ui,考虑到用户和商品的影响

b_ui = μ + b_u + b_i

参数b_u和参数b_i表示观察的用户u和商品i的平均偏差。例如,加入我们想要Joe对泰坦尼克号电影的基线估计。现在,假设电影平均分数μ3.7颗星,而且,泰坦尼克号比平均分肯定要好,所以趋向于高于平均分0.5分,但是呢,Joe是个挑剔的用户,一般会给到低于平均分0.3分。所以,joe对于泰坦尼克号电影基线估计分数是3.7-0.3+0.5 ,总共是3.9分。为了估计b_u b_i, 可以用最小二乘来解决这个问题

第一项努力找到符合给定分数的b_u b_i, 第二项正则项,通过惩罚调整参数,为了防止过拟合。

邻域模型

最常用的协同过滤方法是基于邻域模型,原始的格式是面向用户的,几乎所有早期的协同过滤系统都用这种格式。示例12做了一个很好的分析,这种面向用户的方法基于志趣相投的已经记录的用户评分来估计未知评分。后来,类似的基于商品的方法变得流行,在这些方法中,使用相同用户在相似商品上评分来估计评分。更好的可伸缩性和更好的准确性让基于商品的方法在很多情况下更加适合。此外,基于商品的方法更加适合解释预测背后的原因。这是因为用户熟悉他们以前喜欢的项目。但是不知道据称是相似的用户,因此,我们重点关注基于商品的方法,但是可以通过切换用户和商品的角色,来并行开发基于用户的技术。

大多数基于商品的方法是商品之间的相似性度量。通常,这是基于皮尔逊相关系数p_ij,通过测量用户对于商品ij之间相似度的趋势,由于许多评分是未知的。因此预计某项商品只能共享少数几个普通的评分者。相关系数的计算仅基于普通的用户。因此,基于更多用户的相似性度量会更可靠。一个可行的相似性度量。用s_ij表示,这是缩小相关系数

n_ij表示给商品ij打分的用户数。λ_2一般取100,请注意,文献【21,22】为相似性度量提供了其它选择。


我们的目标是预测r_ui-缺失的用户u对于商品i的评分,利用相似度度量,我们确定由u评估的和i最相似的k个商品,这k个近邻用S^k (i;u)r_ui的预测值是作为近邻商品的平均分。同时通过基线估算针对用户和商品进行调整:














因式分解遇上邻域:一个多方面的协同过滤模型



推荐系统为用户在产品和服务方面提供了个性化的建议。为了建立用户和产品之间的关系,这些系统通常依靠协同过滤来分析过去的交易情况。还有两个成功的协同过滤模型是潜在因子模型,直接描述用户和产品和邻域模型,通过分析产品和用户之间的相似度。在这项工作中,我们介绍这两种方法的一些创新。因子模型和邻域模型现在可以无缝的合并,这样的话可以建立一个更加准确的合并模型。利用用户的显式和隐式反馈,扩展了原来的模型以达到精确度的进一步提高。这种方法在NetFlix数据上测试过。结果比之前用这种数据集的方法要好。另外,我们建议一个新的评估指标,根据这些方法在top-k推荐任务中的表现,突出这些方法的不同



类别和主题描述符



关键词:


协同过滤,推荐系统



1. 介绍


现代的消费者选择很多,电商和内容提供者为用户提供了前所未有的机会,来满足不同需求和不同口味。为消费者提供最合适的产品并非易事,但是这是增加用户满意度和忠诚度的关键,这突出了推荐系统的重要性。为了满足用户的口味,提供用户个性化的推荐产品。 互联网领导者,像amazon, google, Netflix, tivo, yahoo越来越青睐这样的推荐系统。



推荐系统通常基于协同过滤,通过用户过去的行为(例如,之前的产品交易或者产品打分),并且不需要创建显示的描述。尤其是,协同过滤技术不需要领域知识,并且不需要大量的数据收集。另外,直接依靠用户的行为可以发现复杂或者不可预知的模式,这种模式在数据属性的情况下很难或者根本不可能发现。所以,协同过滤在过去的数十年吸引了很多注意,结果是取得了显著的进展并且被一些成功的商业系统采用,包括亚马逊,tivo, Netflix.


为了建立推荐系统,协同过滤系统需要从根本上比较不同的推荐:产品和用户。主要有两种主要的方法来让比较更容易,构成了协同过滤两个主要的学科:邻域方法和因子模型


邻域方法集中于计算产品或者用户之间的关系。面向产品的方法根据用于对相似产品的评分来评估这个用于对一个产品的偏好程度。从某种意义上来说,这些方法通过将用户视为已经为商品评分的篮子,将用户转换到商品空间,这样我们就不需要将用户和商品比较,而是直接让商品和商品相关联。


潜在因子模型,例如SVD(奇异值分解),通过将商品和用于转换为相同的潜在因子空间。因此让他们可以直接比较。潜在空间试图通过根据用户反馈自动推断出的因素来表征商品和用户,从而来解释评分。例如,当用户是电影时,因素可能是衡量明显的维度,比如喜剧和戏剧,动作,或者是否面向儿童,定义不充分的维度,例如角色发展的深度或者古怪程度或者完全无法解释的维度。


自从200610NETFLIX竞赛以来,协同过滤领域就引起了人们的关注,NETFLIX发布了一个包含了1亿个电影收视率的数据集,并向研究界发起了挑战,要求开发出能够击败他的推荐系统CINEMATCH的算法。从这个竞赛我们学到的是邻域和潜在因子方法处理的是数据中结构不同的层次,所以他们都不是最优的。


邻域模型在检测非常本地化关系时是最有效的。他们依赖几个重要的邻域关系。通常会忽略用户的绝大多数评分。因此,这些方法无法捕获用户所有评分中包含的全部弱信号,潜在因子模型通常可以有效的评估与大多数或者所有商品同时相关的整体结构,但是这些模型在检测少量紧密相关的商品的强关联性方面表现欠佳,而这正是邻域模型最擅长的地方。


在这项工作中,我们提出了一种可以预测准确率的组合模型,利用邻域和潜在因子的方法。据我们所知,这是第一次将两个方法集成到一个模型中。事实上,过去的一些工作认识到了合并这些方法的作用。但是他们建议后期处理因子分解的结果,而不是对称的考虑邻域和因子信息。


NETFLIX有奖竞赛中学到的另外一个是将不同形式的用户输入整合起来的重要性。推荐系统依赖不同形式的用户输入。最方便的是高质量的显式反馈,比如,NETFLIX收集用户通过大拇指向上向下为TV偏好打的评分。但是,显式反馈并不总是可以获得的。因此,推荐这可以从更为丰富的隐式反馈中推断出用户的偏好,通过观察用户行为,间接的反应用户的想法。隐式反馈的类型包括,购买记录,浏览记录,搜索记录,甚至是鼠标移动记录。例如,一个用户从买过同一个作者的许多本书,肯定是喜欢这个作者。我们主要集中在显式反馈是不是可以获得。尽管如此,我们认识到隐式反馈的作用,它可以说明未提供足够显式反馈的用户,因此我们的模型集成了显式反馈和隐式反馈。


剩余论文的结构如下:我们在第2节介绍一些初步的情况和相关的工作。然后,在第三节,我们描述了一个新的,更加准确的邻域模型。新的模型基于优化过框架,可以与潜在因子模型无缝整合,并且包括隐式用户反馈。第四节介绍了SVD的潜在因子模型,并且介绍了游泳的扩展。这些扩展包括了因子模型,可以解释推荐背后的原因。可解释性在实际系统中很重要,对于潜在因子模型来说,可解释性是个问题。在第三,四,五节,通过集成邻域和因子模型到一个框架的方法,相关的实验结果在每一节中。并且在第六节我们建议一个姓的方法来评估模型的有效性,带来了令人鼓舞的成绩。



2. 前提条件


我们保留特殊的索引字母来区分用户和商品,u,v是用户,i,j是商品。评分 表示用户u对于商品i的偏好程度。例如,从1星代表用户没兴趣到5星代表用户有极大的兴趣。我们用符号 来区分预测分数和已知分数。已知的(u,i)集合对 对存储在K里,通常情况下,大部分的分数是未知的。例如,在NETFLIX数据集里,99%的分数是缺失的。为了避免稀疏打分数据的过拟合,模型进行了正则化,以便将估计是缩小至基线默认值。正则化是用常量 , …这些常数是由交叉验证决定的,随着他们增长,正则化变得越来越重。


2.1 基准评估


典型的协同过滤数据会显示出较大的用户和商品影响。系统的趋势是某些用户给的评分要高于其它用户,而对于某些商品的评价要高于其它用户。通常通过考虑这些影响来调整数据,我们将这些影响封装在基线估计中。μ表示整体的平均分。未知评分 的基线估计 ,考虑到用户和商品的影响


= μ + +

参数 和参数 表示观察的用户u和商品i的平均偏差。例如,加入我们想要Joe对泰坦尼克号电影的基线估计。现在,假设电影平均分数μ3.7颗星,而且,泰坦尼克号比平均分肯定要好,所以趋向于高于平均分0.5分,但是呢,Joe是个挑剔的用户,一般会给到低于平均分0.3分。所以,joe对于泰坦尼克号电影基线估计分数是3.7-0.3+0.5 ,总共是3.9分。为了估计 和 , 可以用最小二乘来解决这个问题



第一项努力找到符合给定分数的 和 , 第二项正则项,通过惩罚调整参数,为了防止过拟合。


2.2 邻域模型


最常用的协同过滤方法是基于邻域模型,原始的格式是面向用户的,几乎所有早期的协同过滤系统都用这种格式。示例12做了一个很好的分析,这种面向用户的方法基于志趣相投的已经记录的用户评分来估计未知评分。后来,类似的基于商品的方法变得流行,在这些方法中,使用相同用户在相似商品上评分来估计评分。更好的可伸缩性和更好的准确性让基于商品的方法在很多情况下更加适合。此外,基于商品的方法更加适合解释预测背后的原因。这是因为用户熟悉他们以前喜欢的项目。但是不知道据称是相似的用户,因此,我们重点关注基于商品的方法,但是可以通过切换用户和商品的角色,来并行开发基于用户的技术。


大多数基于商品的方法是商品之间的相似性度量。通常,这是基于皮尔逊相关系数 ,通过测量用户对于商品ij之间相似度的趋势,由于许多评分是未知的。因此预计某项商品只能共享少数几个普通的评分者。相关系数的计算仅基于普通的用户。因此,基于更多用户的相似性度量会更可靠。一个可行的相似性度量。用 表示,这是缩小相关系数



表示给商品ij打分的用户数。 一般取100,请注意,文献【21,22】为相似性度量提供了其它选择。



我们的目标是预测 -缺失的用户u对于商品i的评分,利用相似度度量,我们确定由u评估的和i最相似的k个商品,这k个近邻用 , 的预测值是作为近邻商品的平均分。同时通过基线估算针对用户和商品进行调整:




































猜你喜欢

转载自www.cnblogs.com/ljstu/p/11704269.html