知识图谱基础
引子
2012年,谷歌在其搜索引擎中引入了知识图谱技术,用户在搜索关键词时,除了得到搜索网页链接外,还会看到与该词相关的更智能化的答案。随后,微软、百度等其他搜索引擎公司迅速跟进,纷纷推出自己的知识图谱产品。
举例,如果搜索“乔布斯” (以必应为例),在界面的右侧会出现下图所示的内容,即那个要改变世界的乔布斯人的详细信息链接。
有朋友会问,好像没什么区别啊?呵呵,差别可大啦!
2012前的搜索引擎只会把搜索关键词作为文字去搜索引擎数据库检索,找出它认为与搜索关键词最相关的网页排序列出来,而它并不理解这个搜索关键词的意义。也就是说,无论是搜索“乔布斯“还是”乔布死“,对它来说都是一样的。
而应用知识图谱技术的搜索引擎已经能把“乔布斯“这个关键词理解为现实世界中那位要改变世界的苹果公司的创始人-乔布斯,所以,他就能够找到苹果公司创始人这样的网页链接,而不管这个网页里是否有包含” 乔布斯“ 这一关键词。
某种程度上说,带知识图谱的搜索引擎能理解搜索关键词的语义,已经具备一定的智能了。
知识图谱是什么
知识图谱是由Google公司在2012年提出来的概念。通过引子的分析,可以这么定义知识图谱:知识图谱本质上是具备语义理解的知识库。
嗯,好像不好理解!
其实说白了,知识图谱就是在计算机世界对现实世界的实体和关系进行建模,使得计算机能像人一样理解现实世界中实体以及实体之间的关系。所谓实体就是现实世界中的事物比如人、地名、概念、公司、概念等,关系则用来表达不同实体之间的某种联系。比如,姚明的妻子叫叶莉,实体是姚明,叶莉,关系就是妻子。
知识图谱用节点和关系所组成的图谱,为真实世界的各个场景直观地建模。通过不同知识的关联性形成一个网状的知识结构,对机器来说就是图谱。
知识图谱的表示
知识图谱是结构化的语义知识库,用于以符号形式描述物理世界中的概念及其相互关系,其基本组成单位是(实体-关系-实体)三元组,以及实体及其属性-值对,实体间通过关系相互联结,构成网状的知识结构。
如:“姚明的老婆叫叶莉” 可以用三元组表示为(姚明, 老婆, 叶莉),姚明的身高有2.3米,可以用三元组表示为(姚明, 身高, 2.3米)。如果我们把实体看作是结点,把实体关系(包括属性,类别等等)看作是一条边,那么包含了大量三元组的知识库就成为了一个庞大的知识图。如上,实体关系可分为两种,一种是属性,一种是关系。
如下图所示,
知识图谱中包含的节点有:
实体: 指的是具有可区别性且独立存在的某种事物。如某一个人、某一个城市、某一种植物等、某一种商品等等。世界万物由具体事物组成,此指实体。实体是知识图谱中的最基本元素,不同的实体间存在不同的关系。
语义类(概念):具有同种特性的实体构成的集合,如国家、民族、书籍、电脑等。概念主要指集合、类别、对象类型、事物的种类,例如人物、地理等。
内容: 通常作为实体和语义类的名字、描述、解释等,可以由文本、图像、音视频等来表达。
属性(值): 从一个实体指向它的属性值。不同的属性类型对应于不同类型属性的边。属性值主要指对象指定属性的值。如上图的“身高”。属性值主要指对象指定属性的值,如2.3米。
关系: 形式化为一个函数,它把 k k个点映射到一个布尔值。在知识图谱上,关系则是一个把k k个图节点(实体、语义类、属性值)映射到布尔值的函数。
知识图谱有什么用
知识图谱的价值在于:让机器具备认知能力和理解能力。构建知识图谱这个过程的本质,就是让机器形成认知能力,理解这个世界。可以说,知识图谱已成为AI落地的基石。
随着AI技术的发展,知识图谱已广泛应用于各行业,从智能化搜索引擎到智能客服领域的智能问答、语音助理、聊天机器人,从金融行业的金融风控、证券投资到智能医疗、自适应教育、推荐系统、自动驾驶等,无一不跟知识图谱相关。
以下简单列举知识图谱在几个领域的应用。
搜索理解
如引子里所提到的,各大搜索引擎已广泛应用知识图谱来增加搜索引擎的智能化程度,让搜索引擎能根据搜索关键词对应到现实世界的实体,并做出推理,找出实体关系和属性。
智能问答
苹果当年推出手机应用“Siri”时就让人为之一震,那种一问一答的交互方式大大改善用户体验,相比搜索引擎好用太多。
知识图谱的重要应用之一就是可以做为智能问答系统的后台知识库。正是因为有了大规模、结构化的、带语义理解的及具推理能力的知识图谱的支持,智能问答系统才能够回答出像“梁启超的儿子的太太的情人的父亲”、“姚明哪年在NBA哪支球队打过球”之类的烧脑问题。
金融风控
在风控领域中,知识图谱产品能为精准揭露“欺诈环”、“窝案”、“中介造假”、“洗钱”和其他复杂的欺诈手法,提供了新的方法和工具。尽管没有完美的反欺诈措施,但是,通过将众多大数据通过知识图谱技术联系起来,通过关联分析就能发现一些隐藏信息,找到欺诈者的漏洞,通常这些看似正常不过的联系(关系),常常被我们忽视,但又是最有价值的反欺诈线索和风险突破口。
知识图谱包含那些技术
1 知识建模
知识建模,即为知识和数据进行抽象建模,主要包括以下5个步骤:
1) 以节点为主体目标,实现对不同来源的数据进行映射与合并。(确定节点)
2) 利用属性来表示不同数据源中针对节点的描述,形成对节点的全方位描述。(确定节点属性、标签)
3) 利用关系来描述各类抽象建模成节点的数据之间的关联关系,从而支持关联分析。(图设计)
4) 通过节点链接技术,实现围绕节点的多种类型数据的关联存储。(节点链接)
5) 使用事件机制描述客观世界中动态发展,体现事件与节点间的关联,并利用时序描述事件的发展状况。(动态事件描述)
2 知识获取
从不同来源、不同结构的数据中进行知识提取,形成知识存入到知识图谱,这一过程我们称为知识获取。
数据来源
知识图谱的数据来源有以下几个渠道。一,知识图谱要求数据具备结构化信息,所以,最好的数据源是维基百科、百度百科这类的大规模知识库。二,W3C发起的开放互联数据项目(Linked Open Data),其数据就是以RFD三元组的实体表示形式存储的,所以可以直接为知识图谱所用。三,业务本身的数据,这部分数据通常包含在企业内部业务系统中的数据库表并以结构化的方式存储的。最后,同互联网相比,上述的数据量只能算是沧海一粟,因此,还需从互联网中获取海量数据。但是,互联网数据是非结构化数据,需要进行数据抽取、降噪及预处理等才能知识图谱所用。
知识获取技术
针对不同种类的数据,我们会利用不同的技术进行提取。
从结构化数据库中获取知识:D2R。
难点:复杂表数据的处理。
从链接数据中获取知识:图映射。
难点:数据对齐。
从半结构化(网站)数据中获取知识:使用包装器。
难点:方便的包装器定义方法,包装器自动生成、更新与维护。
从文本中获取知识:信息抽取。
难点:结果的准确率与覆盖率。
3 知识融合
从不同数据源获取的数据可能包含了不同的格式,如:文本、DOM树、Html、RFD语义数据等。对不同结构的数据提取知识之后,接下来要做的是把它们融合成一个统一的知识图谱,这时候需要用到知识融合的技术(如果知识图谱的数据结构均为结构化数据,或某种单一模式的数据结构,则无需用到知识融合技术)。
知识融合主要分为数据模式层融合和数据层融合,分别用的技术如下:
数据模式层融合:概念合并、概念上下位关系合并、概念的属性定义合并。
数据层融合:节点合并、节点属性融合、冲突检测与解决(如某一节点的数据来源有:豆瓣短文、数据库、网页爬虫等,需要将不同数据来源的同一节点进行数据层的融合)。
4 知识存储
知识图谱的数据存储既需要完成基本的数据存储,同时也要能支持上层的知识推理、知识快速查询、图实时计算等应用,因此需要存储以下信息:三元组(由开始节点、关系、结束节点三个元素组成)知识的存储、事件信息的存储、时态信息的存储、使用知识图谱组织的数据的存储。
知识图谱主要有两种存储方式:一种是基于RDF的存储;另一种是基于图数据库的存储。
5 知识计算
知识计算主要是在知识图谱中知识和数据的基础上,通过各种算法,发现其中显式的或隐含的知识、模式或规则等,知识计算的范畴非常大,这里主要讲三个方面:
图挖掘计算:基于图论的相关算法,实现对图谱的探索和挖掘。
本体推理:使用本体推理进行新知识发现或冲突检测。
基于规则的推理:使用规则引擎,编写相应的业务规则,通过推理辅助业务决策。
6 可视化技术
目前两个比较常见的可视化工具是:D3.js和ECharts。