TempoFormer: 教会 Transformer 时间的概念

想象一下读到朋友发来的一条短信: “我没事。”

单看这句话,它是一个中性的陈述。但如果你知道十分钟前,他们刚刚发了一条关于糟糕分手的帖子呢?或者,如果这条短信是在长时间的沉默三个月后发来的呢?根据上下文和流逝的时间 , 这句话的含义会完全改变。

在自然语言处理 (NLP) 中,像 BERT 这样的标准模型非常擅长理解句子中单词的上下文。然而,它们在理解跨越一系列事件的时间上下文方面却很吃力。它们将一系列帖子视为一个简单的有序列表 (\(1, 2, 3 \dots\)) ,忽略了帖子 1 和帖子 2 之间的间隔是五秒钟还是五天。

今天,我们将深入探讨 TempoFormer , 这是一篇提出新颖架构来解决这一确切问题的研究论文。它介绍了一种将“时间感知”直接融入 Transformer 架构的方法,使模型能够更好地检测情绪、立场或对话话题的变化。

问题: 缺失的“时间”

动态表征学习专注于理解语言内容是如何演变的。这对于以下任务至关重要:

  • 心理健康监测: 检测从积极情绪到消极情绪的突然转变。
  • 立场检测: 观察用户何时改变对政治谣言的看法。
  • 对话脱轨: 注意聊天何时偏离主题。

在这些场景中,最近的一条帖子并不能说明全部情况。你需要历史记录。

识别个人情绪变化时刻任务的改写示例。

如上图 Figure 1 所示,孤立地看最后一条帖子 (“我又恢复单身了”) 可能只是一个关系状态的更新。但如果将其放在之前乐观的帖子时间轴中查看,它代表了行为上的一个急剧转换 (Switch)

当前方法的局限性

为了解决这个问题,研究人员通常采取两步走的方法:

  1. 使用 Transformer (如 BERT) 获取每个单独帖子的向量表征。
  2. 将这些向量输入到循环神经网络 (如 LSTM) 中以对序列进行建模。

虽然这种方法行得通,但并不理想。RNN 速度慢,难以并行化,并且容易在小数据集上过拟合。更重要的是,这种方法将时间视为次要特征或仅仅是一个索引序列,而不是语言理解过程的一个组成部分。

TempoFormer 登场

来自伦敦玛丽女王大学和艾伦·图灵研究所的研究人员推出了 TempoFormer , 这是一种修改 Transformer 架构以使其天生具有“时间感知”能力的模型。

TempoFormer 不依赖 RNN,而是修改了注意力机制本身。它允许模型根据历史帖子在时间上的距离,而不仅仅是它们在列表中的距离,来“关注” (attend) 这些帖子。

架构

TempoFormer 是一个分层模型。它不是一次性处理整个时间轴;它是分层构建理解的。让我们分解一下如下图所示的架构。

5个帖子窗口上的 TempoFormer 架构。

Figure 2 所示,该过程分为三个主要阶段:

  1. 帖子级编码 (局部) : 图的底部显示了单个帖子 (\(U_{i-4}\) 到 \(U_i\)) 。这些帖子通过标准 BERT 模型的前 10 层。在这个阶段,模型只关注帖子内部的单词,创建一个强大的局部表征 (\(H^{10}\)) 。

  2. 流级编码 (全局) : 这是 TempoFormer 与标准 BERT 的分歧点。该模型获取第 10 层的表征,并添加流级位置嵌入 (Stream-level Position Embeddings) 。 这些嵌入告诉模型帖子的顺序。

然后,它使用一种专门的时间旋转多头注意力 (Temporal Rotary Multi-Head Attention, MHA) 机制 (下一节将详细介绍) 来查看帖子之间的关系。这使得当前帖子的表征能够受到先前帖子的影响,并根据它们的时间距离进行加权。

  1. 上下文增强编码: 最后,使用门控与归一化 (Gate & Norm) 机制将全局的“流感知”信息融合回局部的“词级”信息中。这确保了最终的分类既基于使用的特定词语,也基于历史上下文。

秘诀: 时间旋转注意力

这篇论文的核心创新在于它处理注意力的方式。标准的 Transformer 使用位置嵌入 (Positional Embeddings) 来理解单词 A 在单词 B 之前。

最近, 旋转位置嵌入 (RoPE) 变得流行起来 (用于 LLaMA 等模型) 。RoPE 通过在空间中数学地“旋转”标记 (token) 的向量表征来编码位置。旋转角度取决于标记的位置索引 (\(1, 2, 3 \dots\)) 。

RoPE 中两个向量 (查询 \(q\) 和 键 \(k\)) 的点积如下所示:

RoPE 点积公式

这里,\(R\) 是一个旋转矩阵。关键部分是 \(R_{\theta, n-m}\)。这意味着注意力分数取决于两项之间的相对距离 (\(n-m\)) 。

TempoFormer 的创新点: 作者意识到,对于变化检测,索引距离 (\(n-m\)) 的重要性不如时间距离。

TempoFormer 用时间差 (\(\mathbf{t}_n - \mathbf{t}_m\)) 替换了索引差。

旋转矩阵公式

在上面的旋转矩阵中,模型使用实际的时间戳差异 (经过对数变换以处理巨大的间隔) 来确定旋转。这意味着:

  • 相隔 1 分钟发送的两条帖子将具有“小”的旋转差异,从而产生高的注意力兼容性。
  • 相隔 1 个月发送的两条帖子将具有“大”的旋转差异,自然地衰减模型对旧帖子的关注。

这是一种数学上优雅的方法,无需复杂的外部特征即可让 Transformer “感受”到时间的流逝。

融合上下文

一旦模型计算出这些具有时间感知的表征,它就需要将它们与原始的词义结合起来。该论文采用了门控上下文融合 (Gated Context Fusion) 机制。

门控机制公式

最终 CLS 表征公式

在这些方程中,\(\mathbf{g}\) 充当一个学习到的门控。它决定了有多少全局的、时间感知的历史信息 (\(H'_{CLS}\)) 应该与局部的、词级的信息 (\(H_{CLS}\)) 混合。这允许模型动态地平衡上下文: 有时历史最重要,有时当前帖子中的特定词语才是所需的全部。

实验设置

研究人员在三个代表不同时间粒度的多样化数据集上测试了 TempoFormer:

  1. LRS (纵向谣言立场) : 追踪用户随着时间推移是支持还是否认谣言。
  2. TalkLife (变化时刻) : 检测社交媒体时间轴中的情绪转变。
  3. Topic Shift MI (话题转移) : 识别对话何时偏离其主要话题。

数据集统计

Table 1 所示,这些数据集差异很大。“TalkLife”的帖子间隔很大 (数小时) ,而“Topic Shift”发生在实时对话中。

结果: 有效吗?

简短的回答是肯定的。TempoFormer 在所有方面都达到了最先进 (SOTA) 的性能。

所有任务上的最佳 F1 分数。

Table 2 强调了几个主要发现:

  • TempoFormer vs. 基线: 它优于标准 BERT (帖子级) 和复杂的基于 RNN 的模型 (流级,如 BiLSTM 和 Seq-Sig-Net) 。
  • TempoFormer vs. LLMs: 令人惊讶的是,像 Llama-2 (7B) 和 Mistral (7B) 这样的大型语言模型在这些任务上表现不佳,即使使用了少样本提示 (few-shot prompting) 。这表明,虽然 LLM 擅长生成文本,但它们难以进行检测纵向数据中微妙变化所需的特定时间推理。
  • 少数类: TempoFormer 特别擅长检测“罕见”事件——即实际的转换和脱轨——这通常是最难捕捉的。

窗口大小的重要性

既然模型查看的是帖子历史,它应该看多远?作者分析了不同的窗口大小 (\(w=5, 10, 20\) 个帖子) 。

不同上下文窗口大小下的 TempoFormer 结果

Figure 3 显示“更多”并不总是“更好”。

  • LRS 受益于较长的窗口 (\(w=20\)) ,可能是因为谣言立场演变缓慢。
  • TalkLife 在中等窗口 (\(w=10\)) 时达到峰值。
  • 这凸显了 TempoFormer 的灵活性;可以调整时间范围以适应数据集的特定节奏。

“时间旋转”真的很重要吗?

为了证明他们的新注意力机制是性能提升的原因,作者进行了消融研究 (移除模型的部分组件以查看哪里会出问题) 。

TempoFormer 的消融研究

Table 3 揭示了:

  • 移除 时间 RoPE (Temporal RoPE) (替换为标准顺序 RoPE) 导致性能下降。这证实了知道时间间隔比仅知道序列顺序更有价值。
  • 移除 门控与归一化 (Gate & Norm) 融合也显著损害了性能,证明你需要仔细融合全局历史与局部内容。

结论

TempoFormer 代表了动态表征学习向前迈出的重要一步。通过修改旋转嵌入以编码时间而不是位置 , 作者创建了一个能够天生理解时间动态的模型。

主要收获:

  1. RNN 不是唯一的出路: 你不需要 LSTM 来建模历史。如果你调整注意力机制,Transformer 可以做得更好。
  2. 时间是一种特征: 在人类行为中,说话的时间往往与说话的内容一样重要。
  3. 灵活性: 这种架构是“任务无关”的。它可以应用于 BERT、RoBERTa 或潜在的任何基于 Transformer 的模型,赋予其时间感。

对于 NLP 领域的学生和研究人员来说,TempoFormer 证明了我们不应该仅仅将输入视为静态列表。修改核心架构以反映数据的真实世界属性 (如时间) ,可以比简单地把模型做大产生更好的结果。