数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
十四、ERNIE-Huawei [2019]
预训练的
language representation model
,包括基于特征的方法和微调的方法,可以从文本中捕捉丰富的语言信息,从而使许多NLP
应用受益。BERT
作为最近提出的模型之一,通过简单的微调在各种NLP
应用中获得了SOTA
的结果,这些任务包括命名实体识别、问答、自然语言推理和文本分类。尽管预训练的
language representation model
已经取得了可喜的成果,但它们忽略了为语言理解纳入知识信息。如下图所示,在不知道"Blowin’ in the Wind"
是一首歌、以及"Chronicles: Volume One"
是一本书的情况下,在entity typing
任务(即,实体分类)中很难识别Bob Dylan
的两个职业(即"songwriter"
和"writer"
)。此外,在关系分类relation classification
任务中,几乎不可能提取细粒度的关系,如composer
作曲家和author
作者。 对于现有的预训练的language representation model
来说,下图例子中的两个句子在语法上是模糊ambiguous
的,比如"UNK wrote UNK in UNK"
。因此,考虑丰富的知识信息可以导致更好的语言理解,并相应地有利于各种knowledge-driven
的应用,例如entity typing
和relation classification
。将外部知识纳入
language representation model
有两个主要挑战:Structured Knowledge Encoding
:对于给定的文本,如何为language representation model
有效地在知识图谱中抽取和编码该文本相关的informative fact
,这是一个重要的问题。Heterogeneous Information Fusion
:针对language representation
的预训练程序与knowledge representation
程序截然不同,这导致了两个独立的向量空间。如何设计一个特殊的预训练目标来融合词法lexical
的、句法syntactic
的和知识knowledge
的信息是另一个挑战。
为了克服上述挑战,论文
《ERNIE: Enhanced Language Representation with Informative Entities》
提出了Enhanced Language RepresentatioN with Informative Entities: ERNIE
,它同时在大规模文本语料和知识图谱上预训练language representation model
。- 为了抽取和编码
knowledge information
,ERNIE
首先识别文本中提到的命名实体,然后将这些提到的实体与知识图谱中的相应实体对齐。ERNIE
不直接使用知识图谱中的graph-based facts
,而是用TransE
等knowledge embedding
算法对知识图谱的图结构进行编码,然后将informative entity embedding
作为ERNIE
的输入。基于文本和知识图谱之间的对齐alignments
,ERNIE
将knowledge module
中的entity representation
集成到semantic module
的underlying layer
。 - 与
BERT
类似,ERNIE
采用masked language model
和next sentence prediction
作为预训练目标。此外,为了更好地融合textual feature
和knowledge feature
,论文设计了一个新的预训练目标,即随机掩码输入文本中的一些token-entity alignment
,要求模型从知识图谱中选择合适的实体来完成对齐alignment
。与现有的预训练language representation model
只利用局部上下文来预测token
不同,ERNIE
的目标要求模型同时聚合上下文和knowledge fact
来同时预测token
和实体,并导致一个knowledgeable language representation model
。 - 论文对两个
knowledge-driven
的NLP
任务进行了实验,即entity typing
和relation classification
。实验结果表明:通过充分利用词法lexical
的、句法syntactic
的和知识knowledge
的信息,ERNIE
在这些knowledge-driven
的任务上明显优于BERT
。论文还在其他常见的NLP
任务上评估了ERNIE
,ERNIE
仍然取得了可比comparable
的结果。
预训练语料库容易获得,但是知识图谱一般比较难以获得。
本文中提到的
ERNIE
指的是《ERNIE: Enhanced Language Representation with Informative Entities》
,而不是Ernie: Enhanced representation through knowledge integration》
。相关工作:预训练方法可以分为两类,即
feature-based
的方法和finetuning
方法。- 早期的工作主要是采用
feature-based
的方法,将单词转化为distributed representation
。由于这些预训练的word representation
捕捉了文本语料中的句法信息syntactic information
和语义信息semantic information
,它们经常被用作各种NLP
模型的input embedding
和初始化参数,并且比随机初始化参数有显著的改进。由于这些word-level
模型经常受到单词多义性的影响,ELMo
进一步采用sequence-level
模型来捕捉不同语言上下文下的复杂的word feature
,并使用ELMo
来生成context-aware word embedding
。 - 与上述
feature-based
的方法只使用pretrained language representation
作为input feature
不同,《Semi-supervised sequence learning》
在未标记的文本上训练自编码器,然后将预训练的模型架构和参数作为其他specific NLP model
的起点。受该论文的启发,人们提出了更多用于微调的预训练language representation model
,如GPT
、BERT
。
虽然
feature-based
的和finetuning
的language representation model
都取得了巨大的成功,但它们忽略了纳入知识信息。 正如最近的工作所证明的那样,注入额外的知识信息可以大大增强原始模型。因此,我们认为,额外的知识信息可以有效地有助于现有的预训练模型。事实上,一些工作已经尝试对单词和实体进行联合的representation learning
,以有效利用外部知识图谱,并取得了可喜的成果。《Ernie: Enhanced representation through knowledge integration》
提出了knowledge masking
策略用于masked language model
从而通过知识来增强language representation
。在本文中,我们进一步利用语料库和知识图谱来训练BERT-based
的enhanced language representation
。- 早期的工作主要是采用
14.1 模型
我们记一个
token
序列为 $ \{w_1,w_2,\cdots,w_n\} $ ,其中 $ n $ 为token
序列的长度。同时, 我们用 $ \{e_1,e_2,\cdots,e_m\} $ 对齐了给定token
序列的实体序列entity sequence
,其中 $ m $ 为实体序列的长度。注意,在大多数情况下, $ m \ne n $ ,因为在知识图谱中,并不是每个token
都能对齐一个实体。此外,我们把包含所有token
的整个词表vocabulary
表示为 $ \mathcal V $ ,把包含知识图谱中所有实体的entity list
表示为 $ \mathcal E $ 。如果一个token
$ w\in \mathcal V $ ,并且它有一个对应的实体 $ e\in \mathcal E $ ,那么token
和entity
之间的对齐alignment
定义为: $ f(w) = e $ 。在本文中,我们将实体与它的命名实体短语named entity phrase
中的第一个token
对齐。实体有两种位置:第一种位置是位于知识图谱中的实体,第二种位置是位于文本句子中的实体。除了特别说明之外,本文中的实体都指的是位于文本句子中的实体。
这篇文章价值不大,实验部分参考意义也不大(用了预训练好的
BERT
参数来初始化,这导致不公平的比较,而且效果反而不如BERT
)。浪费时间。
14.1.1 模型架构
如下图所示,
ERNIE
的整个模型架构由两个堆叠的模块组成:T-Encoder
:底层的文本编码器textual encoder
负责从input token
中获取基本的词法信息和句法信息。K-Encoder
:上层的知识编码器knowledgeable encoder
负责将额外的token-oriented knowledge information
集成到底层的文本信息中,这样我们就可以将token
和实体的异质信息heterogeneous information
表示为一个统一的特征空间feature space
。
此外,
T-Encoder
的层数记做 $ N $ ,K-Encoder
的层数记做 $ M $ 。这里的
Entity Input
是实体经过TransE
算法之后得到的entity embedding
。具体而言,给定一个
token
序列 $ \{w_1 ,\cdots,w_n\} $ 及其对应的实体序列 $ \{e_1, \cdots,e_m\} $ ,文本编码器首先将每个token
的token embedding
、segment embedding
、positional embedding
相加从而计算其input embedding
,然后计算词法特征lexical feature
和syntactic feature
$ \left\{\mathbf{\vec w}_1,\cdots,\mathbf{\vec w}_n\right\} $ 如下:其中
$ \text{T-Encoder}(\cdot ) $ 是一个多层双向的Transformer encoder
。由于 $ \text{T-Encoder}(\cdot ) $ 与BERT
中的实现相同,而且BERT
很流行,我们不再对这个模块进行详述。在计算完
$ \left\{\mathbf{\vec w}_1,\cdots,\mathbf{\vec w}_n\right\} $ 后,ERNIE
采用knowledgeable encoder
(K-Encoder
)将知识信息注入language representation
中。具体而言,我们用entity embedding
$ \left\{\mathbf{\vec e}_1,\cdots,\mathbf{\vec e}_m \right\} $ 来表示这些实体 $ \{e_1,\cdots,e_m\} $ ,这是由有效的knowledge embedding
模型TransE
预训练的。然后, $ \left\{\mathbf{\vec w}_1,\cdots,\mathbf{\vec w}_n\right\} $ 和 $ \left\{\mathbf{\vec e}_1,\cdots,\mathbf{\vec e}_m \right\} $ 都被馈入K-Encoder
,从而融合异质信息并计算final output embedding
。
14.1.2 Knowledgeable Encoder
如
Figure 2
所示,K-Encoder
由堆叠的aggregator
组成,这些aggregator
被设计用来对token
和实体进行编码,并融合它们的异质特征heterogeneous feature
。在第 $ i $ 个aggregator
中,来自前一个aggregator
的输出被作为input token embedding
$ \left\{\mathbf{\vec w}_1^{(i-1)},\cdots,\mathbf{\vec w}_n^{(i-1)}\right\} $ 和entity embedding
$ \left\{\mathbf{\vec e}_1^{(i-1)},\cdots,\mathbf{\vec e}_m ^{(i-1)}\right\} $ 分别被馈入两个多头自注意力multi-head self-attention: MH-ATT
:然后,第
$ i $ 个aggregator
采用信息融合层information fusion layer
对token
序列和实体序列进行相互集成mutual integration
,并计算出每个token
和实体的output embedding
。对于一个token
$ w_j $ 及其对齐的实体 $ e_k=f(w_j) $ ,信息融合过程如下:其中:
$ \mathbf{\vec h}_j $ 为同时集成了token
信息和实体信息的inner hidden state
。 $ \sigma(\cdot) $ 为非线性激活函数,通常是GELU
函数。
information fusion layer
其实就是单层前馈神经网络。对于没有相应实体的
token
,information fusion layer
计算output embedding
而不进行集成,如下所示:为简单起见,第
$ i $ 个aggregator
的操作表示如下:最顶部
aggregator
计算的、token
和实体的output embedding
将被用作K-Encoder
的final output embedding
。
14.1.3 Pre-training for Injecting Knowledge
为了通过
informative entity
向language representation
注入知识,我们为ERNIE
提出了一个新的预训练任务,即随机掩码一些token-entity alignment
,然后要求系统根据aligned token
来预测所有相应的实体。由于我们的任务类似于训练降噪自编码器denoising auto-encoder
,我们把这个过程称为denoising entity auto-encoder: dEA
。考虑到 $ \mathcal E $ 的规模对于softmax
层来说是相当大的,因此我们仅要求系统根据给定的实体序列而不是知识图谱中的所有实体来预测。这里把候选的实体集合从
$ \mathcal E $ 缩小到实体序列 $ \{e_1,\cdots,e_m\} $ ,相当于是负采样策略,只是负样本局限在当前token
序列所对应的实体集合中。由于当前token
序列所对应的实体集合存在一定的相关性,因此这些负样本和ground-truth
实体之间是相关的,因此是hard
负样本。因此,建议随机从知识图谱中采样 $ K $ 个负样本,作为easy
负样本。给定
token
序列 $ \{w_1 ,\cdots,w_n\} $ 及其相应的实体序列 $ \{e_1,\cdots,e_m\} $ ,我们为token
$ w_i $ 定义aligned entity distribution
为:其中:
$ \text{linear}(\cdot) $ 是一个线性层(用于将token embedding
空间映射到entity embedding
空间)。 $ \mathbf{\vec w}_i^{(o)} $ 是token
$ w_i $ 的final output embedding
。 $ \mathbf{\vec e}_j $ 为entity
$ e_j $ 的entity embedding
。
entity embedding
没有采用final output
的,因为候选的entity
可能没有馈入模型(如,某些entity
被masked
了)。然后我们根据
$ p(e_j\mid w_i) $ 来计算dEA
的交叉熵损失函数。如何进行掩码?作者并未详细说明。读者猜测:以第一个实体为例,假设第一个实体对应
token
$ \{w_1,w_2\} $ ,那么input
变成:token
序列 $ \{\text{[MASK]},\text{[MASK]},w_3,\cdots,w_n\} $ 。模型需要从候选的实体序列 $ \{e_1,\cdots,e_m\} $ 中预测被掩码的实体。但是根据
Figure 2
,感觉作者是把token
序列 $ \{\text{[MASK]},\text{[MASK]},w_3,\cdots,w_n\} $ 和entity embedding
序列 $ \left\{\mathbf{\vec e}_1,\cdots,\mathbf{\vec e}_m \right\} $ 都作为输入。这种做法产生了信息泄露,会降低模型的预测能力。考虑到在
token-entity alignment
中存在一些错误,我们对dEA
进行了以下操作:- 在
5%
的时间里,对于一个给定的token-entity alignment
,我们用另一个随机的实体替换该实体,这旨在训练我们的模型来纠正如下错误:token
被aligned
以一个wrong entity
。 - 在
15%
的时间里,我们掩码了token-entity alignment
,这旨在训练我们的模型来纠正如下错误:entity alignment system
没有抽取所有现有的alignment
。 - 在其余的时间里,我们保持
token-entity alignment
不变,这旨在鼓励我们的模型将实体信息集成到token representation
中,以便更好地理解语言。
- 在
与
BERT
类似,ERNIE
也采用了masked language model: MLM
和next sentence prediction: NSP
作为预训练任务,以便ERNIE
能够从文本中的token
中获取词法信息lexical information
和句法信息syntactic information
。总体的预训练损失是dEA
、MLM
和NSP
损失之和。
14.1.4 Fine-tuning for Specific Tasks
如下图所示,对于各种常见的
NLP
任务,ERNIE
可以采用类似于BERT
的微调程序。我们可以把第一个token
的final output embedding
(这对应于特殊的[CLS] token
)作为具体任务的输入序列的representation
。对于一些
knowledge-driven
的任务(例如,relation classification
和entity typing
),我们设计了特殊的微调程序。- 对于
relation classification
:该任务要求系统基于上下文对给定entity pair
的relation label
进行分类。对relation classification
进行微调的最直接的方法是:将池化层应用于给定实体的final output embedding
,并用它们的entity embedding
的拼接来表示给定的entity pair
从而用于分类。在本文中,我们设计了另一种方法,它通过添加两个mark token
来修改input token sequence
从而以突出entity
。这些额外的mark token
起到了类似于relation classification
模型中position embedding
的作用。然后,我们也采用[CLS] token embedding
来进行分类。注意,我们为head entity
和tail entity
分别设计了不同的token
,即[HD]
和[TL]
。 - 对于
entity typing
:该任务是relation classification
的简化版。由于之前的entity typing
模型充分利用了context embedding
和entity embedding
,我们认为:带有mark token [ENT]
的被修改的输入序列可以引导ERNIE
结合上下文信息和实体信息。
- 对于
14.2 实验
预训练数据集:对于从头开始训练
ERNIE
的巨大成本,我们采用谷歌发布的BERT
的参数来初始化Transformer block
从而用于 编码token
。由于预训练是一个由NSP
、MLM
和dEA
组成的多任务程序,我们使用English Wikipedia
作为预训练的语料库,并将文本与Wikidata
对齐。在将语料库转换为预训练的格式化数据后,input
有近45
亿个subword
和1.4
亿个实体,并抛弃了少于3
个实体的句子。采用
BERT
的参数来初始化ERNIE
,这并不是一个公平的比较。在对
ERNIE
进行预训练之前,我们采用TransE
在Wikidata
上训练的knowledge embedding
作为实体的input embedding
。具体来说,我们从Wikidata
中抽取部分样本,其中包含5,040,986
个实体和24,267,796
个fact
三元组。entity embedding
在训练期间是固定的,entity encoding module
的参数都是随机初始化的。超参数配置和训练细节:我们将
token embedding
和entity embedding
的隐层维度分别表示为 $ H_w,H_e $ ,将自注意力头的数量分别表示为 $ A_w, A_e $ 。详细而言,我们遵从以下的model size
: $ N=6,M=6,H_w=768,H_e=100,A_w=12,A_e=4 $ ,总参数规模约为114M
。BERT_BASE
的参数总量约为110M
,这意味着ERNIE
的knowledgeable module
要比language module
小得多,对运行时性能的影响很小。而且,我们只在有标注的语料库上对ERNIE
进行了一个epoch
的预训练。为了加速训练过程,我们将最大序列长度从512
减少到256
,因为自注意力的计算复杂度是序列长度的二次函数。为了保持一个batch
中的token
数量与BERT
相同,我们将batch size
加倍到512
。除了将学习率设置为 $ 5\times 10^{-5} $ 之外,我们基本上沿用了BERT
中使用的预训练超参数。对于微调,大多数超参数与预训练相同,除了
batch size
、学习率和训练epoch
数量。我们发现以下可能的数值范围的效果较好:batch size = 32
,学习率(Adam
优化器)为 $ \left\{5\times 10^{-5},3\times 10^{-5},2\times 10^{-5}\right\} $ , 训练epoch
数量从3
到10
。我们还在
distantly supervised dataset
(即FIGER
)上评估ERNIE
。由于深度堆叠的Transformer block
的强大表达能力,我们发现小的batch size
会导致模型对训练数据的过拟合。因此,我们使用较大的batch size
和较少的训练epoch
来避免过拟合,并保持学习率的范围不变,即批batch size = 2048
、历时数为 $ \{2,3\} $ 。由于大多数数据集没有实体标注,我们使用
TAGME
来抽取句子中提到的实体,并将它们与知识图谱中的相应实体联系起来。Entity Typing
:给定实体及其上下文,entity typing
要求系统为实体标注其各自的语义类型semantic type
。为了评估这一任务的性能,我们在两个成熟的数据集FIGER
和Open Entity
上对ERNIE
进行了微调。FIGER
的训练集是用distant supervision
进行标注的,其测试集是由人类进行标注的。Open Entity
是一个完全由人工标注的数据集。这两个数据集的统计数据如下表所示。我们将我们的模型与以下entity typing
的baseline
模型进行比较:NFGEC
、UFET
。此外,我们还考虑了对BERT
进行微调的结果,以便进行公平的比较。远程监督
distant supervision
:对于一个给定的知识图谱中的一个三元组(由一对实体和一个关系构成),假设外部文档库中任何包含这对实体的句子,在一定程度上都反映了这种关系。因此可以利用知识图谱为外部文档库的句子标注relation
。在
FIGER
上的结果如下表所示。可以看到,ERNIE
在所有指标上超越了所有的baseline
。在
Open Entity
上的结果如下表所示。可以看到,ERNIE
在所有指标上超越了所有的baseline
。Relation Classification
:关系分类旨在确定给定句子中两个实体之间的正确关系,这是一项重要的knowledge-driven
的NLP
任务。为了评估这项任务的性能,我们在两个成熟的数据集FewRel
和TACRED
上对ERNIE
进行了微调。这两个数据集的统计数据见下表。由于FewRel
的原始实验设置是few-shot learning
,我们重新安排了FewRel
数据集从而用于通用的关系分类。具体来说,我们从每个类中抽取100
个实例作为训练集,并从每个类中分别抽取200
个实例作为验证集和测试集。FewRel
中有80
个类,而TACRED
中有42
个类(包括一个特殊的关系"no relation"
)。我们将我们的模型与下列关系分类的基线模型进行比较:
CNN
、PA-LSTM
、Contextualized GCN: C-GCN
。此外,我们还考虑了对BERT
进行微调的结果,以便进行公平的比较。FewRel
和TACRED
的实验结果如下表所示。可以看到,ERNIE
在所有指标上超越了所有的baseline
。GLUE
:General Language Understanding Evaluation: GLUE
基准是一个多样化自然语言理解任务的集合。我们在GLUE
的8
个数据集上评估了ERNIE
,并与BERT
进行了比较。在下表中,我们报告了我们提交的评估结果和来自排行榜的
BERT
的结果。我们注意到:- 在
MNLI
、QQP
、QNLI
和SST-2
等大数据集上,ERNIE
与BERT_BASE
一致。 - 在小数据集上,结果变得更加不稳定,即,
ERNIE
在CoLA
和RTE
上更好,但在STS-B
和MRPC
上更糟。
ERNIE
采用了BERT_BASE
权重初始化,并且模型容量更大,结果反而效果更差?这意味着ERNIE
没有什么价值,或者ERNIE
没有被充分训练?- 在
消融研究:我们利用
FewRel
数据集探讨了informative entity
和knowledgeable pretraining task
(dEA
)对ERNIE
的影响。w/o entities
和w/o dEA
分别指在没有实体序列输入和预训练任务dEA
的情况下对ERNIE
进行微调。如下表所示:在没有实体序列输入的情况下,
dEA
在预训练期间仍然将知识信息注入到language representation
中,这使F1
分相对于BERT
增加了0.9%
。没有实体序列输入,是怎么执行
dEA
的?作者没有讲。在没有
dEA
的情况下,informative entity
带来了很多知识信息,从直观上有利于关系分类,这使F1
分相对于BERT
增加了0.7%
。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论