**語言模型**是一個自然語言中的詞語機率分佈模型，例如提供一个长度为 m 的字詞序列 {\displaystyle w\_{1},w\_{2},...w\_{m}}，計算這些字詞的概率：P(w\_1,\ldots,w\_m)。通過语言模型，可以确定哪个词语出现的可能性更大，或者通過若干上文语境词来预测下一个最可能出现的词语。

語言模型經常使用在許多自然語言處理方面的應用，如語音識別，機器翻譯，詞性標註，句法分析，手写体识别和資訊檢索。由於字詞與句子都是任意組合的長度，因此在訓練過的語言模型中會出現未曾出現的字串(資料稀疏的問題)，也使得在語料庫中估算字串的機率變得很困難，這也是要使用近似的平滑n-元語法(N-gram)模型之原因。

在語音辨識和在資料壓縮的領域中，這種模式試圖捕捉語言的特性，並預測在語音串列中的下一個字。

在语音识别中，声音与单词序列相匹配。当来自语言模型的证据与发音模型和声学模型相结合时，歧义更容易解决。

當用於資訊檢索，語言模型是與文件有關的集合。以查詢字「Q」作為輸入，依據機率將文件作排序，而該機率P(Q|M\_d)代表該文件的語言模型所產生的語句之機率。

模型类型
----

### 单元语法（unigram）

一个单元模型可以看作是几个单状态有限自动机的组合。 它会分开上下文中不同术语的概率, 比如将 {\displaystyle P(t\_{1}t\_{2}t\_{3})=P(t\_{1})P(t\_{2}\mid t\_{1})P(t\_{3}\mid t\_{1}t\_{2})} 拆分为{\displaystyle P\_{\text{uni}}(t\_{1}t\_{2}t\_{3})=P(t\_{1})P(t\_{2})P(t\_{3})}.

在这个模型中，每个单词的概率只取决于该单词在文档中的概率，所以我们只有一个状态有限自动机作为单位。自动机本身在模型的整个词汇表中有一个概率分布，总和为1。下面是一个文档的单元模型。

| 单词 term | 在文档 doc 中的概率 |
| --- | --- |
| a | 0.1 |
| world | 0.2 |
| likes | 0.05 |
| we | 0.05 |
| share | 0.3 |
| ... | ... |

{\displaystyle \sum \_{\text{term in doc}}P({\text{term}})=1\,}
为特定查询(query)生成的概率计算如下

{\displaystyle P({\text{query}})=\prod \_{\text{term in query}}P({\text{term}})}
不同的文档有不同的语法模型，其中单词的命中率也不同。不同文档的概率分布用于为每个查询生成命中概率。可以根据概率对查询的文档进行排序。两个文档的单元模型示例:

| 单词 | 在Doc1的概率 | 在Doc2中的概率 |
| --- | --- | --- |
| a | 0.1 | 0.3 |
| world | 0.2 | 0.1 |
| likes | 0.05 | 0.03 |
| we | 0.05 | 0.02 |
| share | 0.3 | 0.2 |
| ... | ... | ... |

在信息检索环境中，通常会对单语法语言模型进行平滑处理，以避免出现P(term)= 0的情况。一种常见的方法是为整个集合生成最大似然模型，并用每个文档的最大似然模型对集合模型进行线性插值来平滑化模型。

### n-元语法

在一个 n-元语法模型中，观测到序列 {\displaystyle w\_{1},\ldots ,w\_{m}} 的概率 P(w\_1,\ldots,w\_m) 可以被近似为

{\displaystyle P(w\_{1},\ldots ,w\_{m})=\prod \_{i=1}^{m}P(w\_{i}\mid w\_{1},\ldots ,w\_{i-1})\approx \prod \_{i=1}^{m}P(w\_{i}\mid w\_{i-(n-1)},\ldots ,w\_{i-1})}
此处我们引入马尔科夫假设，一个词的出现并不与这个句子前面的所有词关联，只与这个词前的 n 个词关联（n阶马尔科夫性质）。在已观测到 i-1 个词的情况中，观测到第i个词 wi 的概率，可以被近似为，观测到第i个词前面n个词（第 i-(n-1) 个词到第 i-1 个词）的情况下，观测到第i个词的概率。第 i 个词前 n 个词可以被称为 n-元。

条件概率可以从n-元语法模型频率计数中计算:

{\displaystyle P(w\_{i}\mid w\_{i-(n-1)},\ldots ,w\_{i-1})={\frac {\mathrm {count} (w\_{i-(n-1)},\ldots ,w\_{i-1},w\_{i})}{\mathrm {count} (w\_{i-(n-1)},\ldots ,w\_{i-1})}}}
术语 二元语法(**bigram**) 和三元语法(**trigram**) 语言模型表示 n = 2 和 n = 3 的 *n*-元 。

典型地，n-元语法模型概率不是直接从频率计数中导出的，因为以这种方式导出的模型在面对任何之前没有明确看到的n-元时会有严重的问题。相反，某种形式的平滑是必要的，将一些总概率质量分配给看不见的单词或n-元。使用了各种方法，从简单的"加一"平滑(将计数1分配给看不见的n-元，作为一个无信息的先验)到更复杂的模型，例如Good-Turing discounting（英语：）或 back-off 模型（英语：）。

#### 例子

在二元语法模型中 (*n* = 2) , *I saw the red house* 这个句子的概率可以被估计为

{\displaystyle {\begin{aligned}&P({\text{I, saw, the, red, house}})\\\approx {}&P({\text{I}}\mid \langle s\rangle )P({\text{saw}}\mid {\text{I}})P({\text{the}}\mid {\text{saw}})P({\text{red}}\mid {\text{the}})P({\text{house}}\mid {\text{red}})P(\langle /s\rangle \mid {\text{house}})\end{aligned}}}
而在三元语法模型中，这个句子的概率估计为

{\displaystyle {\begin{aligned}&P({\text{I, saw, the, red, house}})\\\approx {}&P({\text{I}}\mid \langle s\rangle ,\langle s\rangle )P({\text{saw}}\mid \langle s\rangle ,I)P({\text{the}}\mid {\text{I, saw}})P({\text{red}}\mid {\text{saw, the}})P({\text{house}}\mid {\text{the, red}})P(\langle /s\rangle \mid {\text{red, house}})\end{aligned}}}
注意前 n-1 个词的 n-元会用句首符号 
 填充。

### 指数型

最大熵（英语：）语言模型用特征函数编码了词和n-元的关系。 

{\displaystyle P(w\_{m}|w\_{1},\ldots ,w\_{m-1})={\frac {1}{Z(w\_{1},\ldots ,w\_{m-1})}}\exp(a^{T}f(w\_{1},\ldots ,w\_{m}))}

其中 {\displaystyle Z(w\_{1},\ldots ,w\_{m-1})} 是分区函数（英语：）, a 是参数向量， {\displaystyle f(w\_{1},\ldots ,w\_{m})} 是特征函数。

在最简单的情况下，特征函数只是某个n-gram存在的指示器。使用先验的 a 或者使用一些正则化的手段是很有用的。

对数双线性模型是指数型语言模型的另一个例子。

参见
--

* 聊天機器人
* 對話程式语言模型
* 语言模型
* 大语言模型
* GPT-4
* Gemini (语言模型)

参考资料
----

1. ↑  Jurafsky, Dan; Martin, James H..  3rd. 2021  [24 May 2022]. （原始内容存档于22 May 2022）.
2. ↑  Rosenfeld, Ronald.. Proceedings of the IEEE. 2000, **88** (8).
3. ↑  王亚珅，黄河燕著,短文本表示建模及应用,北京理工大学出版社,2021.05,第24頁
4. ↑  Kuhn, Roland, and Renato De Mori. "A cache-based natural language model for speech recognition." IEEE transactions on pattern analysis and machine intelligence 12.6 (1990): 570-583.
5. ↑  Andreas, Jacob, Andreas Vlachos, and Stephen Clark. "Semantic parsing as machine translation （页面存档备份，存于）." Proceedings of the 51st Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers). 2013.
6. ↑  Andreas, Jacob, Andreas Vlachos, and Stephen Clark. "Semantic parsing as machine translation （页面存档备份，存于）." Proceedings of the 51st Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers). 2013.
7. ↑  Pham, Vu, et al. "Dropout improves recurrent neural networks for handwriting recognition." 2014 14th International Conference on Frontiers in Handwriting Recognition. IEEE, 2014.
8. ↑  Christopher D. Manning, Prabhakar Raghavan, Hinrich Schütze: An Introduction to Information Retrieval, pages 237–240. Cambridge University Press, 2009
9. ↑  Buttcher, Clarke, and Cormack. Information Retrieval: Implementing and Evaluating Search Engines. pg. 289–291. MIT Press.
10. ↑  Craig Trim, *What is Language Modeling?* （页面存档备份，存于）, April 26th, 2013.

外部链接
----

* LMSharp （页面存档备份，存于） - 开源统计语言模型工具包，支持n-gram模型（Kneser-Ney平滑），以及反馈神经网络模型（recurrent neural network model）

  


|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
可微分计算 |
| --- |
|  |
| 概论 | 
* 可微分编程
* 自動微分
* 张量微积分（英语：）
* 信息几何
* 统计流形
* 神经形态工程（英语：）
* 模式识别
* 运算学习理论（英语：）
* 归纳偏置

 |
|  |
| 概念 | 
* 梯度下降
	+ SGD（英语：）
* 聚类
* 回归
	+
* 幻觉
* 对抗（英语：）
* 注意力
* 卷积
* 損失函數
* 反向传播
* + softmax
	+ sigmoid
	+ ReLU
* 正则化
* 
* 扩散（英语：）
* 自回归

 |
|  |
| 应用 | 
* 机器学习
* 人工神经网络
	+ 深度学习
* 科学计算
* 人工智能
* 語言模型
	+ 大型语言模型

 |
|  |
| 硬件 | 
* TPU
* VPU
* IPU（英语：）
* 憶阻器
* SpiNNaker（英语：）

 |
|  |
| 软件库 | 
* Theano
* TensorFlow
	+ Keras
* PyTorch
* JAX
* Flux.jl（英语：）

 |
|  |
| 实现 | 

|  |  |
| --- | --- |
| 视觉·语音 | 
* AlexNet
* WaveNet
* 人像合成
* 手寫
* OCR
* 语音合成
* 
* 
* AlphaFold
* DALL-E
* Midjourney
* Stable Diffusion
* Whisper（英语：）

 |
|  |
| 自然语言 | 
* Word2vec
* Seq2seq
* BERT
* LaMDA
	+ Bard
* NMT
* 辩手项目（英语：）
* 沃森
* GPT
	+ GPT-1
	+ GPT-2
	+ GPT-3
	+ GPT-4
* GPT-J（英语：）
* ChatGPT
* 文心一言
* Chinchilla AI（英语：）
* PaLM（英语：）
* BLOOM（英语：）
* LLaMA

 |
|  |
| 决策 | 
* AlphaGo
* Q学习
* SARSA
* OpenAI Five（英语：）
* 自动驾驶
* MuZero
* 行动选择（英语：）
	+ Auto-GPT
* 机器人控制（英语：）

 |

 |
|  |
| 人物 | 
* 约书亚·本希奥
* 杰弗里·辛顿
* 杨立昆
* 艾力克斯·格雷夫斯
* 伊恩·古德费洛
* 吴恩达
* 杰米斯·哈萨比斯
* 大衛·席爾瓦
* 李飛飛
* 于尔根·施密德胡伯
* 伊爾亞·蘇茨克維

 |
|  |
| 组织 | 
* Anthropic
* DeepMind
* EleutherAI（英语：）
* Google Brain
* Meta AI（英语：）
* Mila（英语：）
* MIT CSAIL
* OpenAI
* Hugging Face

 |
|  |
| 架构 | 
* 多层感知器（MLP）
* 循环神经网络（RNN）
* 長短期記憶（LSTM）
* 门控循环单元（英语：）（GRU）
* 卷积神经网络（CNN）
* 残差神经网络（英语：）（ResNet）
* 变换器
* 自编码器
* 变分自编码器（VAE）
* 生成对抗网络（GAN）
* 图神经网络（英语：）（GNN）
* 回响状态网络（英语：）（ESN）
* 神经图灵机（英语：）（NTM）
* 可微分神经计算机（英语：）（DNC）

 |
|  |
| 
* 主题 主题
	+ 计算机编程
	+ 技术
* 分类 分类
	+ 人工神经网络
	+ 机器学习

 |

 |

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
自然语言处理 |
| --- |
|  |
| 一般术语 | 
* 语料库
* 口语语料库
* 停用词
* 词袋
* 完全人工智慧（英语：）
* n元语法（双字母组、三元语法（英语：））

 |
|  |
| 文本挖掘 | 
* 文本分割
* 词性标注（英语：）
* 拆句处理（英语：）
* 复合词处理（英语：）
* 搭配提取（英语：）
* 词干提取
* 词形还原
* 命名实体识别
* 指代
* 文本情感分析
* 概念挖掘（英语：）
* 语法分析
* 词义消歧
* 术语提取（英语：）
* 真实大小写处理（英语：）

 |
|  |
| 自动摘要（英语：） | 
* 多文档摘要（英语：）
* 句子抽取（英语：）
* 文本简化（英语：）

 |
|  |
| 分散式語意模型 | 
* 潜在语义学
* Seq2Seq模型
* 語言模型
	+ 大型語言模型
		- ChatGPT
		- GPT-4
		- 文心一言

 |
|  |
| 机器翻译 | 
* 電腦輔助翻譯
* 基于实例（英语：）
* 基于规则（英语：）

 |
|  |
| 自动识别与数据采集 | 
* 语音识别
* 语音合成
* 光学字符识别
* 自然语言生成
* 提示工程

 |
|  |
| 主题模型 | 
* 弹珠分布（英语：）
* 隐含狄利克雷分布
* 潜在语义索引

 |
|  |
| 计算机辅助审查（英语：） | 
* 自动作文评分（英语：）
* 语料库检索工具（英语：）
* 文法检查器（英语：）
* 预测文本（英语：）
* 拼寫檢查
* 语法猜测（英语：）

 |
|  |
| 自然语言用户界面（英语：） | 
* 自动在线助手
* 聊天機器人
* 文字冒险游戏
* 問答系統

 |

 |