徐阿衡 | 知识抽取-实体及关系抽取(一)

 

本文转载自公众号:徐阿衡。

这一篇是关于知识抽取,整理并补充了上学时的两篇笔记 NLP笔记 – Information Extraction 和 NLP笔记 – Relation Extraction,梳理了知识抽取的基本方法,包括传统机器学习及经典的深度学习方法。

知识抽取涉及的“知识”通常是 清楚的、事实性的信息,这些信息来自不同的来源和结构,而对不同数据源进行的知识抽取的方法各有不同,从结构化数据中获取知识用 D2R,其难点在于复杂表数据的处理,包括嵌套表、多列、外键关联等,从链接数据中获取知识用图映射,难点在于数据对齐,从半结构化数据中获取知识用包装器,难点在于 wrapper 的自动生成、更新和维护,这一篇主要讲从文本中获取知识,也就是我们广义上说的信息抽取。

信息抽取三个最重要/最受关注的子任务:

  • 实体抽取
也就是命名实体识别,包括实体的检测(find)和分类(classify)
  • 关系抽取
通常我们说的三元组(triple) 抽取,一个谓词(predicate)带 2 个形参(argument),如 Founding-location(IBM,New York)
  • 事件抽取
相当于一种多元关系的抽取

篇幅限制,这一篇主要整理实体抽取和关系抽取,下一篇再上事件抽取。

1. 相关竞赛与数据集

信息抽取相关的会议/数据集有 MUC、ACE、KBP、SemEval 等。其中,ACE(Automated Content Extraction) 对 MUC 定义的任务进行了融合、分类和细化,KBP(Knowledge Base Population) 对 ACE 定义的任务进一步修订,分了四个独立任务和一个整合任务,包括

  • Cold Start KB (CSKB)
端到端的冷启动知识构建
  • Entity Discovery and Linking (EDL)
实体发现与链接
  • Slot Filling (SF)
槽填充
  • Event
事件抽取
  • Belief/Sentiment (BeSt)
信念和情感

至于 SemEval 主要是词义消歧评测,目的是增加人们对词义、多义现象的理解。

ACE 的 17 类关系

具体的应用实例

常用的 Freebase relations

还有的一些世界范围内知名的高质量大规模开放知识图谱,如包括 DBpedia、Yago、Wikidata、BabelNet、ConceptNet 以及 Microsoft Concept Graph等,中文的有开放知识图谱平台 OpenKG……

2. 实体抽取

实体抽取或者说命名实体识别(NER)在信息抽取中扮演着重要角色,主要抽取的是文本中的原子信息元素,如人名、组织/机构名、地理位置、事件/日期、字符值、金额值等。实体抽取任务有两个关键词:find & classify,找到命名实体,并进行分类。

主要应用:

  • 命名实体作为索引和超链接
  • 情感分析的准备步骤,在情感分析的文本中需要识别公司和产品,才能进一步为情感词归类
  • 关系抽取(Relation Extraction)的准备步骤
  • QA 系统,大多数答案都是命名实体

2.1 传统机器学习方法

标准流程:

Training:

  1. 收集代表性的训练文档
  2. 为每个 token 标记命名实体(不属于任何实体就标 Others O)
  3. 设计适合该文本和类别的特征提取方法
  4. 训练一个 sequence classifier 来预测数据的 label

Testing:

  1. 收集测试文档
  2. 运行 sequence classifier 给每个 token 做标记
  3. 输出命名实体

2.1.1 编码方式

看一下最常用的两种 sequence labeling 的编码方式,IO encoding 简单的为每个 token 标注,如果不是 NE 就标为 O(other),所以一共需要 C+1 个类别(label)。而 IOB encoding 需要 2C+1 个类别(label),因为它标了 NE boundary,B 代表 begining,NE 开始的位置,I 代表 continue,承接上一个 NE,如果连续出现两个 B,自然就表示上一个 B 已经结束了。

在 Stanford NER 里,用的其实是 IO encoding,有两个原因,一是 IO encoding 运行速度更快,二是在实践中,两种编码方式的效果差不多。IO encoding 确定 boundary 的依据是,如果有连续的 token 类别不为 O,那么类别相同,同属一个 NE;类别不相同,就分割,相同的 sequence 属同一个 NE。而实际上,两个 NE 是相同类别这样的现象出现的很少,如上面的例子,Sue,Mengqiu Huang 两个同是 PER 类别,并不多见,更重要的是,在实践中,虽然 IOB encoding 能规定 boundary,而实际上它也很少能做对,它也会把 Sue Mengqiu Huang 分为同一个 PER,这主要是因为更多的类别会带来数据的稀疏。

2.1.2 特征选择

Features for sequence labeling:

再来看两个比较重要的 feature

Word substrings

Word substrings (包括前后缀)的作用是很大的,以下面的例子为例,NE 中间有 ‘oxa’ 的十有八九是 drug,NE 中间有 ‘:’ 的则大多都是 movie,而以 field 结尾的 NE 往往是 place。

Word shapes

可以做一个 mapping,把 单词长度(length)、大写(capitalization)、数字(numerals)、希腊字母(Greek eltters)、单词内部标点(internal punctuation) 这些字本身的特征都考虑进去。

如下表,把所有大写字母映射为 X,小写字母映射为 x,数字映射为 d…

2.1.3 序列模型

NLP 的很多数据都是序列类型,像 sequence of characters, words, phrases, lines, sentences,我们可以把这些任务当做是给每一个 item 打标签,如下图:

常见的序列模型有 有向图模型 如 HMM,假设特征之间相互独立,找到使得 P(X,Y) 最大的参数,生成式模型;无向图模型 如 CRF,没有特征独立的假设,找到使得 P(Y|X) 最大的参数,判别式模型。相对而言,CRF 优化的是联合概率(整个序列,实际就是最终目标),而不是每个时刻最优点的拼接,一般而言性能比 CRF 要好,在小数据上拟合也会更好。

整个流程如图所示:

讨论下最后的 inference

最基础的是 “decide one sequence at a time and move on”,也就是一个 greedy inference,比如在词性标注中,可能模型在位置 2 的时候挑了当前最好的 PoS tag,但是到了位置 4 的时候,其实发现位置 2 应该有更好的选择,然而,greedy inference 并不会 care 这些。因为它是贪婪的,只要当前最好就行了。除了 greedy inference,比较常见的还有 beam inference 和 viterbi inference。

2.1.3.1 Greedy Inference

优点:

  1. 速度快,没有额外的内存要求
  2. 非常易于实现
  3. 有很丰富的特征,表现不错

缺点:

  1. 贪婪

2.1.3.2 Beam Inference

  • 在每一个位置,都保留 top k 种可能(当前的完整序列)
  • 在每个状态下,考虑上一步保存的序列来进行推进

优点:

  1. 速度快,没有额外的内存要求
  2. 易于实现(不用动态规划)

缺点:

  1. 不精确,不能保证找到全局最优

2.1.3.3 Viterbi Inference

  • 动态规划
  • 需要维护一个 fix small window

优点:

  1. 非常精确,能保证找到全局最优序列

缺点:

  1. 难以实现远距离的 state-state interaction

2.2 深度学习方法

2.2.1 LSTM+CRF

最经典的 LSTM+CRF,端到端的判别式模型,LSTM 利用过去的输入特征,CRF 利用句子级的标注信息,可以有效地使用过去和未来的标注来预测当前的标注。

2.3 评价指标

评估 IR 系统或者文本分类的任务,我们通常会用到 precision,recall,F1 这种 set-based metrics,见信息检索评价的 Unranked Boolean Retrieval Model 部分,但是在这里对 NER 这种 sequence 类型任务的评估,如果用这些 metrics,可能出现 boundary error 之类的问题。因为 NER 的评估是按每个 entity 而不是每个 token 来计算的,我们需要看 entity 的 boundary。

以下面一句话为例

1 First Bank of Chicago

announced earnings…

正确的 NE 应该是 First Bank of Chicago,类别是 ORG,然而系统识别了 Bank of Chicago,类别 ORG,也就是说,右边界(right boundary)是对的,但是左边界(left boundary)是错误的,这其实是一个常见的错误。

1

2

3

4

5

正确的标注:

ORG – (1,4)

系统:

ORG – (2,4)

而计算 precision,recall 的时候,我们会发现,对 ORG – (1,4) 而言,系统产生了一个 false negative,对 ORG – (2,4) 而言,系统产生了一个 false positive!所以系统有了 2 个错误。F1 measure 对 precision,recall 进行加权平均,结果会更好一些,所以经常用来作为 NER 任务的评估手段。另外,专家提出了别的建议,比如说给出 partial credit,如 MUC scorer metric,然而,对哪种 case 给多少的 credit,也需要精心设计。

2.4 其他-实体链接

实体识别完成之后还需要进行归一化,比如万达集团、大连万达集团、万达集团有限公司这些实体其实是可以融合的。

主要步骤如下:

  1. 实体识别
命名实体识别,词典匹配
  2. 候选实体生成
表层名字扩展,搜索引擎,查询实体引用表
  3. 候选实体消歧
图方法,概率生成模型,主题模型,深度学习

补充一些开源系统:

  • http://acube.di.unipi.it/tagme
  • https://github.com/parthatalukdar/junto
  • http://orion.tw.rpi.edu/~zhengj3/wod/wikify.php
  • https://github.com/yahoo/FEL
  • https://github.com/yago-naga/aida
  • http://www.nzdl.org/wikification/about.html
  • http://aksw.org/Projects/AGDISTIS.html
  • https://github.com/dalab/pboh-entity-linking

-End-

原文链接:http://www.shuang0420.com/2018/09/15/%E7%9F%A5%E8%AF%86%E6%8A%BD%E5%8F%96-%E5%AE%9E%E4%BD%93%E5%8F%8A%E5%85%B3%E7%B3%BB%E6%8A%BD%E5%8F%96/

继续阅读“徐阿衡 | 知识抽取-实体及关系抽取(一)”

学术前沿——双曲空间中的网络、单词及其知识图谱

选自集智俱乐部 

埃舍尔版版画是描绘了双曲空间

导语

康奈尔大学计算机科学系教授Chris De Sa 与斯坦福大学计算机科学系博士生Albert Gu 携手构建出高效的嵌入算法——使用双曲线组合结构嵌入算法,以更低的维度更好地嵌入文本、知识图谱等非结构化的数据。

编译:集智俱乐部翻译组

原题:HyperE: Hyperbolic Embeddings for Entities

神奇的双曲线嵌入算法

最早在2017年,Nickel&Kiela提出了使用双曲线代替欧几里得嵌入空间来表示分层数据(该过程也称嵌入),并且在嵌入图形时表现出了较好的结果。

由此,双曲线嵌入在机器学习界引起了广泛的关注。那么双曲线嵌入相对于传统的嵌入方法有什么优点?

  1. 双曲线嵌入可以在很少的维度上保留图形实体间的距离
  2. 充分表达层级结构

今天介绍的的这篇文章提出的一种双曲线嵌入的算法,该算法不仅可以完成知识库处理相关的任务,并且可以作为一个用来处理NLP任务,例如Question & Answering等。

在论文中,作者提出了解决优化潜在问题的新方法,并阐明了如何权衡每种方法。当嵌入分层数据结构(如同义词或类型层次结构)时,双曲线嵌入可以用较少的维度,表达出复杂的网络信息。

例如,给定一棵树形的网络,该论文给出了一个组合结构,可以将树嵌入双曲空间中,在不使用优化算法时就可以达到较低的失真率。在WordNet上,在双曲空间中只使用了两个维度,该嵌入算法平均精度(MAP)就达到了0.989,Nickel等人提出的双曲空间结构使用200维也只获得了0.87的平均精度

为了嵌入一般度量空间,论文中提出了多维尺度(h-MDS)的双曲线推广算法。该算法展示了如何从距离中精确恢复双曲点,算法显示,即使在维度很少的情况下,h-MDS算法也可以很好地恢复双曲点。

数据库及源码下载

论文在如下三个层次网络中做了双曲嵌入的实验,这些网络分别为:WordNet、Wikidata、UMLS(统一医学语言系统)和MusicBrainz(开放数据音乐数据库)。该算法通过“相似性”和“类比”的双曲线评估嵌入的好坏。并基于PyTorch实现了一个可以处理不完整信息并且可扩展的HyperE 嵌入算法。文章中各种实体嵌入可以在下面以GloVe格式下载。

WordNet:https://wordnet.princeton.edu/

Wikidata:https://www.wikidata.org/wiki/Wikidata:Main_Page

UMLS:https://www.wikidata.org/wiki/Wikidata:Main_Page

MusicBrainz:https://musicbrainz.org

读者们可以在GloVe格式的WordNet,Wikidata,UMLS和MusicBrainz中以各种维度(10d,20d,50d,100d)下载64位精度的实体嵌入。因为双曲线嵌入与欧几里得嵌入不同,嵌入的比例因子不是固定不变的,因此作者在顶行中写明了嵌入的比例因子。

通过将知识图谱中实体对应的双曲线距离除以所提供的比例因子,可以近似地恢复实体之间的输入图形的距离。该算法还提供了预处理脚本以创建输入图的边缘列表。这里还可以使用作者的公开的代码来查看如何使用双曲线实体嵌入。

实现双曲实体嵌入的公开代码:

https://github.com/belizgunel/hyperE/tree/master/demo

来自Wordnet的WordNet Hypernym,域主题和成员全名层次结构。(WordNet.zip 161MB)

https://stanford.box.com/shared/static/u06nzqy2eyi6eh01830ci156giepxrj0.zip

Wikidata实体层次结构,包括来自各个领域的100个属性,包括生物学,体育,经济学,政治学,计算机科学等等。( Wikidata.zip 2.15GB)

https://stanford.box.com/shared/static/ozkvxryzib6kmjad9hyb0emq84to2ssz.zip

UMLS诊断层次结构来自ICD-9-CM和UMLS的ICD-10-CM词汇表。(UMLS.zip 123MB)

https://stanford.box.com/shared/static/yk0nwnix1a9nda13ws5hbdetm4zo9mvw.zip

MusicBrainz来自MusicBrainz的样本艺术家,专辑和歌曲层次结构。(MusicBrainz.zip 16MB)

https://stanford.box.com/shared/static/8anfeaia53pwsagvag9g6rlys932sj00.zip

双曲空间中的“词类比”

在许多自然语言处理(NLP)应用中,将词嵌入欧几里得空间中可以成功地编码单词之间的语义关系。评估词嵌入效果好坏的一种方法是“词类比”准确度。比如,经常在小学语文卷子中出的填空题目:

“北京(a)对中国(b)=华盛顿(c)对______ ”。

传统的NLP模型GloVe模型通过嵌入的余弦相似性找到词d,d的词嵌入最接近向量b -a + c。

在HyperE嵌入算法中,作者使用双曲线距离长短作为相似度量,距离越小相似性越高。换句话说,将具有最小双曲线距离的向量d作为b -a + c双曲线模拟的输出。我们将这个类比实验扩展到Wikidata中的实体层次结构,并尝试了一些具有不同关系的样本。

下边的表格是使用文章中的组合方法生成的实体嵌入做“词类似问答“的结果。嵌入为10维,64位精度。可以看出嵌入向量d正确的回答了”词类似“问题。

检测关系

知识图谱: 实体-关系-实体/实体-属性-属性值

在音乐数据嵌入中,歌曲 – 专辑连边权重为2,专辑 – 艺术家连边权重为1.我们可以使用这些权重和嵌入式层次结构通过简单地计算嵌入点之间的双曲线距离来检测实体之间的关系类型。

例如,第一行的两首歌曲来自甲壳虫乐队的“Sgt.Pepper’s Lonely Hearts Club Band”专辑,文章的嵌入识别出了这种关系。接下来第二行的两首歌是披头士乐队的歌曲,但来自不同的专辑。最后,滚石乐队和AC / DC乐队的歌曲显示为无关,双曲线中距离的远近可以很好的表示两首歌曲实际关系的远近。

嵌入效果

与欧几里得空间相比,双曲空间能够将知识图谱中的层次关系信息压缩到非常少的维度。保留几个输入的关系图中实体对之间的关系,通过实验的准确率及召回率的结果我们得知:双曲线空间嵌入通过保持实体间的距离实现多层嵌入。在此任务中,“正确”代表着,如果输入图形中的实体对有一条连边,则最终实体嵌入之间的双曲线距离除以基于输入图形计算的比例因子之后应当保持在1(±0.01)内。

每一个嵌入都是使用我们的组合方法生成的,维度是10维,精度为64位。下图是HyperE的精确率和召回率。

双曲空间可视化

在欧几里得空间中,圆周和圆盘区域分别随半径线性、平方地增长。然而,在双曲空间中,它们都相对于半径呈指数增长,这一性质特别有利于嵌入树型的分层结构。

下面介绍了不同嵌入方法的一些可视化。左图是使用作者基于随机梯度下降的优化方法嵌入一个简单的树,它最小化基于双曲线距离的损失函数。对于相同的输入图,右图是使用作者提出的组合结构,这是一种确切的算法,可以精确地放置树顶点。关于组合算法,在作者的论文中有详细的阐述。

论文题目:Representation Tradeoffs for Hyperbolic Embeddings

论文地址:https://arxiv.org/pdf/1804.03329.pdf

上图:优化的随机梯度下降法构造,下图:组合算法构造

相关工作

双曲线嵌入的研究是由最近的研究论文推动的,这些论文表明双曲线表示适用于各种层次结构,应用包括Tay等人的问答(QA)系统——HyperQA (2017),Chamberlain等人的顶点分类器(2017),以及Nickel&Kiela(2017)中的链路预测。

Ganea等人(2018)提出了嵌入蕴涵关系,即用带有双曲锥的有向无环图作为启发式算法。Dhingra等人(2018)研究了双曲词和句子嵌入。其中许多论文使用双曲线几何的庞加莱模型 ; 作者的的工作和Nickel&Kiela(2018)认为其他模型,如双曲面空间的双曲面模型,对于某些任务可能更简单。当然,总是可以在模型之间进行转换。

最近的研究方法试图将双曲线运算添加到神经网络中。Gulcehre等(2018)使用双曲面模型引入了双曲线形式的注意力机制。

双曲线运算也可以应用于支持向量机,如Cho等人的研究(2018)。

基于双曲线优化的下降方法也有了新的应用研究; 这些研究作品包括Enokida等(2018)用于测地线更新,Zhang和Sra(2018)用于加速黎曼梯度法,而Wilson&Leimeister(2018)用于使用双曲面模型在双曲空间中进行梯度下降。

 

参考文献及论文地址

1.HyperE (2018) Representation Tradeoffs for Hyperbolic Embeddings

https://arxiv.org/pdf/1804.03329.pdf

2.HyperQA (2017)Hyperbolic Representation Learning for Fast and Efficient Neural Question Answering

https://arxiv.org/pdf/1707.07847.pdf

3.Chamberlain(2017)Neural Embeddings of Graphs in Hyperbolic Space

https://arxiv.org/pdf/1705.10359.pdf

4.Nickel&Kiela(2017)Hyperbolic Representation Learning for Fast and Efficient Neural Question Answering

https://arxiv.org/pdf/1707.07847.pdf

5.Ganea (2017) Poincaré Embeddings for Learning Hierarchical Representations

https://arxiv.org/pdf/1705.08039.pdf

6.Nickel&Kiela(2018)Learning Continuous Hierarchies in the Lorentz Model of Hyperbolic Geometry

https://arxiv.org/pdf/1806.03417.pdf

7.Gulcehre(2018) Hyperbolic Attention Networks

https://arxiv.org/pdf/1805.09786.pdf

8.Hyunghoon Cho (2018) Large-Margin Classification in Hyperbolic Space Hyunghoon Cho

https://arxiv.org/pdf/1806.00437.pdf

9.Enokida (2018) Stable Geodesic Update on Hyperbolic Space and its Application to Poincaré Embeddings

https://arxiv.org/pdf/1805.10487.pdf

10.Zhang&Sra(2018)Towards Riemannian Accelerated Gradient Methods

https://arxiv.org/pdf/1806.02812.pdf

11.Wilson&Leimeister(2018)Gradient descent in hyperbolic space

https://arxiv.org/pdf/1805.08207.pdf

12.Octavian-Eugen(2018) Hyperbolic Entailment Cones for Learning Hierarchical Embeddings

https://arxiv.org/pdf/1804.01882.pdf

13.Bhuwan Dhingra (2018)Embedding Text in Hyperbolic Spaces

https://arxiv.org/pdf/1806.04313.pdf

作者:Beliz Gunel, Fred Sala, Albert Gu, Christopher Ré

译者:陈孟园

审校:谷伟伟

编辑:集智小编

原文:https://hazyresearch.github.io/hyperE/

 

 

 

中国中文信息学会发布《2018知识图谱发展报告》

转自AMiner 学术头条 

中国中文信息学会成立于1981年6月。钱伟长、甄健民、安其春等为主要发起人。

中国中文信息学会是依法成立并经中国科学技术协会接纳的科学技术工作者的学术性群众团体,是具有独立社团法人资格的国家一级学会

其中包括了如下专业委员会:

  • 汉字编码专业委员会
  • 民族语言文字信息专业委员会
  • 基础理论专业委员会
  • 汉字信息处理系统专业委员会
  • 汉字设备专业委员会
  • 自然语言处理专业委员会
  • 计算语言学专业委员会
  • 汉字字形信息专业委员会
  • 教育专业委员会
  • 速记专业委员会
  • 人工智能与教育专业委员会
  • 信息检索专业委员会
  • 社会媒体处理专业委员会
  • 语言与知识计算专业委员会

此次发布《2018知识图谱发展报告》的是语言与知识计算专业委员会。

中国中文信息学会“语言与知识计算专业委员会” 致力于促进语言与知识计算领域的学术研究和产业发展,特别是促进从语言资源中获取知识的方法和策略的探索,以及促进知识驱动的语言理解技术和方案的研究。

“语言与知识计算专业委员会”于2014年筹办,并于武汉召开了第一次专业委员会工作会议,选举清华大学李涓子教授担任第一届专业委员会主任。目前专委会共有委员63人,分别来自于国内外的知名高校、研究所和企业。

专委会目前主要面向的研究领域有:

  •  知识表示
  • 知识图谱构建与信息抽取
  •  语义计算
  • 自然语言理解
  •  语义集成
  • 知识存储
  • 知识共享与基于知识的系统
  • 知识推理
  • 链接数据

《2018知识图谱发展报告》一共有163页,是语言与知识计算专委会邀请知识图谱技术领域专家对本学科方向和前沿技术的一次梳理,并在今后定期更新最新进展。

报告的定位是深度科普,旨在向政府、企业、媒体等对知识图谱感兴趣的研究机构和企业界介绍相关领域的基本概念、研究和应用方向,向高校、科研院所和高技术企业中从事相关工作的专业人士介绍相关领域的前沿技术和发展趋势。

报告目录如下(文末附下载链接)

第一章 知识表示与建模

第二章 知识表示学习

第三章 实体识别与链接

第四章 实体关系学习

第五章 事件知识学习

第六章 知识存储与查询

第七章 知识推理

第八章 通用和领域知识图谱

第九章 语义集成

第十章 语义搜索

第十一章 基于知识的问答

本文摘选了《第八章 通用和领域知识图谱》的部分内容,如需完整版报告,请至文末下载。

通用知识图谱案例

国外

国外的 DBpedia [Auer et al,2007]使用固定的模式从维基百科中抽取信息实体,当前拥有 127 种语言的超过两千八百万实体以及数亿 RDF 三元组;Yago[Suchanek et al,2007]则整合维基百科与 WordNet 的大规模本体, 拥有 10 种语言 约 459 万个实体,2400 万个事实;Babelnet [Navigli et al,2012]则采用将 WordNet词典与 Wikipedia 百科集成的方法,构建了一个目前最大规模的多语言词典知识 库,包含 271 种语言 1400 万同义词组、36.4 万词语关系和 3.8 亿链接关系。

国内

国内的 Zhishi.me 从开放的百科数据中抽取结构化数据,当前已融合了包括 百度百科、互动百科、中文维基三大百科的数据,拥有 1000 万个实体数据、一 亿两千万个 RDF 三元组;以通用百科为主线,结合垂直领域的 CN-DBPedia [Xu et al,2017],则从百科类网站的纯文本页面中提取信息,经过滤、融合、推断等操 作后形成高质量的结构化数据;XLore[Wang et al,2013]则是基于中文维基百科、 英文维基百科、百度百科、互动百科构建的大规模中英文知识平衡知识图谱。

领域知识图谱案例

领域知识图谱常常用来辅助各种复杂的分析应用或决策支持,如下图所示,在多个领域均有应用,不同领域的构建方案与应用形式则有所不同。

本文将以电商、企业商业、图情、创投四个领域为例,从知识建模的角度给大家介绍。

电商知识建模

电商知识图谱以商品为核心,以人、货、场为主要框架。目前共涉及 9 大类一级本体和 27 大类二级本体。一级本体分别为:人、货、场、百科知识、行业竞对、品质、类目、资质和舆情。人货场构成了商品信息流通的闭环,其他本体主要给予商品更丰富的信息描述。下图描述了商品知识图谱的数据模型,数据来源包含国内-国外数据,商业-国家数据,线上-线下等多源数据。目前有百亿级的节点和百亿级的关系边。

图情知识建模

图情知识图谱的构建一般采用自顶向下的方式进行知识建模,通常从资源类型数据入手,整理出资源的发表者(人物),发表机构(机构),关键词(知识点), 发表载体(刊物)等等类型的实体及各自之间的关系,同时通过人物、机构的主页进行实体属性的扩充。下图是一张典型的图情知识图谱 schema 模型,展示了概念与概念间的关系以及部分属性。

企业商业知识建模

构建企业商业知识图谱,通常关注企业与人物的任职关系、投资关系、分支机构关系。 从相应网站中抽取企业信息、人物形象、诉讼信息以及信用信息,再添加上市公司、股票等概念和相应属性。企业招投标信息、上市公司的股票信息可从相 关网站进行采集。企业的竞争关系、并购事件则从百科站点中进行抽取。这些信息存在于信息框、列表、表格等半结构化数据,以及无结构的纯文本中。其模式如下图所示。

创投知识建模

要定义创投知识图谱 schema,首先要理解创投领域的相关概念跟关系。创投领域 Schema 中涉及的概念主要包括初创公司、投资机构、投资人、公司高管、行业以及投融资事件等。融资事件是创投领域的核心,不同于实体节点,融资事件描述的是一个事实,具有抽象性。典型的创投 schema 如下图所示:


关注我们

你想要的科技资讯都在这

 

 

肖仰华 | 领域知识图谱落地实践中的问题与对策

本文转载自公众号:知识工场

肖仰华教授2万字长文为您深度剖析领域知识图谱,对领域知识图谱技术与落地应用中的一系列关键问题做了系统的梳理与解答。

肖仰华博士,复旦大学计算机科学与技术学院教授,博士生导师,知识工场实验室负责人。

报告摘要:近年来,知识图谱技术进展迅速,各种领域知识图谱技术在很多领域或行业取得了显著落地效果。在领域知识图谱技术的落地实践过程中涌现出一大批理论与工程问题。本报告结合复旦大学知识工场实验室十多个领域知识图谱落地项目实践,尝试对这些问题进行初步解答,梳理这些问题背后的关键科学问题,总结领域知识图谱技术落地的最佳实践,以期为各行业的知识图谱落地实践提供参考。

下文根据肖仰华教授近期所作报告《领域知识图谱落地实践中的问题与对策》整理而成,并经肖仰华教授亲自审核。

随着近几年知识图谱技术的进步,知识图谱研究与落地发生了一些转向。其中一个重要变化就是越来越多的研究与落地工作从通用知识图谱转向了领域或行业知识图谱,转向了企业知识图谱。知识图谱技术与各行业的深度融合已经成为一个重要趋势。在这一过程当中,涌现出一系列理论与技术问题。例如:知识图谱技术到底能够解决怎样的行业痛点问题?知识图谱技术与各行业融合的具体路径是怎样的?领域知识图谱与通用知识图谱的联系与区别是什么?领域知识图谱落地过程当中的关键科学技术问题是什么?这一系列问题的剖析与回答是进一步推动知识图谱技术落地实践、生根开花的关键所在。本次报告主要结合复旦大学知识工场实验室在十多个行业的领域知识图谱实践经历,对领域知识图谱落地实践中的关键问题以及主要对策做个初步解答。

报告思路很简单,是一问一答的形式。这里列出的问题是各个行业普遍关心的代表性的关键问题。

首先回答什么是领域知识图谱?领域知识图谱(Domain-specific Knowledge Graph: DKG)的概念是从通用知识图谱(General-purpose Knowledge Graph: GKG)演化而来,所以我们首先阐述什么是知识图谱(knowledge graph)。在回答什么是知识图谱这个问题上有个非常有意思的现象,一直以来,工业界和学术界都没有对于知识图谱给出一个严格的定义。如果大家去搜维基百科,会看到维基百科说知识图谱是Google的一种知识表示。然而,一个相对严格的定义是必要的,我给出的定义是“大规模语义网络”。理解这个定义有两个要点。第一个是语义网络,语义网络包含的是实体、概念以及实体和概念之间各种各样的语义关系。比如C罗是一个足球运动员,是一个实体,金球奖也是一个实体。何为实体?黑格尔在《小逻辑》里面曾经给实体下过一个定义:“能够独立存在的,作为一切属性的基础和万物本原的东西”。也就是说实体是属性赖以存在的基础,必须是自在的,也就是独立的、不依附于其他东西而存在的。比如身高,单单说身高是没有意义的,说“运动员”这个类别的身高也是没有意义的,必须说某个人的身高,才是有明确所指,有意义的。理解何为实体,对于进一步理解属性、概念是十分必要的。再来看概念(concept),概念又称之为类别(type)、类(category)等。比如“运动员”,不是指某一个运动员,而是指一类人,这就是一个概念。语义网络中的关联都是语义关联,这些语义关联发生在实体之间、概念之间或者实体与概念之间。实体与概念之间是instanceOf(实例)关系,比如“C罗”是“运动员”的一个实例。概念之间是subclassOf(子类)关系,比如“足球运动员”是“运动员”的一个子类。实体与实体之间的关系十分多样,比如“C罗”效力于“皇家马德里球队”。

理解知识图谱的第二个要点是大规模。除了语义网络之外,上个世纪伴随着专家系统的研制而发展出了类别多样的知识表示形式,比如产生式规则、本体、框架,还有决策树、贝叶斯网络、马尔可夫逻辑网络等。这些知识表示表达了现实世界各种复杂语义。知识表示多种多样,语义网络只是各种知识表示中的一种而已。既然上世纪七八十年代有如此多的知识表示,而且知识图谱本质上是语义网络,为什么今天还要提知识图谱?那是因为知识图谱与传统七八十年代的知识表示有一个根本的差别,那就是在规模上的差别。知识图谱是一个大规模语义网络,而七八十年代的语义网络是个典型的小知识(small knowledge)。知识图谱的规模巨大,像Google knowledge graph在2012年发布之初就有5亿多的实体,10亿多的关系,如今规模更大。知识图谱的规模之所以如此巨大,是因为它强调对于实体的覆盖。比如说运动员作为一个类别在知识图谱里涵盖了数以万计诸如C罗这样的实体。知识图谱的规模效应带来了效用方面的质变。知识图谱是典型的大数据时代产物。关于这些观点的详细描述参考本人的《知识图谱与认知智能》,在此不再赘述。

那什么是领域知识图谱呢?比如“足球知识图谱”,里面大多都是跟足球相关的实体和概念。如果知识图谱聚焦在特定领域,就可以认为是领域知识图谱。领域知识图谱的范畴再大一些就是行业知识图谱了,比如农业知识图谱。近几年一些大型企业对于利用知识图谱解决企业自身的问题十分感兴趣,于是就有了横贯企业各核心流程的企业知识图谱。领域知识图谱、行业知识图谱与企业知识图谱有时边界也十分模糊。近几年,这几类知识图谱得到越来越多的关注。

在理解领域知识图谱时,我想指出一个非常重要的观点,我称之为“NoKG”,也就是Not only KG。这里是借鉴“NoSQL”的说法。首先,知识图谱只是知识表示的一种,单单知识图谱不足以表达现实世界的丰富语义,不足以解决所有问题。比如很多领域有着丰富的if-then规则(比如故障维修、计算机系统配置),这些规则利用知识图谱表达就很牵强,特别是对于if A and B then C 这样的规则。条件部分的原子表达式之间的关系可以很复杂,利用知识图谱难以表达。知识表示方面的缺陷限制了知识图谱解决问题的范围。其次,知识图谱辅以其他知识表示则有可能解决很多复杂的实际问题。作为一种语义网络,知识图谱在大数据的赋能下就已经能够解决很多实际问题。可以设想一下,还有更多的知识表示没有突破规模瓶颈。在大数据的赋能下,其他类型的知识表示也将能够解决更多实际的问题。越来越多的领域应用需要的知识已经突破了知识图谱的范围,对其他知识(比如产生式规则、贝叶斯网络、决策树等)提出了诉求。比如,我们正在尝试联合使用知识图谱与产生式规则实现面向故障诊断的精准语义检索。

NoKG的另一层含义在于领域应用不仅需要静态知识,更需要动态知识。知识图谱侧重于表达实体、概念之间的语义关联,这些语义关联大多是静态的、显性的、客观的、明确的。而实际应用中对过程性、决策性知识是有着大量需求的,这些知识大部分是动态的、隐形的、带有一定主观性的,比如疾病诊断、投资决策、司法解释等等。这些应用需要把决策的因素、机制与过程加以表达。动态知识的沉淀对于很多行业来说是强需求。随着我国人口红利消失,人力成本持续提高,特别是富有经验的领域专家成本越加高昂。这些人员一旦流失,会给企业造成巨大损失。为此,企业特别需要将领域专家大脑中的决策知识加以沉淀,赋予机器,从而一定程度上降低对专家的依赖。但是,动态知识的表达与获取仍然是个具有重大挑战的技术问题。很多决策过程难以明确表达,很多决策因素是隐性的。比如老中医看病,中医智能化一直希望将有经验的老中医的看病经验沉淀下来。但是老中医自己也未必说得清楚是根据什么看病的。虽然中医也有朴素的理论在支撑其诊断,但总体而言整个过程是模糊的。在传统知识管理领域曾经设计出很多激励制度以促进企业内的知识表达与沉淀,但是阻力重重,收效甚微。关键问题在于工程师、分析师、医生等等领域专家自己也不知道如何表达。传统知识工程通过专业的知识工程师协助领域专家进行知识获取,但总体上的代价太大,过程太重,不易成功。动态过程的知识表达已经困难重重,知识获取就更加雪上加霜了。曾有人设想获取金牌投资经理投资决策的知识,尝试为投资经理提供新闻阅读工具,通过其点击行为把握其所关注新闻,甚至通过眼球跟踪捕捉其关注的文章片段,以期精准捕捉其决策要素。知识获取之困难可见一斑。但是知识表示及获取的重心将逐步过渡到动态知识是必然趋势,也是摆在研究人员面前的攻关战。

现在回答第二个问题,DKG(领域知识图谱)和GKG(通用知识图谱)的关系和区别。首先来看GKG和DKG的区别。两者之间的区别是明显的,体现在知识表示、知识获取和知识应用三个层面。在知识表示层面的差别可以从广度、深度和粒度这三个维度加以考察。从广度来看,GKG涵盖的范围明显大于DKG。从深度来看,DKG通常更深,尤其体现在概念图谱的层级体系上。比如,在娱乐领域,追星族们可能很关心“内地鼻子长得帅的男明星”,在电商领域单单“连衣裙”不足以满足人们的购物需求,电商图谱中往往要涵盖“韩版夏装连衣裙”这样的细分品类。如何表达与处理这些较深层次的概念对于很多领域知识图谱应用而言是个巨大挑战。需要指出的是层次较深的细粒度概念往往不是基本概念(basic concept)。这意味着不同人对这些深层次概念有着不同的认知体验的,因而会有较大的主观分歧。这就是很多人工构建的概念层级深到一定层次就很难继续下去的重要原因。此时,数据驱动的自下而上的自动化方法往往比较适合。第三个维度是知识表示的粒度,DKG通常涵盖细粒度的知识。知识表示是有粒度的,知识的基本单元可以是一个文档,也可以是文章中的段落、法律中的条款、教育资源中的知识点等等。传统知识管理往往以文档为单位组织企业知识资源。在司法智能中的司法解释往往需要将知识粒度控制在条款级别。在教育智能化领域,学科的知识点往往是个合适的粒度,以知识点为中心组织教学素材和资源是个可行的思路。知识表示的粒度也可以细化到知识图谱中的实体与属性级别,或者是逻辑规则中的条件与结果。比如法律条款可以进一步细化到由条件与结果构成的产生式规则,数学中的很多定理也可以进一步细化为相关的公理系统(一组产生式规则)。既然知识表示的粒度是可控的,我们应该如何控制呢?很多场景下知识表示的粒度是个需要仔细斟酌的问题。一般而言,粒度越细表达能力越强,但是其表达与获取代价也越大。细粒度知识表示一般是领域应用的强需求之一。比如在知识管理领域,粒度粗放已经成为阻碍企业知识管理发展的根本问题。传统知识搜索只能搜索到文档级别,如果不幸这个文档含有1000页内容,则会给用户带来巨大麻烦。但是,凡事过犹不及,太细粒度的知识表示也往往会给知识获取带来巨大的复杂性。合理控制知识表示的粒度,不盲目求精求细,是知识库技术落地成功的关键思路之一很多落地实践中过早地陷入细粒度知识获取的泥潭当中,消耗巨大但收效甚微。但事实上细粒度的知识表示在很多场景下也是不必要的。因此,在实践中建议紧扣应用需求,从应用出发反推需要怎样粒度的知识表示。

在知识获取层面,DKG对质量往往有着极为苛刻的要求。因为很多领域应用场景是极为严肃的(也就是mission critical 的AI应用)。比如医疗,某个药物有哪些禁忌症,这类知识是不能出错的。对质量的苛刻要求自然就意味着领域知识图谱构建过程中专家参与的程度相对较高。需要指出的是,专家的积极干预并不意味着盲目的手动构建。如何应用好人力资源,包括哪些环节让人参与以及专家参与的具体方式等问题一直以来就是领域知识图谱落地的关键问题。在众包计算中有不少方法值得借鉴。但是对于有着依赖专家经验的历史传统而言,如何尽可能降低人力资源的成本是个值得深入研究的问题。一般而言,我们期望构建过程尽可能自动化;但是由于对目标图谱有着苛刻的质量要求,最终的知识验证过程还是要诉诸人力。较多的人工干预自然决定了领域知识图谱落地过程自动化程度相对较低。相比较而言,通用知识图谱构建一定要高度自动化,因为通用知识图谱规模太大(动辄数千万的实体,数亿的关系),如果没有自动化的办法,根本无法推进,除非存在有效的大规模众包化手段,比如知识类互动游戏等。

在知识应用层面,首先,领域知识图谱的推理链条往往相对较长。原因有两个方面。一是领域知识图谱相对密集。比如某个疾病在通用知识库中相关实体可能寥寥无几,但是在一个医疗知识图谱中相关实体可能数以百计。知识库建设有一个有意思的现象那就是永远不要指望知识库是完备的。完备是知识库建设永远在追求但却无法企及的目标。但是,DKG相对于GKG在单个实体的相关知识覆盖面有着明显优势。也正是基于此,领域知识图谱上的推理链条可以较长。在一个相对稠密的领域知识图谱上长距离推理之后的结果仍然还可能是个有意义的结果。但是在通用知识图谱上,由于其相对稀疏,多步推理之后语义漂移(semantic drift)严重,其推理结果很容易“面目全非”、“离题千里”,令人难以理解了。所以在GKG之上的推理操作大都是基于上下文的一到两步的推理。比如搜索“刘德华”,可以推荐他的歌曲,那是因为知识图谱告知我们刘德华是一个歌星,主要作品是歌曲,这是两步的推理链条。其次,领域知识图谱上的计算操作也相对复杂一些。像之前提到的深度推理就是一种复杂的应用。此外,领域应用往往会涉及复杂查询。比如在公共安全领域,对于重点监控人群,通常需要在相关图谱中查询该人群形成的稠密子图。诸如此类的复杂计算和操作,在领域知识图谱中并不罕见。相反,通用知识图谱的查询多为一到两步的邻居查询,相对简单。

现在来看联系,通用知识图谱与领域知识图谱关系是十分密切的,根本原因是人类的知识体系是有结构的。我个人认为人类的知识体系呈现出倒三角形的结构。三角结构越是接近底层的部分越是最为基本的、形式简单的知识;越往上层知识越为抽象、越加多样,也越加细分、专业性越强。在个人成长的早期阶段,人类通过自身身体与世界的交互习得了最为基本的常识,特别是关于时间、空间、因果的基本常识。我们知道时间是在流逝的、我们知道空间是有一定位置关系的、我们明白有因必有果。这些都是最为基本的常识。这些常识是构建认知体系的基础。在此基础上,通过“隐喻”或者“类比”(美国的侯世达教授甚至认为类比是智能的本质,见其《哥德尔、艾舍尔、巴赫》一书),人类发展出更为高层的知识,包括对于世界的知识(比如我们知道太阳从东边升起,人是要呼吸的等等)、简单关联事实(比如下雨了,地面会潮湿)。基于这些简单知识,再通过隐喻和类比,进一步形成特定领域的知识。很多领域知识本质上是通过隐喻从基本知识发展而来的。比如人们关于社会地位的认识,某个人社会地位较高实际上是从空间上的高低隐喻而来的。说某个人很积极、很激进,实际上是从时间的先后隐喻而来的。最近还有一个例子,将各种芯片与人体的各器官相类比:做人工智能的芯片就好比在做大脑,做通用芯片就好比在做血管,做计算芯片就好比在做心脏,这都是典型的隐喻。所以很多领域知识都是从人类的基本常识和世界知识通过隐喻发展而来的。因此,领域知识和通用知识之间存在着千丝万缕的联系。理解自然语言中的隐喻现象也一直是自然语言处理领域的一个研究热点。

DKG与GKG的另一个联系在于行业应用对于领域知识的需求难以闭合。也就是说,很多行业应用看上去好像只需要领域知识,但是实际应用过程中往往会超出领域所预先设定的知识边界。比如在金融知识图谱落地过程中,本以为涵盖公司、法人、机构、产品等就足够了。但是实际应用过程中我们发现这些类型的知识还远远不够。比如基于金融知识图谱的关联分析往往会牵扯出几乎万事万物。比如说诸如龙卷风的气候灾害,会使得农作物产量下降,农业机械的出货量因而就会下降,农机的发动机产量也就相应要下降,从事农机发动机关键部件生产的公司业绩就会下降,相关公司的股票可能就会下跌。这个例子形象地说明几乎一切事物在某种意义下都是跟金融有关系。事实上,一切实体都身处在一个复杂的因果网络中,世界是普遍关联的。这就导致沿着任何一个实体开展关联分析都极为容易超出预先设定的知识边界。因此,行业应用中的知识需求难以封闭于领域知识的边界范围内。换言之,越为封闭的应用场景,机器越容易取得成功。所谓封闭是指一个有限的知识子集足以支撑应用需求。比如,AlphaGo的成功很大程度上得益于围棋游戏规则有限,整个游戏过程不会用到下棋规则之外的知识。但对于星际争霸之类的游戏,机器取得优异成绩就显得较为困难。因为这类策略性游戏所用到的知识类型多样,不仅需要有关排兵布阵、武器应用、战场环境等相关知识,还可能涉及很多与社会及文化相关的知识。智能客服等领域的成功也一定程度上归功于客服知识的相对封闭。所以,领域应用所涉及的知识体系越是封闭,越容易成功。这是在很多领域知识图谱落地过程中选择应用试点时,应该遵循的一个基本原则。

延续上面的分析,进一步可以回答业界十分关心的一个问题:知识图谱在什么样的应用中易于成功?知识图谱落地应用往往遵循一个循序渐进的推进过程。因此,很多行业都希望选取特定场景先行试点,那么选择什么样的场景进行优先验证呢?知识图谱只是整个智能化技术的手段之一。知识图谱不能解决行业的所有问题,那么,某个特定的行业应用到底能否受益于知识图谱技术?这些都是知识图谱的行业应用亟需回答的问题。我根据前两页内容中观点,给出几个选择依据。第一、领域知识相对封闭。已经阐明,越是封闭的领域越容易成功。第二、简单知识与简单应用。何为简单知识?关于知识复杂性的评估实际上是个非常复杂的问题。知识复杂性的内在机理和评测机制是个十分有趣的科学问题。从操作层面来看,可以从特定人群学习某类知识所需要时间来评估。假设我们只考虑完成了基础教育(比如中国的九年制基础教育)的人群。对于不同知识,这一人群学习周期不一。比如,很显然对于某个企业的客服知识,几乎一周简单培训就可以上岗。但是对于治病的知识,即便一个医学院学生可能也要十多年才能掌握。所以,大部分对于人而言简单岗位培训就能胜任的工作,也往往适用于机器,是有可能优先被机器所代替的。还有些应用场景属于知识的简单应用,比如同样是在医疗领域,医院的导诊岗位,就属于医学知识的简单应用。只需要根据症状进行简单的分类,即便不够精准,在具体科室医生治疗时还有进一步纠正的机会。第三、较少涉及常识。如果领域应用所涉及的知识集中在人类知识结构的上层(也就是专业性较强的知识),较少涉及底层的常识,则相对容易成功。其根本原因在于常识的获取是异常困难的。人类很容易理解常识,但是对于机器而言常识理解却十分困难。我们知道太阳从东边升起,人是两条腿走路的,鱼是在水里游的,而机器很难知道这些常识。因为常识是人类在学龄前通过身体与世界的交互与体验积累而得。我们每个人都理解常识,因而不用挂在嘴边说明,就能彼此理解。因此,文本或者语料中对于常识鲜有提及,常识因而也就无从抽取。常识缺失也就成了知识库、知识工程,乃至整个人工智能的痛点问题。目前机器智能在常识理解方面仍然举步维艰。因此,我认为大量用到常识的应用面临巨大挑战。比如说有公司想做财务报销方面的智能化,此类场景就有可能涉及很多常识。比如半夜12点打出租车,或者说打出租车打了四五个小时,又或者从美国飞到上海只飞了一个小时,这都是有问题的。这些问题我们人类很容易识别,因为都是常识问题,但对机器而言就很困难。还有一个非常典型的大量用到常识的场景就是刑侦智能化。公安人员在破案过程中用到大量常识,嫌疑人往往是基于证据根据常识进行推理而锁定的,因此让机器代替刑侦人员破案仍十分困难。

很多领域知识图谱应用的方案是建立在通用知识图谱基础之上的。GKG对于DKG有着重要的支撑作用。一方面,GKG可以给很多DKG提供高质量的种子事实。这些种子事实可以用做样本指导抽取模型的训练。另一方面,GKG可以提供领域模式(Schema)。领域知识图谱构建时需要花费巨大精力设计领域模式,比如为了构建娱乐领域知识图谱,必须首先明确描述歌手的属性列表(有时又称作template)中应该包括专辑、代表作、签约公司等属性。虽然GKG对于特定领域的实体覆盖率不高,但是通过聚合GKG中所有歌手信息,有关歌手的描述模板基本上已经能够满足初步需要。后续只需要在初始模板基础上逐步完善即可。能否充分利用通用知识图谱对很多领域知识图谱的构建具有重要意义。这就是为什么很多团队不遗余力地做好通用知识图谱(比如我们实验室的通用百科知识图谱CN-DBpedia和通用概念图谱CN-Probase)的重要原因。

领域图谱建好之后又可以反哺通用知识图谱。复旦知识工场实验室就是按照这个思路持续运营多年。我们先通过通用知识图谱为各领域知识图谱构建提供大量的种子事实,使得快速构建很多领域知识图谱成为可能。各领域知识图谱做的很深很细之后,可以反过来补充通用知识图谱。GKG与DKG这种互补形式的架构在很多领域的知识图谱落地中是个非常重要的架构。

知识表示其实一直以来都有两种基本的方式:符号化表示与数值型表示。两者孰优孰劣?各自的适用场景是怎样的?一直是知识图谱落地过程中常被问及的问题。第一种是符号化(Symbol)的表示,比如说PPT左上角的小规模语义网络,表达了约翰给玛丽一本书这样的事实。这个例子中大量的使用了字符、箭头等符号。显然,符号表示形象直观,易于我们理解。人是可以理解符号的,但是没办法理解向量。知识表示还有一种表示是数值化的分布式表示,它是面向机器的。机器是无法“理解”符号的,只能处理数值和向量。分布式表示是将符号知识集成到深度学习框架中的一种基本方式。符号化表示是一种显性的表示,而分布式表示是一种隐性的表示。符号化表示易理解、可解释,而分布式表示是难解释、难理解的。符号化表示的另一优点在于推理能力。比如数学定理证明都是基于符号推理进行的。虽然基于知识图谱的分布式表示,也可以开展一定程度上的推理,但是需要指出的是分布式推理已经很大程度上丢失了知识图谱原有的语义,分布式推理只能推理语义相关性,而无法明确是何种意义下的语义相关。我个人倾向于认为分布式推理离实用还很遥远。如果非要为知识图谱上的分布式推理找到应用场景,那只能作为很多复杂任务的预处理步骤,将明显语义不相关的元素加以剪枝,后续仍需要能够充分利用符号语义的方法进行精准的语义推理。

不管是大数据时代还是人工智能时代,都需要领域知识图谱。我曾在《知识图谱与认知智能》这一报告中详细阐述过相关观点。这里补充几个观点。首先,需要知识图谱去构建知识引擎,去释放大数据的价值。很多行业和企业都有数据,都有大数据。但是这些大数据非但没有创造价值,反而成为了很多行业的负担。阻碍大数据价值变现的根本原因在于缺少智能化的手段,更具体而言就是缺少一个能像人一样能够理解行业数据的知识引擎。行业从业人员为什么能理解行业数据进而开展行业工作呢,那是因为行业从业人员具有相应的行业知识。如果把同样的行业知识赋予机器,构建一个行业知识引擎,那么机器也就可能代替人去理解、挖掘、分析、使用数据,可以代替行业从业人员挖掘数据中的价值。简言之,将行业知识赋予机器,让机器代替行业从业人员从事简单知识工作,是当下以及未来一段时间内基于机器认知智能的行业智能化的本质。在行业智能化的实现进程中,通过领域知识图谱对数据进行提炼、萃取、关联、整合,形成行业知识或领域知识,让机器形成对于行业工作的认知能力,从而实现一个行业知识引擎,实现知识工作自动化,已经成为了行业智能化日渐清晰的一条路径。

伴随着人工智能时代的到来,“智能”机器无处不在,手表、手环、手机、音响、电视、机器人等等都已是随处可见的“智能”实体,这些机器逐步走入人们的生活。但是现在机器普遍不具备人们所期望的智能,与人类智能相比只能算是机器“智障”。机器“智障”的根本原因是这些机器没有一个像人一样聪慧的大脑。事实上,机器最缺的是一个机器智脑。没有这样的智脑,机器只能是一具没有“灵魂”的僵尸。人脑之所以能给人类带来智慧的根本原因在于人脑能够存储知识与利用知识。类似地,机器智脑也需要有知识的充实,才能够形成真正意义上的机器智能。富含各类知识的机器智脑,可以理解人类的语言与行为,能够理解我们所从事的行业工作,从而使得自然人机交互成为可能,使得人机协同混合智能成为可能。最终为机器融入人类社会扫清障碍,促进人机和谐共存。

从社会发展的角度来看,可以说将领域知识赋予机器,将是进一步提高机器生产力、释放劳动力资源、降低人力成本的重要技术。伴随着我国人口红利的逐步消失,各行业的人力成本普遍提高,各行业对于机器生产力的提升提出了普遍诉求。伴随着工业4.0的推进以及自动化技术普及,传统实体行业人的体力劳动已经逐步被解放。人力资源成本释放的空间已经逐步从体力劳动转向脑力劳动。当下,人工智能技术给人力成本降低带来的新机遇主要体现在用机器代替人的脑力劳动,特别是各行业的简单知识工作将逐步为机器所代替。机器的记忆几乎是无穷无尽的,机器决策时可以同时考虑数百万变量,机器运算的速度远超人类,所以一旦把行业知识赋予机器,就能实现高度自动化的机器工作。在这一背景下,各行业都走上了智能化升级转型的道路,而实现机器的认知能力是智能化升级转型的基本路径。

以政府数据治理为例,在政府领域,由于历史原因,政府各部门的信息系统的建设多是各自为阵,形成了大量的信息孤岛,这就给政府数据价值发挥带来了巨大障碍。这些障碍尤为集中地体现在政府数据治理与应用方面,碎片化数据难以融合、数据共享开放缺乏必要依据、政府决策仍然缺乏来自数据的有效支撑、政府数据的应用模式相对单一。但如果有了领域知识图谱,就可以为数据融合提供元数据,将政府数据融合从繁重的手工整合中解放出来。比如ID与身份证通常指代相同的字段,这样的元数据可以自动建立A数据库中名为“ID”的字段与B数据库中名为“身份证”字段的映射。政府在大力推进政府数据共享和开放过程中,必须确保数据安全。比如个人隐私数据很敏感是不可以开放的,当前拟开放的数据都要经过人工的审慎判断,耗时耗力。但事实上知识图谱可以为政府数据开放提供必要的背景知识。比如如果设定了个人信息是不能开放的,那么个人的住址、出生日期等等都是不能开放的,这可以通过背景知识库自动推断得到。政府数据的决策和分析缺乏可解释依据,这些依据都可以从领域知识图谱里去寻找。当前政府数据的应用多是简单的检索与分析,缺乏基于深度推理的智能应用。而推理需要一个基本的载体,推理载体的天然选择是知识图谱。基于符号化的知识图谱,可以开展有效的深度推理。

领域知识图谱系统的生命周期包含四个重要环节:知识表示、知识获取、知识管理与知识应用。这四个环节循环迭代。知识应用环节明确应用场景,明确知识的应用方式。知识表示定义了领域的基本认知框架,明确领域有哪些基本的概念,概念之间有哪些基本的语义关联。比如企业家与企业之间的关系可以是创始人关系,这是认知企业领域的基本知识。知识表示只提供机器认知的基本骨架,还要通过知识获取环节来充实大量知识实例。比如乔布斯是个企业家,苹果公司是家企业,乔布斯与苹果公司就是“企业家-创始人-企业”这个关系的一个具体实例。知识实例获取完成之后,就是知识管理。这个环节将知识加以存储与索引,并为上层应用提供高效的检索与查询方式,实现高效的知识访问。四个环节环环相扣,彼此构成相邻环节的输入与输出。在知识的具体应用过程中,会不断得到用户的反馈,这些反馈会对知识表示、获取与管理提出新的要求,因此整个生命周期会不断迭代持续演进下去。

在整个生命周期中,我认为最重要的是明确知识的应用场景,也就是回答清楚一个问题:利用领域知识解决怎样的应用问题。再根据应用来反推到底需要怎样的知识表示,明确知识边界。在当下的很多知识图谱应用实践中,有一个不好的苗头就是“为了图谱而图谱”。虽然知识图谱是当下的热点技术,尽管每年各行业大量的信息化预算苦苦寻求好的落地项目,尽管资本界热钱涌动寻求好的投资标的,但是不应以知识图谱为名,不应盲目炒作知识图谱技术。知识图谱技术是当下热点不假,但绝不是万能技术。它能解决的问题是有限的,它的成功应用有着苛刻的条件。需要谨慎选择落地场景;需要客观评估技术成熟度以及技术与应用的适配程度;需要充分考虑资源与收益的平衡等一系列问题。为图谱而图谱,或者仅以图谱为名而行悖图谱之实,对知识图谱产业有百害而无一利。历史上前车之鉴太多了。很多做AI的研究人员与公司,最终落得个“骗子”下场。历史上的AI技术的演进道路呈现出大起大落之势。这一系列现象归根结底是因为人们对于AI预期过高,盲目大规模上线很多知识工程项目,无视应用场景而对知识库盲目求大求全。殊不知人之所以伟大其实就在于任何一个普通人所掌握的知识都可以说是无边无界的。我们现在构建的知识库离机器达到普通人认知世界所需要的水平还十分遥远。知识资源建设可以说是永远在路上,没有最好,只有更好。所以,比较务实的作法是:谨慎选择合适的应用场景,构建满足场景需要的知识资源。这背后体现的也是典型的自下而上的建设思路。大而全、自上而下、运动式知识资源建设(这个经常是国内的典型方式),容易遇到难以逾越的技术瓶颈。一言以蔽之,知识资源建设的基本原则是适度。“适”是指对于特定应用场景的适配,“度”是指合理把控知识的边界与体量

我们常用三元组表示领域知识图谱。我想强调一点,知识图谱只能表达一些简单的关联事实,但很多领域应用的需求已经远远超出了三元组所能表达的简单关联事实,实际应用日益对于利用更加多元的知识表示丰富和增强知识图谱的语义表达能力提出了需求。这一趋势首先体现在对于时间和空间语义的拓展与表达方面。有很多知识和事实是有时间和空间条件的,比如说“美国总统是特朗普”这个事实的成立是有时间条件的,十年前美国的总统不是特朗普,十年之后应该也不大可能是特朗普。还有很多事实是有空间条件的,比如“早餐是烧饼与油条”这件事,在中国是这样,但是在西方并非如此,西方的早餐可能是咖啡、面包。从时空维度拓展知识表示对很多特定领域具有较强的现实意义。比如在位置相关的应用中,如何将POI(Point of Interest)与该POI相关实体加以关联,成为当下拓展POI语义表示的重要任务之一。比如将“邯郸路220号”(复旦大学地址)关联到“复旦大学”是十分有意义的。在互联网娱乐领域,粉丝们往往不仅仅关心某个明星的妻子是谁,可能更关心明星的前任妻子、前任女友等信息,这些应用都对事实成立的时间提出了需求。第二、增强知识图谱的跨媒体语义表示。当前的知识图谱主要以文本为主,但是实际应用需要有关某个实体的各种媒体表示方式,包括声音、图片、视频等等。比如对于实体“Tesla Model S”,我们需要将其关联到相应图片和视频。知识图谱时空维度拓展在物理实现上可以通过定义四元组或者五元组加以实现。跨媒体表示可以通过定义相关的属性加以实现。

知识图谱的语义增强总体上而言将是未来一段时间知识表示的重要任务。知识图谱作为语义网络,侧重于表达实体、概念之间的语义关联,还难以表达复杂因果关联与复杂决策过程。如何利用传统知识表示增强知识图谱,或者说如何融合知识图谱与传统知识表示,更充分地满足实际应用需求,是知识图谱领域值得研究的问题之一。在一些实际应用中,研究人员已经开始尝试各种定制的知识表示,在知识图谱基础上适当扩展其他知识表示是一个值得尝试的思路。

领域知识图谱的构建是个领域知识的获取过程。这一过程系统性强,涉及众多技术手段。但是其基本流程具有一定共性,如PPT所示。

第一步是模式(Schema)设计。这一步是传统本体设计所要解决的问题。基本目标是把认知领域的基本框架赋予机器。在所谓认知基本框架中需要指定领域的基本概念,以及概念之间subclassof关系(比如足球领域需要建立“足球运动员”是“运动员”的子类);需要明确领域的基本属性;明确属性的适用概念;明确属性值的类别或者范围。比如“效力球队”这个属性一般是定义在足球运动员这个概念上,其合理取值是一个球队。此外,领域还有大量的约束或规则,比如对于属性是否可以取得多值的约束(比如“奖项”作为属性是可以取得多值的),再比如球队的“隶属球员”属性与球员的“效力球队”是一对互逆属性。这些元数据对于消除知识库不一致、提升知识库质量具有重要意义。

第二步是明确数据来源。在这一步要明确建立领域知识图谱的数据来源。可能来自互联网上的领域百科爬取,可能来自通用百科图谱的导出、可能来自内部业务数据的转换,可能来自外部业务系统的导入。应该尽量选择结构化程度相对较高、质量较好的数据源,以尽可能降低知识获取代价。

第三步是词汇挖掘。人们从事某个行业的知识的学习,都是从该行业的基本词汇开始的。在传统图书情报学领域,领域知识的积累往往是从叙词表的构建开始的。叙词表里涵盖的大都是领域的主题词,及这些词汇之间的基本语义关联。在这一步我们是要识别领域的高质量词汇、同义词、缩写词,以及领域的常见情感词。比如在政治领域,我们需要知道特朗普又被称为川普,其英文简称为Trump。

第四步是领域实体发现(或挖掘)。需要指出的是领域词汇只是识别出领域中的重要短语和词汇。但是这些短语未必是一个领域实体。从领域文本识别某个领域常见实体是理解领域文本和数据的关键一步。在实体识别后,还需对实体进行实体归类。能否把实体归到相应的类别(或者说将某个实体与领域类别或概念进行关联),是实体概念化的基本目标,是理解实体的关键步骤。比如将特朗普归类到政治人物、美国总统等类别,对于理解特朗普的含义具有重要意义。实体挖掘的另一个重要任务是实体链接,也就是将文本里的实体提及(Mention)链接到知识库中的相应实体。实体链接是拓展实体理解,丰富实体语义表示的关键步骤。

第五步是关系发现。关系发现,或者知识库中的关系实例填充,是整个领域知识图谱构建的重要步骤。关系发现根据不同的问题模型又可以分为关系分类、关系抽取和开放关系抽取等不同变种。关系分类旨在将给定的实体对分类到某个已知关系;关系抽取旨在从文本中抽取某个实体对的具体关系;开放关系抽取(OpenIE)从文本中抽取出实体对之间的关系描述。也可以综合使用这几种模型与方法,比如根据开放关系抽取得到的关系描述将实体对分类到知识库中的已知关系。

第六步是知识融合。因为知识抽取来源多样,不同的来源得到的知识不尽相同,这就对知识融合提出了需求。知识融合需要完成实体对齐、属性融合、值规范化。实体对齐是识别不同来源的同一实体。属性融合是识别同一属性的不同描述。不同来源的数据值通常有不同的格式、不同的单位或者不同的描述形式。比如日期有数十种表达方式,这些需要规范化到统一格式。

最后一步是质量控制。知识图谱的质量是构建的核心问题。知识图谱的质量可能存在几个基本问题:缺漏、错误、陈旧。先谈知识库的缺漏问题。某种意义上,知识完备对于知识资源建设而言似乎是个伪命题,我们总能枚举出知识库中缺漏的知识。知识缺漏对于自动化方法构建的知识库而言尤为严重。但是即便如此,构建一个尽可能全的知识库仍是任何一个知识工程的首要目标。既然自动化构建无法做到完整,补全也就成为了提升知识库质量的重要手段。补全可以是基于预定义规则(比如一个人出生地是中国,我们可以推断其国籍也可能是中国),也可以从外部互联网文本数据进行补充(比如很多百科图谱没有鲁迅身高的信息,需要从互联网文本寻找答案进行补充)。其次是纠错。自动化知识获取不可避免地会引入错误,这就需要纠错。根据规则进行纠错是基本手段,比如A的妻子是B,但B的老公是C,那么根据妻子和老公是互逆属性,我们知道这对事实可能有错。知识图谱的结构也可以提供一定的信息帮助推断错误关联。比如在由概念和实例构成的Taxonomy中,理想情况下应该是个有向无环图,如果其中存在环,那么有可能存在错误关联。最后一个质量控制的重要问题是知识更新。更新是一个具有重大研究价值,却未得到充分研究的问题。很多领域都有一定的知识积累。但问题的关键在于这些知识无法实时更新。比如电商的商品知识图谱,往往内容陈旧,无法满足用户的实时消费需求(比如“战狼同款饰品”这类与热点电影相关的消费需求很难在现有知识库中涵盖)。因此,电商领域的图谱构建要从被动的供给侧构建过渡到主动的消费侧构建,要从管理者视角转变成消费者视角。消费侧的需求充分体现在搜索日志和购物篮中。面向日志、购物篮的自动知识获取将成为研究热点。

经历了上述步骤之后得到一个初步的领域知识图谱。在实际应用中会得到不少反馈,这些反馈作为输入进一步指导上述流程的完善,从而形成闭环。此外,除了上述自动化构建的闭环流程,还应充分考虑人工的干预。人工补充很多时候是行之有效的方法。比如一旦发现部分知识缺漏或陈旧,可以通过特定的知识编辑工具实现知识的添加、编辑和修改。也可以利用众包手段将很多知识获取任务分发下去。如何利用众包手段进行大规模知识获取,是个十分有意思的问题,涉及到知识贡献的激励机制,我前几年有个题为《未来人机区分》的报告,专门讨论如何利用知识问答形式的验证码来做知识获取,可以百度此文获取更多信息。

可以看出,整个领域知识图谱的构建是个系统工程,流程复杂,内涵丰富,涉及到知识表示、自然语言处理、数据库、数据挖掘、众包等一系列技术。也正是这个原因使得知识图谱落地对很多行业或者企业来讲都是一个十分重要的举措,甚至是战略性举措。

领域图谱的评价标准是落地过程中常常被问及的问题。总体而言有三个方面的指标应该予以充分考虑。第一个是规模。前面已经指出,绝对完备的知识库是不存在的,完备只能相对于一些封闭领域而言。因此,规模一般而言是个相对指标。关于规模问题,在落地过程有两个有意思的问题。一是,当前知识库是否足以支撑实际应用,或者多大规模就够了?这个问题没有绝对答案。我给出的是看实际应用的反馈,也就是知识图谱上线后的用户满意率。比如在利用知识图谱支撑语义搜索方面,多少查询能被准确理解,这个比率是个重要的指标。当然查询理解率不仅涉及知识图谱的覆盖率也关系到理解模型的准确率。因此,在实际评估中需要客观对待查询理解率,不能简单地将查询理解率直接等同于图谱覆盖率。

第二个指标是质量。当前AI系统努力避免的一个事实就是“Garbage-In-Garbage-Out”。喂给机器的是错误知识,就只会导致错误的应用结果。提升知识图谱质量是知识图谱构建的核心命题。那么知识图谱质量又应该从哪些维度进行衡量呢?我想至少有几个维度。一是、准确率。比如是否存在错误事实,错误事实所占比例都是质量的直接反映。二是、知识的深度。比如很多知识库只涵盖人物这样的大类,无法细化到作家、音乐家、运动员这些细分类目(fine-grained concepts)。三是、知识的粒度。粒度越细应用越灵活,应用时精读越高。细化知识表示的粒度是领域知识图谱的构建过程中的重要任务之一。

第三个方面是实时。绝对实时是不现实的,因而实时大都从知识的延时(latency)角度进行刻画。短延时显然是我们期望的。知识图谱的更新是个复杂问题,不同的更新策略导致不同的延时。一般而言,知识图谱更新包括被动更新和主动更新两种方式。实际应用中往往是两种策略的结合。被动更新往往采取周期性更新策略,这种策略延时长,适用于大规模知识更新。主动更新,往往从需求侧、消费侧、应用侧出发,主动触发相关知识更新,适用于头部或者高频实体及知识的更新。关于知识库更新的细节,感兴趣的朋友可以参考知识工场微信公众号文章《百科知识图谱同步更新》。

领域知识图谱如何存储也是大家很关注的问题。由于知识图谱本质上在表达关联,天然地可以用图加以建模,因而很多人想到用图数据库对领域知识图谱加以存储。图数据库的确是知识图谱存储选型的重要选择,但是不是唯一选择。传统关系数据库,近几年充分发展的其他类型的NoSQL数据库在很多场景下也是合理选择。那么数据库的选择考虑的要素是什么呢?有两类重要的选型要素:图谱的规模以及操作复杂度。从图谱的规模角度来看,百万、千万的节点和关系规模(以及以下规模)的图谱对于图数据库的需求并不强烈,图数据库的必要性在中等或者小规模知识图谱上体现并不充分。但是如果图谱规模在数亿节点规模以上,图数据库就十分必要了。从操作复杂性来看,图谱上的操作越是复杂,图数据库的必要性越是明显。图谱上的全局计算(比如平均最短路径的计算),图谱上的复杂遍历,图谱上的复杂子图查询等等都涉及图上的多步遍历。图上的多步遍历操作如果是在关系数据库上实现需要多个联结(Join)操作。多个联结操作的优化一直以来是关系数据库的难题。图数据库系统实现时针对多步遍历做了大量优化,能够实现高效图遍历操作。除了上述因素之外,还应该充分考虑系统的易用性、普及性与成熟度。总体而言图数据库还是发展中的技术,对于复杂图数据管理系统的优化也是只有少部分专业人员才能从事的工作。在数据库选型时需要充分考虑这些因素。我们实验室在实现CN-DBpedia(2000万实体、2.2亿关系)在线服务系统时先后采用了Relational DB、Graph DB、MongoDB,最后出于综合考虑选用的是MongoDB,已经稳定运行了三年,累计提供10亿多次API服务。

领域知识图谱如何查询?通常对于表达为RDF形式的知识图谱,可以使用SPARQL查询语言。SPARQL语言针对RDF数据定义了大量的算子,对于推理操作有着很好支撑,因而能够适应领域中的复杂查询与复杂推理。从应用角度来看,也可以将知识图谱仅仅表达为无类型的三元组。对于这种轻量级的表示,关系数据库与传统NoSQL数据库也是较好选择。那么此时,SQL语句就是比较好的选择。SQL十分成熟,语法简单,用户众多且有着几十年的成功应用基础。很多领域图谱上的查询是相对简单的,以单步或者两到三步遍历居多。此时,SQL完全能够胜任。但是不排除有一些特定场景,特别是公共安全、风控管理等领域,通常需要进行复杂关联分析,需要较长路径的遍历,需要开展复杂子图挖掘,此时SQL的表达能力就显得相对较弱了。

未来的趋势是直接利用自然语言进行知识图谱数据访问。但是总体而言这还只是个比较热门的研究主题,离成熟还有一定距离。其根本困难在于自然语言的复杂性,在于自然语言自动化转成形式语言的巨大复杂性。但这显然是有着巨大商业价值的问题。数据(知识)访问方法的呆板是制约数据(知识)价值发挥的重大瓶颈。一旦突破这一瓶颈,数据与知识的使用将从传统的被动式定制获取变成主动式按需获取,传统管理信息系统以及知识管理将面临全新机遇

领域知识图谱的应用落脚点无外乎搜索、推荐、问答、解释与决策。对于这几个应用我在《知识图谱与认知智能》一文中有详细论述,在此不再赘述。这里补充回答几个问题。第一、知识图谱支撑下的应用与没有知识图谱特别是与基于机器学习的方案相比有何优势?这是很多应用单位会提出的问题。首先,从宏观层面来讲,通过领域知识图谱对于领域知识进行表达与沉淀,使得机器能够具备领域数据认知能力这种能力使得推理和解释成为可能。推理和解释是当前的机器学习(特别是深度学习)还难以有效解决的问题。其次,从具体任务来看,知识图谱能显著提升一些具体任务的效果。知识图谱支撑下的搜索相对于传统搜索,能够显著提高召回率,也就是能够解决“搜的到”的问题;知识图谱支撑下的推荐相对于传统推荐,能够显著提高推荐的个性化,也就是能够解决“推得准”的问题;知识图谱支撑下的推荐相对于其他问答方式,能够显著提高问答的召回率,特别是需要推理才能回答的问题。知识图谱支撑下的决策分析相对于传统决策,能够提供决策的可解释依据,能够为决策提供背景知识支持。解释是知识图谱的天然使命,因为人只能理解符号知识,人是解释的对象。

另一个更为深刻的问题是相对于机器学习,特别是深度学习,符号化知识对于机器智能是否必要?一些机器学习专家认为,机器智能只需要数值表示就可以了,所谓知识也无外乎就是深度神经网络中足够抽象层次上的分布式表示,体现为相应层次上的网络结构与参数。符号知识对于机器智能是个伪命题,知识表达与沉淀对于机器智能也就无从谈起。深度学习顶级专家Hinton也有类似观点。一定程度上,我赞同这个观念。但问题在于,虽然我们身处在大数据时代,但是当前的数据还不足以让机器习得人类所具有的高度抽象知识。我们现在的大数据大部分还只是应用场景下产生的直接数据,缺乏产生这些数据的需求与动机的背景数据,缺乏能够解释数据之所以如此的因果链条数据。比如我们都知道数据挖掘领域的啤酒尿布的例子,意思是说大部分买尿布的人也会同时买啤酒。可是我们从来都不知道为什么。事实上很可能是产妇行动不便,让爸爸来买尿布,一个家庭有了新生儿之后,初为人父的爸爸们或多或少比较紧张兴奋,因而顺带购买啤酒以缓解压力。我们现在的数据采集还无法延伸到能够理解统计规律背后的因果链条的地步。还有很多数据背后是由常识支撑的。比如今年夏天冷饮销售量增长,是由于天气炎热,而天气炎热,人们自然会饮用冷饮。这些知识是我们人人都知道的,但是机器无法知道。常识缺失使得机器无法重建完整的数据关联分析链条。所以,大数据时代的“数据饥荒”是机器学习无法习得人类水准的高层抽象知识的重要原因之一。那么有人也许会争论说,既然“数据饥荒”是根本原因,那么有可能通过增强数据采集广度与力度来消弭这一问题。我个人认为很难。诚然随着大数据日积月累,这一问题或许会得到一定程度上的缓解。 但是常识获取的困难仍然会对这一问题的解决带来巨大挑战。因此,至少在当下一段时期内,充分利用符号知识,补齐数据驱动方法的短板应该是比较务实的思路。但是即便意识到这一点,在方法层面我们也仍然捉襟见肘。如何利用符号知识增强统计学习模型仍然是个具有挑战性的问题。对于这一问题的具体论述可以参考《当知识图谱“遇见”深度学习》一文。

领域知识图谱落地有哪些最佳实践呢?作为一个工程性学科,不断总结其最佳实践是非常有必要的。这里根据我们落地的几个项目分享几个最佳实践。第一、应用引领。这个问题在知识图谱项目周期时,已经强调了。明确应用出口对于图谱的规划是非常重要的。第二、避难就简。在当前阶段,文本处理仍然面临不少困难,落地困难重重。即便是一个简单的中文分词任务仍然需要大量的研究工作,比如“南京市长江大桥”分词,可以是“南京市+长江大桥”,也可以是“南京市长+江大桥”。因此,在实际落地过程中,应该综合考虑各条技术路径的难度,优先考虑从结构化的数据中加以转换,其次是半结构化数据(比如带格式标记的各类文本,如XML、百科文本等等),最后才是无结构的自然语言文本。事实上,如果能够综合考虑各类技术路径,融合各类数据源,采取一些巧妙的策略可以显著提升非结构化文本抽取的有效性。比如利用结构化数据与非结构文本进行比对,获取很多高质量的关系描述就是一个非常有效的策略。第三、避免从零开始。很多行业或者企业在建设知识图谱项目时,或多或少已经存在很多知识资源,比如领域本体、叙词表等等,互联网上的公开来源也存在不少相关的百科资源,通用百科图谱已经涵盖了某个领域大量的实体。充分利用这些资源,提高领域知识图谱构建的起点,是知识图谱项目成功落地的一个关键因素之一。已经存在的这些知识资源很多是消耗了巨大人工成本经过多年持续积累而得到的,充分利用这些知识资源对于领域知识图谱的构建与完善具有重要意义。知识资源建设有个很有意思的现象,那就是让人从无到有的贡献一条知识的代价要显著高于让人在一个不那么完善的知识库上进行完善的代价。因此,尽可能复用是知识资源建设的重要策略之一。最后一条是跨领域迁移。其思路很简单,如果我们为中国移动做了个领域知识图谱,那么为中国电信建设图谱,是不需要从零开始的。相近领域的知识是可以复用的。这个原则也意味着知识图谱落地过程中,将来会涌现出一大批面向特定行业知识图谱解决方案的企业。

领域知识图谱还存在哪些挑战?总体上在知识表示、获取和应用等各层面均存在很多挑战。在知识表示层面,越来越多的领域应用不仅仅需要关联事实这种简单知识表示,还要表达包括逻辑规则、决策过程在内的复杂知识;需要同时表达静态知识和动态知识。单单知识图谱已经不足以解决领域的很多实际问题。如何去增强知识图谱的语义表达能力,如何综合使用多种知识表示来解决实际应用中的复杂问题是非常重要的研究课题。第二,在知识获取方面,领域知识图谱一般样本很小,如果需要构建抽取模型,那就需要基于小样本构建有效的模型。目前基于小样本的机器学习仍然面临巨大挑战。解决这一问题的思路之一就是利用知识引导机器学习模型的学习过程。具体实现手段已经有不少团队在开展相关的探索工作,比如利用知识增强样本、利用知识构建目标函数的正则项以及利用知识构建优化目标的约束等等。总体而言,这仍然是个开放问题需要巨大的研究投入。第三,知识的深度应用。如何将领域知识图谱有效应用于各类应用场景,特别是推荐、搜索、问答之外的应用,包括解释、推理、决策等方面的应用仍然面临巨大挑战,仍然存在很多开放性问题。更多有关知识图谱的开放性挑战可以参考知识工场微信公众号《知识图谱研究回顾与展望》一文。

(版权声明:本文为知识工场实验室原创文章,若需转载请留言。)

更多产品试用请点击知识工场网站主页:http://kw.fudan.edu.cn/

合作意向、反馈建议请联系我们:

info.knowledgeworks@gmail.com

或直接联系知识工场负责人肖仰华教授:

shawyh@fudan.edu.cn


OpenKG.CN

中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。


文章转载自公众号

知识工场

 

技术动态 | 自底向上构建知识图谱全过程

本文转载自公众号:阿里技术

 

“The world is not made of strings , but is made of things.”
——辛格博士,from Google.

知识图谱,是结构化的语义知识库,用于迅速描述物理世界中的概念及其相互关系,通过将数据粒度从document级别降到data级别,聚合大量知识,从而实现知识的快速响应和推理。

当下知识图谱已在工业领域得到了广泛应用,如搜索领域的Google搜索、百度搜索,社交领域的领英经济图谱,企业信息领域的天眼查企业图谱等。

在知识图谱技术发展初期,多数参与企业和科研机构主要采用自顶向下的方式构建基础知识库,如Freebase。随着自动知识抽取与加工技术的不断成熟,当前的知识图谱大多采用自底向上的方式构建,如Google的Knowledge Vault和微软的Satori知识库。

1、定义

俗话说:“看人先看脸。”在我们深入了解知识图谱之前,让我们先来看一下它长什么样子!

如图所示,你可以看到,如果两个节点之间存在关系,他们就会被一条无向边连接在一起,那么这个节点,我们就称为实体(Entity),它们之间的这条边,我们就称为关系(Relationship)。

知识图谱的基本单位,便是“实体(Entity)-关系(Relationship)-实体(Entity)”构成的三元组,这也是知识图谱的核心。

2、数据类型和存储方式

知识图谱的原始数据类型一般来说有三类(也是互联网上的三类原始数据):

  • 结构化数据(Structed Data),如关系数据库
  • 非结构化数据,如图片、音频、视频
  • 半结构化数据 如XML、JSON、百科

如何存储上面这三类数据类型呢?一般有两种选择,一个是通过RDF(资源描述框架)这样的规范存储格式来进行存储,比较常用的有Jena等。

还有一种方法,就是使用图数据库来进行存储,常用的有Neo4j等。

那你可能会问我了,你不就是一大堆的三元组吗,用关系数据库来存储不也一样嘛。

是的,用关系数据库来存储,尤其是存储简单的知识图谱,从技术上来说是完全没问题的。

但需要注意的是,一旦知识图谱变复杂,图数据库在关联查询的效率上会比传统的关系数据存储方式有显著的提高。当我们涉及到2,3度的关联查询,基于知识图谱的查询效率会高出几千倍甚至几百万倍。

除此之外,基于图的存储在设计上会非常灵活,一般只需要局部的改动即可。

因此如果你的数据量较大,还是建议直接用图数据库来进行存储的。

3、知识图谱的架构

知识图谱的架构主要可以被分为:

  • 逻辑架构
  • 技术架构

3.1 逻辑架构

在逻辑上,我们通常将知识图谱划分为两个层次:数据层和模式层。

  • 模式层:在数据层之上,是知识图谱的核心,存储经过提炼的知识,通常通过本体库来管理这一层这一层(本体库可以理解为面向对象里的“类”这样一个概念,本体库就储存着知识图谱的类)。
  • 数据层:存储真实的数据。

如果还是有点模糊,可以看看这个例子:

模式层:实体-关系-实体,实体-属性-性值

数据层:比尔盖茨-妻子-梅琳达·盖茨,比尔盖茨-总裁-微软

3.2 技术架构

知识图谱的整体架构如图所示,其中虚线框内的部分为知识图谱的构建过程,同时也是知识图谱更新的过程。

别紧张,让我们顺着这张图来理一下思路。首先我们有一大堆的数据,这些数据可能是结构化的、非结构化的以及半结构化的,然后我们基于这些数据来构建知识图谱,这一步主要是通过一系列自动化或半自动化的技术手段,来从原始数据中提取出知识要素,即一堆实体关系,并将其存入我们的知识库的模式层和数据层。

构建知识图谱是一个迭代更新的过程,根据知识获取的逻辑,每一轮迭代包含三个阶段:

  • 信息抽取:从各种类型的数据源中提取出实体、属性以及实体间的相互关系,在此基础上形成本体化的知识表达;
  • 知识融合:在获得新知识之后,需要对其进行整合,以消除矛盾和歧义,比如某些实体可能有多种表达,某个特定称谓也许对应于多个不同的实体等;
  • 知识加工:对于经过融合的新知识,需要经过质量评估之后(部分需要人工参与甄别),才能将合格的部分加入到知识库中,以确保知识库的质量。

4、构建技术

前面我们已经说过了,知识图谱有自顶向下和自底向上两种构建方式,这里提到的构建技术主要是自底向上的构建技术。

如前所述,构建知识图谱是一个迭代更新的过程,根据知识获取的逻辑,每一轮迭代包含三个阶段:

  • 信息抽取:从各种类型的数据源中提取出实体、属性以及实体间的相互关系,在此基础上形成本体化的知识表达;
  • 知识融合:在获得新知识之后,需要对其进行整合,以消除矛盾和歧义,比如某些实体可能有多种表达,某个特定称谓也许对应于多个不同的实体等;
  • 知识加工:对于经过融合的新知识,需要经过质量评估之后(部分需要人工参与甄别),才能将合格的部分加入到知识库中,以确保知识库的质量,见下图

下面我们依次来对每一个步骤进行介绍。(长文预警)

4.1 信息抽取

信息抽取(infromation extraction)是知识图谱构建的第1步,其中的关键问题是:如何从异构数据源中自动抽取信息得到候选指示单元?

信息抽取是一种自动化地从半结构化和无结构数据中抽取实体、关系以及实体属性等结构化信息的技术。

涉及的关键技术包括:实体抽取、关系抽取和属性抽取。

★ 4.1.1 实体抽取

实体抽取,也称为命名实体识别(named entity recognition,NER),是指从文本数据集中自动识别出命名实体。

比如在下图中,通过实体抽取我们可以从其中抽取出三个实体——“Steve Balmer”, “Bill Gates”,和”Microsoft”。

实体抽取的研究历史主要是从面向单一领域进行实体抽取,逐步跨步到面向开放域(open domain)的实体抽取。

★ 4.1.2 关系抽取

文本语料经过实体抽取之后,得到的是一系列离散的命名实体,为了得到语义信息,还需要从相关语料中提取出实体之间的关联关系,通过关系将实体联系起来,才能够形成网状的知识结构。这就是关系抽取需要做的事,如下图所示。

研究历史:

  1. 人工构造语法和语义规则(模式匹配)
  2. 统计机器学习方法
  3. 基于特征向量或核函数的有监督学习方法
  4. 研究重点转向半监督和无监督
  5. 开始研究面向开放域的信息抽取方法
  6. 将面向开放域的信息抽取方法和面向封闭领域的传统方法结合

★ 4.1.3 属性抽取

属性抽取的目标是从不同信息源中采集特定实体的属性信息,如针对某个公众人物,可以从网络公开信息中得到其昵称、生日、国籍、教育背景等信息。

研究历史:

  1. 将实体的属性视作实体与属性值之间的一种名词性关系,将属性抽取任务转化为关系抽取任务。
  2. 基于规则和启发式算法,抽取结构化数据
  3. 基于百科类网站的半结构化数据,通过自动抽取生成训练语料,用于训练实体属性标注模型,然后将其应用于对非结构化数据的实体属性抽取。
  4. 采用数据挖掘的方法直接从文本中挖掘实体属性和属性值之间的关系模式,据此实现对属性名和属性值在文本中的定位。

4.2 知识融合

通过信息抽取,我们就从原始的非结构化和半结构化数据中获取到了实体、关系以及实体的属性信息。

如果我们将接下来的过程比喻成拼图的话,那么这些信息就是拼图碎片,散乱无章,甚至还有从其他拼图里跑来的碎片、本身就是用来干扰我们拼图的错误碎片。
也就是说:

  • 拼图碎片(信息)之间的关系是扁平化的,缺乏层次性和逻辑性;
  • 拼图(知识)中还存在大量冗杂和错误的拼图碎片(信息)

那么如何解决这一问题,就是在知识融合这一步里我们需要做的了。

知识融合包括2部分内容:

  • 实体链接
  • 知识合并

★ 4.2.1 实体链接

实体链接(entity linking)是指对于从文本中抽取得到的实体对象,将其链接到知识库中对应的正确实体对象的操作。

其基本思想是首先根据给定的实体指称项,从知识库中选出一组候选实体对象,然后通过相似度计算将指称项链接到正确的实体对象。

研究历史:

  1. 仅关注如何将从文本中抽取到的实体链接到知识库中,忽视了位于同一文档的实体间存在的语义联系。
  2. 开始关注利用实体的共现关系,同时将多个实体链接到知识库中。即集成实体链接(collective entity linking)

实体链接的流程:

  1. 从文本中通过实体抽取得到实体指称项;
  2. 进行实体消歧共指消解,判断知识库中的同名实体与之是否代表不同的含义以及知识库中是否存在其他命名实体与之表示相同的含义;
  3. 在确认知识库中对应的正确实体对象之后,将该实体指称项链接到知识库中对应实体。

实体消歧是专门用于解决同名实体产生歧义问题的技术,通过实体消歧,就可以根据当前的语境,准确建立实体链接,实体消歧主要采用聚类法。其实也可以看做基于上下文的分类问题,类似于词性消歧和词义消歧。

共指消解技术主要用于解决多个指称对应同一实体对象的问题。在一次会话中,多个指称可能指向的是同一实体对象。利用共指消解技术,可以将这些指称项关联(合并)到正确的实体对象,由于该问题在信息检索和自然语言处理等领域具有特殊的重要性,吸引了大量的研究努力。共指消解还有一些其他的名字,比如对象对齐、实体匹配和实体同义。

★ 4.2.2 知识合并

在前面的实体链接中,我们已经将实体链接到知识库中对应的正确实体对象那里去了,但需要注意的是,实体链接链接的是我们从半结构化数据和非结构化数据那里通过信息抽取提取出来的数据。

那么除了半结构化数据和非结构化数据以外,我们还有个更方便的数据来源——结构化数据,如外部知识库和关系数据库。

对于这部分结构化数据的处理,就是我们知识合并的内容啦。一般来说知识合并主要分为两种:

  • 合并外部知识库,主要处理数据层和模式层的冲突
  • 合并关系数据库,有RDB2RDF等方法

4.3 知识加工

经过刚才那一系列步骤,我们终于走到了知识加工这一步了!

感觉大家可能已经有点晕眩,那么让我们再来看一下知识图谱的这张架构图。

在前面,我们已经通过信息抽取,从原始语料中提取出了实体、关系与属性等知识要素,并且经过知识融合,消除实体指称项与实体对象之间的歧义,得到一系列基本的事实表达。

然而事实本身并不等于知识。要想最终获得结构化,网络化的知识体系,还需要经历知识加工的过程。

知识加工主要包括3方面内容:本体构建、知识推理和质量评估

★ 4.3.1 本体构建

本体(ontology)是指工人的概念集合、概念框架,如“人”、“事”、“物”等。

本体可以采用人工编辑的方式手动构建(借助本体编辑软件),也可以以数据驱动的自动化方式构建本体。因为人工方式工作量巨大,且很难找到符合要求的专家,因此当前主流的全局本体库产品,都是从一些面向特定领域的现有本体库出发,采用自动构建技术逐步扩展得到的。

自动化本体构建过程包含三个阶段:

  1. 实体并列关系相似度计算
  2. 实体上下位关系抽取
  3. 本体的生成

比如对下面这个例子,当知识图谱刚得到“阿里巴巴”、“腾讯”、“手机”这三个实体的时候,可能会认为它们三个之间并没有什么差别,但当它去计算三个实体之间的相似度后,就会发现,阿里巴巴和腾讯之间可能更相似,和手机差别更大一些。

这就是第一步的作用,但这样下来,知识图谱实际上还是没有一个上下层的概念,它还是不知道,阿里巴巴和手机,根本就不隶属于一个类型,无法比较。因此我们在实体上下位关系抽取这一步,就需要去完成这样的工作,从而生成第三步的本体。

当三步结束后,这个知识图谱可能就会明白,“阿里巴巴和腾讯,其实都是公司这样一个实体下的细分实体。它们和手机并不是一类。”

★ 4.3.2 知识推理

在我们完成了本体构建这一步之后,一个知识图谱的雏形便已经搭建好了。但可能在这个时候,知识图谱之间大多数关系都是残缺的,缺失值非常严重,那么这个时候,我们就可以使用知识推理技术,去完成进一步的知识发现。

比如在下面这个例子里:

我们可以发现:如果A是B的配偶,B是C的主席,C坐落于D,那么我们就可以认为,A生活在D这个城市。

根据这一条规则,我们可以去挖掘一下在图里,是不是还有其他的path满足这个条件,那么我们就可以将AD两个关联起来。除此之外,我们还可以去思考,串联里有一环是B是C的主席,那么B是C的CEO、B是C的COO,是不是也可以作为这个推理策略的一环呢?

当然知识推理的对象也并不局限于实体间的关系,也可以是实体的属性值,本体的概念层次关系等。

比如:

  • 推理属性值:已知某实体的生日属性,可以通过推理得到该实体的年龄属性;
  • 推理概念:已知(老虎,科,猫科)和(猫科,目,食肉目)可以推出(老虎,目,食肉目)

这一块的算法主要可以分为3大类,基于逻辑的推理、基于图的推理和基于深度学习的推理。

★ 4.3.3 质量评估

质量评估也是知识库构建技术的重要组成部分,这一部分存在的意义在于:可以对知识的可信度进行量化,通过舍弃置信度较低的知识来保障知识库的质量

好啦,在质量评估之后,你是不是想说,妈耶知识图谱终于构建完毕了。终于可以松一口气了。

好吧,实不相瞒,知识图谱这个宝宝目前虽然我们构建成功了。

但是!你家宝宝不吃饭的啊!你家宝宝不学习的啊!

所以,让我们冷静一下,乖乖进入知识更新这一步……

4.4 知识更新

从逻辑上看,知识库的更新包括概念层的更新和数据层的更新

  • 概念层的更新是指新增数据后获得了新的概念,需要自动将新的概念添加到知识库的概念层中。
  • 数据层的更新主要是新增或更新实体、关系、属性值,对数据层进行更新需要考虑数据源的可靠性、数据的一致性(是否存在矛盾或冗杂等问题)等可靠数据源,并选择在各数据源中出现频率高的事实和属性加入知识库。

知识图谱的内容更新有两种方式:

  • 全面更新:指以更新后的全部数据为输入,从零开始构建知识图谱。这种方法比较简单,但资源消耗大,而且需要耗费大量人力资源进行系统维护;
  • 增量更新:以当前新增数据为输入,向现有知识图谱中添加新增知识。这种方式资源消耗小,但目前仍需要大量人工干预(定义规则等),因此实施起来十分困难。

5、知识图谱的应用

好了!终于终于!知识图谱的构建方式我们就此结束了!

为了让大家不立刻弃疗,让我们来看看知识图谱能做到什么,以及目前已经做到了什么~

  • 智能搜索——也是知识图谱最成熟的一个场景,自动给出搜索结果和相关人物
  • 构建人物关系图,查看更多维度的数据
  • 反欺诈:这主要有两部分原因,一个是反欺诈的数据来源多样,结构化和非结构化,二是不少欺诈案件会涉及到复杂的关系网络
  • 不一致性验证(类似交叉验证)——关系推理
  • 异常分析(运算量大,一般离线)
    • 静态分析:给定一个图形结构和某个时间点,从中去发现一些异常点(比如有异常的子图)。
    • 动态分析:分析其结构随时间变化的趋势。(假设短时间内知识图谱结构的变化不会太大,如果它的变化很大,就说明可能存在异常,需要进一步的关注。会涉及到时序分析技术和图相似性计算技术。)
  • 失联客户管理 挖掘出更多的新联系人,提高催收的成功率。
  • ……

事实上,知识图谱的应用远不止于此。在我看来,这个世界就是一张巨大的知识图谱,是无数个实体关系对,这两年工业界对图数据库、知识图谱的巨大需求也同样反映出了这一点。

就像这篇文章开头说的那句一样,

“The world is not made of strings , but is made of things.”
——辛格博士,from Google.

References

[1] 刘峤, 李杨, 段宏,等. 知识图谱构建技术综述[J]. 计算机研究与发展, 2016, 53(3):582-600.
[2] 打怪的蚂蚁. CSDN. 知识图谱技术技巧. http://blog.csdn.net/xgjianstart/article/details/70214852
[3] Ehrlinger L, Wöß W. Towards a Definition of Knowledge Graphs[C]// Joint Proceedings of the Posters and Demos Track of, International Conference on Semantic Systems – Semantics2016 and, International Workshop on Semantic Change & Evolving Semantics. 2016.
[4] Das R, Neelakantan A, Belanger D, et al. Chains of Reasoning over Entities, Relations, and Text using Recurrent Neural Networks[J]. 2016:132-141.

OpenKG.CN

中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

 

知识工场 | 让机器认知中文实体 —复旦大学知识工场发布中文实体识别与链接服务

本文转载自公众号:知识工场

一、什么是实体识别与链接

近年来,如何通过知识图谱让机器实现自然语言理解受到越来越多的关注。其中,识别文本中的实体,并将它们链接到知识库中,是让机器理解自然语言的第一步,也是至关重要的一步。比如,当智能问答系统在回答“李娜在哪一年拿到澳网冠军?”这一问题时,第一步就是识别并在知识库中找到网球运动员李娜这一实体,才能继续从知识库中找到相关信息并作出回答。如果识别出错或者没有将“李娜”正确链接到网球运动员李娜这一实体的话,系统对于这个问题的回答必然出错。根据我们的调研,目前面向通用领域的中文实体识别与链接服务,能够公开可用且取得满意效果的还不多见。

继续阅读“知识工场 | 让机器认知中文实体 —复旦大学知识工场发布中文实体识别与链接服务”

知识工场 | CN-DBpedia 漫游指南

本文转载自公众号:知识工场

CN-DBpedia于2015年12月上线以来,已经有两年多的时间了,在数据层面做了大大小小百余项完善,在CN-DBpedia 3.0 即将上线之际,尽管我们觉得离完美还有距离,但也是时候拿出来让大家看看了。于是知识工场实验室做了一个知识图谱可视化系统,取名叫Curiosity,如果你也好奇,就点开看看啰。

继续阅读“知识工场 | CN-DBpedia 漫游指南”

鲍捷 | 知识图谱从 0 级到 10 级简化版

本文转载自公众号:文因学堂


文因学以前写过几个进阶指南,可能都太难,不接地气。这里重新写一个更实事求是、更便于工程落地的版本yiqm  df以前写过几个进阶指南,可能都太难,不接地气。这里重新写一个更实事求是、更便于工程落地的版本。

0级:掌握正则表达式、SQL、JSON和一门支持if-then-else的高级语言  —— 是的,这些不是知识图谱技术,但是这些可以解决问题。我们要的是解决问题,不是吗?

1级:学会ER建模(对,就是数据库里的ER建模),理解实体(Entity)和关系(Relation)的概念。这个可能比你想象得难很多。学会更复杂的SQL,能熟练掌握至少一种主流的关系数据库,至少学会一种语言的数据库操作。

2级:学会两种给实体命名的方法:数据库里的主键,Web上的URI。理解分类树。这时候可以学下RDF了,掌握Turtle和JSON-LD两种语法。会用Java或者Python操作RDF。(小白一般到这里就开始大批阵亡)

继续阅读“鲍捷 | 知识图谱从 0 级到 10 级简化版”

技术动态 | 手把手带你入门微软 Graph Engine

本文转载自微软研究院 AI 头条公众号,作者为李亚韬。

导读:出自微软亚洲研究院的 Graph Engine(原名Trinity)是一个基于内存的分布式大规模图数据处理引擎,能够帮助用户高效地处理大规模图数据,且更方便地构建实时查询应用和高吞吐量的离线分析平台。自 2015 年发布以来,Graph Engine 受到了来自学术界和工业界的广泛关注。访问 Graph Engine 的 GitHub 页面(https://github.com/Microsoft/GraphEngine)。

继续阅读“技术动态 | 手把手带你入门微软 Graph Engine”