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

1.1.2 神經網絡語言模型

神經網絡語言模型(Neural Network Language Model,NNLM)指的是一類利用神經網絡分類器來計算某個上下文中的單詞或單詞序列的概率的語言模型。神經網絡語言模型依賴于詞嵌入(Word Embedding)和多層神經網絡結構來完成上述概率的計算。詞嵌入是一種在機器學習領域廣泛應用的技術,旨在將高維度的數據(如文字和圖片)通過某種算法映射到低維度的向量空間。在該空間上,幾何距離相近的詞嵌入向量在原始空間上的語義也相近。

神經網絡語言模型的理論基礎是通用近似定理(Universal Approximation Theorem)[2]:神經網絡可以在歐氏空間以任意精度擬合任意函數。由于語言模型本質上是概率分布,神經網絡自然可以用來構建語言模型。與n-gram語言模型相比,神經網絡語言模型的一個顯著優(yōu)點是它可以輕松處理未登錄詞。神經網絡語言模型可以對可能出現(xiàn)在同一上下文中的其他詞的詞嵌入進行加權組合,并以此作為未登錄詞的詞嵌入計算未登錄詞的概率。另外,神經網絡語言模型并不需要顯式存儲每個n-gram及其對應的概率,因而可以有效減輕n-gram語言模型中的維數災難問題。

根據神經網絡的結構不同可以將神經網絡語言模型分為兩種:前饋神經網絡語言模型和循環(huán)神經網絡語言模型。如圖1-1所示,在前饋神經網絡語言模型中,我們首先將上下文中的每個單詞映射為其對應的詞嵌入,然后將這些詞嵌入拼接起來作為輸入。通過數層神經網絡的映射后,在最后一層通過Softmax函數最終輸出一個在詞匯表上的概率分布。基于該分布并結合一定的策略,我們選取一個詞(比如選取該分布中概率最大的詞)作為該上下文中模型預測的下一個詞。由于前饋神經網絡語言模型只能處理固定長度的單詞序列,研究者又提出了循環(huán)神經網絡語言模型來支持處理任何長度的單詞序列。

圖1-1 前饋神經網絡語言模型(左)與循環(huán)神經網絡語言模型(右)

循環(huán)神經網絡語言模型和前饋神經網絡語言模型的主要區(qū)別在于神經網絡中隱層的計算方式。循環(huán)神經網絡語言模型的隱層計算公式為:

其中,hi表示第i個隱層,emb(wi)表示單詞wi的詞嵌入,W表示循環(huán)神經網絡的權重,σ表示激活函數,每個隱層依賴于當前單詞的詞嵌入和循環(huán)神經網絡中上一個狀態(tài)的隱層,通過這樣的機制,循環(huán)神經網絡語言模型便能利用任意長度的上下文信息。

神經網絡語言模型的訓練采用監(jiān)督學習(Supervised Learning)方式,其損失函數引導神經網絡將正確的單詞的概率最大化。訓練語料中單詞wi的損失函數為:

其中,表示神經網絡最終的隱層。我們可以采用隨機梯度下降(Stochastic Gradient Descent,SGD)的方法對神經網絡語言模型的參數進行優(yōu)化。實踐經驗表明,神經網絡語言模型在多種場景中的效果均優(yōu)于n-gram語言模型。然而,神經網絡語言模型只能在一定程度上解決文本序列的長距離依賴問題,當遇到較長的文本時,其效果不甚理想,在這方面仍有很大的提升空間。

主站蜘蛛池模板: 南阳市| 竹溪县| 子长县| 静宁县| 伊吾县| 宁远县| 西乌珠穆沁旗| 桦川县| 彭阳县| 栖霞市| 谢通门县| 湖州市| 玉环县| 万盛区| 穆棱市| 隆回县| 营山县| 黄陵县| 玉溪市| 南木林县| 普格县| 营山县| 鹤壁市| 贵阳市| 云梦县| 宝应县| 福鼎市| 拉萨市| 兴宁市| 长岭县| 巴彦淖尔市| 黑龙江省| 军事| 张家界市| 三门县| 游戏| 梓潼县| 永州市| 神池县| 庆阳市| 襄樊市|