基于混合信任模型的协同过滤推荐算法探究
1 引言
一个社交网站,比如脸谱网、微博,已经成为互联网用户不可或缺的一部分。信息技术和互联网技术的普及和迅猛的发展,加剧了信息过载问题,增加了用户获得有用信息的成本。推荐系统作为一种过滤技术,可以有效缓解信息过载问题,为用户提供优质的个性化服务。在传统的个性化推荐算法中,协同过滤算法无疑是最成功的一种算法。协同过滤推荐算法是基于某些特定项目的用户之间的相似性偏好来预测推荐结果的。更一般而言,如果他们在某些项目上有类似的利益,他们最有可能对一些其他项目感兴趣。基于协同过滤的方法首先基于项目或基于用户的相似性度量计算发现邻居项目或邻居用户,然后通过相似性的邻居的历史偏好来预测目标用户的偏好。虽然协同过滤是有效的,但当评分数据稀疏,用户没有足够的历史评级数据来支撑相似性计算时,推荐效果表现不佳。ก此外,基于协同过滤的推荐系统忽略了用户之间的社会关系或信任关系,很多研究者也考虑利用社会网络关系信息来提高协同过滤推荐系统性能。
基于信任的推荐系统试图通过引入信任度量解决数据稀疏性问题,采用用户项目评分信息和用户社会信任网络信息来共同计算相似度。如果两个用户有非常少的共同评分项目,只从他们的共同额定项目的评级信息计算的信任值可能会产生误导性的信任。虽然传统的基于信任的比照系统已经提出了基于评级的信任模型,或明确指定的信任指标,以获得用户的可信性,由于用户间共同评分数据的极度稀疏性,造成信任值度量的误差很大,对推荐系统精度的改良意义不大。所以本文提出一个新的混合信任度量模型,利用用户的历史评分数据和用户在社会网络中的互动交互频率来共同计算直接信任值,再通过一定的信任传递规则来计算没有直接联系和没有共同评分项目的用户之间的间接信任值,合并得到用户信任矩阵。最后基于信任矩阵和用户评分矩阵来共同预测评分,得到推荐结果。
2 传统协同过滤方法
2.1 传统相似性计算方法
协同过滤推荐的关键点是不同用户之间的相似性度量。广泛采用的方法是基于用户的共同历史评分数据项量来进行相似度的计算。在相似性计算方法中,虽然各有其优缺点,但最常用的相似性度量方法是余弦相似性、修正的余弦相似性和皮尔森相似性。余弦相似性:将用户的评分数据转换为多维向量,然后利用这些向量的余弦值来度量用户之间的相似性。
2.2 基于信任的协同过滤算法
信任被定义为一个用户对另一个用户可靠性的主观信念。信任可以分为直接信任和间接信任,直接信任是用户间直接交互作用而建立的信任,而间接信任是一个用户通过信任传播的方式和别的没有直接联系的用户间的信任关系。假设信任度量的目的是量化用户之间的信任程度,如果信任关系没有明确表示,可以从评级数据或其他间接信息中推断出来。此外,许多研究人员将信任引入到基于用户的协同过滤的推荐中,并提出了许多信任模型。例如,从逻辑的角度研究用户之间的信任关系,Pitsilis提出了一种基于不确定概率理论的信任模型。然而,由于不确定性是由用户的平均评分计算得到,而评分矩阵的稀疏性导致信任模型的准确性是有限的。Kwon等人研究了一种多维信任模型来测量用户间相似度,然后计算一个加权汇总选择邻居。然而,尽管该模型在选择邻居的过程中有更多的多样性,但它仍然缺乏抵抗攻击的能力。为此,本文针对上述问题,在前人的研究基础上提出了一种改进的基于信任的协同过滤推荐算法,探讨了一种计算用户间信任度的新思路,然后将信任度和相似度按照一定原则组合,根据组合的相似度来搜索最佳邻居得到推荐。
3 基于混合信 ッ任模型的协同过滤推荐算法
本文提出的改进的基于信任的协同过滤算法将用户评分矩阵和用户之间的交互信息作为输入并计算用户间之间信任值,再基于一种信任传递规则来计算用户间接信任值。将直接信任值和间接信任值组合成为较稠密的信任矩阵。信任矩阵和评价矩阵被共同用来寻找目标用户的K近邻,并计算目标用户对未评分项目的预测评分,最后选择预测评分较高的项目作为推荐列表反馈给目标用户。
4 实验结果
4.1 数据集
为了验证本文新提出的推荐算法比传统的协同过滤算法具有更好的性能,我们收集了MovieLens站点的相关数据集来完成相应实验。MovieLens数据集是最常用来测试推荐算法性能的标准数据集。此数据集包含100000个等级从1到5的评价数值,由943名用户对1682部电影的评价。在这个数据集中,用户被要求至少对20部电影进行评分,数据稀疏率是95%左右。在实验中数据集被分为训练和测试部分。
4.2 结果分析
1)实验1:通过调节评分相似度和信任度组合的权重因子ϕ 来对比推荐精度MAE的值在本实验中我们将测试参数ϕ 取不同值对推荐精度MAE值的影响。ϕ [0,1],ϕ♚ 的值从0开始,每次增加0.1,纵坐标为推荐精度MAE的值,观察纵坐标MAE值的变化,并将本文提出算法和基于用户的CF以及基于信任的CF作对比,发现当参数ϕ 取值为0.6时推荐效果最佳。
2)实验2:本文算法与其他协同过滤推荐算法的比较本实验的目的是将本文提出算法与传统的协同过滤算法以及近期业界比较领先的研究方法EMDP进行比较。我们使用相同的实验数据,比较了该算法与传统的协同过滤算法,如基于项目的CF,基于用户的CF,基于信任的CF以及 ☺文献中提出的EMDP算法在推荐精度方面的差异。在这个实验中,ϕ 取值为0.6,和最近邻数数目取值范围为[10,60],每次增加5个邻居。实验结果如图2所示。实验结果表明,本文提出的方法可以得到较低的MAE值,因此推荐效果更好,随着产品最近邻居数目的增加,预测的质量也在不断提升。
5 结论
协同过滤是目前推荐系统所使用的主流技术,但用户项评分矩阵的稀疏性问题是协同过滤技术的主要限制之一。为了解决稀疏性问题,本文提出了一种改进的基于信任的协同过滤推荐算法。该算法使用用户的评级数据和交互信息作为推断,产生一个信任矩阵,代表用户之间的信任值,然后将信任值是用来纠正传统相似性计算并以此来寻找最近邻居用户得到未评分项目的预测评分。由于本文提出的改进算法能搜索到更优的邻居用户,所以使得推荐算法的推荐精度有较大提升。实验结果表明,该算法优于最近邻协同过滤的预测质量。与传统的基于项目的协同过滤算法、基于用户的协同过滤算法、基于上下文的协同过滤算法、基于信任的协同过滤算法以及目前业界比较先进的EMDP算法在推荐精度方面作了对比,推荐性能较好,能很好缓解数据稀疏性问题对推荐精度的影响。由于要计算用户之间的信任度,会增加推荐系统的时间开销,不过可以将信任度的计算离线进行,减少对系统响应时间的影响。未来的研究,以提高ผ该算法的时间性能以及提高算法的抗恶意攻击能力等。