1. 问答系统的分类
非结构化的知识源
       单文档阅读理解(Single-document Reading Comprehension):单一文档寻找答案
       多文档阅读理解(Multi-document Reading Comprehension):多个文档检索答案
结构化的知识源
       基于关系型数据库的问答(Relational DB oriented QA)
       基于知识库的问答(Knowledge based QA)KBQA
2. 问题类型
事实行问题:where/who/when/ was Obama born?
是非型问题: is beijing the captical of China?
对比型:which city is larger,shanghai or beijing?
原因/结果/方法型问题:how to open the door? why summer is hotter than winter?
观点型:what is Chinese opinion about Donald?
对话型:
3. KBQA的工作方式
问题--->实体链接--->属性理解(意图识别+属性关联)--->结构化查询---知识图谱--->答案
如:how many people live in beijing?
意图识别:识别问题所提及的实体属性, 如识别how many people live in
        能够理解相同语义的不同问法
        能够区分形式上接近但意图不同的问题
属性关联:明确意图之后,找到知识图谱对应的属性,如找到population
4. KBQA的评测
4.1 评测指标:
精确率(Precision):正确预测出答案问题数/总问题数
召回率(Recall):正确预测的答案数/答案总数
路径精确率:正确做出谓词路径映射问题数/总问题数
F1值:
4.2 评测数据集:
QALD(Queation Answering over Linked Data):基于DBpedia多语言的问答任务,混合问答任务,基于RDF的大规模问答任务,基于维基百科的英文问答任务
WebQuestions:Google用户搜索的问题,及在Freebase上的答案
WebQSP(Wedquestions Semanti Parses DataSet):对WebQuestions数据集中加入了人工标注的语义解析
SimpleQuestion:人工标注的问题及在Freebase上对应的 三元组
NLPCC:人工标注的中文问题,及在中文百科图谱上的回答。作者同时放出对应知识图谱的数据

5. 基于模板的KBQA
自然语言问题匹配---人工定义的模板---意图理解---人工标注每个模板对应的知识图谱中的属性---属性关联
5.1 基于模板的意图识别
概念模板:将意图表达为包含单词概念的正则表达式,缺乏句法结构的限制
       如”c1=*capital*$country“ 询问国家首都这一意图的概念模板
       任何先出现单词capital,后出现概念$country的实体(比如China)的问题都能匹配c1
句法规则:缺乏语义信息
       如”NP->Det || N“ 表示NP(名词短语)被定义成Det(限定词)串联N(名词)
5.2 基于模板的属性关联
属性关联:
       如果符合某个语义模板的大多数属性问答对应的问题实体和答案总是通过知识图谱的某个谓语动词关联,则谓语动词就是语义模板的属性理解结果
       如:模板”How many people live in $city“问题总对应谓词poplulation,则建立模板t="How many people live in $city"与知识图谱谓词p="population"之间的关联,这一映射可以用条件概率P(p|t)来表达
问答模型:

      

构建知识图谱 ES文档检索库 检索的技术架构 基于知识图谱的检索_结构化

6. 基于图模型的KBQA
通过图模型对问题和知识图谱进行建模,学习从自然语言到知识图谱子结构的映射关系
监督学习:直接根绝标注样本学习映射
无监督学习:将自然语言问题和知识图谱用图模型统一表示,利用图上的消歧运算实现语义理解
6.1 监督学习
语义解析 Semantic Parsing on Freebase from Question-Answer Pairs

信息抽取 Information Extraction over Structured Data: Question Answering with Freebase

向量建模   Question answering with subgraph embeddings
6.2 无监督方法
图表示:
   将自然语言问题q与知识图谱的相关信息表示到同一张图上
   将问题中的文本片段,短语和知识图谱的元素表示为图的节点,他们之间的语义关系表示为
节点:
       自然语言实体,属性和概念组成的三元组事实 -----q节点 如:一个学生著有《形而上学》 (arg1=一个学生,rel=著有,arg2=《形而上学》)
       自然语言实体,属性和概念在文本中的表达,短语-------p节点 一个学生/著有/形而上学
       知识图谱中的核心元素:实体,属性,概念 -------- s-节点 学生
边:
      q节点与p节点之间的关系:文本片段与词组之间是否具有关联
      p节点与s节点之间的语义关联:短语表达特定知识图谱元素的可能性,如著有属于代表作品的可能性高
      s节点之间的语义关联:同一问题所对应的知识图谱元素之间一般有很强的语义关联,如”形而上学“与”代表作品“之间有很强的关联
图消歧:
      某个q节点对应多个p节点
      某个p节点对应多个s节点
      子图约束:每个q节点对应三个词组(三个p节点,arg1,rel,arg2),每个p节点对应1个s节点
      max α Σ Wij+β Σ Vkl +γ
              Wij 问题p节点i到s节点j的语义相关度
              Vkl 是s节点k与s节点l的语义相关度

 

构建知识图谱 ES文档检索库 检索的技术架构 基于知识图谱的检索_自然语言_02

7. 基于深度学习的KBQA
将问题和知识图谱作为模型输入,预测属性理解的结果
7.1 表示学习
知识图谱相关信息包括答案路径,答案上下文,答案类型
问题q,实体e,答案a:
(1)答案路径:实体e与答案a之间的路径,通常表示为该路径所经过多的属性向量之和。
                up表示一个答案路径p。向量up的每个维度对应一个知识图谱的属性,某一维的取值表示路径p是否包含对应的属性
                如:路径(marriage->person->name)包含属性marriage,person,name,则该路径向量相应维度维1,其他为0
                引入答案路径向量矩阵Wp,将高维的离散向量降维为低维的连续空间
                f(p)=Wp up
(2)答案上下文:答案邻居节点信息
(3)答案类型:如《理想国》的概念是书籍,则该类型为书籍

 复杂图结构的向量表示:组成该结构的实体或属性的向量之和

        路径的左右端点(问题实体和答案)以及路径经过的属性向量之和

       

构建知识图谱 ES文档检索库 检索的技术架构 基于知识图谱的检索_ci_03

 

 

        Emb(<柏拉图,代表作品-IsA,书籍>)=Emb(柏拉图)+Emb(代表作品)+Emb(isA)+Emb(书籍)

7.2 分类模型
将问题和知识图谱输入分类模型中,判定问题q与候选答案a是否匹配的二元分类问题,将预测分值作为匹配度的度量

构建知识图谱 ES文档检索库 检索的技术架构 基于知识图谱的检索_ci_04

7.3 生成模型
将自然语言问题到知识图谱的映射转化为 结构化查询语句的生成问题
输入:自然语言问题所对应的单词序列
输出:结构化查询语句
列名(COLUMN),聚合函数(AGG)值(VALUE)判断条件(OP)
SELECT $AGG $COLUMN WHERE $COLUMN $OP $VALUE
where was Barack Obama born?
select pop(place_of_birth)where name=Barack Obama