【大数据专栏】胡芳槐:行业知识图谱在图书馆的应用
【这是“大数据专栏”的推送文章,本专栏由中关村大数据产业联盟与科技杂谈合作提供】
文 / 胡芳槐,本文为胡芳槐在中关村大数据产业联盟“大数据100分”论坛上的交流探讨实录
主讲嘉宾:胡芳槐
主持人:王昊奋
承办:中关村大数据产业联盟
嘉宾介绍:
胡芳槐,博士,上海海翼知信息科技有限公司总裁、创始人。在知识图谱和本体学习方向拥有5年以上的研究和产业化经验,曾作为主要人员参于了多个相关方向的国家项目和上海市政府项目,并于国际知名会议和期刊上发表多篇相关论文。
2012年,以行业知识图谱的构建、存储与语义检索套件为核心产品于上海云基地创办了上海海翼知信息科技有限公司;目前,公司的产品已经成功被图书馆、证券和交通行业的知名用户采用,客户范围包括上海、北京、浙江、江苏和湖北等地。
以下为分享实景全文:
很高兴今天晚上有机会和大家分享一下我们在行业知识图谱方面的相关研究成果。抛砖引玉,请大家多多指教。
今天我的报告分为以下几个部分:
1.说明行业知识图谱软件和服务的核心功能;
2.介绍行业知识图谱的定义、用途和优势;
3.详细说明行业知识图谱的引入原因、构建过程、存储方案和使用方式;
4.举例说明行业知识图谱软件在图书馆行业的应用。
行业知识图谱软件与服务的核心功能是提供面向海量行业数据的语义表示、结构化处理与精准检索解决方案和服务。
具体而言包括:
a.引入行业知识图谱对海量行业数据进行整理、组织与加工;
b.提供行业知识图谱的快速构建和存储方案;
c.提供SPARQL、Web服务以及自然语言形式的知识语义查询方式,提供多种视图的知识图谱浏览;
d.以云端服务形式把知识图谱构建、存储与语义查询提供给用户。
首先一起来看一下知识图谱(KnowledgeGraph)。
知识图谱最先由Google引入,用于改善其搜索引擎的结果,为用户提供有完整知识体系的搜索结果。随后,国内的搜狗、百度等搜索引擎公司也推出了自己的知识图谱。来看一下引入知识图谱后的Google搜索结果:
用户搜索“刘德华”,不仅列出了相关的网页检索结果,还在右侧以知识卡片(KnowledgeCard)的形式列出了刘德华的相关信息,包括:出生年月、出生地点、身高、专辑、子女、所获奖项、参拍的电影等,同时还列出了相关的人物“梁朝伟”、“周润发”等。用户接下来可以在知识卡片的引导下进行搜索。
这就是知识图谱给搜索引擎带来的最明显的变化。
类似Google的知识图谱可称为通用知识图谱,它强调的是广度,因此它的构建强调更多的是实体,通常以自底向上的方式来构建,很难生成全局性的概念层的统一建模和管理。
而我们的侧重点则是行业知识图谱(即面向行业或领域的知识图谱),行业知识图谱的描述对象是某个具体的行业(例如图书馆、证券等),其目标在于有效地表示行业之中概念、实体及其属性和关联关系,更加强调行业知识的深度。
与通用知识图谱相比,行业知识图谱有如下特点:
a.对准确度要求很高,通常用于做各种复杂的分析应用或决策支持;
b.严格与丰富的数据模式,行业知识图谱中的实体通常属比较多且具有行业意义;
c.构建方式不同,通用知识图谱以实例为先,而行业知识图谱构建以概念为先;行业知识图谱本身因为要求精度高,而且领域知识相对固定,因此通常是从领域本体出发,而数据的填充也以结构化数据库中的数据为起点。
d.构建的数据源不同,行业知识图谱通常以结构化的关系数据库中的信息为起点,进而扩展到非结构化数据;
e.目标对象要考虑各种级别的人员,不同人员对应的操作和业务场景不同:通用知识图谱主要面向普通用户,查询通常以OLTP(如实体搜索)为主;而行业知识图谱上的应用则还会考虑面向行业分析的,所以有一部分OLAP查询的需求。
那么,为什么要引入行业知识图谱呢?
首先,随着互联网的发展,互联网中的行业数据已经成为行业数据中不可缺少的一部分,行业决策支持和复杂分析不仅依赖于内部数据(关系数据库中的数据),也很大程度地依赖于外部数据(互联网中的数据)。互联网中的数据通常是半结构化或非结构化的数据,使用传统的关系数据库已经难以满足存储的要求。而图数据库由于其图形结构的特点,既能存储初始存放于关系数据库中的数据,同时也能有效的整合互联网中的半结构化数据和非结构化数据;因此,行业数据本身已成为典型的图数据库应用。
其次,相对于传统的关系数据库,知识图谱的另一明显优势在于其对数据的变更,尤其是对模式(Schema)层的变更,可以更好地容忍。在使用传统的关系数据库存储数据时,必须首先定义数据的模式(即数据表的结构),模式定义好后便难以变更;而知识图谱借助于图数据结构的模式无关(schemaless)的特性,在数据的扩展过程中,可以依据要求灵活地更改数据的模式。这一优势在对相对专业的行业数据组织中尤其重要,因为在初期阶段很难完全确定数据的模式。
知识图谱的模式无关特性,也为行业知识图谱在不同的行业间的扩展提供了可能,依据不同行业的行业特性和数据特点,可形成不同的数据模式;用户也可以自行定义需要的数据模式。
总体而言,使用行业知识图谱一方面帮助用户整合利用各类数据,另一方面也可以满足用户随时对数据模式的更改要求。
如何把现在现有的结构化数据和非结构化数据整合成行业知识图谱形式的知识呢?
传统的领域知识库的构建,为保证质量,基本依赖于领域专家的编辑,因此需要耗费大量的人工工作。
而Google式的通用知识图谱则是基于用户生成内容(UGC),由它们是通用的,所以通常不针对任何领域优化,在领域细节的覆盖和准确性方面不太能兼顾。对于行业知识图谱构建所需要的内部数据库数据,对于搜索Google来说是deepweb的,很难爬取。另一方面,行业图谱会有面向OLAP查询的需求,所以需要更加深入。因此,根据前面的分析,Google等要兼顾领域细节的覆盖和准确性,势必需要加入更多人力来处理特定领域。
我们提供了一套完整的行业知识图谱构建方案,通过对结构化数据、LOD(开放链接数据)、UGC(User-GeneratedContent,用户生成内容)和非结构化文本等各种层次的数据进行映射、转换、抽取、学习和挖掘,最后经过少量的专家校验与修正,快速形成行业知识图谱。
主要过程如下:
1)现有结构化数据的导入和映射:大部分行业经过应用中的积累,都具备相当数据的结构化数据,这些数据通常准确性可以保证;因此,经过映射,可以形成行业知识图谱的雏形。
2)外部知识库的整合:很多行业均已有开放的知识库在互联网中以开放链接数据(LOD)的形式公开发布,通过对这些知识库的整合,可进一步丰富行业知识图谱。
3)百科、专业网站等格式相对良好数据源的知识抽取:Web2.0时代,互联网中的UGC(User-GeneratedContent,用户生成内容)越来越多,这些内容中通常包含格式相对良好的知识,因此,通过基于规则的方法,可以从中抽取数量较大的知识。
4)自监督学习:通过使用已经构建的知识以及利用一些通用的规则,自动生成机器学习需要的训练语料,然后利用这些训练语料训练模型,最后把训练的模型运用到更大规模的语料上,从中学习到更多的知识。
5)协作编辑:用户可对以上导入、映射、整合、抽取及学习的结果进行审核和修正,形成高度可靠的行业知识图谱。
6)经过人工的校验和编辑后,把修正后的新的结果再次生成训练语料,形成迭代学习机制。
接下来讲述行业知识图谱的存储。
行业知识图谱必须储存于合理的存储媒介中以提供高效的查询。在行业知识图谱中,概念、实例等之间的关联关系非常复杂,从数据结构的角度观察,知识图谱中的所有结点为一张图。因此,在存储结构的设计上,需要兼顾各类查询与修改操作的速度。
本软件中使用了多种类型的存储媒介:
a.关系数据库:存储相对固定的数据,例如概念和实体的基本信息,包括名称、别称、介绍等;
b.图数据库:存储跳跃式的数据,例如关联关系;
c.内存数据库:存储查询频繁的数据,如概念和实体的名称;
d.文件索引系统:存储需要进行全文检索的数据。
知识图谱构建完成后,就可以为各种不同的用户服务了。为满足各类不同用户的使用需求,将以多种方式以云服务(知识图谱即服务)的模式提供给最终用户。
具体而言,提供以下几类类接口:
a.SPARQL查询接口:适用于学术性的研究和使用,保持与其它知识图谱(知识库)的使用一致性;
b.RESTfulWeb服务接口:提供给行业用户企业内部进行数据分析的部门使用,以及提供给第三方客户和系统使用;
c.自然语言检索接口:提供给普通用户使用,用户以自然语言形式进行查询。
d.提供多种视图的知识图谱浏览,有效地引导用户学习和理解行业。
基于自然语言形式的检索接口是本软件在语义检索方面的最大优势,极大程度地降低了知识的使用门槛,同时保证搜索结果的准确性:针对用户输入的自然语言文本,系统结合行业知识图谱,自动识别用户输入中包含的概念、实体、属性和属性值等图谱元素,理解用户的真实查询意图,直接返回给用户准确的查询结果。这一点在后面图书馆行业的鱼类知识图谱中会举例说明。
本行业知识图谱软件已经成功应用于图书馆行业、证券行业和医疗行业的多家知名用户。接下来以图书馆行业为例,详细说明行业知识图谱的应用。
对于图书馆来说,一方面可以结合知识图谱帮助他们更合理有效地组织现有的各种资源,同时利用LinkedData相关技术,把互联网中不同来源的资源关联起来,形成细粒度的“知联网”;另一方面,行业知识图谱软件提供的数据整理加工能力服务,能够帮助他们从现有的资源中,结合自己资源的特色,形成具备地方、主题特色的知识图谱。在构建好自己的知识图谱后,图书馆便可以作为知识服务提供商,自己为用户服务了。
接下来以某海洋数字图书馆为例,说明如何为其构建具备其地方特色和海洋专业特色的知识图谱。
首先是行业知识图谱的范围选取。该图书馆所在地以海洋文化著称,是中国最大的海水产品生产、加工和销售基地,拥有全国最大的渔场,素有“东海鱼仓”和“中国渔都”之称。因此,他们选择构建的是以鱼类为核心的海洋知识图谱。
在海洋知识图谱的构建过程中,首先是结构化数据的映射。在此过程中,用户通过软件提供的交互式操作平台,非常方便地把原有的三百多种分布于中国的常见鱼类相关数据映射到知识图谱中。
其次是开放的本体库的整合,先要寻找与选取相应的开放本体库。这一过程是半自动的,首先通过搜索引擎、维基百科和其它百科中,找到开放知识库的候选;然后由人工确认可用的知识库。
接下来是从各种百科和专业网站中抽取知识以丰富知识图谱,这一过程是自动的。对于百科,系统自动从百科的各类结构中自动抽取知识,这些结构包括信息模块(InfoBox)、分类系统(Taxonomy)、类别标签(CategoryLabel)和摘要(Abstract)等。这一过程主要丰富了知识图谱中实体的同义信息(某种鱼的不同称呼)和属性信息(例如天敌、营养元素、相关美食等)。
然后是从各种非结构化的文本中抽取与学习知识,所使用的方法主要为机器学习。在通常的机器学习中,需要人工构建训练语料,这一工作需要耗费大量的人力成本。我们使用的是一种被称为“自监督学习”的方法,通过已经存在的知识和少量的通用规则自动生成学习语料。这种方法在学术界被称为开放本体学习(OpenOntologyLearning)。一方面节省了构建语料的成本,另一方面还能够学习得到实体的新属性。
最后一步是人工协作校验与编辑,对于上述过程得到的知识结果,为保证知识的准确性,软件提供了人工协作校验与编辑接口。校验与编辑的人员,包括图书馆的工作人员、领域专家,以及一些乐于奉献知识的志愿者。
海洋知识图谱构建完成后,接下来图书馆就可以把知识图谱给用户提供服务了。所提供的服务分为两个方面:一是把海洋知识图谱本身使用多种视图展示给用户,引导用户学习与理解海洋、鱼类知识,以及查阅相关的文献;二是基于知识图谱提供各种知识访问接口。
先来看知识图谱本身的展示。本软件提供了三种视图的展示方面:树状视图、网状视图和详情视图。树状视图可以查看知识图谱的层次结构,即概念之间的上下位关系。
网状视图浏览知识图谱,查看和一个特定实体相关的所有实体与关系;
详细视图浏览具体的实体,查看其详细信息。
在接口方面,提供了前面所述的SPARQL查询接口、RESTfulWeb服务接口和自然语言检索接口。SPARQL查询接口主要面向研究人员,保持和国际通用标准的一致性;而RESTfulWeb服务接口主要为图书馆的统一信息检索和信息推荐提供语义分析支持。
下面重点来看一下基于自然语言的检索接口。对于图书馆的普通用户而言,他们更需要的是一种知识检索而不是基于关键词的检索;例如,对于普通用户来说,关于鱼类,他们最关心的是这种鱼能不能吃,有哪些做法,在哪些地方吃是最新鲜的(鱼的原产地);这些都是基于关键词的检索所难以直接完成的。同时,对于一些高级用户,自然语言查询接口还可以辅助他们完成分析任务。
基于海洋知识图谱,可以完成以下检索:
“小黄鱼美食”:系统自动识别“小黄鱼”是一种鱼,而“相关美食”则是鱼类的一个属性,因此本查询的真实目标是查询小黄鱼相关的美食或菜谱,因此,自动返回“酥炸小黄鱼”、“拌炸酥鱼”和“香糟小黄鱼”等与小黄鱼相关的美食。
“东海可以吃的鱼”:系统自动识别查询的目标是“鱼”;“东海”为一地域名称,对于鱼类的“分布区域”属性、而“可以吃”则对应鱼类的“是否有毒”属性,因此系统最终理解用户的查询意图为:“分布于东海而且没有毒性的鱼有哪些”。
最后简单总结一下。今天和大家分享了行业知识图谱的定义、用途和优势,说明了行业知识图谱的引入原因、构建过程、存储方案和使用方式;最后,以图书馆行业为例详细说明行业知识图谱的应用。
交流互动
金耀星:
@胡芳槐上海海翼知信息科技有限公司CEO:谢谢分享!请问企业(或组织)的知识图谱你们是怎么做的?与行业知识图谱有何区别?谢谢!
胡芳槐:
@BrightStar,您好,我们并没有针对所有企业做知识图谱,我们针对一些行业的企业做了,如证券行业。
赖兆红:
@胡芳槐你们有用开源代码project吗?
胡芳槐:
谢谢@回到北京-BrianLai,对于证券行业关注的企业,我们的方法基本与前面所述是一致的。对于这些企业,有更多的内部结构可用。有更多的内部结构化数据可用。
胡芳槐:
@回到北京-BrianLai,开源的project有用,比如说图数据库,我们用了Neo4j。
陈利人:
除了投入大量人力来构建,现阶段有哪些自动算法?他们的效果如何?
胡芳槐:
@陈利人,您好,我们整个过程大部分都是自动的,不同步骤也有相应的算法,如LOD的查找、文本中知识的自动学习;有一些过程需要经过人工交互,如关系数据库的映射。
王昊奋:
我也来问一个问题:行业知识的更新不可避免,针对这一点,你是怎么考虑的,特别是在行业知识图谱构建过程中,有哪些机制,算法,以及解决方案来提供增量式的构建的?
胡芳槐:
@王昊奋,您这个问题非常好,在知识图谱构建中大家都会考虑。
王昊奋:
这里会涉及到schema层知识获取和entity层知识获取,并基于获取的知识进行各种整合,schema包括各种alignment,而entity层主要是entityresolution。
胡芳槐:
@王昊奋,我们把更新分为几个层次,Schema层次的更新和数据层面的更新。
王昊奋:
根据获取知识的数据源(RDB,opendata,encyclopediadata,text等)有不同的自动化方法。对于RDB主要是datatransformation/mapping,有D2R等工具可用。encyclopediadata的获取有各种wrapper-basedextraction。
胡芳槐:
@王昊奋,对于Schema层面的更新,通常是增加了数据源或语料后,有新的属性学到,这时,自动把新的属性添加到知识图谱中。
王昊奋:
而与opendata可以通用datafusion(特别是pay-as-you-go的方式来整合),并辅助人们的交互(activelearning)来形成scehma-level的knowledge。text等unstructureddata主要用来抽取entity,通过entitylinking来关联entity,通过Namedentityrecognition来获取newentity或entityunseenalias。通过relationextraction来获取关系,通过CRF-based方法来获取实体属性值。
胡芳槐:
@王昊奋,对于数据层面的更新,又分为原有属性空值的补充以及对属性值的更新。对于前者,自动添加即可;对于后者,可能会造成数据的冲突,此时会报告冲突,需要部分人工干预。
王昊奋:
另外可以通过openinformationextraction得到的newproperty/attribute,进一步进行aggregation(e.g.,clustering)增加newschema-levelknowledgeoraxioms(subsumptions,equal,relate)等。当然这是我的理解,胡博士应该也是采用了类似甚至更全面的做法来支持自动化知识图谱构建的。
胡芳槐:
@王昊奋对@陈利人的回答,非常值得我们借鉴,谢谢。
阮彤:
现在图数据库哪些好用一点。
胡芳槐:
@阮彤,图数据库用的最广泛的,应该还是Neo4j。其它的,像GraphDB和AllegroGraph,用户也挺多的。
王昊奋:
Neo4j只能说宣传的最好。在大规模数据压力下,性能下降比较严重。
刘睿民;
其实图的问题用矩阵解决最好了,不知道都要去用图数据库
王昊奋:
之前搜立方针对复杂自然语言查询的回答也是转换为SPARQL,利用Neo4j来给出答案。当然我们在处理行业图谱时,数据量肯定达不到通用知识图谱的规模,所以应该还不是最大的问题,但是也可以理解之前胡博士提到的混合管理解决方案。
@DowsonLiu(刘睿民),你可以用邻接矩阵来表示图。大家用图数据库主要针对比较复杂的图查询SPARQL(本质是子图匹配)。另外,作为数据库,不仅仅是查,还有insert,delete,update等需求。而reasoning也是目前图数据库相比RDB的additionalfeature。
刘睿民;
@阮彤数学上来说就是这样的,所有图都可以以稀疏矩阵来表达。而且图及其耗费资源,而矩阵的压缩率则会很高。
阮彤:
那胡博士为啥要多种存储方式呢?@胡芳槐
胡芳槐:
主要还是满足不同的查询的要求,不同的数据库有不同的适合场景。
黄明峰:
@胡芳槐,医疗行业用语相对准确和规范,在医疗行业应用最大的难点是什么?
如果医疗行业的知识图谱构建得合理,而且可以适度开放的话,是不是可以认为健康产业得到很好的支撑?
胡芳槐:
@黔中老黄,医疗行业因为精准性要求非常高,构建schema-levelknowledge就很困难。
而且但是医疗行业知识粒度很细,所以需要调动用户的积极性(这里用户是医生等)作为领域专家,协助生成知识。在进行自动构建时,由于病历的撰写很不规范,如何结构也有一定难度。
【入中关村大数据产业联盟500人微信群指南】
您只需在中关村大数据产业联盟500人微信群中分享一次大数据思想、案例,即可进入500人微信群,与众多大数据朋友沟通、交流、合作!(入联盟500人微信群,请把代表您能力和水平的PPT及姓名、单位、职务、联系方式发chenxinhe2020@126.com。详情请订阅微信公众号:软件定义世界(SDX)后,查询500)
【中关村大数据产业联盟主旨与目标】
落实国家战略,聚合产业势能,促进商学互动,
助力企业成长,倡导数据伦理,探寻数字文明
【中关村大数据产业联盟活动】
〖大数据100分〗以500人圈大数据技术、资本、专家和政策专业人士为依托,每晚9点进行的线上活动。
〖大数据地平线〗以大数据执委会和中关村大数据产业联盟成员为依托,进行的走入企业现场调研活动。
〖大数据香山汇〗以“运动、分享、进步”为宗旨的爬山、PPT分享、研讨活动。
〖大数据沙龙〗以“数据驱动,创新未来”为主题的高端大数据沙龙活动。
【中关村大数据产业联盟联盟网站】
http://www.zgc-bigdata.org/
【大数据媒体方阵】
〖软件定义世界(SDX)〗、〖大数据文摘〗、〖大数据栋察〗、〖科技杂谈〗、〖CSDN〗、〖天云融创〗、〖大数据邦〗、〖199IT〗、〖大数据实验室〗、〖云里数里〗、〖中云网〗、〖云华时代〗、〖大数据问答〗等,目前已覆盖20多万订阅用户。
欢迎加入大数据媒体方阵,第一时间获得〖大数据100分〗等中关村大数据产业联盟提供的独家信息,请在公众号留言或加入个人微信号沟通。
【联系方式】
地址:北京市海淀区东北旺西路8号中关村软件园软件广场C座3层
电话:010-56380808
电子邮件:sdxtime@gmail.com
个人微信号:sdxtime
欢迎大家加入科技杂谈菁英汇,交流思想、分享信息。仅限行业商端人士参与。参与方式:点击左下方“阅读原文”填写您的加入信息,科技杂谈通过审核后,会添加入群。
本文仅代表作者观点,科技杂谈授权刊登。
转载必须注明作者与科技杂谈,侵权必究。
科技杂谈文章,均同步发布于犀牛财经网。
已入驻搜狐新闻客户端,网易阅读客户端。