語言模型
此條目包含過多行話或專業術語,可能需要簡化或提出進一步解釋。 (2023年4月22日) |
語言模型是一個自然語言中的詞語概率分佈模型[1][2],例如提供一個長度為 的字詞序列 ,計算這些字詞的概率:。通過語言模型,可以確定哪個詞語出現的可能性更大,或者通過若干上文語境詞來預測下一個最可能出現的詞語。[3]
語言模型經常使用在許多自然語言處理方面的應用,如語音識別[4],機器翻譯[5],詞性標註,句法分析[6],手寫體識別[7]和資訊檢索。由於字詞與句子都是任意組合的長度,因此在訓練過的語言模型中會出現未曾出現的字串(資料稀疏的問題),也使得在語料庫中估算字串的概率變得很困難,這也是要使用近似的平滑n-元語法(N-gram)模型之原因。
在語音辨識和在資料壓縮的領域中,這種模式試圖捕捉語言的特性,並預測在語音串列中的下一個字。
在語音識別中,聲音與單詞序列相匹配。當來自語言模型的證據與發音模型和聲學模型相結合時,歧義更容易解決。
當用於資訊檢索,語言模型是與文件有關的集合。以查詢字「Q」作為輸入,依據概率將文件作排序,而該概率代表該文件的語言模型所產生的語句之概率。
模型類型
[編輯]單元語法(unigram)
[編輯]一個單元模型可以看作是幾個單狀態有限自動機的組合[8]。 它會分開上下文中不同術語的概率, 比如將 拆分為.
在這個模型中,每個單詞的概率只取決於該單詞在文檔中的概率,所以我們只有一個狀態有限自動機作為單位。自動機本身在模型的整個詞彙表中有一個概率分佈,總和為1。下面是一個文檔的單元模型。
單詞 term | 在文檔 doc 中的概率 |
---|---|
a | 0.1 |
world | 0.2 |
likes | 0.05 |
we | 0.05 |
share | 0.3 |
... | ... |
為特定查詢(query)生成的概率計算如下
不同的文檔有不同的語法模型,其中單詞的命中率也不同。不同文檔的概率分佈用於為每個查詢生成命中概率。可以根據概率對查詢的文檔進行排序。兩個文檔的單元模型示例:
單詞 | 在Doc1的概率 | 在Doc2中的概率 |
---|---|---|
a | 0.1 | 0.3 |
world | 0.2 | 0.1 |
likes | 0.05 | 0.03 |
we | 0.05 | 0.02 |
share | 0.3 | 0.2 |
... | ... | ... |
在信息檢索環境中,通常會對單語法語言模型進行平滑處理,以避免出現P(term)= 0的情況。一種常見的方法是為整個集合生成最大似然模型,並用每個文檔的最大似然模型對集合模型進行線性插值來平滑化模型。[9]
n-元語法
[編輯]在一個 n-元語法模型中,觀測到序列 的概率 可以被近似為
此處我們引入馬爾科夫假設,一個詞的出現並不與這個句子前面的所有詞關聯,只與這個詞前的 n 個詞關聯(n階馬爾科夫性質)。在已觀測到 i-1 個詞的情況中,觀測到第i個詞 wi 的概率,可以被近似為,觀測到第i個詞前面n個詞(第 i-(n-1) 個詞到第 i-1 個詞)的情況下,觀測到第i個詞的概率。第 i 個詞前 n 個詞可以被稱為 n-元。
條件概率可以從n-元語法模型頻率計數中計算:
術語 二元語法(bigram) 和三元語法(trigram) 語言模型表示 n = 2 和 n = 3 的 n-元 [10]。
典型地,n-元語法模型概率不是直接從頻率計數中導出的,因為以這種方式導出的模型在面對任何之前沒有明確看到的n-元時會有嚴重的問題。相反,某種形式的平滑是必要的,將一些總概率質量分配給看不見的單詞或n-元。使用了各種方法,從簡單的「加一」平滑(將計數1分配給看不見的n-元,作為一個無信息的先驗)到更複雜的模型,例如Good-Turing discounting或 back-off 模型。
例子
[編輯]在二元語法模型中 (n = 2) , I saw the red house 這個句子的概率可以被估計為
而在三元語法模型中,這個句子的概率估計為
注意前 n-1 個詞的 n-元會用句首符號 <s> 填充。
指數型
[編輯]最大熵語言模型用特徵函數編碼了詞和n-元的關係。
其中 是分區函數, 是參數向量, 是特徵函數。
在最簡單的情況下,特徵函數只是某個n-gram存在的指示器。使用先驗的 a 或者使用一些正則化的手段是很有用的。
對數雙線性模型是指數型語言模型的另一個例子。
參見
[編輯]參考資料
[編輯]- ^ Jurafsky, Dan; Martin, James H. N-gram Language Models. Speech and Language Processing 3rd. 2021 [24 May 2022]. (原始內容存檔於22 May 2022).
- ^ Rosenfeld, Ronald. Two decades of statistical language modeling: Where do we go from here?. Proceedings of the IEEE. 2000, 88 (8).
- ^ 王亞珅,黃河燕著,短文本表示建模及應用,北京理工大學出版社,2021.05,第24頁
- ^ Kuhn, Roland, and Renato De Mori. "A cache-based natural language model for speech recognition." IEEE transactions on pattern analysis and machine intelligence 12.6 (1990): 570-583.
- ^ Andreas, Jacob, Andreas Vlachos, and Stephen Clark. "Semantic parsing as machine translation (頁面存檔備份,存於互聯網檔案館)." Proceedings of the 51st Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers). 2013.
- ^ Andreas, Jacob, Andreas Vlachos, and Stephen Clark. "Semantic parsing as machine translation (頁面存檔備份,存於互聯網檔案館)." Proceedings of the 51st Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers). 2013.
- ^ Pham, Vu, et al. "Dropout improves recurrent neural networks for handwriting recognition." 2014 14th International Conference on Frontiers in Handwriting Recognition. IEEE, 2014.
- ^ Christopher D. Manning, Prabhakar Raghavan, Hinrich Schütze: An Introduction to Information Retrieval, pages 237–240. Cambridge University Press, 2009
- ^ Buttcher, Clarke, and Cormack. Information Retrieval: Implementing and Evaluating Search Engines. pg. 289–291. MIT Press.
- ^ Craig Trim, What is Language Modeling? (頁面存檔備份,存於互聯網檔案館), April 26th, 2013.
外部連結
[編輯]- LMSharp (頁面存檔備份,存於互聯網檔案館) - 開源統計語言模型工具包,支持n-gram模型(Kneser-Ney平滑),以及反饋神經網絡模型(recurrent neural network model)