- 前言
- 正文
- 参考文献
前言
写在前面,本文的内容主要基于2017年12月2日在苏州大学举办的知识图谱前沿技术课程(感谢各位老师的talk,受益良多)以及本人在之前阅读的有关paper,对KG和QA的进一步认识还有待我继续阅读和学习有关paper与书籍。由于我知识水平有限,难免有些错误,如有错误还请赐教。
正文
知识图谱2012年被谷歌提出之后,被广泛应用于各个领域。在图谱中,node一般代表entity或者concept,边一般代表关系,常见的有isA和subclassOf的关系,类属关系和子类关系实际上可以对应到语言学中的上下位词关系,如:姚明是一名篮球运动员,此时姚明是篮球运动员的下位词(hyponym)或者篮球运动员是姚明的上位词(hypernym)。这部分属于知识图谱的一些常识知识,我就不过多赘述了,之前我也写过参加其他课程和实习之后的一些见解,请参见之前的文章[传送门——关于知识图谱的一些见解]。
构建大规模concept graph实际上需要做到以下三点“规模足够大、粒度足够细、概念足够准”,在一定程度上就对应了三个衡量的指标即:Cost, Freshness和Quality,在实际的构建中对应着四个part,即Extraction(Cost), Completion(Quality), Correction(Quality)和Update(Freshness)。
在Extraction部分,语义关系通常来自常识和特定信息(如文本和视频等),之前常用的是人工标注语料加上机器学习方法如支持向量机(Support Vector Machine, SVM),但是这么做会带来几个问题:代价问题、在cross-domain的时候性能下降以及在抽取之前往往不知道要抽取什么关系,导致不能预先指定人工标注的语料。目前主要使用的是下面几个方法:
1. Hearst Pattern
基于一些规则或者模板去做抽取,例如“NP such as NP”可以抽取出上下位关系。
2. Bootstrapping
初始化种子entity pair,使用这些种子pair在文本中扩展新的entity pair,但是会导致语义漂移的问题。例如,对于首都这一关系,使用种子entity pair(北京,中国)、(首尔,韩国)、(东京,日本)等,在文本中扩展时遇到“北京位于中国”的情况,从而将“X位于Y”对应到了首都这一关系,产生(江苏,中国)这样的(语义漂移)错误。
解决语义漂移,有如下几个方法:
a. Mutual Exclusion Bootstrapping(利用互斥类别,一个实体只能属于一个类别)[1]
b. Coupled training(建模不同抽取关系之间的约束,寻找最大化满足这些约束的抽取结果)[2]
c. Co-Bootstrapping(引入负实例来限制漂移)[3]
3. Distant Supervision
这个部分有几项工作:
a. 多源弱监督知识协同建模(这篇论文应该发表在AAAI 2016,