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

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


作者信息

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论文解读

专辑 | 情感分析


整理不易,还望给个在看!
  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值