TRIAS向大家分享了基于机器学习的可扩展HCGraph算法,其中包含HCGraph算法,Leviatom网络等知识点,遇到此问题的同学们可以参考下
HCGraph 是Leviatom网络的核心算法。在前面的文章中,我们介绍过该算法利用Gossip 协议族构建全网信任模型。HCGraph利用类似于HashGraph的Gossip以及Gossip about Gossip协议来实现高效的信任关系传递。利用该协议,我们可以在获得一个比较完整的全局网络互信关系。
但是,在未来真实系统里百万节点级别的分布式环境中,因为受限于网络负载,就有可能会引发网络热点负载过重。如果受限于网络负载,就会影响节点达成共识的速度。
因此,我们设计了一个基于机器学习的网络链接预测的算法,来解决这个问题。此外,我们还设计了一个基于分布式的系统架构来实现它。接下来,我们详细介绍一下:
假设我们需要预测节点u到v之间的证实关系,而u到v并没有直接发起过证实。我们可以收集两个类型的图计算信息。
第一个类型,我们共收集七个维度的信息,这些信息仅与这两个节点本身与整个网络世界的关系。这其中包括,u 证实的可信节点;u 证实的不可信节点;u证实的所有节点;证实v为可信的节点;证实v为不可信的节点;所有证实v的节点;u和v的共同邻接节点的数量。
第二个类型,我们共收集16个维度的信息,这些信息取决于共识节点u和v之间的交互。根据两节点间证实关系的方向、信任关系,一共有(2*2)*(2*2)=16种关系。
结合两个类型的信息,或者仅使用其中一个类型的信息,采用机器学习的算法对部分数据进行训练,而对另一部分数据进行交互测试。
共识节点之间的证实关系是实时地存储在共识节点本地的数据结构中的,那么要实现此算法就涉及到两个问题:
1)如何获取到所有周期性的证实信息来训练机器学习模型;
2)当需要预测u和v之间的信任关系时,如何抓取到u和v的实时证实信息来进行预测。
在这里,第一个问题是批处理的计算问题,第二个问题则是在分布式系统中的实时计算问题。针对这两个问题,以及共识节点本地化存储、证实的需求,我们抽象出了三个模块: