基于自动编码器的预训练模型方法模型预训练方法RetroMAE和RetroMAE-2

2024-04-01 12:04

本文主要是介绍基于自动编码器的预训练模型方法模型预训练方法RetroMAE和RetroMAE-2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • RetroMAE
      • RetroMAE详情
        • 编码
        • 解码
        • 增强解码
    • RetroMAE-2
      • RetroMAE-2详情
        • 编码
        • [CLS]解码
        • OT解码和训练目标
        • 向量表征
    • 总结
    • 参考资料

RetroMAE

RetroMAE 出自论文《RetroMAE: Pre-Training Retrieval-oriented Language Models Via Masked Auto-Encoder》,是一种针对于检索的基于自动编码器的预训练模型方法。

作者认为对于基于自动编码的预训练如下两个因素很重要:

  • 重建任务必须对于编码质量有要求
  • 预训练数据必须得到充分应用

因此,RetroMAE为了满足这两个因素有三个主要设计:

  • MAE工作流,预训练方法遵循掩码自动编码工作流。一个输入句子经过两次不同的掩码处理后生成两个掩码输入:一个掩码输入经过编码器encoder生成句子向量;另一个掩码输入和句子向量一起输入到解码器decoder后通过掩码语言模型MLM(masked language modeling)重建原始句子。
  • 非对称结构,RetroMAE的模型结构是非对称的,encoder是完整的BERT模型,可用来生成输入句子的向量。decoder只是一层简单的transformer,它被来重建输入句子。
  • 非对称的掩码率,encoder输入使用一个适中的掩码率:1530%(比BERT略高),而decoder输入的掩码率激进多了:5070%。

在这里插入图片描述

RetroMAE详情

在这里插入图片描述

编码

设输入句子X经过掩码后的受污染输入记为 X ~ e n c \tilde{X}_{enc} X~enc,其中掩码率为15~30%。Bert-like encoder记作 Φ e n c ( ⋅ ) \Phi_{enc}(\cdot) Φenc(),它被用来将 X ~ e n c \tilde{X}_{enc} X~enc转化为向量 h X ~ h_{\tilde{X}} hX~
h X ~ ← Φ e n c ( X ~ e n c ) ( 1 ) h_{\tilde{X}} \leftarrow \Phi_{enc}(\tilde{X}_{enc}) \qquad \qquad (1) hX~Φenc(X~enc)(1)
作者使用CLS token的隐向量状态作为句子向量。

解码

设解码阶段输入句子X经过掩码后的受污染输入记为 X ~ d e c \tilde{X}_{dec} X~dec,其中掩码率为50~70%, X ~ d e c \tilde{X}_{dec} X~dec和编码器生成的向量 h X ~ h_{\tilde{X}} hX~会组合成如下序列( e x i e_{x_i} exi x i x_i xi的embedding, p i p_i pi是位置向量):
H X ~ d e c ← [ h X ~ , e x 1 + p 1 , ⋯ , e x N + p N ] ( 2 ) \mathbf{H}_{\tilde{X}_{dec}} \leftarrow [h_{\tilde{X}}, e_{x_1}+ p_1, \cdots, e_{x_N} + p_N] \qquad \qquad (2) HX~dec[hX~,ex1+p1,,exN+pN](2)
使用仅一层transformer作为decoder,记作 Φ d e c \Phi_{dec} Φdec,它通过优化如下目标函数来重建原始句子X(CE是交叉熵损失):
L d e c = ∑ x i ∈ m a s k e d C E ( x i ∣ Φ d e c ( H X ~ d e c ) ) ( 3 ) \mathcal{L}_{dec} = \sum_{x_i \in masked} CE(x_i |\Phi_{dec}(\mathbf{H}_{\tilde{X}_{dec}})) \qquad \qquad (3) Ldec=ximaskedCE(xiΦdec(HX~dec))(3)
因为decoder结构很简单,且使用了激进的掩码率,所以就强迫encoder必须生成高质量的句子向量来成功重建原始输入。

增强解码

前述解码过程中的交叉熵损失函数是从掩码token得到,而每一个掩码token总是从相同的上下文 H X ~ d e c \mathbf{H}_{\tilde{X}_{dec}} HX~dec重建,作者认为如果满足下列因素预训练效果能够进一步提升:1)从输入句子中得到更多训练信号(training signals),2)重建任务能够基于多样化的上下文。所以作者们提出了增强解码。

增强解码为解码操作生成两个输入流: H 1 ( q u e r y ) \mathbf{H}_1(query) H1(query) H 2 ( c o n t e x t ) \mathbf{H}_2(context) H2(context)
H 1 ← [ h X ~ + p 0 , ⋯ , h X ~ + p N ] H 2 ← [ h X ~ , e x 1 + p 1 , ⋯ , e x N + p N ] ( 4 ) \begin{gathered} \mathbf{H}_{1} \leftarrow [h_{\tilde{X}} + p_0, \cdots, h_{\tilde{X}} + p_N] \\ \mathbf{H}_{2} \leftarrow [h_{\tilde{X}}, e_{x_1}+ p_1, \cdots, e_{x_N} + p_N] \end{gathered} \qquad \qquad (4) H1[hX~+p0,,hX~+pN]H2[hX~,ex1+p1,,exN+pN](4)
上式中 h X ~ h_{\tilde{X}} hX~是句子向量, e x i e_{x_i} exi是token embedding(在此处没有token会被掩码), p i p_i pi是位置向量。

然后引入位置相关注意力掩码矩阵 M ∈ R L × L \mathbf{M} \in \mathbb{R}^{L \times L} MRL×L,则自注意力过程可表示为下列式子:
Q = H 1 W Q , K = H 2 W K , V = H 2 W V ; M i j = { 0 , can be attended,  − ∞ , masked;  A = softmax ⁡ ( Q T K d + M ) V . ( 5 ) \begin{gathered} \mathbf{Q}=\mathbf{H}_1 \mathbf{W}^Q, \mathbf{K}=\mathbf{H}_2 \mathbf{W}^K, \mathbf{V}=\mathbf{H}_2 \mathbf{W}^V ; \\ \mathbf{M}_{i j}= \begin{cases}0, & \text { can be attended, } \\ -\infty, & \text { masked; }\end{cases} \\ \mathbf{A}=\operatorname{softmax}\left(\frac{\mathbf{Q}^T \mathbf{K}}{\sqrt{d}}+\mathbf{M}\right) \mathbf{V} . \end{gathered} \qquad \qquad (5) Q=H1WQ,K=H2WK,V=H2WV;Mij={0,, can be attended,  masked; A=softmax(d QTK+M)V.(5)
输出 A \mathbf{A} A H 1 \mathbf{H}_1 H1(残差连接)一起用来重建输入,目标函数如下:
L d e c = ∑ x i ∈ X C E ( x i ∣ A , H 1 ) ) ( 6 ) \mathcal{L}_{dec} = \sum_{x_i \in X} CE(x_i |\mathbf{A}, \mathbf{H_1})) \qquad \qquad (6) Ldec=xiXCE(xiA,H1))(6)
每一个token x i x_i xi基于掩码矩阵 M \mathbf{M} M的第i行重建,所以注意力掩码矩阵 M \mathbf{M} M由如下规则生成(可参考上面图片右侧矩阵来理解),第一个位置(除第一行在对角线上的元素外)和 s ( X ≠ i ) s(X_{\neq i}) s(X=i)对于重建 x i x_i xi是可见的,而对角线上的元素总是会被掩码的(也就是说每一个token在重建过程中不能将自己包括进来):
M i j = { 0 , x j ∈ s ( X ≠ i ) , or  j ∣ i ≠ 0 = 0 − ∞ , otherwise.  ( 7 ) \mathbf{M}_{ij} = \begin{cases}0, & x_j \in s(X_{\neq i}), \text{or } j_{|i \neq 0} =0 \\ -\infty, & \text { otherwise. }\end{cases} \qquad \qquad (7) Mij={0,,xjs(X=i),or ji=0=0 otherwise. (7)

使用了增强解码的预训练流程算法如下图,encoder使用与BERT一致的掩码语言模型任务(MLM),其损失记作 L e n c \mathcal{L}_{enc} Lenc,它与decoder的损失求和作为预训练模型的最终损失函数。

在这里插入图片描述

RetroMAE-2

RetroMAE-2出自论文《RetroMAE-2: Duplex Masked Auto-Encoder For Pre-Training Retrieval-Oriented Language Models》,是RetroMAE团队提出的改进版本。

RetroMAE只使用了CLS的token的隐状态向量作为语义表示,RetroMAE-2希望将其他token的embedding也利用起来,所以提出了名为DupMAE(Duplex Masked Auto-Encoder)的自动编码框架。

在这里插入图片描述

RetroMAE-2详情

在这里插入图片描述

编码

设输入句子X经过掩码后的受污染输入记为 X ~ e n c \tilde{X}_{enc} X~enc,其中掩码率为30%。Bert-like encoder记作 Φ e n c ( ⋅ ) \Phi_{enc}(\cdot) Φenc(),它被用来将 X ~ e n c \tilde{X}_{enc} X~enc转化为向量[CLS]向量 h X ~ h_{\tilde{X}} hX~和普通token向量 H X ~ e n c \mathbf{H}_{\tilde{X}_{enc}} HX~enc
h X ~ , H X ~ e n c ← Φ e n c ( X ~ e n c ) ( 1 ) h_{\tilde{X}},\ \mathbf{H}_{\tilde{X}_{enc}} \leftarrow \Phi_{enc}(\tilde{X}_{enc}) \qquad \qquad (1) hX~, HX~encΦenc(X~enc)(1)
掩码token由常规MLM预测得到,MLM的损失函数记为 L m l m \mathcal{L}_{mlm} Lmlm

[CLS]解码

与RetroMAE的增强解码实现方式一模一样,参见前面记录。

OT解码和训练目标

OT向量的解码任务基于两个考虑:

  • 与[CLS]解码一样,解码网络尽可能简单化
  • 与[CLS]解码任务的目标函数不一样,因此两个类型的向量可以捕捉互补信息

OT向量(掩码token除外) H X ~ e n c : { h x 1 , . . . , h x N } \mathbf{H}_{\tilde{X}_{enc}}:\{h_{x1}, ..., h_{x_N} \} HX~enc:{hx1,...,hxN}经线性转换到词汇空间( W O ∈ R d × ∣ V ∣ W^O \in \mathbb{R}^{d \times |V|} WORd×V,d是向量尺寸, ∣ V ∣ |V| V是词汇表尺寸):
μ x i ← h x i T W O , x i ∈ X ~ e n c \mu_{x_i} \leftarrow h^T_{x_i} W^O,\ x_i \in \tilde{X}_{enc} μxihxiTWO, xiX~enc
上述结果接着经过token-wise max-pooling后聚合得到(对于每个词汇在 X ~ e n c \tilde{X}_{enc} X~enc里所有token中的最大激活值将被保留):
μ X ~ e n c ← t o k e n . M a x ( { μ x i ∣ X ~ e n c } ) \mu_{\tilde{X}_{enc}} \leftarrow token.Max(\{\mu_{x_i} | \tilde{X}_{enc} \}) μX~enctoken.Max({μxiX~enc})
尝试去恢复输入的BoW特征的目标函数如下,目的是使OT向量能够更好编码词汇信息(式中,$x \in set(X) $是输入X中的去重token,V是整个词汇表):
m i n . − ∑ x ∈ s e t ( X ) l o g e x p ( μ X ~ e n c [ x ] ) ∑ x ′ ∈ V e x p ( μ X ~ e n c [ x ′ ] ) min. - \sum_{x\in set(X)} log \frac {exp(\mu_{\tilde{X}_{enc}} [x])} { \sum_{x^{\prime} \in V} exp(\mu_{\tilde{X}_{enc}} [x^{\prime}]) } min.xset(X)logxVexp(μX~enc[x])exp(μX~enc[x])

整个训练任务的目标函数为encoder损失、[CLS]解码损失和上式损失之和:
m i n . L m l m + L d e c + L B o W min. \mathcal{L}_{mlm} + \mathcal{L}_{dec} + \mathcal{L}_{BoW} min.Lmlm+Ldec+LBoW

向量表征

使用如下的聚合方法将[CLS]向量和OT向量统一起来。

  1. 将[CLS]向量 h X h_X hX经过线性转换到更低维度 d ′ d^{\prime} d h ^ X ← h X T W c l s , W c l s ∈ R d × d ′ \hat{h}_X \leftarrow h^T_X W^{cls},\ W^{cls} \in \mathbb{R}^{d \times d^{\prime}} h^XhXTWcls, WclsRd×d
  2. 使用稀疏化的方式将OT embedding减少维度: μ ^ X ← { i : μ X [ i ] ∣ i ∈ I X } \hat {\mu}_X \leftarrow \{i: \mu_X[i] \ |\ i \in I_X \} μ^X{i:μX[i]  iIX},式中的 I X I_X IX μ X [ i ] ∈ T o p − k ( μ X ) \mu_X[i] \in Top-k(\mu_X) μX[i]Topk(μX),k是 μ X \mu_X μX里要被保留的元素个数。
  3. 对于每一个文档,将前面两项拼起来作为其语义表征: [ h ^ X ; μ ^ x ] [\hat{h}_X; \hat{\mu}_x] [h^X;μ^x]

对于每一个query,其与文档的相关性基于如下形式的内积得到:
⟨ q , d ⟩ = h ^ q T h ^ d + ∑ I d μ q [ i ] μ d [ i ] \langle q, d \rangle = \hat{h}^T_q \hat{h}_d + \sum_{I_d} \mu_q[i] \mu_d[i] q,d=h^qTh^d+Idμq[i]μd[i]

总结

本文记录了RetroMAE和RetroMAE-2的原理,RetroMAE是针对文本检索专门优化的预训练方法,BGE文本向量使用了RetroMAE来预训练基础模型。RetroMAE-2进一步在RetroMAE基础上考虑利用词性信息,看到网上有人将其称为RetroMAE+keyword,而2024年的BGE-M3向量模型虽然仍基于RetroMAE来预训练模型,但是向量本身也是考虑了稀疏向量的,与RetroMAE-2有相似之处。

参考资料

  1. Liu, Zheng, and Yingxia Shao. 2022. “RetroMAE: Pre-Training Retrieval-Oriented Transformers via Masked Auto-Encoder,” May.
  2. Xiao, Shitao, and Zheng Liu. 2022. “RetroMAE v2: Duplex Masked Auto-Encoder For Pre-Training Retrieval-Oriented Language Models,” November.
  3. RetroMAE github
  4. 知乎文章:RetroMAE+key word=RetroMAE-2

这篇关于基于自动编码器的预训练模型方法模型预训练方法RetroMAE和RetroMAE-2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/867117

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言