Prompt learning系列之开放领域问答

每天给你送来NLP技术干货!


来自:NLP日志

提纲

1 简介

2 Retrievel

3 Prompt

4 Rerank

5 实验结果

6 总结

参考文献

1 简介

    开放领域问答,是没有限制问题领域的问答,支持询问任何问题,无论是娱乐八卦,还是国家大事。但是当下各种信息层出不穷,想要让问答系统能够跟进信息动态,就需要它去搜索相关的实时动态信息并加以理解,然后才能去准确回复用户的问题。

    本文主要介绍一种在开放域问答场景下借助于few-shot prompting的方式,通过网络数据来增强语言模型的方法,利用从谷歌引擎搜索到的网页信息来增强语言模型,同时利用few-shot prompting来控制大规模语言模型的预测方向,从而提高预训练语言模型在开放域问答的表现。这种方法不需要预训练或者增加额外的参数,所以理论上适用于任何语言模型。

    整个方法分为三个步骤,第一步是给定一个问题query,利用搜索引擎从网络上检索回来一系列相关文档,第二步是利用检索得到的证据通过few shot prompting来调节语言模型,最后是根据每一个证据生成候选答案,并利用语言模型进行重排从而选择最合适的答案。

2 Retriever

    给定一个问题q,我们需要去获取一系列相关文档D,从而扩展语言模型的知识,尤其是那些不存在语言模型中的新信息。利用谷歌搜索引擎的API,对于每一个q作为输入,检索得到前20个url链接然后解析其中的HTML内容从而得到干净的文本(由于搜索引擎会提供额外的步骤,例如query扩充等提高交互效果,所以这种方式虽然简单但是作为第一步是足够的)。

    由于从网络上获取的文档D可以来源于新闻或者wikipeida,它们的长度(平均长度2056)可能会超出一些语言模型的限制,从而可能导致相关信息被截断。文本越长,利用若干个few-shot样例去学习从噪声中识别到有用和相关信息就会越难。为此,将问题q检索得到的所有文档D转化为多个由每6个句子构成的段落,利用TFIDF,对问题q和所有段落进行编码,计算其中的余弦相似度从而对所有段落进行排序,将这些排序后的段落P作为第一步返回的结果。

3 Prompt

    给定问题q和经过排序的段落P,我们需要通过few-shot prompting调节预训练模型,这需要按照特定格式选取k个样例按照下图中的格式构造成prompt(论文中是根据数据集定制了模版)。其中Evidence是正确的检索库中的文档,Question是样例对应的query,Answer是相应的答案。学习如果根据query跟evidence去生成合适的答案,从而构造好的few shot prompt模版加上问题query和当前query检索得到的文档生成合适的答案。

a81d19fd73bf93089ffe5f528db88d07.png

图1:few shot prompting形式

    在这里之没有交换Evidence跟Question的顺序,是因为一旦交换顺序,就会增加Question跟Answer的距离,这就会导致最终效果变差。这也从另一方面显示语言模型不擅长利用到在长文本中的信息,通过为few-shot prompting选择符合上下文的样例可以更大程度的提高效果。

4 Rerank

    将检索召回的topK个段落,利用构造得到的prompt模版,分别生成多个候选答案。利用打分模型对这些候选答案进行排序。这种方式的好处不仅在于考虑到更多的候选结果,而且有助于减少检索带来的误差,提高检索召回率。至于怎么计算候选答案的得分,可以有以下几种方式。

    a) 直接推理,类似于RAG的计算方式,同时考虑段落被召回的概率以在给定文档跟query下答案生成的概率。

781f5f02428f9b9bcc0704f5a2f9f267.png

    b) Noisy channel inference,跟前面那种方式反过来,考虑的是在给定召回文档下生成答案的概率以及在给定答案跟文档条件下得到query的概率,有点反向验证的味道。

922818728b6a61dbbc9e65aca89cfede.png

  1. c) Product-of-Experts,联合上述两种概率计算方式

5 实验结果

    a) scoring函数的选择会影响最终的效果。其中Product-of-Experts的方式在所有数据集中都得到最佳效果,从下图可以看出在p(a|q,p)基础上的三种打分函数都可以提高模型的表现的,这里不需要专门训练模型,而是通过一个小量级的prompt语言模型实现的。另外,RAG的表现不及另外两种打分函数,论文归纳因为是由于检索模块的得分来源导致的。63981f3c11ff27d9c35632694df9c469.png

图2:不同打分函数的效果对比

    b) open-book模型比起closed-book模型更具优势。Open-book指的通过google等web搜索引擎检索相关文档的方式,而closed-book指的通过某些封闭数据源检索的方法。从结果上看,无论是小量级语言模型还是大模型,open-book的方式在多数情况取得更好的效果。甚至有些open-book的小模型效果优于closed-book的大模型。

8041429a0b967ea02f39aab71d64b7f7.png

图3:open-book模型跟closed-book模型对比

6 总结

    通过一个外部的搜索引擎加上一个prompt语言模型(无论量级)的方式,为开放域提供了一个有效的解决方案。这种方式不需要额外的预训练或者finetune,可以作为一种baseline方案,应用到任何预训练语言模型中去。这种半参数化语言模型,既能充分利用大规模语言模型的能力,同时通过搜索引擎进行知识增强, 加上few shot prompting调节语言模型预测的方式,更加适合问题跟答案都带不断更新的领域问答,例如新闻资讯等,确实是一个更加合理并且时髦的技术方向,值得更加深入的研究。

参考文献

1.(2022, ) Internet-augmented language models through few-shot prompting for open-domain question answering

https://arxiv.org/pdf/2203.05115v1.pdf


📝论文解读投稿,让你的文章被更多不同背景、不同方向的人看到,不被石沉大海,或许还能增加不少引用的呦~ 投稿加下面微信备注“投稿”即可。

最近文章

为什么回归问题不能用Dropout?

Bert/Transformer 被忽视的细节

中文小样本NER模型方法总结和实战

一文详解Transformers的性能优化的8种方法

DiffCSE: 将Equivariant Contrastive Learning应用于句子特征学习

苏州大学NLP团队文本生成&预训练方向招收研究生/博士生(含直博生)


投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

16f4cb8d21dfb37bfa4d162ddee27a43.png

记得备注~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值