近距离接触知识图谱

—前言

开学第二周的星期三(2.28)找了一趟导师,导师给我布置了一些新的任务,要求在3月20日进行汇报。

  1. 常用的知识图谱有哪几个?
  2. 都是关于那些领域的?
  3. 可以下载吗?
  4. 知识图谱里包含了哪些东西?
  5. 怎么使用它?

另外,导师提了一下她对IMDB这个电影知识库非常感兴趣。看来我到时候要重点看一下这个了 。

接到任务这一周以来,每天也抽出挺多的时间去查找资料了,但好像没有什么实质性的进展。我目前遇到的困难有这几个:

  1. 很多知识库的网站都是英文界面,对浏览造成了一些阻力。不过凭借谷歌浏览器内置的翻译功能,又安装了一个划词翻译的插件,浏览网页时遇到的语言问题已经差不多解决了,不过浏览论文或者英文说明书的语言问题还需要扎实的积累。
  2. 对于这些知识库网站上数据文件的下载。第一点是知识库文件非常大,对于下载来说有些困难。第二点是下载的地址比较难找,以及不知道下载到的是不是能正确的文件。目前好像只有DBpedia找到了可以下载的文件,但还不知道到底该下载哪个。网上这方面的教程相对来说较少,而且,知识库文件种类繁多,如rdf,owl,nt等,每种格式的内部构造和打开方式都不太一样,需要另外去了解它们的详细信息,造成了一定的困难。
  3. 下载了知识库后,应用又是一大难题。我找到了一个软件(Protege),这个软件是用来自己构建知识图谱本体的,其中以owl类型为主。我发现好多知识库文件的格式都可以用这个软件打开。我也用这个软件打开了一些网上下载的小型的知识库文件。但是随着下载知识库文件体积的增加,大一点的知识库文件(在DBpedia中下载的ttl/tql文件)就根本无法打开了。
    DBpedia_Ontology

  4. 涉及到其他领域知识的问题。通过我这些天的观察和了解,发现知识图谱和数据库的关系比较紧密。首先,数据库的ER模型就和知识图谱的三元组非常相似;其次,在知识图谱数据集文件中,实体和关系的表示格式也和数据库颇为相似;最后,在知识图谱的应用中,数据库的查询语句可能会起到关键作用。

  5. 目前看到的很多知识图谱都只在主页上说明了其API怎么调用,并没有讲到它提供下载的数据集的详细信息和使用方法,需要自己去探索。

我的进展十分缓慢,一方面是我还没有一个系统的科学的解决问题的套路,一方面是我感觉我现在在做的工作比较乱。那么就把问题全部罗列出来,一点一点针对性的攻克吧。在3月20日之前,我会持续在这篇博客中列出我每天的研究计划,记录我的研究过程。

“常用的知识图谱有哪些?都是关于哪些领域的?”

在IJCAI 2017会议上,评出了两篇卓越论文奖,分别给了YAGO2和BabelNet,这是一件令广大知识图谱构建者兴奋的事情,这代表着国际人工智能组织对于我们知识图谱构建工作的认可。同时,两类构建方法并列获奖,也说明了这两类构建方法都是非常重要的。
(目前我进过网页详细看过的)

  1. DBpedia 是一个大规模的多语言百科知识图谱, 可视为是维基百科的结构化版本。 DBpedia 使用固定的模式(Schema)对维基百科中的实体信息进行抽取,包括 abstract、 infobox、category 和 page link 等信息。DBpedia 目前拥有 127 种语言的超过两千八百万个实体与数亿个 RDF 三元组, 并且作为链接数据的核心, 与许多其他数据集均存在实体映射关系。而根据抽样评测, DBpedia 中 RDF 三元组的正确率达 88%。
    DBpedia 支持数据集的完全下载
    DownloadPage
  2. CN-­DBPeidia 是由复旦大学知识工场实验室研发并维护的大规模通用领域结构化百科。 CNDBpedia主要从中文百科类网站(如百度百科、 互动百科、 中文维基百科等) 的纯文本页面中提取信息, 经过滤、 融合、 推断等操作后, 最终形成高质量的结构化数据, 供机器和人使用。 CN­DBpedia自2015年12月份发布以来已经在问答机器人、 智能玩具、 智慧医疗、 智慧软件等领域产生数亿次API调用量。
    CN­DBpedia提供全套API, 并且免费开放使用。 大规模商务调用, 提供由IBM、 华为支持的专业、 稳定服务接口。
  3. WikiData的目标是构建一个免费开放、 多语言、 任何人或机器都可以编辑修改的大规模链接知识库。WikiData由维基百科于2012年启动, 早期得到微软联合创始人Paul Allen、 Gordon Betty Moore基金会以及Google的联合资助。 WikiData继承了Wikipedia的众包协作的机制, 但与Wikipedia不同, WikiData支持的是以三元组为基础的知识条目(Items)的自由编辑。一个三元组代表一个关于该条目的陈述(Statements)。例如可以给“地球”的条目增加“<地球,地表面积是,五亿平方公里>”的三元组陈述。 截止2016年, WikiData已经包含超过2470多万个知识条目。
  4. BabelNet 是目前世界范围内最大的多语言百科同义词典, 它本身可被视为一个由概念、 实体、 关系构成的语义网络(Semantic Network) 。BabelNet 目前有超过 1400 万个词目, 每个词目对应一个 synset。 每个 synset包含所有表达相同含义的不同语言的同义词。 比如: “中国”、 “中华人民共和国”、 “China”以及“people’srepublicof China”均存在于一个 synset 中。 BabelNet 由 WordNet 中的英文 synsets 与维基百科页面进行映射, 再利用维基百科中的跨语言页面链接以及翻译系统, 从而得到 BabelNet 的初始版本。 目前 BabelNet 又整合了Wikidata、 GeoNames、 OmegaWiki 等多种资源, 共拥有 271 个语言版本。 由于 BabelNet 中的错误来源主要在于维基百科与 WordNet 之间的映射, 而映射目前的正确率大约在 91%。
    关于数据集的使用, BabelNet 目前支持 HTTP API 调用。数据集的完全下载需要经过非商用的认证后才能完成。

百科知识图谱构建的方法从数据源来说,可以分为两类。一类是对单百科数据源进行深度抽取,典型代表有Dbpedia,Yago和CN-DBpedia。Dbpedia和Yago是以维基百科作为数据源,而CN-Dbpedia是以百度百科作为数据源。另一类是对多百科数据源进行融合。典型代表有BabelNet、zhishi.me和XLORE。BabelNet是融合了非常多的知识图谱。Zhishi.me融合了百度百科、互动百科以及中文维基百科。XLORE融合了百度百科、互动百科以及英文维基百科。这两类构建方法的重点有所不同,前者侧重于抽取,后者侧重于融合。

“怎么使用它?”

如何把dataset应用到推荐系统里面去?

  1. 如何利用knowledge base来做推荐
    对于“怎么使用它”这个问题,我目前还处于一个比较茫然的状态,希望老师能给予一点点研究方法上的指点。

“探索过程中遇到的新名词,新方法和一些神奇的网站”

  1. The Linked Open Data Cloud

这个网站好像是把现存的大量的知识库给联系起来了,图中的每一个点都是一个知识库,最中间的点是DBpedia。
lod-cloud

  1. 关于大规模知识库的处理,目前了解到的软件有protege,neo4j,Jena

关于Jena
百度百科 :jena是一个java 的API,用来支持语义网的有关应用,学习jena需要了解XML 、RDF、 Ontology、OWL等方面的知识。具体来讲,需要知道什么是本体以及如何利用工具(如protege等)建立本体,要能读懂和手动编写RDF、XML,对OWL也要熟悉。

我发现掌握这个软件又需要很多其他的预备知识,就又感受到了很大的阻力。

  1. Mixing Python and OWL
    一个用python来处理本体文件的库
  2. Kaggle
    好像是一个专注于数据集分享的网站,界面风格有点像github,是个好地方,有很多不错的数据集。

“一些概念的明晰”

  1. 知识库(Knowledge Base)
    就是一个知识数据库,包含了知识的本体和知识。Freebase是一个知识库(结构化),维基百科也可以看成一个知识库(半结构化),等等。
  2. 知识图谱(Knowledge Graph)
    这个名词是Google的知识库的名字(The Knowledge Graph is a knowledge base used by Google to enhance its search engine’s search results with semantic-search information gathered from a wide variety of sources.),只是叫这个名字而已。不过好像最近很多把知识图谱等价于知识库来看待,原因大概在于很多场合中知识库的数据都是以RDF三元组的模式存储的,等价于一个图
  3. 本体(Ontology)
    维基百科中的定义

    In computer science and information science, an ontology is a formal naming and definition of the types, properties, and interrelationships of the entities that really or fundamentally exist for a particular domain of discourse. It is thus a practical application of philosophical ontology, with a taxonomy.

本体这个概念可能与数据库中的模式(Schema) 有些类似。

“过去做了什么”

3月10号

  1. 在DBpedia网站的数据集下载页面下载了两个数据集,分别是Anchor Texts,和Article Categories的英文版本。文件的格式是anchor_text_en.tql和article_categories_en.ttl。都是上G的文件,根本无法打开。网上说需要切文件,我也不知道是一种什么样的操作。
  2. Wikipedia(这个页面上有不断更新的、大量的数据文件,网页注明是dump转储文件,不太清楚是什么意思)上下载了一个名为enwiki-20181201-pages-meta-history1.xml的数据文件,大小为72GB(压缩包只有322.4 MB大小,解压用了将近20分钟),显然是无法打开的。初步估计像DBpedia,Yago这种知识库上的结构化数据就是在这些xml文件中提取出来的。

3月12号

  1. 又看了一下“融合知识图谱表示学习和矩阵分解的推荐算法”这篇论文的实验部分。看到他用的就是IMDB数据集,在过程中给出了几个引文的名字。我由此找到并下载了这几个引文,并打算粗略的读一下。这几天重点看一下IMDB的数据集。
  2. 似乎对数据集的认识更深了一点。

“明天要做什么”

读完关于IMDB数据集的四篇论文。

-------------本文结束感谢您的阅读-------------