当前位置:网站首页>RocketQA:通过跨批次负采样(cross-batch negatives)、去噪的强负例采样(denoised hard negative sampling)与数据增强(data augment
RocketQA:通过跨批次负采样(cross-batch negatives)、去噪的强负例采样(denoised hard negative sampling)与数据增强(data augment
2022-07-01 01:30:00 【人工智能曾小健】
传统的开放域问答主要采用级联的检索式问答系统,包含了段落检索、段落排序、答案定位等多个步骤。随着近些年预训练语言模型的发展,研究人员开始探索基于深度语义表示的对偶式检索模型(dual-encoder),希望其能够替代传统的检索式问答系统中级联的检索和排序等模块,与基于机器阅读理解模型的答案定位一起实现“端到端问答”。
不同于传统的级联式问答系统,“端到端问答”摒弃了传统系统中繁杂的构件,系统复杂性大大降低,并且其中每个模块(段落检索和答案定位)都是可学习的,这样的设计能够让整个系统实现端到端训练。这意味着问答系统可以基于用户实时的反馈实现在线训练,而不是只在封闭的数据集上闭门造车。这是智能问答技术的发展趋势,可能会引发问答系统的新一代技术变革。
基于此,百度从面向端到端问答的检索模型出发,针对对偶式检索模型训练中存在的问题,提出了RocketQA训练方法,并基于百度自研的预训练模型ERNIE进行训练,大幅提升了对偶式检索模型的效果,为实现端到端问答迈出了重要的一步。
图2:基于稠密向量表示的对偶模型
二、RocketQA:一种对偶式检索模型增强训练方法
不同于传统的检索模型使用基于关键词的稀疏表示对问题和候选段落进行建模,基于深度语义表示的对偶式检索模型(如图 2 所示)通过两个对称的网络分别对问题和候选段落进行编码并计算语义相似度。这样能够利用强大的网络结构进行更深层次的学习,同时基于预训练语言模型,使语义理解更加丰富。在过去的工作中,对偶模型大多采用批次内负采样 (in-batch negatives) 的方式进行训练,将批次内其他问题的正确答案作为当前问题的错误答案(负例),从而减少重复计算和提高训练效率。然而,由于检索场景不同于常见的分类问题,对偶式检索模型的训练仍然存在如下的挑战:
训练场景和预测场景中样本数量存在较大差异
在开放域问答的应用场景中,模型需要从大规模的候选集合中找出问题的答案。但是按照批次内负采样的方法训练时,每个问题的候选段落个数与批次大小相同。受到单GPU显存大小的限制,训练过程中见到的候选段落远小于预测时的候选段落,从而导致模型即使在训练时表现良好,在实际应用当中却差强人意。
数据集中存在大量漏标注的正确答案
开放域问答场景下候选段落的数量往往非常大,标注出问题的全部正确答案几乎是不可能的。在MSMARCO数据集中,候选段落的总数为880万,但每个问题平均只标注了1.1个正确答案。研究人员发现,在使用对偶模型检索出的首条结果中,70% 的错误结果其实是漏标的正确答案。这种情况下,构造训练数据中的强负例时很容易引入假负例(false negative),给模型训练带来负面影响。
相对于开放域全集,人工标注训练数据的规模小、成本大
尽管目前已有较多大规模的问答数据集,但是相较于开放域的用户问题来说,仍然是冰山一角。有限的标注数据集无法覆盖到全面的领域和类型,导致模型泛化性差。想要增大标注数据的规模和质量,需要很高的人工成本。
因此百度提出了一种对偶式检索模型的增强训练方法RocketQA,通过跨批次负采样、去噪的强负例采样与数据增强三项技术,解决上述挑战。接下来将对这三个技术进行详细的介绍。
2.1 跨批次负采样(cross-batch negatives)
采用传统的批次内负采样方法训练时,每个问题的候选段落个数与批次大小相同。为了进一步增加训练过程中候选段落的数量,百度提出了跨批次负采样方法(如图 3 所示)。该方法能够在使用多GPU并行训练时,将其它GPU批次内的全部段落作为当前问题的负样本。这样可以直接复用各个GPU上已经计算好的段落表示,不额外增加计算量;同时基于飞桨分布式训练扩展工具包FleetX的all-gather算子实现,只需要使用很少的通信量和内存开销,就达到了增加每个问题候选段落的目的。随着GPU个数的增加,每个问题的候选段落个数线性增加,训练场景中的任务难度也更加接近真实场景。百度在MSMARCO数据集上进行了实验,在使用跨批次负采样后,随着训练时候选段落数量增加,模型的效果稳步提升(如图 4 所示)。
2.2 去噪的强负例采样(denoised hard negative sampling)
在对偶模型的训练中,适当增加训练数据中的强负例的难度,有助于提升模型效果。一般的做法是,从一个排序的候选段落中进行采样,越靠前的负例对模型来说难度越大。但是由于难以避免的漏标注情况,直接采样很大概率会引入假负例。为了解决这一问题,百度使用交互模型(cross-encoder)的打分作为监督信息进行去噪。在选择强负例时,避开交互模型给出高置信度的样例。相较于对偶模型,交互模型具有结构上的优势,能够编码更多的交互信息,从而给出可靠的监督信号,帮助对偶模型选取更可靠的强负例。如表1的第三行和第四行所示,去噪的强负例采样可以显著提升模型效果。
2.3 数据增强(data augmentation)
交互模型可以过滤强负例中的噪声,也可以用来选取未标注的正确答案。因此,当引入大量无标注的问题时,便可以利用交互模型以极低的成本得到大量弱监督数据,进一步增强对偶模型的能力。在MSMARCO数据集的实验中,百度引入了Yahoo!Answers和ORCAS数据集中的150万未标注问题,用交互模型在对偶模型检索出的候选段落上进行打分,并根据置信度选取正负样本。如表1第四行和第五行所示,通过这种方式,对偶模型的效果得到进一步提升。
边栏推荐
- electron之坑addon
- After working for 6 years, let's take stock of the golden rule of the workplace where workers mix up
- Ks009 implementation of pet management system based on SSH
- Handsontable數據網格組件
- 45 year old programmer tells you: why do programmers want to change jobs? It's too true
- KS009基于SSH实现宠物管理系统
- 工厂+策略模式
- Working for eight years as a programmer, but with a salary of three years after graduation, it's too late to be enlightened again
- Thinking about business and investment
- AS400 大廠面試
猜你喜欢
Sitge joined the opengauss open source community to jointly promote the ecological development of the database industry
机器学习9-通用逼近器径向基函数神经网络,在新观点下审视PDA和SVM
小程序中实现excel数据的批量导入
Unknown database connection database error
With one-stop insight into industry hot spots, the new function "traffic market" of feigua data station B is launched!
The argument type 'function' can't be assigned to the parameter type 'void function()‘
QML control type: tooltip
FL Studio20.9水果软件高级中文版电音编曲
7-2 punch in reward DP for puzzle a
For the sustainable development of software testing, we must learn to knock code?
随机推荐
MYSQL 数据库查看磁盘占用情况
[无线通信基础-15]:图解移动通信技术与应用发展-3- 数字通信2G GSM、CDMA、3G WDCMA/CDMA200/TD-SCDMA、4G LTE、5G NR概述
亲测有效,快速创建JMeter桌面快捷方式
Understanding and application of Qt5 layout in creation
数据探索电商平台用户行为流失分析
Selenium经典面试题-多窗口切换解决方案
Working for eight years as a programmer, but with a salary of three years after graduation, it's too late to be enlightened again
C # customize and dynamically switch cursor
Mathematical knowledge: finding combinatorial number IV - finding combinatorial number
正向代理和反向代理快速理解
More pragmatic in business
软件开发中的上游和下游
【Content-Type请求头的内容】
TypeError: Argument ‘angle‘ can not be treated as a double
医疗HIS行业短信发送解决方案
QML control type: tooltip
机器学习9-通用逼近器径向基函数神经网络,在新观点下审视PDA和SVM
PHP array splicing MySQL in statement
What are the applications of SMS in enterprises?
(翻译)使用眉状文本提高标题点击率