【大模型基础_毛玉仁】1.1 基于统计方法的语言模型
1.语言模型基础
语言是概率的。语言模型(LanguageModels, LMs)旨在准确预测语言符号的概率。
将按照语言模型发展的顺序依次讲解:
基于统计方法的n-grams 语言模型;
基于循环神经网络(RecurrentNeuralNetwork,RNN)的语言模型;
基于Transformer的语言模型。
1.1 基于统计方法的语言模型
通过对语料库(Corpus)中的语料进行统计或学习,来获得预测语言符号概率。
n-grams是最具代表性的统计语言模型。 它基于马尔可夫假设和离散变量的极大似然估计给出语言符号的概率。
1.1.1 n-grams 语言模型
n-gram指的是长度为n的词序列。
当n=1时, 称之为unigram
当n=2时,称之为bigrams
当n=3时,称之为trigrams
其他时,称之为“数字-grams”(如:当n=4 时,称之为4-grams)
假设,包含N个元素的语言符号可以表示为 w 1 : N = { w 1 , w 2 , w 3 , . . . , w N } w_{1:N} = \{w_1, w_2, w_3, ..., w_N\} w1:N={w1,w2,w3,...,wN}。 w 1 : N w_{1:N} w1:N 代表文本。
n-grams语言模型,通过依次统计文本中的n-gram及其对应的(n-1)-gram在语料库中出现的相对频率,来计算文本 w 1 : N w_{1:N} w1:N 出现的概率。计算公式如下所示:
P n -grams ( w 1 : N ) = ∏ i = n N C ( w i − n + 1 : i ) C ( w i − n + 1 : i − 1 ) , (1.1) P_{n\text{-grams}}(w_{1:N}) = \prod_{i=n}^{N} \frac{C(w_{i-n+1:i})}{C(w_{i-n+1:i-1})}, \tag{1.1} Pn-grams(w1:N)=i=n∏NC(wi−n+1:i−1)C(wi−n+1:i),(1.1)
C ( w i − n + 1 : i ) C(w_{i−n+1 : i}) C(wi−n+1:i)为词序列 { w i − n + 1 , . . . , w i } \{w_{i−n+1},...,w_i\} {wi−n+1,...,wi}在语料库中出现的次数;
C ( w i − n + 1 : i − 1 ) C(w_{{i−n+1}: {i−1}}) C(wi−n+1:i−1) 为词序列 { w i − n + 1 , . . . , w i − 1 } \{w_{i−n+1},...,w_{i−1}\} {wi−n+1,...,wi−1}在语料库中出现的次数。
bigrams语言模型的例子:
图1.1: n-grams 示例语料库。
假设语料库如图1.1所示,应用bigrams 对文本“长颈鹿脖子长”(其由{长颈鹿,脖子,长}三个词构成)出现的概率进行计算,如下式所示:
P bigrams ( 长颈鹿, 脖子, 长 ) = C ( 长颈鹿, 脖子 ) ⋅ C ( 脖子, 长 ) C ( 长颈鹿 ) ⋅ C ( 脖子 ) 。 (1.2) P_{\text{bigrams}}(\text{长颈鹿, 脖子, 长}) = \frac{C(\text{长颈鹿, 脖子}) \cdot C(\text{脖子, 长})}{C(\text{长颈鹿}) \cdot C(\text{脖子})}。 \tag{1.2} Pbigrams(长颈鹿, 脖子, 长)=C(长颈鹿)⋅C(脖子)C(长颈鹿, 脖子)⋅C(脖子, 长)。(1.2)
在此语料库中,C(长颈鹿)=5,C(脖子)=6,C(长颈鹿, 脖子)=2,C(脖子, 长) = 2,故有:
P bigrams ( 长颈鹿, 脖子, 长 ) = 2 5 ⋅ 2 6 = 2 15 。 (1.3) P_{\text{bigrams}}(\text{长颈鹿, 脖子, 长}) = \frac{2}{5} \cdot \frac{2}{6} = \frac{2}{15}。 \tag{1.3} Pbigrams(长颈鹿, 脖子, 长)=52⋅62=152。(1.3)
由此可见,n-grams 具备对未知文本的泛化能力。但是,这种泛化能力会随着n的增大而逐渐减弱。应用trigrams对文本“长颈鹿脖子长”出现的概率进行计算,将出现“零概率”的情况。
因此,在n-grams语言模型中,n的值是影响性能的关键因素。
1.1.2 n-grams 的统计学原理
n-grams 语言模型是在n阶马尔可夫假设下,对语料库中出现的长度为n的词 序列出现概率的极大似然估计。
定义1.1(n阶马尔可夫假设):
对于序列 { w 1 , w 2 , w 3 , . . . , w N } \{w_1, w_2, w_3, ..., w_N\} {w1,w2,w3,...,wN},当前状态 wN 出现的概率只与前 n 个状态 { w N − n , . . . , w N − 1 } \{w_{N-n}, ..., w_{N-1}\} {wN−n,...,wN−1}有关,即:
P ( w N ∣ w 1 , w 2 , . . . , w N − 1 ) ≈ P ( w N ∣ w N − n , . . . , w N − 1 ) (1.5) P(w_N|w_1, w_2, ..., w_{N-1}) \approx P(w_N|w_{N-n}, ..., w_{N-1}) \tag{1.5} P(wN∣w1,w2,...,wN−1)≈P(wN∣wN−n,...,wN−1)(1.5)
定义1.2(离散型随机变量的极大似然估计): (存疑。。。)
给定离散型随机变量X的分布律为 P { X = x } = p ( x ; θ ) P\{X=x\}=p(x;θ) P{X=x}=p(x;θ),
设 X 1 , . . . , X N X_1,...,X_N X1,...,XN 为来 自X的样本, x 1 , . . . , x N x_1,...,x_N x1,...,xN 为对应的观察值,θ为待估计参数。
在参数θ下,分 布函数随机取到 x 1 , . . . , x N x_1,...,x_N x1,...,xN 的概率为:
p ( x ∣ θ ) = ∏ i = 1 N p ( x i ; θ ) (1.6) p(x|\theta) = \prod_{i=1}^{N} p(x_i; \theta) \tag{1.6} p(x∣θ)=i=1∏Np(xi;θ)(1.6)
构造似然函数为:
L ( θ ∣ x ) = p ( x ∣ θ ) = ∏ i = 1 N p ( x i ; θ ) (1.7) L(\theta|x) = p(x|\theta) = \prod_{i=1}^{N} p(x_i; \theta) \tag{1.7} L(θ∣x)=p(x∣θ)=i=1∏Np(xi;θ)(1.7)
离散型随机变量的极大似然估计旨在找到θ使得L(θ|x)取最大值。
n-grams 语言模型总结:
n-grams 语言模型通过统计词序列在语料库中出现的频率来预测语言符号的概 率。其对未知序列有一定的泛化性,但也容易陷入“零概率”的困境。
基于各类神经网络的语言模型不断被提出,泛化能力越来越强。基于神经网络的语言模型不再通过显性的计算公式对语言符号的概率进行计算,而是利 用语料库中的样本对神经网络模型进行训练。
.
其他参考:【大模型基础_毛玉仁】系列文章
声明:资源可能存在第三方来源,若有侵权请联系删除!