第十八篇:Question Answering问答系统

Posted flying_1314

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十八篇:Question Answering问答系统相关的知识,希望对你有一定的参考价值。

目录

介绍

事实问题

非事实问题

为什么我们关注 NLP 中的事实问题?

2 种关键方法

大纲

IR-based QA

基于 IR 的 事实(Factoid) QA:TREC-QA

问题处理

答案类型

检索

答案提取

如何?

MCTest

SQuAD

阅读理解

基于 LSTM 的模型

基于 BERT 的模型

为什么 BERT 比 LSTM 效果更好?

Knowledge-based QA

但是

语义解析

如何构建语义解析器?

Hybrid QA

Watson 核心理念

QA评估

最后


介绍

• 定义:问答(“QA”)是自动确定自然语言问题答案的任务
• 主要关注“事实”问题

事实问题

事实问题,有简短准确的答案。

非事实问题

一般的非事实问题需要更长的答案、批判性分析、总结、计算等。

为什么我们关注 NLP 中的事实问题?

• 他们更容易
• 他们有一个客观的答案
• 当前的 NLP 技术无法处理非事实的答案
• 对系统自动回答非事实问题的需求较少

2 种关键方法

• 基于信息检索的 QA
    ‣ 给定一个查询,搜索相关文档
    ‣ 在这些相关文档中查找答案
• 基于知识的QA
    ‣ 构建查询的语义表示
    ‣ 查询事实数据库以寻找答案

大纲

• IR-based QA
• Knowledge-based QA
• Hybrid QA

IR-based QA

基于 IR 的 事实(Factoid) QA:TREC-QA

1.使用问题去获得query,查询IR引擎
2. 查找文档,以及文档中的段落
3. 提取简答串

问题处理

• 找出有助于检索的问题的关键部分
    ‣ 丢弃非内容词/符号(wh-word、? 等)
    ‣ 制定为 tf-idf 查询,使用 unigrams 或 bigrams
    ‣ 识别实体并优先匹配
• 可以使用模板重新表述问题
    ‣ E.g. “Where is Federation Square located?”
    ‣ Query = “Federation Square located”
    ‣ Query = “Federation Square is located [in/at]”
• 预测预期答案类型(此处 = LOCATION)

答案类型

• 了解答案类型有助于:
    ‣ 找到包含答案的正确段落
    ‣ 查找答案字符串

• 分类处理
    ‣ 给定问题,预测答案类型
    ‣ 关键特征是问题的中心词
    ‣ 澳大利亚国徽上的动物是什么?
    ‣ 一般不难

检索

• 查找与查询匹配的前 n 个文档(标准 IR)
• 接下来查找这些文档中的段落(段落或句子)(也由 IR 驱动)
• 应包含:
    ‣ 问题关键字的许多实例
    ‣ 答案类型的几个命名实体
    ‣ 段落中这些术语的接近程度
    ‣ IR 引擎排名靠前
• 重新排列 IR 输出以找到最佳段落(例如,使用监督学习)

答案提取

• 找到问题的简明答案,作为文章的跨度

如何?

• 使用神经网络提取答案
• 又名阅读理解任务
• 但深度学习模型需要大量数据
• 我们是否有足够的数据来训练理解模型?

MCTest

• Crowdworkers 编写虚构的故事、问题和答案
• 500 个故事,2000 个问题
• 多项选择题

SQuAD

• 使用维基百科段落
• 第一组众包工作者提出问题(给定段落)
• 第二组众包工作者为答案贴上标签
• 15 万个问题(!)
• 第二个版本包含无法回答的问题

阅读理解

• 给定一个问题和上下文段落,预测答案跨度在段落中的开始和结束位置?

• 计算:
P_{start}(i) : 概率, 单词 i 是起始令牌
P_{stop}(i): 概率, 单词 i 是结束令牌

基于 LSTM 的模型

• 将问题标记提供给双向 LSTM
• 通过加权和聚合 LSTM 输出以产生 q ,即最终的问题嵌入

• 以类似的方式处理段落,使用另一个双向 LSTM
• 不仅仅是词嵌入作为输入
    ‣ 表示单词是否与疑问词匹配的特征
    ‣ POS 特征
    ‣ 加权问题嵌入:通过关注每个问题词产生

• {p1, . . . , pm} :来自双向 LSTM 的每个段落中单词的一个向量
• 计算每个单词的开始和结束概率:

基于 BERT 的模型

• 微调 BERT 以预测答案跨度

为什么 BERT 比 LSTM 效果更好?

• 它有更多的参数
• 它经过预先训练,因此在适应任务之前就已经“知道”语言
• 多头注意力是秘诀
• 自注意力架构允许在问题词和上下文段落之间进行细粒度分析

Knowledge-based QA

• 许多大型知识库
‣ Freebase、DBpedia、Yago 等
• 我们可以支持自然语言查询吗?


‣ 将“Ada Lovelace”与知识库中的正确实体链接以找到三元组(Ada Lovelace,出生年份,1815)

但是

• 将自然语言句子转换为三元组并非易事


• 实体链接也是一个重要组成部分
‣ 歧义:“洛夫莱斯是什么时候出生的?”
• 我们能否简化这两个步骤的过程?

语义解析

• 将问题转化为逻辑形式,直接查询知识库
    ‣ 谓词演算
    ‣ 编程查询(例如 SQL)

如何构建语义解析器?

• 文本到文本问题:
    ‣ 输入 = 自然语言句子
    ‣ 输出 = 逻辑形式的字符串
• 编码器-解码器模型(第 16 篇文章!)

Hybrid QA

• 为什么不同时使用基于文本和基于知识的资源进行 QA?
• IBM 的 Watson 赢得了游戏节目 Jeopardy! 使用各种资源来回答问题

Watson 核心理念

• 从基于文本和基于知识的来源生成大量候选答案
• 使用丰富多样的证据为他们评分
• 系统中的许多组件,大部分都经过单独培训

QA评估

• IR:返回匹配段落或答案字符串的系统的 MRR(平均倒数排名)
    ‣ 例如 系统为一个查询返回 4 个段落,第一个正确的段落是第 3 个段落
    ‣ MRR = ⅓
• MCTest:准确性
• SQuAD:字符串与黄金答案的精确匹配

最后

• 基于 IR 的 QA:搜索文本资源以回答问题
    ‣阅读理解:假设问题+段落
• 基于知识的 QA:搜索结构化资源以回答问题
• 热点领域:一直在创建许多新方法和评估数据集(叙事、QA、常识推理等)

OK,QA就倒这里了,辛苦观看,有问题随时评论哦!

 

以上是关于第十八篇:Question Answering问答系统的主要内容,如果未能解决你的问题,请参考以下文章

Open-Domain Question Answering 开放域问答

第十八篇 InceptionV3实战

Python之路第十八篇--MySQL

第十八篇:Django进级

第十八篇Flowable之多人会签

第十八篇Flowable之多人会签