联系我们
- 地 址:北京市海淀区北四环西路9号 ,主 营:人脸识别,活体检测,身份证识别,银行卡识别,名片识别,车牌识别,OCR识别等及智能识别技术。
- 电 话:13146317170 廖经理
- 传 真:
- 邮 箱:398017534@qq.com
人工智能知识图谱的技术与应用
人工智能知识图谱的技术与应用
1. 概论
随着移动互联网的展开,万物互联成为了可能,这种互联所产生的数据也在迸发式地增长,而且这些数据恰恰可以作为分析关系的有效原料。假设说以往的智能分析专注在每一个个体上,在移动互联网时期则除了个体,这种个体之间的关系也必然成为我们需求深化分析的很重要一部分。 在一项任务中,只需有关系分析的需求,学问图谱就“有可能”派的上用场。
2. 什么是学问图谱?
学问图谱是由Google公司在2012年提出来的一个新的概念。从学术的角度,我们可以对学问图谱给一个这样的定义:“学问图谱本质上是语义网络(Semantic Network)的学问库”。但这有点笼统,所以换个角度,从理论应用的角度动身其实可以简单地把学问图谱理解成多关系图(Multi-relational Graph)。
那什么叫多关系图呢? 学过数据结构的都应该知道什么是图(Graph)。图是由节点(Vertex)和边(Edge)来构成,但这些图通常只包含一种类型的节点和边。但相反,多关系图普通包含多种类型的节点和多种类型的边。比如左下图表示一个经典的图结构,右边的图则表示多关系图,由于图里包含了多种类型的节点和边。这些类型由不同的颜色来标志。
在学问图谱里,我们通常用“实体(Entity)”来表达图里的节点、用“关系(Relation)”来表达图里的“边”。实体指的是理想世界中的事物比如人、地名、概念、药物、公司等,关系则用来表达不同实体之间的某种联络,比如人-“寓居在”-北京、张三和李四是“朋友”、逻辑回归是深度学习的“先导学问”等等。
理想世界中的很多场景非常适宜用学问图谱来表达。 比如一个社交网络图谱里,我们既可以有“人”的实体,也可以包含“公司”实体。人和人之间的关系可以是“朋友”,也可以是“同事”关系。人和公司之间的关系可以是“现任职”或者“曾任职”的关系。 类似的,一个风控学问图谱可以包含“电话”、“公司”的实体,电话和电话之间的关系可以是“通话”关系,而且每个公司它也会有固定的电话。
3. 学问图谱的表示
学问图谱应用的前提是曾经构建好了学问图谱,也可以把它以为是一个学问库。这也是为什么它可以用来回答一些搜索相关问题的缘由,比如在Google搜索引擎里输入“Who is the wife of Bill Gates?”,我们直接可以得到答案-“Melinda Gates”。这是由于我们在系统层面上曾经创建好了一个包含“Bill Gates”和“Melinda Gates”的实体以及他俩之间关系的学问库。所以,当我们执行搜索的时分,就可以经过关键词提取("Bill Gates", "Melinda Gates", "wife")以及学问库上的匹配可以直接获得最终的答案。这种搜索方式跟传统的搜索引擎是不一样的,一个传统的搜索引擎它返回的是网页、而不是最终的答案,所以就多了一层用户自己选择并过滤信息的过程。
在理想世界中,实体和关系也会具有各自的属性,比如人可以有“姓名”和“年龄”。当一个学问图谱具有属性时,我们可以用属性图(Property Graph)来表示。下面的图表示一个简单的属性图。李明和李飞是父子关系,并且李明具有一个138开头的电话号,这个电话号开通时间是2018年,其中2018年就可以作为关系的属性。类似的,李明本人也带有一些属性值比如年龄为25岁、职位是总经理等。
这种属性图的表达很贴近理想生活中的场景,也可以很好地描画业务中所包含的逻辑。除了属性图,学问图谱也可以用RDF来表示,它是由很多的三元组(Triples)来组成。RDF在设计上的主要特性是易于发布和分享数据,但不支持实体或关系具有属性,假设非要加上属性,则在设计上需求做一些修正。目前来看,RDF主要还是用于学术的场景,在工业界我们更多的还是采用图数据库(比如用来存储属性图)的方式。感兴味的读者可以参考RDF的相关文献,在文本里不多做解释。
4. 学问抽取
学问图谱的构建是后续应用的基础,而且构建的前提是需求把数据从不同的数据源中抽取出来。关于垂直范畴的学问图谱来说,它们的数据源主要来自两种渠道:一种是业务本身的数据,这部分数据通常包含在公司内的数据库表并以结构化的方式存储;另一种是网络上公开、抓取的数据,这些数据通常是以网页的方式存在所以是非结构化的数据。
前者普通只需求简单预处置即可以作为后续AI系统的输入,但后者普通需求借助于自然言语处置等技术来提取出结构化信息。比如在上面的搜索例子里,Bill Gates和Malinda Gate的关系就可以从非结构化数据中提炼出来,比如维基百科等数据源。
信息抽取的难点在于处置非结构化数据。在下面的图中,我们给出了一个实例。左边是一段非结构化的英文文本,右边是从这些文本中抽取出来的实体和关系。在构建类似的图谱过程当中,主要触及以下几个方面的自然言语处置技术:
a. 实体命名识别(Name Entity Recognition)
b. 关系抽取(Relation Extraction)
c. 实体统一(Entity Resolution)
d. 指代消解(Coreference Resolution)
下面针对每一项技术处置的问题做简单的描画,致使于这些是细致怎样完成的,不在这里逐一展开,感兴味的读者可以查阅相关资料,或者学习我的课程。
首先是实体命名识别,就是从文本里提取出实体并对每个实体做分类/打标签:比如从上述文本里,我们可以提取出实体-“NYC”,并标志实体类型为 “Location”;我们也可以从中提取出“Virgil's BBQ”,并标志实体类型为“Restarant”。这种过程称之为实体命名识别,这是一项相对比较成熟的技术,有一些现成的工具可以用来做这件事情。其次,我们可以经过关系抽取技术,把实体间的关系从文本中提取出来,比如实体“hotel”和“Hilton property”之间的关系为“in”;“hotel”和“Time Square”的关系为“near”等等。
另外,在实体命名识别和关系抽取过程中,有两个比较棘手的问题:一个是实体统一,也就是说有些实体写法上不一样,但其实是指向同一个实体。比如“NYC”和“New York”表面上是不同的字符串,但其实指的都是纽约这个城市,需求兼并。实体统一不只可以减少实体的种类,也可以降低图谱的稠密性(Sparsity);另一个问题是指代消解,也是文本中呈现的“it”, “he”, “she”这些词到底指向哪个实体,比如在本文里两个被标志出来的“it”都指向“hotel”这个实体。
实体统一和指代消解问题相关于前两个问题更具有应战性。
5. 学问图谱的存储
学问图谱主要有两种存储方式:一种是基于RDF的存储;另一种是基于图数据库的存储。它们之间的区别如下图所示。RDF一个重要的设计准绳是数据的易发布以及共享,图数据库则把重点放在了高效的图查询和搜索上。其次,RDF以三元组的方式来存储数据而且不包含属性信息,但图数据库普通以属性图为基本的表示方式,所以实体和关系可以包含属性,这就意味着更容易表达理想的业务场景。
根据最新的统计(2018年上半年),图数据库仍然是增长最快的存储系统。相反,关系型数据库的增长基本坚持在一个稳定的水平。同时,我们也列出了常用的图数据库系统以及他们最新运用情况的排名。 其中Neo4j系统目前仍是运用率最高的图数据库,它具有生动的社区,而且系统本身的查询效率高,但独一的缺乏就是不支持准分布式。相反,OrientDB和JanusGraph(原Titan)支持分布式,但这些系统相对较新,社区不如Neo4j生动,这也就意味着运用过程当中不可避免地会遇到一些刺手的问题。假设选择运用RDF的存储系统,Jena或许一个比较不错的选择。
6. 金融学问图谱的搭建
接下来我们看一个理论的细致案例,讲解怎样一步步搭建可落地的金融风控范畴的学问图谱系统。 首先需求说明的一点是,有可能不少人以为搭建一个学问图谱系统的重点在于算法和开发。但事实并不是想象中的那样,其实最重要的中心在于对业务的理解以及对学问图谱本身的设计,这就类似于关于一个业务系统,数据库表的设计特别关键,而且这种设计绝对离不开对业务的深化理解以及对未来业务场景变化的预估。 当然,在这里我们先不讨论数据的重要性。
一个完好的学问图谱的构建包含以下几个步骤:1. 定义细致的业务问题 2. 数据的搜集 & 预处置 3. 学问图谱的设计 4. 把数据存入学问图谱 5. 上层应用的开发,以及系统的评价。下面我们就按照这个流程来讲一下每个步骤所需求做的事情以及需求思索的问题。
6.1 定义细致的业务问题
在P2P网贷环境下,最中心的问题是风控,也就是怎样去评价一个借款人的风险。在线上的环境下,狡诈风险特别为严重,而且很多这种风险躲藏在复杂的关系网络之中,而且学问图谱正好是为这类问题所设计的,所以我们“有可能”等候它能在狡诈,这个问题上带来一些价值。
在进入下一个话题的讨论之前,要明白的一点是,关于自身的业务问题到底需不需求学问图谱系统的支持。由于在很多的理论场景,即使对关系的分析有一定的需求,理论上也可以应用传统数据库来完成分析的。所以为了避免运用学问图谱而选择学问图谱,以及更好的技术选型,以下给出了几点总结,供参考。
6.2 数据搜集 & 预处置
下一步就是要肯定数据源以及做必要的数据预处置。针关于数据源,我们需求思索以下几点:1. 我们曾经有哪些数据? 2. 固然往常没有,但有可能拿到哪些数据? 3. 其中哪部分数据可以用来降低风险? 4. 哪部分数据可以用来构建学问图谱?在这里需求说明的一点是,并不是一切跟反狡诈相关的数据都必需求进入学问图谱,关于这部分的一些决策准绳在接下来的部分会有比较细致的引见。
关于反狡诈,有几个数据源是我们很容易想得到的,包括用户的基本信息、行为数据、运营商数据、网络上的公开信息等等。假定我们曾经有了一个数据源的列表清单,则下一步就要看哪些数据需求进一步的处置,比如关于非结构化数据我们或多或少都需求用到跟自然言语处置相关的技术。 用户填写的基本信息基本上会存储在业务表里,除了个别字段需求进一步处置,很多字段则直接可以用于建模或者添加到学问图谱系统里。关于行为数据来说,我们则需求经过一些简单的处置,并从中提取有效的信息比如“用户在某个页面停留时长”等等。 关于网络上公开的网页数据,则需求一些信息抽取相关的技术。
举个例子,关于用户的基本信息,我们很可能需求如下的操作。一方面,用户信息比如姓名、年龄、学历等字段可以直接从结构化数据库中提取并运用。但另一方面,关于填写的公司名来说,我们有可能需求做进一步的处置。比如部分用户填写“北京贪心科技有限公司”,另外一部分用户填写“北京望京贪心科技有限公司”,其实指向的都是同一家公司。所以,这时分我们需求做公司名的对齐,用到的技术细节可以参考前面讲到的实体对齐技术。
6.3 学问图谱的设计
图谱的设计是一门艺术,不只需对业务有很深的理解、也需求对未来业务可能的变化有一定预估,从而设计出最贴近现状并且性能高效的系统。在学问图谱设计的问题上,我们肯定会面临以下几个常见的问题:1. 需求哪些实体、关系和属性? 2. 哪些属性可以做为实体,哪些实体可以作为属性? 3. 哪些信息不需求放在学问图谱中?
基于这些常见的问题,我们从以往的设计阅历中笼统出了一系列的设计准绳。这些设计准绳就类似于传统数据库设计中的范式,来引导相关人员设计出更合理的学问图谱系统,同时保证系统的高效性。
接下来,我们举几个简单的例子来说明其中的一些准绳。 首先是,业务准绳(Business Principle),它的含义是 “一切要从业务逻辑动身,并且经过观察学问图谱的设计也很容易推测其背后业务的逻辑,而且设计时也要想好未来业务可能的变化”。
举个例子,可以观察一下下面这个图谱,并试问自己背后的业务逻辑是什么。经过一番观察,其实也很难看出到底业务流程是什么样的。做个简单的解释,这里的实体-“申请”意义就是application,假设对这个范畴有所了解,其实就是进件实体。在下面的图中,申请和电话实体之间的“has_phone”,“parent phone”是什么意义呢?
接下来再看一下下面的图,跟之前的区别在于我们把申请人从原有的属性中抽取出来并设置成了一个单独的实体。在这种情况下,整个业务逻辑就变得很明晰,我们很容易看出张三申请了两个贷款,而且张三具有两个手机号,在申请其中一个贷款的时分他填写了父母的电话号。总而言之,一个好的设计很容易让人看到业务本身的逻辑。
接下来再看一个准绳叫做效率准绳(Efficiency Principle)。 效率准绳让学问图谱尽量轻量化、并决议哪些数据放在学问图谱,哪些数据不需求放在学问图谱。在这里举一个简单的类比,在经典的计算机存储系统中,我们经常会谈论到内存和硬盘,内存作为高效的访问载体,作为一切程序运转的关键。这种存储上的层次结构设计源于数据的局部性-“locality”,也就是说经常被访问到的数据集中在某一个区块上,所以这部分数据可以放到内存中来提升访问的效率。 类似的逻辑也可以应用到学问图谱的设计上:我们把常用的信息存放在学问图谱中,把那些访问频率不高,对关系分析无关紧要的信息放在传统的关系型数据库当中。 效率准绳的中心在于把学问图谱设计成小而轻的存储载体。
比如在下面的学问图谱中,我们完好可以把一些信息比如“年龄”,“家乡”放到传统的关系型数据库当中,由于这些数据关于:a. 分析关系来说没有太多作用 b. 访问频率低,放在学问图谱上反而影响效率
另外,从分析准绳(Analytics Principle)的角度,我们不需求把跟关系分析无关的实体放在图谱当中;从冗余准绳(Redundancy Principle)的角度,有些重复性信息、高频信息可以放到传统数据库当中。
6.4 把数据存入学问图谱
存储上我们要面临存储系统的选择,但由于我们设计的学问图谱带有属性,图数据库可以作为首选。但至于选择哪个图数据库也要看业务量以及对效率的恳求。假设数据量特别庞大,则Neo4j很可能满足不了业务的需求,这时分不得不去选择支持准分布式的系统比如OrientDB, JanusGraph等,或者经过效率、冗余准绳把信息存放在传统数据库中,从而减少学问图谱所承载的信息量。 通常来讲,关于10亿节点以下范围的图谱来说Neo4j曾经足够了。
6.5 上层应用的开发
等我们构建好学问图谱之后,接下来就要运用它来处置细致的问题。关于风控学问图谱来说,首要任务就是开掘关系网络中躲藏的狡诈风险。从算法的角度来讲,有两种不同的场景:一种是基于规则的;另一种是基于概率的。鉴于目前AI技术的现状,基于规则的方法论还是在垂直范畴的应用中占领主导位置,但随着数据量的增加以及方法论的提升,基于概率的模型也将会逐步带来更大的价值。
6.5.1 基于规则的方法论
首先,我们来看几个基于规则的应用,分别是不分歧性考证、基于规则的特征提取、基于方式的判别。
不分歧性考证
为了判别关系网络中存在的风险,一种简单的方法就是做不分歧性考证,也就是经过一些规则去找出潜在的矛盾点。这些规则是以人为的方式提早定义好的,所以在设计规则这个事情上需求一些业务的学问。比如在下面的这个图中,李明和李飞两个人都注明了同样的公司电话,但理论上从数据库中判别这俩人其真实不同的公司上班,这就是一个矛盾点。 类似的规则其实可以有很多,不在这里逐一列出。
基于规则提取特征
我们也可以基于规则从学问图谱中提取一些特征,而且这些特征普通基于深度的搜索比如2度,3度以致更高维度。比如我们可以问一个这样的问题:“申请人二度关系里有几个实体触碰了黑名单?”,从图中我们很容观察到二度关系中有两个实体触碰了黑名单(黑名单由红色来标志)。等这些特征被提取之后,普通可以作为风险模型的输入。在此还是想说明一点,假设特征并不触及深度的关系,其实传统的关系型数据库则足以满足需求。
基于方式的判别
这种方法比较适用于找出团体狡诈,它的中心在于经过一些方式来找到有可能存在风险的团体或者子图(sub-graph),然后对这部分子图做进一步的分析。 这种方式有很多种,在这里举几个简单的例子。 比如在下图中,三个实体共享了很多其他的信息,我们可以看做是一个团体,并对其做进一步的分析。
再比如,我们也可以从学问图谱中找出强连通图,并把它标志出来,然后做进一步风险分析。强连通图意味着每一个节点都可以经过某种途径抵达其他的点,也就说明这些节点之间有很强的关系。
6.5.2 基于概率的方法
除了基于规则的方法,也可以运用概率统计的方法。 比如社区开掘、标签传播、聚类等技术都属于这个范畴。 关于这类技术,在本文里不做细致的讲解,感兴味的读者可以参考相关文献。
社区开掘算法的目的在于从图中找出一些社区。关于社区,我们可以有多种定义,但直观上可以理解为社区内节点之间关系的密度要明显大于社区之间的关系密度。下面的图表示社区发现之后的结果,图中总共标志了三个不同的社区。一旦我们得到这些社区之后,就可以做进一步的风险分析。
由于社区开掘是基于概率的方法论,好处在于不需求人为地去定义规则,特别是关于一个庞大的关系网络来说,定义规则这事情本身是一件很复杂的事情。
标签传播算法的中心机想在于节点之间信息的传送。这就类似于,跟优秀的人在一同自己也会逐渐地变优秀是一个道理。由于经过这种关系会不时地吸取高质量的信息,最后使得自己也会不知不觉中变得愈加优秀。细致细节不在这里做更多解释。
相比规则的方法论,基于概率的方法的缺陷在于:需求足够多的数据。假设数据量很少,而且整个图谱比较稠密(Sparse),基于规则的方法可以成为我们的首选。特别是关于金融范畴来说,数据标签会比较少,这也是为什么基于规则的方法论还是更普遍地应用在金融范畴中的主要缘由。
6.5.3 基于动态网络的分析
以上一切的分析都是基于静态的关系图谱。所谓的静态关系图谱,意味着我们不思索图谱结构本身随时间的变化,只是聚焦在当前学问图谱结构上。但是,我们也知道图谱的结构是随时间变化的,而且这些变化本身也可以跟风险有所关联。
在下面的图中,我们给出了一个学问图谱T时辰和T+1时辰的结构,我们很容易看出在这两个时辰中间,图谱结构(或者部分结构)发作了很明显的变化,这其实暗示着潜在的风险。那怎样去判别这些结构上的变化呢? 感兴味的读者可以查阅跟“dynamic network mining”相关的文献。
7. 学问图谱在其他行业中的应用
除了金融范畴,学问图谱的应用可以触及到很多其他的行业,包括医疗、教育、证券投资、举荐等等。其实,只需有关系存在,则有学问图谱可发挥价值的中央。 在这里简单举几个垂直行业中的应用。
比如关于教育行业,我们经常谈论个性化教育、因材施教的理念。其中心在于理解学生当前的学问体系,而且这种学问体系依赖于我们所获取到的数据比如交互数据、评测数据、互动数据等等。为了分析学习途径以及学问结构,我们则需求针关于一个范畴的概念学问图谱,简单来讲就是概念拓扑结构。在下面的图中,我们给出了一个非常简单的概念图谱:比如为了学习逻辑回归则需求先理解线性回归;为了学习CNN,得对神经网络有所理解等等。一切对学生的评测、互动分析都离不开概念图谱这个底层的数据。
在证券范畴,我们经常会关心比如“一个事情发作了,对哪些公司产生什么样的影响?” 比如有一个负面消息是关于公司1的高管,而且我们知道公司1和公司2有种很密切的协作关系,公司2有个主营产品是由公司3提供的原料基础上做出来的。
其实有了这样的一个学问图谱,我们很容易回答哪些公司有可能会被这次的负面事情所影响。当然,仅仅是“有可能”,细致会不会有强相关性必需由数据来考证。所以在这里,学问图谱的好处就是把我们所需求关注的范围很快给我们圈定。接下来的问题会更复杂一些,比如既然我们知道公司3有可能被这次事情所影响,那细致影响程度有多大? 关于这个问题,光靠学问图谱是很难回答的,必需求有一个影响模型、以及需求一些历史数据才干在学问图谱中做进一步推理以及计算。
8. 理论上的几点建议
首先,学问图谱是一个比较新的工具,它的主要作用还是在于分析关系,特别是深度的关系。所以在业务上,首先要确保它的必要性,其实很多问题可以用非学问图谱的方式来处置。
学问图谱范畴一个最重要的话题是学问的推理。 而且学问的推理是走向强者工智能的必经之路。但很遗憾的,目前很多语义网络的角度讨论的推理技术(比如基于深度学习,概率统计)很难在理论的垂直应用中落地。其实目前最有效的方式还是基于一些规则的方法论,除非我们有非常庞大的数据集。
最后,还是要强调一点,学问图谱工程本身还是业务为重心,以数据为中心。不要低估业务和数据的重要性。
9. 结语
学问图谱是一个既充溢应战而且非常有趣的范畴。只需有正确的应用场景,关于学问图谱所能发挥的价值还是可以等候的。我置信在未来不到2,3年时间里,学问图谱技术会进步到各个范畴当中。
上一条:安卓身份证识别API
下一条:AI机器学习优化算法的学习