AI知识分享AI知识分享
✿导航
  • 人工智能
  • 神经网络
  • 机器学习
  • 深度学习
  • 强化学习
  • 自然语言处理
  • 计算机视觉
  • 大模型基础
  • 动手学深度学习
  • 理论理解
  • 工程实践
  • 应用开发
  • AI For Everyone
  • AIGC_2024大会
  • AIGC_2025大会
  • Transformer
  • Pytorch
  • HuggingFace
  • 蒸馏
  • RAG
  • 目标检测
  • MCP
  • 概念
  • 意图识别
  • 工具
✿导航
  • 人工智能
  • 神经网络
  • 机器学习
  • 深度学习
  • 强化学习
  • 自然语言处理
  • 计算机视觉
  • 大模型基础
  • 动手学深度学习
  • 理论理解
  • 工程实践
  • 应用开发
  • AI For Everyone
  • AIGC_2024大会
  • AIGC_2025大会
  • Transformer
  • Pytorch
  • HuggingFace
  • 蒸馏
  • RAG
  • 目标检测
  • MCP
  • 概念
  • 意图识别
  • 工具
  • 大模型基础

    • 语言模型基础

      • 概述
      • 基于统计方法的语言模型
      • 基于神经网络的语言模型
      • 语言模型的采样方法
      • 语言模型的评测
    • 大语言模型架构

      • 概述
      • 主流模型架构
      • Encoder-only
      • Encoder-Decoder
      • Decoder-only
      • 非Transformer 架构
    • Prompt工程

      • 工程简介
      • 上下文学习
      • 思维链
      • 技巧
    • 参数高效微调

      • 概述
      • 参数附加方法
      • 参数选择方法
      • 低秩适配方法
      • 实践与应用
    • 模型编辑

      • 简介
      • 方法
      • 附加参数法
      • 定位编辑法
    • RAG

      • 基础
      • 架构
      • 知识检索
      • 生成增强
  • 动手学深度学习

    • 深度学习基础

      • 引言
      • 数据操作
      • 数据预处理
      • 数学知识(线代、矩阵计算、求导)
      • 线性回归
      • 基础优化方法
      • Softmax回归
      • 感知机
      • 模型选择
      • 过拟合和欠拟合
      • 环境和分布偏移
      • 权重衰减
      • Dropout
      • 数值稳定性
    • 卷积神经网络

      • 模型基本操作
      • 从全连接层到卷积
      • 填充和步长
      • 多个输入和输出通道
      • 池化层
      • LeNet
      • AlexNet
      • VGG
      • NiN网络
      • GoogleNet
      • 批量归一化
      • ResNet
    • 计算机视觉

      • 图像增广
      • 微调
      • 目标检测
      • 锚框
      • 区域卷积神经网络
      • 单发多框检测
      • 一次看完
      • 语义分割
      • 转置卷积
      • 全连接卷积神经网络
      • 样式迁移
    • 循环神经网络

      • 序列模型
      • 语言模型
      • 循环神经网络
      • 序列到序列学习
      • 搜索策略
    • 注意力机制

      • 优化算法

语言模型

参考文献

  • 一起入门语言模型(Language Models)

概念

语言模型是这样一个模型:对于任意的词序列,**它能够计算出这个序列是一句话的概率。**举两个例子就明白了,比如:词序列A:“知乎|的|文章|真|水|啊”,这个明显是一句话,一个好的语言模型也会给出很高的概率,再看词序列B:“知乎|的|睡觉|苹果|好快”,这明显不是一句话,如果语言模型训练的好,那么序列B的概率就很小很小。

定义

假设我们要为中文创建一个语言模型, V 表示词典, V= {猫,狗,机器,学习,语言,模型,...},$$ w_{i}∈V $$ 。语言模型就是这样一个模型:给定词典 V **,能够计算出任意单词序列 **$$ w_1,w_1,...,w_{n} $$ 是一句话的概率 $$ p(w_1,w_1,...,w_{n}) $$ ,其中 $$ p≥0 $$ 。

现在问题来了,语言模型如何计算 $$ p(w_1,w_1,...,w_{n}) $$ 最简单的方法是数数,假设训练集中共有 N个句子,我们数一下在训练集中$$ w_1,w_1,...,w_{n} $$出现的次数,不妨假定为 n ,则 $$ p(w_1,w_1,...,w_{n}) = = \frac{n}{N} $$ 。

可以想象出这个模型的预测能力几乎为0,一旦单词序列没有在训练集中出现过,模型的输出概率就是0,显然相当不合理。我们可以根据概率论中的链式法则(chain rule)把 p 展开:

p(w1,w2,…,wn)=p(w1)∏i=2np(wi∣w1,…,wi−1)p(w_1, w_2, \dots, w_n) = p(w_1) \prod_{i=2}^{n} p(w_i \mid w_1, \dots, w_{i-1}) p(w1​,w2​,…,wn​)=p(w1​)i=2∏n​p(wi​∣w1​,…,wi−1​)

如果能计算 p(wi∣w1,…,wi−1) p(w_i \mid w_1, \dots, w_{i-1}) p(wi​∣w1​,…,wi−1​),那么就能轻松得到 p(w1,w2,…,wn) p(w_1, w_2, \dots, w_n) p(w1​,w2​,…,wn​),所以在文献中我们经常看到语言模型的另一种等价定义:能够计算 p(wi∣w1,…,wi−1) p(w_i \mid w_1, \dots, w_{i-1}) p(wi​∣w1​,…,wi−1​) 的模型就是语言模型。

N-gram语言模型

在统计学模型横行NLP的时代,语言模型任务的扛把子是N-gram语言模型。

一阶马尔可夫假设(Bigram 模型)

引入一阶马尔可夫假设:每个词只依赖前一个词

p(wi∣w1,…,wi−1)≈p(wi∣wi−1)p(w_i \mid w_1, \dots, w_{i-1}) \approx p(w_i \mid w_{i-1}) p(wi​∣w1​,…,wi−1​)≈p(wi​∣wi−1​)

此时句子概率近似为:

p(w1,w2,…,wn)=p(w1)∏i=2np(wi∣w1,…,wi−1)≈p(w1)∏i=2np(wi∣wi−1)p(w_1, w_2, \dots, w_n) = p(w_1) \prod_{i=2}^{n} p(w_i \mid w_1, \dots, w_{i-1}) \approx p(w_1) \prod_{i=2}^{n} p(w_i \mid w_{i-1}) p(w1​,w2​,…,wn​)=p(w1​)i=2∏n​p(wi​∣w1​,…,wi−1​)≈p(w1​)i=2∏n​p(wi​∣wi−1​)

二阶马尔可夫假设(Trigram 模型)

引入二阶马尔可夫假设:每个词依赖前两个词

p(wi∣w1,…,wi−1)≈p(wi∣wi−2,wi−1)p(w_i \mid w_1, \dots, w_{i-1}) \approx p(w_i \mid w_{i-2}, w_{i-1}) p(wi​∣w1​,…,wi−1​)≈p(wi​∣wi−2​,wi−1​)

此时句子概率近似为:

p(w1,w2,…,wn)=p(w1)∏i=2np(wi∣w1,…,wi−1)≈p(w1)p(w2∣w1)∏i=3np(wi∣wi−2,wi−1)p(w_1, w_2, \dots, w_n) = p(w_1) \prod_{i=2}^{n} p(w_i \mid w_1, \dots, w_{i-1}) \approx p(w_1) p(w_2 \mid w_1) \prod_{i=3}^{n} p(w_i \mid w_{i-2}, w_{i-1}) p(w1​,w2​,…,wn​)=p(w1​)i=2∏n​p(wi​∣w1​,…,wi−1​)≈p(w1​)p(w2​∣w1​)i=3∏n​p(wi​∣wi−2​,wi−1​)

N-gram 条件概率的最大似然估计(以 Trigram 为例)

对于 N=3 N=3 N=3 的 tri-gram 模型,使用计数法计算条件概率:

p(wi∣wi−2,wi−1)=count(wi−2,wi−1,wi)count(wi−2,wi−1)p(w_i \mid w_{i-2}, w_{i-1}) = \frac{\text{count}(w_{i-2}, w_{i-1}, w_i)}{\text{count}(w_{i-2}, w_{i-1})} p(wi​∣wi−2​,wi−1​)=count(wi−2​,wi−1​)count(wi−2​,wi−1​,wi​)​


这些公式展示了如何通过马尔可夫假设简化语言模型中的条件概率计算,并通过统计频次来估计参数,是传统统计语言模型的核心方法。

N元语法和N阶马尔可夫假设

N元语法(N-gram) 与 N 阶马尔可夫假设(N-th order Markov Assumption) 是应用与理论基础的关系。

简单来说:

  • N阶马尔可夫假设是理论前提:它规定了“当前词只依赖于前 N−1 个词”。
  • N元语法是具体实现:它是基于上述假设构建的统计模型,用于计算概率。

二者在命名上存在一个容易混淆的**“偏移量”**(Off-by-one),具体关系如下:

模型名称 (N-gram)N N N 的含义依赖的历史词数量对应的马尔可夫假设阶数 ( k k k )公式形式
Unigram (1-gram)10 个 (独立)0阶 马尔可夫P(wi) P(w_i) P(wi​)
Bigram (2-gram)21 个 ( wi−1 w_{i-1} wi−1​ )1阶 马尔可夫P(wi∣wi−1) P(w_i \mid w_{i-1}) P(wi​∣wi−1​)
Trigram (3-gram)32 个 ( wi−2,wi−1 w_{i-2}, w_{i-1} wi−2​,wi−1​ )2阶 马尔可夫P(wi∣wi−2,wi−1) P(w_i \mid w_{i-2}, w_{i-1}) P(wi​∣wi−2​,wi−1​)
N-gramN N NN−1 N-1 N−1 个(N−1) (N-1) (N−1) 阶 马尔可夫P(wi∣wi−N+1,…,wi−1) P(w_i \mid w_{i-N+1}, \dots, w_{i-1}) P(wi​∣wi−N+1​,…,wi−1​)

关键结论: N 元语法模型 等价于 (N−1) 阶马尔可夫模型。

最近更新: 2026/3/22 17:55
Contributors: klc407073648
Prev
序列模型
Next
循环神经网络