Chapter7-10_Deep Learning for Question Answering (1/2)

文章目录

  • 1 什么是Question Answering(QA)
  • 2 按答案分类
    • 2.1 答案是一个单词
    • 2.2 答案是多个选项
    • 2.3 答案是source中的一段话
    • 2.4 答案是生成的一段话
  • 3 按source分类
    • 3.1 source是网页
    • 3.2 source是图片或者视频
    • 3.3 source是语音
    • 3.4 source是视频

本文为李弘毅老师【Deep Learning for Question Answering (1/2)】的课程笔记,课程视频youtube地址,点这里👈(需翻墙)。

下文中用到的图片均来自于李宏毅老师的PPT,若有侵权,必定删除。

文章索引:

上篇 - 7-9 Deep Learning for Dependency Parsing

下篇 - 7-11 Deep Learning for Question Answering (2/2)

总目录

1 什么是Question Answering(QA)

顾名思义,QA要做的事情就是回答问题。我们的问题类型大致可以分为三类。

  • 可以从一个source中直接找到答案的问题,如"Who is the U.S. president?"
  • 需要从多个sources中找答案的问题,如"Is Trump older than Obama?"
  • 没有标准答案的问题,如"Who should pay for the date, and why?"

这些问题的答案都是从sources中整合出来的,sources可以是文本,语音,视频等等。现有的模型基本思路都是一致的,就是把sources放到一个类似BERT的模型里做embedding,同时也把question放到另一个BERT里做embedding,这两个module之间往往需要做一下attention,最后把两个modules的输出放到一个生成答案的module当中去,得到最终的答案。

答案也可以分为好几类。

  • 一个词
  • source中的一段话
  • 选择题的话就是一个或多个选项
  • 也可以是生成的一个段落
    7-10-1

2 按答案分类

2.1 答案是一个单词

早在2015年的时候,就有了一个测试QA的数据集bAbI,这个数据集把问题分成了20个类别,每个问题的答案都是一个单词。当时人们觉得要让机器自动回答出这些问题是非常困难的,但是如今这20类问题都被deep learning破解了,所以现在的paper也很少有拿bAbI来当数据集的。
7-10-2

这种答案只有一个单词的问题,就是一个简单的分类问题,训练一个模型,然后取概率最高的那个答案就可以了。
7-10-3

2.2 答案是多个选项

当答案为几个选项时,就要给模型增加一个choice的module。source,question和choice这三个module之间是有attention的。每次丢给choice module的输入是其中的一个选项,模型只需要输出yes或者no就可以了。这样的方式适用于选项数量会变,答案数量也会变的情况。
7-10-4

2.3 答案是source中的一段话

有一类答案必定是source中的一段话,典型的就有SQuAD和DRCD,这样的QA也被称为是extraction-based。对于这类答案,我们会给source中的每一个token输出一个start score和一个end score。分别取start score最大的和end score最大的,就是答案的头和尾了。
7-10-5
模型大概长下图这个样子,在没有BERT的时候,answer module是LSTM,而在有了BERT之后,就只需要是一个start vetor和end vector就可以了。
7-10-6

2.4 答案是生成的一段话

也有的答案的自由度比较高:

  • 有可能是source中不同的spans拼凑起来的
  • 有可能是答案是在问题和source之中的
  • 有可能是部分答案在问题和source中都没有
  • 有可能根据source根本得不到答案

这类问题比较经典的模型有MS MARCO和DuReader。有些人也会直接用extraction-based的方法来解决这个问题。
7-10-7

不管用何种方法,当答案不在source中时,模型会强行在source中找个答案,这也必定会犯错。为了解决这个问题,有人会在source中加一个Null的token,这样当Null的start score和end score都超过某个阈值时,就表示没有答案了。
7-10-8

如果不是extraction-based的方法,那就会对答案做一个额外的分类,判断有无答案。下图中上面的这个模型,会吃source,question和answer来验证答案对不对,不对的话就是没有答案;下图中下面这个模型会仅根据source和question来判断source中有没有答案。
7-10-9

3 按source分类

3.1 source是网页

从一篇文章中去找答案不是我们一般情况下会有的需求,这样的工作,人做也是很轻松的,困难的是,我们不知道问题的答案在哪篇文章里。这个时候的做法就是用所搜索引擎去搜索这个问题,然后拿前几篇,判断这几篇文章是否和问题有关,然后再从有关的文章中查找答案。
7-10-10

比较经典的就有V-Net,它就是综合了多篇文章的答案,然后认为大多数的文章都是有正确答案的,采用投票的方式得到最终的答案。
7-10-11

3.2 source是图片或者视频

有时候问题可能是针对图片或者视频的内容的,这个时候的处理方法和NLP的没有太多的差异,只要用CNN抽取图片的embedding,其他就和NLP的QA一样了。
7-10-12

3.3 source是语音

早在2016年的时候,李老师的团队就开始尝试语音作为source的QA了。他们在网上爬取了托福的听力资料作为训练数据进行训练。在当时是很了不起的尝试。
7-10-13

技术进步之后,发布了ODSQA数据集,也提出了基于语音辨识的Subword Units和Adversarial learning的QA。
7-10-14

当然也尝试过直接用语音作为输入的,但是效果不及有语音辨识的。
7-10-15

3.4 source是视频

最后还有输入是一段视频的,被称为Movie QA。这个时候的输入信息不光有视频,还有音频和字幕。不过最终发现,大部分还是靠的字幕,视频和音频起的作用不大。
7-10-16

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470597.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

十、PHP框架Laravel学习笔记——数据库配置入门

一.配置数据库 框架支持原生、查询构造器和 Eloquent ORM(关系型对象映射器)来操作数据库; 数据库的配置在 config/database.php,如果是本地可以直接配置.env 文件; 我们通过.env 文件配置数据库连接的相关信息,以提…

selenium firefox驱动_Python3+selenium配置常见报错解决方案

第一个报错问题geckodriver executable needs to be in PATH1.1如果启动浏览器过程中报如下错误&#xff1a;Traceback (most recent call last):File "", line 1, in <module>File "D:\test\python3\lib\site-packages\selenium\webdriver\firefox\webdr…

Chapter7-11_Deep Learning for Question Answering (2/2)

文章目录1 Simple Question: Match & Extract2 Complex Question: Reasoning3 Dialogue QA本文为李弘毅老师【Deep Learning for Question Answering (2/2)】的课程笔记&#xff0c;课程视频youtube地址&#xff0c;点这里&#x1f448;(需翻墙)。 下文中用到的图片均来自…

十一、PHP框架Laravel学习笔记——构造器的查询.分块.聚合

一&#xff0e;构造器查询 table()方法引入相应的表&#xff0c;get()方法可以查询当前表的所有数据&#xff1b; //获取全部结果 $users DB::table(users)->get(); first()方法&#xff0c;可以获取到第一条数据&#xff1b; //获取第一条数据 $users DB::table(user…

mac 批量清空文件夹文件_【XSS 聚宝瓶】文件及文件夹批量改名工具

置顶公众号&#xff0c;否则不能及时收到新文章推荐给朋友&#xff0c;让朋友也能收到免费文章在公众号发送函数或应用的关键字&#xff0c;即可免费获取对应教程一、功能说明我们在日常办公的时候&#xff0c;经常会碰到文件名不规范&#xff0c;想要整理很不方便&#xff0c;…

论文阅读 - Beat Tracking by Dynamic Programming

文章目录1 概述2 总体框架3. 计算Onset Strength Envelope4 计算全局的Tempo5 基于动态规划计算beats6 参考文献1 概述 有背景音乐的短视频拼接时&#xff0c;如果两个视频的拼接点刚好在背景音乐的某个节拍点上&#xff0c;那么合成的视频看起来&#xff0c;听起来&#xff0…

十二、PHP框架Laravel学习笔记——构造器的查询表达式

一&#xff0e;select 查询 select()方法可以制定你想要的列&#xff0c;而不是所有列&#xff1b; //设置显示的列&#xff0c;设置列别名 $users DB::table(users)->select(username as name, email)->get(); addSelect()方法&#xff0c;可以在你基础的查询构造器…

python解释器的工作原理_Python GIL全局解释器锁详解(深度剖析)

通过前面的学习&#xff0c;我们了解了 Pyton 并发编程的特性以及什么是多线程编程。其实除此之外&#xff0c;Python 多线程还有一个很重要的知识点&#xff0c;就是本节要讲的 GIL。 GIL&#xff0c;中文译为全局解释器锁。在讲解 GIL 之前&#xff0c;首先通过一个例子来直观…

Chapter7-12_Controllable Chatbot

文章目录1 Chatbot面临的问题2 控制Chatbot的输出2.1 直接Finetune2.2 输入添加控制特征2.3 只有独白3 展望本文为李弘毅老师【Controllable Chatbot】的课程笔记&#xff0c;课程视频youtube地址&#xff0c;点这里&#x1f448;(需翻墙)。 下文中用到的图片均来自于李宏毅老…

十三、PHP框架Laravel学习笔记——构造器的 where 派生查询

一&#xff0e;where 派生查询 orWhere()方法&#xff0c;可以通过连缀实现两个或以上的 or 条件查询&#xff1b; //where() orWhere 实现 or 条件查询 $users DB::table(users) ->where(price, >, 95) ->orWhere(gender, 女) ->toSql(); 通过闭包&#xff0…

Chapter7-13_Dialogue State Tracking (as Question Answering)

文章目录1 什么是Dialogue State Tracking2 数据集3 两个挑战4 经典模型本文为李弘毅老师【Dialogue State Tracking (as Question Answering)】的课程笔记&#xff0c;课程视频youtube地址&#xff0c;点这里&#x1f448;(需翻墙)。 下文中用到的图片均来自于李宏毅老师的PP…

Migrate Instance 操作详解 - 每天5分钟玩转 OpenStack(40)

Migrate 操作的作用是将 instance 从当前的计算节点迁移到其他节点上。 Migrate 不要求源和目标节点必须共享存储&#xff0c;当然共享存储也是可以的。 Migrate 前必须满足一个条件&#xff1a;计算节点间需要配置 nova 用户无密码访问。 下面是 Migrate instance 的流程图 …

十四、PHP框架Laravel学习笔记——构造器的排序分组、子查询

一&#xff0e;排序分组 使用 whereColumn()方法实现两个字段相等的查询结果&#xff1b; //判断两个相等的字段&#xff0c;同样支持 orWhereColumn() //支持符号create_time,>, update_time //支持符号支持数组多个字段格式[create_time,>, update_time] $users …

python找不到文件怎么办_python open找不到文件怎么办?

推荐教程&#xff1a;《python视频教程》 python open找不到文件怎么办&#xff1f; python open找不到文件的解决办法&#xff1a; 在python和很多程序语言中"\"转义符号&#xff0c;要想输出\有两种方法&#xff0c;一是多加一个\写成\\ ,一是在字符串前加一个r,提…

css:蓝环章鱼

css&#xff1a;蓝环章鱼 许多海洋生物色彩艳丽&#xff0c;这次用css仿制一下蓝环章鱼的蓝环 <script type"text/javascript" src"http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script> <script type"text/javascript&quo…

论文阅读 - Jukebox: A Generative Model for Music

文章目录1 概述2 什么是VQ-VAE2.1 Auto-encoder(AE)2.2 Variational AutoEncoder(VAE)2.3 Vector-Quantized Variational AutoEncoder(VQ-VAE)2.4 VQ-VAE-23 Music VQ-VAE4 Prior and upsamplers5 Lyrics Conditioning参考文献By learning to produce the data, we can learn t…

十五、PHP框架Laravel学习笔记——构造器的 join 查询

一&#xff0e;join 查询 使用 join 实现内联接的多表查询&#xff0c;比如三张表进行 inner join 查询&#xff1b; $users DB::table(users) ->join(books, users.id, , books.user_id) ->join(profiles, users.id, , profiles.user_id) ->select(users.id, user…

论文阅读 - Group Normalization

文章目录1 概述2 几种normalization的方法2.1 Batch Norm2.2 Layer Norm2.3 Instance Norm2.4 Group Norm3 效果对比参考文献1 概述 Group Nomralization的提出是为了解决一张GPU上能容纳的batch_size很小&#xff0c;导致模型训练效果显著变差的问题。随着深度学习的快速发展…

十六、PHP框架Laravel学习笔记——构造器的增删改

一&#xff0e;增删改操作 使用 insert()方法可以新增一条或多条记录&#xff1b; //新增一条记录 DB::table(users)->insert([ username > 李白, password > 123456, email > libai163.com, details > 123 ]); //新增多条记录 DB::table(users)->insert…

git如何切换分支_拜托,不要再问我Git分支如何使用

今天来讲讲我使用Git分支的一些经验&#xff0c;记录一下&#xff0c;希望对大家有帮助。阐述在平常开发中&#xff0c;一般都会对应三种环境&#xff0c;本地环境、测试环境、线上环境。开发的基本流程都是先在本地环境开发好,再把代码发布到测试环境测试&#xff0c;最后再发…