除了知识图谱,图还能做什么?_科技星象的博客-程序员ITS203_个性化系统,除了知识图谱还有比较简单的吗

技术标签: TigerGraph  语言  图分析  数据库  大数据  图数据  

作者:鲍翰林 TigerGraph高级解决方案顾问

摘要:本文将围绕三个方面,重点介绍图数据库和图分析的价值,并列举一些图分析应用的场景、工具和路径等。

提到图,大家可能不怎么了解,但是提到知识图谱(knowledge graph),绝对是当前的热门话题。

近年来,各个行业涌现出大量的垂直应用及服务提供商,各个企业,从技术到业务的各个条线,纷纷学习知识图谱的概念、技术、建设方法。

知识图谱,是对现实世界的抽象,通过点和边描述实体之间的关系,构成一个大型的语义网络,提供一种从关系的视角来观察世界的方法。但究其本质,知识图谱其实只是图的其中一种应用。那除了知识图谱,图还能做什么呢?

图直观体现了实体之间的联系

提到一个新的东西,首先要知道它是什么。

相信之前对图有了解的小伙伴,一下子就能说出图的概念:图(graph)是由一组或多组点以及点和点之间的关系(也被称为边)组成的。

比如知识图谱,实际上是把知识提取出来做连接,如果仅仅是把数据连接起来,那可能只是一个数据图谱。

但是在我们与客户实际交流的过程中发现,只知道图的概念,是没办法真正切换到图的思维方式的,而图的思维方式,对于重新思考业务,有着非常大的价值。

什么是图的思维方式呢?让我举个例子,这个场景大家一定不会陌生。白板是公司里最常使用的工具之一。

当遇到一个问题需要群策群力的时候,我们会召集一些小伙伴,到一个会议室里进行头脑风暴。

首先,抛出几个议题,大家发散思维,将想到的东西尽可能多的写在白板上。

然后,将这些信息进行分类、排序,或者绘制一些流程。当苦苦思索,陷入僵局的时候,我们会紧盯着白板上的信息,飞快地运转自己的大脑,期望能想出一些新的点子。

忽然,灵光一现,可能是白板上的某些东西和自己脑中的信息产生了碰撞,也可能是白板上某些信息之间,貌似有一些新的联系,就这样,一个新的点子产生了,我们可以就这个点子进行新的讨论,并重复这个过程。

而解释这种想法,我只需要把自己的想法写在白板上,并重新理清关系。

听起来很熟悉吧?没错,这其实就是我们自然的思考方式,也就是图的思维方式。

这个例子中,最重要的是联系(connection),我们需要把每个人脑中的信息联系起来,去发现一些新的东西。

同样地,当我们向别人解释自己的想法,用图的方式去解释这些信息如何联系在一起,构成一个想法,别人也更容易接受。

 

在侦探电影中,我们经常看到侦探把案情的所有信息贴在墙上,去发现里面一些隐藏的关系,因为这很有可能是破案的关键。

如果家里的实体书种类繁多,散落在各处,我们在思考的时候,很有可能偶然看到某本书,想到了其中的某些内容,把它们和思考的内容结合起来产生一些新的想法。

跨学科思维,其实也是将一些可能看起来毫不相干的内容联系起来,产生新的想法或者解决方案。

图思维其实就是发现联系的过程

所以图思维,核心是联系(connection),当我们思考的重点在于事物之间如何联系,或者期望通过联系事物去产生一些新的思考的时候,其实已经运用了图思维。

而意识到这是一种图思维,会有什么样的意义呢?还是举个例子,这其实会让我们多一种解决问题的方式。

这是斯坦福大学《数理逻辑与人工智能》中的一个问题。

看到这个问题的第一反应,你可能会想着用纯逻辑推理的方式来解决这个问题。但是如果用图的思维方式,我们将解决问题的重点放到了情况之间的联系上

我们可以先构造一个认知图(Epistemic graph),列出所有的8种可能情况,通过不确定边来连接可能情况,去看每个人的认知和可能情况之间的联系,然后根据条件结合每个结点的邻边,不断缩小图中的结点的范围,最后推理出结论。这种方式会让这个问题变得更加简单。

图是一个高度抽象的模型,数据中的各种关系都能用图表示。

图中的点和边,可以非常灵活,不局限于现实意义的实体。

最直接能想到的当然是某个人可以是点,某个产品可以是点,它们之间的联系是边;路口是点,路口与路口连接的XX路是边。但你完全可以把某个产品的某个特性抽象成点,比如颜色、重量;XX路抽象成点,路口也抽象成点,XX路和YY路的连接是边。

甚至再扩展到一些虚拟的实体,比如可能的情况是点,某笔交易是点,某个订单是点。甚至到某些分子是点,分子之间的连接是边(没错,图是可以用在化学/生物等学科上的)。

图由你自由定义,可以连接人,连接物,连接知识,连接数据,连接规则,连接过程,连接抽象的和实际的实体。

图在企业中的实际应用和价值

图能给企业带来什么价值呢?上述的两个例子可能已经给了你一些启发。图非常擅长通过联系发掘数据中隐藏的价值。

在国外,其实已经有非常多行业的客户在用图做实际应用,囊括了金融、电信、电商、能源、医疗、供应链、制造、政府等各个行业。图本身并不是一个垂直行业的技术,而是通用的技术。

 

在金融行业,图可以进行申请反欺诈、反盗刷、信用卡追逃、洗钱团伙发现,事前事中发现潜藏风险,事后降低损失;在电信行业,图可以和机器学习结合,帮助客户进行电信反欺诈,实时识别出欺诈电话、广告电话、骚扰电话、正常电话,并及时报送公安部门。

在电商行业,图可以构建用户360画像,帮助客户进行实时个性化产品推荐;在能源行业,可以构建电网一张图,进行潮流分析,实现超实时计算;在医疗行业,图可以对用户进行实时护理路径推荐。

在供应链行业,客户可以通过图及时了解某项因素发生变化时,对上下游及总体成本的影响,发现产品延误、装运状态及其他质量控制和风险问题;在制造行业,图可以找到复杂生产工艺的最佳路径;在政府行业,图可以改进社会福利服务管理。在通用行业,图可以进行数据治理中的数据血缘分析、实体解析,网络&IT资源优化,为机器学习提供图特征。

国内的应用场景主要集中在金融行业。

当然,图用来做反欺诈、反洗钱等,是非常适合的,这些也是很成熟的应用。

其他行业为什么没有对图进行大规模的应用呢?其实是因为,对图有了解的人,基本集中在学术和计算机领域。而想要将图的价值发挥出来,需要业务人员的参与和思考,因为业务人员是最懂业务的。

理解和使用图的思维方式,是应用图解决实际问题的第一步。

应用图分析的条件和工具

我们通常把这种用图去分析问题的方式叫做图分析(Graph Analysis)。

我们认为,如果想要应用图分析给企业带来真正的价值,需要图的思维方式(产生需求&问题)+企业数据(解决问题的数据基础)+解决方案(解决问题的方法)+工具(选择合适的工具解决问题)。

图的思维方式

由于历史原因(有兴趣的小伙伴可以了解一下数据库的历史,导航数据库-关系型数据库-nosql数据库-图数据库),当我们思考业务和数据结合的时候,往往会考虑技术的限制,应用关系型数据库的方式,也就是用表的思路来思考,这会极大的限制我们的思路。而现在有了新的工具——图数据库,可以将我们的想法更直接的与工具结合,不需要再将最初的想法打碎成一个个表格,再通过表格来表示实际业务。

举一个企业反薅羊毛的实际场景,薅羊毛是指商家或金融机构为了拉新会举办一些推广活动,比如每邀请一个新用户注册,可以获得一定的积分奖励,这些积分可以兑换现金、优惠券或者奖品。

活动上线会吸引黑产团伙,这给推广方造成了大量的资金浪费。薅羊毛和反薅羊毛成为了黑产团伙和推广方之间的博弈。

针对这种推广活动,关系型数据库里最简单的存储方式是分为邀请注册表和积分兑换表两张表,通过统计的方式去识别黑产团伙,比如每个独立设备登陆的账户数,每个IP上登陆的账户数等。

然而黑产团伙可以通过群控设备,虚拟IP等等技术来绕开这些检测。

但如果转换成图的思维方式,着重从关系的角度去分析,会发现一些非常有趣的模式。用户邀请注册的这些新用户,他们既没有产生新的交易,也没有邀请新的人,甚至还按时间形成非常有序的排列,这毫无疑问也是薅羊毛的一种模式,单纯通过统计很难发现。

 

所以第一步,需要业务人员切换到图的思维来重新思考业务,找到那些以前解决困难或者解决不了的复杂业务问题,尝试用图的思维方式来解决,甚至找到一些新的业务价值点。

企业数据

我们的想法往往需要通过数据分析来验证或者落地。当我们的数据量巨大,且类型复杂的时候,单纯的统计分析已经没办法满足我们的需求了。

业务人员在进行探索式分析时,需要多维度思考,落地到关系型数据库里,就体现为多表关联,在数据量巨大的时候,这对关系型数据库是个灾难。而采用数据仓库和大宽表的方案也不尽如人意。

本质上是因为,这些技术的重点并不是在数据之间的关系上。应用图分析平台,业务人员和数据分析人员,都可以从数据的角度出发,去做一些探索,找到一些隐藏的联系。尝试从关系的角度,发掘出新的价值。

 

解决方案

当有了想要解决的问题和解决问题的数据基础,还需要解决问题的方法。我们可以把行业经验和图算法结合起来。

可以从简单的关系查询开始,比如看新进客户是否和一个已有黑点连接,基于已有的规则做更深度的探索,通过子图判断两个客户是否相似。

同时,还可以利用一些图算法做辅助,比如我们想要发现一些隐藏的洗钱团伙,欺诈团伙,可以用图中衡量群体度的算法——鲁汶算法(Louvain Modularity);我们想要找到所有客户中最有影响力的人(KOL),可以用图中衡量中心度的算法——页面排名算法(PageRank)。

当找到一些模式后,可以通过图上的模式匹配找到所有的相似客户,并通过一些目标值做反复的验证和迭代。业务人员、数据分析人员、IT人员都可以参与到其中,包括一些经验丰富的解决方案提供商,都是我们有力的帮手。

工具

从业务的探索到最后的落地应用,需要一个安全易用、稳定可靠的工具支持。更重要的是,要选择合适的工具。

首先,如何使用图,是纯粹的做图的可视化?还是做图的查询计算?还是做图的数据和业务探索?

其次,是否传统的关系型数据库就能解决这个问题,或者图数据库才能解决这个问题,还是需要多种工具结合使用。

最后,关于工具本身的功能。业务人员可能更加关注探索与交互的易用性;开发人员可能更加关注开发的便捷性,语言是否强大;运维人员可能更加关注系统管理、资源监控。不同的角色有不同的关注点,这都是工具需要解决的问题。

 

看完上述四个步骤,你肯定会有很多问题,比如,怎么从数据的角度在图中做探索呢?有没有什么已经落地的,图的解决方案?关于企业不同角色对于工具的关注点,TigerGraph能够满足吗?由于篇幅有限,这些问题,我们会在后续的内容中一一解答。

总结一下,除了知识图谱,图还能做什么呢?Think in graph, and you will find it.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sch881226/article/details/107182444

智能推荐

mfc基于对话框 使用html对话框是什么?,MFC 基于对话框_消息处理_翁翔坚的博客-程序员ITS203

MFC 基于对话框_消息处理MFC 基于对话框_消息处理[var1]Windows 10基于对话框[var1][var1]新建【MFC_基于对话框_消息处理】的项目,这个文件的中的类继承自 CWinApp。主要是由InitInstance()函数实现的。// MFC_基于对话框_消息处理.h: PROJECT_NAME 应用程序的主头文件//#pragma once#ifndef __AFXWIN...

二维otsu算法python_【OpenCV+Python】图像阈值与OTSU算法_风巽水坎的博客-程序员ITS203

图像阈值自本教程开始,我们已经进入了图像处理的一些基本操作的学习,所谓的图像阈值,就是图像二值化。什么是二值化?就是只有0和1,没有其他的。在OpenCV的图像里面,二值化表示图像的像素为0和255,并没有其他的值,它跟灰度化并不同。然而要想实现二值化,就最好先对图像进行灰度化处理,因为我们需要的图像不能具备GBR三元通道。▼ 简单阈值我们先来看函数原型:ret, dst = cv2.thresh...

论文阅读笔记《Learning to Switch CNNs with Model Agnostic Meta Learning for Fine Precision Visual Servoing》_深视的博客-程序员ITS203

核心思想  该文提出一种选择型CNN来实现精确的视觉伺服过程,作者发现现有的基于深度学习的视觉伺服方法能够实现的精度都不高,作者认为这是由于目前的学习方法都是把初始位置和期望位置的图像输入到网络中,然后得到两个图像之间的变换矩阵,而输入的初始位置通常与期望位置偏差较大,导致网络在处理大范围偏移(large-scale-displacements,LSD)时效果较好,但当机械臂接近期望位置时,也就是处理小范围偏移(small-scale-displacements ,SSD)时效果反而更差了。因此作者提出一

Cortex-M4 编程模型(Programmer Model)与 核心寄存器_Frank_Tse的博客-程序员ITS203_fault mask register

以下寄存器的地址从低到高排列:R0 ~ R12(均为32bits)通用寄存器,其中R0~R7为低地址通用寄存器,R8~R12为高地址通用寄存器;SP(R13)(32bits)栈指针寄存器(Stack Pointer),实际上存在两个R13寄存器,分为主栈指针MSP(Main Stack Pointer)寄存器和过程栈指针PSP(Process Stack Pointer)寄存器。任...

使用Session和Cookie做登录验证_一次编写 到处调试的博客-程序员ITS203_cookie和session实现登录

1 背景作为“自学成才”的野路子程序员,一直忙于CRUD,没有系统地学习CS基础知识,导致面试的时候屡屡被CS专业的同学diss,于是乎知耻而后勇,认认真真地补习基础知识,这篇博客就来学习、总结下啥是Cookie、啥是Session。以前看过面试宝典,只知道Cookie是保存在客户端、Session保存在服务端,除此之外一无所知,直到昨天晚上躺在床上辗转反侧、思绪万千,看了一篇关于单点...

随便推点

超级账本HyperLedger:使用Ansible进行Fabric多机部署(实战)_chichitai7025的博客-程序员ITS203

说明 这是网易云课堂“IT技术快速入门学院”的第二门课《HyperLedger Fabric进阶实战课》第三章节使用的素材。(原文地址) 这其实已经是一套非常实用的Ansible部署脚本了,完全可以应用于生产。 脚本托管在github上:hyperledger-fabric-ansibl...

优化实时性能_白杨谷的博客-程序员ITS203_rcu_nocbs

NFV的提出,为运营商提供了一个新的选择,不在有限于设备提供商。将各个网络模块运行于VM或者容器中,但是由于引入了hypervisor,延迟必定会比直接运行在物理机上要大一些,本文记录了如何在VM中通过设置内核启动参数降低程序调度的延迟。Linux Kernel通用内核在spinlock、irq上下文方面无法抢占,因此即使高优先级任务被唤醒到得以执行的时间并不能完全确定。正是因为这个执行时间的不确定性,实时内核实时系统分为硬实时和软实时,区别主要在于,软实时是统计上的实时,保证一定百分比

ftp协议的工作原理_symbiancdy的博客-程序员ITS203

FTP Transfer Protocol 件传输协议的缩写,在RFC 959中具体说明。  FTP会话时包含了两个通道,一个叫控制通道,一个叫数据通道。  控制通道:控制通道是和FTP服务器进行沟通的通道,连接FTP,发送FTP指令都是通过控制通道来完成的。  数据通道:数据通道是和FTP服务器进行文件传输或者列表的通道。  FTP协议中,控制连接均有客户端发起,而数据连接有两种...

OS课设问题和解决方法_3ilence的博客-程序员ITS203

1.在进行wsl2内核重新编译的时候,有一步是要把github上项目的一个2k行的文件内容复制到linux里的文件中。然而当我用vim打开文件之后,进入插入模式,ctrl+shift+v没有用,右键也粘贴不了。百度之后找到了解决方法:https://www.cnblogs.com/tylf-lk/p/10133477.html只需要在普通模式输入“:set mouse-=a”,不包含引号,就可以使用右键进行粘贴了。原理见链接内容。...

RANSAC_ayoung_go的博客-程序员ITS203_ransac

大概太久没更新了,压力就越大了,工作比较忙,人比较懒,写一篇高质量的文章还是比较耗时间的,这样吧,以后就发一些我觉得比较实用的东西吧,就那么一个小片段,这样我也比较有时间,比较有动力,假如你有什么建议可以留言。今天介绍的这个东西RANSAC是前不久接触到的东西,最网上的资料进行总结结合自己的实际应用给大家讲讲我的理解。RANSAC是“RANdom SAmple Consensus(

推荐文章

热门文章

相关标签