1. 问答系统

定义: 根据问题(query)直接搜索出答案,而不是文档

2. 基于知识图谱的问答系统

分类:

  1)语义解析(Semantic Parsing): 问句转化为形式化查询语句,结构化查询得到答案

  2)语义检索(Answer Retrieval):简单搜索得到候选答案,利用问题和候选答案做相似度匹配

3. 知识问答的主要方法

  1)符号语义解析

  2)基于语义检索的知识图谱问答

  3)神经符号计算(就是用上了神经网络,做符号生成呀,做匹配呀)

4. 语义表示

  1)lambda-演算逻辑表达式

    如:\lambda x.city(x), next_to(x, y)

  2)DCS树

5. 语义解析

  1) 短语检索 -> 资源映射 -> 语义组合

  2)两个问题: 短语到资源映射(文本中抽取的短语对应知识库中的什么), 文本歧义(如 苹果 公司or水果)

  问题1 映射 词典 + 组合规则

    词典分为三部分:

      a. 短语: New York

      b. 句法表示: NP

      c. 知识库表示 : ny

    词典构建的方式:

      EM过程

      a. 根据规则生成词典

      b. 根据词典训练 parser -> 学习规则的权重 -> 根据权重过滤词典

    现有方法:

      统计对齐 利用机器翻译构建对应

      开放域关系抽取 学到 was born in == PlaceOfBirth

  问题2 歧义

    PCCG(P是Probabilistic,本质MLE,规则和生成)

  模型学习无标注逻辑表达式(知识库规模过大时)

    1. 回标生成  任意实体用变量替代 -> 生成问句 -> 词典学习

    2. 复述生成  利用同义语义

    3. 答案生成  利用答案生成逻辑表达式,将逻辑表达式当作潜在变量

6. 语义检索(问句答案特征匹配)

  1)基于显示特征

    基于结构化问句语义表达(lambda演算)在知识图谱匹配最优子图

      实体链接 -> 确定主体(Identify Core Inferential Chain)

      单主体

  2)端到端

    三个问题

      a. 问句表示如何学习

      b. 知识图谱中实体、关系如何学习

      c. 计算语义匹配

    基本步骤

      a. 候选生成 链接实体周围实体均为候选

      b. 候选排序

    考虑多维相似度

      a. 多个角度计算问句和知识的语义匹配,如answer path, answer type, answer entity

      b. 各(答案 问句)focus 不同部分

      方法如cross attention A和Q中不同部分attention

        缺点:训练语料 全局信息 OOV

        解决融入全局信息:预训练embedding 和 multi-task learning

7. 基于神经符号

  符号语义解析优点:显示,准确度高

  深度学习优点:大规模计算,可学习

  三类

  1) 序列学习

    输出答案逻辑表达式

    seq2Tree 符号串,层次树(多层decode)

  2) 动作序列

    预先定好实体,匿名化实体,输出生成相应树的action, 过滤不合法action

    基于远程监督的神经符号计算(强化学习)

      trick: 预训练 课程学习

    神经符号机:解码时每次遇到反括号执行语句

  3) 堆栈神经网络

    神经网络内部可解释

    Reader Annotator,R选列或表,A rank row or table

8. 展望

  1)语料与数据库少

  2)只能处理简单问题(问答形式简单)

  3)多知识库

  4)可解释性