非结构化文本方式
目前的类目体系从商品管理角度出发,覆盖了大量数据的冰山一角,对于认知真正的用户需求远远不够;
从原始数据中提取出知识要素,即一堆实体关系,并将其存入我们的知识库的模式层和数据层
构建知识图谱是一个迭代更新的过程,根据知识获取的逻辑,每一轮迭代包含三个阶段:
信息抽取(实体抽取、关系抽取和属性抽取):从各种类型的数据源中提取出实体、属性以及实体间的相互关系,在此基础上形成本体化的知识表达;
知识融合(实体链接,知识合并):在获得新知识之后,需要对其进行整合,以消除矛盾和歧义,比如某些实体可能有多种表达,某个特定称谓也许对应于多个不同的实体等;
知识加工(本体构建、知识推理和质量评估):对于经过融合的新知识,需要经过质量评估之后(部分需要人工参与甄别),才能将合格的部分加入到知识库中,以确保知识库的质量。
从学术的角度,我们可以对知识图谱给一个这样的定义:“知识图谱本质上是语义网络(Semantic Network)的知识库”。但这有点抽象,所以换个角度,从实际应用的角度出发其实可以简单地把知识图谱理解成多关系图(Multi-relational Graph)
在知识图谱里,我们通常用“实体(Entity)”来表达图里的节点、用“关系(Relation)”来表达图里的“边”。
实体指的是现实世界中的事物比如人、地名、概念、药物、公司等,关系则用来表达不同实体之间的某种联系,比如人-“居住在”-北京、张三和李四是“朋友”等。
目前来看,RDF主要还是用于学术的场景,在工业界我们更多的还是采用图数据库(比如用来存储属性图)的方式。
知识抽取
它们的数据源主要来自两种渠道:一种是业务本身的数据,这部分数据通常包含在公司内的数据库表并以结构化的方式存储;另一种是网络上公开、抓取的数据,这些数据通常是以网页的形式存在所以是非结构化的数据。
前者一般只需要简单预处理即可以作为后续AI系统的输入,但后者一般需要借助于自然语言处理等技术来提取出结构化信息。
数据收集 & 预处理
下一步就是要确定数据源以及做必要的数据预处理。针对于数据源,我们需要考虑以下几点:1. 我们已经有哪些数据? 2. 虽然现在没有,但有可能拿到哪些数据? 3. 其中哪部分数据可以用来降低风险? 4. 哪部分数据可以用来构建知识图谱?
在知识图谱设计的问题上,我们肯定会面临以下几个常见的问题:1. 需要哪些实体、关系和属性? 2. 哪些属性可以做为实体,哪些实体可以作为属性? 3. 哪些信息不需要放在知识图谱中?
首先是,业务原则(Business Principle),它的含义是 “一切要从业务逻辑出发,并且通过观察知识图谱的设计也很容易推测其背后业务的逻辑,而且设计时也要想好未来业务可能的变化”。
接下来再看一个原则叫做效率原则,效率原则让知识图谱尽量轻量化、并决定哪些数据放在知识图谱,哪些数据不需要放在知识图谱。
另外,从分析原则(Analytics Principle)的角度,我们不需要把跟关系分析无关的实体放在图谱当中;从冗余原则(Redundancy Principle)的角度,有些重复性信息、高频信息可以放到传统数据库当中。
从算法的角度来讲,有两种不同的场景:一种是基于规则的;另一种是基于概率的。鉴于目前AI技术的现状,基于规则的方法论还是在垂直领域的应用中占据主导地位,但随着数据量的增加以及方法论的提升,基于概率的模型也将会逐步带来更大的价值。
知识图谱工程本身还是业务为重心,以数据为中心。不要低估业务和数据的重要性。
知识图谱旨在描述客观世界的概念、实体、事件及其间的关系;
概念是指人们在认识世界过程中形成的对客观事物的概念化表示,如人、动物、组织机构等
实体是客观世界中的具体事物,如篮球运动员姚明、互联网公司腾讯等;
事件是客观世界的活动,如地震、买卖行为等。
关系描述概念、实体、事件之间客观存在的关联,如毕业院校描述了个人与其所在院校的关系,运动员和篮球运动员之间概念和子概念的关系等。
知识图谱技术包括知识表示、知识图谱构建和知识图谱应用三方面的研究内容。
知识表示研究客观世界知识的建模,以方便机器识别和理解,既要考虑知识的表示与存储,又要考虑知识的使用和计算;
知识图谱构建解决如何建立计算机算法从客观世界或者互联网的各种数据资源中获取客观世界的知识,主要研究使用何种数据和方法抽取何种知识;
知识图谱应用主要研究如何利用知识图谱建立基于知识的智能服务系统,更好地解决实际应用问题。
NER(命名实体识别)
命名实体一般指的是文本中具有特定意义或者指代性强的实体,通常包括人名、地名、组织机构名、日期时间、专有名词等。
NER系统就是从非结构化的输入文本中抽取出上述实体,并且可以按照业务需求识别出更多类别的实体,比如产品名称、型号、价格等。因此实体这个概念可以很广,只要是业务需要的特殊文本片段都可以称为实体。
学术上NER所涉及的命名实体一般包括3大类(实体类,时间类,数字类)和7小类(人名、地名、组织机构名、时间、日期、货币、百分比)。随着 NLP 任务的不断扩充,在特定领域中会出现特定的类别,比如医药领域中,药名、疾病等类别。
实际应用中,NER模型通常只要识别出人名、地名、组织机构名、日期时间即可,一些系统还会给出专有名词结果(比如缩写、会议名、产品名等)。货币、百分比等数字类实体可通过正则搞定。另外,在一些应用场景下会给出特定领域内的实体,如书名、歌曲名、期刊名等。
NER是NLP中一项基础性关键任务。从自然语言处理的流程来看,NER可以看作词法分析中未登录词识别的一种,是未登录词中数量最多、识别难度最大、对分词效果影响最大问题。同时NER也是关系抽取、事件抽取、知识图谱、机器翻译、问答系统等诸多NLP任务的基础。
命名实体识别只是在有限的文本类型(主要是新闻语料中)和实体类别(主要是人名、地名、组织机构名)中取得了不错的效果;与其他信息检索领域相比,实体命名评测语料较小,容易产生过拟合;命名实体识别更侧重高召回率,但在信息检索领域,高准确率更重要;通用的识别多种类型的命名实体的系统性能很差。