在机器学习的广大前景中,transformers 就像修建奇观一样高高矗立,以其简单的设计和捕捉简单关系的能力重塑了咱们解决和了解大量数据的形式。
自 2017 年创立第一个 Transformer 以来,Transformer 类型呈爆炸式增长,其中包含 ChatGPT 和 DALL-E 等弱小的生成式 AI 模型。尽管 transformers 在文本到文本或文本到图像模型中十分无效,但将 transformers 利用于工夫序列时存在一些挑战。在 2023 年北美开源峰会 上,Ezequiel Lanza 分享了 transformers 模型的问题,并介绍了新的 transformers,这些 transformers 开始在工夫序列方面显示出有心愿的后果。
这篇文章不会深入探讨技术方面的内容,但如果您想浏览更多内容,咱们将在全文中提供重要论文的链接。
Transformer 性能概述
让咱们看看 Transformer 在 Stable Diffusion 中的作用,这是一种深度学习模型,能够将短语(例如“戴眼镜的狗”)转换为图像。转换器接管用户输出的文本并生成文本嵌入。文本嵌入是能够由卷积神经网络 (CNN)(在本例中为 U-NET)读取的文本示意。尽管稳固扩散模型应用嵌入来生成图像,但嵌入可用于生成对工夫序列模型有用的附加输入。
Transformer 如何工作
为了了解如何将 Transformer 利用到工夫序列模型中,咱们须要关注 Transformer 架构的三个要害局部:
- 嵌入和地位编码
- 编码器:计算多头自注意力
- 解码器:计算多头自注意力
作为一个例子,咱们将解释一般 Transformer 是如何工作的,这是一种将简略短语从一种语言翻译成另一种语言的 Transformer。
- 嵌入和地位编码:如何示意输出数据
当您将短语“我爱狗”输出一般转换器时,一种名为 Word2Vec 的算法会将每个单词转换为数字列表(称为向量)。每个向量都蕴含无关单词含意以及它与其余单词如何相干的信息,例如同义词和反义词。
模型还必须了解短语中每个单词的地位。例如,“我爱狗”与“我爱狗”的含意不同。第二种算法称为地位向量,它应用简单的数学方程来帮忙您的模型了解句子程序。将 Word2Vec 和地位向量算法提供的信息打包在一起,就是所谓的文本嵌入,或者以机器能够读取的形式示意的原始短语。
- 编码器级别的多头自注意力
接下来,编码器接管文本嵌入并将其转换为新的向量,增加信息以帮忙模型分别短语中单词之间的关系。例如,在短语“孩子们在公园里游玩”中,编码器会将最大权重调配给“孩子”、“游玩”和“公园”。咱们称这个过程为自注意力,因为它决定了模型应该最关注哪些单词。
为了计算自注意力,编码器为每个单词创立三个向量——查问向量、键向量和值向量。通过将短语乘以三个矩阵来创立向量。这是一个简单的算法,但须要了解的重要局部是短语中的每个单词都会与短语中的每个其余单词相乘,并且可能须要大量工夫来计算长短语的注意力。
为了更好地了解单词之间的关系,自注意力层能够同时运行多个头。这个过程称为多头注意力,它容许模型同时关注短语的不同局部,例如当存在短期和长期依赖性时。例如,在短语“动物没有过马路,因为它太累了”中,多头注意力通知模型“动物”和“它”指的是同一个想法。
- 解码器级别的多头自注意力
解码器的工作形式与编码器雷同,只是它是应用不同的数据集进行训练的。例如,在一般 Transformer 中,如果编码器承受过英语数据训练,解码器承受过法语数据训练,则解码器将运行雷同的多头自注意力算法,将原始短语翻译成法语。
应用工夫序列转换器
为什么这种 Transformer 架构不适用于工夫序列?工夫序列在某些方面就像一种语言,但它与传统语言不同。在语言中,您能够应用截然不同的单词或句子程序来表白雷同的想法。一旦基于语言的转换器(例如 vanilla)承受了某种语言的训练,它就能够了解单词之间的关系,因而当您用两个不同的输出示意一个想法时,转换器依然会得出大致相同的含意。然而,工夫序列须要严格的程序——数据点的程序更重要。这对应用工夫序列转换器提出了挑战。
让咱们看看咱们目前如何解决这个问题以及为什么这些模型存在有余。
- 目前的办法
自回归积分挪动均匀 (ARIMA) 模型实用于某些工夫序列,但须要深刻理解相干趋势、季节性变动和残差值,即使如此,它也仅实用于线性相关性。在许多具备多元问题特色的工夫序列中,依赖关系之间的关系不是线性的,ARIMA 不起作用。
还有几种应用神经网络的办法。
- 前馈神经网络 (FNN) 模型应用系列中任何前六个数据点来预测接下来的六个数据点。只管 FNN 反对非线性依赖性,但它们要求您手工制作一个专一于十分具体的问题或数据子集的模型,这使得为大型数据集构建该模型过于耗时。
- 在循环神经网络 (RNN) 模型中,您能够向模型提供与工夫序列相干的一小部分数据点,RNN 中的单元将记住哪些数据点很重要以及它们的权重是多少。然而,当您解决具备长期依赖性的数据集时,权重变得不那么相干,并且模型的准确性随着工夫的推移而升高。
- 长短期记忆 (LSTM) 模型与 RNN 相似,不同之处在于每个单元都有一个记忆,容许您在长序列期间更频繁地更新权重。这使得 LSTM 成为某些用例的良好解决方案。
- Seq2seq 是一种进步 LSTM 性能的办法。您能够将数据输出编码器,而不是间接输出网络,编码器会生成输出的特色并输出解码器。
- Transformer 如何改良工夫序列?
应用 Transformer 启用的多头注意力能够帮忙改良工夫序列模型解决长期依赖性的形式,从而提供优于以后办法的劣势。为了让您理解变压器对于长依赖关系的工作成果如何,请思考 ChatGPT 能够在基于语言的模型中生成的长而具体的响应。通过容许一个头专一于长期依赖性,而另一个头专一于短期依赖性,将多头注意力利用于工夫序列能够产生相似的益处。咱们置信 Transformer 能够让工夫序列模型预测将来多达 1,000 个数据点,甚至更多。
- 二次复杂度问题
Transformer 计算多头自注意力的形式对于工夫序列来说是有问题的。因为系列中的数据点必须乘以系列中的每个其余数据点,因而增加到输出中的每个数据点都会以指数形式减少计算注意力所需的工夫。这称为二次复杂度,在解决长序列时会产生计算瓶颈。
改良工夫序列的 Transformer 模型
往年早些时候公布的一项考察确定了在将 Transformer 利用于工夫序列之前须要解决的两项重要网络批改:
- 地位编码:咱们如何示意输出数据
- 注意力模块:升高工夫复杂度的办法
下一部分将介绍次要要点,但您能够浏览考察以理解无关批改及其后果的更多详细信息。
- 网络批改 1:地位编码
2019 年,咱们尝试在一般 Transformer 中利用 Word2Vec 编码过程,但该模型无奈充分利用工夫序列的重要特色。Vanilla Transformer 善于分别单词之间的关系,但不善于遵循数据序列中的严格程序。浏览更多。
2021 年,咱们创立了可学习的文本嵌入,使咱们可能在输出中蕴含额定的地位编码信息。与一般 Transformer 中的固定编码相比,可学习的地位编码容许 Transformer 更加灵便并更好地利用程序排序信息。这有助于 Transformer 理解无关工夫序列的更重要的上下文,例如节令信息。
- 网络批改 2:注意力模块
为了升高注意力层的二次复杂度,新的 Transformer 引入了 ProbSparse Attention 的概念。通过使注意力层仅应用最重要的数据点而不是所有数据点来计算权重和概率,ProbSparse 有助于大大减少计算注意力所需的工夫。
测试新 Transformers
尽管 LogTrans、Pyraformer 和 FEDformer 等许多新 Transformer 都纳入了这些网络批改,但这里咱们重点关注 Informer 和 Spacetimeformer,因为它们是开源的。GitHub 存储库提供参考文档和示例,让您能够轻松依据数据微调模型,而无需理解关注层的每个细节。
让咱们看看 Informer 和 Spacetimeformer 如何利用这些网络批改,看看它们会生成什么样的后果。
- Informer 架构
Informer Transformer 使您可能向它们提供无关季节性、每月或假期趋势的重要信息,以帮忙模型理解一年中数据行为形式的轻微差别。例如,您的数据集在冬季的体现可能与夏季不同。通过地位编码,您能够通知模型在一年中的不同工夫应用不同的权重,从而使您能够更好地管制输出的品质。
通过联合 ProbSparse 注意力模型和地位编码,Informer 比 LSTM 等传统 Transformer 具备性能劣势。当预测将来 24 个数据点时,Informer 产生的均方误差 (MSE) 为 0.577,比 LSTM 的 MSE 0.650 稍好一些。当预测 720 个数据点时,性能差别更大,Informer 的 MSE 为 1.215,而 LSTM 的 MSE 为 1.960。咱们能够得出的论断是,Informer 在长序列中提供了略微更好的后果,但 LSTM 对于某些短期用例依然可能产生良好的后果。
Spacetimeformer 架构
Spacetimeformer 提出了一种示意输出的新办法。像 Informer 这样的工夫注意力模型表示单个输出标记中每个工夫步长的多个变量的值,它没有思考特色之间的空间关系。图注意力模型容许您手动示意特色之间的关系,但依赖于不能随工夫变动的硬编码图。
Spacetimeformer 联合了工夫和空间注意力办法,创立一个输出标记来示意给定工夫单个特色的值。这有助于模型更多地理解空间、工夫和价值信息之间的关系。
与 Informer 一样,Spacetimeformer 提供的后果比 LSTM 稍好一些。在预测将来 40 小时时,Spacetimeformer 的 MSE 为 12.49,略好于 LSTM 的 MSE 14.29。尽管对于较长的序列,这一裕度会变大,但 Spacetimeformer 尚未为每个用例提供比 LSTM 更好的后果。
用例:微服务架构上的提早
让咱们将工夫序列模型利用于在线精品店。该商店有 11 个微服务,包含容许用户增加和删除商品的购物车服务以及容许用户搜寻单个产品的目录服务。
为了演示对最终用户的影响,咱们将预测用户必须期待每个微服务解决申请的工夫。基于每个服务之前 360 个数据点的模型,咱们对将来的 36 个数据点进行了短期预测,并对将来的 120 个数据点进行了长期预测。
在预测接下来的 36 个数据点时,Informer 产生的 MSE 为 0.6,略优于 LSTM。然而,Informer 须要更多工夫来解决。长模型的后果也是如此:Informer 的预测更精确,但解决工夫更长。
测试
工夫序列的复杂性各不相同,因而测试模型以找到最适宜您的用例的模型十分重要。尽管 LSTM 等传统模型是某些短期工夫序列的无力抉择,但 Informer 和 Spacetimeformer 能够为长期序列提供更精确的预测。随着咱们持续对注意力层以及输出数据的示意形式进行优化,咱们预计性能将会进步。此外,作为开源框架,Informer 和 Spacetimeformer 使装置模型并开始应用数据进行测试变得更加容易。
本文由 mdnice 多平台公布