pc网站优化排名软件,购买网站空间自己怎样建立网站,wordpress 4.9.6 漏洞,上海百度百科文章目录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 …
文章目录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中的一段话选择题的话就是一个或多个选项也可以是生成的一个段落
2 按答案分类
2.1 答案是一个单词
早在2015年的时候就有了一个测试QA的数据集bAbI这个数据集把问题分成了20个类别每个问题的答案都是一个单词。当时人们觉得要让机器自动回答出这些问题是非常困难的但是如今这20类问题都被deep learning破解了所以现在的paper也很少有拿bAbI来当数据集的。
这种答案只有一个单词的问题就是一个简单的分类问题训练一个模型然后取概率最高的那个答案就可以了。
2.2 答案是多个选项
当答案为几个选项时就要给模型增加一个choice的module。sourcequestion和choice这三个module之间是有attention的。每次丢给choice module的输入是其中的一个选项模型只需要输出yes或者no就可以了。这样的方式适用于选项数量会变答案数量也会变的情况。
2.3 答案是source中的一段话
有一类答案必定是source中的一段话典型的就有SQuAD和DRCD这样的QA也被称为是extraction-based。对于这类答案我们会给source中的每一个token输出一个start score和一个end score。分别取start score最大的和end score最大的就是答案的头和尾了。 模型大概长下图这个样子在没有BERT的时候answer module是LSTM而在有了BERT之后就只需要是一个start vetor和end vector就可以了。
2.4 答案是生成的一段话
也有的答案的自由度比较高
有可能是source中不同的spans拼凑起来的有可能是答案是在问题和source之中的有可能是部分答案在问题和source中都没有有可能根据source根本得不到答案
这类问题比较经典的模型有MS MARCO和DuReader。有些人也会直接用extraction-based的方法来解决这个问题。
不管用何种方法当答案不在source中时模型会强行在source中找个答案这也必定会犯错。为了解决这个问题有人会在source中加一个Null的token这样当Null的start score和end score都超过某个阈值时就表示没有答案了。
如果不是extraction-based的方法那就会对答案做一个额外的分类判断有无答案。下图中上面的这个模型会吃sourcequestion和answer来验证答案对不对不对的话就是没有答案下图中下面这个模型会仅根据source和question来判断source中有没有答案。
3 按source分类
3.1 source是网页
从一篇文章中去找答案不是我们一般情况下会有的需求这样的工作人做也是很轻松的困难的是我们不知道问题的答案在哪篇文章里。这个时候的做法就是用所搜索引擎去搜索这个问题然后拿前几篇判断这几篇文章是否和问题有关然后再从有关的文章中查找答案。
比较经典的就有V-Net它就是综合了多篇文章的答案然后认为大多数的文章都是有正确答案的采用投票的方式得到最终的答案。
3.2 source是图片或者视频
有时候问题可能是针对图片或者视频的内容的这个时候的处理方法和NLP的没有太多的差异只要用CNN抽取图片的embedding其他就和NLP的QA一样了。
3.3 source是语音
早在2016年的时候李老师的团队就开始尝试语音作为source的QA了。他们在网上爬取了托福的听力资料作为训练数据进行训练。在当时是很了不起的尝试。
技术进步之后发布了ODSQA数据集也提出了基于语音辨识的Subword Units和Adversarial learning的QA。
当然也尝试过直接用语音作为输入的但是效果不及有语音辨识的。
3.4 source是视频
最后还有输入是一段视频的被称为Movie QA。这个时候的输入信息不光有视频还有音频和字幕。不过最终发现大部分还是靠的字幕视频和音频起的作用不大。