本文共 1492 字,大约阅读时间需要 4 分钟。
如果你喜欢一匹马,不要试图去追它,你肯定追不上;
你应该去种草种花,等到草长莺飞的季节,马自然会回来找你。
前言
本文主要分享自己在学习过程中对语言模型的一些认知,不一定是全正确,希望有不对的地方不吝指出。
what
语言模型,就是用于判断和描述一句话是否是人类可以理解的句子。更通俗的讲就是这句话是不是人话。
语言模型是一个无监督的基于概率统计的一种模型。
从数学的角度看,语言模型就是针对一句话 w1,w2,w3...wn 计算出这句话的概率p(w1, w2, w3..., wn)。概率越大,说明是人话的概率就越大,否则就不是人话(鬼话)。
比如:
今天天气晴朗 = p(今天,天气,晴朗)
晴朗天气天今 = P(晴朗,天气,天,今)
显然第一句话更像是人话即可以得知:
p(今天,天气,晴朗) > p(晴朗,天气,天,今)
基础知识
主要介绍下语言模型中最基础且最常见的几个概念:
链式法则(chain rule):
p(a, b, c) = p(a) * p(b|a) * p(c|a, b)
概率p(a,b,c)等同于概率p(a)于条件概率p(b|a)和p(c|a,b)的条件概率乘积。
马尔科夫假设:
在句子中,一个词出现的概率仅仅依赖于他前面的一个词或者几个词。
平滑项Smoothing:
平滑项代码有 拉普拉斯平滑 和 K平滑,平滑主要是用来解决0概率的问题,避免概率积因为个别概率为0而导致整体概率为0。
举例:
小明钓鱼,钓了8条鲫鱼,1条黑鱼,1条鲈鱼,请问钓到皖鱼的概率是多少?
显然从单纯角度上看,皖鱼的概率是0/10。当我们问即钓到鲫鱼又钓到皖鱼的概率为8/10 × 0/10 = 0
不妨我们假设,再钓上一条鱼的即为皖鱼,我们可以得到皖鱼的概率为1/11,这个时候即钓到鲫鱼又钓到皖鱼的概率就是8/11 × 1/11
第二中假设其实就是给未知的情况添加平滑项,以避免遇见陌生情况是概率全为0。
用数学公式表示:
p(w5|w1,w2,w3,w4) = (count(w5) + 1) / count(w1, w2, w3, w4, w5) + V
其中V为单词总量,通过控制分子的1 和分母中的V可以得到不同的平滑规则,最终只要保证所有概率之和为1即可。
PPL困惑度是用来衡量语言模型效果的一个指标,根据每个词来估计一句话出现的概率,并用句子长度作normalize。
S代表sentence,N是句子长度,p(wi)是第i个词的概率
PPL越小,p(wi)则越大,也就表示是人话的概率越高。
N-GRAN
根据马尔科夫假设,我们在计算一个句子概率时根据假设条件的不同,提出了几个不同的模型:
Uni-Gram: 一句话的概率由各个单词的概率决定
P(T) = p(w1)*p(w2)***p(wn)
Bi-Gram: 在句子中,每个词出现的概率只跟他前一个词相关
P(T)=p(w1|begin)*p(w2|w1)*p(w3|w2)***p(wn|wn-1)
Tri-Gram:在句子中,每一词出现的概率跟他前面2个词相关
P(T)=p(w1|begin1,begin2)*p(w2|w1,begin1)*p(w3|w2w1)***p(wn|wn-1,wn-2)
以此类推,我们可以到到N-Gram的推导式:
P(T)=P(w1)*p(w2)*p(w3)***p(wn)=p(w1)*p(w2|w1)*p(w3|w1w2)***p(wn|w1w2w3...)
完
介绍了语言模型的几个概念,及与其相关的一些公式。
转载地址:http://rgixl.baihongyu.com/