如何系统学习知识图谱-胖子哥的实践经验分享

简介:

一、 前言 
这是之前一次线上活动的待分享内容,因为一些原因,没有成行。在此开放出来,算是对之前关心和关注朋友的一次补偿。这部分内容同时也是系列课程《知识图谱实战开发案例剖析》的学习导论。相关课程已经开放在网易云课堂,关注的朋友可以前往查看。 
1.1 概述 
任何一项新技术的学习,都需要学习者基于自身的情况,结合被学习内容的特点进行展开,其过程既具有特殊性,同时也具有一般性,知识图谱的学习同样如此。基于胖子哥自身的切身实践,总结出了一套系统的学习知识图谱的方法,在此分享给大家。其要点可以用简单的用两句话来概况: 
1. 横向覆盖:了解知识图谱所涉及的内容有哪些,并具备初步的认知能力,实现这一步,就可以对知识图谱的全局有一个系统的把握。 
2. 纵向深耕:基于特定技术点进行深度学习,重点攻关、学深、学透。 
以上两个点其实也是学习的两个过程,可以交叉进行,反复迭代。 
1.2 人工智能的系统架构 
知识图谱是人工智能进步的阶梯,开始知识图谱的学习之前,我们需要先了解一下人工智能相关的知识。人工智能从业务视角可以分为感知能力、认知能力和服务能力三个层次,其中认知能力以语义理解和语言生成为核心。如下图所示: 
这里写图片描述 
图:人工智能的业务架构 
人工智能技术视角,可以分为基础设施层、技术层和应用层。其中知识图谱位于基础设施层,与数据资源平齐。具体技术架构如下图所示: 
这里写图片描述 
图:人工智能的技术架构 
1.3 智能对话与知识图谱 
智能对话是人工智能时代最具代表性产品形态,而其中知识图谱起到了决定性的作用,具体体现在语义理解和语言生成两个方面。智能对话系统的抽象模型如下图所示: 
这里写图片描述 
图:智能对话业务模型 
二、 学习方法论 
2.1 PDCA模型:通用问题处理方法 
2.1.1 概述 
这里写图片描述 
图:通用问题处理方法 
2.1.2模型历史 
PDCA循环是美国质量管理专家休哈特博士首先提出的,由戴明采纳、宣传,获得普及,所以又称戴明环。全面质量管理的思想基础和方法依据就是PDCA循环。PDCA循环的含义是将质量管理分为四个阶段,即计划(plan)、执行(do)、检查(check)、调整(Action)。在质量管理活动中,要求把各项工作按照作出计划、计划实施、检查实施效果,然后将成功的纳入标准,不成功的留待下一循环去解决。这一工作方法,这是质量管理的基本方法,也是企业管理各项工作的一般规律。 
2.1.3模型说明 
PDCA模型包括四大过程,八大步骤。四大过程如上图所示: 
Plan(P:计划):方针和目标的确定,已经活动计划的制定; 
Do(D:执行):具体运作,实现计划中的步骤,它只有一个步骤:执行计划; 
Check(C:检查):要总结执行计划的结果,分清哪些对了,哪些错了,明确效果,找出问题; 
Action(A:调整或改善):肯定成功经验,实现标准化,总结失败教训,以免重现。把没有解决的问题提给下一个PDCA循环; 
PDCA八大步骤如下图所示: 
这里写图片描述 
图:PDCA八大步骤

第一为P(计划)阶段,其中分为四个步骤:


     
     
  • 1
  • 2

  a.分析现状,找出存在的质量问题; 
b.分析产生质量问题的各种原因; 
c.找出影响质量的主要原因; 
e.针对影响质量的主要原因制订措施,提出改进计划,定出目标。 
第二为D(实施)阶段:按照制订计划目标加以执行。 
第三为C(检查)阶段:检查实际执行结果看是否达到计划的预期效果。 
第四为A(总结处理)阶段,其中分二步: 
a.总结成熟的经验,纳入标准制度和规定,以巩固成绩,防止失误; 
b.把本轮PDCA循环尚未解决的问题,纳入下一轮PDCA循环中去解决。 
2.1.4模型特点: 
特点1:环环相扣,生生不息。大环套小环,小环保大环,互相促进,推动大循环。 
这里写图片描述 
图:PDCA特点1 
特点2:步步高升,循环不止。PDCA循环是爬楼梯上升式的循环,每转动一周,质量就提高一步。 
这里写图片描述 
图:PDCA特点2 
特点3:相对独立,相互依存。PDCA循环是综合性循环,4个阶段是相对的,它们之间不是截然分开的。 
2.2 学习框架:知识图谱学习方法论 
基于对通用PDCA模型的理解和认知,结合知识图谱的学习过程,个人总结出来一个完整的知识图谱的系统的学习方法。该方法包括两大学习目标和八大学习步骤,如下图所示: 
这里写图片描述 
图:系统学习方法论 
两大目标: 
目标一、横向拓展:全面系统的了解知识图谱相关的内容,包括知识图谱的概念定义、发展历史、关键技术、产品形态、工作机制、发展瓶颈等等。 
目标二、纵向深耕:针对知识图谱特定的技术专题,比如知识建模、知识存储、知识应用、知识获取等特定的技术专题,展开深入的,特定方向的专题攻关,学深,学透,并达到熟练掌握的程度。 
八大步骤: 
(1)发现问题:分析现状,包括自身现状(菜鸟、其他领域的专家)和领域现状(基础理论、产品形态、关键技术、企业战略和发展瓶颈等),以及自身对领域知识能力掌握的现状,发现待提升点(依赖于知识全局的横向覆盖)。 
(2)分析原因:分析影响自身知识图谱能力提升的原因有哪些。 
(3)识别主因:识别若干原因中的最关键因素。 
(4)制定策略:基于以上分析,制定自己的学习策略和计划。 
(5)计划实施:实施学习计划,计划的执行以特定场景驱动、从单个知识点切入,逐步拓展。 
(6)检查:不通和不痛; 
(7)总结:知识沉淀和方向调整,启动新的一轮迭代。 
三、 学习过程回顾 
3.1 基础理论 
知识图谱本质(Knowledge Graph)上是一种叫做语义网络(semantic network)的知识库,即具有有向图结构的一个知识库;图的结点代表实体(entity)或者概念(concept),而图的边代表实体/概念之间的各种语义关系,比如说两个实体之间的相似关系;知识图谱(Knowledge Graph)的概念由谷歌 2012 年正式提出,旨在实现更智能的搜索引擎,并且于 2013 年以后开始在学术界和业界普及,并在智能问答、情报分析、反欺诈等应用中发挥重要作用。 
3.2 知识表示 
知识表示(knowledge representation)是指把知识客体中的知识因子与知识关联起来,便于人们识别和理解知识。知识表示是知识组织的前提和基础,任何知识组织方法都是要建立在知识表示的基础上。知识表示包括知识因子的表示和知识的组织体系两部分内容。常用的知识因子的表示方法如下图所示: 
这里写图片描述 
图:知识因子的表示方法 
常用的知识表示体系如下图所示: 
这里写图片描述 
图:知识单元的组织体系 
知识表示是知识图谱中最重要的活动,也称之为知识建模。知识建模的方法如下图所示: 
这里写图片描述 
图:知识建模方法论 
知识建模的方法论,包括知识建模的方法和知识建模的原则两部分内容。围绕业务规划产品是指脱离具体的业务需求场景,站在整个业务领域的视角,看问题。具体做法是分析完整的业务流程、识别全部的动态活动和静态对象,设计全领域相关的知识体系。基于团队选择方法的原则是:具备行业领域专家(标准+业务+技术)的情况下,选择专家法;具有同/异行业标准,而没有行业领域专家的情况下,选择参照法;既无行业标准,又无领域专家的情况下,选择归纳法;万法归宗,一种方法执行一段时间以后,可以选择换另外一种方法,二者寻找一个平衡点。 
目前而言,知识图谱领域我们更能够看到和接触到的内容中,做的比较好的是医疗领域的UMLS(统一医学建模语言),可以作为我们构建知识图谱的时候,一个比较好的参考。统一医学语言系统( Unified Medical Language System,UMLS) 是美国国立医学图书馆( National Library of Medicine,NLM) 于1986 年开始建设的一体化医学知识语言,具有集成性、跨领域和工具化的特点。UMLS 在信息检索( Information Retrieval) 、自然语言处理( Natural Language Processing) 、电子病历( Electronic Patient Records) 、健康数据标准( Health Data Standards) 等方面得到了广泛的研究和应用。NLM 应用UMLS 的系统和项目主要有PubMed,提供对Medline 和其他相关数据库的免费检索; NLM Gateway,提供对NLM 多个系统的集成检索,包括Medline、OLD Medline、LocatorPlus、PubMed、AIDS Meetings、HSRProj 和MedlinePlus 等。 
UMLS中对于语义类型、语义关系、本体对象的定义和表示,可以作为我们非常好的参考,对于医学领域是一个很好的行业标准,对于其他领域,是一个很好的跨域参考标准。 
UMLS语义类型如下图所示: 
这里写图片描述 
图:UMLS语义类型 
UMLS语义关系如下图所示: 
这里写图片描述
图:UMLS语义关系 
3.3 知识存储 
知识存储是指知识内容的物理存储,知识建模解决了知识逻辑上的表示,知识存储则着手解决知识的物理表示。常用的知识存储方式包括: 
这里写图片描述 
图:知识存储的常用方法 
关于知识图谱的存储,首先明确一个原则,没有图数据库之前,知识型的内容,同样有处理办法,因此图数据库只是知识图谱存储的方式之一。任何一种问题,都有不止一个解决方案,只是方案之间有着不同的优势而已。知识图谱的存储方式,在不同时期,不同场景下有不同的技术方案,有着明显的时间特征和场景特征。常用的知识图谱的方式包括:关系型数据(RDBMS)、三元组(RDF)和图数据库(Graph DB)。目前在图数据库领域排名比较靠前的如下图所示: 
这里写图片描述 
图:图数据库排行 
其发展趋势如下图所示: 
这里写图片描述 
图:图数据库发展趋势图 
图数据库之间各有优劣,Neo4j可视操作,文档支持,企业服务支持做的比较好,是无绝对开发能力团队的首选,同时因为社区版本的免费,特别适合新手学习。Titan是基于分布式存储模式提交下的开源系统,适合存储体量比较大需求场景,但是已经很久没有更新,适合技术团队能力比较强的组织采用。 
3.4 知识应用 
知识图谱的典型应用有很多种场景,常见的包括以下几种: 
这里写图片描述 
图:知识图谱的典型应用 
关于知识图谱应用的行业最佳实践是Google在搜索引擎上的应用,根据Google对外公开的资料显示,知识图谱在Google的应用主要包括两种场景: 
这里写图片描述 
图:智能搜索 
通过知识图谱的建设,智能搜索能够让用户获取更精准的信息、更有广度的信息和更有深度的信息。

而智能问答系统则是代表未来的一种服务模式,基于沟通工具的变化,语音模式下,人机交互方式必然转变为精准信息的交互,传统模式的搜索引擎模式必然遭到淘汰。人机交互的核心则在于语义理解,语义理解关键则取决于知识图谱,否则无从谈起,听清、听懂。 
3.5 知识获取 
知识图谱的建设,理想主义者比较多,而现实情况则不容乐观,动辄谈机器学习,网络爬虫的基本上门外汉的思路。从时间经验来看,知识体系的建设,包括众包法(靠网民众包完成),目前各种百科类的平台基本如此;专家法(行业领域专家完成),目前垂类领域的知识体系建设,以此为主;机器学习法(网络爬虫),多以爬取别人系统和百科类站点为主,多以个人爱好者,小团队为主,自身无资源,异想天开型,但占主流。 
四、 学习经验总结 
4.1 全面认知 
学习任何知识,首先需要对其整体有一个全面的认知,然后才是其他,否则只见一木,未见森林。 
4.2 单点突破 
从某一个特定的技术点开始,纵向贯通,做深,做透,比如知识建模。而后横向拓展,因点成线,因线成面,因面而成体。 
4.3 案例驱动 
学习的过程,尤其是技术类的内容,特别枯燥,比较好的一个避免疲劳的方法则是,通过具体需求,场景和案例的引入,有助于知识理解和贯通。 
4.4 能力迁移 
术、法、道,是能力层次的三个境界。术的提升,无它法,唯勤尔;法则可以迁移,比如我们可以用设计数据主题域模型的方式,来设计语义类型,所需要做的只是能力的一种迁移而已。

版权声明:版权所有,作者:张子良,转载请注明出处。

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
相关文章
|
1月前
|
Python
探索代码之美:从小白到专家的技术成长之旅
编程,这个曾经让我望而却步的神秘领域,如今已成为我生活的一部分。它不仅仅是一种技能,更是一种艺术,一种解决问题的思维方式。从最初的迷茫与困惑,到现在的游刃有余,我经历了一个充满挑战与收获的学习过程。在这个过程中,我逐渐理解了编程的本质,掌握了编程语言的精髓,也学会了如何将理论知识应用于实际问题。这篇文章将分享我的技术感悟,带你一起走进编程的世界,探索代码背后的奥秘。
37 3
|
3月前
|
数据采集 JavaScript 前端开发
代码之旅:从小白到专家的蜕变之路
在数字时代的浪潮中,编程技能成为了一项宝贵的资产。本文将带领读者回顾我从一位对代码一无所知的新手,逐步成长为能够独立解决问题的专家级程序员的过程。通过分享我的学习经历、遇到的挑战以及克服困难的策略,旨在为同样渴望在编程世界中留下自己足迹的朋友们提供一份实用的指南和鼓励。
32 0
|
4月前
|
设计模式 算法 开发者
探索代码之美:从小白到专家的技术之旅
【7月更文挑战第17天】在数字化时代的浪潮中,编程已成为一门不可或缺的技能。本文将通过个人的技术成长历程,探讨如何从一名初学者逐步成长为技术专家。我们将深入讨论基础知识的重要性、持续学习的动力、实践与项目经验的积累,以及社区参与的价值。文章旨在为那些渴望在技术领域内不断进步的人们提供一份指南和灵感。
|
6月前
|
缓存 网络协议 Java
挑战全网,史上最全Android开发进阶,跳槽复习指南(1),掌握这6大技能体系
挑战全网,史上最全Android开发进阶,跳槽复习指南(1),掌握这6大技能体系
|
6月前
|
设计模式 JavaScript 算法
计算机专业大学生如何利用寒假时间学习编程(闲谈)
计算机专业大学生如何利用寒假时间学习编程(闲谈)
36 0
计算机专业大学生如何利用寒假时间学习编程(闲谈)
|
监控 架构师 安全
速读《技术人修炼之道》-看到最后定有收获
最近一段时间读完了《技术人修炼之道》,书中内容涵盖了作者多年实践和思想的结晶,整体读来有许多观点深有同感,也学习到了一些新的理念,在这里感谢黄哲铿老师。本文主要结合我自身十几年的IT行业经验,以及创业多年的感受,从书中提炼了一些个人觉得非常有价值并且好落地的点进行分享。
|
编译器 Linux C语言
C++Primer 【学习笔记】第一章 深思
main 函数在很多方面都比较特别,其中最重要的是每个 0+程序必须含有 main 函数,且 main 函数是(唯一)被操作系统显式调用的函数。
66 0
|
SQL 分布式计算 NoSQL
第14章 大数据管理——复习笔记
第14章 大数据管理——复习笔记
|
敏捷开发 算法 架构师
【备战软考架构师系列笔记 · 001】软件工程篇 —— 软件开发方法的主要分类 ⭐
# 软件开发方法### 分类- 按功能 - 水平原型(针对界面) - 垂直原型(针对复杂算法)
240 0
【备战软考架构师系列笔记 · 001】软件工程篇 —— 软件开发方法的主要分类 ⭐