【NLP】Sentence-T5|谷歌提出文本表示新SOTA

机器学习初学者

共 1283字,需浏览 3分钟

 ·

2021-08-29 10:40

卷友们好,我是rumor。

又出新SOTA了。

每个新SOTA,都意味着下一位要卷得更辛苦、调得更猛烈一些。

而这个SOTA还出在我一直关注的文本表示赛道。

这次谷歌用了T5,把STS的平均分从82.52提到了83.34

题目:Sentence-T5: Scalable Sentence Encoders from Pre-trained Text-to-Text Models
地址:https://arxiv.org/abs/2108.08877

模型结构

乍一看题目还是蛮期待的,用T5做文本表示,会不会玩出什么花来?不过读了之后有些略微调低期望,这篇文章提出了三种从T5拿文本表示的方法:

  1. 直接拿encoder输出的第一个token表示,类似CLS,但由于T5在训练时就没有CLS,实验下来效果不好就去掉了
  2. 直接拿encoder输出的mean pooling,实验下来发现这个最好,不精调的时候也比BERT的好很多,作者分析是T5更多的训练数据+预训练时加了下游任务
  3. 拿decoder的第一个输出,直接用不太好,但精调后还可以,作者分析是这个相当于加了attention pooling

有监督Loss

精调时采用了双塔结构,比以往不同的是多加了一层投影和L2-Norm。

在精调时参考了对比学习的NT-Xent loss,但输入的都是有监督数据(不用对比学习的数据增强了,直接输入有标注的正负样本)。

同时提出了tow-stage的精调:先用网上挖掘的20亿弱监督QA对精调,再用NLI精调(entailment=1,contradict=0)。

实验结果

除了在STS上对比之外,还在SentEval上进行了实验(给表示加一个分类器,测试embedding迁移到下游任务的效果):

最终加了其他数据的Sentence-T5以不到1个点的微弱优势登上SOTA。

同时作者验证了尺寸越大效果越好:

总结

看得出来我这篇文章写得不是很快乐,主要是感觉新意比较有限,懒穷的我可能也不会去挖20亿的数据,也没有卡去跑更大的模型。

不过!还是有几点启发可以分享一下:

  1. 作者加了Proj&Norm层但是没有做消融实验,这个对效果究竟有多少影响呢?
  2. 作者在对比loss上的temperature=100,之前无监督对比学习的T都很小,这是为什么呢?
  3. 最近一直在想prompt learning怎么用来做文本表示,而T5天生就契合prompt,既然作者证实了decoder精调后是可以用的,那是不是。。。


往期精彩回顾




本站qq群851320808,加入微信群请扫码:
浏览 38
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报