预训练模型的基础知识
简单来讲,语言模型就是计算一个句子的概率。
语言模型
给定一句由 n 个词组成的句子
语言模型在 NLP 中用途很广泛,比如可以从几个识别出来的不确定的候选句子中选一个概率最大的句子。
# 1. Statistical Language Model
# 1.1 What is Statistical Language Model
统计语言模型(Statistical Language Model)的基本思想就是计算条件概率,对一个句子
以“判断这个词的词性”这句话为例,当给定前面的词序列是“判断,这个,词,的”时,想要知道下一个词是什么,则套用上面公式的右半部分得到:
- 其中
表示词序列的下一个词,V 是词典。
# 1.2 n-gram Language Model
然而当句子很长时,上式的计算是很困难的,因为需要列举
这里需要引入 Markov Chain,也就是只假设
如果一个词的相关性不明显,则可以将条件放宽至两个词:
也就是用
在二元语言模型中,
计算方式为先计算“
# 1.3 Perplexity(困惑度)
困惑度(Perplexity,PPL)作为一种量化指标,常用于判断一个句子的好坏:
由此可见,句子的概率值越大,其困惑度
在实际计算过程中,由于数值稀疏,为了避免出现概率值为 0 的情况,通常会用到的一种策略是平滑(Smoothing)。最简单的平滑方法就是将分子和分母都加入一个非 0 正数:
- 其中
是词典的大小。
平滑的方法有很多种,比如 Good-Turing Estimate、Katz 平滑法、Jelinek-Mercer 平滑法等。