0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

开放领域问答的基本背景和系统介绍

深度学习自然语言处理 来源:AI部落联盟 作者:AI部落联盟 2021-03-08 10:33 次阅读

春节玩耍结束啦,又开始学习啦!最近笔者学习了一下开放领域问答(open-domain question answering)最近几年的进展和研究。由于背景知识和相关研究较多,笔者将其作为一个系列进行总结和记录,也希望能帮助到相关领域/对相关领域感兴趣的同学。这是第一篇,欢迎关注后续!

开放领域问答背景知识

在学习“开放领域问答(open-domain question answering)”之前,我们先看一个搜索+问答的例子。2021年2月,我在谷歌里搜索问题:“美国现任总统是谁?”,谷歌不仅能给出相关维基百科页面的推荐,还直接给出问题的答案:“拜登”。笔者记忆里,10年前的搜索是无法给出答案的。那么,搜索引擎从以往的关键词匹配到今天的智能问答(虽然目前还只能回答一些简单的事实问题),开放领域问答方面的研究有不小的贡献。

什么是问答(Question Answering,QA;或者也可以叫机器问答/机器阅读理解/Machine Reading Comprehension)?什么又是开放领域问答(open-domain QA)呢?我们先简单介绍如下几个基本概念。

机器问答:让计算机系统自动回答人类提出的描述性问题(一般来说需要用文字描述出来)。

开放领域:可以询问任何问题(不对问题的领域,比如科研领域,体育,NBA或者足球领域等做限制,同时问问题时不提供相关文献),比如可以问:EMNLP2020接收了多少篇文章?也可以问:现任美国总统是谁?。

知识库:一般来说这些问题的答案可以在一个给定的知识库中找到:比如纯文本无结构化的维基百科,或者是结构化的知识库(比如ConceptNet),或者是半结构化的表格。当然如果问题在知识库中没有答案,我们也希望机器能告诉我们此问题无解。本文涉及的相关研究都先重点关注无结构化的文本知识库,结构化知识库的开放领域问答放在后面的文章中进行介绍。

结合上面3条概念,图1的例子涉及的流程可以这样简要概括成如下二个阶段(当然实际流程要复杂得多):

提问者先描述了问题:美国现任总统是谁?谷歌搜索系统根据问题从谷歌构建好的知识库中(包括了维基百科、以及各种网页)找到最相关部分知识(比如美国总统选举的维基百科网页和相关文字报道)。

从最相关的部分知识(美国总统选举维基百科网页)中找到了问题的具体答案:拜登。

由于二阶段系统十分直观且便于结合检索工具+机器阅读理解实现,最近几年的关于开放领域问答的许多研究也都属于以上这种二阶段系统,本文作为开放领域问答梳理的第一篇也将优先学习这个系统:基于信息检索(information Retrieval, IR)+机器阅读理解(Machine Reading Comprehension, MRC)(retriever-reader)的开放领域问答系统,如图2所示。

当然除了二阶段系统之外,还有单阶段的系统(比如Phrase Retrieval期望直接通过检索IR找出答案,T5、GPT3这种大规模预训练模型甚至可以期望直接通过MRC生成答案),还有多阶段的系统(比如把二阶段系统中的IR细分到文档检索+文档ranking,MRC细分为answer extraction和answer ranking,或者是迭代式(iterative)问答/多轮问答/multi-hop QA),这些系统的相关研究将在后续文章中逐渐覆盖。

所以本文涉及的研究都有这么2个特点:1、关注事实性的、无结构化文本的识库;2、都是两阶段IR+MRC的开放领域问答系统。

第一个两阶段系统:DrQA

Reading Wikipedia to Answer Open-Domain Questions,简称DrQA,是danqi chen在2017发表于ACL上的一篇经典文章,业内也经常称该论文是深度学习时代关于开放领域问答的第一篇文章。

除开研究方面的贡献,该文开源代码十分值得入门的同学学习!包括但不限于:自然语言处理任务的文本预处理、TFIDF的高效实现、训练LSTM神经网络用于阅读理解抽取答案、python多线程加速信息检索、文本中的词性标注等作为特征帮助文本理解任务。

图3 DrQA示意图

如图3所示,该DrQA根据给定的问题,使用TF-IDF算法(不可训练)对相关文档在知识库wikipedia中进行检索,随后训练一个基于LSTM(直接替换成BERT也是可以的)的阅读理解模型抽取答案。知识库widipedia可以直接换成其他文本知识库的。

如何训练?

1、文档检索的TF-IDF无法训练。

2、阅读理解模型使用LSTM模型,基于(问题Q,文档P,答案A)三元组进行训练,三元组来源一个是SQuAD标注的训练数据,一个是distant supervision。所谓distant supervision的意思是:根据问题Q使用TF-IDF找到相关文档P,只要相关文档P包含答案A,无论这个相关文档是什么文档,都可以构建出一个新的训练三元组(Q,P,A)。

如何预测?

1、使用TF-IDF检索出最相关的5个文档;

2、用训练好的LSTM阅读理解模型挨个抽取答案,每个文档抽取的答案都有一个得分。

3、根据所有文档抽取的答案,选择答案得分start位置end位置综合得分最高的answer span。

论文除了说DrQA效果好之外,还提到:多任务学习和有帮助。

多任务学习的帮助可以见笔者上两篇公众号内容。

distant supervision有帮助笔者的2点理解为:

1、distant supervision构建了更多的训练样本,可以看作数据增强;

2、distant supervision让模型在训练和预测阶段更一致。在预测阶段,根据问题抽取的文档并不一定都是标注的那个唯一文档,还可能有其他包含答案但并不是标注的唯一文档,因此预测的时候模型见到这些文档也能抽取答案;

那么咱们想一下这个最基本的DrQA有哪些地方可以改进呢?比如:

是否可以优化一下文档的粒度?

不按照documet来检索,而是按照段落paragraph、句子sentence来检索呢?

TF-IDF抽取的top 5个文档并不准,是可以再训练一个ranker模型根据问题quesiton,document来选更准的模型?

有推荐系统背景的同学其实可以按照召回-粗排-精排这个思路来考虑?

阅读理解时是否可以一阅读多个文档,而不是每次都只看一个文档?

每次抽取一个文档的答案,然后再比较不同文档里的答案得分是否合理呢?

文档检索、文档rank和文档阅读理解阶段相互独立,是否可以让这两个阶段互相帮助一下呢或者一起考虑呢?

更直观的改进比如:

LSTM换成更牛逼的BERT模型是否可以?

pipeline的系统可否改进为end-to-end呢?

如果一个passage包含多个answer,那么选哪一个作为监督信号呢?

DrQA基本系统改进1:BERTserini

图4 BERTserini

如图4所示,论文:End-to-End Open-Domain Question Answering with BERTserini 使用Anserini检索和BERT进行阅读理解。相对于DrQA,BERTserini论文的主要点有:

对sentence、paragraph、sentence粒度的检索进行了比较,发现paragraph级别的效果最好。

笔者的一点理解:

a. SQuAD是基于paragraph标注的,如果是article粒度,一个文档太长,所以有大量的无关paragraph,不太适合;如果是sentence的话,检索出来的句子联系太少,不利于阅读理解;

b.由于BERT是512长度限制,平均一个wikipedia的paragraph的长度在100多个token,如果按照paragraph来分的话,一个BERT是可以放入多个检索的paragraph的,这里其实也是可以帮助提升效果。

将阅读理解reader的打分和Anserini检索的打分进行综合考虑来选择最佳的答案span。

3. MRC模型升级为更强的BERT可以帮助抽取答案的效果更好。

DrQA基本系统改进2:训练一个passage ranker

简单来说就是将TF-IDF检索回来的文档用一个深度学习模型进行重新排序。

图6 通过增加一个Document ranker来改进

论文:Training a Ranking Function for Open-Domain Question Answering十分简单:直接训练一个ranker模型,把TF-IDF检索回来的passage或者document排序一下,让更准确更相关的文档送入阅读理解模型,提升模型。

相关的另一篇论文passage re-ranker with BERT字面意思理解就是:改成BERT跑一下效果更好。

另外论文:Revealing the Importance of Semantic Retrievalfor Machine Reading at Scale对句子sentence、段落paragraph级别的影响做了详细的分析。

DrQA基本系统改进3: multi-passage一起处理

这里的passage其实可以指一个段落paragraph也可以说是一个文本片段segment,总之就是一段连续的文字。multi-passage一起处理的意思就是将检索回来的多个文档统一处理。


multi-passage最直观的地方有:1、reading comprehension;2、passage ranking。

multi-psaage最直观的方式是:想一想softmax是怎么统一归一化的即可。

reading comprehension的时候考虑multi-passage:

比如论文Simple and Effective Multi-Paragraph Reading Comprehension

和论文Multi-passage BERT: A Globally Normalized BERT Model forOpen-domain Question Answering:都是按照单个段落独立抽取answer span,但最终对所有答案的得分统一归一化后选择最好的答案(属于answer ranking阶段的统一处理),都是在MRC抽取答案的时候归一化之后比较得分再选最高分。

它带来的明显好处是:根据问题检索的passage增加虽然会增大answer出现的概率,但同时也会引入更多的噪声让reader效果下降,有了这个统一归一化之后,reader抽取答案时候受到噪声的影响更小,如图5所示。

图5随着passage数量增加,multi-passage BERT保持了高的F1得分

ranking passage的时候multi-passage考虑:

图6multi-passage进行ranking

论文Denoising Distantly Supervised Open-Domain Question Answering便是多个passage一起ranking的一个代表。其主要点是:

对TF-IDF检索回来的passage训练一个re-ranking模型(TF-IDF passage检索可以看作是对passage的第一步rank打分)可以帮助找到更准确的相关passage。

如果我们能多个passage一起re-ranking,则这个re-ranking模型抗噪声能力会更好。

passage re-ranking模型可以通过distant supervision训练,也就是说一个question+一个包含了答案的passage可以当作一个正样本。

DrQA基本系统改进4:Reader-Ranker互相帮助

Reader-ranker互相帮助的核心点在于:如果ranking模型和reader模型并不孤立的话,那reader模型的信息如何被ranking模型利用,ranking模型的信息如何被reader模型利用?

图7reader-ranker互相帮助

如图7所示,论文R3: Reinforced Ranker-Reader for Open-Domain Question Answering基于强化学习让re-ranker-reader模型进行了交互。该文的主要点是:

Ranker模型和Reader模型基于强化学习一起训练,具体可以如图8所示,简单描述为:Retriever根据question抽取top k的passages,然后passages经过ranker打分后,采样一个passage送入reader,reader抽取得到answer,根据预测answer和正确答案之间的F1得分作为reward,然后根据plolicy gradient来更新re-ranker模型,同时也根据监督信号来更新reader模型。

图8R3: Reinforced Ranker-Reader示意图

笔者的一点想法:其实笔者更期待这个模型在多轮问答(multi-hop question answering)上的表现。

DrQA基本系统改进5:answer re-ranker

Answer re-ranker的基本思想是:如果检索到的多个passage,每个passage都会被reader抽取多个answer span的话,那是否可以根据检索部分的信息、阅读理解部分的信息对抽取出来所有可能的answer span再次进行re-rank呢?

图9Answer re-ranker

如图9所示,论文Evidence Aggregation for Answer Re-Ranking in Open-Domain Question Answering基于信息检索部分的特征、阅读理解部分的特征给出了两种answer re-ranker方法:

1. 如图10所示,左边的例子a就是Strength-based answer re-ranker。意思是,如果reader预测的答案被多段文本所支撑,则该答案更大概率是正确答案。

2. 如图10所示,右边的例子b就是Coverage-based answer re-ranker。意思是,如果支撑该答案的多段文本对于问题信息的覆盖度更好,则该答案更有可能是正确答案。

图10Strength-based和Coverage-basedre-ranker举例

DrQA基本系统改进6: 监督信号的选择

在DrQA的研究中显示,如果训练的时候只有问题question和answer,通过信息检索得到相关passage来包含answer作为distant supervision,那么这个监督信号有它明显的问题的:如图11所示,如果一个段落中包含多个answer,那么选哪个位置的answer作为答案呢?因为训练的时候是按照answer的start和end位置作为监督信号的,以往的论文训练时一般直接选了第一个answer或者随机选一个answer的start和end位置作为监督信号。

图11 多个answer位置举例

如图12所示,论文A Discrete Hard EM Approach for Weakly Supervised Question Answering提出了一种Hard EM算法帮助模型在训练的时候选择最合适的answer作为。

笔者这样理解:

1、 假设一个passage在多个位置包含了question的答案,那么在训练初期,先鼓励模型选择预测概率最大(最大概率与Question和Document有关)的answer位置作为监督信号。

2、训练一定steps之后,改为Hard EM算法(最大概率与Question、Document一个记一个可学习的参数C有关)选择概率最大的answer 位置作为监督信号。学习reader模型的时候同时学习了选择answer位置有关的参数C。

代码基于Huggingface的transformers实现,还是很好看懂的。

图12Hard EM学习过程

总结

本文主要包含了以下内容:

开放领域问答的基本背景,开放领域问答系统简化后的二阶段问答系统介绍。

原文标题:【问答】总结|开放领域问答梳理系列(1)

文章出处:【微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1791

    文章

    47208

    浏览量

    238298
  • 深度学习
    +关注

    关注

    73

    文章

    5500

    浏览量

    121118

原文标题:【问答】总结|开放领域问答梳理系列(1)

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【「大模型启示录」阅读体验】如何在客服领域应用大模型

    在客服领域是大模型落地场景中最多的,也是最容易实现的。本身客服领域的特点就是问答形式,大模型接入难度低。今天跟随《大模型启示录 》这本书,学习大模型在客服领域的改变。选择大模型客服时,
    发表于 12-17 16:53

    基于 XD08M3232 接近感应单片机的背景抑制光电开关设计与应用

    摘要: 本文详细介绍了一种基于 XD08M3232 接近感应单片机的背景抑制光电开关。阐述了其工作原理、硬件设计、软件编程以及在实际应用中的优势与特点,展示了该光电开关在工业自动化、智能检测等领域
    发表于 12-16 18:56

    技术介绍:什么是 EtherCAT 的开放模式?

    这两种模式,并重点介绍它们的主要特征。直接模式和开放模式早在2004年的第一个EtherCAT规范V1.0中就已被定义,但今天几乎所有的EtherCAT网络仍然使
    的头像 发表于 12-13 11:51 189次阅读
    技术<b class='flag-5'>介绍</b>:什么是 EtherCAT 的<b class='flag-5'>开放</b>模式?

    迅为RK3568开发板支持银河麒麟和开放麒麟系统

    迅为在RK3568开发板移植了银河麒麟和开放麒麟系统HOT 新增RT-Thread系统 iTOP-RK3568开发板支持了Preemption和Xenomai实时系统
    发表于 11-06 14:44

    第二届开放原子大赛火热开启

    第二届开放原子大赛(简称“大赛”)是由开放原子开源基金会组织举办的开源技术领域专业赛事,聚焦解决“真问题”,重点覆盖基础软件、工业软件、人工智能大模型等领域
    的头像 发表于 10-18 11:39 425次阅读

    AI智能化问答:自然语言处理技术的重要应用

    自然语言处理(NLP)是人工智能领域的一个重要分支,它致力于使计算机能够理解、解释和生成人类语言。问答系统作为NLP的一个重要应用,能够精确地解析用户以自然语言提出的问题,并从包含丰富信息的异构
    的头像 发表于 10-12 10:58 371次阅读
    AI智能化<b class='flag-5'>问答</b>:自然语言处理技术的重要应用

    短文6:关于功率因素的有趣问答

    2个关于功率因素的有趣问答
    的头像 发表于 09-23 12:22 189次阅读

    SDV的发展背景背景与功能

    SDV技术不仅是对传统车辆功能的增强,更是对汽车性能、安全性及可定制性的一种全新定义。本文将深入探讨SDV技术的背景、功能。 1. SDV技术的发展背景 不断增长的功能需求:随着消费者对汽车功能性
    的头像 发表于 08-29 10:23 404次阅读

    基于VPLC532E开放式数控系统在五轴义齿机上的应用

    开放易用的五轴义齿机系统
    的头像 发表于 07-08 09:39 261次阅读
    基于VPLC532E<b class='flag-5'>开放</b>式数控<b class='flag-5'>系统</b>在五轴义齿机上的应用

    迅为RK3588开发部可移植银河麒麟和开放麒麟系统

    迅为在RK3588开发板移植了银河麒麟和开放麒麟系统 迅为优先RK3588开发板上支持Android13系统
    发表于 07-03 11:24

    讯飞星火大模型V3.5春季升级,多领域知识问答超越GPT-4 Turbo 

    刘庆峰指出,现如今,星火大模型在通用长文本处理能力方面已相当成熟,覆盖长文档信息抽取、知识问答、归纳总结、文本生成等诸多领域,整体表现已达GPT-4 Turbo今年4月最新版的97%水准;
    的头像 发表于 04-26 14:26 1037次阅读

    【RISC-V开放架构设计之道|阅读体验】RV64指令集设计的思考以及与流水线设计的逻辑

    RISC-V开放架构设计之道, 是一本全面介绍RISC-V指令集架构设计、优化和实现的书籍。 书中详细介绍了RISC-V指令集体系结构,包括指令集、寄存器体系、存储体系和中断体系。 还介绍
    发表于 01-29 10:09

    【RISC-V开放架构设计之道|阅读体验】+ 个人心得并祝福

    。作者经验丰富,关键指出重点。 好了,我希望RISC-V越来越好,RISC-V生态系统能够不断完善。RISC-V在更多领域能够得到广泛应用,发挥其独特的优势。RISC-V技术能够不断创新,不要固步自封,多多参考优秀的构架,为自己争取最大的优点。
    发表于 01-26 15:52

    【年度精选】2023年度top5榜单——鸿蒙技术社区问答

    在2023年,鸿蒙技术社区发布了一系列精选问答,每个问答都凝聚了开发者们的智慧和经验。这些问答涵盖了鸿蒙系统的不同领域,无论是应用开发、
    发表于 01-12 17:00

    使用Keysight ADS收集信号完整性问答

    电子发烧友网站提供《使用Keysight ADS收集信号完整性问答.pdf》资料免费下载
    发表于 12-25 09:53 1次下载