作者 | wangThr

来源 | 知乎


这是今年清华大学及阿里巴巴发表在NIPS 2020上的一篇论文《CogLTX: Applying BERT to Long Texts》,介绍了如何优雅地使用bert处理长文本。作者同时开源了不同NLP任务下使用COGLTX的代码:

论文题目

CogLTX: Applying BERT to Long Texts

论文链接

http://keg.cs.tsinghua.edu.cn/jietang/publications/NIPS20-Ding-et-al-CogLTX.pdf

Github

https://github.com/Sleepychord/CogLTX

Arxiv访问慢的小伙伴也可以在 【夕小瑶的卖萌屋】订阅号后台回复关键词 【1216】 下载论文PDF~

bert在长文本处理一般分为三种方法[1]

  • 截断法;

  • Pooling法;

  • 压缩法。

该论文就是压缩法的一种,是三种方法中最好的。我们在科研和工作中都会遇到该问题,例如我最近关注的一个文本分类比赛:

面向数据安全治理的数据内容智能发现与分级分类 竞赛 - DataFountain[2].

其文本数据长度就都在3000左右,无法将其完整输入bert,使用COGLTX就可以很好地处理该问题,那么就一起来看看该论文具体是怎么做的吧。

1.背景

基于以下情形:

  • bert作为目前最优秀的PLM,不用是不可能的;

  • 长文本数据普遍存在,且文本中包含的信息非常分散,难以使用滑动窗口[3]截断。

而由于bert消耗计算资源和时间随着token的长度是平方级别增长的,所以其无法处理太长的token,目前最长只支持512个token,token过长也很容易会内存溢出,所以在使用bert处理长文本时需要设计巧妙的方法来解决这个问题。

2.提出模型

COGLTX模型在三类NLP任务中的结构如下:

首先假设:存在短文本 可以完全表达原长文本 的语义:

那么令 代替 输入原来的模型即可,那么怎么找到这个 呢

1、使用动态规划算法将长文本 划分为文本块集合 ;

2、使用MemRecall对原长句中的子句进行打分,MemRecall结构如图,而表现如下式:

从而选择出分数最高的子句组成 再进行训练,这样一来的话,COGLTX相当于使用了了两个bert,MemRecall中bert就是负责打分,另一个bert执行原本的NLP任务。

可以发现刚才找到 例子将问题Q放在了初始化 的开头,但是并不是每个NLP任务都可以这么做,分类的时候就没有类似Q的监督,这时候COGLTX采用的策略是将每个子句从原句中移除判断其是否是必不可少的(t是一个阈值):

作者通过设计不同任务下的MemRecall实现了在长文本中使用bert并通过实验证明了方法的有效性。

3.实验

通过多维度地对比,证明了本文提出算法的有效性。

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

 

[1]https://zhuanlan.zhihu.com/p/88944564

[2]https://www.datafountain.cn/competitions/471

[3]Z. Wang, P. Ng, X. Ma, R. Nallapati, and B. Xiang. Multi-passage bert: A globally normalized bert model for open-domain question answering. arXiv preprint arXiv:1908.08167, 2019.

NeurIPS'20 | 通过文本压缩,让BERT支持长文本相关推荐

  1. CogLTX:应用BERT处理长文本

    论文标题:CogLTX: Applying BERT to Long Texts 论文链接:https://arxiv.org/abs/2008.02496 论文来源:NeurIPS 2020 一.概 ...

  2. ABAP 中长文本处理(此例利用长文本特性开发简历模板)CL_GUI_TEXTEDIT

    SAP中长文本的需求及处理方法 相关类  CL_GUI_TEXTEDIT 主要方法 CL_GUI_TEXTEDIT->GET_TEXT_AS_R3TABLE CL_GUI_TEXTEDIT-&g ...

  3. 使用哈夫曼编码实现txt文本的压缩(目前只支持英文文本)

    这是我第一尝试发帖子,有不足指出希望大家不吝指出和理解. 文本压缩效率 亲自测试,文本压缩效率大概在60%左右,是下载的英文版双城记.大概是198k可以压缩成121k左右的样子,当然压缩效率并不是绝对 ...

  4. Haffman编码实现文本压缩-C语言-万字长文,绝对详细

    目录 前言 一.实验目的 二.实验要求 三.设计思想 1 编码 1.1 生成Haffman编码 (1)统计字符频率 (2)构造Haffman树 1.2 文本编码 2 译码 2.1 读入译码信息 2.2 ...

  5. 将预训练模型应用于长文本阅读理解

    摘要: 基于transformers预训练模型(如BERT.RoBERTa)的表现突出,预训练模型基本作为模型的baseline,但是由于self-attention的矩阵计算时间复杂度为,导致输入长 ...

  6. 文本检测大满贯!自适应文本区域表示改进形状任意的文本检测

    点击我爱计算机视觉标星,更快获取CVML新技术 今天跟大家分享一篇CVPR 2019 文本检测的论文,其要解决的问题是任意形状的文本检测,难能可贵的是,该算法在多个文本检测数据集上达到了SOTA,非常 ...

  7. 【转载】ABAP自定义长文本的处理

    SAP中所有的长文本都存在如下两张表中: STXH 长文本的抬头信息 STXL 长文本的明细信息 长文本在使用前,需要先进行配置,如果不配置是不可能往表STXH和STXL中写入文本值的. 配置在视图V ...

  8. ABAP 长文本内容数据迁移 SAP

    SAP 长文本的内容具体存在 STXL STXH两张表.STXH 主要存长文本抬头明细信息. STXL 存长文本的具体内容. 值得注意的是长文本内容在STXL进行存储的内容是转换成其他格式存储,导致不 ...

  9. BAPI_EQUI_CREATE(IE01/IE02)创建设备后,创建长文本问题总结

    设备创建长文本问题总结 问题描述 在开发实施中,当我们通过BAPI_EQUI_CREATE创建设备后,我们希望创建"附件数据 1"页签中的长文本: 其中,创建设备使用:BAPI_E ...

最新文章

  1. Windows栈溢出原理
  2. 实现map window.onload加载
  3. 机器学习(一) 基于sklearn库的数据集划分(交叉验证)
  4. 关于photoshop
  5. Indian Buffet Process(印度自助餐过程)介绍
  6. html树图制作,d3.js制作树结构图
  7. 设计模式(1)-- 七大软件设计原则-开闭原则
  8. sql select 0 字段 某字段是不在指定的表
  9. XXX单板类热仿真分析
  10. 电源管理允许此设备唤醒计算机怎么关掉,电脑如何设置电源管理允许鼠标唤醒计算机...
  11. Gitbub 基本使用
  12. window下isa防火墙详细安装
  13. Tencent/tencent-ml-images Readme说明
  14. Win10桌面图标箭头去掉的方法总结
  15. JAVA 开发基础【JSON相关】
  16. css日落_如何拍摄好日落照片
  17. 什么是光时域反射仪,OTDR的工作原理是什么
  18. python中遍历列表和字典的方法
  19. 遥感影像去背景 之 数据裁剪
  20. 公众号如何开通留言功能?

热门文章

  1. 汇编中调用函数(类比c
  2. JAVA NIO 简介(转)
  3. 使用ASP.net 2.0 的一些新特性
  4. 排序算法之快速排序(Java)
  5. 面试官问:malloc(0)时程序会返回什么?
  6. 一道90%都会做错的指针题
  7. #define的高级用法
  8. printf 宏 调试技巧
  9. cad完全卸载教程_CAD室内设计中厨房布置实例
  10. react不同环境不同配置angular_前端问题集:vue配置环境-给不同的环境配不同的打包命令...