机器学习算法实践:推荐系统的协同过滤理论及其应用
上QQ阅读APP看书,第一时间看更新

1.6 基于信任的协同过滤推荐算法

针对矩阵分解算法在海量数据情况下推荐精度急剧下降的问题,国内外学者提出融合其他信息来约束传统的概率矩阵分解,其中信任信息是一种既容易获得又十分有效的信息。

推荐系统中对信任信息的研究主要集中在信任的度量方式,也就是信任的传播与聚合上,传统的信任度量方法有Tidal Trust和MoleTrust等。Tidal Trust是一个递归算法,在Golbeck等人的实验中不是考虑用户a到用户c的直接信任关系,而是首先找到a到c的其他全部路径,分别计算信任值,据此得到如下结论:①越短的路径产生的信任值越准确;②包含越高信任值的路径产生的信任结果比较好。结合结论①和六度空间理论,作者使用广度优先搜索算法来计算最短路径上前6个节点的信任值。另外,实际情况中信任的计算也和商品的评分一样因人而异。也就是说,有的人倾向于给出高的信任值,有的人倾向于给出较低的信任值,即便很信任对方。因此,需要首先计算出链接路径上每个用户的所有路径中信任值的最大值,以该值作为最小的信任阈值做加权处理,以此得到局部信任值。值得注意的是,作者在文末提出使用Tidal Trust算法不一定比使用信任平均值的协同过滤推荐算法效果更好,仅当某些用户的偏好显著偏离平均值时效果才更好。

Mole Trust由Massa等人提出,首先去掉数据集中的环得到有向无环图,这样每个用户不会重复计算,提高了算法的实际效率;其次计算和目标用户距离在2度之内节点之间的信任值,2度之外节点之间信任值的计算方式和Tidal Trust类似。另外,与Tidal Trust不同的是,Mole Trust算法进行加权处理时考虑所有对物品评分而且目标用户能够达到的用户集,并且只有那些信任度超过特定阈值的用户的信任度才被考虑在内,该阈值由用户自己指定。Mole Trust计算的也是局部信任值,该算法比类似PageRank的全部信任度算法具有更好的预测效果,尤其是对那些比较具有争议的用户(这些用户被一些人信任而被另外一些人不信任),同时该算法对冷启动用户的预测效果更好。表1-1列出了Tidal Trust和Mole Trust算法的异同。

表1-1 TidalTrust和MoleTrust算法的异同

这些经典的信任度量方法虽然能作为互联网中信任度的度量,但是本身也存在一些缺陷,例如上述算法不能度量本身不存在直接联系用户之间的信任程度。

鉴于此,2013年西安交通大学秦继伟博士将用户的情感需求作为调节背景,融合社交网络中的信任机制和用户的情感偏好提出一种改进的推荐算法,在推荐系统领域公开的数据集上的实验结果表明,改进算法对于数据稀疏性和虚假评分具有一定的缓解作用;同年,王海艳等人提出结合用户自身的特征来改进传统的基于协同过滤的服务选择模型,同时结合层次分析法确定各个属性的权重值,仿真实验表明该算法不仅提高了推荐的质量,同时对于攻击具有一定的健壮性。2014年Zeng等人提出一种社交网络中的混合信任聚合模型,信任值的计算过程中不仅考虑用户间的直接信任关系和间接信任关系,也同时考虑一个用户如何被组内的其他用户所信任,实验结果表明此信任计算方式能合理地计算出所有用户之间的信任值;同年,朱强等人结合社会网络分析中的凝聚子群提出一种改进的协同过滤推荐算法,在各个子群中进行朋友推荐和服务计算。2015年Ma等人提出一种融合标签信息的扩展协同过滤方法,在两个公开数据集上的实验结果表明,新算法在提升推荐精度的前提下对冷启动项目的推荐精度也有显著提升;同年,Shen等人提出一种在线社交网络的信任计算方法,增量地计算社交网络用户之间的信任值,包括基于用户的协同过滤、基于项目的协同过滤、奇异值分解和基于信任的协同过滤的实验结果表明,此种增量计算方法能显著提高用户的黏性。2016年Chen等人通过一种信任矩阵分解形式来融合传统的信任传播和信任聚合计算方式,在多个数据集上的实验结果表明,该方法能显著提高推荐精度,尤其是在冷启动情况下相对于传统的其他方法提升效果更明显;同年,Gohari等人提出一种信任机制增强协同过滤推荐算法的推荐模型,结合具有共同评分用户之间的稀疏信任关系提出一种新的信任传播算法,实验结果表明该算法对稀疏用户的推荐精度很高,而且对冷启动用户效果更好;同年,Meyffret等人利用局部信任关系进行个性化推荐,更进一步提升了推荐的准确度。