第十八篇: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 万个问题(!)
• 第二个版本包含无法回答的问题
阅读理解
• 给定一个问题和上下文段落,预测答案跨度在段落中的开始和结束位置?
• 计算:
‣ : 概率, 单词 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问答系统相关推荐
- 2021年安全生产工作总结及2022年思路计划(二十八篇)PPTX(附下载)
摘要:2021年安全生产工作总结及2022年思路计划(二十八篇) 公众号:安全生产星球
- 实习日志_实习律师实习日志第十八篇(连载30篇)
提供实习律师实习日记相关的文章资讯,希望我的分享能让您感到满意! 这个月接触最多的是人身损害赔偿的一些案件,交通事故.工伤的一些案件最多.起初,以为这些案件就是走走法律流程便可了事,最简单不过,可当完 ...
- 第六十八篇:从ADAS到自动驾驶(一):自动驾驶发展及分级
作者:liaojiacai 邮箱: ljc_v2x_adas@foxmail.com 从ADAS到自动驾驶(一):自动驾驶的发展及分级 从今天起,我将根据自己所接触的ADAS和无人驾驶技术,来 ...
- “约见”面试官系列之常见面试题之第八十八篇之什么是vue生命周期(建议收藏)
我们知道vue是一个构建数据驱动的 web 界面的渐进式框架,那么vue生命周期是什么呢?本篇文章就给大家来介绍一下vue生命周期的内容,希望可以帮助到有需要的朋友. vue生命周期是什么? Vue生 ...
- 第十八篇,Simulink with Git
一.综述 本篇以MATLAB R2021b为基础讲解如何对Simulink模型做Git管理,mdl与slx均可. Git并非只能对手写代码做版本管理,它的应用十分广泛,囊括了各种使用编程语言编写的代码 ...
- SpringBoot第十八篇: 定时任务(Scheduling Tasks)
这篇文章将介绍怎么通过spring去做调度任务. 构建工程 创建一个Springboot工程,在它的程序入口加上@EnableScheduling,开启调度任务. @SpringBootApplica ...
- WPF效果第一百七十八篇ItemsControl旋转
在前面分享的几篇中咱已经玩耍了Popup.ListBox多选.Grid动态分.RadioButton模板.控件的拖放效果.控件的置顶和置底.控件的锁定.自定义Window样式.动画效果.Expande ...
- “约见”面试官系列之常见面试题第十八篇之深拷贝和浅拷贝得区别(建议收藏)
壹 ❀ 引 如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力. 此篇文章中也会简 ...
- 【C++从青铜到王者】第十八篇:C++之多态
系列文章目录 文章目录 系列文章目录 前言 一.多态的概念 1.多态的概念 二.多态的定义及实现 1.多态的构成条件 2.虚函数的认识 3.虚函数的重写 1.虚函数重写的两个例外之协变 2.虚函数重写 ...
最新文章
- 新书上市|鲁智深和镇关西是怎么吵起来的?
- debian 下配置common lisp环境
- Android开发-屏幕常亮的方法
- SAP登陆界面TITLE修改方法(Method of SAP Logon GUI Title Modification)
- leetcode 378. Kth Smallest Element in a Sorted Matrix | 378. 有序矩阵中第 K 小的元素(小根堆)
- android静态代码扫描,android 静态代码扫描
- 玩转SSRS第六篇---客户端报表进阶
- 1)机器学习基石笔记Lecture1:The Learning Problem
- MNIST手写数字数据集格式,如何读取MNIST数据集?
- Desktop imags
- html新建盒子,html+css 盒子模式展示(备查)
- java shiro教程_10 分钟快速上手 Shiro 新手教程
- 四核网络机顶盒芯片局势分析(开放市场):rk3128将会成为四核主流
- 理财趣事:要想财富滚滚来 先学普京打野猪
- 软件架构设计杂记: 好作品是改出来的,好的代码是不断重构打磨出来的, 心性是历经艰难困苦修炼出来的
- Pycharm十大常用快捷键
- Serverless 架构的 N 种可能,你 Pick 谁?
- 都说互联网很赚钱,真的?
- 浅析IPTV盒子和OTT盒子,如何选择?
- openMVS:极线校正Fusiello