李宏毅NLP-7-计算分数和训练和测试

分数计算

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
插入式序列生成模型的概率计算逻辑,核心是将 “生成序列 h 的过程” 拆解为一系列插入操作,并通过步骤概率的乘积计算总概率 P ( h ∣ X ) P(h∣X) P(hX)。以下从 模型框架、步骤分解、概率计算 三个层面解析:

一、模型框架:插入式生成的 “状态 - 位置” 双维度

  1. 上层:生成状态( l 0 , l 1 , l 2 , l 3 l^0,l^1,l^2,l^3 l0,l1,l2,l3
  • 代表生成过程中的阶段,对应目标序列的 token:
    • l 0 l^0 l0:起始状态(对应<BOS>,序列开始);
    • l 1 l^1 l1:生成c后的状态;
    • l 2 l^2 l2:生成a后的状态;
    • l 3 l^3 l3:生成t后的状态。
  • 状态转移规则:
    • 插入目标 token(如cat)时,状态前进(如 l 0 → l 1 l^0→l^1 l0l1);
    • 插入占位符 φ时,状态不变(如 l 1 → l 1 l^1→l^1 l1l1)。
  1. 下层:位置索引( x 1 ∼ x 6 x^1∼x^6 x1x6
  • 表示序列的位置坐标(共 6 个位置,对应图中列),每个位置可插入 token 或 φ
  • 绿色模块 h 1 ∼ h 6 h^1∼h^6 h1h6:每个位置的特征表示,用于预测插入概率。

二、步骤分解:生成序列 h 的插入路径

目标序列 h = ϕ c ϕ ϕ a ϕ t ϕ ϕ h=ϕcϕϕaϕtϕϕ h=ϕcϕϕaϕtϕϕ,其生成过程可拆解为 9 步插入操作,每一步对应一个概率:

步骤插入位置当前状态插入内容概率符号含义
1x1l0φp1,0(ϕ)状态l0下,向位置x1插入 φ
2x2l1cp2,0(c)状态l1下,向位置x2插入 c
3x2l1φp2,1(ϕ)状态l1下,向位置x2插入 φ
4x3l1φp3,1(ϕ)状态l1下,向位置x3插入 φ
5x4l2ap4,1(a)状态l2下,向位置x4插入 a
6x4l2φp4,2(ϕ)状态l2下,向位置x4插入 φ
7x5l2tp5,2(t)状态l2下,向位置x5插入 t
8x5l3φp5,3(ϕ)状态l3下,向位置x5插入 φ
9x6l3φp6,3(ϕ)状态l3下,向位置x6插入 φ

三、概率计算:链式法则的应用

生成序列 h h h 的总概率 P ( h ∣ x ) P(h∣x) P(hx)所有插入步骤概率的乘积(遵循概率的链式法则):
在这里插入图片描述
四、核心思想:为什么这样设计?

  1. 灵活性:允许在任意位置插入token 或 φ,突破传统 “逐 token 续写” 的限制,更适合文本编辑、补全、改写等任务。
  2. 条件依赖:每个插入步骤的概率 同时依赖 “当前生成状态( l j l^j lj)” 和 “插入位置( x i x^i xi)”,用 p i , j ( ⋅ ) pi,j(⋅) pi,j() 精准建模这种依赖关系。
  3. 可扩展性:通过 “状态转移 + 位置插入” 的框架,可轻松扩展到更长序列或更复杂的生成任务。
  4. 插入式生成的概率 = 各步骤插入操作的概率乘积,每一步的概率由 “当前生成状态” 和 “插入位置” 共同决定。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
插入式生成的关键是 “允许插入 φ,并让每个插入步骤的概率同时看‘生成到哪一步(状态 l)’和‘插在哪里(位置 x)’”,否则模型会漏掉很多合理的生成路径,并且与之前的路径是独立。
在这里插入图片描述
在这里插入图片描述
这张图围绕 插入式序列生成模型中的 “对齐分数( α i , j α_{i,j} αi,j)” 展开,核心是用 动态规划(DP) 高效计算 所有可能生成路径的概率和。以下从 定义、公式、网格逻辑、求和意义 四个维度解析:

  1. α i , j α_{i,j} αi,j 的定义

α i , j α_{i,j} αi,j: {所有对齐方式的分数之和,这些对齐读取第 i i i 个位置特征(如 x i x^i xi),并输出第 j j j 个 token(含 ϕ)。

  • “对齐(alignment)”:指生成序列的一条具体路径(如 “插入 φ→生成 c→插入 φ→…→生成 t”)。
  • “分数”:路径中各步骤的概率乘积(如之前的 P ( h ∣ X ) P(h∣X) P(hX) 分解)。

2. 递推公式: α 4 , 2 = α 4 , 1 p 4 , 1 ( a ) + α 3 , 2 p 3 , 2 ( ϕ ) α_{4,2}=α_{4,1}p_{4,1}(a)+α_{3,2}p_{3,2}(ϕ) α4,2=α4,1p4,1(a)+α3,2p3,2(ϕ)

公式拆解:

  • 第一项 α 4 , 1 p 4 , 1 ( a ) α_{4,1}p_{4,1}(a) α4,1p4,1(a)
    从 **状态( i = 4 , j = 1 i=4,j=1 i=4,j=1) 转移而来,代表:
    • 已读取位置 x 4 x^4 x4,生成前一个 token(如c之后的状态);
    • 现在 生成 token a(概率为$ p_{4,1}(a)$)。
  • 第二项 α 3 , 2 p 3 , 2 ( ϕ ) α_{3,2}p_{3,2}(ϕ) α3,2p3,2(ϕ)
    从 **状态( i = 3 , j = 2 i=3,j=2 i=3,j=2) 转移而来,代表:
    • 已读取位置 x 3 x^3 x3,处于生成阶段 j=2;
    • 现在 插入占位符 ϕ(概率为 p 3 , 2 ( ϕ ) p_{3,2}(ϕ) p3,2(ϕ)),然后转移到 (i=4,j=2)。

3. 网格与路径:动态规划的状态转移
网格结构:

  • 行(纵轴):目标 token(cat),代表 生成阶段(对应之前的 l j l^j lj)。
  • 列(横轴):位置 x 1 ∼ x 6 x^1∼x^6 x1x6,代表 读取的位置特征(对应之前的 x i x^i xi)。

路径与转移:

  • 虚线箭头:代表 “插入 ϕ” 的转移(不推进生成阶段,仅移动位置)。
  • 实线箭头:代表 “生成 token” 的转移(推进生成阶段,同时移动位置)。
  • 蓝色圆点:状态节点 (i,j),如 α 4 , 2 α_{4,2} α4,2 对应 读取 x 4 x^4 x4、生成阶段到 a 的状态。

4. 求和的意义: ∑ h ∈ a l i g n ( Y ) P ( h ∣ X ) ∑_h∈align(Y)P(h|X) halign(Y)P(hX)

  • a l i g n ( Y ) align(Y) align(Y):所有能生成目标序列 Y Y Y(如cat)的**合法插入路径集合(含 φ 的不同插入方式)。
  • 求和:因为生成 Y Y Y 可能有 多条不同的插入路径(如 φ 插入的位置不同),总概率是所有路径的概率之和。
  • α i , j α_{i,j} αi,j 的作用:通过动态规划递推,**避免枚举所有路径,高效计算总概率(每一步仅依赖前两个状态,时间复杂度从指数级降为多项式级)。

核心结论:动态规划如何简化计算?

α i , j α_{i,j} αi,j 累积 “到达状态( i , j i,j i,j)的所有路径概率”,通过递推公式(生成 token 或插入 φ)高效计算,最终求和得到总概率。


训练

在这里插入图片描述
在这里插入图片描述
通过极大似然估计,让模型参数θ尽可能提升 “所有生成真实序列Y的插入路径的总概率”,梯度计算依赖链式法则分解到每个插入步骤的概率。
在这里插入图片描述
每个步骤概率 p i , j ( ⋅ ) p_i,j(⋅) pi,j()的梯度,等于 “参数对该步骤的影响” 乘以 “该步骤对所有生成路径的总贡献”,最终所有步骤的梯度累加即为总梯度。
在这里插入图片描述
通过 BPTT,反向追溯 p 4 , 1 ( a ) p_{4,1}(a) p4,1(a) 的输入(状态 l 1 l^1 l1、位置 h 4 h^4 h4),再追溯 l 1 l_1 l1 的输入( l 0 l_0 l0c),直到触及模型参数 θ θ θ,累加各路径的梯度贡献。

在这里插入图片描述
总概率 P ( Y ∣ X ) P(Y|X) P(YX) 可拆分为 “包含 p 4 , 1 ( a ) p_{4,1}(a) p4,1(a) 的路径”“不包含 p 4 , 1 ( a ) p_{4,1}(a) p4,1(a) 的路径”
在这里插入图片描述
对于 “含 p 4 , 1 ( a ) p_{4,1}(a) p4,1(a) 的路径”,其概率可分解为: P ( h ∣ X ) = p 4 , 1 ( a ) × o t h e r P(h|X)=p_{4,1}(a)×other P(hX)=p4,1(a)×other

  • “other”:路径中 除 p 4 , 1 ( a ) p_{4,1}(a) p4,1(a)外其他步骤的概率乘积(如 p 1 , 0 ( ϕ ) p_{1,0}(ϕ) p1,0(ϕ) p 2 , 0 ( c ) p_{2,0}(c) p2,0(c)⋅… 中不含 p 4 , 1 ( a ) p_{4,1}(a) p4,1(a) 的部分)。

总概率对 p 4 , 1 ( a ) p_{4,1}(a) p4,1(a)的梯度,等于 “所有含 p 4 , 1 ( a ) p_{4,1}(a) p4,1(a)的路径概率和” 除以 p 4 , 1 ( a ) p_{4,1}(a) p4,1(a)

梯度计算通过 “分解路径、提取公共因子 p 4 , 1 ( a ) p_{4,1}(a) p4,1(a)”,将复杂的路径求和转化为 “路径概率和除以该步骤概率”,大幅简化了计算。
在这里插入图片描述
在这里插入图片描述
“反向累积”:与 α i , j α_{i,j} αi,j(正向累积路径概率)对称, β i , j β_{i,j} βi,j序列末尾开始,向前累积路径概率。

2. 递推公式: β 4 , 2 = β 4 , 3 p 4 , 2 ( t ) + β 5 , 2 p 4 , 2 ( ϕ ) β_{4,2}=β_{4,3}p_{4,2}(t)+β_{5,2}p_{4,2}(ϕ) β4,2=β4,3p4,2(t)+β5,2p4,2(ϕ)

  • 正向 a i , j a_{i,j} ai,j:计算 “到达状态(i,j)的所有路径概率和”,用于前向预测。
  • 反向 β i , j β_{i,j} βi,j:计算 “从状态(i,j)出发到序列结束的所有路径概率和”,用于反向传播或联合概率计算。
  • 协同作用:结合 a i , j a_{i,j} ai,j 和 , β i , j β_{i,j} βi,j可高效计算 单个步骤对总概率的贡献(如之前的梯度分解),避免枚举所有路径。

在这里插入图片描述
结合链式法则,总梯度可简化为:
在这里插入图片描述

  • 每个步骤 p i , j ( ⋅ ) p_{i,j}(⋅) pi,j() 对总概率的梯度贡献,等于 “参数对该步骤的影响” 乘以 “该步骤的前向累积概率 α” 乘以 “该步骤的反向累积概率 β”。
  • 通过正向 α α α 和反向 β β β 的 “双累积”,将 “所有路径的枚举求和” 压缩为 “单步的 α ⋅ p ⋅ β α⋅p⋅β αpβ 乘积”,使梯度计算的复杂度从指数级降为线性级

测试

在这里插入图片描述
在这里插入图片描述

由于枚举所有路径不可行,解码时放弃 “全局概率和最大”,转而寻找 “单条路径概率最大” 的 h h h,再还原出 Y Y Y。用 近似搜索(如贪心、 beam search) 找局部最优路径,平衡计算复杂度与生成质量。

在这里插入图片描述
计算的时候保存概率最大的那个即可。

在这里插入图片描述

模型核心特点适用场景缺点
LAS依赖注意力,隐式对齐,建模长距离依赖离线高精度识别(如语音转写)不支持在线实时处理
CTC独立解码,显式对齐,支持在线实时简单识别(如关键词检测)无法建模 token 依赖
RNN - T依赖解码,显式对齐,支持在线,建模依赖实时高精度识别(如语音助手)训练和推理复杂度较高
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

uncle_ll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值