数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- CNN:图像分类
- 循环神经网络 RNN
- Transformer
- 一、Transformer [2017]
- 二、Universal Transformer [2018]
- 三、Transformer-XL [2019]
- 四、GPT1 [2018]
- 五、GPT2 [2019]
- 六、GPT3 [2020]
- 七、OPT [2022]
- 八、BERT [2018]
- 九、XLNet [2019]
- 十、RoBERTa [2019]
- 十一、ERNIE 1.0 [2019]
- 十二、ERNIE 2.0 [2019]
- 十三、ERNIE 3.0 [2021]
- 十四、ERNIE-Huawei [2019]
- 十五、MT-DNN [2019]
- 十六、BART [2019]
- 十七、mBART [2020]
- 十八、SpanBERT [2019]
- 十九、ALBERT [2019]
- 二十、UniLM [2019]
- 二十一、MASS [2019]
- 二十二、MacBERT [2019]
- 二十三、Fine-Tuning Language Models from Human Preferences [2019]
- 二十四 Learning to summarize from human feedback [2020]
- 二十五、InstructGPT [2022]
- 二十六、T5 [2020]
- 二十七、mT5 [2020]
- 二十八、ExT5 [2021]
- 二十九、Muppet [2021]
- 三十、Self-Attention with Relative Position Representations [2018]
- 三十一、USE [2018]
- 三十二、Sentence-BERT [2019]
- 三十三、SimCSE [2021]
- 三十四、BERT-Flow [2020]
- 三十五、BERT-Whitening [2021]
- 三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings [2019]
- 三十七、CERT [2020]
- 三十八、DeCLUTR [2020]
- 三十九、CLEAR [2020]
- 四十、ConSERT [2021]
- 四十一、Sentence-T5 [2021]
- 四十二、ULMFiT [2018]
- 四十三、Scaling Laws for Neural Language Models [2020]
- 四十四、Chinchilla [2022]
- 四十七、GLM-130B [2022]
- 四十八、GPT-NeoX-20B [2022]
- 四十九、Bloom [2022]
- 五十、PaLM [2022] (粗读)
- 五十一、PaLM2 [2023](粗读)
- 五十二、Self-Instruct [2022]
- 句子向量
- 词向量
- 传统CTR 预估模型
- CTR 预估模型
- 一、DSSM [2013]
- 二、FNN [2016]
- 三、PNN [2016]
- 四、DeepCrossing [2016]
- 五、Wide 和 Deep [2016]
- 六、DCN [2017]
- 七、DeepFM [2017]
- 八、NFM [2017]
- 九、AFM [2017]
- 十、xDeepFM [2018]
- 十一、ESMM [2018]
- 十二、DIN [2017]
- 十三、DIEN [2019]
- 十四、DSIN [2019]
- 十五、DICM [2017]
- 十六、DeepMCP [2019]
- 十七、MIMN [2019]
- 十八、DMR [2020]
- 十九、MiNet [2020]
- 二十、DSTN [2019]
- 二十一、BST [2019]
- 二十二、SIM [2020]
- 二十三、ESM2 [2019]
- 二十四、MV-DNN [2015]
- 二十五、CAN [2020]
- 二十六、AutoInt [2018]
- 二十七、Fi-GNN [2019]
- 二十八、FwFM [2018]
- 二十九、FM2 [2021]
- 三十、FiBiNET [2019]
- 三十一、AutoFIS [2020]
- 三十三、AFN [2020]
- 三十四、FGCNN [2019]
- 三十五、AutoCross [2019]
- 三十六、InterHAt [2020]
- 三十七、xDeepInt [2023]
- 三十九、AutoDis [2021]
- 四十、MDE [2020]
- 四十一、NIS [2020]
- 四十二、AutoEmb [2020]
- 四十三、AutoDim [2021]
- 四十四、PEP [2021]
- 四十五、DeepLight [2021]
- 图的表达
- 一、DeepWalk [2014]
- 二、LINE [2015]
- 三、GraRep [2015]
- 四、TADW [2015]
- 五、DNGR [2016]
- 六、Node2Vec [2016]
- 七、WALKLETS [2016]
- 八、SDNE [2016]
- 九、CANE [2017]
- 十、EOE [2017]
- 十一、metapath2vec [2017]
- 十二、GraphGAN [2018]
- 十三、struc2vec [2017]
- 十四、GraphWave [2018]
- 十五、NetMF [2017]
- 十六、NetSMF [2019]
- 十七、PTE [2015]
- 十八、HNE [2015]
- 十九、AANE [2017]
- 二十、LANE [2017]
- 二十一、MVE [2017]
- 二十二、PMNE [2017]
- 二十三、ANRL [2018]
- 二十四、DANE [2018]
- 二十五、HERec [2018]
- 二十六、GATNE [2019]
- 二十七、MNE [2018]
- 二十八、MVN2VEC [2018]
- 二十九、SNE [2018]
- 三十、ProNE [2019]
- Graph Embedding 综述
- 图神经网络
- 一、GNN [2009]
- 二、Spectral Networks 和 Deep Locally Connected Networks [2013]
- 三、Fast Localized Spectral Filtering On Graph [2016]
- 四、GCN [2016]
- 五、神经图指纹 [2015]
- 六、GGS-NN [2016]
- 七、PATCHY-SAN [2016]
- 八、GraphSAGE [2017]
- 九、GAT [2017]
- 十、R-GCN [2017]
- 十一、 AGCN [2018]
- 十二、FastGCN [2018]
- 十三、PinSage [2018]
- 十四、GCMC [2017]
- 十五、JK-Net [2018]
- 十六、PPNP [2018]
- 十七、VRGCN [2017]
- 十八、ClusterGCN [2019]
- 十九、LDS-GNN [2019]
- 二十、DIAL-GNN [2019]
- 二十一、HAN [2019]
- 二十二、HetGNN [2019]
- 二十三、HGT [2020]
- 二十四、GPT-GNN [2020]
- 二十五、Geom-GCN [2020]
- 二十六、Graph Network [2018]
- 二十七、GIN [2019]
- 二十八、MPNN [2017]
- 二十九、UniMP [2020]
- 三十、Correct and Smooth [2020]
- 三十一、LGCN [2018]
- 三十二、DGCNN [2018]
- 三十三、AS-GCN
- 三十四、DGI [2018]
- 三十五、DIFFPOLL [2018]
- 三十六、DCNN [2016]
- 三十七、IN [2016]
- 图神经网络 2
- 图神经网络 3
- 推荐算法(传统方法)
- 一、Tapestry [1992]
- 二、GroupLens [1994]
- 三、ItemBased CF [2001]
- 四、Amazon I-2-I CF [2003]
- 五、Slope One Rating-Based CF [2005]
- 六、Bipartite Network Projection [2007]
- 七、Implicit Feedback CF [2008]
- 八、PMF [2008]
- 九、SVD++ [2008]
- 十、MMMF 扩展 [2008]
- 十一、OCCF [2008]
- 十二、BPR [2009]
- 十三、MF for RS [2009]
- 十四、 Netflix BellKor Solution [2009]
- 推荐算法(神经网络方法 1)
- 一、MIND [2019](用于召回)
- 二、DNN For YouTube [2016]
- 三、Recommending What Video to Watch Next [2019]
- 四、ESAM [2020]
- 五、Facebook Embedding Based Retrieval [2020](用于检索)
- 六、Airbnb Search Ranking [2018]
- 七、MOBIUS [2019](用于召回)
- 八、TDM [2018](用于检索)
- 九、DR [2020](用于检索)
- 十、JTM [2019](用于检索)
- 十一、Pinterest Recommender System [2017]
- 十二、DLRM [2019]
- 十三、Applying Deep Learning To Airbnb Search [2018]
- 十四、Improving Deep Learning For Airbnb Search [2020]
- 十五、HOP-Rec [2018]
- 十六、NCF [2017]
- 十七、NGCF [2019]
- 十八、LightGCN [2020]
- 十九、Sampling-Bias-Corrected Neural Modeling [2019](检索)
- 二十、EGES [2018](Matching 阶段)
- 二十一、SDM [2019](Matching 阶段)
- 二十二、COLD [2020 ] (Pre-Ranking 模型)
- 二十三、ComiRec [2020](https://www.wenjiangs.com/doc/0b4e1736-ac78)
- 二十四、EdgeRec [2020]
- 二十五、DPSR [2020](检索)
- 二十六、PDN [2021](mathcing)
- 二十七、时空周期兴趣学习网络ST-PIL [2021]
- 推荐算法之序列推荐
- 一、FPMC [2010]
- 二、GRU4Rec [2015]
- 三、HRM [2015]
- 四、DREAM [2016]
- 五、Improved GRU4Rec [2016]
- 六、NARM [2017]
- 七、HRNN [2017]
- 八、RRN [2017]
- 九、Caser [2018]
- 十、p-RNN [2016]
- 十一、GRU4Rec Top-k Gains [2018]
- 十二、SASRec [2018]
- 十三、RUM [2018]
- 十四、SHAN [2018]
- 十五、Phased LSTM [2016]
- 十六、Time-LSTM [2017]
- 十七、STAMP [2018]
- 十八、Latent Cross [2018]
- 十九、CSRM [2019]
- 二十、SR-GNN [2019]
- 二十一、GC-SAN [2019]
- 二十二、BERT4Rec [2019]
- 二十三、MCPRN [2019]
- 二十四、RepeatNet [2019]
- 二十五、LINet(2019)
- 二十六、NextItNet [2019]
- 二十七、GCE-GNN [2020]
- 二十八、LESSR [2020]
- 二十九、HyperRec [2020]
- 三十、DHCN [2021]
- 三十一、TiSASRec [2020]
- 推荐算法(综述)
- 多任务学习
- 系统架构
- 实践方法论
- 深度强化学习 1
- 自动代码生成
工具
- CRF
- lightgbm
- xgboost
- scikit-learn
- spark
- numpy
- matplotlib
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
四十一、Sentence-T5 [2021]
句子嵌入
entence embedding
提供了紧凑的有意义的representation
,对各种语言处理任务有广泛的帮助,包括分类classification
、问答question-answering
、语义检索semantic retrieval
、bitext mining
和语义相似性semantic similarity
等任务。 最近的工作表明,扩大模型参数、以及利用预训练模型是提高性能的两种有效方法。论文
《Sentence-T5: Scalable Sentence Encoders from Pre-trained Text-to-Text Models》
从一个预训练的Text-to-Text Transfer Transformer: T5
模型中探索sentence embedding
。encoder-only model
仅使用transformer encoder
来预测随机掩码的token
,而T5
使用encoder-decoder
架构和generative span corruption pre-training task
。T5
模型可以扩展到数千亿个参数,并在广泛的NLP
任务上取得了SOTA
的性能,包括GLUE
和Super-GLUE
。然而,很难将T5
有效地应用于某些任务,如检索或聚类。为了给retrieval candidate
打分,T5
需要对每个query-candidate pair
进行带cross-attention
的full inference
。相比之下,sentence embedding
可以实现高效的检索和聚类。如下图所示,论文探索了将
pre-trained T5 encoder-decoder model
变成sentence embedding model
的三种方式:使用编码器的
first token representation
。将编码器的
all token representations
取平均。使用解码器的
first token representation
。
论文在
sentence transfer
任务上(使用SentEval
)、以及语义文本相似性semantic textual similarity: STS
任务上评估所得的sentence embedding
的质量。论文将来自pre-trained T5 model
的原始representation
与通过微调的representation
进行对比(在natural language inference: NLI
和Retrieval Question-Answering: ReQA
上使用双编码器和对比学习进行微调)。论文介绍了一个多阶段的对比学习方法:首先在ReQA
上进行微调,然后在NLI
上进行微调。最后,论文研究了将T5 sentence embedding model
扩展到11B
参数。如下图所示,transfer
任务和STS
任务都随着模型容量的增加而提高。论文将所提出的模型命名为Sentence T5: ST5
。据作者所知,该论文是第一个研究使用大规模
pre-trained text-to-text model
进行sentence representation learning
,并将sentence embedding model
扩展到11B
个参数。论文贡献如下:
即使没有微调,仅有编码器的
ST5
模型在sentence transfer
任务上表现良好,超过了SOTA
的微调模型,如SimCSE-BERT
和SimCSE-RoBERTa
。encoder-decoder sentence embedding model
在STS
上取得了强大的性能,建立了sentence embedding based STS
的新的SOTA
。对比学习
contrastive learning
对于从T5-style pre-trained model
中微调句子编码器是有效的,特别是使用论文提出的两阶段对比学习方法。使用对比损失
contrastive loss
训练ST5
更长的时间和更多的数据,导致在sentence transfer
和STS
任务上的一致改进。创建一个新的
sentence representation transfer benchmark
,即"SentGLUE"
,它将sentence evaluation toolkit
扩展到GLUE benchmark
的九个任务,并在SentGLUE
上评估ST5
和其他的SOTA
模型,从而比较它们在这些挑战性任务上的transfer
性能。
41.1 模型
T5
:Text-to-Text transfer transformers: T5
如Figure 2(a)
所示,由一个encoder-decoder transformer model
组成,在一个无监督的span corruption task
上进行预训练。虽然T5
已经成功应用于众多NLP
任务,但如何从T5
中提取高质量的text representation
仍未被探索。ST5
的模型架构:我们探索了三种策略从T5
中抽取sentence representation
,如Figure 2
的(b)
到(d)
所示:Encoder-only first (ST5-Enc first)
:将第一个token
在encoder
上的输出作为sentence embedding
。Encoder-only mean (ST5-Enc mean)
:将所有token
在encoder
上的输出的平均值作为sentence embedding
。Encoder-Decoder first (ST5-EncDec first)
:decoder output
的第一个位置作为sentence embedding
。为了获得decoder output
,将input text
馈入编码器,并将标准的"start" symbol
作为first decoder input
。
前两个是广泛用于
encoder-only pre-trained model
(如BERT
)中的池化策略。与BERT
模型不同,T5
模型在每个句子的开头没有CLS token
。对于T5 encoder-decoder model
,我们假设解码器在生成它的first token prediction
时知道整个input sentence
的语义。如果是这样,first decoder output embedding
(即softmax layer
的input
)可能会自然地捕获到句子语义。对于
sentence encoder
的训练,我们采用双编码器dual encoder
架构。如下图所示,该架构由两个共享权重的transformer
模块(用于对输入进行编码)组成。transformer
模块可以是一个encoder-only
架构、或encoder-decoder
架构。在我们的实验中,我们从pre-trained T5 model
中初始化transformer
模块。在每个模块为其
input sentence,
计算出一个固定维度的representation
后,我们应用投影层projection layer
和L2 normalization
来作用到所得到的embedding
之上。投影层将output
转换为指定维度(即sentence embedding size
)。来自paired encoding tower
的embeddings
可以使用内积为相似性任务打分,或者作为输入提供给额外的层从而用于pairwise classification
任务(如NLI
)。注:这里是双编码器架构,但是实际上也可以包含解码器,即
ST5 Encoder-Decoder
。对比学习
Contrastive Learning
:将对比学习应用于sentence embedding
,可以提高embeddings space
的均匀性uniformity
,从而在下游任务(如STS
)中获得更好的表现(《SimCSE: Simple contrastive learning of sentence embeddings》
)。我们应用对比学习来微调T5 sentence representation
。注:在初步实验中,我们还探索了用
InferSent
和SBERT
中使用的classification loss
进行微调。然而,我们发现在NLI
数据集上针对分类任务的微调不如对比学习,如SimCSE
所报告的那样。Contrastive Loss
:使用对比损失来训练一个sentence encoder
需要paired examples
$ \mathcal D = \{v_i,v_i^+\} $ 作为训练集,其中 $ v_i $ 是一个输入句子, $ v_i^+ $ 是一个相关的句子(例如,在语义上接近)。在训练过程中, $ v_i^+ $ 被认为是 $ v_i $ 的正样本,batch
中的所有其他样本认为是负样本。模型应该学会将正样本拉到input example
附近,同时将负样本推开。我们使用in-batch sampled softmax
来计算我们的对比损失:其中:
sim()
是相似度评分函数, $ \mathcal B $ 是一个mini-batch
的样本, $ \tau $ 是softmax
温度。当为
input example
$ v $ 提供了额外的负样本 $ v_j^- $ 时,损失函数可以修改为:两阶段训练:为了研究额外的训练数据的效果,我们探索了两阶段的训练:
首先在
Community QA
网站挖掘的问答数据上进行微调。这个阶段的对比学习不包含额外的负样本。
然后,在带有人类标注的
NLI
标签的sentence pair
上对模型进行微调。这个阶段的对比学习包含额外的负样本。注意,虽然
NLI
有类别标签,但是这里并不是用分类任务进行微调,而是用对比学习进行微调。
41.2 实验
训练数据:我们使用两个数据集从而用于两阶段的训练:
第一个阶段使用
community QA
网站收集到的2B
个question-answers pair
。在训练期间,相关的答案被认为是每个输入问题的正样本。community QA
的数据量有二十亿,远远超过了NLI
数据集。第二个阶段使用
NLI
数据集的contrastive
版本(遵从SimCSE
),其中包含275K
个样本,正样本是entailment hypothesis and premise pair
、负样本是contradict hypothesis and premise pair
。
评估:我们使用
SentEval
进行评估,其中包括7
个transfer
任务和7
个STS
任务:transfer
任务:通过将sentence embedding
作为特征,从而考察线性分类模型的表现来评估sentence embedding model
的效果。STS
任务:通过sentence embedding
的余弦相似性,与人类标注的相似性分数之间的相关性来评估sentence embedding model
的效果。
配置:
我们的模型是用
JAX
实现的,并在Cloud TPU-v8
上训练。我们从public T5 checkpoint
初始化双编码器模块。在训练期间,我们使用
Adafactor
优化器,并将学习率设置为0.001
。在训练总步数的10%
之后对学习率应用线性衰减,使得在训练结束时将学习率降至0
。在
NLI
的微调时,我们使用batch size = 512
;在Community QA
数据集上微调时,我们使用batch size = 2048
。我们使用
softmax
温度 $ \tau = 0.01 $ 。
实验旨在回答以下问题:
Q1
:从T5
中提取sentence representation
的最佳方式是什么?Q2
:raw T5 sentence embedding
在下游任务中的表现如何?Q3
:contrastive sentence embedding
任务(如NLI
、QA
)对T5 sentence embedding
的改善程度如何?Q4
:我们能否从扩大模型容量以获得更好的sentence representation
中获益?
带着这些目标,我们使用各种模型和训练配置研究
T5 sentence embedding
在transfer
任务和STS
任务上的性能,将ST5
与SOTA
方法进行比较,包括SBERT/SRoBERTa
和SimCSE
。
41.2.1 Raw T5 Sentence Embeddings
我们首先评估没有微调的
T5 sentence embedding
。我们评估了所有三种策略:Encoder-only first token
、Encoder-only mean
、Encoder-decoder start token
。在所有的实验中,我们直接使用T5 transformer
的encoder output
或decoder output
,而不做任何投影。这使我们能够充分利用pre-trained model
的embedding
能力。transfer
任务:在transfer
任务中使用raw embedding
的ST5
模型的结果显示在下表的第3-5
行。与
BERT
不同,T5
的first token
(无论是编码器还是解码器)并不是一个特殊的占位符(即CLS
),也没有特定的预训练任务使用第一个token
的embedding
。因此,如果不进行额外的微调,first token
的representation
不太可能捕获到整个句子的语义。事实上,我们的实验表明,在所有的
SentEval
任务中,来自编码器或解码器的first token
的representation
,与encoder-only model
的均值池化相比要差很多。当在
T5 encoder output
上应用均值池化时(下表中的第四行),它大大超过了BERT
的average embeddings
。值得注意的是,即使没有微调,T5
的encoder-only outputs
的average embeddings
也优于SimCSE-RoBERTa
,后者在NLI
数据集上进行了微调。这可能是由于
T5
是在更多的数据上训练的。原始的T5
模型在预训练时还包括下游任务(如GLUE
、SuperGLUE
),这种多任务设置可能会提高transfer
性能。然而我们注意到,GLUE
中只包含了两个SentEval
任务(SST
和MRPC
),而我们本次评估中的剩余五个任务则没有包含在GLUE
中。如下表所示,我们观察到,未包括在GLUE
中的其它五个任务都有明显的改进。
STS
任务:相比之下,我们观察到使用raw T5 sentence embedding
的STS
任务的结果很弱,如下表的第3-5
行所示。T5 embedding
的均值池化实现了55.97
的平均STS
得分,略好于BERT
的均值池化,但仍然比在监督任务上进行微调的模型差得多。这类似于其他pre-trained language models
(如BERT
、RoBERTa
) 关于contextual embedding
的各向异性现象的发现结果(《SimCSE: Simple contrastive learning of sentence embeddings》
)。embedding collapse
阻止了该模型在与距离有关的指标上的良好表现。
41.2.2 Fine-Tuning T5 Sentence Embeddings
接下来,我们从
pre-trained T5 model
开始,用我们在NLI
任务上采用对比损失来微调的ST5
模型进行评估。鉴于encoder only mean pooling
的表现比first token
的表现好得多,我们选择在微调ST5
模型时放弃first token
的版本。Table 2
的最后四行显示,微调之后,不同的embedding
生成策略中,ST5
模型的transfer
性能非常一致。最好的fine-tuned model
比最好的raw T5 sentence embedding
要好0.57
。在
Table 3
的最后四行中,我们看到在NLI
数据集上微调的ST5
与没有微调的ST5
相比,显著提高了STS
任务的性能。这支持了对比学习能有效缓解T5-style model
的embedding collapse
的说法。为了研究额外的训练数据对
contrastive learning
的影响,我们先用ST5
模型在Community QA
上训练,然后在NLI
上进行微调。如Table 2
和Table 3
所示,在额外的数据集上进行微调后,transfer
和STS
任务的性能都有很大的提升。这表明,对于continued contrastive learning
,我们可能能够通过挖掘额外的半结构化数据来进一步提高sentence embedding
的质量。为了排除下游任务的
mixing
的影响,我们还基于T5 1.1
模型(T5 1.1
仅在C4
数据集上进行了预训练)训练了一个ST5
变体。如Table 2
和Table 3
的最后一行所示,它取得了与原始T5
模型相当的性能,在大多数任务上表现出色,但在STS
上表现不佳。
41.2.3 Encoder-only vs. Encoder-decoder
这里我们比较了两种架构的性能:
encoder-only
、encoder-decoder
。T5
的编码器有更好的泛化性:在Table 2
中,我们看到encoder-only Base model
在transfer
任务上的表现与encoder-decoder model
相当。当我们将ST5
模型从Base model
扩展到Large model
、3B model
和11B model
时,如下表所示,encoder-only model
在transfer
任务上的表现始终优于encoder-decoder model
。这表明,在T5
的编码器之上构建ST5
,可以获得强大的transfer
性能。最近,
《Rethinking embedding coupling in pre-trained language models》
表明,更大的output embedding
(即更大的嵌embedding size
)有效地防止了编码器对预训练任务的over-specializing
,从而使编码器的representation
更通用、更transferable
。我们假设,encoder-decoder
架构中的decoder
可以以类似的方式提高encoder
的representation
的通用性,因为decoder
专注于为特定任务进行优化。encoder-decoder model
在这里表现不佳的主要原因是:这里仅仅用到decoder
的first output
。解码器的有效性:在
Table 3
的最后两行,我们观察到encoder-decoder
架构在所有STS
任务中的表现都优于encoder-only model
。随着我们扩大ST5
模型的规模,我们也观察到STS
任务上的改进。如Table 5
所示,ST5 encoder-decoder Large model
优于SOTA
的模型SimCSE-RoBERTa_Large
,将Spearman
相关系数分从83.76
提高到84.11
。一种解释是,来自解码器的额外参数有助于改善文本相似性任务。
另一种可能是,解码器结构本身有助于提高
sentence embedding
质量。如Figure 2(d)
所示,解码器可以被看作是encoder outputs
之上的一个额外的attention pooling layer
。 由于解码器的权重是从pretrained T5 model
中提取的,解码器可能会学习一种更好的方法,在encoder outputs
上增加attention pooling
,而不是mean pooling
。此时需要监督信息来训练这个
attention pooling layer
(即,解码器),这就是CommQA + NLI
微调的作用。
41.2.4 Scaling up Sentence T5
我们利用
large T5 model
的现有checkpoint
来研究scaling sentence encoder
的效果。T5
模型的参数规模如下表所示。注意,ST5-EncDec
并没有完全利用模型的参数:解码器学到的self-attention
实际上被忽略了,因为只有start token
被馈入解码器。直接使用
T5 Embedding
的效果:如Table 5
所示:随着
T5
规模的扩大,直接使用T5 embedding
的transfer
任务的性能持续提高。这印证了large pre-trained model
可以提高sentence embedding
的transfer
性能。另一方面,仅仅增加模型容量并不足以缓解
embedding collapse
的情况。即使是来自T5 11B
模型的embedding
,在STS
任务上的表现仍然比fine-tuned model
更差。一个原因是,
T5
的pre-training span corruption task
并不要求模型避免各向异性(例如,通过使用contrastive loss
或正则化)。这突出了选择与similarity/retrieval
性能目标一致的微调任务的重要性。
改善
ST5 Fine-tuning
:如Table 5
所示:我们发现,扩大模型容量会使所有下游任务的性能持续提高。
对于
ST5 11B
模型,encoder-only model
在transfer
任务上取得了91.08
分的平均分,优于ST5 Large
模型的90.45
分。对于
ST5 11B
模型,encoder-decoder model
将STS
得分推高到84.94
,也超过了ST5 Large
模型。
这激励我们探索更大的模型规模,以实现更好的
sentence embedding
质量。对于
STS
任务,我们观察到,从3B
到11B
的性能增益,要比从Large
到3B
的增益更小。这可能是由于在我们的实验中,所有模型的embedding size
是固定的。一个潜在的探索是为更大的模型增加sentence embedding size
,以充分利用模型的能力。我们进一步计算
《Understanding contrastive representation learning through alignment and uniformity on the hypersphere》
中定义的alignment loss
和uniformity loss
,以衡量sentence embedding
的质量:其中:
$ p_\text{pos} $ 是所有positive data
的分布 , $ p_\text{data} $ 是所有数据的分布, $ \mathcal L_\text{align} $ 表示positive pairs
的embedding
之间的期望距离, $ \mathcal L_\text{uniform} $ 表示embedding
分布的均匀程度。对于这两种损失,数字越小说明性能越好。如下图所示,当模型规模扩大时,
encoder model
和encoder-decoder model
都减少了uniformity loss
,而alignment loss
只略有增加。我们试图研究更大的模型规模、更多的训练数据对更好的
sentence embedding
的影响是否是叠加的。如Table 5
最后两行所示,当扩大到Large
和3B
时,ST5
通过在NNLI
之外的Community QA
数据集上训练,进一步改善了下游任务。
不同大小的模型的推断速度如下图所示:
41.2.5 SentGLUE Evaluation
这里我们介绍了一个新的
sentence representation transfer benchmark
,即SentGLUE
,它将sentence evaluation toolkit
扩展到GLUE benchmark
中的九个挑战任务,包括:CoLA, SST-2, MRPC, STS-B, QQP, MNLI-m, MNLI-mm, QNLI, RTE
。GLUE benchmark
已被广泛用于测量语言理解模型。GLUE
任务是单个句子或sentence pair
的classification
任务(如NLI
)或相似性任务(如STS
)。GLUE
排行榜上最好的模型是微调的cross-attention model
,如BERT
或T5
。这类模型在微调过程中会改变底层模型的所有参数。对于pairwise
任务,这类模型允许早期融合来自被比较的两个句子的input feature
。对于SentGLUE
,我们引入了一个约束条件,即每个input
都需要独立地编码为一个固定尺寸的embedding space representation
,然后可以被馈入到其他层,以便进行预测。我们认为这最能适应原始SentEval benchmark
的sentence embedding
的精神,也能适应GLUE benchmark
任务。结果如下表所示:
除了
CoLA
和MNLI
任务,ST5-Enc Base
在所有的SentGLUE
任务中都优于SBERT-RoBERTa Base
和SimCSE-RoBERTa Base
。值得注意的是,随着模型规模的扩大,使用
sentence embedding
的总体性能接近T5 base
。考虑到T5 base
利用了sentence pair
之间的full cross-attention
,并在微调过程中调整了模型中的所有参数,这一点非常了不起。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论