官术网_书友最值得收藏!

2.1 語言模型

2.1.1 概述

語言模型通常構建為字符串s的概率分布ps),反映字符串s作為一個句子出現的頻率。語言模型可以幫助機器翻譯系統選出更符合人類習慣的翻譯候選,幫助語音識別系統選出可能性最高的候選詞等,在自然語言處理領域有著廣泛的應用和重要的地位。

本節將主要介紹目前使用廣泛的兩種語言模型:①基于統計方法的n-gram語言模型;②神經網絡語言模型。

2.1.2 n-gram語言模型

n元文法(n-gram)指的是在給定序列中的n個連續元素,即給定序列s=w1,w2,…,wN。其中,任意n個連續元素wi,wi+1,…,wi+n-1n≥1,1≤iN)均為n元文法單元(見圖2-1)。這里的序列可以是語音或文本,元素可以是發音、單詞、字符等。下面將以文本作為輸入序列、以單詞作為序列元素,介紹n元文法語言模型。

img

圖2-1 n元文法單元

n元文法語言模型采用鏈式法則計算序列的概率,即

img

式(2-1)中,序列的概率為序列中各個位置i上的單詞wi在給定之前所有單詞w1w2,…,wi-1情況下條件概率img的乘積,前i-1個單詞w1,w2,…,wi-1被稱為單詞wi的歷史(History)。語言模型的任務被分解為預測條件概率img

為了降低運算的復雜度,n元文法語言模型將單詞wi的歷史縮小為前n-1個詞,以n=3為例,即

img

則式(2-1)可改寫為

img

在式(2-2)的過程中,每步計算只考慮有限的歷史,這種過程被稱為馬爾可夫過程。該過程基于馬爾可夫假設(Markov Assumption)。n被稱為馬爾可夫過程的階數(Order)。

在實際應用中,n的取值通常與訓練數據的規模相關。當訓練數據的規模較大時,n可以取較大的值。當n=1時,被稱為一元文法(Unigram),可直接估計pwi),不需考慮歷史;當n=2時,被稱為二元文法(Bigram);當n=3時,被稱為三元文法(Trigram)。

2.1.3 估計

n元文法語言模型通過統計訓練數據中n元文法出現的頻次,利用最大似然估計(Maximum Likelihood Estimation)來估計條件概率imgimg,即

img

n=3為例,計算方法為

img

例如,給定三元文法“花貓 正在 睡覺”,該三元文法在訓練數據中共出現10次,以“花貓 正在”開頭的三元文法(如“花貓 正在 睡覺”“花貓 正在 喝水”“花貓 正在 吃飯”等)在訓練數據中共出現30次,利用最大似然估計,條件概率為

img

2.1.4 評價指標

若假設測試數據與訓練數據的概率分布一致,均為L,則語言模型在測試數據上估計的概率分布qL越接近,語言模型越優秀。

在實際應用中,概率分布L是未知的,在這種情況下,可利用交叉熵估計,即

img

其中,img為語言模型對單詞wi的概率估計,若n=3,則img。

通常采用困惑度(Perplexity,PPL)作為語言模型的評價指標。困惑度是交叉熵的數學變換,即

img

由式(2-5)可知,交叉熵的數值越小,困惑度越小,語言模型估計的概率分布越接近實際的概率分布。

2.1.5 數據稀疏與齊夫定律

在現實中,無論訓練數據的規模如何龐大,都只是真實世界數據中的一個子集,由于訓練數據的不完整,因此計數及根據計數信息得到的最大似然估計均會與真實分布或測試數據的分布有差異。當訓練數據集合上未出現或以低頻出現n元文法時,這種問題表現得尤其突出。而事實上,訓練數據中占大部分的n元文法均是低頻的。

齊夫定律(Zipf's Law)是由哈佛大學的語言學家喬治·K.齊夫(George K.Zipf)于1949年發表的實驗定律,可以表述為:在自然語言的語料庫里,一個單詞出現的頻率與其在頻率表里的排名成反比。

表2-1為聯合國平行語料庫[1]里英文部分的詞頻分布情況。該語料庫經過Moses[2]提供的tokenizer.perl進行了預處理,經預處理后的總詞數為425529171,詞匯表規模為859863。

表2-1 聯合國平行語料庫里英文部分的詞頻分布情況

img

圖2-2為聯合國平行語料庫里英文詞頻排序與詞頻的關系曲線。

img

圖2-2 聯合國平行語料里英文詞頻排序與詞頻的關系曲線

圖2-3為聯合國平行語料庫里中文詞頻排序與詞頻的關系曲線。圖中,(a)為詞表中所有單詞的詞頻分布;(b)為詞表中前200的詞頻分布;(c)為詞表中排名為2000~10000的詞頻分布。中文部分采用LTP工具[3]提供的中文分詞組件進行分詞預處理,經預處理后,總詞數為384697618,詞匯表規模為1023162。由圖2-3可知,齊夫定律在中文語料中同樣適用。

由表2-1、圖2-2和圖2-3可知,在語料中,絕大部分為低頻詞(或低頻n元文法),由于低頻詞的計數值較小,因此造成了數據稀疏(Data Sparse)的問題,利用最大似然估計的方法估計低頻詞的概率往往是不準確的。

img

圖2-3 聯合國平行語料庫里中文詞頻排序與詞頻的關系曲線

2.1.6 計數平滑方法

數據稀疏問題會對語言模型的概率估計產生影響,在測試時,若出現語言模型未見過的n元文法,則根據最大似然估計方法的思想,其概率將被賦為0。這顯然是不合理的。

下面將介紹幾種計數平滑方法用以緩解所提到的問題。

1.加1平滑

為解決零概率問題,可以采用加1平滑的方法,即在每個項的計數值上加一個固定的數字(例如1)。為保證概率和為1,在進行概率估計時,要考慮所有的n元文法數(包括從訓練數據統計得到的和額外引入的)。以三元文法為例,式(2-3)將改寫為

img

其中,m為可能出現的n元文法的總數(本例中n=3)。所有可能的n元文法總數m=img為詞表規模。若詞表規模為104,則m=1012。假設訓練數據包含的總詞數為108,則m遠大于統計值,原始訓練數據的最大似然概率估計值將被嚴重稀釋。

為緩解該問題,可以將加1計數變為加α計數(α<1),仍以三元文法為例,式(2-6)改寫為

img

一般情況下,若令cw為某n元文法w在訓練語料上的計數值,Cnn元文法在訓練數據上的總個數,img為詞表規模,m=img為所有可能的n元文法數,則采用最大似然估計、加1平滑和加α平滑的計算方法估計的概率分別為

img

2.留存估計和刪除估計平滑法

n元文法模型在訓練時無法預知測試語料的分布情況,則可以把已知的訓練集分為兩部分:一部分作為訓練數據;另一部分作為開發數據,用于改善在訓練數據上得到的概率估計。

留存估計(Held-out Estimation):r為某n元文法在開發數據上的計數值;Nr為在訓練數據中出現r次的不同n元文法的總數;Tr為在訓練數據中出現r次的n元文法在開發數據中的計數之和;T為開發數據中所有n元文法的總數,則

img

刪除估計(Deleted Estimation):通過使兩部分數據互為訓練集和開發集,計算兩次留存估計后的平均值作為某n元文法的最終計數值:①通過分割好的訓練數據和開發數據得到TrNr;②將最初的訓練數據作為本輪的開發數據,最初的開發數據作為本輪的訓練數據,得到imgimg,則調整后的計數rdel

img

這樣的方法也被稱為雙向交叉驗證(Cross Validation)。

3.古德圖靈平滑法

古德圖靈(Good-Turing)平滑法:利用計數頻次較高的n元文法的頻次調整計數頻次較低的n元文法的頻次,調整后,n元文法的計數r?的計算公式為

img

目前,統計語言模型通過概率和分布函數來描述詞、詞組及句子等自然語言基本單位的性質和關系,體現了自然語言中存在的基于統計原理的生成和處理規則。其中,n-gram語言模型是應用最廣泛的一種,但仍存在很多不足,主要表現如下。

(1)由于語言模型建模受到訓練語料規模的限制,其分布存在一定的片面性,新詞和低頻詞很少出現在訓練文本中,因此導致數據稀疏問題。

(2)由于馬爾可夫假設限制n的大小,因此只能對短距離的詞之間的轉移關系進行建模,無法體現長距離的詞之間的依賴關系。

(3)訓練效率低,解碼時間較長,目前的語料規模巨大,因此不能滿足實際要求。

(4)現有語言模型大部分只用到字、詞等語法層面的簡單信息,很少使用深層的語言知識,描述能力較差,不能很好地反映真實的概率分布。

2.1.7 神經網絡語言模型

伴隨著深度學習的發展,作為一種改進方式,神經網絡被引入語言模型中。目前,神經網絡語言模型被廣泛使用:一方面解決了統計語言模型的限制;另一方面,神經網絡語言模型可以獲取詞匯、句子、文檔、語義、知識等屬性的分布式向量表示,可解決特定的應用任務,如情感分析、推薦系統等。神經網絡語言模型克服了統計語言模型中存在的數據稀疏問題,具有更強的長距離約束能力。神經網絡語言模型參數的共享更直接有效,對低頻詞具有天然的光滑性,在建模能力上具有顯著優勢,受到學術界和工業界的極大關注。

神經網絡語言模型通常與詞向量緊密聯系在一起。詞向量往往是在訓練語言模型中得到的副產品,在訓練語言模型的同時也學習和優化了詞嵌入向量。

2.1.8 小結

本節介紹了兩種現今廣泛使用的語言模型:①n-gram語言模型;②神經網絡語言模型。

n-gram語言模型的構造方法主要依賴統計計數:首先統計n-gram的個數以估計n-gram出現的概率,再依照馬爾可夫鏈的假設,利用前n-1個詞作為條件,估計第n個詞的概率,最后利用條件概率的連乘對完整詞序列的概率進行預測。由于現實世界中語料的不完備問題,因此基于統計計數方法常會面臨數據不完備和數據稀疏問題,產生零概率。針對該問題,本節介紹了多種計數平滑方法以消除零概率問題。

基于統計計數的n-gram語言模型無法為語義或語法功能相似的詞建立聯系,采用概率連乘方法預測詞序列會受到序列中計數稀疏詞的低概率影響。神經網絡語言模型利用輸入詞的分布式表示可緩解該問題。詞的分布式表示通過學習詞與詞之間、不同詞在不同句子之間的共現學習。這種分布式表示可以使語法功能相似或語義相關的詞具有相似的分布式表示。以這種分布式表示作為語言模型的輸入可以有效緩解詞稀疏問題。

評價一個語言模型好壞最直接的方法是利用困惑度(perplexity,PPL)進行測量,計算語言模型在已知文本下的困惑度,困惑度的值越低,說明語言模型越符合已知文本的分布。此外,語言模型是自然語言處理的重要應用,能為給定語言的詞序列計算一個概率,用來表示詞序列在給定語言中出現的可能性。這種可能性反映了詞序列的流暢程度。語言模型在更高層次的自然語言處理方面有廣泛的應用,如語音識別、機器翻譯、信息檢索等。

主站蜘蛛池模板: 那曲县| 靖西县| 安顺市| 灌南县| 海晏县| 汕尾市| 通渭县| 原平市| 余江县| 常德市| 志丹县| 乌兰浩特市| 稻城县| 桐梓县| 武鸣县| 华坪县| 邢台市| 盖州市| 辉南县| 长春市| 莆田市| 东宁县| 子洲县| 德格县| 永康市| 会宁县| 花莲县| 平阴县| 庐江县| 吕梁市| 桑日县| 万安县| 哈巴河县| 宜阳县| 娄烦县| 郎溪县| 宝兴县| 盐城市| 揭西县| 通州区| 苍溪县|