CS224N 語言模型介紹

2021-10-05 22:58:10 字數 1819 閱讀 7627

語言模型實現

語言模型是指根據給定序列**下乙個單詞的任務,其形式化表達為:給定單詞序列x(1), x(2), … , x(t),然後**單詞x(t+1)的概率分布:

語言模型的另一種定義是給給定文字序列分配概率(這個概率代表了該文字序列出現的可能性大小)。

例如,給定一段文字x(1), x(2), … , x(t),那麼這段文字出現的概率為:

語言模型在現實生活中具有非常廣泛的應用,例如輸入法和搜尋引擎的輸入聯想功能。

n-grams指的是長度為n的連續單詞序列,常用的包括unigrams、bigrams、tri-grams、4-grams。

n-gram語言模型的實現基於馬爾科夫假設,即單詞x(t+1)僅僅依賴於前面的n-1個單詞。因此上述公式可以改寫為:

實際計算中,使用n-gram在語料出現的頻率代替實際的概率,如下所示:

語言模型主要存在資料稀疏的問題(sparsity problem)。這個問題可以從兩方面分析。

首先,如果x(t+1), x(t),…,x(t-n+2)從未在語料出現過,那麼根據根據上述公式計算得到的概率直接為0。為了避免這種情況,可以採用smoothing的方法,即給分子新增乙個小的θ。

其次,如果x(t),…,x(t-n+2)從未在語料出現過,那麼就無法根據上述公式進行計算。對於這種情況,可以採取backoff的方法,即使用count(x(t-1),…,x(t-n+2)) 來代替count(x(t),…,x(t-n+2))。

資料稀疏問題會隨著n的增加而變得更加嚴重,因此在實際應用時,n一般不超過5。

除了資料稀疏問題之外,n-gram 語言模型還存在儲存空間過大的問題。由於n-gram語言模型在計算時需要儲存語料中所有n-gram出現的次數,因此模型的大小會隨著n和語料的增加而增大。

bengio, et al在《a neural probabilistic language model》中首次將神經網路引入到語言模型任務。在這篇**中,y. bengio, et al使用乙個固定視窗的深度神經網路來實現語言模型,其結構如圖所示:

nnlm雖然成功解決了n-gram模型的資料稀疏和儲存問題,但是也存在一些其它問題:

(1)模型中設定的視窗尺寸設定比較小。

(2)模型中的權重矩陣w隨視窗尺寸增大而增大,因此視窗尺寸只能侷限於一定範圍。

(3)輸入處理方式不對稱,即輸入單詞在計算中會分別與w中的不同權重相乘。

rnn應用到語言模型中主要有以下優勢:

(1)可以處理任意長度的輸入序列;

(2)理論上在計算t時刻的狀態時可以應用前面時刻獲得的資訊;

(3)模型的大小不受輸入序列長度影響;

(4)每乙個時間步對輸入的計算可以共享相同權重;

rnn的缺陷在於:

(1)計算速度過慢

(2)在實際應用,由於梯度消失問題,rnn無法捕捉長距離依賴特徵。

CS224N 子詞模型(subwords)

二 subword model 三 subword level language model 四 hybrid nwt 五 character level 因為人類書寫系統多種多樣,同時詞語存在形態變換,音譯,縮寫以及網路用語等現象,所以僅在word level進行建模是不夠的,需要model bl...

CS224n 詞向量模型和GloVe

語言學家j.r.firth提出,通過乙個單詞的上下文可以得到它的意思,所以我們可以定義乙個以 某個單詞的上下文的模型 p context wt 我們的目標當然是希望概率p越大越好,所以我們可以定義乙個目標函式 j t 1t m j m,j 0p wt j wt 我們的目的就是最大化上面這個目標函式。...

CS224n筆記一 開端

自然語言處理的目標是讓計算機處理或者 理解 自然語言,以完成有意義的任務,如qa等。形態學 morphological analysis 或稱詞法或者詞彙形態學。其研究詞的內部結構,包括屈折變化和構詞法兩個部分。句法分析 syntactic analysis 和語義分析 semantic inter...