超越SimCSE两个多点,Prompt+对比学习的文本表示新SOTA

文章介绍PromptBERT,一种无监督预训练方法,通过Prompt生成句子表示并利用对比学习提升BERT效果。核心在于Prompt消除频率偏差,实验显示Prompt有效且对比学习进一步优化。作者分析了BERT表现不佳的原因和Prompt的优势。
摘要由CSDN通过智能技术生成

每天给你送来NLP技术干货!


来自:李rumor

可能是因为对比学习,今年以来文本表示方向突然就卷起来了,SOTA刷的嗖嗖的,我还停留在我们ConSERT的阶段,结果别人不精调就已经超了。昨天实习同学发了我几篇Open Review上ACL的投稿,其中一篇效果最好的模型,在摘要中写道

Even a non fine-tuned method can outperform the fine-tuned methods like unsupervised ConSERT on STS tasks

好,你厉害,我读还不行吗。

ba4d78182775dae56c86fb986bc2f8b2.png

这篇文章名叫PromptBERT,无监督直接在SimCSE的基础上提了2个多点:

PromptBERT: Improving BERT Sentence Embeddings with Prompts
https://openreview.net/forum?id=7I3KTEhKaAK
a5daf820b9f53611e2a95fea24764405.png

方法的核心思路也比较简单,分为两步

  1. 用Prompt的方式生成句子表示,比如[X] means [MASK][X]是输入句子,[MASK]是输出的表示,用这个当句子表示

  2. 用不同的Prompt模版来生成对比学习的view,继续采用自监督的方式训练

上面两步带来的提升也是相辅相成的,首先加了Prompt之后生成的表示本身就比BERT-flow、BERT-whitening、ConSERT要好:

4bf8b829e6096478816356df6065715f.png

注:OptiPrompt是参数化的prompt,但作者在最终实验用的还是手工prompt

加上对比学习的无监督训练后,效果又又又提升了一些(开头的图),不过从训练目标的消融实验可以猜想,主要提升还是在prompt产生句子表示的方式,而用不同template来对比学习的提升其实有限(第一行SimCSE设置 vs 第二行):

a4601e43e283d3e71a0b6264947c1a51.png

为什么Prompt可以work

上面嗖嗖列了一堆实验结果,其实这篇文章的核心思想就是用Prompt来产生句子表示,那为什么这样产出的表示效果会好呢?

作者认为,原生BERT表现不好主要是因为词语频率、大小写、subword等token导致的bias,而BERT本身各层Transformer都没有纠正这个问题。通过利用prompt,可以更有效地使用BERT各层中的知识,并且用[MASK]来表示embedding的话,可以避免像以前一样做各种token的平均,从而避免了token引入的偏差

为了证明上述猜想,PromptBERT在开头做了不少分析:

  1. 通过实验,显示embedding层甚至比最后一层的表现要好,证明BERT各层对于文本表示任务效率较低

  2. 之前其他工作认为,原生BERT表现差主要是因为表示空间的anisotropy(呈锥形),而anisotropy是由词频这样的偏差引起。但作者通过一些实验,认为anisotropy和bias不是相关的,所以bias的问题仍有待解决

总结

总的来说,Prompt+对比学习的结合方式还是很巧妙的,我之前还想怎么用prompt做表示来着,没想到这样就work了c7603a7786506ffaffa3947e79affc7c.png。另外作者关于anisotropy和bias的实验也比较有启发性,同时在附录里作者通过实验显示,如果不对embedding层和softMax层进行weight tying的话,会很大程度上减少偏差。

不过并没有直接的实验可以表示PromptBERT减少了偏差,另外作者对prompt前期的探索虽然很到位(尝试T5生成的模版、参数化模版),但不知道为啥最后还是选择了人工模版。还有个疑惑是PromptBERT只在base模型上做了实验,而我们都知道prompt是模型越大越好的,一般我看到的prompt论文都是large模型起步,base就取得了这么好的效果还是蛮让人惊讶。


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

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

eb40291f047b21cd902cc422c72fc075.png

记得备注呦

整理不易,还望给个在看!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值