图(关系网络)数据分析及阿里应用

2019年1月18日,由阿里巴巴MaxCompute开发者社区和阿里云栖社区联合主办的“阿里云栖开发者沙龙大数据技术专场”走近北京联合大学,本次技术沙龙上,阿里巴巴资深技术专家钱正平为大家分享了大数据技术背景下图数据的应用前景,以及阿里巴巴在图数据的建模、查询和系统优化等方面做出的初步探索。

以下内容根据演讲视频以及PPT整理而成。

一、什么是图数据?

下面的关系网络展示了一个点和边构成的数据模型,点表示实体,边表示两个实体间的关系。关系网络极具灵活性,能够在统一视图里展示异构信息,其中的边可能来自不同表。比如,下图中的边表示了两个明星间的关系,可能由若干张表通过join操作形成。

如今,机器学习的数据分析pipeline可应用于各行各业各个门类的数据,来帮助企业更好地决策。图数据的价值在于它能够显式地表达出数据间的复杂关联结构,以辅助机器学习的数据分析过程,帮助机器学习算法更好地挖掘出数据背后的结构特征,提供更精准更可靠的决策支持。图数据的这种能力对一些领域格外重要。


Google早期使用的搜索算法pageRank就利用了图数据的这种能力,它利用网页间的相互链接信息来决定网页的重要程度。具体来说,被越多网页链接的网页越重要,被越重要的网页链接的网页也越重要。Google利用图数据重新定义了搜索,取得了非常卓越的成功。


图数据对阿里巴巴同样意义重大。以阿里巴巴的应用生态为例,天猫包含了用户的在线交易信息,高德地图包含了用户的出行信息,优酷土豆等包含了用户的观影信息,以人为维度将这些信息关联起来可以得到关于某用户的完整信息,以理解用户偏好。图数据模型能够将许多分散的图场景整合起来,形成一个庞大的图结构。阿里巴巴的图结构包含几十亿个点,成百上千亿条边,同时阿里应用巨大的日交易量也使得图结构千变万化,这些都为图数据的计算带来了严峻的挑战。


图应用与具体场景相关,阿里巴巴针对不同的应用场景设计了不同的图数据处理算法。以一个很长的数字序列为例,对其进行数据分析的第一步是“看”,即观察该序列可能存在的特征,此外,可能使用特征统计分析该序列包含某数字的个数。更进一步,模式匹配可以探寻该序列中可能存在的模式子串。最后,机器学习算法比如神经网络能帮助挖掘数字序列背后的规律。对该序列进行数据分析能够帮助在线预测相关信息,比如数字序列的下一位数字等。图数据分析方法能帮助洞察图数据,阿里巴巴在图数据方面的应用包括五类。


第一类是“看”,下图展示了经敏感信息处理后的阿里巴巴内部使用的可视化平台。真实环境中,商业问题可能存在多方面因素,研判业务问题非常困难。将图结构应用于可视化平台能够整合多维度数据,动态地将多维度数据关联起来,以帮助用户更好地决策。

第二类图数据应用是图算法。比如,pageRank算法利用图结构计算每个节点的权重值、连通分支等。连通分支可用于计算具有不同ID的实体,比如手机号、e-mail以及浏览器cookie等是否同属于一个自然人,从而提高企业的广告投放准确率。举例来说,淘宝用户使用浏览器购买商品后,浏览器将记录用户的cookie,下一次用户浏览新浪时,新浪可以根据该cookie获取用户的淘宝ID,从而获取用户的偏好以投放相关广告。连通分支将用户在不同应用的相关信息关联起来,从而更好地了解用户偏好,实现个性化应用。

第三类图数据应用是模式,比如基于子图模式的异常检测。图结构将不同表数据关联起来,从而暴露出日志信息无法表露出来的问题。比如,左图揭示了各个用户转账行为间的关联,第二幅图揭示了三个用户与四个商品间频繁的交易模式,这些信息仅依赖系统文本文件中的日志都无法获得。据报道,仅有百分之一的安全漏洞问题能通过日志分析检测出来,日志的单规则信息是不全面的,利用图结构信息关联不同数据非常必要。左图展示了简单的淘宝刷单模式,刷单人为商家刷单后,商家通过支付宝即时支付刷单费用,形成了图结构中的“环”,阿里巴巴通过检测“环”以检测简单的刷单行为。提供刷单服务的公司,大多运营大量的虚假账号来满足刷单请求,每个虚假账号可能同时为多个商品提供刷单服务。阿里巴巴使用图结构来表示用户与商品间的购买行为,k1个用户在一定较短时间内与v2个商品发生完全购买的行为,意味着k1个用户中可能存在大量虚假账号。图结构增强了系统对用户行为的捕捉能力。

第四类图数据应用是机器学习,比如利用基于图的机器学习应用实现淘宝推荐。为了计算某个用户对某个商品的兴趣度,阿里巴巴利用商品的重要属性比如标签等计算商品间的相似度,同时对用户的重要属性建模。也就是说,通过用户对相似商品的感兴趣程度预测用户对当前商品的兴趣度,从而实现商品推荐。这些信息无法单纯依赖某张表得到。比如,某用户喜欢夏季羽绒服,同时喜欢某品牌,单纯依赖表信息的商品推荐不会给该用户推荐相关品牌的冬季羽绒服,而连接了两方面信息的图结构则可能推荐该商品,提高了商品推荐的准确度。图结构信息还有利于解决冷启动及结果可解释性等难题。

第五类图数据应用是知识图谱,比如基于知识图谱实现在线推理,提供在线智能服务。左边的例子展示了双11期间淘宝的凑单应用,即为用户推荐凑单商品以帮助用户获得满减折扣。阿里巴巴利用商品相似性图,能够方便地计算商品A的所有相似商品,从而实现相似商品推荐。当然,相似商品往往具有相同功能,而已经购买了某商品的用户很可能不愿意重复购买类似商品。因此,阿里巴巴又引入了随机游走机制,通过在商品相似图中以一定概率随机游走来选择推荐商品,平衡商品的相似性和多样性。应用图结构构建知识图谱的另一个例子是天猫精灵。天猫精灵通过构建多种类型的知识图谱来回答用户提出的各种问题,比如娱乐图谱能够展示电影的导演、演员,以及他们的其他电影作品等信息。“李未央”是某电视剧的角色名,假设用户提问“李未央还演了什么电影”,天猫精灵将通过分词得到“李未央”,知识图谱算法允许从“李未央”出发探究相关演员,从而进一步探究相关电影,这是普通的问答系统无法做到的。相比谷歌、微软等公司基于互联网数据构建知识图谱,阿里巴巴利用自身结构化数据来源的高数据质量优点,能够构建出更优质的图谱以实现在线推理。



二、大数据系统趋势与挑战

早期,大数据技术采用IOE模式,依赖单点运行的Oracle机器等高成本硬件。2009年,MaxCompute使用更低成本的机器集群来解决相同规模的计算问题,提高软件的容灾能力。2012年,实时风控、大屏、视频分析等应用向大数据技术提出了更高的计算时延要求。如今,更丰富的数据使用场景需求使得机器学习与异构信息网络图技术比如关联分析、MaxGraph等得到了发展。不断演化的需求加速了大数据技术的发展。

关联分析背后的逻辑架构依赖于一个从一系列数据源构建得到的图模型(Graph model),数据科学家基于该图模型完成离线的数据挖掘任务,业务操作员基于该图模型实现在线推理、提供在线服务,此外,该图模型还根据系统事件实时更新。总的来说,关联分析需要满足多维度的需求。

下图展示了基于图结构的开源解决方案。第一幅图展示了图的遍历,用于查询图中各项内容。第二幅图展示了图算法,包括pageRank等。第三幅图展示了模式匹配,第四幅图展示了机器学习。图结构解决方案的开源化追求可扩展性,以处理大规模数据计算任务。

构建图应用要求组合多个系统的能力,比如图数据的存储、离线计算引擎以及在线计算服务器等,构建复杂度和运维难度都极高。

MaxGraph产品通过实时或离线方式构建关系数据并存储为图结构,从而利用统一的分布式“瞬时计算”引擎来支持辨别、计算、匹配与机器学习等功能。基于MaxGraph提供的功能,一些上层图应用以及智能应用包括关系网络分析等才得以实现。

三、图建模与存储

下图展示了一个图模型,由点和边构成,并且允许点和边都携带属性。

图建模时需要关注数据间的关联。以“电子邮件通信中的异常检测系统”为例,该系统要求在若干个相互发送e-mail的用户行为中检测风险。最直观的图建模方式是将用户建模成图的点,用户间相互发送的e-mail建模成图的边,但这样建模的问题在于图模型中没有体现e-mail这个实体,无法表达“用户自己给自己发送e-mail”等行为。

正确的图建模方式应是将e-mail建模成图的点,同时实现e-mail与该e-mail发送者、收件人间的关联。在表达“用户自己给自己发送e-mail”时,将e-mail建模成一点,该点关联的发送者和收件人都指向相同用户。好的建模方式能够在系统规模、问题复杂性提升的情况下依然很好地捕获所有关键信息,满足用户需求。

使用这样的建模方式来表达“对回复邮件的回复”行为时,“回复邮件”与“回复邮件的回复”都是e-mail,都应该被建模为图的点,“回复邮件”与相关的“回复邮件的回复”存在回复与被回复关系,应建模为边。判断图建模合理与否的关键在于判断图模型能否表达相关需求,比如,本示例中的图模型能否表达“热烈的邮件讨论”行为等。

阿里巴巴采用分布式图存储来存储图模型的相关数据。

四、图查询语言简介

寻找具有某特点的“点集合”或者“边集合”是图数据查询的常见应用。图查询语言“Gremlin”可用于遍历图,寻找相关“点集合”或“边集合”,并基于获得的集合进行“groupby”等操作来构造最终查询结果。




阿里巴巴优化了图查询语言,使得系统可以快速地实现复杂数据结构的查询。最新的竞品分析显示,“Gremlin”图查询语言具有数据加载快、可扩展与低延迟德等优点。

五、全图计算与分析-高层语言

除了图查询,全图计算与分析也是图应用的难点,阿里巴巴提供了类似SQL的抽象语言FLASH来降低全图计算的难度。
阿里巴巴的抽象语言FLASH引入了循环语句,具有比SQL更强大的表达能力,将FLASH应用于连通分支算法,仅需几行代码就可以实现该算法功能。


相比之下,使用C++语言实现连通分支算法所需要的代码量更大。

下图展示了目前已验证的FLASH抽象语言可表达的所有算法。

另外,阿里还使用Flink评估了FLASH语言的表达能力。左表第二列是使用Gelly语言实现相关算法使用的代码行数,第三列是使用FLASH语言实现相同算法所用的代码行数。总的来说,FLASH语言实现相同算法所需要的代码行数仅为Gelly语言的1/10甚至1/20,但两种实现语言带来的系统开销是几乎一致的。

六、场景示例

阿里云网络安全引入图结构以构建知识图谱,包括域名、主机IP、域名服务器等信息。引入图结构有利于在海量信息中及时发现网络中的隐藏模式,从而发现漏洞和威胁。相关实验显示,将海量数据预先构建成图再实时查询仅需500毫秒,相反,不预先将海量数据构建成图而采用SQL查询所需的时间高达80分钟,图结构能为查询带来数量级的性能提升,从而给业务带来质的变化。

图技术在美国同样引起了广泛关注。最新数据显示,76%的FORTUNE 100语言都采用了图技术,排名前25的金融企业中有20家都利用图技术呈现交易信息。

总的来说,图计算是大数据计算的有效工具,图数据能够提供更精准、更可靠的信息,以增强大数据分析能力,图计算将变得越来越重要。成功的图应用离不开建模、查询和系统优化等多个方面,大规模的动态图计算还存在许多问题尚未解决,未来阿里巴巴将致力于在这些方面做出贡献,为图应用开发者们带来福音。阿里巴巴发展图计算依赖于“横向”和“纵向”两个方面的合作,一方面,“横向”需要和阿里巴巴内部的硬件、网络等团队合作,以利用现有技术优化图计算的性能,从而给业务带来质的突破。另一方面,“纵向”需要和行业内领域专家紧密合作,利用图结构解决企业真实问题,使技术为业务赋能、创造更多价值。


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

架构的“一小步”,业务的一大步

前言: 谈到“架构”这两个字,会有好多的名词闪现,比如:分层架构、事件驱动架构、DDD、CQRS等。亦或者一堆的软件设计原则,如:KISS原则(Keep it Simple and Stupid)、SOLID原则(单一责任原则、开…

牵手大企,关于图形计算、HPC与AI,NVIDIA言有尽而意无穷!

戳蓝字“CSDN云计算”关注我们哦!作者 | 晶少出品 | CSDN云计算(ID:CSDNcloud)在黄仁勋看来,随着摩尔定律消亡,GPU加速才是撬动未来高性能计算发展的有力杠杆。有数据显示,目前NVIDIA已经销售了…

如何合理的规划jvm性能调优

JVM性能调优涉及到方方面面的取舍,往往是牵一发而动全身,需要全盘考虑各方面的影响。但也有一些基础的理论和原则,理解这些理论并遵循这些原则会让你的性能调优任务将会更加轻松。为了更好的理解本篇所介绍的内容。你需要已经了解和遵循以下内…

如何衡量研发效能?阿里资深技术专家提出了5组指标

阿里妹导读:新的一年,相信很多产品技术团队把研发效能提升列为重要的目标,甚至还有团队为此专门成立了项目组。然而,到底什么是好的研发效能,却很少有人能够表达清楚。标准不清晰,又何谈提升? …

官宣!2020年,这5类程序员要过苦日子!网友:明年咋活?!

2020年就要来了,有人说:经历了2019年的“市场变革”后,未来这一年将会至关重要,是决定各自命运的定型年。那么对于程序员来说,明年的风向标是如何?哪些编程语言会持续大热,哪些要做好被“淘汰”…

Perseus-BERT——业内性能极致优化的BERT训练方案【阿里云弹性人工智能】

一,背景——横空出世的BERT全面超越人类 2018年在自然语言处理(NLP)领域最具爆炸性的一朵“蘑菇云”莫过于Google Research提出的BERT(Bidirectional Encoder Representations from Transformers)模型。作为一种新型的…

Kubernetes的共享GPU集群调度

问题背景 全球主要的容器集群服务厂商的Kubernetes服务都提供了Nvidia GPU容器调度能力,但是通常都是将一个GPU卡分配给一个容器。这可以实现比较好的隔离性,确保使用GPU的应用不会被其他应用影响;对于深度学习模型训练的场景非常适合&#…

华为云WeLink正式发布,这是更懂企业的智能工作平台一枚!

今日,华为云在京发布智能工作平台WeLink。 对此,华为云副总裁、联接与协同业务总裁薛浩表示:“华为云WeLink源自华为数字化转型实践,是更懂企业的智能工作平台,具备智能高效、安全可靠、开放共赢三大核心优势&#xff…

一致性协议浅析:从逻辑时钟到Raft

前言 春节在家闲着没事看了几篇论文,把一致性协议的几篇论文都过了一遍。在看这些论文之前,我一直有一些疑惑,比如同样是有Leader和两阶段提交,Zookeeper的ZAB协议和Raft有什么不同,Paxos协议到底要怎样才能用在实际工…

PMP 随堂笔记

CPi挣值管理 临界比值 不属于挣值管理 临界比值 1为分界点 党校与1时,差 大于1时为好 成本激励由有3种场景: 第一种场景:超出目标费用 目标10w 利润1w 分摊比例70/30 实际成本12w 也就是多花了(12w-10w(目标费用)2w 甲方罚乙方利润费用&…

Objective-C中的associated object释放时机问题

如果对象A持有对象B,B作为A的associated object,并且表面上B没有其他被强引用的地方,那么对象A被释放时,对象B一定会同时释放吗?大部分情况下是,但真有不是的时候。最近实现代码的时候不小心就碰到了这样的…

开放共赢,华为云WeLink生态联盟正式成立!

今日,华为在京发布了“更懂企业”的智能工作平台华为云WeLink,并携手合作伙伴成立华为云WeLink生态联盟。其中首批加入华为云WeLink生态联盟的伙伴主要包括(排名不分先后):金山办公、中软国际、致远互联、罗技、华为商…

指明方向与趋势!2019开发者技能报告出炉!!!

近日国外开发者平台 HankerRank 发布了 2019 年开发者技能调查报告,该报告根据对71,281开发者的调查得出。 2018 年最受欢迎的开发语言  经过调查,2018年的所有开发语言中,JavaScript是最受欢迎的语言,2017年最受欢…

阿里研究院入选中国企业智库系统影响力榜

2019年2月1日,上海社会科学院智库研究中心发布《2018年中国智库影响力评价与排名》。阿里研究院入围三项排名榜单,位居企业智库系统影响力榜单第2位,中国智库社会影响力榜单第13位,中国智库综合影响力排名榜单第42位。 阿里研究院…

如何给女朋友解释什么是3PC?

戳蓝字“CSDN云计算”关注我们哦!一顿愉快的小火锅之后,悠哉悠哉的回家了,于是只能开始新一轮的家庭科普了。分布式一致性幸好在《漫话:如何给女朋友解释什么是2PC(二阶段提交)?》中介绍过关于2…

Tensorflow源码解析1 -- 内核架构和源码结构

1 主流深度学习框架对比 当今的软件开发基本都是分层化和模块化的,应用层开发会基于框架层。比如开发Linux Driver会基于Linux kernel,开发Android app会基于Android Framework。深度学习也不例外,框架层为上层模型开发提供了强大的多语言接…

基于 Kubernetes 实践弹性的 CI/CD 系统

大家好,我是来自阿里云容器服务团队的华相。首先简单解释一下何为 Kubernetes 来帮助大家理解。Kuberentes 是一个生产可用的容器编排系统。Kuberentes 一方面在集群中把所有 Node 资源做一个资源池,然后它调度的单元是 Pod,当然 Pod 里面可以有多个容器…

35岁真的是一个坎吗?听完35岁码农的话,我放心了!

戳蓝字“CSDN云计算”关注我们哦!之前看过一个有关程序员从刚入职到中年状态的一个视频,刚入职的程序员激情澎湃,一心想做自己想做的事情,并且想创业,就想拉拢身边的程序员同事一起创业,可是身边的同事就一…