概率视角下的负采样(Negative Sampling)

从零实现词嵌入模型:Skip-gram与负采样的数学原理与Python实践 词嵌入模型是自然语言处理(NLP)的基础技术,它将离散的词汇映射为连续的稠密向量,从而让计算机能够以数学方式“理解”语义。其核心原理基于分布式假设,即语义相似的词拥有相似的上下文环境。通过将词汇表示为向量,词与词之间的语义关系(如同义、反义、类比)便可通过向量空间中的几何运算(如余弦相似度、向量加减)来量化计算,这为下游的文本分类、情感分析、机器翻译等任务提供了强大的特征表示。本文聚焦于经典的Skip-gram模型及其关键的负采样技术,通过Python和NumPy从零实现,深入剖析其梯度推导与训练过程,并探 阅读详情

前言

负采样(Negative Sampling)是自然语言处理中用于高效训练词向量(如 Word2Vec)的核心技术之一。它通过将大规模多分类问题转化为一系列二分类问题,显著降低计算复杂度,同时保持模型性能。本文将从数学原理、概率建模、梯度推导到工程实现,系统讲解负采样技术,确保科学严谨性与正确性。


🎯 1. 背景:为什么需要负采样?

在词向量模型(如 Skip-gram)中,目标是最大化给定中心词 wcw_cwc​ 时其上下文词 wow_owo​ 出现的概率:

P(wo∣wc)=exp⁡(uwo⊤vwc)∑w′∈Vexp⁡(uw′⊤vwc) P(w_o \mid w_c) = \frac{\exp(\mathbf{u}_{w_o}^\top \mathbf{v}_{w_c})}{\sum_{w' \in \mathcal{V}} \exp(\mathbf{u}_{w'}^\top \mathbf{v}_{w_c})} P(wo​∣wc​)=∑w′∈V​exp(uw′⊤​vwc​​)exp(uwo​⊤​vwc​​)​

其中:

  • vwc∈Rd\mathbf{v}_{w_c} \in \mathbb{R}^dvwc​​∈Rd:中心词的输入向量;
  • uwo∈Rd\mathbf{u}_{w_o} \in \mathbb{R}^duwo​​∈Rd:上下文词的输出向量;
  • V\mathcal{V}V:词汇表,大小常为 104∼10610^4 \sim 10^6104∼106。

❗ 问题:Softmax 分母计算代价高

  • 每次计算需遍历整个词汇表;
  • 梯度更新需对所有词向量求导;
  • 时间复杂度为 O(∣V∣)O(|\mathcal{V}|)O(∣V∣),在大规模语料上不可行。

✅ 解决方案:负采样(Negative Sampling)

核心思想:

不直接建模完整 Softmax,而是构造一个二分类任务:区分“真实上下文词”与“随机采样的负例词”。

优势:

  • 计算复杂度降至 O(K)O(K)O(K),KKK 为负样本数(通常 K=5∼20K=5\sim20K=5∼20);
  • 易于实现,训练稳定;
  • 在实践中性能媲美甚至优于分层 Softmax。

📐 2. 数学建模:从概率视角理解负采样

在原始的 Skip-gram 模型中,我们希望最大化以下联合概率:

∏t=1T∏−m≤j≤m,j≠0P(D=1∣w(t),w(t+j))\prod_{t=1}^{T} \prod_{-m \leq j \leq m, j \neq 0} P(D=1 \mid w^{(t)}, w^{(t+j)})t=1∏T​−m≤j≤m,j=0∏​P(D=1∣w(t),w(t+j))
其中:

  • w(t)w^{(t)}w(t) 是中心词,
  • w(t+j)w^{(t+j)}w(t+j) 是上下文词(在窗口内),
  • D=1D=1D=1 表示“这两个词共现”是一个正样本事件。

但仅使用正样本会导致模型倾向于将所有词向量推向无穷大(因为当所有词向量相同时,P(D=1)→1P(D=1) \to 1P(D=1)→1),这没有意义。因此引入负采样:对于每个正样本 (wc,wo)(w_c, w_o)(wc​,wo​),从预定义分布 P(w)P(w)P(w) 中采样 KKK 个噪声词 wkw_kwk​,这些是“负样本”。

我们要估计的是:

P(w(t+j)∣w(t))P(w^{(t+j)} \mid w^{(t)})P(w(t+j)∣w(t))

即:给定中心词 w(t)w^{(t)}w(t),出现上下文词 w(t+j)w^{(t+j)}w(t+j) 的概率。

在负采样的框架下,我们将这个条件概率近似为:

“正样本发生的概率 × 所有负样本不发生的概率”

也就是说,我们假设事件 S:woS: w_oS:wo​ 是 wcw_cwc​ 的真实上下文词,以及 N1,…,NK:wkN_1, \ldots, N_K: w_kN1​,…,NK​:wk​ 不是 wcw_cwc​ 的上下文词,是相互独立的。

于是我们可以写:

P(w(t+j)∣w(t))≈P(正例)×∏k=1KP(负例k)P(w^{(t+j)} \mid w^{(t)}) \approx P(\text{正例}) \times \prod_{k=1}^{K} P(\text{负例}_k)P(w(t+j)∣w(t))≈P(正例)×k=1∏K​P(负例k​)

即:

P(w(t+j)∣w(t))≈P(D=1∣w(t),w(t+j))∏k=1KP(D=0∣w(t),wk)P(w^{(t+j)} \mid w^{(t)}) \approx P(D=1 \mid w^{(t)}, w^{(t+j)}) \prod_{k=1}^{K} P(D=0 \mid w^{(t)}, w_k)P(w(t+j)∣w(t))≈P(D=1∣w(t),w(t+j))k=1∏K​P(D=0∣w(t),wk​)

其中 wk∼P(w)w_k \sim P(w)wk​∼P(w) 是从数据分布中采样的噪声词。

对负采样(negative sampling)的一些理解 这是负采样的一部分,目的是与已观察到的物品 i 进行比较,以计算 BPR 损失,以便推动模型更好地区分用户对已观察到的物品和未观察到的物品的兴趣。这是通过负采样来实现的。具体来说,负采样在这里用于生成未观察到的物品(负样本),以便在BPR损失中比较已观察到的物品和未观察到的物品之间的差异。通过随机或其他采样策略,从未观察到的物品中选择一些物品作为负样本,然后计算它们与已观察到的物品之间的兴趣差异,如公式(15)所示。BPR损失函数的目标是鼓励模型使观察到的物品的预测兴趣高于未观察到的物品的预测兴趣。 阅读详情

相关推荐

Negative Sampling 负采样详解

在word2vec中,为了简化训练的过程,经常会用到Negative Sampling负采样这个技巧,这个负采样到底是怎么样的呢?之前在我的博文 word2vec算法理解和数学推导 中对于word2vec有了很详细的数学推导,这里主要讲解一下负采样是如何降低word2vec的复杂度的。 首先我们直接写出word2vec的目标函数,假设有一句话:query=w1,w2,w3,..,wnquery =...

深圳湾刘能的博客 1万+

负采样(Negative Sampling)

来源:Coursera吴恩达深度学习课程 在Word2Vec文章中,我们见到了Skip-Gram模型如何构造一个监督学习任务,把上下文映射到了目标词上,它如何学到一个实用的词嵌入(word embedding)。但是它的缺点(downside)就在于softmax计算起来很慢。因此,学习一个改善过的学习问题叫做负采样(negative sampling),它能做到与Skip-Gram模型相似的事情,但是用了一个更加有效的学习算法,让我们来看看。 在本视频中大多数的想法源于这篇论文:Distribut

csdn_xmj的博客 1万+

从影响力传播视角重构多关系图链接预测新方法

链接预测是图计算中的核心任务,旨在判断节点间是否存在潜在关联。在真实场景中,社交网络、知识图谱和推荐系统普遍呈现多关系图结构,节点间往往存在多种类型的边,使得预测难度显著提升。传统图神经网络通常将关系视作局部邻域聚合中的“边类型”,难以刻画影响沿关系路径传导的机制。本文从影响力传播视角出发,将链接预测建模为路径上的影响传导过程,讨论如何通过关系路径采样、序列编码与注意力聚合,捕捉多跳关系链的组合语义,从而提升预测的可解释性与准确性。这一思路在社交推荐、知识图谱补全、风控关联挖掘等场景中具有实用价值。围绕多关

weixin_30740581的博客 302

负采样,yyds!

文 | 徐澜玲源 | RUC AI Box引言:负采样方法最初是被用于加速 Skip-Gram 模型的训练,后来被广泛应用于自然语言处理 (NLP)、计算机视觉 (CV) 和推荐系统 (R...

夕小瑶科技说 1万+

从N-Gram到Transformer:一条可落地的LLM技术演进路径

语言模型不是凭空出现的黑箱,而是由基础概率建模、语义向量表示到动态上下文理解逐步演进而来的工程解法。N-Gram揭示了统计语言模型的数据稀疏与语义鸿沟问题;词向量(Embedding)通过高维空间映射实现语义相似性计算和类比推理;Transformer则借助Self-Attention机制解决静态表征局限,支持长程依赖与上下文敏感的动态权重分配。这一路径不仅体现AI底层原理的递进逻辑,更直指实际应用中的关键瓶颈——如中文分词难题、OOV处理、位置感知缺失及训练稳定性。理解它,是掌握大模型调优、微调与领域适配

weixin_30855099的博客 393

NLP——分布式语义进阶:从Word2Vec到Skip-grams的实战解析

本文深入解析了从Word2Vec到Skip-gram模型的分布式语义进阶之路。通过对比CBOW与Skip-gram的核心思想,详细剖析了Skip-gram的模型结构、负采样等关键训练技巧,并提供了基于Gensim库的完整实战训练流程与参数调优指南,帮助读者掌握这一NLP基础技术的精髓与应用。

weixin_29188043的博客 382

【word2vec】负采样(Negative Sampling)

负采样是Word2Vec中用来加速模型训练的一种技术。它通过从词汇表中随机选择一些负样本来减少计算量,从而使模型能够在大规模数据集上高效训练。负采样在 Skip-gram 和 CBOW 模型中得到了广泛应用,是生成高质量词向量的核心技术之一。虽然负采样在计算效率上有明显优势,但它也有一定的局限性,特别是在负样本选择和细节学习方面。

彬彬侠的博客 2826

隐空间动力学几何建模:零样本策略迁移的鲁棒实现路径

在强化学习与具身智能落地中,策略跨环境迁移常因隐状态表征失真而失效。传统方法将隐状态视为静态欧氏点,忽视其内在动力学演化所具有的黎曼流形结构——即状态转移轨迹天然具备曲率、测地线与自适应度规等几何属性。本文聚焦‘Latent Dynamics Geometries’这一核心概念,揭示如何通过雅可比驱动的切空间建模、测地线对齐约束与动态度规学习,使策略在无标签、无微调前提下保持物理一致性。结合对比学习(尤其是曲率感知负采样),有效剥离观测噪声,聚焦动力学本质。该方法已在机器人控制、工业仿真与游戏AI中验证其对

weixin_34211761的博客 307

从博弈论视角看Negative Sampling:如何让模型学会‘选择性忽略’

本文从博弈论视角重新审视Negative Sampling技术,揭示其在Word2Vec训练中的智能决策机制。通过构建动态对抗训练框架和多臂老虎机模型,探讨如何优化负采样策略以提升模型性能,实现约30%的收敛速度提升和显著增强的鲁棒性。文章还提供了对抗性负采样等实践策略,为自然语言处理模型的训练效率优化提供新思路。

dell8的博客 184

《现代人工智能基础》深度解读:从数学到工程实践

人工智能作为当今科技发展的核心驱动力,其理论基础建立在数学、统计学和计算机科学之上。从线性代数到概率图模型,数学工具为机器学习算法提供了坚实的理论基础。在实际工程应用中,监督学习框架、深度学习架构和强化学习策略等技术,通过优化算法和正则化方法解决了过拟合、梯度消失等典型问题。特别是在推荐系统、自然语言处理等场景中,Embedding技术和特征工程方法显著提升了模型性能。通过系统学习《现代人工智能基础》这类经典教材,开发者能够建立从理论推导到代码实现的完整知识体系,掌握处理实际AI项目中数据预处理、模型选择等

weixin_33671935的博客 421

Simplify and Robustify Negative Sampling for Implicit Collaborative Filtering (Nips‘20) 论文小结

摘要 在基于隐式反馈的协同过滤中,负采样(negative sampling)是从大量的unlabeled data中获取负样本标签比较常用和流行的方法。然而,负采样的效率和有效性这两个问题仍然没有被很好的解决,因为它们使用比较复杂的结构,并且忽视了 false negative样本的风险。本文首先通过实验观察,提供了一个关于负样本比较新颖的理解。作者发现,在模型学习过程中只有一小部分样本比较重要,并且假负例(FN)在许多训练迭代中倾向于有稳定的预测。基于此发现,作者提出了一个Simplify and Ro

Marcus-Bao的个人主页 739

双塔模型中的负采样

推荐模型中双塔模型早已经普及.一个塔学用户表达.一个塔学item表达.很多双塔模型用各种各样的in-batch负采样策略.十方也是如此.往往使用比较大的batchsize,效果会比较好,但...

Kaiyuan_sjtu的博客 1334

DS250DF410寄存器配置实战:从原理到调试的高速SerDes信号优化指南

在高速串行通信领域,SerDes(串行器/解串器)技术是实现芯片间高速数据传输的核心。其工作原理是通过时钟数据恢复(CDR)从串行数据流中提取时钟,并利用均衡技术补偿信道损耗。这项技术的核心价值在于突破PCB走线或电缆的带宽限制,确保在25Gbps及以上速率下数据的可靠传输。其应用场景广泛覆盖数据中心、高性能计算和通信设备中的高速背板、光模块及芯片互连。本文以TI的DS250DF410多通道重定时器为例,深入剖析其寄存器配置,特别是如何通过精细调控其自适应均衡器和眼图监测模块,实现对高速链路的信号整形与质量

aodiyi6351的博客 384

DGL 链接预测小批次训练实战:负采样、邻居采样器与训练循环全解析

本文是 DGL(Deep Graph Library)用户指南"小批次训练"章节(`docs/source/guide_cn/minibatch.rst`)第 6.3 节的深度展开,核心主题是**针对链接预测(Link Prediction)任务的邻居采样训练方法**:如何复用节点/边分类的邻居采样器,通过负采样(Negative Sampling)为每个小批次生成"不存在的边",并在此基础上改造

gitblog_00658的博客 370

自锁电路设计

Hi,uu们,是不是经常要用到自锁电路,通常不是使用555芯片就是用比较器来做自锁,今天我们来简单看下自锁电路的设计.图1采用了比较器构建了一个自锁电路,采用低电平复位,当需要复位的时候志需要将反向端的二极管拉低一下即可,免去 三极管控制同相端和电源短接的麻烦。图1:比较器构建的自锁电路也可以使用555去构建,如下图2所示.图2:使用555构建的自锁电路工作原理见555的真值表,真值表如表1所示.表1:555电路真值表相对来说555还是比较贵,所以我就想能不能有个便宜的方法做个自锁电路,构建电路如下图3所示

weixin_43884675的博客 7064

SIGIR 2026:信息检索前沿技术与投稿指南

信息检索(Information Retrieval, IR)是计算机科学中处理大规模数据检索的核心技术,其基本原理是通过算法模型从海量数据中高效提取相关信息。随着深度学习的发展,神经信息检索(Neural IR)和多模态检索成为研究热点,如稠密检索模型(DPR)和跨模态预训练(CLIP)等技术的应用显著提升了检索精度。这些技术不仅在学术领域具有重要价值,还在电商搜索、医疗检索等实际场景中展现出巨大潜力。SIGIR作为信息检索领域的顶级会议,汇聚了全球顶尖学者和工业界专家,是展示最新研究成果的重要平台。本文

weixin_29189363的博客 285

自然语言处理--Word Embedding(词嵌入)--Word2Vec(词向量)算法理论

一 Word2Vec基础 1 one-hot编码(古老的Word Embedding算法模型) 1)概念 one-hot编码主要采用N位状态寄存器来对N位状态编码,并且仅有一个状态编码为1,其他状态编码为0 2)缺点 尽管简单,但是当分词数量过于庞大的时候(如百万级别),会带来维度灾难 2 CBOW(ContinuousBag of Words) 1)核心思想 使用特定分词的...

weixin_35733800的博客 2157

从机械臂示教到厨房做饭:ACT模仿学习如何让机器人更“人性化”?

本文探讨了ACT(Action Chunking with Transformers)模仿学习技术如何让机器人更“人性化”,特别是在厨房等复杂场景中的应用。通过动作分块(Action Chunking)和时态融合(Temporal Ensemble)技术,机器人能够像人类一样记忆和执行复杂任务,如烹饪。文章还分析了ACT在家庭场景中的落地挑战及其在康复医疗、柔性制造等领域的跨领域应用潜力。

weixin_30613343的博客 255

一张调用链看懂全链路:Pinpoint 从 Java Agent 接入到慢请求定位完整实战

用户反馈下单页打开要 5 秒,日志翻了一晚上也没法定位。把全链路追踪工具 Pinpoint 接到应用上后,同一个请求,入口、Controller、SQL 和每段耗时在一张调用链视图里全部看清了——5 秒,其实耗在一条 MySQL 查询上。 今天按这次排障的路线倒过来讲:先给你看"透视片"长什么样、怎么读,再讲这张图是怎么拍出来的、应用怎么接入、怎么让图更清晰。读完你能独立把 Pinpoint 跑

gitblog_00263的博客 263

Python爬取拼多多商品数据保姆级教程(附源码及效果图)

本文介绍了使用Python爬取拼多多商品数据的完整教程。通过DrissionPage库模拟浏览器操作,利用正则表达式提取嵌入在HTML中的商品数据(关键步骤是从window.rawData变量获取),解析后转换为结构化数据并导出Excel。教程包含八大步骤:环境配置、浏览器初始化、网络监听、搜索模拟、数据提取(核心是正则匹配JSON)、数据验证、字段解析和Excel导出,最后提供了封装好的函数可直接调用。该方法特别适合课程作业或毕业设计获取电商数据,能爬取商品名称、价格、销量等关键信息,处理了价格单位转换等

weixin_46449236的博客 2077

InfiniBand(IB)实战指南:从硬件配置到性能优化

本文是一份详尽的InfiniBand实战指南,涵盖从硬件选型、部署到驱动配置、性能优化的全流程。重点解析了InfiniBand作为AI训练与高性能计算(HPC)核心网络的优势,特别是其支持的RDMA技术如何实现微秒级低延迟。文章提供了硬件匹配、NCCL压测、内核参数调优及在PyTorch分布式训练中启用IB的实操步骤,旨在帮助工程师构建和优化高性能计算集群。

mqtt6iot的博客 578

从Word2Vec到BERT:深入聊聊PMI(点间互信息)如何成为现代词嵌入的“基石”

本文深入探讨了点间互信息(PMI)如何成为从Word2Vec到BERT等现代词嵌入技术的核心基础。通过分析PMI的数学定义及其在语言认知中的作用,揭示了其在Word2Vec、GloVe和Transformer模型中的关键影响,并提供了实践中的应用技巧,帮助读者理解PMI如何塑造自然语言处理的底层逻辑。

weixin_30825199的博客 399

TEA-Tiny Encryption算法在FPGA的实现

在FPGA原型中,我们定义了一个TEA_FPGA模块,该模块包含一个输入数据端口(plain)、一个输入密钥端口(key)和一个输出数据端口(cipher)。在模块中,我们通过32轮的循环处理来实现TEA算法的加密过程,并将最终结果存储在cipher变量中。由于FPGA硬件的高速性能,这种基于HDL的TEA算法实现可以在短时间内完成大量的数据加密处理,从而提高加密效率和性能。总之,在FPGA中实现TEA算法可以大大提高加密效率和性能,通过使用硬件描述语言HDL来实现可以更高效、更快速地完成数据加密操作。

BitSlinger的博客 272

推荐系统双塔模型:从召回与精排的本质差异到样本构造的艺术

在推荐系统与机器学习领域,召回和精排是两个核心且紧密关联的技术模块。召回的本质是解决“有和无”的问题,其核心目标是从海量候选集中快速区分用户“感兴趣”与“不感兴趣”的内容,这通常通过高效的双塔模型实现。双塔模型通过学习用户和物品的向量表示,并计算其内积相似度,构建一个高效的“兴趣过滤器”。其技术价值在于能以极低的计算成本,在百万级甚至亿级规模的候选池中进行初步筛选,为后续的精排阶段提供高质量的候选集。在应用场景上,它广泛用于信息流、电商、视频等平台的推荐第一步。为了训练一个有效的双塔召回模型,正负样本的构造

weixin_30457551的博客 310

使用 MATLAB/Simulink + Reinforcement Learning Toolbox 构建一个基于强化学习的永磁同步电机(PMSM)自适应控制仿真系统

随着人工智能(AI)技术的快速发展,强化学习(Reinforcement Learning, RL)在控制系统中的应用日益广泛。在电机控制领域,传统的PID控制虽然成熟稳定,但在面对非线性、时变、不确定负载等复杂工况时,其控制性能可能受限。而强化学习通过与环境的交互学习,能够实现在线自适应控制策略优化,显著提升系统的鲁棒性与响应速度。本教程将带你使用构建一个基于强化学习的永磁同步电机(PMSM)自适应控制仿真系统,实现从控制策略设计、环境建模、训练到仿真的全过程。当前转速(ω)

amy_mhd的博客 407

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

EGES召回算法实战:从Graph Embedding到Side Information的冷启动突围

在推荐系统链路中,召回决定了候选集的上限,精排模型再精准也难以弥补召回环节的缺失。传统向量召回方法如item2vec依赖线性行为序列,DeepWalk虽引入图结构,但对稀疏商品和冷启动场景仍力不从心。图嵌入技术通过将商品映射为低维向量,并在图上进行随机游走,能捕捉更丰富的关联结构。EGES作为阿里提出的经典算法,在Graph Embedding基础上引入类目、品牌、价格带等Side Information,以自适应加权平均方式融合多源信息,显著提升长尾商品与新品的召回效果。该方案工程实现简洁,适合电商与内容

weixin_34032792的博客 485

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: Transformer模型学习【附代码】
下一篇: 分层 Softmax 详解
LETTER•
博客等级 码龄3年 62粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值