语言模型

👁 25 👍 0 💬 0 字数 674 阅读 3 分钟

语言模型

定义 1
目标: 给定词串 $W=w_1,w_2,\ldots, w_n$, 计算概率 $p(W)$, 表示这个词序列在自然语言中出现的概率 (合理性).

从数学角度 $p(W)=p(w_1)p(w_2|w_1)\cdots p(w_n|w_1,w_2,\ldots,w_{n_1})$.

n-gram

应用马尔可夫过程.

n-gram 就是每个词的概率只依赖于前 $n-1$ 个词, 即认为 $p(w_k|w_1,w_2,\ldots,w_{k-1})=p(w_k|w_{k-n+1},\ldots,w_{k-1})$.

具体的 - 1-gram/unigram $p(w_1,w_2,\ldots,w_n)=p(w_1)p(w_2)\cdots p(w_n)$. - 2-gram/bigram $p(w_1,w_2,\ldots,w_n)=p(w_1)p(w_2|w_1)p(w_3|w_2)\cdots p(w_n|w_{n-1})$.

实际应用中加入开始标识符和结束标志符, 即第一项为 $p(w_1|<BOS>)$ 最后一项为 $p(<EOS>|w_{n-1})$.

参数计算方法就是用巨大的语料库, 统计连续 $n$ 个词的分布计算条件概率.

参数量

显然 $n$ 越大理论效果越好, 越接近数学层面的定义.

但考虑到实际计算限制, 一般取 $n=3$.

设词典中词数为 $N$, 对于 $n-gram$ 要计算 $p(w_n|w_1,\ldots,w_{n-1})$, 一共有 $N^n$ 个参数, 参数量巨大难以维护, 并且会出现非常多 0 值参数.

数据稀疏

在给定的训练数据中 - 一些词高频出现, 概率很高 - 一些词低频出现, 概率接近 0, 从而造成估计不可靠. 极大似然估计在采样样本总数趋于无穷时达到最小方差.

同时也可能有一些词或词组在数据集未出现, 从而无法计算. 默认 0 的话会导致一个很好的句子被认为概率 0.

解决办法: - 扩大训练数据规模有所帮助, 但增加的数据集仍是高频词占据绝大部分. - 平滑: 重新估计 0 概率和低概率. (Add-one, Good-Turing) - 回退: 高阶 n-gram 的概率难以计算时, 采用低阶 n-gram 统计 (backoff, Linear interpolation)

平滑 Smooth

Add-one: 将所有词/词组出现次数 +1.

$c(w)$$w$ 出现次数, 总词数为 $|V|$, 总出现次数为 $N$. - unigram $p(w)=\frac{c(w)+1}{N+|V|}$. - bigram $p(w_1,w_2)=\frac{c(w_1,w_2)+1}{c(w_1)+|V|}$.

缺点: 会分走过多概率给 0 概率, 修正考虑将 +1, 变为 +$\delta$.

如何选取合适的 $\delta$ (held-out estimation) 从训练数据中分离一部分数据 $H$, 用剩余数据对不同 $\delta$ 训练, 并在 H 上测试表现, 选取最优的 $\delta$.

Good-Turing: 根据仅出现一次的 n-gram 的个数, 来确定未见 n-gram 的概率.

$N_r$ 表示出现次数为 $r$ 的词/词组的个数.

$r$ 调整为 $$ r^*=\frac{(r+1)N_{r+1}}{N_r} $$ 那么概率

回退

Backoff:

$$

p(w_i \mid w_{i-2}, w_{i-1})= \begin{cases} p(w_i \mid w_{i-2}, w_{i-1}) & \text{if } C(w_{i-2}, w_{i-1}, w_i) > 0 \ \alpha_1\, p(w_i \mid w_{i-1}) & \text{if } C(w_{i-2}, w_{i-1}, w_i)=0 \ \text{and}\ C(w_{i-1}, w_i) > 0 \ \alpha_2\, p(w_i) & \text{otherwise} \end{cases}

$$

Interpolation:

$$

p(w_n \mid w_{n-2}, w_{n-1}) = \lambda_1 p(w_n) + \lambda_2 p(w_n \mid w_{n-1}) + \lambda_3 p(w_n \mid w_{n-2}, w_{n-1}) \quad 0 \le \lambda_i \le 1,\quad i=1,2,3,\qquad \lambda_1+\lambda_2+\lambda_3=1

$$

模型质量评价

好的模型应该给实际使用的句子打较高的概率.

外部评价: 一般用于比较两个模型, 将其应用于同一个任务.

内部评价: 对模型直接评价.

Perplexity (困惑度, PP): P(W) 的几何平均值的倒数

对于 bigram 模型 $$ PP(W)=P(W)^{-\frac 1N}=\left[\prod\limits_{i=1}^N P(w_i|w_{i-1})^{-\frac1N}\right] $$ PP 越小效果越好

练习 2

题目

图

题目

图

前馈神经网络 FNN## 预训练模型 PCM

评论 0
评论加载中...