陈 胜 ,刘业森 ,魏耀丽
(1.中国水利水电科学研究院,北京 100038;2.水利部防洪抗旱减灾工程技术研究中心,北京 100038;3.北京慧盟信通技术发展有限公司,北京 100036)
自 2012年11月Google 公司率先提出知识图谱的概念[1]以来,国内外已经建立了多个大规模知识图谱,包括通用和行业 2 种知识图谱。通用的知识图谱有 FreeBase,DBpedia,YAGO,Wikidata 等,行业知识图谱有 IMDb 电影和 MusicBrainz 音乐等相关知识图谱。国内研究的还有开放式的中文知识图谱 Open KG,其定位是促进跨领域的交流,让知识图谱能更多地在垂直行业进行应用。目前知识图谱概念和边界还不是很清晰[2],如知识图谱与本体论的定义既有联系也有区别。知识图谱可通过可视化技术表达为一个网络拓扑图,本质上是一种可推理的语义网络,但网络拓扑图未必可以进行推理。知识图谱是当前研究的热点,在语义搜索、智能问答、决策支持等领域有着越来越广泛的应用。
本研究以水工程联合调度计算方案生成为切入点,研究知识图谱在水利行业的应用技术。水工程联合调度通过综合运用流域内的水库、闸门、蓄滞洪区等各类水利工程,从而达到防洪、水量、生态、航运等综合运用的最优效果。水工程联合调度的计算是个复杂的过程,构建水工程联合调度计算方案同样也是个复杂的过程,例如长江流域,参与防洪、水量调度的节点就有 217 个[3],要考虑的水利工程对象包括水库断面、河道断面、河流、河流交汇点、产汇流区间及相关雨量站,以及库容曲线、水位泄量关系曲线、调度规程等属性信息和调度规则。传统的人工方法构建水工程联合调度计算方案不仅费时费力,还容易因为人为因素产生错误的计算方案;另外在应急防洪期间往往需要根据应用场景的需要快速构建水工程联合调度计算方案,这对于人工方法构建计算方案就更加具有挑战性。
将知识图谱应用到水工程联合调度计算方案生成的研究内容包括知识表示、建模、抽取、融合、存储、检索和推理等[4],研究的水工程联合调度计算方案生成过程就是知识推理过程,不同的应用领域根据领域知识图谱的特点需要采用不同的推理策略。利用知识图谱的知识推理能力获取所需信息并自动生成水工程联合调度计算方案,不仅速度快,而且也不会产生人为因素的错误,为此基于知识图谱对水工程联合调度计算方案生成技术进行研究。
知识图谱的应用包括一系列相关的技术,主要有知识图谱的构建、存储、推理和应用等方面的应用技术。
在知识图谱技术应用到水工程联合调度计算方案生成之前,首先需要构建水利行业领域的知识图谱。根据水工程联合调度所需信息建设的领域专题知识图谱和传统用于文献分析的知识图谱一样,都属于应用在各自特定业务领域的知识图谱。水工程联合方案生成专题知识图谱的构建范围为构建方案所需的一切信息,如调度节点、目标、规程等信息,以及相关的外延信息。随着人们对特定业务领域的理解程度加深或业务应用范围的扩大,知识图谱的构建范围也会扩大,本研究在现有对水工程联合调度的理解基础上进行相关专题知识图谱的构建。专题知识图谱构建需要研究的几个问题如下:
1)知识表示。知识表示是一种对信息的描述或一组约定,从而形成一种计算机可以接受的用于描述知识的数据结构。知识图谱通常以网络和图的结构表示三元组中的元素,网络和图中的节点表示实体,节点之间的边表示不同实体之间的关系[5]。知识表示方法有逻辑、产生式、框架、面向对象、基于 XML 和本体等表示法,如 RDF(资源描述框架),是一种框架表示法,RDF 由节点和边组成三元组,节点表示实体(资源)、属性,边则表示实体和实体之间的关系,以及实体和属性的关系。通过 RDF 即可表达知识,表达水工程联合调度系统中涉及的水库、河道工程和相关属性,以及工程节点之间的关系,形成相关知识图谱库。
2)知识建模。确定 1 种知识表示方法后需要进行知识建模,知识建模分为概念和物理模型的建模。知识建模需要具有丰富的行业知识,水利行业领域知识图谱的建模技术目前研究还比较少,冯钧等[6]在水利信息知识图谱的构建与应用研究中,针对水利行业提出概念层和实例层的定义,该研究为知识图谱在水利行业的应用奠定了一定的理论基础。水工程联合调度的概念模型构建,需要分析水工程联合调度的业务模型,分析调度节点、目标、规程等业务对象及相互作用关系,形成领域业务模型。如考虑水工程联合调度计算方案生成所需的知识,则需要考虑流域内的工程对象、属性及关系。工程对象包括水库断面、河道断面、河流、河流交汇点、产汇流区间及相关雨量站等;不同的工程对象具有不同的属性信息,如水库工程涉及库容曲线、水位泄量关系、关联汇流区间信息等属性信息;汇流区间具有关联预报模型、流域面积等属性。工程对象之间的拓扑关系包括产汇流、河道连接、入流与泄流等相互关系。概念模型需要富有经验的领域专家设计,一次设计可以长期使用。水工程联合调度计算方案生成形成的概念模型如图 1 所示,图中:矩形符号表示各类工程对象;连线表示工程对象之间的关系或属性;圆角矩形符号表示属性的数据类型,Float 表示浮点型,Array 表示数组。
图1 概念模型示例
概念模型是物理模型构建的依据和约束,也是知识推理及应用的依据。物理模型主要存储实际对象,对象的属性和关系的知识图谱数据库需要通过知识抽取和融合技术构建。知识抽取[7]和知识融合[8]是知识图谱在大样本环境下生成和更新知识图谱的重要手段,可以基于人工智能技术进行知识图谱的抽取,但是在水工程联合调度计算方案构建领域目前还没有足够的样本,因此本研究通过人工方法进行领域知识图谱的录入。知识抽取根据定义好的概念模型从前期准备数据源中进行知识抽取,包括属性、关系和实体抽取。大型的知识图谱需要通过计算机自动抽取,实体抽取的方法有基于规则、统计模型和深度学习的方法,关系抽取有基于模板、监督学习的方法。知识融合通过高层次的知识组织,使来自不同知识源的知识在同一框架规范下通过异构数据的整合、消歧、加工、推理验证、更新等步骤,达到数据、信息、方法的融合,形成高质量的知识图谱数据库。对于大型的知识图谱,需要有丰富的数据基础和相关的知识抽取算法,通过知识抽取算法自动构建知识图谱数据库也是十分必要的。对于小型的知识图谱,在数据条件有限的情况下,可以通过富有经验的专家手工构建知识图谱数据库。构建的支持安徽省淠河流域的水工程联合调度的物理知识图谱(部分)如图 2 所示,图中:矩形符号表示的磨子潭山水库、横排头断面等为对象;对象之间的连线为相互之间的关系,带箭头的连线表示流向关系;与对象相连的圆形符号表示对象的属性及属性值。
图2 淠河流域知识图谱(部分)示例
3)知识存储。知识存储主要研究知识图谱的存储方式,如文件或数据库形式的存储。构建完成的知识图谱物理模型需要采用合适的方式存储,知识图谱存储可以是 XML,JSON 或图数据库等形式。考虑到实际应用的高效、简便,一般以图数据库形式存储,常用的图数据库有 Neo4j,FlockDB,GraphDB 等,本研究选用 Neo4j 图数据库。Neo4j 是一种流行的、开源的图数据库,基于 Neo4j 的应用不用关心知识图谱表示、存储方法,可通过用户界面方便进行知识图谱存储、检索和推理应用。此外,知识图谱会随着时间的变化而发生变化,如相关水工程增加或改造,工程参数会发生变化,当实体、属性及关系发生变化时需要对知识图谱变化的部分进行更新。
知识图谱的应用是通过知识检索实现的,知识检索研究利用查询语言为用户提供查询知识图谱的接口,可以通过基于模板、语义分析和深度学习的方法进行知识检索,对于较为复杂的知识检索,则需要通过知识推理实现。知识推理是利用推理策略获取知识和求解问题的过程[9-10],是指在知识表示的基础上进行问题分析、解答的过程,即根据 1 个或一些已知条件得到结论的过程。知识推理是知识图谱技术中最为人工智能的技术,具体任务可分为以下 3 个方面:
1)概念可满足性。即检查某一概念的可满足性,检查是否具有模型,使得针对该概念的解释不是空集,如判断在淠河流域佛子岭水库上游是否有可控制水利工程,即存在水利工程既在佛子岭水库上游,又是可控制的水利工程,即可满足。
2)分类。即计算概念的包含关系,如判断白莲崖水库是否是可调度工程,则判断白莲崖水库是否属于水库、水闸、泵站的一类,因为水库、水闸、泵站都是可调度工程,白莲崖水库属于水库,所以白莲崖水库是可调度工程。
3)实例化。即计算属于某个概念或关系的所有实例的集合。以计算关系说明,在淠河流域,佛子岭水库在横排头水库的上游,而白莲崖和磨子潭水库在佛子岭水库的上游,所以白莲崖和磨子潭水库也在横排头水库的上游。
知识推理包括语义、间接推理,以及基于规则引擎、表示学习和图计算的推理等,其中语义和图计算推理较为常用:语义推理指的是依据词项之间的语义关系进行的推理,是不同于依赖特定语境的语义推理;基于图计算的推理是以图为基础建立模型解决知识推理问题的,即基于图之间关系的特征构建分类器进行知识推理。知识检索和推理是获取水工程联合调度方案生成所需信息的工具,本研究知识图谱存储在 Neo4j 图数据库中,其查询语言 Cypher 支持知识检索和推理,通过程序接口语言(如 Java)的调用可实现水工程联合调度方案生成所需信息的检索和推理,所以实际应用时用户无须关注具体知识推理的原理及实现方法。
传统水工程联合调度计算方案是通过人工方式组织工程对象之间的拓扑关系,以及设置各个对象的工程属性和调度规则制定的。制定计算方案的人员需要具备丰富的专业知识,且熟悉掌握流域情况。
基于专题知识图谱的水工程联合调度计算方案构建步骤如下:
1)根据专题知识图谱对相关工程对象和拓扑关系进行知识检索或推理,提取构建水工程联合调度方案所需的相关工程、工程属性和相互关系等信息,提取时从调度终止节点开始,根据水流流向关系递归推理出所有的相关节点(包括默认的计算模型),直至推理出所有的起始节点(或流域的产汇流区间),同时从专题知识图谱中提取各个节点的相关属性信息,得到构建水工程联合调度计算方案所需的节点和相关属性等信息。
2)依据水工程联合调度计算方案所需的数据格式和存储方式生成相应的方案存储,一般以 XML(可扩展标记语言)格式或数据库表形式存储,即存储水工程联合调度计算方案的节点、属性、算法模型、计算步长等信息。相对于传统的人工方法构建水工程联合调度方案,基于专题知识图谱构建水工程联合调度计算方案的方法更加高效、准确,也不需要每个计算方案构建人员非常熟悉方案构建区域的各类工程和水文特点。
基于专题知识图谱构建水工程联合调度计算方案的方法,也可以根据当前防洪形势的需要灵活多变地生成方案,如:用户关心佛子岭水库以上区间的水工程联合调度,可以要求系统构建佛子岭以上的水工程联合调度计算方案,此时系统会生成计算区域为佛子岭以上区间的计算方案;用户希望研究佛子岭水库的调蓄作用,可以要求系统构建不考虑佛子岭水库的淠河水工程联合调度方案,此时系统会生成不包括佛子岭水库的淠河调度计算方案,即佛子岭水库的位置设置为天然河道。通过指令实现计算方案的生成还涉及通过 NLP(自然语言处理)技术让系统理解用户的意图,这是另外一项专门的技术,不是本研究的内容。这里假定系统能够理解用户的意图,则系统可以根据用户的意图进行知识推理,获取所需信息构建计算方案。以构建横排头断面以上的水工程联合调度计算方案的要求为例,系统首先使用关系推理得到横排头断面以上所有调度相关的节点及节点间的相互关系,主要节点和关系如图 3 所示。
图3 横排头以上主要工程节点及关系
然后判断各个节点和关系的类型(即分类):对于水库类型的节点系统,从知识图谱中检索其属性值建立水库上游区间预报模型和相关参数,同时设置水库调洪演算所需模型及参数;对于河道类型的关系系统,设置河道演算模型和相关参数;对于河道断面类型的节点系统,设置其汇流区间的预报模型及参数。这些信息按照水工程联合调度计算方案的格式存储起来就形成所需的构建横排头以上的水工程联合调度计算方案,整个计算方案构建过程由系统通过知识图谱和相关的知识推理自动完成。对于水工程多、关系复杂的流域,以及根据实际业务需要动态构建复杂的计算方案等情况,通过该方法生成水工程联合调度方案更有应用价值。
基于专题知识图谱生成水工程联合调度计算方案还可以根据需要进一步优化,一方面可按照传统方法对水工程联合调度计算方案进行修改,如根据实际业务需要修改使用的算法模型,设置调度规则等;另一方面通过分析水工程联合调度方案的不足,进一步补充和完善专题知识图谱,如细化算法模型的应用规则,丰富专题知识图谱的内容等,进而重新根据新的专题知识图谱生成优化的水工程联合调度计算方案。
知识图谱如同人类大脑中存在的知识,表达自然界中万物的属性及之间的关系。不同于传统的信息,知识图谱具有可推理的能力,是人工智能的一部分,未来将有广阔且进一步加深的应用。基于知识图谱研究了水工程联合调度计算方案生成的应用技术,目前研究内容已在水工程联合调度系统中得到初步应用。同时,知识图谱还可以和对抗学习技术结合,模拟生成各种组合的洪水场景下相应的水工程联合调度计算方案,从大量的洪水场景下的模拟结果中筛选最优化调度方案,当实际洪水发生时能够快速匹配对应的洪水场景及最优化水工程联合调度计算方案,为防洪调度提供决策支持信息。另外,可利用知识图谱对历史洪水调度过程进行知识化存储,并利用数字孪生技术进行推演,得到最优化调度方案,给实际洪水调度提供借鉴。知识图谱除了在水工程联合调度领域的应用,在整个水利领域的应用技术也有待于进一步研究与探讨。