system: [SYSTEM]

user: 4. 实验结果及评价 4.1. 实验方法 4.1.1. 实验数据集 豆瓣是中国最大的书籍，电影和音乐的推荐和评论分享社交平台。每个用户都可以对书籍，电影和音乐做出评分(从一星到五星)，以表明他对该项目的偏好程度。每个评分都有一个对应的时间戳。若用户还未消费过对应项目，仍可以通过添加类似“wish”的标签表达他的兴趣。这里存在的社交网络使得用户可以追随那些发布有趣或有用评论的用户。表1展示了该数据集的统计资料。注意这里我们只选用显性的评分，即“wish”不做为评分。 我们选择豆瓣数据集是因为它不仅包含相关的时间信息等上下文信息，并且含有社交信息，因此它很适合用来测试本文提出的基于社交网络的上下文感知推荐算法。随机选取80%的评分来训练推荐模型并利用余下的20%评分来测试算法的性能。 4.1.2. 实验对比 据我们所知，现有的推荐系统还不能系统结合上下文信息和社交网络信息来给出高质量的推荐。在本节中，将对SCRA和现有的上下文感知推荐算法，社交推荐算法，基于用户或项目的协同过滤算法进行比较。 RPMF是随机分割矩阵分解的简称，是一种利用随机分割技术基于树结构构造的上下文协同过滤模型。具体来说，它将具有相似上下文的评分分配到决策树的同一结点上。然后，在每个结点上应用矩阵分解来预测评分。多个结点和决策树上的预测结合起来生成最终的推荐。尽管该模型所提出的算法也用到了基于树的方法，但和本文提出的算法相比，它们仍有着明显的不同：1) RPMF通过处理和上下文信息相关的隐语义的值间接处理上下文信息，而本文提出的SCRA直接处理上下文信息；2) RPMF在树的每个结点都应用矩阵分解，而本文提出的SCRA仅在树的叶子结点应用矩阵分解。另一个重要的不同之处在于RPMF未考虑任何的社交网络信息。 SoReg是一种基于社交网络信息的推荐模型。在基础的矩阵分解模型的基础上加入了一个社交正则化项。它有两种变式：1) 基于平均值的正则化，它限制用户的偏好值和用户好友偏好平均值之间的差异；2) 基于个体的正则化则限制用户偏好和他每位好友的偏好之间的差异。实验中，我们只比较本文的算法和更为精确的基于个体的变式。 基于项目的协同过滤算法首先找到潜在用户评分过的并且和待预测项目最为相似的项目集，然后通过求这些近似项目评分的加权平均值来预测评分值。 基于用户的协同过滤算法结合了一组和潜在用户有着相似评分模式的最近邻用户的评分来预测评分。 基于数据集中可以取得的信息，对于包含有上下文信息的推荐算法，提取出5类上下文信息：1) 一天中的每小时，即用户在几点做出的评分；2) 一周中的每一天，即用户在星期几做出的评分；3) 用户评分时目标项目中“wish”的数量(仅对豆瓣数据有效)；4) 潜在用户的平均评分值；5) 目标项目的分类。 4.1.3. 评价指标 我们使用均方根误差(RMSE)来度量和比较多种推荐算法的性能，它由下式定义： Table 1 Statistics of the Douban datase 评分数 用户数 项目数 书籍 812，037 8598 169，982 电影 1，336，484 5227 48，381 音乐 1，387，216 23，822 185，574 全部 3，535，737 25，560 403，937 表1. 豆瓣数据集统计资料 (15) 其中N为预测总数， 是对项目的真实评分， 是相应的预测评分。每个实验重复十次。由于所有实验中的方差都很低(即95%置信区间)，为了避免混乱，没有设定误差标准线。测试采用双尾检验配合t检验(p值<0.001)，所有相关测试结果都有着明显的统计意义。 4.2. 结果评价 首先用豆瓣数据集来讨论SCRA中多个参数对算法性能的影响。经过交叉验证，我们设定正则化常量 。图3显示当应用数据集的不同子集(即，书集，电影集和音乐集)时，参数 的变化对算法性能的影响，其中 控制着有多少社交网络信息被整合进算法中。本实验中，设定隐语义向量维度和求解一个矩阵分解模型的迭代次数分别为10和20。随后将介绍这两个参数是如何影响不同基于矩阵分解的推荐模型性能的。注意到当 增大，RMSE首先变小，当 到达某一个临界值时(约0.01)，RMSE便保持相对平稳(有微量增大)。由此得出结论，社交网络信息可以有效的改善推荐质量，并且 是个合适的临界值，这个临界值可以很好的平衡用户项目评分矩阵和社交网络信息。 另一个影响算法性能的是评分预测时所用的决策树的数量。图4表明少量的决策树(即2或3)就可以实现高质量的推荐。这个结果同样证明了算法的计算复杂度在应用中处在一个合理的范围内。在接下来的实验中，我们设定本算法的决策树数量为3。 接下来讨论上下文信息量的影响。首先控制决策树的高度为一确定值。如果设定树的高度为1，那么在每棵树中都只有一类的上下文信息被利用。如果设树高为4，则所有的上下文信息都被用于推荐。由图5可以看出，越多的上下文信息被利用，算法性能就越好(即更低的RMSE)。同样证明了，一方面，上下文信息可以极大的提高推荐质量，另一反面，所选择的上下文信息(见4.1.2节)是很有效的。 最后，利用豆瓣数据集对SCRA和其它的推荐算法进行对比。在这之前，需要首先确定两个重要的参数。即隐语义向量维度和基于矩阵分解模型的迭代次数。先把迭代次数定为10，然后观察RMSE在不同维度的隐语义向量下的变化(见图6)。发现RMSE随着隐语义向量维度的增加而减少，这就意味着，更大的维度会带来更高的准确度。然而，当维度增加到10(一些情况下甚至为8)左右，推荐质量的提高就变得微不足道。由此得出结论，对于基于矩阵分解的模型(在豆瓣数据集上)只要有少量的隐语义就足够了。 图3. 参数α的影响；实验参数(λ = 0.1，α = 0.01，隐语义向量维度为10，迭代次数为20) 图4. 决策树数量的影响(λ = 0.1，α = 0.01，隐语义向量维度为10，迭代次数为20) 图5. 上下文信息量的影响(λ = 0.1，α = 0.01，隐语义向量维度为10，迭代次数为20) 在下面的实验中，分别设定SCRA，SoReg和RPMF隐语义向量的维度为可以使RMSE趋于稳定且较低的临界值(即[8， 10])。类似的，如图7所示设定所有基于矩阵分解的模型迭代次数为一临界值(即[20， 30])，因为越高的迭代次数会带来更高的计算量，但却不能明显降低RMSE。 一旦参数确定下来，就可以分别用书籍数据，电影数据，音乐数据和完整豆瓣数据去测试不同推荐模型的性能(表2)。 总结了测试结果。注意到，在所有的实验场景中，SCRA都要比其它的推荐算法更精确。所有基于矩阵分解的模型都要明显胜过传统的基于项目和基于用户的协同过滤算法，这也证明了矩阵分解技术在推荐系统领域里的优势。实验结果同样说明，同时包含上下文信息和社交网络信息的推荐算法比那些只含有其中一种信息的推荐算法(即，SoReg和RPMF)具有更高的推荐质量。SoReg比RPMF性能稍好说明了处理过的社交网络信息对提高推荐系统的质量更有效(至少在豆瓣数据集上是这样)。总体来看，在完整的豆瓣数据集上，从RMSE角度，相应地提高了13%~25%。 Table 2 Performance comparison on the Douban datase 书籍 电影 音乐 全部 RMSE RMSE RMSE RMSE SCRA 0.4537 0.4783 0.4856 0.4691 SoReg 0.4943 0.6413 0.5291 0.5449 RPMF 0.5101 0.6631 0.5308 0.5680 Item-based CF 1.2830 1.0541 1.4417 1.2596 User-based CF 1.6533 1.4445 1.6887 1.5955 表2. 豆瓣数据集上的性能对比 图6. 隐语义向量维度的影响(迭代次数为10) 图7. 迭代次数的影响