知识图谱已成 AI 下一风口,但你知道它进展到哪了吗?
知识图谱最初是由谷歌提出用来优化搜索引擎的技术,在不断发展中外延也一度扩大。盘点目前知识图谱的发展,其已经助力了很多热门的人工智能场景的应用,例如语音助手、聊天机器人、智能问答等。当前的人工智能其实可以简单划分为感知智能(主要集中在对于图片、视频以及语音的能力的探究)和认知智能(涉及知识推理、因果分析等),知识图谱就是认知智能领域中主要的技术之一。
从使用的范围来讲,知识图谱分为通用知识图谱和领域知识图谱。通用知识图谱主要应用于面向互联网的搜索、推荐、问答等业务场景。通用知识图谱强调的是广度,数据也多来自于互联网,很难形成完整的全局性的针对本体层的统一管理。而在越来越多的垂直领域中,知识图谱也被广泛应用,已经成为了基础数据服务,为上层智能应用提供基础设施支撑。本文重点探讨领域知识图谱的发展与挑战。
1. 构建领域大脑
知识图谱的构建是整个应用链条的第一步,也是至关重要的一步,图谱构建的质量直接决定了上层应用的效果。知识图谱可以将多源异构的数据汇聚到一起。
在一些行业中,领域知识图谱的构建比起通用知识图谱,会更加依赖于结构化数据去迅速构建出行业的显性网络。而在另外一些行业中,需要处理的数据几乎都是非结构化数据,构建高质量的知识图谱就面临着更大的技术挑战。
在知识图谱构建技术挑战中,领域内知识表示建模、实体识别与实体链接、关系事件抽取、隐性关系发现等技术都当前研究的热点。
针对领域特点增强知识表示能力
领域知识图谱往往汇聚多种领域内特有的数据,通用知识表示在特定的领域存在限制和不足。
举个例子,在很多领域时间和空间都是重要的计算维度,对实体时序和空间属性的建模缺失会限制上层应用的发挥。比如在安防领域,除了实体和关系两种对象的数据外,还有一大类轨迹数据,具有更强的时空特征和时效性,数据总量也更大。这类数据,虽然对实体的构建和关系构建都提供了信息,但其本身强时空特征,无法直接体现在实体 - 关系的拓扑结构或属性中。
另外,时间和空间作为最重要的维度,往往涉及大量的区间计算与聚合操作。因此,在安防知识图谱中,会设计第三类对象:事件(event),将实体对象的行为数据,即:具备“主体”-“客体”-“时间”-“地点”-“时间段”-“事件内容”等多方面信息的数据,构造成为事件对象。事件对象往往描述了一个现实世界中一个实体在一个时间点(段)或空间点(范围)发生的一个行为,其一个重要的特点就是数据的属性值不会发生改变, 这个特点可以使得系统在针对事件数据的存储和计算都可以进行优化。
批量结构化数据处理
行业知识图谱的核心实体、属性、关系和事件多来源于行业的内部的结构化数据。由于各种历史原因,这些系统中的数据通常存在数据质量差、数据标准不统一、元数据描述缺乏、数据字典不全、数据一致性不完备等问题。批量结构化数据知识图谱构建的挑战主要来自于如何做到工程化。越来越多的系统需要一整套完整的工程化的方案解决批式和流式的知识构建过程,通过数据探查、数据理解、数据清洗、数据标准化、数据映射、数据关联、数据融合等几个阶段的工作,完成从质量不一的原始结构化数据到最终知识图谱的过程。
实体识别与关系抽取
实体识别是利用非结构化数据构建知识图谱的关键步骤。实体识别后需要进行实体链接。实体链接是识别出实体与已有知识库中对应实体进行链接,以补充知识图谱的内容。
传统的基于规则统计和成熟算法的手段已经可以很好的处理部分实体的抽取问题,很多领域实体识别都采用多种方法混合的实体识别流水线。例如,在某个领域使用 CWS 负责识别人名、地名、组织机构名;用基于规则的开源组件负责对时间、温度、频次等通用实体,以及难度较大的领域实体进行识别以及标准化;使用 biLSTM/CRF 负责酒店、网吧等机构名进行语料学习训练,提升识别精度等。
除了传统的实体识别方法,目前也有越来越多的深度学习算法被用于解决实体识别问题。例如利用 CNN/LSTM 来学习词位置处的向量表示,用滑动窗口分类的思想,使用神经网络学习句子中的每个 ngram 的表示,预测目标实体。 深度学习方法训练是一个端到端的过程,无需人工定义相关的特征。如何先验知识融入深度学习方法提高识别准确率是当前的研究的热点之一。 在目前阶段使用深度学习出比较好的效果需要相对大量的训练数据,所以在处理实际问题的时候要根据实际数据情况进行判断。
实体识别与链接是知识图谱构建与知识应用的核心技术。在抽取实体的同时,我们往往也会在非结构化数据中抽取关系。关系抽取是一项更有挑战的任务。领域知识图谱往往会先解决预定义关系抽取,因为在不同的领域中会存在领域特有的关系,而预定义关系抽取的技术难度也会低于开放式关系抽取。
在实际工作中,我们往往针对不同类型的关系采用不同的方法进行抽取。比较常用的手段包括基于模式和专家规则方法、半监督和有监督的机器学习方法。
基于规则的方法召回率低,实施成本高。基于机器学习的关系抽取方法占据了主导地位。但半监督的关系 抽取得到的知识缺乏语义信息,而有监督关系抽取中需要大量人工标注的高质量数据作为训练数据,人工成不很高当前前,绝大部分的关系抽取研究还集中在预定义的关系抽取上。
另外,关系抽取根据行业数据的特点还会遇到一些难点,比如往往我们需要处理指代消解,这是因为由于用户关心的实体和实体间语义关系往往散布于文本的不同位置,其中涉及到的实体通常可以有多种不同的表达方式。在特定的领域中,尝试使用传统的分类思想和聚类相似度方法可以得到可用的结果,而越来越多的研究将深度强化学习引入解决指代消解问题,提高关系抽取的效率。
解决领域训练数据少
在实体识别和关系识别的过程中都会使用到有监督的机器学习算法,而很多训练模型所必须的海量数据在很多领域中都是难以获取的,是解决实际问题面临的挑战之一。迁移学习被认为是解决少训练数据问题的方法之一,但从其成熟度和在实际应用中遇到的限制来讲,越来越多的解决方案开始关注如何高效地标注行业数据来解决训练数据的问题,来降低实施成本和提高应用能力。
a 高效地标注行业数据
在实际应用中,尤其是企业服务中,领域问题使用的文本在用词和语言习惯都与公开文本数据有着较大的差异。在迁移学习等技术没有成熟的当今,通过对现有数据进行标注效果要好于调整算法。标注后的数据可以生成大量的数据集,这些数据集密切关系着训练出来的 NLP 模型的优劣,模型的质量则关乎文本挖掘和自然语言处理的质量。目前为止,数据标注依旧是一个需要花费大量人力和物力的工作。所以高效的标注工作可以很好地加速知识构建,还可以在极大地节省人力物力。
提升标注效率可以采用使用词典、使用深度学习模型和使用主动学习技术等方法实现。一般来讲,成熟的标注工具都会提供丰富的词典来帮助用户进行自动标注。深度学习模型也是标注工具中常用的技术,深度学习模型除了帮助用户标注以外,还可以帮助用户快速建立某领域模型,帮助用户解决领域文本挖掘问题。
另外,引入了主动学习技术。主动学习技术其实就是把采用一种学习算法来计算出哪些数据更具有价值,率先让标注人去进行标注,然后,再将这些数据加入到训练样本集中对算法进行训练。引入主动学习技术后可以更广泛地发现标注价值更大的数据,花费同样时间的情况下,采用主动学习技术的用户标注的数据价值更高。
标注工作是处理领域中非结构化数据的基础工作,也是最耗费人力和时间的工作,笔者所在的公司也针对这块工作开发了面向领域的高效标注工具 Raptor。
b 尝试使用迁移学习
面对缺少训练数据,越来越多的工作尝试使用迁移学习的办法缓解训练数据的缺少。迁移学习的思路在预训练模型中找到能够输出可复用特征的层次,然后利用该层次的输出作为输入特征来训练那些需要参数较少的规模更小的网络。当前迁移学习已经逐渐成为了资源不足时使用的人工智能首选技术,也在慢慢尝试应用在针对特定领域特定数据集的知识图谱构建中。在实际使用中,迁移学习往往会引入噪声和需要大量专业的参数调试过程,这都给实际应用带来了挑战。
构建隐性关系
在构建领域知识图谱的过程中,可以将关系分为显性关系和隐性关系。显性关系是指通过原始数据直接可以抽取出的关系,隐性关系是指需要通过复杂计算和数据挖掘计算出来的动态关系。在很多领域中,隐性关系的构建很大程度上决定了整个图谱对智能应用支撑的好坏,对提升图谱的分析、推理和挖掘效率起到关键作用。隐性关系可以有很多种,构建方法针对行业数据的特点有所不同,但多会涉及到使用行业规则,关系挖掘算法、图计算等技术手段。
在一些领域知识图谱构建的过程中,隐性关系的构建是最为至关重要的一步。如果把知识库比做大脑,那隐性关系构建就像是大脑在通过思考不断学到新的知识的过程。在设计知识图谱整体系统架构时,可以将构建隐性关系的过程服务化,提升最终知识图谱的质量。
2. 大规模领域知识图谱的存储与计算
基于图数据的混合存储
大规模领域知识图谱的存储方案一般都会使用到图数据库。图数据库天然适合存储知识图谱中的实体和实体间的关系。然而在大部分领域中,图存储并不等于知识图谱存储。绝大多数领域不光有实体关系数据,如时空轨迹、标签、推理规则等也是领域内重要的知识数据。近来领域知识图谱的存储多采用混合存储模型,将知识库中的元素针对各自的特点使用多种数据结构存储,并保证数据的最终一致性。下面这张图是当前图数据库的使用排名,单从数据库的角度出发,也可以看到越来越多支持图数据存储的数据库都已经支持多类数据模型。
来源:https://db-engines.com/en/ranking/graph+dbms
在一些领域的知识存储中,很容易碰到超级节点和关系爆炸的问题。在数据推演过程中碰到超级节点或者超级边如何保证系统性能一直是一个挑战。笔者在之前的分享中介绍过知识图谱数据库 NEST 如何优化超级节点和关系爆炸的问题,这里就不再赘述。
程序性知识的存储
目前基于通用知识图谱的推理技术已经取得了很多进展,推理技术可以分为基于符号的推理和基于统计的推理。基于符号的技术指的是通过规则和经典逻辑,而基于统计的技术指的是应用机器学习算法。但当我们把这些技术放到领域中,大部分推理技术离实际应用往往还有一段距离。如果我们把知识推理的范畴放大一些,我们可以从程序性知识的角度去看如何更好的进行领域内的知识推理。
我们常常将领域知识图谱比作领域的大脑,大脑是具有思维和学习能力的。领域知识图谱中的数据可以分为陈述性知识和程序性知识,陈述性知识就像大脑中的记忆,而程序性知识则是大脑中的思维。程序性知识可以是领域专家的行业经验的程序化,也可以是一条行业规则或是一段行业逻辑,甚至是一个组合起来的复杂模型。如何以一种统一的形式存储程序性知识,将人类的思维路径转化为机器的路径,也是当前业界常讨论的一个热点问题。
不断产生新知识数据
目前智能应用的需求越来越丰富,领域知识图谱为了支撑上层应用也需要更加智能,汇总更多的知识数据。知识图谱与数据挖掘的关系往往是相辅相成的。知识图谱不仅汇总经过治理的知识数据,还应该将产生的知识进一步应用到机器学习算法中,不断产生新的知识反哺知识库,就像大脑在不断学习的过程一样。下图展示了通过知识增强机器学习的过程来不断丰富知识图谱的内容,最终使应用更加智能。
3. 知识图谱交互的进展
在领域知识图谱中获取知识除了使用查询语言,越来越多的研究也放在使用自然语言作为交互的入口,也就是实现基于领域知识图谱的问答。智能问答涉及的自然语言处理技术较多,需要做自然语言理解和意图识别等工作。
下面简单介绍明略开发的交互入口 LiteMind 小明中自然语言理解的工作。自然语言理解功能主要负责将非结构化的自然语言转化为结构化的意图语义表示。
首先,小明接受用户输入的自然语言,通过 NER 组件、duckling 规则模型、领域词典、biLSTM/CRF 等模型识别通用实体及领域实体,并完成实体标准化。
其次,通过内置的深度学习模型,对实体进行向量化表示、将句子转化为时序向量,输入 LSTM 层自动提取语言特征,特征通过全连接网络层进行意图分类。用户仅需提供特定业务领域的语料数据,启动在线训练,即可得到一个该领域的深度学习模型。通过该深度学习模型,可计算出自然语言对应的每个意图的概率,并将实体填入意图的标准化空槽(即检索条件),从而完成基于自然语言理解的意图操作。
4. 落地领域知识图谱应用
领域知识图谱的应用目前集中在搜索、推荐、问答、解释和辅助决策等方面。也有越来越多的企业将知识图谱作为云平台或数据中台的基础数据服务提供给上层应用消费。
高效的落地领域知识图谱应用是一个工程性很强的工作,它不光要有效的解决上述技术上的难点,而且要有一套完整的方法论和落地流程。下面是我们在近几年落地行业知识图谱过程中总结的一套工程化流程。
打通感知和认知
领域知识图谱是认知智能的基础,但人工智能在行业真正落地发挥威力,往往是打通感知和认知的结果,通过完整的人工智能能力为行业提供整合服务。感知计算本质上是为认知计算提供数据基础。目前行业中感知计算对各类结构化数据、非结构化数据、文本、图像、视频等多维数据的处理过程,处理的结果形成“符号”进入知识图谱。优秀行业智能解决方案需要链接行业中业已成熟的感知技术、认知技术以及其它所有组件。
5. 总结
知识图谱是最接近真实世界的数据组织结构,符合人的思维模式,可以为人工智能应用提供基础环境。领域知识图谱目前在很多行业中已经发挥越来越重要的作用,技术上的挑战也有不断的进展,希望有更多的领域知识图谱落地,帮助推动行业应用的智能化。
作者介绍孟嘉,明略数据技术合伙人。2014 年底加入明略数据,带领团队研发了知识图谱数据库 NEST,人工智能问答入口 LiteMind 和基于知识图谱的分析平台 SCOPA,任知识图谱产品线技术负责人,技术中心总架构师。