这是论文“ CogLTX:ApplyingBERTtoLongTexts”。由清华大学和阿里巴巴于今年在NIPS2020上发表,介绍了如何使用bert优雅地处理长文本。作者还开源了在不同的NLP任务下使用COGLTX的代码:论文标题:CogLTX:ApplyingBERTtoLongTexts论文链接:http://keg.cs.tsinghua.edu.cn/jietang/publications/NIPS20-Ding-et-al -CogLTX。 pdfGithub:https://github.com/Sleepychord/CogLTXbert长文本处理通常有三种方法[1]:截断方法;合并方法;压缩方法。本文是压缩方法之一,并且是三种方法中的最佳方法。我们在科学研究和工作中遇到这个问题。例如,最近我参加了一个文本分类竞赛:数据安全治理-数据喷泉[2]的数据内容智能发现和分层分类竞赛。文本数据长度大约为3000。,不可能将其完全输入到bert中,并且通过使用COGLTX可以很好地解决该问题,因此让我们看一下纸张的处理方式。 1.背景基于以下情况:作为目前最佳的PLM,无法使用bert。长文本数据非常普遍,并且文本中包含的信息非常分散,并且很难使用滑动窗口[3]来进行截断。但是,由于bert消耗了计算资源,并且时间在平方级别上随令牌长度的增加而增加,因此它无法处理太长的令牌。目前,它最长只支持512个令牌。如果令牌太长,很容易导致内存溢出,因此在使用bert时,需要设计巧妙的方法来解决长文本时遇到的问题。 2.提议的模型三种类型的NLP任务中的COGLTX模型的结构如下:首先,假设:有一个短文本可以完全表达原始长文本的语义:然后足以替换原始的长文本。输入原始模型,然后找到该模型。1.使用动力学计划算法将长文本分为一组文本块; 2.使用MemRecall为原始长句中的子句打分。图中显示了MemRecall结构,其表达式如下:选择具有最高得分的子句组成,然后对其进行训练,因此,首先,COGLTX等效于使用两个bert。在MemRecall中,伯特负责评分,另一个伯特执行原始的NLP任务。可以发现,刚刚找到的示例将问题Q放在初始化的开始,但是并非每个NLP任务都可以做到这一点。分类过程中没有类似Q的监督。这时,COGLTX采取的策略是从原文中删除每个子句。有必要从句子中删除句子(t是阈值):作者通过在不同任务下设计MemRecall来实现长文本中bert的使用。并通过实验证明了该方法的有效性。 3.实验通过多维比较证明了本文提出算法的有效性。参考文献[1] https://zhuanlan.zhihu.com/p/88944564 [2] https://www.datafountain.cn/competitions/471 [3] Z.Wang,P.Ng,X.Ma,R。 Nallapati和B.Xangg多通行证:开放域问题应答的全局标准化的bert模型.arXivpreprintarXiv:1908.08167,2019。