何为语言模型?从机器学习的角度来看,语言模型可对自然语句进行建模,对语言序列中的每个词预测一个概率分布,通过这种概率建模可以判断这个词序列是否为正常语句 [1] 。比方说,对于语句A“我爱自然语言处理和语句”和语句B“我自然语言处理爱”,鉴于语句A更可能是一个正常语句,语言模型将对其赋予更高的概率。即使是如今最强大的模型,如ChatGPT和GPT-4,也是采用的这种朴素的语言模型思想来进行建模的。
给定任意一个词序列 w 1 , w 2 ,…, w n ,语言模型能够计算这个词序列的概率 P ( w 1 , w 2 ,…, w n )。一种常见的方法是,根据数据集中句子出现的次数进行计算。假设语料库中的句子个数为 N ,定义 c ( w 1 , w 2 ,…, w n )为训练语料库中词序列 w 1 , w 2 ,…, w n 出现的次数,那么词序列概率的计算公式为
然而,这种语言模型的计算方式只能对语料库中出现过的句子进行概率计算,却不能泛化到语料库中未出现的语句。因此,另一种计算方式是将词序列中每个词出现的概率进行叠加。根据概率学中的链式法则,词序列对概率计算公式进行化简,即
根据 P ( w i | w 1 ,…, w i -1 ),可计算出 P ( w 1 , w 2 ,…, w n )。该概率可理解为给定一个词序列,根据该词序列对下一个会出现的词进行概率预测。