前言

说起图计算,可能很多人能想到的是曾经学过图数据结构、复杂网络等,对于其在工程中的实际应用知之甚少。亦或者,很多人听说过知识图谱,却很少想过它是用一种什么样的方式在解决什么样的问题,能否引入到自己的业务领域里面。

本文的主要内容源自我在项目组的一次分享,主要包含三块:概览、核心概念与算法、在项目中的实践。本意是期望通过分享,能让大家对图计算能有更好的认识,能在合适的业务场景下运用图思维去解决一些实际问题。这里将其整理成博文,期望能对同道中人有所帮助。

另外,本文在概览部分会提及多个产品与应用,这些只是用来阐述要表达的内容,并无广告之意。

一个有趣的App

我们先从一个有趣的App说起。“全历史”,是我在刷知乎时偶然看到别人推荐的一款App,下载后把玩一番,越看越有趣。传统我们了解历史的方式,都是一篇篇文章去阅读,而“全历史”从海量历史信息中将人物、事件、时间、地点等等,以及它们之间的关系进行了提取,构建了知识图谱,让我们有机会从一些不一样的视角去了解历史。其中,“关系图谱”和“AB路径”是两个非常有趣的版块。

在“关系图谱”中,我们可以搜索一个历史人物或者历史事件,返回的结果并不是包含这个关键词的很多文章,而是一张以该人物或事件为中心的图结构。以搜索“汉武帝”为例,返回结果给出了与汉武帝有关联的人物、事件、地点等以及对应的关系。通过这样的图结构,我们可以很直观的了解汉武帝的相关信息,然后有选择性的进行深入阅读。

“AB路径”让我们可以探寻任意两个人物或地点之间的关系,你可以天马行空的输入任何关键词,它总会给出一些有趣的结果。比如,“孙中山”和“汉武帝”,你能想象出他们之间的有什么关系吗?搜索结果给出了很多关联路径,虽然有些看起来比较突兀,却给我们了解历史提供了一些新的视角,帮助我们发现一些不曾想过的信息。

知识图谱与社交网络分析

信息展示直观、探寻潜在的有关联的历史知识,是“全历史”给我的最大的印象,也是知识图谱的威力所在。那么,究竟什么是知识图谱?

当我们在Google中搜索一个东西时,Google看到的是我们输入的一个关键词,它会去全网中查出包含了这个关键词的网页。而从人的视角来看,我们搜索的目的是为了了解一个事物,不是单纯的字符串匹配。为了更好地理解人的搜索意图,提高搜索结果质量,Google在2012年5月提出了知识图谱的概念。“Things, not strings.”,是当时出发点,感兴趣的读者可以进一步阅读《Introducing the Knowledge Graph: things, not strings》。

Google从多个信息源(比如Wikipedia)提取相关领域的人物、事件、时间等元素,以及它们之间的关系,构建图谱。当用户搜索某个关键词时,可以快速提取出与其有关联的元素,并以卡片的形式呈现在搜索页面的右侧。比如,搜索“Donald Trump”,除了返回包含这个关键词的网页,还有右侧的知识卡片,里面有川普的各种基本信息。

知识图谱,由知识(Knowledge)和图谱(Graph)两个词构成,后者是最终的表现形态,而前者是界定这种表现形态的范畴。在Google提出这个技术概念之后,知识图谱很快被衍生应用到很多不同的领域,目前来看,做的好的都是在某些细分特定领域的应用,比如前面提到的针对历史知识的图谱,也就是说大家会在某个范畴内来应用。而对于图谱,其由大量节点、节点之间的关系构成,比如下图关于美国大选知识图谱的一部分,里面的川普、拜登、2020大选、宾西法利亚大学都是节点元素,箭头表达的是他们之间的关系。

在Google提出知识图谱的技术概念之前,学术界已经有很多关于语义网络的研究。语义网络,是通过图对知识进行表达的一种方式,普遍认为是知识图谱发展的理论基础。综合来看,由节点元素和元素之间的关系构成图,由图构成网络,而知识图谱是构建在网络之上的针对某个特定领域的应用。

除了知识图谱,图计算在社交网络分析领域也有着重要的应用。我们今天使用的微信、微博、大众点评等,都有着不同程度的社交信息,由人、事件以及相互的关系构成了社交网络。下图是我在2016年做的一个针对用户在微信端的转发关系以及带来的引流效果的分析,从而给出相应的激励。

图思维

讲到这里,我想整理一下什么是图思维。下图是美剧《越狱》中Michael准备进入监狱营救哥哥之前的画面,他花费了很长一段时间来调查研究,将各种因素贴到墙上,用线串起来,然后一遍又一遍的推演思考。我们在很多其他侦探电视里面也能看到类似的场景。他们为什么要这样做?

这是一种帮助思考、寻找线索的方式,把已知的信息以及信息之间的关系列出来,然后通过关系推理得出新的信息。图思维的核心,在于联系,当我们思考的重点在于事物之间如何联系,或者期望通过联系去产生一些新的发现的时候,其实已经运用了图思维。知识图谱、社交网络分析等都是在运用这样的图思维的方式去解决实际业务中的问题。

我们再来看看,当你期望运用图思维时,需要做哪些事情?如下图所示,主要分为两块:

  • 图构建,即从诸多数据源中提取节点、节点之间的关系。对于结构化和半结构化数据而已,通常有比较明确的结构定义,提取起来会相对容易一些;而对于非结构化数据,则需要利用NLP等方式来进行语义理解,提取所需要的领域知识。对于提取出来的信息,有时还需要进行消歧,比如“李娜”,有歌手、网球运动员等多个人,那么具体对应的是哪个,则需要结合上下文来作出判断。图构建的难易程度,取决于具体的业务场景和已有数据源。
  • 图探索,即利用图与网络中的信息与特性来解决问题。最基本的应用是根据给定的节点或关系进行图数据查询,输出相应的关联信息;其次是网络特征分析,比如寻找有影响力的节点等;最后是知识推理,用于发现新的关系与属性。

更多的应用

最后,我们来看看图计算在其他领域的一些应用。

“企查查”,针对工商领域的企业信息构建知识图谱。我们可以在这里面查到一家公司的核心人物、投资公司等的关系信息,以及基于这些信息的深层挖掘,比如实际控制人、股权穿透等等。

在风控、反洗钱等金融领域的应用。这块并没有形成系统的知识图谱,而是针对某些特定业务的图计算应用,比如在反洗钱方面,通过构建账号、账号之间的交易关系的图谱来寻找异常交易社团。下图所示是我之前看到的一篇非常好的文章,感兴趣的读者可以自行百度查阅。

在网络安全领域,我们在诸多公司的白皮书中有看到基于图计算的核心引擎,比如Crowdstrike的Threat Graph Database。在Google的VirusTotal中,也看到基于IP、Domain、文件MD5等之间的图关联信息。我们也有利用图计算来实现数据挖掘分析,会在第三块“项目实践”中阐述。

小结

图计算在我们的工程领域有着广泛的应用,尤其以知识图谱、社交网络分析为主。当我们尝试思考事物之间关系,或者期望通过关系去产生一些新的发现的时候,不妨考虑下图计算是否可以很好的解决问题。

(未完待续,本文地址:https://bruce.blog.csdn.net/article/details/111768881 )

版权声明:本人拒绝不规范转载,所有转载需征得本人同意,并且不得更改文字与图片内容。大家相互尊重,谢谢!

Bruce
2020/12/27 下午

图计算思维与实践 (一)概览相关推荐

  1. 图计算思维与实践 (二)核心概念与算法

    前言 在前文<图计算思维与实践 (一)概览>中,我们介绍了以知识图谱.网络分析为主的图计算的应用,阐述了图思维的方式.本文我们将进入第二部分:图相关的核心概念与算法,这些是进行图探索的基础 ...

  2. 计算机stem项目计划书,在“STEM+项目”中培养学生计算思维的实践探究

    摘要 STEM教育强调跨学科的整合学习,尤其强调通过以工程为核心的设计和制造活动来解决生活中真实而有意义的问题.美国卡内基·梅隆大学周以真教授提出,计算思维是一个运用计算机科学基础概念进行系统设计.解 ...

  3. 字节跳动自研万亿级图数据库 图计算实践 【太高级了,不是圈里的人,有简明见解的吗?】

    1. 图状结构数据广泛存在 字节跳动的所有产品的大部分业务数据,几乎都可以归入到以下三种: 用户信息.用户和用户的关系(关注.好友等): 内容(视频.文章.广告等): 用户和内容的联系(点赞.评论.转 ...

  4. 字节跳动自研万亿级图数据库 图计算实践

    本文选自"字节跳动基础架构实践"系列文章. "字节跳动基础架构实践"系列文章是由字节跳动基础架构部门各技术团队及专家倾力打造的技术干货内容,和大家分享团队在基础 ...

  5. 计算思维不是计算机科学的核心素养,基于核心素养“计算思维”的信息技术教学研究...

    李雪珍 摘要:在"中国学生发展核心素养"视野下,信息技术学科强调的核心素养可以归纳为:信息意识.计算思维.数字化学习和创新以及信息社会责任.结合课例<程序的分支结构>浅 ...

  6. 计算思维就是使用计算机程序,什么是计算思维+计算思维的含义

    什么是计算思维计算思维的含义 你知道计算思维吗?计算思维是运用计算机科学的基础概念进行问题求解.系统设计.以及人类行为理解等涵盖计算机科学之广度的一系列思维活动.下面小编为你整理计算思维,希望能帮到你 ...

  7. python 数据分析课程改革网_计算思维培养视域下《Python程序设计》课程的教学改革实践...

    龙源期刊网 http://www.qikan.com.cn 计算思维培养视域下< Python 程序设计> 课程的教学改革实践 作者:王亚萍 来源:<电脑知识与技术> 2018 ...

  8. 计算机导论基于计算思维答案,基于计算思维的计算机导论课程改革实践.PDF

    DOI:10.16246/j.issn.1673-5072.2014.01.019 35 1 ( ) 2014 3 第 卷 第 期 西华师范大学学报 自然科学版 年 月 Vol. 35 No. 1 J ...

  9. 从310到蚂蚁森林,蚂蚁金服在线图计算的创新与实践

    蚂蚁金服过去十五年,重塑支付改变生活,为全球超过十二亿人提供服务,这些背后离不开技术的支撑.在 2019 杭州云栖大会上,蚂蚁金服将十五年来的技术沉淀,以及面向未来的金融技术创新和参会者分享.我们将其 ...

最新文章

  1. 《CCNP TSHOOT 300-135认证考试指南》——5.1节“我已经知道了吗?”测试题
  2. 《UNIX环境高级编程(第3版)》——1.7 出错处理
  3. eeglab中文教程系列(5)-提取数据epoch
  4. Tomcat意外宕机分析
  5. 有关Linux下request.getRealPath(/)获取路径的问题
  6. linux redis安装报错,Linux安装Redis实现过程及报错解决方案
  7. layui 传递前端请求_layui弹出层如何传值?
  8. java mvc建包结构_Java SSM框架的配置方法、MVC结构的分析、响应的流程
  9. Red and Black (找到一个标记一个)
  10. websocket java 例子_java 实现websocket的两种方式实例详解
  11. 转 Hystrix超时实现机制
  12. vscode 格式化json
  13. gmp 5.0.1 windows 下编译使用
  14. Opencv 将GIF格式图片转为JPG、JPEG等格式图片
  15. 【Unity3D】分离路面导航
  16. 时光里的魔术手小故事
  17. python画箭头_Python中绘制箭头
  18. C - C语言实验——求两个整数之中较大者
  19. 视频去水印哪个好用-视频去水印软件app
  20. 如何使用Node.js来制作电子音乐-和弦

热门文章

  1. net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting head
  2. Android实现平板的类股票列表联动
  3. elasticsearch的master选举
  4. crt远程连接linux目录的颜色不显示,SecureCRT连接linux设置vim显示颜色
  5. 增量学习BiC: Large Scale Incremental Learning
  6. 2022年9月改名字这件事的流程亲历和体会
  7. python 爬取腾讯漫画
  8. C#转Java心路历程
  9. 【读书笔记】-《工业互联网-技术与实践》
  10. 干掉Session?这个跨域认证解决方案真的优雅