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

简介: 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日志并进行多维度分析。
目录
相关文章
|
1月前
|
机器学习/深度学习 自然语言处理 数据处理
大模型开发:描述长短期记忆网络(LSTM)和它们在序列数据上的应用。
LSTM,一种RNN变体,设计用于解决RNN处理长期依赖的难题。其核心在于门控机制(输入、遗忘、输出门)和长期记忆单元(细胞状态),能有效捕捉序列数据的长期依赖,广泛应用于语言模型、机器翻译等领域。然而,LSTM也存在计算复杂度高、解释性差和数据依赖性强等问题,需要通过优化和增强策略来改进。
|
1月前
|
数据库 Android开发 开发者
构建高效Android应用:采用Kotlin协程优化网络请求处理
【2月更文挑战第30天】 在移动应用开发领域,网络请求的处理是影响用户体验的关键环节。针对Android平台,利用Kotlin协程能够极大提升异步任务处理的效率和简洁性。本文将探讨如何通过Kotlin协程优化Android应用中的网络请求处理流程,包括协程的基本概念、网络请求的异步执行以及错误处理等方面,旨在帮助开发者构建更加流畅和响应迅速的Android应用。
|
1月前
|
数据采集 监控 安全
Go语言在网络安全中的应用
【2月更文挑战第24天】Go语言,作为一种高效且易于维护的编程语言,近年来在网络安全领域得到了广泛的应用。本文旨在探讨Go语言在网络安全中的应用,包括其在防火墙、入侵检测、网络爬虫以及Web安全等方面的应用,并分析了Go语言在网络安全领域的优势与前景。
|
2天前
|
移动开发 Java Android开发
构建高效Android应用:采用Kotlin协程优化网络请求
【4月更文挑战第24天】 在移动开发领域,尤其是对于Android平台而言,网络请求是一个不可或缺的功能。然而,随着用户对应用响应速度和稳定性要求的不断提高,传统的异步处理方式如回调地狱和RxJava已逐渐显示出局限性。本文将探讨如何利用Kotlin协程来简化异步代码,提升网络请求的效率和可读性。我们将深入分析协程的原理,并通过一个实际案例展示如何在Android应用中集成和优化网络请求。
|
8天前
|
存储 监控 安全
网络安全与信息安全:防范漏洞、应用加密、提升意识
【4月更文挑战第18天】 在数字化时代,网络安全与信息安全保障已成为维护国家安全、企业利益和个人隐私的关键。本文深入探讨网络安全的多面性,包括识别和防御网络漏洞、应用加密技术保护数据以及提升全民网络安全意识的重要性。通过对这些关键领域的分析,文章旨在为读者提供实用的策略和建议,以增强其网络环境的安全防护能力。
10 0
|
8天前
|
数据采集 数据可视化 数据挖掘
SciPy在数据分析中的应用:从数据清洗到可视化
【4月更文挑战第17天】# SciPy在数据分析中的应用:从数据清洗到可视化。文章探讨了SciPy在数据清洗(使用NumPy处理缺失值和异常值)、数据分析(描述性统计和模型拟合)以及数据可视化(结合Matplotlib和Seaborn进行图表绘制)中的作用。SciPy与其他Python库结合,为完整的数据分析流程提供了强大支持。
|
8天前
|
数据采集 数据可视化 数据挖掘
Seaborn在数据分析中的应用:案例分析与实践
【4月更文挑战第17天】本文介绍了Seaborn在数据分析中的应用,它是一个基于Python的可视化库,简化了复杂数据的图表创建。通过一个销售数据分析的案例,展示了数据加载、描述性统计、相关性分析、多变量分析及高级可视化步骤。实践技巧包括数据清洗、图表选择、颜色使用、注释标签和交互性。Seaborn助力高效数据探索和理解,提升分析效率。注意,实际使用需根据数据集和目标调整,并参考最新文档。
|
8天前
|
数据采集 机器学习/深度学习 数据挖掘
网络数据处理中的NumPy应用实战
【4月更文挑战第17天】本文介绍了NumPy在网络数据处理中的应用,包括数据预处理、流量分析和模式识别。通过使用NumPy进行数据清洗、格式化和聚合,以及处理时间序列数据和计算统计指标,可以有效进行流量分析和异常检测。此外,NumPy还支持相关性分析、周期性检测和聚类分析,助力模式识别。作为强大的科学计算库,NumPy在处理日益增长的网络数据中发挥着不可或缺的作用。
|
9天前
|
数据采集 数据可视化 数据挖掘
NumPy在数据分析中的核心应用
【4月更文挑战第17天】NumPy是Python数据分析基础库,核心应用包括数据结构化、预处理、统计分析和可视化。它提供`ndarray`多维数组对象及灵活索引,用于数据存储和处理。数据预处理支持缺失值处理,统计分析涵盖描述性统计和相关性分析。虽不直接支持数据可视化,但能与Matplotlib等库集成绘制图表。掌握NumPy能提升数据分析效率,助于挖掘数据价值。
|
9天前
|
存储 数据可视化 数据挖掘
实战案例:Pandas在金融数据分析中的应用
【4月更文挑战第16天】本文通过实例展示了Pandas在金融数据分析中的应用。案例中,一家投资机构使用Pandas加载、清洗股票历史价格数据,删除无关列并重命名,将日期设为索引。接着,数据被可视化以观察价格走势,进行基本统计分析了解价格分布,以及计算移动平均线来平滑波动。Pandas的便捷功能在金融数据分析中体现出高效率和实用性。