在前面的博文中,已经详细介绍了基于内容和基于协同的推荐系统,它们都有各自的优点和缺点。

因此,目前有很多学者都在研究基于多种方法的混合推荐系统,最常见的为基于内容和基于协同过滤的混合。

本文将详细介绍基于对这两种推荐系统同构化整合的混合推荐模型,该算法同时拥有协同过滤推荐系统和基于内容推荐系统的优点,并且在一定程度上避免了基于内容或协同过滤的传统推荐系统各自的缺点。

该混合推荐算法的模型及结构如下图所示:

该模型与其他推荐模型的不同在于:

1) 构建了完善的模型输入模块。该模块包含可以根据需要向模型中一次或多次输入用户个人资料、查询(检索)时需要的关键词和句子、商品对象的各项属性值、用户使用推荐系统时和使用推荐系统后的评价,以及来自第三方对商品对象的评价等参数。

2) 构建了基于内容和协同过滤的整合推荐实施模块。该模块以回归模型为基本依据,以用户信息库、商品信息库、历史信息库和在线信息库为基础,分别将基于内容推荐的算法和协同过滤推荐算法应用于一般预测值的计算及其随机误差项的计算。

3) 构建了较完备的推荐结果输出模块。该模块依据系统的不同表现形式,将商品信息库中的资源“主动”推荐给用户。推荐方法包括搜索排序优先、邮件以及各种隐式信息传递等。

该混合模型的主要过程和核心是,先利用回归算法提取商品的内容属性,再对用户进行基于内容的协同过滤,最后同构化整合二者结论,并进行加权求和与有序化。

在详细阐述模型之前,有必要分析一下模型的输入数据。推荐系统典型的输入数据是给每个商品及其属性的评价。例如,表1是一个代表用户对电影优劣评价的m×n用户电影评价矩阵,该表的主要功能是在基于已经评价元素的基础上对空缺值进行预测。在评价矩阵中,用户1已经对电影1、电影2、电影4、电影5做了评价,那么用户1会对电影3、电影6做何评价呢?同样地,用户2对电影3,以及用户3对电影4和电影5该做何评价呢?

本混合推荐模型的算法由6个主要步骤组成:

1)首先

需要有一份存有所有商品(或对象)评价值(可能含有空缺值)的表格,初始表格中的评价值主要由用户直接或间接给出。例如,www.movielens.org 就是一个电影推荐网站,网站访问者只要注册并提供对15部以上的电影进行评价,那么他(她)就可以获得网站的推荐服务。像电影类别(例如动作、戏剧、爱情等)、导演、主要演员、制片商等关键信息都有助于对用户进行推荐。因此,用户在获得推荐服务之前应当尽可能向网站提供此类信息。  

2)其次

一旦用户提交了推荐模型所需要的关键信息,那么对用户的电影推荐就可以应用式(1)来计算:

其中,Ri,j是用户i对商品j的总体评价值,Xi,j,k是用户i对商品j的第k个属性的评价值,m是需要评价的商品的属性总个数。

在回归模型(1)中,需要测量的各个参数αi,x(x∈[0,m])决定了各个属性的数值对用户的重要性。用户过去的评价值都应用到模型(1)中,一旦用户i的模型中各个参数被估计出来,那么他(她)的空缺值就可以通过模型计算出来。例如,在表1中,用户1的回归模型通过他(她)已经看过的电影来构造,模型构造出来后,用户1对电影3的期望值就可以通过电影3和模型中的各个参数αi,x(x∈[0,m])预测出来。

3)第三步

基于回归模型(1),计算适合所有用户和商品及其属性的预测值R*i,j。

该预测值既适合实际已经发生的评价结果检验,也适合用户实际未发生或丢失的空缺值的预测。

4)第四步

构建一个预测误差的数据矩阵。该误差矩阵的值由实际发生的数据与预测数据之间的差值计算出来,即εi,j=Ri,j-R*i,j(2),公式中的εi,j实际上就是模型(1)中的随机误差项。由于对于需要预测的商品没有实际发生评价值Ri,j,因此该商品的随机误差项就无法计算。这样,通过实际的评价值和回归模型计算值之差构建的预测误差数据矩阵的形式也就和表1类似,与表1相对应的空白处也是没有数据的。

5)第五步

将协作过滤技术用于第四步构建的预测误差数据矩阵,我们在此采用基于邻居的协同推荐算法。为了计算用户的空缺值,采用式(3)来计算用户的随机误差项εi,j:Ra,j=λ∑ni=1wa,i(εi,j-εa)+εa(3)其中,Ra,j是用户a对商品j的评价,n是协同过滤数据矩阵中已经对商品j评价过的用户的数量,Wa,i是用户i和目标用户a之间的相似性,λ是一个总和值为1的正太化因素。在表1的电影评价例子中,假设对用户1而言,电影3是·143·需要通过预测来判断是否值得推荐的。在基于邻居的算法中,需要获得用户2、用户3等其他用户对电影3评价的加权平均数。另外,权重(Wa,i)的大小取决于用户1在电影评价方面与其他用户的相似性,包括皮尔森(Pearson)相关系数法、斯皮尔曼(Spearman)秩相关系数法和向量相似度等诸多方法均可以用来测定该值。在协同过滤的算法方面还有很多其他重要的文献,本文就不探讨了。

6)第六步

把第三步和第五步的计算结果求和,即第三步中利用基于内容推荐方法得出的R*i,j和第五步基于协同过滤推荐方法得出的εi,j,通过对式(2)进行变化并计算,得Ri,j=R*i,j+εi,j,即用户i对商品j的预测评价值。

 

 

参考推荐:

基于协同过滤的推荐系统