Dongxing's Wiki Dongxing's Wiki
首页
  • 剑指 Offer
  • LeetCode
  • 算法与数据结构
  • Python 语言
  • Web 开发
  • Hive
  • Elastic Search
  • 机器学习
  • NLP
  • 检索技术
  • 数据分析
  • 经验笔记
  • Linux 配置
  • 博客进化记
  • 杂谈
GitHub (opens new window)
首页
  • 剑指 Offer
  • LeetCode
  • 算法与数据结构
  • Python 语言
  • Web 开发
  • Hive
  • Elastic Search
  • 机器学习
  • NLP
  • 检索技术
  • 数据分析
  • 经验笔记
  • Linux 配置
  • 博客进化记
  • 杂谈
GitHub (opens new window)
  • NLP基础

    • 七月NLP课程笔记(1) NLP基础技能
    • 七月NLP课程笔记(2)朴素贝叶斯
    • 七月NLP课程笔记(3)-LDA主题模型
    • 七月NLP课程笔记(4)-基于统计的翻译
    • 七月NLP课程笔记(5)-隐马尔科夫模型及其应用
    • 七月NLP课程笔记(6)-深度学习与NLP应用
    • 七月NLP课程笔记(7)-词向量与相关应用
    • 七月NLP课程笔记(8)-条件随机场
    • 中文分词相关技术
    • 使用gensim训练word2vec
    • 对话系统研究进展 - Paperweekly沙龙笔记
    • AI Challenger 2018 细粒度情感分析
  • NLP工具

    • 体验腾讯 AI lab 最近发布的中文 word2vec 预训练 embeddings
    • Stanford CoreNLP 快速上手
    • ParsCit 安装与使用
  • 知识图谱

    • 整理一些最近看的知识图谱资料
    • 知识图谱在金融业应用报告会笔记
    • DeepDive 中文 关系抽取实践
    • KBQA | Core Techniques of Question Answering Systems over Knowledge Bases: a Survey
      • 摘要
      • Introduction
      • 三大流行评测基准简介
        • 数据集
        • 问句
        • 评价指标
      • QA系统的选择
      • 五大任务
        • 问句分析
        • 短语映射
        • 消歧
        • 查询构建
        • 查询多个知识源
      • WebQuestions和SimpleQuestions
      • KBQA的挑战与未来
  • NLP
  • 知识图谱
anthony
2019-04-07
目录

KBQA | Core Techniques of Question Answering Systems over Knowledge Bases: a Survey

论文地址:https://link.springer.com/article/10.1007/s10115-017-1100-y

# 摘要

语义网中包含大量的信息,以知识库的形式存储。KBQA系统可以帮助人们获取这些信息。构建KBQA系统时,面临许多挑战,通常需要结合自然语言处理、信息检索、机器学习和语义网络等多种技术。本文综述了目前基于流行的测评基准QALD的各个KBQA系统所使用的技术。本文将KBQA分成多个阶段,综述每个阶段的技术,同时探讨各项技术的优缺点。此外,也指出了基于WebQuestions和SimpleQuestions这两个流行的基准的QA系统所用到的技术。

# Introduction

QA系统有多种:对数据库的、对自然文本的、对知识库的……随着RDF和SPARQL的出现,KBQA成为研究热点。

在本文中,将KBQA分成五大子任务:问题分析、短语映射、消歧、查询构建、多个知识源上的查询。将描述、分类、比较各个KBQA系统中用到的技术。本文聚焦于3个数据源/评价基准:QALD(主要)、WebQuestions和SimpleQuestions。

# 三大流行评测基准简介

QALD (Question Answering over Linked Data) 其实并不是一个评测基准,而是一系列的比赛,已有6届,每届中会有一个任务是基于DBpedia的QA。

# 数据集

WebQuestions(以下简写为WQ)和SimpleQuestions (以下简写为SQ)是基于Freebase的,QALD则是基于DBpedia的。两个KB主要区别是,FB包含二元和非二元关系(例如时序关系,通过添加一个mediator节点来表示,见下图),而DBpedia只包含二元关系。此外,对每个关系,FB同时还保存了该关系的反向。

DBpedia大概有40w个三元组,而Freebase有19亿个三元组(考虑到Freebase中的mediator和反向,两者信息量基本差不多)。

# 问句

WQ包含约6k个问句,SQ包含10w个问句,而QALD规模小很多,约50-250个问句,所以QALD不利于做监督学习。

SQ和QALD对每个问句都有SPARQL表示,而WQ只是标示出了答案,有第三方的数据集给出了WQ的SPARQL表示。

# 评价指标

precision、recall和F1值。

给定问题q,Precision = 系统给出的答案中正确的个数 / 系统给出的答案总数, Recall = 系统给出的答案中正确的个数 / 总的正确答案数。

例如,问句 三原色,答案是红绿蓝,如果系统只给出了绿和蓝,Precision是1,Recall是 2/3。

F值则是2*P*R / (P+R) 来计算得到。

评价指标包含micro和macro两种,micro只根据系统回答了的问题,取各个问题p、r的平均得到系统的p、r,未回答的问题不计入,而macro则计入所有的问题。本文中使用macro指标。

此外,系统运行耗时也是一个评价指标。

# QA系统的选择

本文筛选用于分析的QA系统时,首先选出了参加QALD比赛,以及引用了QALD文章的系统,然后进行筛选,例如,滤除了一些只能回答形式化问题的系统。

# 五大任务

概述下五大任务。 1)问句分析,主要是NLP的基础分析:判断问句类型、NER、关系分类、依存句法等。 2)短语映射,从问句中找到的短语s,在知识库中找到对应的资源(可能是实体、关系) 3)消歧,对之前的映射进行消歧 4)查询构建,也就是生成SPARQL语句,用于查询KB。 5)查询多个知识源,当问题需要从多个KB中进行搜索才能找到完整答案时。

以上五个只是一种总结归纳,并不意味着所有KBQA系统都严格按照上面五个任务来划分。

# 问句分析

问句分析,又可以分为下面的几个类型。

# NER

可使用现有的NLP工具包进行NER,局限是只限于某些特定领域(人名地名等)。还可使用Ngram的方式,将Ngram结果作为各个实体,与KB进行比较。如果有现成的Entity Linking工具,可以直接完成实体识别+与知识库的映射。

# 切分和 POS tagging

先对句子进行POS标注,有了POS tag,可以辅助进行句子的切分(切出表示实体、关系的短语)。可通过人工构建规则的方式(例如正则表达式等),也可以通过标注训练数据+机器学习的方式。

# 依存分析

依存分析可以识别出句子中各个块之间的关系。parser要基于某种形式化的语法来做解析,语法包括符号以及将符号组合起来的规则。不同的KBQA系统,有时使用了不同的依存分析语法。

下图展示了几种不同的解析表示方式。

# 小结

下图展示了参与分析的KBQA系统所使用到的技术。

# 短语映射

给定一个短语s,想要在KB中找到它对应的实体/关系/类。

KB中,资源记作r,每个资源有对应的label,所以我们的目标是给定s,找到label与s相等或包含s的r。

为了能够快速进行搜索,需要对KB构建索引,可使用某些三元组数据库(例如说virtuoso)内置的索引功能,或者采用LUcene外部搜索工具。

但在映射时,有一些要注意的问题:一是s可能存在拼写错误或者单复数等形式,导致字面符号不完全一致;二是存在文字书写几乎不相关,但语义非常相似的,例如EU对应欧盟,married对应spouse等。这两个问题非常重要。

第一个问题,可通过计算字符串相似度,or 模糊搜索 or 英文的stemming词干化,来解决拼写错误或单复数的问题。

第二个问题涉及语义相似度,主要有以下解决思路:

1)词库。例如借助WordNet和Wiktionary,或者专门的一个同义词库PATTY,可将s扩展成多个同义词,拿多个同义词去KB中搜索。带来的一个坏处是由于匹配到了更多的内容,给消歧增大了计算量。

2)重定向。开发知识库的sameAs关系,为一个实体增加多个sameAs实体,这样就便于匹配到了。

3)从文本中抽取。例如已知kb中的三元组x,r,y,拿着x,y去文本中,找他俩出现的位置,夹在之间的文本很可能就是关系r对应的文本表示。大致依照这种思路,找到文本与KB资源的对应关系。

4)词向量方式。借助word2vec等词向量,找到同义词,或者计算相似度。

此外,有部分工具直接提供了短语映射功能,例如DBpedia Lookup、WikiPedia Miner Tool等。

# 小结

KBQA系统及其用到的方法,可见下图。

这里也涉及到p和r两个指标之间的取舍问题:更少的匹配可以提升precision,更多的匹配可以提升recall。

# 消歧

之前的两步操作,都可能产生歧义:切分和依存分析时会有歧义,将短语与KB进行映射时也会有歧义。

# 本地消歧

主要通过两种特征来辅助消歧。一是字符串或语义相似度,用来对多个候选答案进行排序。二是一些类型一致性检查,用来排除某些候选答案。之所以叫做“本地”,是因为只针对直接关联的这两个资源进行检查,不涉及其他资源,所以可直接本地进行,速度较快,但缺点是本地信息较少,有时不包含类型等信息,一致性检查就没法做。

例如,“谁是指环王的导演”,由于“导演”包含领域信息-电影,所以指环王的类型也应该是电影。但如果指环王不包含领域信息,这种一致性检查就没法做了。

# 图搜索

# 查询构建

# 查询多个知识源

# WebQuestions和SimpleQuestions

# KBQA的挑战与未来

上次更新: 2022/11/11, 2:11:00
DeepDive 中文 关系抽取实践

← DeepDive 中文 关系抽取实践

Theme by Vdoing | Copyright © 2017-2023 anthony 京ICP备17072417-3
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式