技术指南

负采样与噪声对比估计

负采样和噪声对比估计 (NCE) 是让模型学习大量词汇的技巧,而无需计算昂贵的完整 softmax。

概述

负采样和噪声对比估计 (NCE) 是让模型学习大量词汇的技巧,而无需计算昂贵的完整 softmax。他们不是对每一个可能的输出进行评分,而是教导模型从一些假(负)例子中区分真实(正)例子。

负采样和噪声对比估计是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。

深入探讨

当词汇表有数十万个单词时,普通的 softmax 必须对每个训练步骤的每个单词进行归一化——太慢了。噪声对比估计将问题重新构建为二元分类:给定目标和从已知分布中提取的一些“噪声”样本,学习将真实样本与噪声区分开,这会隐式恢复所需的概率,而无需显式归一化。负采样由 word2vec 的 Skip-Gram 模型普及,是一个简化的表亲:对于每个真实(单词、上下文)对,它会采样 k 个负样本,并使用 sigmoid 目标训练模型,为真实对分配高分,为假对分配低分。两者都将昂贵的多类问题转化为许多廉价的二元问题,使大规模嵌入训练变得可行。噪声分布的选择(通常是一元组的 3/4 次方)会严重影响质量。

技术洞察

NCE 通过对数据与噪声进行分类来估计模型,并且随着噪声样本数量的增加,它可以证明通过适当的归一化 softmax 来近似最大似然。负采样完全放弃了 NCE 的归一化项,优化了 log σ(正分数) + Σ log σ(−负分数)。这使得它更快,但不再是一致的密度估计器——它是为了学习良好的嵌入而不是校准概率而调整的。从平滑的一元分布(频率^0.75)中采样负数可以平衡常见词和罕见词。

掌握负采样和噪声对比估计

负采样和噪声对比估计 (NCE) 是让模型学习大量词汇的技巧,而无需计算昂贵的完整 softmax。他们不是对每一个可能的输出进行评分,而是教导模型从一些假(负)例子中区分真实(正)例子。负采样和噪声对比估计是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。为了建立深入的理解,请将负采样和噪声对比估计视为一种操作模型,而不是单个功能:定义期望的结果,澄清假设,并将系统可以可靠地完成的任务与仍需要专家判断的任务分开。

在实践中,强大的团队使用负采样和噪声对比估计来根据可靠性和成本优化架构、数据和基础设施选择。他们记录明确的成功标准,根据实际数据和工作流程进行测试,并根据观察到的失败模式而不是一次性基准测试胜利进行迭代。这就是理论理解转变为跨产品、政策和运营的持久能力的地方。

多年来,架构决策决定着性能和运营成本。与此同时,优化一个基准测试可以隐藏更广泛的系统弱点。最具弹性的方法是将实验速度与治理规则结合起来:运行试点、捕获证据、发布决策日志,并随着模型行为、用户期望和监管要求的发展不断更新保障措施。

战略影响

多年来,架构决策决定着性能和运营成本。

多年来,架构决策决定着性能和运营成本。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

更好的工程选择可以减少生产中的可靠性事故。

更好的工程选择可以减少生产中的可靠性事故。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

负采样和噪声对比估计的未来

核心思想——通过对比正样本和负样本来学习——现在支撑着现代视觉、语言和推荐的自我监督和对比表征学习。未来的工作重点是硬负例挖掘(选择信息丰富的负例而不是随机负例)、消除假负例的偏差,以及通过大型内存库或批量采样以低廉的成本缩放负例。随着模型的增长,只要输出空间或候选集巨大,例如检索和大规模推荐器,有效的采样目标仍然至关重要。

现实世界的实施

word2vec Skip-gram,具有负采样功能,可以从数十亿个标记中学习单词嵌入,而无需完整的 softmax。

历史上,语言模型使用 NCE 来有效地训练数十万个单词的词汇。

推荐和检索系统对用户未与之交互的“负面”项目进行采样,以训练两塔嵌入模型。

使用负样本来学习实体关系的图和知识图嵌入(例如,破坏三元组的头部或尾部)。

实施模式

负采样与噪声对比估计的实践

word2vec Skip-gram,具有负采样功能,可以从数十亿个标记中学习单词嵌入,而无需完整的 softmax。

word2vec Skip-gram 具有负采样功能,可以在没有完整 Softmax 的情况下从数十亿个标记中学习词嵌入。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

负采样与噪声对比估计的实践

历史上,语言模型使用 NCE 来有效地训练数十万个单词的词汇。

历史上,语言模型使用 NCE 来有效地训练数十万个单词的词汇表。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

负采样与噪声对比估计的实践

推荐和检索系统对用户未与之交互的“负面”项目进行采样,以训练两塔嵌入模型。

推荐和检索系统对用户未交互的“负面”项目进行采样,以训练双塔嵌入模型。当团队预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力增益和错误成本时,通常会获得更好的结果。

负采样与噪声对比估计的实践

使用负样本来学习实体关系的图和知识图嵌入(例如,破坏三元组的头部或尾部)。

使用负样本学习实体关系的图和知识图嵌入(例如,破坏三元组的头部或尾部)当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会得到更好的结果。

风险与防护栏

!

优化一项基准测试可以隐藏更广泛的系统弱点。

!

基础设施和维护成本常常被低估。

!

随着系统变得更加复杂,安全性和可观察性差距可能会扩大。

实施路线图

1

在实施之前定义延迟、质量和成本目标。

在实施之前定义延迟、质量和成本目标。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

2

在实际负载和数据条件下进行基准测试。

在实际负载和数据条件下进行基准测试。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

3

仪器监控错误、漂移和用户影响。

仪器监控错误、漂移和用户影响。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

4

在扩展之前准备回滚和事件响应路径。

在扩展之前准备回滚和事件响应路径。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

不断探索