知识图谱的一些基本功

(好像说的不只是入门了。算是个成长打怪小提纲吧)

任何一个学科,重要的不是静态的知识本身,而是建立知其然(Framework),知其所以然(Rationale),最后到知未然(Insights)。最重要的便是产生insights,因拥有洞察而知关键所在,所以能预测未来的走向,不人云亦云。

知识图谱作为一门学问,绝不是用个图数据库写几条查询,或者用规则写一个表格的提取,就可以称为成功的运用的。和所有的学科一样,都需要长期的艰苦的努力,在充分了解前人成果的基础上,才有可能做出一点点成绩。

知识图谱作为人工智能(AI)的一个分支,和AI的其他分支一样,它的成功运用,都是需要知道它的所长,更需要知道它的所短的。特别是AI各个学派林立,经验主义(机器学习)、连接主义(神经网络)、理性主义(知识工程)、行为主义(机器人)各个方法的优劣,倘若不能有纵览的理解,也难以做正确的技术选型,往往盲目相信或者排斥一种技术。AI是一个极端需要广阔视野的学科。

知识图谱涉及知识提取、表达、存储、检索一系列技术,即使想有小成,也需要几年的功夫探索。如下所列,应该是每个知识图谱从业者都应该了解的一些基本功:

知道Web的发展史,了解为什么互联和开放是知识结构形成最关键的一件事。(我把这个列第一条,是我的偏见——但我认为这是最重要的一个insights)

知道RDF,OWL,SPARQL这些W3C技术堆栈,知道它们的长处和局限。会使用RDF数据库和推理机。

了解一点描述逻辑基础,知道描述逻辑和一阶逻辑的关系。知道模型论,不然完全没法理解RDF和OWL。

了解图灵机和基本的算法复杂性。知道什么是决策问题、可判定性、完备性和一致性、P、NP、NExpTime。

最好再知道一点逻辑程序(Logic Programming),涉猎一点答集程序(Answer Set Programming),知道LP和ASP的一些小工具。这些东西是规则引擎的核心。如果不满足于正则表达式和if-then-else,最好学一点这些。

哦,当然要精通正则表达式。熟悉regex的各种工具。

从正则文法到自动机。不理解自动机很多高效的模式提取算法都理解不了。

熟悉常见的知识库,不必事事重新造轮子,如Freebase, Wikidata, Yago, DBPedia。

熟悉结构化数据建模的基本方法,如ER,面向对象,UML,脑图。

学会使用一些本体编辑器,如Protege。(Palantir就是个价值120亿美元的本体编辑器)

熟悉任何一种关系数据库。会使用存储过程写递归查询。明白什么叫物化视图、传递闭包、推理闭包。

熟悉任何一种图数据库。明白图的局部索引和关系的全局索引的理论和实践性能差异。

熟悉词法分析的基本工具,如分词、词性标注

熟悉句法分析的基本工具,如成分分析、依存文法分析、深层文法分析

熟悉TFIDF、主题模型和分布式表示的基本概念和工具。知道怎么计算两个词的相似度、词和句子的关联度。

知道怎么做命名实体识别。知道一些常用的词表。知道怎么用规则做关系提取。

为了上述的深化,要掌握一些机器学习的基本概念,识别、分类、聚类、预测、回归。掌握一些机器学习工具包的使用。

谨慎地使用一些深度学习方法,最好在是了解了神经网络的局限之后,先玩玩BP。主要是用用LSTM。

了解前人已经建好的各种Lexical数据库,如Wordnet, framenet, BabelNet, PropBank。熟悉一些常用的Corpus。

知道信息检索的基本原理。知道各种结构的索引的代价。

掌握Lucene或者Solr/Elasticsearch的使用。

学会混合使用多种数据库,把结构化数据和非结构化数据放在一起使用。体会数据建模和查询的成本。

学会一些概念原型工具,如Axure和Semantic Mediawiki。快速做MVP。

以上是挂一漏万的一些罗列。知识图谱是交叉性的、实践性的学问,当然不必先蒙头学几年才能来做事。How to get to Carnegie Hall? Practice, Practice, Practice.

所以Just practice。

最后推销一下我在中国中文信息学会《前沿技术讲习班》第三期做的讲座:精益知识图谱方法论 – 文因互联

原发于知乎 https://www.zhihu.com/question/52368821/answer/138745422


评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注