数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings [2019]
传统的
word embedding
是静态的,每个单词都有单个embedding
向量,与上下文无关。这带来了几个问题,最明显的是,一个多义词的所有意义都必须共享相同的representation
。最近的工作,即deep neural language model
(如ELMo
和BERT
),已经成功地创建了contextualized word representation
,word vector
对它们所处在的context
敏感。用contextualized representation
取代static embedding
,在一系列不同的NLP
任务中产生了显著的改善,包括从问答任务到共指消解co-reference resolution
任务。contextualized word representation
的成功表明,尽管只用语言建模任务进行训练,但它们学到了高度transferable
的、task-agnostic
的语言属性。事实上,在frozen contextualized representation
上训练的线性模型可以预测单词的语言属性linguistic property
(例如,part-of-speech tag
),几乎与SOTA
模型一样好。尽管如此,这些representation
仍然没有得到很好的理解:首先,这些
contextualized word representation
到底有多么的contextual
?其次,
BERT
和ELMo
是否有无限多的context-specific representation
可以分配给每个单词,还是说单词基本上是分配到有限数量的word-sense representation
中的一个?
论文
《How Contextual are Contextualized Word Representations? Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings》
通过研究ELMo
、BERT
和GPT-2
的每一层的representation space
的geometry
来回答这个问题。论文的分析产生了一些令人惊讶的发现:在所有三个模型的所有层中,所有单词的
contextualized word representation
都不是各向同性isotropic
的:它们在方向上不是均匀分布的。相反,它们是各向异性anisotropic
的,在向量空间中占据一个狭窄的锥体。GPT-2
最后一层的各向异性是如此的极端,以至于两个随机的单词平均而言会有几乎完美的余弦相似性!鉴于各向同性对static embedding
有理论上的和经验上的好处(《All-but-the-top: Simple and effective postprocessing for word representations》
),contextualized representation
中各向异性的程度令人惊讶。即,
contextualized work embedding
的各向异性。同一单词在不同
context
中的出现具有non-identical vector representations
。在向量相似性被定义为余弦相似性的情况下,同一单词的不同representations
之间在上层中的不相似性更大。这表明,就像LSTM
的上层产生更加task-specific
的representation
一样(《Linguistic knowledge and transferability of contextual representations》
),contextualizing model
的上层产生更加context-specific
的representation
。即,不同层的
contextualization
程度不同,更高层产生更加contextualized
的embedding
。context-specificity
在ELMo
、BERT
和GPT-2
中表现得非常不同:在
ELMo
中,随着上层的context-specificity
增加,同一句子中的单词的representation
越来越相似。在
BERT
中,同一句子中的单词的representation
在上层变得更加不相似,但平均而言仍然比随机采样的单词更加相似。然而在
GPT-2
中,同一句子中的单词的representation
,并不比两个随机采样的单词更加相似。
即,同一个句子中的不同单词,在
ELMo
的更高层中越来越相似、在BERT
的更高层中更加不相似(但是比随机的单词更相似)、在GPT-2
中与随机单词的相似性差不多。在对各向异性的影响进行调整后,平均来说,一个单词的
contextualized representation
中只有不到5%
的方差可以由其第一主成分解释first principal component
。这一点在所有模型的所有layer
上都成立。这表明:contextualized representation
并不对应于有限数量的word-sense representation
,即使在最好的情况下,static embedding
也只是contextualized embedding
的糟糕的替代物。尽管如此,通过提取一个单词的contextualized representation
的first principal component
而创建的static embedding
在许多word vector benchmark
上超越了GloVe embedding
和FastText embedding
。
这些洞察有助于证明为什么使用
contextualized representation
能在许多NLP
任务中带来如此显著的改进。相关工作:
Static Word Embedding
:Skip-gram with negative sampling: SGNS
和GloVe
是生成static word embedding
的最著名的模型之一。虽然在实践中它们迭代式地学习embedding
,但已经理论上证明,它们都隐式地分解了一个word-context matrix
,该矩阵包含co-occurrence statistic
。static word embedding
的一个显著问题是,由于它们为每个单词创建了一个单一的representation
,所以一个多义词的所有意义必须共享单个向量。Contextualized Word Representation
:鉴于static word embedding
的局限性,最近的工作试图创建context-sensitive word representation
。ELMo, BERT, GPT-2
是深度神经语言模型,它们经过微调从而应用于广泛的下游NLP
任务。它们的内部word representation
被称作contextualized word representation
,因为word representation
是整个输入句子的一个函数。 这种方法的成功表明,这些representation
捕获了语言的高度可迁移transferable
的、和任务无关task-agnostic
的属性。ELMo
通过拼接一个双层biLSTM
的internal states
,从而创建每个token
的contextualized representation
。这个双层biLSTM
在双向语言建模任务上训练。相比之下,
BERT
和GPT-2
分别是双向的和单向的transformer-based
的语言模型。12
层的BERT (base, cased)
和12
层的GPT-2
的每个transformer layer
通过关注输入句子的不同部分来创建每个token
的contextualized representation
。
Probing Task
:之前对contextualized word representation
的分析主要限于probing task
。这涉及到训练线性模型来预测单词的句法(例如,part-of-speech tag
)和语义(例如,word relation
)属性。probing
模型的前提是,如果一个简单的线性模型可以被训练来准确预测语言属性,那么representation
需要隐式地编码这一信息。然而这些分析发现,contextualized representation
编码了语义信息和句法信息,但它们无法回答这些representation
有多么地contextual
,以及它们在多大程度上可以被static word embedding
所取代。因此,我们在本文中的工作与大多数对contextualized representation
的剖析明显不同。它更类似于《The strange geometry of skip-gram with negative sampling》
,后者研究了static word embedding space
的几何特性。
36.1 方法
Contextualizing Model
:我们研究的contextualizing model
是ELMo
、BERT
和GPT-2
。我们选择BERT_base
,因为它在层数和维度方面与GPT-2
最具可比性。所有模型都是在各自的语言建模任务中预训练过的。尽管
ELMo
、BERT
和GPT-2
分别有2
、12
和12
个隐藏层,但我们也将每个contextualizing model
的输入层作为其第0
层。这是因为第0
层不是contextualized
的,使其成为比较后续层所做的contextualization
的有用baseline
。数据:为了分析
contextualized word representation
,我们需要input sentence
来馈入我们的pretrained model
。我们的输入数据来自2012-2016
年的SemEval
语义文本相似性任务。我们使用这些数据集是因为它们包含了一些句子,在这些句子中出现了相同的单词但是具有不同的context
。例如,单词"dog"
出现在"A panda dog is running on the road."
和"A dog is trying to get bacon off his back."
。如果一个模型在这两个句子中为"dog"
生成了相同的representation
,我们可以推断出没有contextualization
;反之,如果生成了不同的representation
,我们可以推断出它们在某种程度上被contextualized
。相同的单词出现在不同的
context
中,那么该单词如果具有不同的embedding
,则表示没有contextualized
。利用这些数据集,我们将单词映射到它们出现的
sentence list
、以及它们在这些句子中出现的索引。在我们的分析中,我们不考虑那些出现在少于5
个unique context
中的单词。衡量
Contextuality
:我们用三个不同的指标来衡量一个word representation
的contextual
程度:自相似性self-similarity
、句内相似性intra-sentence similarity
、最大可解释方差maximum explainable variance
。自相似性:令单词
$ w $ 出现在每个句子 $ \{s_1,\cdots,s_n\} $ 中的位置为 $ \{i_1,\cdots,i_n\} $ ,其中 $ w=s_1[i_1]=\cdots,=s_n[i_n] $ 。令 $ f_l(s,i) $ 为一个函数,它将 $ s[i] $ 映射到模型 $ f $ 中第 $ l $ 层的对应的word representation
。单词 $ w $ 在layer
$ l $ 中的自相似性定义为:换句话说,一个单词
$ w $ 在第 $ l $ 层中的自相似性是其在 $ n $ 个unique context
中的contextualized representation
的平均余弦相似度。如果第
$ l $ 层完全不对representation
进行contextualize
,那么 $ \text{SelfSim}_l(w)=1 $ (即,representation
在所有contexts
中都是相同的)。对于
$ w $ 来说,representation
越contextualized
,我们期望它的自相似性就越低。
这里有个前提条件:单词的
context
之间是均匀分布的(而不是集中在某些context
上)。句内相似性:令
$ s $ 为一个序列 $$ ,包含 $ n $ 个单词。句子 $ s $ 在layer
$ l $ 的句内相似性定义为:换句话说,一个句子的句内相似性是其
word representation
和sentence vector
之间的平均余弦相似度,而sentence vector
只是这些word vector
的平均值。如果
$ \text{IntraSim}_l(s) $ 、以及所有的 $ w\in s $ 的 $ \text{SelfSim}_l(w) $ 都很低,那么模型通过如下的方式来contextualize
单词:给每个单词一个context-specific representation
,并且同一个句子中的不同word
具有不同的word representation
。如果
$ \text{IntraSim}_l(s) $ 很高,但是 $ \text{SelfSim}_l(w) $ 很低,这表明同一个句子中的不同word
的representation
之间区别很小,同一个句子中的单词仅仅是通过使其在向量空间中的representation
收敛到一个很小的区域从而实现contextualization
。
最大可解释方差:令
$ [f_l(s_1,i_1),\cdots,f_l(s_n,i_n)]\in \mathbb R^{d\times n} $ 为单词 $ w $ 在第 $ l $ 层的occurrence matrix
, $ d $ 为representation
维度。令 $ \sigma_1,\cdots,\sigma_m $ 为该矩阵的从大到小排列的奇异值singular value
。那么最大可解释方差被定义为: $ \text{MEV}_l(w) $ 是在给定层中, $ w $ 的contextualized representation
中可由其第一主成分解释的方差比例。它为我们提供了一个关于word static embedding
可以在多大程度上取代word contextualized representation
的上限。 $ \text{MEV}_l(w) $ 越接近于0
,static embedding
的replacement
就越差。 $ \text{MEV}_l(w) $ 等于1
,那么static embedding
将是contextualized representation
的完美替代。
针对各向异性
Anisotropy
做调整:在讨论contextuality
时,考虑各向同性isotropy
是很重要的。例如:如果
word vector
是完全各向同性的(即方向均匀),那么 $ \text{SelfSim}_l(w)=0.95 $ 将表明 $ w $ 的representation
被很差地contextualized
。然而,考虑到这样的情况,即
word vector
是如此的各向异性,任何两个单词的平均余弦相似度为0.99
。此时 $ \text{SelfSim}_l(w)=0.95 $ 将表明 $ w $ 的representation
被很好地contextualized
。这是因为 $ w $ 在不同context
中的representation
平均而言比两个随机选择的单词更加不相似。
为了调整各向异性的影响,我们使用了三个
anisotropic baseline
,每个baseline
对应于我们的一个contextuality
指标。对于自相似性和句内相似性,
baseline
来自均匀随机采样的单词在不同context
下的representation
的平均余弦相似度。在一个给定的层中,word representation
的各向异性越大,这个baseline
就越接近于1
。均匀随机采样了两个单词,然后计算它们之间的
embedding
的余弦相似度。采样多次并计算期望值。对于最大可解释方差,
baseline
是均匀随机采样的word representation
中被其第一主成分解释的方差比例。在一个给定的层中,,word representation
的各向异性越大,这个baseline
就越接近于1
。即使是随机采样的单词,主成分也能解释很大一部分的方差。均匀随机采样了一个
word
集合,然后计算它们的embedding
矩阵的第一主成分。采样多次并计算期望值。
由于
contextuality
指标是针对contextualizing model
的每一层计算的,所以我们也为每一层计算单独的baseline
。然后我们从每个指标值中减去其各自的baseline
,得到anisotropy-adjusted contexuality
指标。例如,anisotropy-adjusted
的自相似性为:其中:
$ \mathcal O $ 表示所有的word occurrence
的集合。除非另有说明,本文其余部分中提到的
contextuality
指标是指anisotropy-adjusted
的指标,其中原始指标和基线都是用1K
个均匀随机采样的word representation
估计的。
36.2 实验
(An)Isotropy
:在所有
non-input layers
中,contextualized representation
是各向异性anisotropic
的。如果来自某一层的
word representation
是各向同性isotropic
的(即各方向均匀),那么均匀随机采样的单词之间的平均余弦相似度将是0
(《A simple but tough-to-beat baseline for sentence embeddings》
)。 这个平均余弦相似度越接近于1
,表示各向异性越大。各向异性的几何解释是:
word representation
都在向量空间中占据一个狭窄的锥体,而不是在所有方向上都是均匀的。各向异性越大,这个锥体就越窄(
《The strange geometry of skip-gram with negative sampling》
)。
如下图所示,这意味着在
BERT
、ELMo
和GPT-2
的几乎所有层中,所有单词的representation
都在向量空间中占据一个狭窄的锥体。唯一的例外是ELMo
的input layer
,它产生static character-level embedding
,而不使用contextual
信息甚至positional
信息(《Deep contextualized word representations》
)。然而,应该注意的是,并非所有的
static embedding
都一定是各向同性的:《The strange geometry of skip-gram with negative sampling》
发现,同样是static
的skipgram embedding
并不是各向同性的。contextualized representation
通常在较高的层中更加各向异性。如下图所示,对于
GPT-2
,均匀随机的单词之间的平均余弦相似度在第2
层到第8
层大致为0.6
,但从第8
层到第12
层呈指数级增长。事实上,GPT-2
的最后一层的word representation
是如此的各向异性,以至于任何两个单词的平均余弦相似度几乎都是1.0
。这种模式也适用于
BERT
和ELMo
,不过也有例外:例如,BERT
的倒数第二层的各向异性比最后一层高得多。对于
static word embedding
,各向同性有理论上的和经验上的好处。在理论上,各向同性允许在训练期间进行更强的
"self-normalization"
(《A simple but tough-to-beat baseline for sentence embeddings》
)。而在实践中,从
static word embedding
中减去mean vector
会导致在几个下游NLP
任务上的改进(《All-but-the-top: Simple and effective postprocessing for word representations》
)。
因此,在
contextualized word representation
中看到的极端程度的各向异性是令人惊讶的,特别是在较高的层。如下图所示,对于所有三个模型,contextualized hidden layer representation
几乎都比input layer representation
更加各向异性,而后者没有纳入context
。这表明高度的各向异性是contextualization
过程所固有的,或者至少是contextualization
过程的副产品。
Context-Specificity
:contextualized word representation
在更高的layer
上更加context-specific
。根据定义,在一个给定模型的给定层中,一个单词的
self-similarity
是它在不同context
中的representations
的平均余弦相似度(根据各向异性进行调整)。如果
self-similarity
为1
,那么这些representations
就完全没有context-specific
。如果
self-similarity
为0
,那么这些representations
就具有最大的context-specific
。
在下图中,我们绘制了
BERT
、ELMo
和GPT-2
各层中均匀随机采样的单词的平均self-similarity
。例如,ELMo
的input layer
的自相似度是1.0
,因为该层的representation
是static character-level embedding
。在所有三个模型中,
layer
越高,平均self-similarity
越低。换句话说,layer
越高,contextualized representation
更加context-specific
。这一发现具有直观的意义。在图像分类模型中,lower layer
识别更多的通用特征(如,边缘),而upper layer
识别更加class-specific
的特征(《How transferable are features in deep neural networks?》
)。同样,在NLP
任务上训练的LSTM
的upper layer
会学习更加task-specific
的representation
(《Linguistic knowledge and transferability of contextual representations》
)。因此,由此可见,神经语言模型的upper layer
会学习更加context-specific
的representation
,从而更准确地在给定context
的条件下预测next word
。在所有三个模型中,
GPT-2
的representation
是最context-specific
的,GPT-2
最后一层的representation
几乎是最大化地context-specific
的。停用词
stopword
(如,"the", "of", "to"
)具有最context-specific
的representation
。在所有的层中,
stopwords
的self-similarity
是所有单词中最低的,这意味着它们的contextualized representation
是最context-specific
的。例如,在ELMo
的各层中,平均self-similarity
最低的单词是"and"
、"of"
、"’s"
、"the"
、"to"
。鉴于这些词不是多义词,这相对来说是令人惊讶的。这一发现表明:一个单词所出现的各种context
的variety
,而不是其固有的多义性,是推动其contextualized representation
的variation
的原因。这回答了我们在introduction
章节中提出的一个问题:ELMo
、BERT
和GPT-2
并不是简单地将有限数量的word-sense representation
中的一个分配给每个单词;否则,在具有如此少的word sense
的单词的representation
中就不会有如此多的变化。context-specificity
在ELMo
、BERT
和GPT-2
中的表现非常不同。如前所述,在
ELMo
、BERT
和GPT-2
的upper layers
,contextualized representation
更加context-specific
。然而,这种increased context-specificity
在向量空间中是如何体现的?同一句子中的word representation
是否会收敛到一个点上,或者它们在与其他context
中的representation
不同的同时,仍然保持着彼此之间的不同?为了回答这个问题,我们可以度量一个句子的句内相似度。从定义可以看出,在给定模型的给定层中,一个句子的句内相似性是其每个
word representation
与它们的均值之间的平均余弦相似度,并根据各向异性进行调整。如下图所示,我们绘制了500
个均匀随机采样的句子的平均句内相似度。在
ELMo
中,同一句子中的单词在upper layers
的相似度更高:随着句子中的word representation
在upper layers
变得更加context-specific
,句内相似度也在上升。 这表明,在实践中,ELMo
最终将《A synopsis of linguistic theory》
的分布假说背后的直觉延伸到了sentence level
:因为同一句子中的单词共享相同的context
,它们的contextualized representation
也应该是相似的。在
BERT
中,同一句子中的单词在upper layers
中彼此更加不相似:随着句子中的单词的representation
在upper layers
中变得更加context-specific
,它们彼此渐行渐远,尽管也有例外(见下图中第12
层)。然而,在所有层中,同一句子中的单词的平均相似性仍然大于随机选择的单词的平均相似性(即anisotropy baseline
)。这表明,与ELMo
相比,BERT
有一个更细微的contextualization
,它认识到,虽然周围的句子告知了一个单词的含义,但同一句子中的两个单词不一定有相似的含义。在
GPT-2
中,同一句子中的word representation
并不比随机采样的单词更相似:平均而言,未调整的句内相似度与anisotropy baseline
大致相同,因此从下图中可以看出,在GPT-2
的大多数层中,anisotropy-adjusted
的句内相似度接近于0
。事实上,句内相似度在input layer
中是最高的,该层完全不对单词进行contextualize
。这与ELMo
和BERT
形成了鲜明的对比,ELMo
和BERT
在除了一个层之外的所有其他层的平均句内相似度都高于0.20
。
正如前面讨论
BERT
时指出的,这种行为仍然具有直观的意义:同一个句子中的两个单词不一定有相似的含义,即使它们共享相同的context
。GPT-2
的成功表明,高的句内相似性并不是contextualization
所固有的。同一句子中的不同单词可以有高度contextualized
的representation
,而这些representation
并不比两个随机的word representation
更相似。然而,目前还不清楚这些句内相似性的差异是否可以追溯到模型结构的差异,我们把这个问题留给未来的工作。高度的各向异性是
contextualization
过程所固有的。
Static vs. Contextualized
:平均来说,一个单词的
contextualized representation
中只有不到5%
的方差可以被static embedding
所解释。从定义可以看出,对于给定模型的给定层,一个单词的最大可解释方差(
maximum explainable variance: MEV
)是其contextualized representation
中可由其第一主成分解释的方差的比例。这为我们提供了一个关于static embedding
能多好地取代一个单词的contextualized representation
的上限。 因为contextualized representation
是各向异性的,所有单词的大部分变化都可以由单个向量来解释。我们对原始MEV
针对各向异性进行调整:计算均匀随机采样的word representation
的第一主成分所解释的方差比例,然后从原始MEV
中减去这一比例。在下图中,我们绘制了均匀随机采样的单词上的平均anisotropy-adjusted MEV
。随机采样一个单词,然后计算该单词在指定层上的
MEV
。然后重复这一过程多次,得到平均MEV
。平均而言,在
ELMo
、BERT
或GPT-2
中,没有任何一层可以通过static embedding
来解释超过5%
的word contextualized representation
方差。虽然在下图不可见,但许多单词的原始MEV
实际上低于anisotropy baseline
:也就是说,与单个单词的所有representation
的方差相比,所有单词的representation
的方差有更大的比例可以由单个向量来解释。注意,5%
的阈值代表了最好的情况,而且在理论上不能保证word vector
会与最大化MEV
的static embedding
相似。单个单词的所有
representation
的方差:一个单词在指定层的MEV
;所有单词的representation
的方差:所有单词在指定层的MEV
。这表明,
contextualizing model
并不是简单地将有限数量的word-sense representation
中的一个分配给每个单词,否则,被解释的方差的比例会高得多。ELMo
和BERT
的所有层的平均原始MEV
甚至低于5%
。只有GPT-2
的原始MEV
相对较大,由于极高的各向异性,第2
至11
层的平均MEV
约为30%
。lower layers
的contextualized representation
的主成分在许多benchmark
上优于GloVe
和FastText
。如前所述,我们可以通过在给定层中抽取其
contextualized representation
的第一个主成分(principal component: PC
)来为每个单词创建static embedding
。在下表中,我们绘制了这些PC static embedding
在几个benchmark
任务中的表现。这些任务包括语义相似性semantic similarity
、analogy solving
、concept categorization
:Sim-Lex999
、MEN
、WS353
、RW
、SemEval-2012
、Google analogy solving
、MSR analogy solving
、BLESS
、AP
。我们在下表中不考虑第3 ~ 10
层,因为它们的性能介于第2
层和第11
层之间。表现最好的
PC static embedding
属于BERT
的第一层,尽管BERT
和ELMo
的其他层的embedding
在大多数benchmark
上也优于GloVe
和FastText
。对于所有三个
contextualizing model
,从lower layer
创建的PC static embedding
比从upper layer
创建的更有效。使用
GPT-2
创建的static embedding
也明显比来自ELMo
和BERT
的static embedding
表现更差。GPT-2
创建的static embedding
甚至要比GloVe
和FastText
更差。
鉴于
upper layer
比lower layer
更加context-specific
,而且GPT-2
的representation
比ELMo
和BERT
的更加context-specific
(见Figure 2
),这表明高度context-specific
的representation
的PC static embedding
在传统benchmark
上不那么有效。那些less context-specific representation
(如,来自BERT
第一层的representation
)派生的PC static embedding
,则要有效得多。
未来工作:
首先,正如本文前面所指出的,
《All-but-the-top: Simple and effective postprocessing for word representations》
发现,使static embedding
更加各向同性(通过从每个embedding
中减去其均值),导致下游任务的性能有惊人的改善。鉴于各向同性对static embedding
有好处,它也可能对contextualized word representation
有好处,尽管后者在高度各向异性的情况下已经取得了明显的改善。因此,在language modelling objective
中加入各向异性的惩罚可能会产生更好的结果,如鼓励contextualized representation
更加各向同性。另一个方向是从
contextualized word representation
中生成static word representation
。虽然后者提供了卓越的性能,但在生产中部署像BERT
这样的大型模型,在内存和运行时间方面往往存在挑战。相比之下,static word representation
更容易部署。我们的工作表明,不仅有可能从contextualizing model
中提取static representation
,而且与传统的static embedding
(如GloVe
和FastText
)相比,这些extracted vector
往往在各种任务中表现得更好。在推断期间:
static embedding
执行的是lookup operation
,因此速度更快;而contextualized embedding
执行的是前向传播,因此速度很慢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论