点击上方,选择星标置顶,每天给你送干货!


作者信息

Elesdspline
目前从事NLP与知识图谱相关工作。

来自:AI自然语言处理与知识图谱

  要说自然语言处理在18年最夺目闪耀的是什么事情,那当属 BERT 刷新各个任务的记录了,至今已经过去了近两年半的时间,但其影响力未曾衰减,无论学术界还是工业界,很多的工作与部署都围绕其展开,对很多的下游任务都有举足轻重的作用,真的是里程碑啊。

  相信大家都有过BERT、ALBERT等预训练语言模型应用在自己任务上的实践经历,可能是情感分析、分类、命名实体识别、阅读理解、相似度计算等等,使用的方法也无非是在自己任务上 fine-tune 或者作为预训练Embedding,使用的预训练模型大多是公开的,大佬们(财大气粗、资源无数)训练好的。(有钱真好)

  在用预训练模型的时候,根据任务的不同,用到信息也不同,有的需要是词表示,比如命名实体识别、词性标注等任务,有的需要的是句子表示,比如分类、句子语意匹配等。这里我要说的句子表示这一类的任务,大家经常会用到的 [CLS] 特征信息作为句子向量表示,CLS 作为 BERT/ALBERT序列信息中特殊的一个存在,在最开始设计模型的时候便考虑将其作为后续文本分类的表示,然而直接使用 CLS 的效果真的会满足我们的预期嘛?相信大家在实践的过程中都有所体会~,另外 ALBERT 和 BERT 在下游任务应用上面孰好孰坏,是否有一个定论?

  我最近看到了一篇 Arxiv 的文章,题目是 《Evaluation of BERT and ALBERT Sentence Embedding Performance on Downstream NLP Tasks》,这篇文章在 BERT/ALBERT 提取信息作为句子信息表示应用在下游任务,对其效果进行了评测,或许会解答我们实践中的疑惑,也或者会给我们一些预训练模型在下游任务应用的启发,让我们来看下~

评测对比

有一系列的对比实验,来看在下游任务上面的效果~

  • [CLS] embeddings

    • CLS 通过 Self-Attention 机制来获取句子级别的信息表示,在不同的任务上 Fine-tune 之后,CLS 会捕捉特定环境下的上下文信息表示。

  • Pooled embeddings

    • 将文本中的所有词做 Avg-pooling 或者 max-pooling。

  • Sentence-X(SBERT/ALBERT)

    • BERT 在语义相似度任务上面也取得了很不错的效果,然后其内部的结构在计算过程中会导致非常耗时,不适合做语义相似度匹配任务,特别是在工业界,BERT 的耗时无法满足上线的需要。针对这个问题,有人提出 Sentence-BERT,采用孪生网络模型框架,将不同的句子输入到参数共享的两个BERT模型中,获取句子信息表示,用于语义相似度计算,最终相比BERT效率大大提升,满足工业界线上需要。SBERT 从65小时降到5秒,具体详见参考资料2。

  • CNN-SBERT/SALBERT

    • 在上图中,SBERT 采用 Avg-pooling 获取句子向量表示,本文将其替换成 CNN 网络结构获取句子向量表示。

结果分析

评测任务

  • STS:Semantic Textual Similarity

  • NLI:Natural Language Inference

评测指标

  • Pearson and Spearman’s rank coefficients(皮尔逊和斯皮尔曼相关系数)

评测数据

  • Semantic Textual Similarity benchmark(STSb

  • Multi-Genre Natural Language Inference(MultiNLI

  • Stanford Natural Language Inference(SNLI

上面列出来相关的评测任务、评测指标以及评测所用到的数据,下面先给出一张结果表,然后再详细分析~

详细分析

  • 微调有效:这个是符合我们认知的,肯定是微调的效果要好。

  • CLS 效果:CLS 的效果要逊色很多,无论是在微调上面,还是不微调上面,CLS的效果都要远逊色于平均池化操作或者其他方法。

  • 不同方法效果:总体上来看,CNN-BERT > SBERT > Avg pooling > CLS

  • BERT 与 ALBERT:从上图中大概能够看出,不微调的情况下,两者的效果差不多,但是微调之后,ALBERT的效果要比BERT差很多,仅仅在STSb上微调的时候,CLS 和平均池化的方法要好于BERT。

  • CNN的效果

    • 从上图来看,最好的结果是采用了 CNN 网络结构,说明 CNN 起到了正向的作用,仔细观察发现,CNN 对 ALBERT 的改进要远大于对 BERT 的改善提高。ALBERT 由于内部参数共享,可能存在不稳定性,CNN 网络结构或许可以减缓这种不稳定性。

    • 下图也进行了一些对比,在几个不同的数据集上验证 CNN 的有效性,从最终的 Avg 结果来看,CNN 网络结构对 ALBERT 有改善提升。

  以上是根据实验结果进行的简单分析,其中有一些结论和对比可以在我们日常的实践中借鉴并尝试,说不定会有不错的效果~

参考资料

  1. Evaluation of BERT and ALBERT Sentence Embedding Performance on Downstream NLP Tasks

  2. N. Reimers and I. Gurevych, “Sentence-BERT: Sentence embeddings using Siamese BERT-networks,” in Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLPIJCNLP), 2019.

说个正事哈

由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方深度学习自然语言处理”,进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

推荐两个专辑给大家:

专辑 | 李宏毅人类语言处理2020笔记

专辑 | NLP论文解读

专辑 | 情感分析


整理不易,还望给个在看!

BERT中CLS效果真的好嘛?这篇文章告诉你答案相关推荐

  1. 在高层建筑中多少层开始使用爬架?联筑赚告诉你答案!

    随着国内经济的飞速发展,国内也出现了很多高层建筑,在高层建筑中,施工安全就非常重要,目前相对安全性较高的支撑体系就是爬架,也就是所谓的附着式升降脚手架,在高层建筑脚手架施工中爬架得到了迅速应用,取得了 ...

  2. Python 这篇文章告诉我Python实际中干什么事情

    一直心存疑虑:Python可以干什么事情? 对Python在企业级开发中的10大误解 lyxi | 2015-10-15 10:49    浏览量(216)    评论(0)   推荐(0) 数据 在 ...

  3. MyBatis 中 #{} 和 ${} 的区别看完这篇文章一目了然

    我们知道 MyBatis 中对于参数的赋值有两种方式, 一种是使用 #{}, 一种是使用 ${}, 这两种参数赋值的方式对于有些情况都可以正常使用, 但是针对某些场景, ${} 却会报错. 本篇文章主 ...

  4. 自媒体真的很赚钱吗?收益来源都有哪些?这篇文章告诉你

    现在自媒体真的很赚钱吗?自媒体是通过什么方式赚钱的?如果你连这个都不知道,就不用谈其它的了.给大家分享一下自媒体运营的收益来源有哪些? 一.拿广告分润 这个就需要你的内容很好了,阅读量越高,你拿的钱就 ...

  5. 如何从音频中提取伴奏?这篇文章告诉你如何提取伴奏

    有没有小伙伴在制作视频后期的时候为配乐而烦恼过呢?我就有,之前想为一个视频配上音乐,就直接将歌曲导入视频里面,但出来的效果很是杂乱,导致视频的声音听起来非常嘈杂,影响到了听感和观感,但是又找不到歌曲的 ...

  6. 机器学习中特征选择怎么做?这篇文章告诉你

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 来源 | AI开发者 简  介 据<福布斯>报道,每天大约会有 250 万 ...

  7. 这篇文章告诉你装饰器模式及其在Java IO类和MyBatis中的应用

    装饰器(Decorator)模式:指不改变现有对象结构的情况下,动态地给该对象增加额外功能. 一.装饰器模式介绍 装饰器模式允许向一个现有的对象添加新的功能,同时不改变其结果.比如Java 中的IO框 ...

  8. 什么软件可以提取视频中的音频?看完这篇文章你就知道了

    随着短视频行业的发展,很多小伙伴每天都离不开刷短视频,那你有没有遇到过这样的情况:一个视频中有一首好听的背景音乐,但是在其它地方又找不到下载渠道,只能将视频中的背景音乐给提取出来.那么要怎么样才能快速 ...

  9. 怎么提取音频中的文字?这篇文章告诉你

    在平时学习中,我们经常会先把老师说的重点先用录音机录下,过后我们再把音频文件中的文字提取出来.那么我们怎么提取文字内容呢?只有合理的使用音频转换工具,才能快速的提高我们的工作效率,下面就让我来告诉你怎 ...

  10. 你心目中最难忘的侯捷老师的文章有哪些???

    作者:武龙飞 链接:https://www.zhihu.com/question/30354267/answer/47765817 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

最新文章

  1. 鸡啄米vc++2010系列32(标签控件Tab Control 下)
  2. Nginx - request_time和upstream_response_time的区别
  3. [转载]ASP.NET Core文件上传与下载(多种上传方式)
  4. 运行pythonp 提示:please select a valid interpreter(亲测)
  5. 高性能、低成本的高防 IP 产品能现实吗?
  6. STM32之通用定时器输出比较模式
  7. 7 SD配置-企业结构-定义-定义信贷控制范围
  8. javaweb框架--自定义标签与freemaker结合
  9. 使用LIstView和自定义Adapter完成列表信息显示
  10. 方差(Variance)和标准差(Standard Deviation)
  11. 我对Backbone的认识
  12. 卡通漫画Photobacks Cartoon 2.0 PS扩展面板汉化版 支持CC2019
  13. 计算机数字键盘如何用,电脑小数字键盘不能使用的原因和解决方法
  14. 安装arm_qt交叉编译环境(亲测有效)
  15. Spring Boot 接口数据加解密就该这样设计~
  16. 抢票(python)
  17. windows下php连接Oracle配置
  18. 怎样输入字符型数据技巧
  19. 系列 | 数仓实践第三篇NO.3『拉链表』
  20. 5.2-国内知识图谱相关企业和资源

热门文章

  1. 洛谷P2023 [AHOI2009]维护序列
  2. 关于jquery获取单选框value属性值为on的问题
  3. [Python3] 初识py, 一个简单练手的小玩意. 快递查询
  4. 教你如何使用for循环来做一些小图案
  5. [BZOJ1415]聪聪和可可
  6. UNITY自带的3D object没有三角形?
  7. [原]逆向iOS SDK -- “添加本地通知”的流程分析
  8. 18107 校赛排名
  9. HTML5SVG 游戏开发 【起航】
  10. 纯JS日历控件自动输入日期到TextBox、文本框当中