- 大語言模型:原理、應用與優化
- 蘇之陽 王錦鵬 姜迪 宋元峰
- 1106字
- 2024-12-18 17:06:21
1.1.1 n-gram語言模型
n-gram指的是由n個連續單詞構成的序列,例如,large是一個一元語法(Unigram)的實例,large language是一個二元語法(Bigram)的實例,而large language model是一個三元語法(Trigram)的實例。基于n-gram構造的語言模型稱為n-gram語言模型,這種語言模型將單詞序列的生成過程看作馬爾可夫過程,其數學基礎是馬爾可夫假設(Markov Assumption),即第n個詞僅僅依賴于它前面的n-1個詞。使用n-gram語言模型計算單詞序列的概率時,不同的n會有不同的計算方法。例如,當n-1時,我們采用的是一元語法語言模型:

則單詞序列“large language model”的概率的計算公式為:

其中,<s>和</s>是標識句子開頭和結束的特殊符號。當n=2時,用二元語法語言模型計算單詞序列的概率的計算公式為:

則單詞序列“large language model”的概率的計算公式為:

以此類推,當n=3時,用三元語法語言模型計算單詞序列的概率的計算公式為:

則單詞序列“large language model”的概率的計算公式為:

可以看出,使用n-gram語言模型的前提是對條件概率進行精確的估計。常用的一個方法是收集大量的自然文本語料,然后采用最大似然估計(Maximum Likelihood Estimation,MLE)的方式計算這些條件概率。MLE的目標是通過優化
使得訓練語料的概率最大化。
以在單詞序列w1,w2,…,wm上訓練一元語法語言模型為例,考慮到某些單詞會重復出現(比如w1和wm都是單詞“large”),我們將

表示為:

其中,vi表示詞匯表中某個單詞,c(vi)表示在單詞序列w1,w2,…,wm中vi出現的頻次。一元語法語言模型訓練的目標是使P(w1,w2,…,wm)最大化,因此可以抽象成如下數學問題:

通過求解上述問題,我們發現可以通過統計單詞出現的頻次來實現對語言模型中的參數的估計,一元語法語言模型中的各個概率可以通過如下公式進行計算:

其中,c(wi)表示單詞wi在訓練數據中的頻次。
以此類推,二元語法語言模型中的各個條件概率值可以通過如下公式進行計算:

同理,三元語法語言模型中的各個條件概率值可以通過如下公式進行計算:

雖然n-gram語言模型在實際應用場景中有不錯的表現,但它也存在一定的局限性。當處理的文本中包含不在當前語言模型的詞匯表中的單詞時,就會遇到未登錄詞(Out-Of-Vocabulary,OOV)問題。降低未登錄詞問題負面影響的策略有二:一是忽略不在現有n-gram語言模型的詞匯表中的所有單詞;二是在詞匯表中引入特殊詞元(例如“<UNK>”)來顯式表示詞匯表外單詞的概率。
n-gram語言模型的另一個問題是維數災難(Curse of Dimensionality)。為了使n-gram語言模型能夠建模較長的上下文,我們需要增大n的值,但當n變大時,需要計算對應概率的n-gram的個數呈指數增長。某些n-gram在訓練語料中極為稀疏,從而導致沒有足夠的數據來對其概率進行準確估測,甚至出現訓練數據中未出現的n-gram被賦予零概率的情況。解決這個問題需要用到語言模型平滑(Language Model Smoothing)技術,該技術將一定的概率分配給未見過的單詞或n-gram來平滑概率分布。