对比预测编码 (CPC) 是一种自监督学习 (SSL) 技术,通过预测基于过去上下文的未来数据点来训练模型提取有意义的表示。核心思想是学习能够捕捉音频、文本或图像等序列数据底层结构的潜在表示,通过对比正确的未来预测与不正确的预测来实现。CPC 不依赖标记数据,而是使用对比损失函数,鼓励模型区分真实的未来观察和人工生成的负样本。这种方法使模型无需人工标注即可学习有用的特征,在语音识别、自然语言处理和图像分析等任务中非常有效。
CPC 主要分为三个步骤。首先,编码器将输入数据(例如,音频帧或图像块)处理成压缩的潜在表示。其次,自回归模型(如 GRU 或 Transformer)将这些潜在向量聚合成一个上下文向量,总结序列的历史信息。第三,模型利用此上下文预测未来多个时间步的潜在表示。例如,在音频处理中,编码器可能将原始波形片段转换为嵌入,自回归模型可以预测接下来 0.5 秒音频的嵌入。为了训练模型,应用对比损失:对于每个正确的未来预测,模型需要在从其他序列中随机采样的“负样本”集中识别出它。这迫使模型学习具有区分性和时间连贯性的表示。
CPC 在 SSL 中的一个实际应用是语音识别。在此应用中,原始音频被分割成重叠的帧,模型学习根据过去的上下文预测未来帧的潜在嵌入。通过将真实的未来帧与不相关的音频片段进行对比,模型学习捕捉对下游任务(如说话人识别)有用的语音或语义特征。类似地,在计算机视觉中,CPC 可以通过将图像视为一系列图像块来应用。模型预测序列中后续图像块的潜在表示,鼓励其学习空间关系或物体结构。CPC 的效率源于它对局部结构的关注以及能够扩展到大型数据集的能力,因为负采样避免了比较所有可能对的计算成本。这使其成为跨领域 SSL 的通用工具。