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

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 2019年1月18日,由阿里巴巴MaxCompute开发者社区和阿里云栖社区联合主办的“阿里云栖开发者沙龙大数据技术专场”走近北京联合大学,本次技术沙龙上,阿里巴巴资深技术专家钱正平为大家分享了大数据技术背景下图数据的应用前景,以及阿里巴巴在图数据的建模、查询和系统优化等方面做出的初步探索。

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

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

一、什么是图数据?

下面的关系网络展示了一个点和边构成的数据模型,点表示实体,边表示两个实体间的关系。关系网络极具灵活性,能够在统一视图里展示异构信息,其中的边可能来自不同表。比如,下图中的边表示了两个明星间的关系,可能由若干张表通过join操作形成。
image
如今,机器学习的数据分析pipeline可应用于各行各业各个门类的数据,来帮助企业更好地决策。图数据的价值在于它能够显式地表达出数据间的复杂关联结构,以辅助机器学习的数据分析过程,帮助机器学习算法更好地挖掘出数据背后的结构特征,提供更精准更可靠的决策支持。图数据的这种能力对一些领域格外重要。

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

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

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

image
第一类是“看”,下图展示了经敏感信息处理后的阿里巴巴内部使用的可视化平台。真实环境中,商业问题可能存在多方面因素,研判业务问题非常困难。将图结构应用于可视化平台能够整合多维度数据,动态地将多维度数据关联起来,以帮助用户更好地决策。
image
第二类图数据应用是图算法。比如,pageRank算法利用图结构计算每个节点的权重值、连通分支等。连通分支可用于计算具有不同ID的实体,比如手机号、e-mail以及浏览器cookie等是否同属于一个自然人,从而提高企业的广告投放准确率。举例来说,淘宝用户使用浏览器购买商品后,浏览器将记录用户的cookie,下一次用户浏览新浪时,新浪可以根据该cookie获取用户的淘宝ID,从而获取用户的偏好以投放相关广告。连通分支将用户在不同应用的相关信息关联起来,从而更好地了解用户偏好,实现个性化应用。
image
第三类图数据应用是模式,比如基于子图模式的异常检测。图结构将不同表数据关联起来,从而暴露出日志信息无法表露出来的问题。比如,左图揭示了各个用户转账行为间的关联,第二幅图揭示了三个用户与四个商品间频繁的交易模式,这些信息仅依赖系统文本文件中的日志都无法获得。据报道,仅有百分之一的安全漏洞问题能通过日志分析检测出来,日志的单规则信息是不全面的,利用图结构信息关联不同数据非常必要。左图展示了简单的淘宝刷单模式,刷单人为商家刷单后,商家通过支付宝即时支付刷单费用,形成了图结构中的“环”,阿里巴巴通过检测“环”以检测简单的刷单行为。提供刷单服务的公司,大多运营大量的虚假账号来满足刷单请求,每个虚假账号可能同时为多个商品提供刷单服务。阿里巴巴使用图结构来表示用户与商品间的购买行为,k1个用户在一定较短时间内与v2个商品发生完全购买的行为,意味着k1个用户中可能存在大量虚假账号。图结构增强了系统对用户行为的捕捉能力。
image
第四类图数据应用是机器学习,比如利用基于图的机器学习应用实现淘宝推荐。为了计算某个用户对某个商品的兴趣度,阿里巴巴利用商品的重要属性比如标签等计算商品间的相似度,同时对用户的重要属性建模。也就是说,通过用户对相似商品的感兴趣程度预测用户对当前商品的兴趣度,从而实现商品推荐。这些信息无法单纯依赖某张表得到。比如,某用户喜欢夏季羽绒服,同时喜欢某品牌,单纯依赖表信息的商品推荐不会给该用户推荐相关品牌的冬季羽绒服,而连接了两方面信息的图结构则可能推荐该商品,提高了商品推荐的准确度。图结构信息还有利于解决冷启动及结果可解释性等难题。
image
第五类图数据应用是知识图谱,比如基于知识图谱实现在线推理,提供在线智能服务。左边的例子展示了双11期间淘宝的凑单应用,即为用户推荐凑单商品以帮助用户获得满减折扣。阿里巴巴利用商品相似性图,能够方便地计算商品A的所有相似商品,从而实现相似商品推荐。当然,相似商品往往具有相同功能,而已经购买了某商品的用户很可能不愿意重复购买类似商品。因此,阿里巴巴又引入了随机游走机制,通过在商品相似图中以一定概率随机游走来选择推荐商品,平衡商品的相似性和多样性。应用图结构构建知识图谱的另一个例子是天猫精灵。天猫精灵通过构建多种类型的知识图谱来回答用户提出的各种问题,比如娱乐图谱能够展示电影的导演、演员,以及他们的其他电影作品等信息。“李未央”是某电视剧的角色名,假设用户提问“李未央还演了什么电影”,天猫精灵将通过分词得到“李未央”,知识图谱算法允许从“李未央”出发探究相关演员,从而进一步探究相关电影,这是普通的问答系统无法做到的。相比谷歌、微软等公司基于互联网数据构建知识图谱,阿里巴巴利用自身结构化数据来源的高数据质量优点,能够构建出更优质的图谱以实现在线推理。
image


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

早期,大数据技术采用IOE模式,依赖单点运行的Oracle机器等高成本硬件。2009年,MaxCompute使用更低成本的机器集群来解决相同规模的计算问题,提高软件的容灾能力。2012年,实时风控、大屏、视频分析等应用向大数据技术提出了更高的计算时延要求。如今,更丰富的数据使用场景需求使得机器学习与异构信息网络图技术比如关联分析、MaxGraph等得到了发展。不断演化的需求加速了大数据技术的发展。
image
关联分析背后的逻辑架构依赖于一个从一系列数据源构建得到的图模型(Graph model),数据科学家基于该图模型完成离线的数据挖掘任务,业务操作员基于该图模型实现在线推理、提供在线服务,此外,该图模型还根据系统事件实时更新。总的来说,关联分析需要满足多维度的需求。
image
下图展示了基于图结构的开源解决方案。第一幅图展示了图的遍历,用于查询图中各项内容。第二幅图展示了图算法,包括pageRank等。第三幅图展示了模式匹配,第四幅图展示了机器学习。图结构解决方案的开源化追求可扩展性,以处理大规模数据计算任务。
image
构建图应用要求组合多个系统的能力,比如图数据的存储、离线计算引擎以及在线计算服务器等,构建复杂度和运维难度都极高。
image
MaxGraph产品通过实时或离线方式构建关系数据并存储为图结构,从而利用统一的分布式“瞬时计算”引擎来支持辨别、计算、匹配与机器学习等功能。基于MaxGraph提供的功能,一些上层图应用以及智能应用包括关系网络分析等才得以实现。
image

三、图建模与存储

下图展示了一个图模型,由点和边构成,并且允许点和边都携带属性。
image
图建模时需要关注数据间的关联。以“电子邮件通信中的异常检测系统”为例,该系统要求在若干个相互发送e-mail的用户行为中检测风险。最直观的图建模方式是将用户建模成图的点,用户间相互发送的e-mail建模成图的边,但这样建模的问题在于图模型中没有体现e-mail这个实体,无法表达“用户自己给自己发送e-mail”等行为。
image
正确的图建模方式应是将e-mail建模成图的点,同时实现e-mail与该e-mail发送者、收件人间的关联。在表达“用户自己给自己发送e-mail”时,将e-mail建模成一点,该点关联的发送者和收件人都指向相同用户。好的建模方式能够在系统规模、问题复杂性提升的情况下依然很好地捕获所有关键信息,满足用户需求。
image
使用这样的建模方式来表达“对回复邮件的回复”行为时,“回复邮件”与“回复邮件的回复”都是e-mail,都应该被建模为图的点,“回复邮件”与相关的“回复邮件的回复”存在回复与被回复关系,应建模为边。判断图建模合理与否的关键在于判断图模型能否表达相关需求,比如,本示例中的图模型能否表达“热烈的邮件讨论”行为等。

image

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

四、图查询语言简介

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

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

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

除了图查询,全图计算与分析也是图应用的难点,阿里巴巴提供了类似SQL的抽象语言FLASH来降低全图计算的难度。
image
image
阿里巴巴的抽象语言FLASH引入了循环语句,具有比SQL更强大的表达能力,将FLASH应用于连通分支算法,仅需几行代码就可以实现该算法功能。
image
image
相比之下,使用C++语言实现连通分支算法所需要的代码量更大。
image
下图展示了目前已验证的FLASH抽象语言可表达的所有算法。
image
另外,阿里还使用Flink评估了FLASH语言的表达能力。左表第二列是使用Gelly语言实现相关算法使用的代码行数,第三列是使用FLASH语言实现相同算法所用的代码行数。总的来说,FLASH语言实现相同算法所需要的代码行数仅为Gelly语言的1/10甚至1/20,但两种实现语言带来的系统开销是几乎一致的。
image
六、场景示例

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

image

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

image

欢迎加入MaxCompute开发者社区钉钉群,一起交流大数据技术。
image

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
13天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
57 6
|
17天前
|
消息中间件 数据挖掘 Kafka
Apache Kafka流处理实战:构建实时数据分析应用
【10月更文挑战第24天】在当今这个数据爆炸的时代,能够快速准确地处理实时数据变得尤为重要。无论是金融交易监控、网络行为分析还是物联网设备的数据收集,实时数据处理技术都是不可或缺的一部分。Apache Kafka作为一款高性能的消息队列系统,不仅支持传统的消息传递模式,还提供了强大的流处理能力,能够帮助开发者构建高效、可扩展的实时数据分析应用。
64 5
|
7天前
|
监控 安全
公司上网监控:Mercury 在网络监控高级逻辑编程中的应用
在数字化办公环境中,公司对员工上网行为的监控至关重要。Mercury 作为一种强大的编程工具,展示了在公司上网监控领域的独特优势。本文介绍了使用 Mercury 实现网络连接监听、数据解析和日志记录的功能,帮助公司确保信息安全和工作效率。
77 51
|
1天前
|
数据采集 监控 数据可视化
BI工具在数据分析和业务洞察中的应用
BI工具在数据分析和业务洞察中的应用
18 11
|
4天前
|
SQL 安全 前端开发
PHP与现代Web开发:构建高效的网络应用
【10月更文挑战第37天】在数字化时代,PHP作为一门强大的服务器端脚本语言,持续影响着Web开发的面貌。本文将深入探讨PHP在现代Web开发中的角色,包括其核心优势、面临的挑战以及如何利用PHP构建高效、安全的网络应用。通过具体代码示例和最佳实践的分享,旨在为开发者提供实用指南,帮助他们在不断变化的技术环境中保持竞争力。
RS-485网络中的标准端接与交流电端接应用解析
RS-485,作为一种广泛应用的差分信号传输标准,因其传输距离远、抗干扰能力强、支持多点通讯等优点,在工业自动化、智能建筑、交通运输等领域得到了广泛应用。在构建RS-485网络时,端接技术扮演着至关重要的角色,它直接影响到网络的信号完整性、稳定性和通信质量。
|
4天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第36天】探索卷积神经网络(CNN)的神秘面纱,揭示其在图像识别领域的威力。本文将带你了解CNN的核心概念,并通过实际代码示例,展示如何构建和训练一个简单的CNN模型。无论你是深度学习的初学者还是希望深化理解,这篇文章都将为你提供有价值的见解。
|
5天前
|
网络协议 数据挖掘 5G
适用于金融和交易应用的低延迟网络:技术、架构与应用
适用于金融和交易应用的低延迟网络:技术、架构与应用
26 5
|
5天前
|
运维 物联网 网络虚拟化
网络功能虚拟化(NFV):定义、原理及应用前景
网络功能虚拟化(NFV):定义、原理及应用前景
13 3
|
5天前
|
数据可视化 算法 安全
员工上网行为管理软件:S - PLUS 在网络统计分析中的应用
在数字化办公环境中,S-PLUS 员工上网行为管理软件通过精准的数据收集、深入的流量分析和直观的可视化呈现,有效帮助企业管理员工上网行为,保障网络安全和提高运营效率。
11 1