CogLTX Applying BERT to Long Texts

CogLTX: Applying BERT to Long Texts

Ming Ding, Chang Zhou, Hongxia Yang, and Jie Tang. 2020. CogLTX: Applying BERT to Long Texts. InAdvances in Neural Information Processing Systems, Vol. 33.
12792–12804

Abstract

由于二次增加的内存和时间消耗,BERT无法处理长文本。解决这个问题的最自然的方法,如通过滑动窗口分割文本或简化Transformer,都会受到长期关注不足或需要定制CUDA内核。BERT中的最大长度限制提醒我们容量有限(5∼9)人类的工作记忆——那么人类是如何识别长文本的呢?基于Baddeley[2]的认知理论,提出的COGLTX框架通过训练一个学习模型来识别关键句子,将它们连接起来进行推理,并通过排练和衰退实现多步骤推理。由于相关性注释通常不可用,我们建议使用干预来创建监督。作为一种通用算法,CogLTX在各种下游任务上的性能优于SOTA模型,或获得与SOTA模型类似的结果,这些任务的内存开销与文本长度无关。

1 Introduction

由BERT[12]首创的预训练语言模型已成为许多NLP任务的灵丹妙药,如问答[38]和文本分类[22]。研究人员和工程师按照标准的微调范式轻松构建最先进的应用程序,但最终可能会失望地发现一些文本长度超过了BERT的长度限制(通常为512个标记)。这种情况在标准化基准测试中可能很少见,例如SQuAD[38]和GLUE[47],但在更复杂的任务[53]或真实的文本数据中非常常见。

对于长文本,一个简单的解决方案是滑动窗口[50],由BERT处理连续的512个标记跨度。这种方法牺牲了远程标记相互“注意”的可能性,这成为BERT在复杂任务中显示其有效性的瓶颈(例如图1)。 由于问题根源于Transformers[46] 的o (L`2)时间和空间复杂性(L是的文本长度),另一种研究试图简化transformers的结构[20,37,8,42],但目前成功应用于BERT的研究很少[35,4]。

在这里插入图片描述

图1:HotpotQA的一个例子(干扰设置,串联)。回答问题的关键句子是第一句和最后一句,彼此之间有512多个标记。在滑动窗口方法中,它们从来不会出现在同一个输入窗口中,因此我们无法回答这个问题。

在这里插入图片描述

图2:BERT任务主要类型的CogLTX推断。MemRecall是从长文本X中提取关键文本块SZ的过程。塞恩齐斯派了一个名叫“推理者”的BERT去完成这项具体任务。一个(c)任务被转换为多个(b)任务。BERT输入w.r.t.zis用z+表示。

BERT的最大长度限制自然提醒我们,工作记忆[2]的容量有限,这是一个人类认知系统,存储用于逻辑推理和决策的信息。实验[27,9,31]已经表明,工作记忆只能储存5分钟∼阅读过程中的9个项目/单词,那么人类是如何理解长文本的呢?

“中央执行机构——负责协调(多模态)信息的(工作记忆)系统的核心”,以及“能够选择和操作控制过程和策略的能力有限的注意力系统的功能”,正如巴德利[2]在其1992年的经典著作中指出的那样。后来的研究详细说明,工作记忆中的内容会随着时间的推移而改变[5],除非是通过排练[3]来保存的,即注意并刷新大脑中的信息。然后,通过检索竞争[52],用长期记忆中的相关项目不断更新被忽略的信息,为工作记忆中的推理收集足够的信息。

BERT和工作记忆之间的类比启发我们使用CogLTX框架来识别像人类一样的长文本。CogLTX背后的基本理念相当简洁——通过关键句子的串联进行推理(图2)——而紧凑的设计则需要弥合机器和人类推理过程之间的差距。

CogLTX中的关键步骤是MemRecall,这是一个通过将文本块视为独立记忆来识别相关文本块的过程。MemRecall在检索竞争、排练和衰退方面模仿工作记忆,促进多步骤推理。另一个名为Judge的BERT被引入到块的相关性评分中,并与原始BERT推理器一起进行训练。此外,CogLTX还可以通过干预将面向任务的标签转换为相关注释,以进行培训判断。

我们的实验表明,CogLTX在四项任务上的表现优于或达到了与最先进的结果相当的性能,包括NewsQA[44]、HotpotQA[53]、20NewsGroups[22]和Alibaba,无论文本长度如何,其内存消耗都是恒定的。

2 Background

长文本的挑战。对于长文本来说,直接和表面上的障碍是预训练的最大位置嵌入通常是512 在 BERT上[12]。然而,即使提供了更大位置的嵌入,内存消耗也是负担不起的,因为所有激活都存储在训练期间用于反向传播。例如,1500个令牌文本需要大约14个。即使批处理大小为1,6GB内存也会很大,超过普通GPU的容量(例如,RTX 2080ti的容量为11GB)。此外,O(L`2)空间复杂度意味着随着文本长度的增加而快速增加。

相关工作。如图1所示,滑动窗口方法缺乏远程关注。以前的工作[49,33]试图通过平均池、最大池或额外的MLP或LSTM来聚合每个窗口的结果;但这些方法在远程交互和需要(512`2·L/512)=O(512L)空间时仍然很弱,实际上,这仍然太大,无法在RTX 2080ti上的2500个令牌文本上训练一个大的BERT,批量大小为1。此外,这些后期聚合方法主要优化分类,而其他任务,例如广度提取、哈维尔BERT输出,需要O(L`2)空间进行自我注意聚合。
在这里插入图片描述

图3:问答的MemRecall示例。长文本轴被分成块[x0…x40]。在第一步中,X0和X8在排练后保留在Z中。x8中的“老派”将有助于在下一步检索答案块x40。详见附录。

在为长文本改编Transformer的研究中,许多研究只是压缩或重复使用前面步骤的结果,不能应用于BERT,例如Transformer XL[8]和Compression Transformer[37]。Reformer使用对位置敏感的哈希来引起基于内容的组注意,但它对GPU不友好,仍然需要验证其使用情况。BlockBERT[35]切断不重要的注意力头,将BERT从512标记放大到1024标记。最近的里程碑Longferer[4]定制了CUDA内核,以支持特殊令牌上的窗口关注和全局关注。然而,由于数据集的大小大多是longformer的4×窗口大小,因此后者的有效性还没有得到充分的研究。“轻量级BERTs”的方向很有希望,但与CogLTX正交,这意味着它们可以结合CogLTX来处理更长的文本,因此本文不再对它们进行比较或讨论。详细调查见[25]

3 Method

3.1 CogLTX 方法论

CogLTX的基本假设是“对于大多数NLP任务,文本存储中的几个关键句子足以满足完成任务所需的信息”。更具体地说,我们假设存在一个由长文本x中的一些句子组成的短文本z,令人满意。

reasoner(x+) reasoner(z+), 其中,x+和z+是推理器BERTw.r.t.的输入文本x和z,如图2所示。

我们将每个长文本拆分为块[x0…xT−1] 通过动态规划(见附录),将块长度限制在最大B,在我们的实现中,如果BERT长度限制L=512,则B=63。键短文本z应该由X中的一些块组成,即z=[xz0…xzn−1] ,令人满意的Len(z)≤Landz0<…<Zn−1.我们指的是Xzi是通过Zi来的。所有块Z是自动排序,以保持原始在x中的相对顺序。

关键区块假设与近期变量模型密切相关,通常由EM[11]或变分贝叶斯[19]求解。然而,这些方法估计Z的分布需要多次抽样,因此对BERTs来说不够有效。我们将它们的本质引入CogLTX的设计中,并在§3中讨论它们之间的联系。

CogLTX、MemRecall和两名Bert的联合训练中有两个要素至关重要。如图2所示,MemRecall是一种利用判断模型检索关键块的算法,这些关键块在推理过程中被输入推理器以完成任务。

3.2 MemRecall召回

当大脑回忆与工作记忆中当前信息相关的过去事件时,MemRecall旨在从长文本X中提取关键区块Z(见图3)。

Input:虽然目标是提取关键块,但三种任务的具体设置不同。在图2(a)(c)中,问题Q或者子序列X[i]用作检索相关块的查询。然而,(b)中没有查询,相关性仅由训练数据隐式定义。例如,包含“唐纳德·特朗普”或“篮球”的句子比时间报道句子更适合新闻主题分类。那么,如何无缝地统一这些案例呢?

MemRecall通过接受首字母Z作为附加输入来回答问题。z+是MemRecall期间保持的短“关键文本”,用于模拟工作记忆。任务(a)(c)中的查询成为在z+中引发回忆的初始信息。然后,在Z+的帮助下,学习预测任务特定相关性。

Model:MemRecall使用的唯一模型是上面的判断,一个用于为每个标记的相关性评分的BERT。假设Z=[CLS]Q[SEP]z0[SEP]。Zn−1]

judge(z+) =sigmoid(MLP(BERT(z+)))∈(0,1)`len(z+).

zi是分数。judge(z+)[zi]是块中分数的平均值。

**Procedure:**MemRecall从一场正式的比赛开始。每个区块xi分配一个粗关联评分法官([z[SEP]xi])[xi]。得分最高的“获胜者”方块被插入到z中≤L.相对于向量空间模型[40]的优势在于,Xi通过Transformer与z充分交互,避免了嵌入过程中的信息丢失。

下面的排练十分钟为每个人分配一个独立的分数裁判(z)[zi]。只有得分最高的区块才会保持在Z,就像工作记忆中的排练衰退现象一样。精细分数的动机是,如果没有区块之间的交互和比较,粗略分数的相对大小不够准确,类似于重新排名的动机[7]。

MemRecall in nature通过与新的z重复该过程实现多步骤推理。CogQA[13]强调了迭代检索的重要性,因为在多跳阅读理解中,问题无法直接检索答案句。值得注意的是,如果在新块z中的更多信息证明它们不够相关(分数较低),那么从上一步保留的块也可以进行推理,而以前的多步推理方法忽略了这一点[13,1,10]。

3.3训练

下游任务的多样性给CogLTX中的BERT培训(微调)带来了挑战。算法1总结了不同设置下的解决方案。

对judge进行监督培训。本质上,跨度提取任务(图2(a))表明答案块是相关的。即使是多跳数据集,例如HotpotQA[53],通常也会对支持语句进行注释。在这些情况下,judge自然会接受监督培训:
在这里插入图片描述

其中,训练样本z要么是从Xrand(对应于检索竞争的数据分布)中采样的连续区块序列,要么是所有相关和随机选择的无关区块Zrelv的混合(近似于排练的数据分布)。

**监督培训推理者。**推理机面临的挑战是在训练和推理过程中保持数据分布的一致性,这是监督学习的基本原则。理想情况下,Reasoner的输入也应该在训练期间由MemRecall生成,但并不能保证检索到所有相关的块。 例如在回答问题时,如果MemRecall漏掉了答案块,训练就无法进行。 最后进行近似运算,将所有相关块和检索竞赛中的“优胜者”块发送给推理者进行训练。

**法官的无监督培训。**不幸的是,许多任务(图2(b)(c))没有提供相关性标签。由于CogLTX假设所有相关块都是必要的,我们通过干预推断出相关标签:通过从Z中移除一个块来测试它是否是不可或缺的。

假设这是“与甲骨文有关的块”,根据我们的假设,
在这里插入图片描述

wherez−ZiFromZ是移除ZiFromZ的结果,这是一个阈值。在训练推理机的每次迭代后,我们将每个块分解为z,并根据损失的增加调整其相关标签。不显著的增加表明该块是不相关的,这可能不会再次“赢得检索竞赛”以在下一个历元中训练推理者,因为它将被标记为与在下一个历元中训练推理者无关。然后,实际的相关块可能会进入下一个历元并被检测到。在实践中,我们将TintUp和Tdown分开,留下一个缓冲区来防止标签的频繁更改。我们在图4中展示了20News文本分类数据集上的无监督培训示例。

**与潜变量模型的联系。**无监督CogLTX可被视为(条件)潜变量modelp(y | x;θ)的推广∝p(z | x)p(y | z;θ)。EM[11]推断了E步中Zas后验概率(z | y,x;θ)的分布,而变分bayes方法[19,39]使用了一个友好的估计q(z | y,x)。然而,在cogltxzha中,它是一个离散分布,具有多达多个可能的值,其中,分别是块的数量和z的容量。在某些情况下,可能需要数百次采样来训练Bert[19],其昂贵的时间消耗迫使我们对z,2e进行点估计。g、 我们基于干预的方法。

干预解决方案为每个CHX维护一个估计,本质上是一个特定于CogLTX的局部搜索。ZI通过比较附近的值(替换无关块后的结果)而不是贝叶斯规则进行优化。他们建立了一个归纳判别模型来帮助推断。

4实验

我们在四个不同任务的长文本数据集上进行了实验。基于标记的(图2(c))任务不包括在内,因为它们几乎不需要来自相邻句子的信息,并且最终被转换为多个序列级样本。图5中的方框图显示了数据集中文本长度的统计信息。

在所有实验中,Adam[18]以4×10的学习率对判断和推理进行了微调−5和10−分别为4。学习率在前10%的步骤中预热,然后线性衰减到最大学习率的1/10。常见的超参数是批量大小batch size=32,步幅strides=[3,5],t up=0.2和t down=−0. 05.

在本节中,我们将分别介绍每项任务以及相关的结果、分析和消融研究。

4.1 阅读理解

数据集和设置。给定一个问题和一个段落,任务是预测段落中的答案跨度。我们在NewsQA[44]上评估了CogLTX的性能,其中包含了12744篇长新闻文章中提出的119633个人工生成的问题。3由于之前的SOTA[43]在NewsQA中不是基于BERT的(由于文本较长),为了保持相似的参数规模以进行公平比较,我们在CogLTX中对RoBERTa[26]的基础版本进行了4个时代的微调.

Results表1显示,CogLTX base优于成熟的QA模型,例如BiDAF[41](17.8?)、之前的SOTA DECAPROP[43],后者结合了精细的自我注意和RNN机制(4.8?),甚至还有带滑动窗口的RoBERTa large(4.8?)。我们假设第一句(导语)和最后一句(结论)通常是新闻文章中信息量最大的部分。CogLTX可以聚合它们进行推理,而滑动窗口不能。
在这里插入图片描述

4.2多跳问答

**数据集和设置。**在复杂的场景中,答案基于多个段落。以前的方法通常利用段落中关键实体之间的图结构[13,36]。然而,如果我们可以用CogLTX处理长文本,那么通过将所有段落连接起来作为BERTs的输入,这个问题就可以优雅地解决。

HotpotQA[53]是一个包含112779个问题的多跳QA数据集,Distractorsetting为每个问题提供了2个必要段落和8个干扰段落。评估需要回答和支持事实。我们将每个句子视为CogLTX中的一个块,并直接输出罚款分数最高的两个块作为支持事实。
在这里插入图片描述

Result表2显示,CogLTX在排行榜上的表现优于大多数以前的方法和所有7BERT变体解决方案。4这些解决方案基本上遵循通过额外的神经网络聚合滑动窗口结果的框架,导致由于段落之间的交互不足而导致有界性能。

SOTA模型HGN[14]利用了维基百科中的额外超链接数据,并以此为基础构建数据集。SAE[45]的思想类似于CogLTX,但不那么笼统。它通过关注层在BERT上给段落打分,选择得分最高的两个段落,并将它们一起输入BERT。支持事实是由另一个复杂的图形注意模型决定的。有了良好的导向设计,SAE比CogLTX(2.2%JointF1)更适合HotpotQA,但不能解决较长段落的内存问题。CogLTX像普通QA一样直接解决了多跳QA问题,获得了SOTA可比结果,并且无需额外努力就能解释支持事实。

消融研究。我们还总结了表2中的消融研究,表明(1)多步骤推理确实有效(3.9%JointF1),但不是必要的,可能是因为HotpotQA中的许多问题本身与第二跳句子相关,足以检索它们。(2) 支持事实的指标显著下降(-35.7%SupF1),而无需为精细分数排练,因为如果不相互关注,最重要句子的相关性分数是不可比的。3) 如§3所述。3.训练和测试期间数据分布的差异会影响推理机的性能(-2.3%JointF1),如果推理机是通过随机选择的块进行训练的。

4.3 文本分类

**数据集和设置。**作为NLP中最常见的任务之一,文本分类对于分析主题、情感、意图等至关重要。我们在经典的20个新闻组[22]上进行了实验,其中包含来自20个类的18846个文档。我们在CogLTX中为罗伯塔微调了6个时代。

Result表3显示,CogLTX的相关性标签由手套[34]初始化,其性能优于其他基线,包括之前尝试从滑动窗口聚合[CLS]池结果[33]。此外,基于MLP或LSTM的聚合不能在长文本上进行端到端的训练。

消融研究。(1) 由于20个新闻组中的文本长度差异很大(见图5),因此我们仅在长度超过512个标记(15%)的文本上进一步测试性能,这甚至高于全局结果。(2) 基于手套的初始化提供了良好的相关性标签,但缺乏干预措施的调整仍然导致2。精确度下降2%。(3) Bm25初始化是基于普通单词,它只初始化14.2%的训练样本来自短标签名称,例如运动。棒球运动通过干预和逐步训练的推理者推断出相关句子,准确率达到86.1%.

4.4多标签分类

数据集和设置。在许多实际问题中,每个文本可以同时属于多个类。多标签分类通常通过为每个标签训练单独的分类器来转化为二值分类。由于BERT的容量很大,我们通过在文档开头预先添加标签名作为输入来共享所有标签的模型,即用于二元分类的[CLS]标签[SEP]文档。阿里巴巴是一个从大型电子商务平台的行业场景中提取的30000篇文章的数据集。每篇文章都会为67个类别中的几个项目做广告。上述类别的检测被完美地建模为多标签分类。为了加速实验,我们分别抽取了80000对和20000对标签文章进行训练和测试。为了完成这项任务,我们在CogLTX中对罗伯塔进行了10个时代的微调。

Result表4显示,CogLTX优于普通强基线。TextCNN[17]和Bi LSTM使用的单词embedings来自罗伯塔,用于公平比较。即使是CogLTX tiny(750万个参数)也比TextCNN好。然而,RoBERTa大滑动窗口的最大池结果比CogLTX(7.3%Macro-F1)差。我们假设这是因为在最大池中,倾向于将更高的概率分配给非常长的文本,这突出了CogLTX的有效性。

在这里插入图片描述

4.5内存和时间消耗

**内存:**CogLTX的记忆消耗在训练过程中是持续的,优于CogLTX的theO(L2)复杂度。我们还比较了Longferer[4],如果全局注意标记的数量相对较小且独立于ofL,则其空间复杂度约为O(L)。图6(左)总结了详细的比较。

**时间:**为了加快推理者的训练速度,我们可以在训练判断过程中缓存块的分数,这样每个历元只需要2×单次训练。由于CogLTX和滑动窗口在训练中直到收敛的历元数相似,CogLTX主要关注的是推理速度。图6(右)显示了处理具有不同文本长度的100000个样本合成数据集所需的时间。CogLTX的时间复杂度为o(n),在L>2048之后,其速度快于传统的窗口,并且随着文本长度的增加,其速度接近滑动窗口的速度。

5Conclusion and discussion

我们提出了CogLTX,一个认知启发的框架,将BERT应用于长文本。CogLTX在训练过程中只需要固定的记忆,并且可以在遥远的句子之间引起注意。在DrQA[6]和ORQA[23]中,在文档层面上研究了类似的想法,以前也有以无监督的方式提取重要句子的工作,例如,基于关于结构的元数据[24]。在4个不同的大型数据集上进行的实验显示了它的竞争性能。CogLTX有望成为许多复杂NLP任务的通用和强大基线。

CogLTX在“关键句子”假设下定义了长文本理解的管道。极端困难的序列级任务可能会违反这一点,因此有效的变分贝叶斯方法(估计z的分布)和可负担的计算仍然值得研究。此外,CogLTX还有一个缺点,就是在块之前漏掉先行词,在我们的HotpotQA实验中,通过在每个句子前面加上实体名称,这一缺点就得到了缓解,并且在未来可以通过位置感知检索竞争或共指消解来解决。

设下定义了长文本理解的管道。极端困难的序列级任务可能会违反这一点,因此有效的变分贝叶斯方法(估计z的分布)和可负担的计算仍然值得研究。此外,CogLTX还有一个缺点,就是在块之前漏掉先行词,在我们的HotpotQA实验中,通过在每个句子前面加上实体名称,这一缺点就得到了缓解,并且在未来可以通过位置感知检索竞争或共指消解来解决。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值