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


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

作者信息

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

  要说自然语言处理在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)点击页面最上方深度学习自然语言处理”,进入公众号主页。

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

感谢支持,比心

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

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

记得备注呦

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

参考资料

  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.

【BERT】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. Silverlight 5 RC新特性探索系列:12.Silverlight 5 RC 窗口模式下访问自定义DLL和WIN32 API...
  2. OpenCV的HSV空间度量与标准HSV不一样,使用的时候需要换算;另附一个调色取色的小工具
  3. java分析日志文件_java程序如何对监控软件的日志文件进行如下分析?
  4. 愿只有一个Grid Layout
  5. 图论相关算法理解和总结
  6. Android 给按钮绑定事件
  7. 【python】人机大战
  8. 北大计算机基础与应用,北大16秋《计算机基础与应用-第六组》在线作业
  9. java线程wait_Java 并发编程:线程间的协作(wait/notify/sleep/yield/join)
  10. 程序算法面试 题目汇总 算法题 推理题 规律题
  11. 阿里、腾讯、华为人力资源体系
  12. so反编译为c语言,SO文件反汇编实践
  13. 转不撞南墙不回头——树规总结
  14. 为什么计算机二级未来教育评分低,未来教育计算机Msoffice二级, PPT评分总是说文件不存在, 分数总是0分, 到底是为什么?...
  15. application.properties详解 --springBoot配置文件
  16. 文悦古体仿宋字体官方版
  17. 什么是stub文件_stub code
  18. biopython:1:biopython的安装
  19. 上海市出租车预约叫车和投诉电话一览
  20. 颠覆麦肯锡、BCG,这家公司的AI商业决策系统能做到吗?

热门文章

  1. [csp-201809-4]再卖菜 差分约束or记忆化搜索
  2. Hive_Hive的数据模型_分区表
  3. 月经贴:当落魄的.NET基佬遇上不可一世的JAVA派 developer
  4. Google推出免费公共域名解析DNS服务
  5. c++冒泡排序的类模板的实现
  6. 【节流】在vue的搜寻功能中使用节流
  7. 20190816 On Java8 第六章 初始化和清理
  8. luogu2668 luogu2540 斗地主(以及增强版)
  9. Selenium之Action Chains类
  10. PS把一张白纸里的黑色图形抠出来