图计算

图数据

图数据存在于我们生活的方方面面,如果将数据相关方分别定位为一个,而他们之间的互相联系抽象为,那整个不同事物时间的错综复杂的联系就构成了一幅幅“图数据”。

社交关系数据:将每个人作为一个点,而人与人之间的互动关系是边,那么庞大的社交圈子中,不同人之间的互动联系就构成了庞大的社交关系数据。

网页链接数据:通过一个网页链接,可以跳转到其他多个网页,网页与网页之间的多个跳转联系就构成了一个复杂的网页链接数据。通过这些数据可以进行多个研究,比如可以分析出来哪个网页是入口大的重要网页等。

比如可以通过交易网络数据图来分析出哪些交易是欺诈交易、通过通信网络数据图来分析企业员工之间不正常的社交、通过用户—商品图数据图来分析用户需求,做个性化推进等。

图数据的特征

图数据中主要包括图中的节点以及连接节点的边,通常具有3 个特征:

  1. 节点之间的关联性。图中边的数量是节点数量的指数倍,因此,节点和关系信息同等重要,图结构的差异也是由于对边做了限制,在图中,顶点和边实例化构成各种类型的图,如标签图、属性图、语义图以及特征图等。
  2. 图数据的种类繁多。在许多领域中,使用图来表示该邻域的数据,如生物、化学、计算机视觉、模式识别、信息检索、社会网络、知识发现、动态网络交通、语义网、情报分析等。每个领域对图数据的处理需求不同,因此,没有一个通用的图数据处理系统满足所有领域的需求。
  3. 图数据计算的强耦合性。在图中,数据之间是相互关联的,因此,对图数据的计算也是相互关联的。这种数据耦合的特性对图的规模日益增大达到上百万甚至上亿节点的大图数据计算提出了巨大的挑战。大图数据是无法使用单台机器进行处理的,但如果对大图数据进行并行处理,对于每一个顶点之间都是连通的图来讲,难以分割成若干完全独立的子图进行独立的并行处理;即使可以分割,也会面临并行机器的协同处理,以及将最后的处理结果进行合并等一系列问题。这需要图数据处理系统选取合适的图分割以及图计算模型来迎接挑战并解决问题。

图算法

图算法指利用特制的线条算图求得答案的一种简便算法。无向图、有向图和网络能运用很多常用的图算法,这些算法包括:各种遍历算法(这些遍历类似于树的遍历),寻找最短路径的算法,寻找网络中最低代价路径的算法,回答一些简单相关问题(例如,图是否是连通的,图中两个顶点间的最短路径是什么,等等)的算法。图算法可应用到多种场合,例如:优化管道、路由表、快递服务、通信网站等

图算法的MapReduce实现

图算法也是迭代算法中比较常见的算法,包括图查询、图索引、图匹配、可达性算法等。

由于MapReduce没有提供获得全局状态或全局数据的机制,而只能在Map 任务和Reduce 任务之间传输局部信息,所以图算法的MapReduce 实现都遵循以下模式:首先计算节点信息,然后将更新数据传递到它的邻居再次计算,多次迭代后,收敛至最终结果。MapReduce 适用于处理稀疏图,中间结果数量与节点的邻居节点数目成正比;而对于稠密图,若仍然使用MapReduce 实现算法,则需要设计更为成熟的数据划分方法,比如最小生成树算法或图割算法。

典型的图算法包括PageRank 算法、Descendant-Query 算法、Dijkstra 算法、最小生成树算法。

常见图算法

PageRank

PageRank源自搜索引擎,它是搜索引擎里面非常重要的图算法,可用来对网页做排序。比如我们在网页里搜索hadoop,会出来非常多有着hadoop关键字的网页,可能有上千上万个相关网页,而PageRank可以根据这些网页的排序算法将其排序,将一些用户最需要的网页进行优先展示。

最短路径

在社交网络里面,有一个六度空间的理论,表示你和任何一个陌生人之间所间隔的人不会超过五个,最多通过五个中间人你就能够认识任何一个陌生人。这也是图算法的一种,任何两个人之间的最短路径都是小于等于6。

社群发现

用来发现社交网络中三角形的个数(圈子),可以分析出哪些圈子更稳固,关系更紧密。用来衡量社群耦合关系的紧密程度。一个人的社交圈子里面,三角形个数越多,说明他的社交关系越稳固、紧密。像Facebook、Twitter等社交网站,常用到的的社交分析算法就是社群发现。

推荐算法(ALS)

ALS是一个矩阵分解算法,比如购物网站要给用户进行商品推荐,就需要知道哪些用户对哪些商品感兴趣,这时,可以通过ALS构建一个矩阵图,在这个矩阵图里,假如被用户购买过的商品是1,没有被用户购买过的是0,这时我们需要计算的就是有哪些0有可能会变成1 。

图计算框架

GraphX是一个使用非常广泛的图计算库,而在GraphX之前,也有许多的图计算库,比如Pregel、Giraph、GraphLab等,他们有着共同的特点:定义了独特的图计算API,简化图算法的实现;充分利用图数据结构特点加速计算,比通用的数据驱动的计算引擎更快。但随着需求的变化,这些图计算库逐渐被淘汰了。

现代图计算整个流程里面,涉及了两部分的计算:一是结构化数据的计算和提取,二是图数据计算与分析。为了完成结构化数据和图数据的处理,在GraphX出现之前是用Hadoop Spark这种通用的计算引擎来解决,后半部分是用专门的图计算引擎Pregel来处理,这就需要同时维护、学习两套计算引擎,比较麻烦。同时,混用多个引擎会出现非常多的问题,如成本高,效率低下,数据冗余等问题,这样会使整个计算过程变得复杂。而GraphX就解决了这一问题!作为统一的图计算引擎,GraphX可以实现在一个数据流水线中,使用一种技术解决图 计算相关所有问题!

GraphX包含两大特色:

  1. New API:打破了结构化数据和图数据的界限。
  2. New Library:直接在Spark上完成图计算。

图计算的应用

图能很好地表示各实体之间的关系,因此,在各个领域得到了广泛的应用,如计算机领域、自然科学领域以及交通领域。

互联网领域的应用

随着信息技术和网络技术的发展,以Web 2.0 技术为基础的社交网络(如Facebook、人人网)、微博(如Twitter、新浪微博、腾讯微博)等新兴服务中建立了大量的在线社会网络关系,用图表示人与人之间的关系。

  • 在社交网络中,基于图研究社区发现等问题;
  • 在微博中,通过图研究信息传播与影响力最大化等问题;
  • 用图表示如E-mail 中的人与人之间的通信关系,从而可以研究社会群体关系等问题;
  • 在搜索引擎中,可以用图表示网页之间相互的超链接关系,从而计算一个网页的PageRank 得分等。
  • -

自然科学领域的应用

图可以用来在化学分子式中查找分子,在蛋白质网络中查找化合物,在DNA 中查找特定序列等。

交通领域的应用

图可用来在动态网络交通中查找最短路径,在邮政快递领域进行邮路规划等。疾病爆发路径的预测与科技文献的引用关系等.图数据虽然结构复杂,处理困难,但是它有很好的表现力,因此得到了各领域的广泛应用。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值