当前位置: 首页 > news >正文

【NLP】13. NLP推理方法详解 --- 穷举和贪心搜索

NLP推理方法详解 — 穷举和贪心搜索

在自然语言处理(NLP)任务中,推理(Inference)是指在给定模型的情况下,找到最可能的输出序列。由于模型通常是神经网络,它会为每个可能的输出分配一个概率,我们需要设计算法来找到最佳输出。


穷举搜索(Exhaustive Search)

方法介绍

穷举搜索是一种最直观的搜索方法,它会遍历所有可能的输出序列,计算每个序列的分数,并选择得分最高的那个。

优势

全局最优:可以找到得分最高的输出序列,因为它考虑了所有可能性。
结构完整:可以保证输出的整体一致性,而不会因为局部最优选择导致全局不佳。

问题

计算量巨大:如果有 n 个单词,每个单词有 m 种可能的标签,搜索空间大小为 m n m^n mn,即 指数级增长
不可扩展:当句子变长或者词汇量增加时,穷举搜索变得不可行。

*例子

假设我们要翻译 “I love NLP”:

  • 假设每个单词有 5 个可能的翻译,那么可能的翻译组合有 5 3 = 125 5^3 = 125 53=125 种。
  • 穷举搜索需要计算所有 125 种组合的分数,选择最优的。

贪心方法(Greedy Method)

方法介绍

贪心方法是指 一步步选择当前概率最高的选项,而不考虑未来可能的更优解。

计算复杂度

O(n⋅m)

相比穷举搜索,贪心方法的计算量小了很多,因为它不考虑所有可能的组合,而是 每一步只选择最优的一个

例子

假设模型计算出以下翻译概率:

I	-> ["我" (0.7), "咱" (0.2), "俺" (0.1)]
love -> ["爱" (0.6), "喜欢" (0.3), "热爱" (0.1)]
NLP -> ["自然语言处理" (0.8), "语言学" (0.2)]

贪心方法选择每一步最高概率的词,最终得到:“我 爱 自然语言处理”。

问题

  • 可能错过全局最优解。例如:
    • “我 喜欢 自然语言处理” 可能更自然,但贪心算法无法回头修改之前的选择。
  • 依赖局部信息,而非整体上下文。

贪心推理的不同变体

1. Top-1 方法

📌 方法:每一步选择 最高概率的选项(argmax)。
📌 特点

  • 计算最快,适用于高确定性的任务(如翻译)。
  • 容易陷入局部最优,可能导致不自然的句子。

📌 例子

输入:I love NLP
模型输出概率:
I -> ["我" (0.7), "咱" (0.2), "俺" (0.1)]
love -> ["爱" (0.6), "喜欢" (0.3), "热爱" (0.1)]
NLP -> ["自然语言处理" (0.8), "语言学" (0.2)]

Top-1 选择:“我 爱 自然语言处理”。


2. 随机采样(Random Sampling)

📌 方法:每一步按照概率分布 随机选择一个词。
📌 特点

  • 适用于文本生成任务(如对话系统),增加句子多样性。
  • 可能选择低概率的词,导致句子不连贯。

📌 例子 假设 love 有以下翻译:

爱 (0.6)
喜欢 (0.3)
热爱 (0.1)

随机采样可能选择:

  • “我 爱 自然语言处理”
  • “我 喜欢 自然语言处理”
  • “我 热爱 语言学”

3. Top-K 采样

📌 方法:每一步只考虑概率最高的 K 个选项,然后 随机采样
📌 特点

  • 保持了一定的多样性,但不会选择过于罕见的词。
  • 需要 重新缩放(rescale) 选择的 K 个词的概率,使它们的和为 1。

📌 例子 假设 K=3:

love -> ["爱" (0.6), "喜欢" (0.3), "热爱" (0.1)]

只会在 “爱”、“喜欢”、“热爱” 之间随机选择,而不会选到 “崇拜” 这种低概率的词。


4. Top-P 采样(Nucleus Sampling)

📌 方法:每一步只考虑 累积概率超过 P% 的选项,然后 随机采样
📌 特点

  • 适应性更强,避免了固定 K 的局限性。
  • 当某个单词的概率很高时,减少随机性。
  • 当多个单词概率接近时,增加多样性。
  • 需要 重新缩放(rescale) 选中的单词概率,使它们的和为 1。

📌 例子 假设我们设定 P=80%:

love -> ["爱" (0.6), "喜欢" (0.3), "热爱" (0.1), "崇拜" (0.05), "迷恋" (0.05)]

前 80% 概率的词是 “爱” 和 “喜欢”,所以只在这两个中随机选择。


5. 对比采样(Contrastive Sampling)

📌 方法

  • 在选择时 调整得分,根据之前生成的内容降低重复度,提高句子的多样性。

📌 特点

  • 适合长文本生成,减少重复句子。
  • 结合其他方法使用,如 Top-K、Top-P 采样。

📌 例子

输入:"I love NLP because NLP is fun"
如果直接使用 Top-1 方法,可能会生成:
"我 爱 自然语言处理,因为 自然语言处理 很 有趣"
对比采样会调整得分,避免重复 "自然语言处理",可能生成:
"我 爱 自然语言处理,因为 这 门 学科 很 有趣"

方法对比

方法计算量生成质量适用场景
Top-1 (argmax)最低单一、确定性强适用于翻译、分类
随机采样多样性强,但可能不自然适用于对话系统、文本生成
Top-K 采样中等保持一定多样性,避免极端情况适用于诗歌、创意写作
Top-P 采样中等兼顾确定性和多样性适用于自由文本生成
对比采样最高控制重复,提高连贯性适用于长文本、摘要
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/101464.html

相关文章:

  • Hyperlane 框架的临时上下文数据功能:助力高效 Web 开发
  • NoSQL数据库
  • JS 手撕题高频考点
  • MATLAB详细图文安装教程(附安装包)
  • 域渗透(web安全)
  • 归并排序与快速排序的简单实现(C语言)
  • 前端自动创建react项目脚手架
  • 中国太平保险网申校招测评笔试真题分析、历年真题题库、北森答案解析
  • golang 日志log与logrus
  • Android开发中的数据结构与算法:树与图
  • 音视频 YUV格式详解
  • Web开发-JS应用微信小程序源码架构编译预览逆向调试嵌套资产代码审计
  • 孤码长征:破译PCL自定义点云注册机制源码迷局——踩坑实录与架构解构
  • grafana 配置页面告警
  • 【LLM】Elasticsearch作为向量库入门指南
  • IDEA 终端 vs CMD:为什么 java -version 显示的 JDK 版本不一致?
  • 电子文档安全管理系统V6.0接口backup存在任意文件下载漏洞
  • golang 的strconv包常用方法
  • J2EE框架技术第八章 SpringMVC框架技术
  • HarmonyOS 介绍
  • Ubuntu在VMware中无法全屏
  • MIPS-32架构(寄存器堆,指令系统,运算器)
  • 网络空间安全(45)PHP入门学习
  • 电影交流|基于Java+vue的电影交流平台小程序系统(源码+数据库+文档)
  • 封装了一个优雅的iOS全屏侧滑返回工具
  • [蓝桥杯 2023 省 A] 网络稳定性
  • 鸿蒙富文本实践
  • RK3588使用笔记:系统换源
  • 【YOLO系列】基于YOLOv8的无人机野生动物检测
  • 【NLP】14. NLP推理方法详解 --- beam search 束搜索 以及 graph search 图搜索