股票市场是一个混乱、嘈杂的环境。要理解它,人类交易员不仅仅只看一个数字。他们会查看价格图表 (视觉信息) ,阅读新闻和社交媒体 (文本信息) ,并分析量化指标 (数值信息) 。至关重要的是,他们不仅关注当下,还会观察过去几天或几周的趋势。这种随时间变化的多种数据类型的组合,研究人员称之为时序多模态数据 (temporal multimodal data)

虽然人类可以自然地综合这些信息,但教机器这样做却极其困难。大多数现有的金融模型只关注一种模态——要么是将价格历史作为时间序列进行分析,要么是对新闻标题进行情感分析。很少有模型能在尊重时间流逝的同时,成功地结合视觉、语言和价格行为。

在这篇文章中,我们将深入探讨 MEANT (Multimodal Encoder for Antecedent Information,用于先行信息的多模态编码器) ,这是一篇提出新颖架构来解决该问题的研究论文。我们将探讨作者如何结合计算机视觉、自然语言处理 (NLP) 和独特的时间注意力机制来预测股票动能。我们还将研究 TempStock , 这是为了对该任务进行基准测试而创建的一个海量新数据集。

问题: 跨越模态与时间的数据

在剖析解决方案之前,我们必须理解输入数据的复杂性。金融预测不仅仅关乎现在正在发生什么,还关乎导致现在的过去发生了什么。

  1. 多模态性 (Multimodality) : 信息以不同的形式存在。一条写着“逢低买入!”的推文是文本。一张显示“金叉”的图表是图像。150.00 美元的收盘价是数字。
  2. 时序性 (Temporality) : 这些数据点是按顺序排列的。五天前的推文与五分钟前的推文具有不同的相关性。

现有的架构通常只是简单地拼接这些特征,或者分别处理它们,而没有完全理解它们之间的时间关系。MEANT 模型旨在通过将滞后期 (lag period,即预测前的几天) 视为一个结构化序列来统一这些信息。

基础: MACD 指标

为了创建一个用于股票预测的监督学习问题,作者依赖于一个经典的技术指标: 指数平滑异同移动平均线 (MACD)

MACD 是一个趋势跟踪动能指标。它是使用指数移动平均线 (EMA) 计算的。

Equation for EMA

MACD 由三部分组成:

  1. MACD 线: 12 日 EMA 与 26 日 EMA 之差。
  2. 信号线 (Signal Line) : MACD 线的 9 日 EMA。
  3. 柱状图 (Histogram) : MACD 线与信号线之差。

作者不仅将该指标作为数字使用,还将它们作为视觉图表输入到模型中。

Figure 1: An example of a graph from our MACD data, which displays the MACD (in blue) and the signal line (in red) for MMM (3M) over a 26 day period.

如上图所示,蓝线 (MACD) 与红线 (信号线) 之间的相互作用指示了动能。当蓝线向上穿过红线时,通常被视为“买入”信号。这种视觉表示允许模型像技术分析师一样“看到”趋势。

MEANT 架构

这项研究的核心是 MEANT 模型本身。它是一个基于 Transformer 的架构,旨在摄取滞后期内 (具体为 5 天) 的三种不同数据流:

  1. 图像: MACD 指标的图表。
  2. 语言: 关于特定股票代码的推文。
  3. 价格: 包含 EMA、信号线和 MACD 值的数值向量。

该架构主要分为两个阶段: 模态编码器 (Modality Encoders) (分别处理文本和图像) 和时序编码器 (Temporal Encoder) (随时间结合所有信息) 。

Figure 2: A schematic overview of the MEANT architecture.

让我们分解上图所示的每个组件。

1. 语言和视觉管道

MEANT 是一个仅编码器 (encoder-only) 模型,类似于 BERT。它避免使用循环神经网络 (如 LSTM) ,转而采用纯注意力机制。

语言管道: 推文使用 Fin-BERT 分词器 (专为金融文本设计) 进行分词。编码器使用了一种受 Magneto 模型启发的交错结构,利用子层归一化 (sub-layer normalization) 来提高稳定性。对于位置嵌入——告诉模型单词顺序的信息——MEANT 使用了 xPos 嵌入,这是旋转位置编码的一种变体,有助于模型外推到不同的序列长度。

视觉管道: 这是模型最具创意的地方。作者没有使用标准的卷积神经网络 (CNN) 来查看静态图像,而是使用了 TimeSFormer 。 这种架构最初是为视频处理设计的。

为什么要用视频处理器来处理股票图表?因为输入不仅仅是一张图表;它是滞后期内 (5 天) 的一系列图表。TimeSFormer 将这些图表视为视频中的帧,从而允许它提取“时空特征 (spatiotemporal features) ”——即视觉图表随时间的变化。

2. 从日编码到序列编码

语言编码器对单日的输出是一个张量,代表该日所有推文的特征。然而,时间注意力机制需要一个关于“第 \(t\) 天”的简明表示。

作者提出了两种方法将语言输出 (\(L_{out}\)) 压缩为序列向量 (\(L_{seq}\)) :

方法 A: 平均池化 (Mean Pooling) 这只是简单地取特征的平均值。

Equation for Mean Pooling

方法 B: 序列投影 (Sequence Projection) 这使用一个学习到的投影矩阵和非线性激活函数 (GELU) 来压缩信息。这有效地学习了该日的“潜在表示”。

Equation for Sequence Projection

正如我们将在结果中看到的,这两种方法的选择在很大程度上取决于所使用的具体数据集。

3. 时间注意力机制

一旦文本和图像被编码为滞后期内每一天的向量,它们就会与原始数值价格数据 (\(M\)) 连接。这创建了一个统一的张量 \(T\),代表了过去 5 天内股票的多模态状态。

Equation for T vector

现在来到 MEANT 最独特的创新点: 查询定位 (Query-Targeting)

标准的自注意力机制允许每个令牌查看其他所有令牌。然而,在股票预测中,我们特别感兴趣的是历史 (第 \(t-5\) 到 \(t-1\) 天) 如何预测目标 (第 \(t\) 天) 。

作者强制注意力机制关注向目标日的过渡。他们计算一个特殊的查询矩阵 (\(Q_t\)) ,该矩阵源自目标日的前一天 (\(T_{t-1}\)) 和一个学习到的参数 \(q\)。

Equation for Qt

然后,使用这个针对性的查询与整个序列的键 (\(K\)) 和值 (\(V\)) 进行注意力计算:

Equation for Temporal Attention

这产生了一个时间输出,该输出专门根据预测所需的时刻,对历史推文和价格进行了加权。

4. 分类

最后,来自语言流 (\(T_{lang}\)) 和图像流 (\(T_{img}\)) 的时间输出被连接成一个最终向量。

Equation for Final T

该向量通过一个多层感知机 (MLP) 头,产生最终的二元分类: 买入卖出

TempStock 数据集

为了训练和测试这个复杂的架构,作者需要模态对齐的数据。现有的数据集往往缺乏视觉图表组件,或者没有以所需的特定滞后格式组织数据。

他们推出了 TempStock , 这是一个涵盖了从 2022 年 4 月到 2023 年 4 月标准普尔 500 指数中所有公司的数据集。

数据结构

对于每个目标日 \(t\),输入包含 5 天的历史数据:

  • 5 个数值向量 (\(M\)) : EMA、信号线、柱状图、MACD 值。
  • 5 个推文集 (\(X\)) : 当天所有提及该股票代码的推文。
  • 5 张图表 (\(G\)) : MACD 图表的图像。

Equation for M input Equation for X input Equation for G input

标签: 策略

该数据集是一个二元分类任务。标签由 MACD 信号交叉策略决定,这是一种常见的技术分析信号。

正向 (买入) 信号: MACD 线上穿信号线。这表明看涨动能的开始。

Equation for Buy Signal

负向 (卖出) 信号: MACD 线下穿信号线。这表明看跌动能的开始。

Equation for Sell Signal

该数据集在正负信号之间惊人地平衡,这在金融数据集中很少见,并且免除了人工过采样的需要。

Table 2: TempStock splits

值得注意的是,作者过滤掉了没有发生交叉或推文量不足的日子,导致数据集纯粹专注于这些动能转变事件。

实验结果

作者训练了三个版本的模型: MEANT-base、MEANT-large 和 MEANT-XL。他们将这些模型与强大的基准模型进行了比较,包括:

  • TEANet: 该类任务之前的最先进技术 (SOTA) 。
  • LSTM: 标准的循环神经网络。
  • ViLT & VL-BERT: 通用视觉语言模型 (经过微调) 。

在 TempStock 上的表现

结果令人信服。随着模型尺寸的增加,性能显著提高。

Table 4: TempStock-Large Experiment Results

结果的关键要点:

  1. 规模很重要: MEANT-XL 取得了 0.8440 的 F1 分数,在所有模型中最高。
  2. 多模态胜出: MEANT 的表现优于单模态基准 (如仅文本的 FinBERT 或仅视觉的 TimeSFormer) 。
  3. TEANet 很强: 有趣的是,TEANet (0.7898) 的表现优于基础版 MEANT (0.7815)。TEANet 使用 LSTM 骨干,这天然适合时间序列数据。然而,随着 MEANT 扩展到“Large”和“XL”,其基于注意力的架构使其超越了循环基准模型。
  4. 通用模型表现挣扎: 通用多模态模型如 ViLT 表现不佳 (F1 0.5483) 。这凸显了金融预测需要专门处理“滞后期”的架构,而不仅仅是查看单个图像-文本对。

混淆矩阵

为了可视化性能,我们可以查看混淆矩阵。完美的模型只会在对角线上有值 (从左上到右下) 。

这是 MEANT-XL : Figure 3: Confusion matrix for MEANT-XL on TempStock

与之相比的是 TEANet : Figure 4: Confusion matrix for TEANet on TempStock

虽然 TEANet 的表现尚可,但 MEANT-XL 显示出更紧密的正确预测聚类,特别是在识别买入信号 (右下象限) 方面。

消融实验: 什么最重要?

任何深度学习论文中最有趣的部分之一都是消融实验,研究人员会移除模型的部分组件以观察其影响。

作者发现各模态的价值存在明显差异:

  1. 文本为王: 移除图像模态导致性能小幅下降。然而,移除 推文 (Tweet) 模态导致性能大幅崩溃。
  2. 价格至关重要: 毫不奇怪,移除价格数据 (这与标签严格相关) 也会严重降低性能。

这表明,虽然图表提供了有用的背景信息,但社交媒体 (推文) 中的短期情绪包含对即时动能转变具有高度指示性的特征。图表中的长程视觉信息不如市场的即时文本反应具有预测性。

Table 6: TempStock MEANT-variant Results

在 StockNet 上测试

为了确保模型不仅仅是过拟合了他们自己的数据集,作者还在 StockNet 上测试了 MEANT,这是一个现有的外部基准数据集。StockNet 更难,因为它依赖于原始价格变动 (涨/跌) 而不是清晰的 MACD 交叉,并且它不包含图像。

作者调整了 MEANT 以在没有视觉组件的情况下运行 (MEANT-Tweet-price) 。

Table 5: StockNet-dataset experiment results

在这里,MEANT-XL 达到了 82.15% 的准确率,粉碎了之前的 SOTA (TEANet),后者的准确率约为 67%。这证明了时间注意力机制——特别是查询定位策略——在提取序列金融数据的依赖关系方面非常有效,即使没有图像组件也是如此。

序列投影 vs. 平均池化

回顾一下压缩每日语言特征的两种方法: 序列投影 (学习一个向量) 与平均池化 (取平均值) 。

实验揭示了一个细微差别:

  • TempStock: 序列投影效果更好。
  • StockNet: 平均池化效果更好。

Table 7: TempStock Seq proj results

作者假设,因为 StockNet 严重依赖嘈杂的推文进行二元价格预测,参数化的投影可能会“过度思考”或丢弃关键的空间信息。平均池化作为一个更安全、降噪的摘要。相反,TempStock 的标签源自更清晰的数学指标 (MACD) ,允许模型学习更复杂、有用的投影而不过拟合噪声。

结论与未来影响

MEANT 论文代表了金融机器学习向前迈出的重要一步。它超越了分析单一数据类型或单一时间点的局限性。通过结合计算机视觉 (阅读图表) 、NLP (阅读情绪) 和新颖的时间注意力机制 (理解历史) ,它取得了最先进的结果。

主要收获:

  1. 时间注意力有效: 强制模型基于目标前一天查询历史数据,是时间序列预测的一种强大的归纳偏置。
  2. 规模提升金融模型: 较大的基于 Transformer 的模型 (MEANT-XL) 显著优于较小的循环模型 (LSTM/TEANet) 。
  3. 语言驱动动能: 在这项研究的背景下,人们了什么 (推文) 比图表起来如何更能预测动能转变。

虽然作者严格警告不要将其用于金融决策 (所有负责任的研究人员都应如此) ,但该架构为更复杂的“AI 交易员”奠定了基础,这些交易员可以像人类一样处理信息——但能够在几秒钟内阅读数百万条推文和图表。