什麼是語言模型?
語言模型會估算較長符記序列中出現符記或符記序列的機率。詞元可以是字詞、子字詞 (字詞的子集),甚至是單一字元。
請考慮下列句子和可能完成句子的權杖:
When I hear rain on my roof, I _______ in my kitchen.
語言模型會判斷不同詞元或詞元序列的機率,以完成空白處。舉例來說,下列機率表列出一些可能的權杖及其機率:
| 機率 | 權杖 |
|---|---|
| 9.4% | 煮湯 |
| 5.2% | 熱水壺 |
| 3.6% | 畏縮 |
| 2.5% | 小睡片刻 |
| 2.2% | 放鬆身心 |
在某些情況下,權杖序列可能是一整句、一段文字,甚至是整篇文章。
應用程式可以使用機率表進行預測。 預測結果可能是機率最高的詞元 (例如「煮湯」),也可能是從機率高於特定門檻的詞元中隨機選取。
估算文字序列中空白處填入內容的機率,可擴展至更複雜的工作,包括:
- 生成文字。
- 將文字翻譯成其他語言的譯文。
- 生成文件摘要。
現代語言模型會模擬符記的統計模式,發展出極為強大的語言內部表示法,並生成合理的語言。
N 元語法語言模型
N 元語法是建構語言模型時使用的有序字詞序列,其中 N 是序列中的字詞數。舉例來說,當 N 為 2 時,N-gram 稱為 2-gram (或 bigram);當 N 為 5 時,N-gram 稱為 5-gram。假設訓練文件中有下列詞組:
you are very nice
產生的 2-gram 如下所示:
- 你
- 非常
- 非常好
當 N 為 3 時,N-gram 稱為 3-gram (或三連詞)。以相同詞組為例,產生的 3 元語法如下:
- 你很
- 非常棒
輸入兩個字詞後,以 3-gram 為基礎的語言模型可以預測第三個字詞的機率。舉例來說,假設有以下兩個字詞:
orange is
語言模型會檢查從訓練語料庫衍生的所有 3 連詞,這些 3 連詞都以 orange is 開頭,藉此判斷最有可能的第三個字。可能有數百個 3-gram 是以「orange is」這兩個字開頭,但您可以只專注於下列兩種可能性:
orange is ripe orange is cheerful
第一個可能性 (orange is ripe) 是指水果「橘子」,第二個可能性 (orange is cheerful) 則是顏色「橘色」。
背景資訊
人類可以記住相對較長的脈絡。觀看第 3 幕時,您會記得第 1 幕中出現的角色。同樣地,長篇笑話的笑點之所以好笑,是因為你還記得笑話開頭的脈絡。
在語言模型中,脈絡是指目標符記前後的實用資訊。語言模型可根據脈絡判斷「orange」是指柑橘類水果還是顏色。
內容有助於語言模型做出更準確的預測,但 3 連詞是否能提供足夠的內容?很遺憾,3-gram 只能提供前兩個字詞的脈絡。舉例來說,語言模型無法根據「不」和「會」這兩個字詞預測第三個字詞。orange is由於缺乏背景資訊,以 3-gram 為基礎的語言模型會犯下許多錯誤。
較長的 N 元語法提供的背景資訊一定比短的 N 元語法多。 不過,隨著 N 增加,每個例項的相對出現次數會減少。 當 N 變得非常大時,語言模型通常只會針對 N 個權杖的每次出現情況建立單一例項,這對預測目標權杖並無太大幫助。
循環類神經網路
遞迴神經網路比 N-gram 提供更多背景資訊,循環類神經網路是一種類神經網路,會根據一連串的符記進行訓練。舉例來說,循環類神經網路可以逐步學習 (並忽略) 句子中每個字詞的選定內容,就像你聽人說話時一樣。大型循環類神經網路可從一段句子中取得背景資訊。
雖然循環類神經網路比 N 元語法學習更多脈絡,但循環類神經網路可直覺推斷的實用脈絡量仍相對有限。循環類神經網路會「逐一」評估資訊。相較之下,大型語言模型 (下一節的主題) 可以一次評估整個脈絡。
請注意,訓練長脈絡的遞迴類神經網路時,會受到梯度消失問題的限制。
練習:確認你的理解程度
- 以 6-gram 為基礎的語言模型
- 以 5-gram 為基礎的語言模型