数据库

首页 » 常识 » 问答 » 知识图谱是什么
TUhjnbcbe - 2025/3/9 12:50:00
哪个医院白癜风能治好 https://wapjbk.39.net/yiyuanzaixian/bjzkbdfyy/ffxbdf/

从一开始的Google搜索,到现在的聊天机器人、大数据风控、证券投资、智能医疗、自适应教育、推荐系统,无一不跟知识图谱相关。它在技术领域的热度也在逐年上升。

随着移动互联网的发展,万物互联成为了可能,这种互联所产生的数据也在爆发式地增长,而且这些数据恰好可以作为分析关系的有效原料。如果说以往的智能分析专注在每一个个体上,在移动互联网时代则除了个体,这种个体之间的关系也必然成为我们需要深入分析的很重要一部分。在一项任务中,只要有关系分析的需求,知识图谱就“有可能”派的上用场。

什么是知识图谱?

知识图谱是由Google公司在年提出来的一个新的概念。从学术的角度,我们可以对知识图谱给一个这样的定义:“知识图谱本质上是语义网络(SemanticNetwork)的知识库”。通俗地讲,知识图谱就是把所有不同种类的信息(HeterogeneousInformation)连接在一起而得到的一个关系网络。

学过数据结构的都应该知道什么是图(Graph)。图是由节点(Vertex)和边(Edge)来构成,但这些图通常只包含一种类型的节点和边。而多关系图一般包含多种类型的节点和多种类型的边。比如,左下图表示一个经典的图结构,右边的图则表示多关系图,因为图里包含了多种类型的节点和边。这些类型由不同的颜色来标记。

在知识图谱里,我们通常用“实体(Entity)”来表达图里的节点、用“关系(Relation)”来表达图里的“边”。实体指的是现实世界中的事物,例如人、地名、概念、产品、公司等,关系则用来表达不同实体之间的某种联系。

在白牛的产品中也是有很多场景运用了知识图谱来表达。比如一个社交网络图谱里,我们既可以有“人”的实体,也可以包含“公司”实体。人和人之间的关系可以是“亲属”,也可以是“同事”关系。人和公司之间的关系可以是“现任职”或者“曾任职”的关系,“公司”与“公司”之间的关系可以是“子公司”和“投资”的关系。类似的,一个风控知识图谱可以包含“电话”、“公司”的实体,电话和电话之间的关系可以是“通话”关系,而且每个公司它也会有固定的电话。

知识图谱的表示

知识图谱应用的前提是已经构建好了知识图谱,也可以把它认为是一个知识库。这也是为什么它可以用来回答一些搜索相关问题的原因,比如在Google搜索引擎里输入“蜂花的董事长是谁?”,我们直接可以获取到顾锦文的个人信息页。这是因为我们在创建好了一个包含“蜂花”和“董事长”的实体以及他俩之间关系的库。这种搜索方式跟传统的搜索引擎是不一样的,一个传统的搜索引擎它返回的是网页、而不是最终的答案,所以就多了一层用户自己筛选并过滤信息的过程。

而在产品中,将知识图谱的表示运用到搜索问题上,通过简单的搜索,展示出多种可选择的结果。比如,在搜索框中搜索“马化腾”,展示结果可能包含了“马化腾”名下的公司、投资的公司、旗下公司的产品、相关股票以及他的舆论新闻等等。

在现实世界中,实体和关系也会拥有各自的属性,比如人可以有“姓名”和“年龄”。当一个知识图谱拥有属性时,我们可以用属性图(PropertyGraph)来表示。下面的图表示一个简单的属性图。李明和李飞是父子关系,并且李明拥有一个18开头的电话号,这个电话号开通时间是年,其中年就可以作为关系的属性。类似的,李明本人也带有一些属性值比如年龄为25岁、职位是总经理等。

这种属性图的表达很贴近现实生活中的场景,也可以很好地描述业务中所包含的逻辑。除了属性图,知识图谱也可以用RDF来表示,它是由很多的三元组(Triples)来组成。RDF在设计上的主要特点是易于发布和分享数据,但不支持实体或关系拥有属性,如果非要加上属性,则在设计上需要做一些修改。目前来看,RDF主要还是用于学术的场景,在工业界我们更多的还是采用图数据库(比如用来存储属性图)的方式。

知识抽取

知识图谱的构建是后续应用的基础,而且构建的前提是需要把数据从不同的数据源中抽取出来。对于垂直领域的知识图谱来说,它们的数据源主要来自两种渠道:一种是业务数据,这部分数据是以结构化的形式保存在公司的数据库中,;另一种是网络上公开、抓取的数据,这些数据往往是长文本格式或者网页形式的非结构化数据。

前者只需简单处理就能直接使用,但后者需要先进行数据清洗,借助于NLP技术整理出结构化信息。比如灵吉系统中展示的高法信息,一部分是合作的结构化数据,而另一部是则是将高法网页中裁判文书的文本通过自然语言技术进行数据清洗整理,最终形成机构化数据。

信息抽取的难点在于处理非结构化数据。在下面的图中,我们给出了一个实例。左边是一段非结构化的英文文本,右边是从这些文本中抽取出来的实体和关系。在构建类似的图谱过程当中,主要涉及以下几个方面的自然语言处理技术:

a.实体命名识别(NameEntityRecognition)

b.关系抽取(RelationExtraction)

c.实体统一(EntityResolution)

d.指代消解(CoreferenceResolution)

首先是实体命名识别,就是从文本里提取出实体并对每个实体做分类/打标签:比如从上述文本里,我们可以提取出实体-“NYC”,并标记实体类型为“Location”;我们也可以从中提取出“VirgilsBBQ”,并标记实体类型为“Restarant”。这种过程称之为实体命名识别,这是一项相对比较成熟的技术。其次,我们可以通过关系抽取技术,把实体间的关系从文本中提取出来,比如实体“hotel”和“Hiltonproperty”之间的关系为“in”;“hotel”和“TimeSquare”的关系为“near”等等。

另外,在实体命名识别和关系抽取过程中,有两个比较棘手的问题:一个是实体统一,也就是说有些实体写法上不一样,但其实是指向同一个实体。比如“NYC”和“NewYork”表面上是不同的字符串,但其实指的都是纽约这个城市,需要合并。实体统一不仅可以减少实体的种类,也可以降低图谱的稀疏性(Sparsity);另一个问题是指代消解,也是文本中出现的“it”,“he”,“she”这些词到底指向哪个实体,比如在本文里两个被标记出来的“it”都指向“hotel”这个实体。

而在现实场景中,依旧拿裁判文书来举例,我们需要从中抽取当事人及其相关属性信息,多个当事人的情况同样需要统一平衡,中文与英文不同,没有空格这种相当明显的分隔符,所以在提取人名、企业简称、案由关系事会变得相当的复杂,但通过大量数据积累,通过正则匹配以及机器学习等方式,能解决大部分问题,总体来看。实体统一和指代消解问题相对于前两个问题更具有挑战性。

1
查看完整版本: 知识图谱是什么