问答模型综述

定义

智能问答(Question Answer,QA)智能问答系统就是基于大量语料数据,通过数学模型,通过相关编程语言实现的一个能够和人类进行对话,解决问题的一个软件系统。

研究的基本问题

自然语言问题

将自然语言问题大致分为七类,事实类(factoid)问题、是非类(yes/no)问题、定义类(definition)问题、列表类(list)问题,比较类(comparison)问题、意见类(opinion)问题和指导类(how-to)问题.

(1) 事实类问题对应的答案是现实世界中的一个或多个实体。 例如,问题Where was Barack Obama born?对应的答案是地点类型实体 Honolulu。事实类问题通常比较客观,适合基于知识图谱或文本生成问题对应的答案。

  • 基于信息检索的事实类问答:基于 IR 的事实类问答的过程:问题处理、段落检索和排名和答案抽取。
  • 基于知识的问答 Knowledge-base Question Answering)
    (2) 是非类问题对应的答案只能是yes或者no。例如,问题Is sky blue?对应的答案是Yes;问题Is sky green?对应的答案是No。 是非类问题在搜索引擎查询日志中的占比较高,适合基于知识图谱或常识知识库进行推理并生成问题对应的答案。

(3) 定义类问题对应的答案是关于问题中提到的某个实体的术语解释。 例如,问题 What does AI mean?对应的答案是AI这个术语的解释。 定义类问题的提问模式通常较为固定,适合基于知识图谱、词典或文本生成问题对应的答案。

(4) 列表类问题对应的答案通常是一个集合。例如,问题 List of highest mountains on earth 对应的答案是一组山峰的名字。 和事实类问题类似,列表类问题可以基于知识图谱生成列表类问题对应的答案。 此外,由于网络表格经常包含对某类信息的总结和整理,因此也很适合用来生成列表类问题的答案。

(5) 比较类、意见类和指导类问题对应的答案通常较为主观。

2. 智能问答分类

智能问答的分类:任务型、检索式、问答式

任务型问答:

任务型问答就是指在特定场景下,具有比较稳定流程的问答,机器人通过在多轮对话的过程中逐渐完善自己想要获取的信息,通过逐渐完成的信息来给予用户回答。简单讲就是对于一个问句的,你需要知道一些其他答案才能给予准确回复,对于需要的信息设计一个流程,通过这个流程逐渐获取需要的信息,然后给出答案就行了。

任务型问答一般包含3个核心模块。

  1. 自然语言理解模块。
  2. 对话管理模块。
  3. 自然语言生成模块。
检索式问答:

检索式问答中没有自然语言的生成,有一个特定的回答集,和一个使用问句和问句上下文,合适回答训练出来的模型,模型训练好后,当一个问句输入,模型会对回答集中的回答做个评分,选出评分最高的那个作为答案输出。

问答式:

这个应该说最简单的又或许是最难的,为什么这么说呢?因为这种问答希望是让机器人达到和正常人沟通的无障碍情况。最简单是因为很多公司都将这种接口免费公开,最难的原因聊天的语料集难以获取,还有一点是智能化程度很难提高。

3. 实现流程

我选择了检索——抽取式的阅读理解模型作为我们的问答模型。

对应流程中的三个过程有三个研究的基本问题:
1、问题分析:如何去分析问题;
2、信息检索:如何根据问题的分析结果去缩小答案 可能存在的范围;
3、答案抽取:如何从可能存在答案的信息块中抽取答案。

在问答系统的不同发展阶段, 对于这三个基本问题的解决方法随着数据类型的变化在不断变化, 从而形成了不同类型的问答系统。

检索式问答模型

Multi-view Response Selection for Human-Computer Conversation

本文出自百度自然语言处理部,发表于EMNLP2016,作者提供了一种直接的单轮转多轮思路——将多轮问答语句合并为一列,连接处用_SOS_隔开, 将整个对话历史视为"一句话"去匹配下一语。

Sequential Matching Network A New Architecture for Multi-turn Response Selection in Retrieval-Based Chatbots (SMN)

Multi-view模型是单轮问答表示模型的扩展,而本篇是单轮问答交互模型的扩展。作者认为构建问答历史语句和候选回复的交互表示是重要的特征信息,因此借鉴语义匹配中的匹配矩阵,而且结合CNN和GRU来构造模型。

Modeling Multi-turn Conversation with Deep Utterance Aggregation (DUA)

诸如Multi-view和SMN模型都是将对话历史视为整体,或者说每一句对于response都是平等的,这样做会忽略对话历史的内部特征,例如一段对话过程经常包含多个主题;此外一段对话中的词和句的重要性也都不同。针对这些对话历史中的信息特征。作者设计了DUA模型。

Multi-Turn Response Selection for Chatbots with Deep Attention Matching Network (DAM)

DAM模型以self-attention为基础,稍作修改加入了cross-attention,两种attention计算再结合匹配矩阵的思维构造了那个立方体,最后用3D-CNN处理。

开源数据集

SQuAD

Stanford Question Answering Dataset (SQuAD) 源自维基百科文章的问答对。在SQuAD中,问题的正确答案可以是 给定文本中标记的任何部分。由于问题和答案是由人通过众包的方式产生的,因此它比其他一些问答数据集更加多样化。

MS MARCO

这是由微软发布的。和 SQuAD 不一样,SQuAD 所有的问题都是由编辑产生的。MS MARCO 中所有的问题,都是在 Bing 搜索引擎中抽取 用户的查询 和 真实网页文章的片段 组成。一些回答甚至是“生成的”。所以这个数据集可以用在开发 生成式问答系统。

TREC-QA

这个数据集有两个版本:TREC-6 和 TREC-50。

TREC-6 由6个类别的问题组成,而 TREC-50 由五十个类别的问题组成。

这两个版本,其训练和测试数据集 都分别包含 5452 和 500 个问题。

WikiQA

该数据集也包括了一些没有正确答案的问题,可以用来评估 answer triggering models。

Quora

这个数据集原本是用在复述检测(paraphrase identification)上的(就是查找重复的问题)。

为了上面的目的,作者给出了 Quora数据集 的子集,其包含超过 400000 个问题对,每个问题对都有一个二分类标签,来表示这两个问题是否相同。

DuReader

问题和文档均来自于百度搜索和百度知道,而答案是人工手动生成的,因此数据集更加切合真实场景。

案例

Rocket QA

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值