Wang1997

数据结构-双指针

双指针是一种在算法设计中非常实用且高效的技巧,特别适合处理线性数据结构(如数组、链表、字符串)中的问题。以下是双指针的基本原理和常见使用场景的介绍: 双指针基本原理 双指针的核心思想是使用两个指针变量在数据结构中有规律地移动,以线性时间复杂度解决问题。根据指针的移动方式,双指针可以分为以下两种主要类型: 1. 同向双指针(快慢指针) 原理:两个指针同向移动,通常一个指针(快指针)移...

MultipleNegativesRankingLoss

MultipleNegativesRankingLoss(多负样本排序损失)总结 1. 定义 MultipleNegativesRankingLoss(多负样本排序损失)是一种用于训练嵌入模型的损失函数,特别适用于只有正样本对(如相似文本对、查询与相关文档对)的场景。它通过将一个批次中的所有非正样本作为负样本,来增强模型对正负样本的区分能力。 2. 工作原理 输入为正样本对 (a_...

Transformer源码-位置编码(PositionalEncoder)

Transformer模型自2017年提出以来,已经成为自然语言处理(NLP)领域的主流模型。与传统的循环神经网络(RNN)不同,Transformer模型完全基于自注意力机制,因此在处理长距离依赖关系方面有显著优势。然而,由于Transformer模型缺乏内置的序列顺序信息,必须通过位置编码(Positional Encoding)显式引入位置信息,以便模型能够区分序列中的不同位置。 位置...