赞
踩
RetroMAE是2022年10月由北邮和华为提出的一种密集检索预训练策略。
RetroMAE主要应用于检索模型的预训练,模型架构为非对称的Encoder-Decode结构。
RetroMAE的模型架构为非对称的Encoder-Decode结构。
Encoder部分: 是由类似于BERT的Encoder组成(12层Transformer的Encoder),用于生成句向量。
Decoder部分: 仅有由一层类似于Transformer的Decoder构成,用于重建句子。
1、token级别的预训练:比如MLM或者Seq2Seq,难以获得高质量句向量。
2、对比学习:受限于数据增强的质量,需要大量负样本。
3、自重建方法:不受数据增强跟负样本采样策略的影响,但对对编码质量要求高,训练数据也要求被充分利用到。
在Encoder阶段,对sentence进行15%~30%的mask,通过Encoder得到句子向量的表示(这里用Encoder的[CLS] token表示)。
在Decoder阶段,句子被进一步加大噪音,mask的比例为50%~70%,通过增加mask的比例来提升任务的复杂性。
而整个预训练的任务则为:在encoder阶段,对被掩码的部分进行重构,也就是MLM(Masked Language Modeling),在decoder阶段对整个句子进行重构,整体loss函数为:
假设,句子输入为X;Encoder部分随机mask(15%~30%)后为
X
~
e
n
c
\tilde{X} _{enc}
X~enc;Encoder编码器用
Φ
e
n
c
(
)
\Phi_{enc}()
Φenc()表示。
因此经过Encoder后得到的句子向量:
h
X
~
←
Φ
e
n
c
(
X
~
e
n
c
)
{h} _{\tilde{X}} \gets \Phi_{enc}(\tilde{X} _{enc})
hX~←Φenc(X~enc)
相比于Transformer中的Decoder结构,RetroMAE做了一些改进,并将其称为Enhanced-Decoder。
Enhanced-Decoder的核心想法,为以下两点:
因此,Enhanced-Decoder在attention模块同时使用了两个输入流
H
1
、
H
2
H_{1}、H_{2}
H1、H2;输入流
H
1
H_{1}
H1保留了较多输入数据的信息。
H
1
←
[
h
X
~
+
p
0
,
.
.
.
,
h
X
~
+
p
N
]
H
2
←
[
h
X
~
,
e
x
1
+
p
0
,
.
.
.
,
e
x
N
+
p
N
]
H1←[h˜X+p0,...,h˜X+pN]H2←[h˜X,ex1+p0,...,exN+pN]
H1←[hX~+p0,...,hX~+pN]H2←[hX~,ex1+p0,...,exN+pN]
其中,句子输入为X;Decoder部分随机mask(50%~70%)后为
X
~
d
e
c
\tilde{X} _{dec}
X~dec;
e
x
i
e_{x_{i}}
exi表示没有掩码过的词向量;
p
i
p_{i}
pi表示对应的位置向量;
此外,因为Transformer中的attention的掩码矩阵是一个的下三角矩阵优势在于增强模型生成能力,而检索通常更关注于模型的表示能力需要看到上下文,因此这里引入了Position-Specific Attention Mask。
继而Enhanced-Decoder的attention层为以下形式:
Q = H 1 W Q Q = H_{1}W_{Q} Q=H1WQ , K = H 2 W K K=H_{2}W_{K} K=H2WK , V = H 2 W V V=H_{2}W_{V} V=H2WV
M i j = { 0 , a t t e n d e d − ∞ , m a s k e d M_{ij}=\left\{0,attended−∞,masked\right. Mij={0,attended−∞,masked
A = s o f t m a x ( Q T K d + M ) V A = softmax(\frac{Q^{T}K}{\sqrt{d}}+M) V A=softmax(d QTK+M)V
最终RetroMAE的损失由encoder部分的MLM损失,deocder部分自重建的交叉熵损失两部分相加得到。
L
d
e
c
=
∑
x
i
∈
X
C
E
(
X
i
∣
Φ
d
e
c
(
X
~
d
e
c
)
)
L_{dec} = \sum_{x_{i}\in X}^{} CE(X_{i}| \Phi_{dec}(\tilde{X} _{dec}))
Ldec=∑xi∈XCE(Xi∣Φdec(X~dec))
L
=
L
e
n
c
+
L
d
e
c
L = L_{enc}+L_{dec}
L=Lenc+Ldec
其中, L e n c L_{enc} Lenc为由encoder部分的损失, L d e c L_{dec} Ldec为由deocder部分的损失,CE为交叉熵损失函数。
RetroMAE: Pre-Training Retrieval-oriented Language Models Via Masked Auto-Encoder
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。