0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何优雅地使用bert处理长文本

深度学习自然语言处理 ? 来源:深度学习自然语言处理 ? 作者:wangThr ? 2020-12-26 09:17 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

这是今年清华大学及阿里巴巴发表在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

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

截断法;

Pooling法;

压缩法。

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

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

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

1.背景

基于以下情形:

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

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

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

b48db3fa-4690-11eb-8b86-12bb97331649.jpg

2.提出模型

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

b5408b9c-4690-11eb-8b86-12bb97331649.jpg

b5acc258-4690-11eb-8b86-12bb97331649.jpg

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

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

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

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

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

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

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

3.实验

b63a5dd4-4690-11eb-8b86-12bb97331649.jpg

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

参考文献

[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.

责任编辑:xj

原文标题:【NIPS 2020】通过文本压缩,让BERT支持长文本

文章出处:【微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 文本
    +关注

    关注

    0

    文章

    119

    浏览量

    17535
  • nlp
    nlp
    +关注

    关注

    1

    文章

    490

    浏览量

    22728

原文标题:【NIPS 2020】通过文本压缩,让BERT支持长文本

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    飞书开源“RTV”富文本组件 重塑鸿蒙应用富文本渲染体验

    近日,飞书正式将其自研的富文本组件库?RichTextVista(简称“RTV”)开源,并上线OpenHarmony?三方库中心仓。该组件以领先的性能、流畅的渲染体验与高度的开放性,为鸿蒙生态提供了
    的头像 发表于 07-11 15:20 ?272次阅读
    飞书开源“RTV”富<b class='flag-5'>文本</b>组件 重塑鸿蒙应用富<b class='flag-5'>文本</b>渲染体验

    推荐!如何优雅地摆好PCB丝印?

    很多画PCB的人,会认为丝印不影响电路的性能,所以,对丝印并不重视。但是,对于一个专业的硬件工程师来说,必须重视这些细节。 下面介绍如何优雅地弄好PCB丝印。 1 摆放的位置 一般来说,电阻、电容
    发表于 04-08 14:59

    把树莓派打造成识别文本的“神器”!

    在许多项目中,RaspberryPi被用作监控摄像头或执行机器学习任务。在这些场景中,图像中经常包含应用程序感兴趣的文本信息。我们希望提取这些信息并将其转换,以便通过程序分析文本
    的头像 发表于 03-25 09:30 ?526次阅读
    把树莓派打造成识别<b class='flag-5'>文本</b>的“神器”!

    ?VLM(视觉语言模型)?详细解析

    的详细解析: 1. 核心组成与工作原理 视觉编码器 :提取图像特征,常用CNN(如ResNet)或视觉Transformer(ViT)。 语言模型 :处理文本输入/输出,如GPT、BERT等,部分模型
    的头像 发表于 03-17 15:32 ?5629次阅读
    ?VLM(视觉语言模型)?详细解析

    飞凌RK3588开发板上部署DeepSeek-R1大模型的完整指南(一)

    DeepSeek作为国产AI大数据模型的代表,凭借其卓越的推理能力和高效的文本生成技术,在全球人工智能领域引发广泛关注。DeepSeek-R1作为该系列最新迭代版本,实现了长文本处理效能跃迁、多模态扩展规划、嵌入式适配等技术维度的突破。
    的头像 发表于 02-21 14:55 ?2672次阅读
    飞凌RK3588开发板上部署DeepSeek-R1大模型的完整指南(一)

    BQ3588/BQ3576系列开发板深度融合DeepSeek-R1大模型

    DeepSeek 作为国产 AI 大数据模型的杰出典范,以出色的推理能力和高效的文本生成技术,在全球人工智能领域中备受瞩目。DeepSeek-R1-distill-Qwen-7B 作为该系列的最新迭代版本,在长文本处理效能、多模态扩展规划以及嵌入式适配等技术维度上实现了重
    的头像 发表于 02-12 11:20 ?953次阅读

    阿里云通义开源长文本新模型Qwen2.5-1M

    近日,阿里云通义宣布了一项重大开源举措,推出了支持100万Tokens上下文的Qwen2.5-1M模型。这一新模型在处理长文本任务中展现出了卓越的性能,稳定超越了GPT-4o-mini
    的头像 发表于 02-05 14:01 ?624次阅读

    【6千字长文】车载芯片的技术沿革与趋势分析

    【本文是读者投稿。6千字长文,规格严谨。】01什么是芯片?什么是汽车芯片?芯片,通俗地说,就是一块小硅片集成了许多微小的电子元件,如晶体管、电阻、电容等元件通过复杂的电路连接在一起,形成一个功能强大
    的头像 发表于 12-31 22:37 ?1533次阅读
    【6千字<b class='flag-5'>长文</b>】车载芯片的技术沿革与趋势分析

    Linux三剑客之Sed:文本处理神器

    关于linux三剑客 grep,过滤关键字信息数据。主要是用于查文本内的数据 sed ,对文本数据进行编辑,修改原文件内容 awk,对文件数据过滤,提取,并且能实现,格式化输出 awk对文件数据处理
    的头像 发表于 12-16 15:58 ?831次阅读
    Linux三剑客之Sed:<b class='flag-5'>文本处理</b>神器

    如何优化自然语言处理模型的性能

    优化自然语言处理(NLP)模型的性能是一个多方面的任务,涉及数据预处理、特征工程、模型选择、模型调参、模型集成与融合等多个环节。以下是一些具体的优化策略: 一、数据预处理优化 文本清洗
    的头像 发表于 12-05 15:30 ?1853次阅读

    如何使用自然语言处理分析文本数据

    使用自然语言处理(NLP)分析文本数据是一个复杂但系统的过程,涉及多个步骤和技术。以下是一个基本的流程,帮助你理解如何使用NLP来分析文本数据: 1. 数据收集 收集文本数据 :从各种
    的头像 发表于 12-05 15:27 ?1811次阅读

    图纸模板中的文本变量

    “ ?文本变量和系统自带的内置变量,可以帮助工程师灵活、高效地配置标题栏中的信息,而不用担心模板中的文字对象被意外修改。 ? ” 文本变量的语法 文本变量以?${VARIABLENAME}?的方式
    的头像 发表于 11-13 18:21 ?772次阅读
    图纸模板中的<b class='flag-5'>文本</b>变量

    如何在文本字段中使用上标、下标及变量

    在KiCad的任何文本字段中,都可以通过以下的方式实现上标、下标、上划线以及显示变量及字段值的描述: 文本变量“文本变量”可以在 原理图设置->工程->文本变量 中设置。下图中设置了一
    的头像 发表于 11-12 12:23 ?769次阅读
    如何在<b class='flag-5'>文本</b>字段中使用上标、下标及变量

    如何掌握Linux文本处理

    /from/sed_script: 从指定的文本中读取处理脚本 -r: 使用扩展正则表达式 sed命令选项 替换标记 g:表示行内全面替换 w:表示把行写入一个文件 x:表示互换模式
    的头像 发表于 11-10 13:40 ?601次阅读

    内置误码率测试仪(BERT)和采样示波器一体化测试仪器安立MP2110A

    BERTWave MP2110A是一款内置误码率测试仪(BERT)和采用示波器的一体化测量仪器,支持光模块的误码率(BERT)测量、眼图模式测试、眼图分析等评估操作
    的头像 发表于 09-23 14:34 ?977次阅读
    内置误码率测试仪(<b class='flag-5'>BERT</b>)和采样示波器一体化测试仪器安立MP2110A