4.2.2 知识抽取框架
在开放域的知识图谱研究工作中,研究人员通常会基于FewRel、NYT-FB、OIE2016等知识抽取数据集,进行知识抽取的算法研究工作,并以预测的召回率、准确率和F1值等作为评估指标进行模型迭代。学术界面向开放域的知识抽取需求,开发了OpenIE、DeepDive等知识抽取工具。
然而,服务于企业业务需求的知识抽取任务,不仅数据源复杂多样,对抽取的质量、时效性也有相当高的要求。那么,应如何建设企业级的知识抽取框架,并集成、融入业务知识图谱构建流水线呢?
在知识抽取系统的整体架构方面,回顾如图4-3所示的知识图谱构建系统的整体架构,知识抽取包括非结构化及结构化的知识抽取任务。其中,非结构化的知识抽取任务主要分为文本分类、语音识别、图像识别等任务。因此,为了支持上述人工智能模型的模型训练、模型调优、模型预测服务的需求,需要开发数据统一接入、资源统一把控、任务统一管理的机器学习、深度学习平台。图4-4展示了非结构化知识抽取的系统架构。非结构化知识抽取需要完成文本标注、模型训练、模型测试、反馈优化等流程,而这些流程需要由具有数据管理、算法框架管理、服务集群管理、服务部署管理、DevOps等能力的机器学习与深度学习训练服务平台支持。
图4-4
在非结构化知识抽取的数据管理方面,需要建设数据中心及数据处理模块。其中数据中心主要用于存储模型所需的训练数据,包括领域开放数据、行业数据及企业的第一方数据。非结构化知识抽取的数据中心模块,需要与企业的数据仓库、数据中台、文件系统、业务系统结合,共同建立数据读写能力,统一管理、训练及测试所需的数据。非结构化知识抽取的数据处理模块,需要建设数据预处理能力及可视化的样本标注工具。4.2.1节所述的需求概念域、事理知识域、实体状态域的不同数据来源,需要通过数据预处理模块统一接入数据中心管理。
样本标注工具的建设,是非结构化知识抽取的数据管理模块中极为重要又极具挑战性的部分。在知识抽取的文本标注阶段,需要根据知识抽取任务对文档的实体、属性、关系进行样本标注。文本标注的质量高低将直接影响知识抽取效果的好坏。在企业级知识图谱项目实践中,样本标注的问题广泛出现在知识图谱项目启动、开发、更新、维护等各阶段中。目前,新闻资讯、影音娱乐等开放域知识图谱的样本标注难度较低,质量较高;而医疗、金融、工业、法律等垂直域知识图谱的样本标注不仅难度高,而且质量难以保证。因此,垂直域的样本标注需要大量的领域资深专家参与,这将不可避免地带来更大的成本问题。这既是组织管理面临的挑战,也是技术面临的挑战。那么应如何应对该挑战呢?
从技术的角度,样本缺失是一个典型的Few-shot learning问题,而引入大量的外部知识或者预训练模型就是典型的解决方案。比如在关系抽取任务中通常会采用远程监督的方法,即运用已有的知识图谱三元组对语句做假设性标注。通过远程监督方法可以大大增加知识标注的数量,但会面临数据噪声、数据长尾等问题:在数据噪声方面,远程监督通常会采用开发人员主观性的规则、已有的知识来标注数据,因此噪声非常大;在数据长尾方面,通常能够自动获取的样本呈幂律分布,因此大量长尾实体难以通过远程监督的方法来获取。针对数据噪声和数据长尾问题,有研究人员尝试为远程监督引入注意力模型及对抗模型,并且取得了不错的效果。
整体来讲,知识抽取的样本标注工具需要通过可视化、产品化的方式提高标注人员的工作效率,并可以引入大量外部知识、预训练模型,从技术方面提高样本标注的效率。
在非结构化知识抽取的算法框架方面,需要建设NLP基础引擎、模型中心、NLP任务流水线、模型自动调参等模块。
• 在NLP基础引擎与模型中心模块中,企业业务所需的非结构化知识通常是业务概念及业务事理知识,比如业务需求概念关联、业务流程逻辑、工作操作规则及经验类的知识。这些非结构化知识通常来源于企业需求文档、办公文档和专业书籍。因此,非结构化知识抽取的算法框架应支持机器阅读与理解、实体抽取、关系抽取、属性抽取和概念抽取等相关自然语言处理任务。word2vec、Bert、GPT等预训练模型已在多个自然语言任务中被证明可提高模型的效果,因此,非结构化的知识抽取算法框架需要在NLP基础引擎、模型中心中建设预训练模型训练及行业预训练模型微调的能力。
• 在NLP任务流水线模块中,需要将不同的非结构化知识抽取任务的样本数据管理、训练数据管理、模型训练、模型测试、模型上线、模型服务流程聚合为知识抽取流水线。如前所述,企业的数据生产任务不得不在面临数据上报异常、生产任务拥堵、数据异常等挑战环境中,输出质量高、时效性强的知识。因此,NLP任务流水线模块需要与底层的大数据平台、机器学习平台进行深度融合,建设参数配置、任务重跑、质量校验、数据回滚等产品功能,提供稳定、可靠的知识抽取服务能力。
• 在模型自动调参模块中,需要建设基于离线训练、实时线上业务数据效果的模型反馈优化能力。业内通常采取样本迭代、超参数搜索、模型重跑等方式,对机器学习、深度学习模型进行持续迭代,以保证知识抽取服务算法的稳定。
服务于企业业务的非结构化知识抽取系统,需要根据基于业务需求的知识体系,从多个不同的数据来源中,运行实体抽取、关系抽取、属性抽取、概念抽取和事件抽取等任务流。不同的知识抽取任务,在数据管理、算法模型、任务管理方面会有大量重叠且可复用的模块。因此,为缩短知识抽取算法模型的迭代周期、降低迭代成本、提升模型效果,企业需要建设一站式的知识抽取算法框架。
图4-5对非结构化知识抽取算法框架的整体架构进行了展示,其核心是数据层、模型层与应用层:
• 在数据层,需要对实体抽取、关系抽取、属性抽取、概念抽取、事件抽取等不同任务的训练数据及样本数据进行统一注册并管理。在样本数据模块可以建设人工标注、远程回标、数据集精选等能力;
• 在模型层,需要对知识抽取的规则模板、传统机器学习模型、神经网络模型进行统一注册并管理;
• 在应用层,需要对知识抽取的实体抽取、关系抽取等模型服务接口进行统一注册并管理,并与知识抽取流水线进行集成。
图4-5
图4-6对非结构化知识抽取算法框架的详细架构进行了展示,在整体架构上包括数据集、数据层、模型层、评估层和应用层。通过将数据管理、数据迭代、模型组装、模型迭代、模型评估、模型应用训练与预测进行一站式集成,可形成知识抽取模型生产与优化的工厂。基于如图4-6所示的知识抽取算法框架,知识抽取的关系抽取、属性抽取和概念抽取等多项任务可以在同一算法框架上进行全流程及全生命周期管理。因此,知识图谱构建人员可以更高效、更稳定地进行模型开发、评估与迭代工作。
图4-6
前面已对非结构化知识抽取系统的整体架构、算法框架进行了介绍,那么,应该如何建设结构化知识抽取框架呢?
回顾4.2.1节的内容,结构化知识抽取的数据源主要是用户、商品、企业业务状态等实体状态数据与知识。知识图谱与认知智能技术在企业核心业务上的目标是提升业务人员、业务系统对企业用户、设备、产品等业务实体状态全面、及时、精准的认知,并在此基础上进行策略构建、策略筛选与策略执行。而目前在大多数企业中,业务人员认知业务状态所需的大部分底层数据都来源于企业的结构化数据仓库,比如,人的状态数据来源于用户管理系统的用户画像库表,设备的状态数据来源于设备管理系统的设备状态表,而企业的状态数据来源于企业商业分析报表,这些都需要通过结构化知识抽取才能转化为相应的业务知识图谱。
图4-7对结构化知识抽取系统的架构进行了展示。结构化知识抽取系统的业务目标是将企业数据中心的数据通过知识抽取转化成知识图谱数据,并存储于图数据库等存储介质中。为了实现这一目标,结构化知识抽取系统应建设数据建模、图谱模型映射、数据接入、数据清洗模型及数据载入等多项功能。
图4-7
结构化知识抽取是企业快速形成生产力的知识图谱的重要路径。结构化知识抽取系统可以结合企业自有的数据仓库,根据已有的数据属性与数据关联,通过数据清洗工具进行快速的知识图谱建设。在企业数字化建设过程中,企业通过数据治理后形成对企业数据资产统一管理的数据模型。结构化知识抽取系统应建设企业数据仓库的数据模型到企业知识图谱知识体系的映射与转化能力。通过数据映射,结构化知识抽取系统可以在企业数据中心、企业数据中台开发大数据ETL任务,将企业海量的业务数据转化为知识图谱。比如在能源领域,电力企业可以通过电网公共数据模型(CIM)的映射转化能力,将电网海量的设备状态数据、业务状态数据转化为电网知识图谱。
对企业外部数据源的知识抽取也是结构化知识抽取系统的重要工作。在企业外部数据源中,网页编辑者整理好的以XML、HTML形态存在的结构化信息、垂直数据服务商、第三方已建成的知识图谱或业内开源的图谱,都可以通过结构化的知识抽取系统进行数据映射和转化。外部标准化的知识图谱可以显著加速企业知识图谱资产积累与知识应用服务的进展,但难点在于如何高效、低成本地建设数据映射与转化工具。比如在垂直知识网站上存在大量领域专家、爱好者编辑与整理好的结构化数据,需要基于网页源码进行结构化知识抽取。在此场景中,企业可以基于XPath编写网页源码的解析工具。运用XPath进行结构化知识抽取包括3个步骤:①定义待抽取网页URL Pattern的页面;②从网页源码解析XPath路径;③配置可选规则,包括Schema映射、信息去噪等。
以上对非结构化、结构化的知识抽取框架进行了详细介绍,为了帮助读者对知识抽取任务的定义、目标、技术有更清晰的认知,接下来将简要介绍实体抽取、关系抽取、属性抽取相关的定义与技术点。