上下文位置编码 CoPE

CoPE,即 Contextual Position Encoding,是一种创新的位置编码方法,由论文 「Contextual Position Encoding: Learning to Count What’s Important」于 2024 年提出。它突破了传统基于 token 计数的位置编码 (Position Encoding, PE) 的限制,允许位置信息根据上下文条件动态变化,为大型语言模型 (LLMs) 提供了更灵活的序列数据处理能力。

在大型语言模型 (LLMs) 中,注意力 (Attention) 机制虽然能够实现序列元素间的交互,但本身并不包含顺序信息,呈现出排列不变的特性。为了引入顺序信息,通常需要引入位置编码。然而,传统的位置编码方法基于 token 计数,这限制了模型泛化到更高层次抽象的能力,如直接定位序列中的第 i 个句子。

CoPE 通过以下几个关键步骤实现其核心思想:

  1. 上下文向量确定:CoPE 利用上下文向量来确定应该计数的 token 。
  2. 门控机制应用:通过门控机制 (gate mechanism),CoPE 决定哪些 token 在位置测量中被包括。
  3. 相对位置计算:对于给定的当前 token 作为查询向量,CoPE 计算它与序列中之前所有 token 的键向量之间的门值 (gate value),并聚合这些门值来确定每个 token 相对于当前 token 的相对位置。
  4. 插值计算位置嵌入:不同于为每个位置分配固定嵌入向量的方法,CoPE 通过插值 (interpolation) 的方式来动态计算位置嵌入。

CoPE 的优势在于其多维度的灵活性:

  • 多单位测量:CoPE 允许模型根据不同的查询和层,以单词、短语或句子等多种单位来测量距离。
  • 动态适应上下文:CoPE 能够灵活适应不同的上下文环境,提供动态且上下文相关的序列数据处理方式。
  • 性能提升:在计数任务、选择性复制任务和语言建模等任务中,CoPE 展现出了优于传统基于 token 的位置编码方法的性能,特别是在处理分布外数据和需要高泛化能力的任务上。

CoPE 在多头注意力 (Multi-head Attention) 中的应用同样直观:

  • 独立执行:每个注意力头可以独立地执行自己的 CoPE,实现不同的位置测量。
  • 多抽象层次关注:模型能够同时关注不同层次的抽象,例如,一个头可以计数 token,而另一个头可以计数句子。

总结来说,CoPE 通过结合位置编码与上下文信息,为大型语言模型提供了一种更高效、灵活的位置编码策略,有助于模型更深入地理解和处理序列数据中的结构和语义信息。