人类学家罗宾·邓巴认为:一个人维持紧密人际关系的人数最多为150人。
网络社交平台出现后,很多人认为虚拟世界将突破邓巴这一理论,但实际情况却是:如果要和更多人互动,那么势必需要削弱在其它人身上花的精力。
但是,人际关系将随着时间而产生亲疏远近等不同的变化,如果能够识别出人与人的关系定义,则能为诸多行业领域带来更多方向的探索,如:诈骗团伙识别,通过诈骗分子的通话关系网去识别可能存在的团伙关系,将坏人一网打尽。
本期课堂,联通大数据技术专家闫龙将从“本体论”说起,为大家介绍联通大数据关系图谱的构建与应用。
一、本体论
万维网之父Tim Berners-Lee教授在1998年将语义网络(Semantic web)带入人类的视线。目的是赋予网络理解词语、概念以及它们之间逻辑关系的能力,使人机交互变得更有效率。本体论(Ontology)做为语义网的核心,是研究实体存在及其本质的通用理论。1993年Thomas Gruber教授提出了本体论最广为认同的定义:共享概念模型的明确的形式化规范说明。这里面实际说了四个概念,即:“概念模型”(Conceptualization)指通过客观世界中一些现象的相关概念而得到的模型;“明确”(Explicit)指所使用的概念及其约束都有明确的定义;“形式化”(Formal)指Ontology是计算机可读的;“共享(Share)”指本体论中体现的是共同认可的知识,反映的是相关领域中公认的概念集。
本体论最初是形而上学的一个分支。对于形而上学的理解这里给出一个例子(如:图1)
(图1)
图中中文的“猫”与“猫咪”,英文的“cat”,“猫的图片”都可以用来描述“猫”这个实物。那么在哲学层面,“猫”这样一个实物就是亚里士多德口中的“实体”,巴门尼德口中的“存在”,以及本体论中所说的“本体”。而上图这些描述均指的是“猫”这个“本体”的符号。
从这里,我们能看出“本体”这个概念在哲学层面上是形而上的,是只可意会不可言传的。因此,对于一个实体,所有的描述都是这个“本体”的外在符号,我们感受到的,听到的,看到的,都成为符号到本体的某种映射。
解释完本体哲学层面的意思,我们是否对语义层面的本体有更好的理解呢?其实,其主要目的就是要建立这样一种映射,例如:{“猫”,“猫咪”,“喵咪”,“cat”}这个符号集都映射到“猫”这个“本体”上来。当我们建立了本体的集合,本体间的逻辑关系就是存在的(如:IF A⊆B and B⊆C,THEN A⊆C)。本体的逻辑层提供了公理和推理规则,进而实现相应的逻辑推理,有可能是“属性-本体”的关系,有可能是“子类-本体”的关系,也有可能是“本体-本体”的对立或者是近似关系。本体论最终的目的是去实现知识表达,构建知识库,实现知识推理,即借由本体论中的基本元素:实体与实体间的关联,作为描述真实世界的知识模型。
二、知识图谱
这种知识模型究竟有什么用呢?Google在2012年提出Knowledge Graph,就是为了将传统的keyword-based搜索向基于语义的搜索升级。知识图谱可以用来更好的查询复杂的关联信息,从语义层面理解用户意图,改进搜索质量。这里借用本体的概念给出我个人对知识图谱的理解:知识图谱就是用来描述真实世界中存在的各种实体,以及他们之间的关系,而实体本身会有多样实例,属性。就像之前“猫的例子”(如下图2),当我们查询“喵喵喵喵喵”时,返回的不会是抖音上很红的《学猫叫》,而是“猫”这个实体。同时,在其他知识的补充下我们可以知道“猫”有一个实例是“茄子”,而“茄子”的主人是我,我和小胡都就职于联通大数据,并且通话关系很密切。当我们知识库中的实体、关系、属性、实例等的量级非常大时就能绘制成一个巨型的网络关系拓扑图。有了这样的知识库,搜索引擎就能洞察用户查询背后的语义信息,返回更为精准的信息。换言之,知识图谱引入了更多的含义,对事物进行搜索,像人类一样去思考、联想、关联。这也印证了Google knowledge graph的初衷:“The world is not made of strings , but is made of things.”
(图2)
#p#分页标题#e#另外,如果我们把各种语言的“猫”都映射到“猫”这个本体上,再基于与名词主体、动词主体构建的逻辑关系或动宾短语等,通过反映射就可以实现简易的机器翻译。
三、图数据库
2018年9月,我们有一篇题为《专家课堂|NoSQL还是SQL》的公众号提到图数据库,文中给出了NoSQL or SQL, Why NoSQL之类的话题。其中的基于场景选择也有相应的介绍,这里就不做赘述了。从上一节的图中,我们可以清晰地看出,通话记录就能以实体及关系的方式存储。这是运营商数据的固有优势,在我们的场景里不用花太多时间去做基于nlp技术的实体抽取、关系抽取。我们关注的重点则是通话关系网络中,如何保证海量的动态更新的通话节点及关系载入图中、哪些人有哪些通话行为特征、这些图中挖掘出的特征如何贡献在现有的场景模型中等等。比如在风控领域,我们正在应用图发现相关方法探索样本号码或ID是否在一个诈骗社区,是否有稳定的通话社交圈,与黑产号码存在几度的关联,关联系数是怎样的,是否有多个电话组内关联等。这些都将是风控、反欺诈类模型的新特征。
测试数据集选用三个月全网用户的通话记录,节点属性包括是否联通号、手机号码对应职住经纬度等;边属性包括号码间三个月的主被叫通话次数、主被叫次数,天数,时长等。数据集大小约为750G,载入图数据库结果如图3。
(图3)
载入后根据每台机器VertexCount和EdgeCount可以看到图数据库共加载了约17亿节点(号码),340亿边(通话关系)。其中NumOfSkippedVertices表达了一个去重的过程,即:每个节点只加载一遍。因此,partition size的总和只有590G左右,实际上是对数据进行了压缩。
做一个简单的号码关系查询(如图4),在百亿级边的图数据库里可以实现毫秒级响应。值得注意的有两点:1. 查询返回为json格式;2. 查询语言为类sql语言。
(图4)
我们可以将查询语言以文件形式存储,通过install/run query进行查询。同时,在后台install一个查询还会生成一个REST端点,这样就可以通过http来调用参数化查询。如图5,通过查询语言进行图遍历,寻找两个号码间的最短距离。这样就能实现我们熟悉的六度空间理论(小世界理论),即:世界上任何两个人最多只需通过6个关系就能找到对方。
(图5)
如果我们定义号码与号码间的通话频次为关系权重,每个人的通话人数为通话活跃度。试想,一个人和你没有通话记录,但是和你的好朋友通话比较频繁,你是不是也有可能认识这个人呢?这个查询就是从图中挖掘你可能认识的人。查询输入是待查号码与最可能认识的k个手机号,返回是查询号码和输入号码的距离(如图6)。
(图6)
最后,给出一个真实的场景案例,是否能够通过企业少数员工号码、imei或其他ID,寻找企业员工群体,并对该群体进行分析,来反应企业实际经营地址、活跃度等情况呢?这里给出【2步邻居子图】的概念(以手机号做节点为例),即:输入号码联系人及联系人的联系人(如图7,这里使用可视化交互界面展示通话关系)。
(图7)
在模型搭建过程中,我们对通话时间段、时长、频次进行分析,评估可能存在的同事关系,并基于现有职住模型以及栅格技术挖掘企业真实经营地址。以我自己手机号为例(如图8),可以看到返回企业员工主要聚集的工作地(数字表示工作地在相应栅格内的人数),即:联通大数据公司两个办公区(职住数据取自2018年12月)、联通集团。
(图8)
#p#分页标题#e#基于对人群行为的洞察,该模型能够帮助工商部门动态的、客观的对企业真实位置、企业活跃情况进行评估与判断,为相关监察监管提供数据支撑。
值得一提的是,基于联通大数据关系图谱,在十亿级节点、百亿级边的大型网络结构中,查询6步邻居子图也只需要不到1秒(如图9)。可视化交互界面如图10(中间白色点为我的手机号)。
(图9)
(图10)
为了更细节的洞察网络中的关系,将展示阈值缩小(如图11)。经查验,中间环形结构上的每个点相互间都是同事关系。社交网络中环形结构上的点往往存在某种隐含关联,同事关系、亲疏关系、团伙关系、资金流向等等。基于不同样本、不同场景的应用,相较于传统数据库类型,图数据库可以最大程度挖掘样本间的关联关系。
(图11)
另外,大量经典的图挖掘算法,如:社区发现,Pagerank,LPA等也已ready,为传统机器学习模型入模特征增加更多的图特征。
总之,本体、知识图谱、图数据库都是用节点和关系为真实世界的各个场景直观地建模,运用“图”这种基础性、通用性的“语言”,“高保真”地表达这个多姿多彩世界的各种关系,并且非常直观、自然、直接和高效。联通数据拥有得天独厚的“节点”、“关系”优势,我们正坚定不移的走在图发现的道路上!
【本文是51CTO专栏机构中国联通大数据的原创文章,微信公众号“中国联通大数据( id: unibigdata)”】
戳这里,看该作者更多好文
【编辑推荐】
【实战解析】基于HBase的大数据存储在京东的应用场景
AI专家:大数据知识图谱——实战经验总结
解决线上数据库死锁,就是这么简单!
一篇运维老司机的大数据平台监控宝典(1)-联通大数据集群平台监控体系进程详解
一篇运维老司机的大数据平台监控宝典(2)-联通大数据集群平台监控体系详解