牛津大學xDeepMind 自然語言處理 Natural Language Processing
詞向量與詞匯語義學 Word Vectors and Lexical Semantics
- 詞語表示的基本問題與分布語義思想
- 傳統詞語表示(如獨熱向量)存在稀疏、正交、語義弱的問題,無法表達語義相似性。
- 分布語義核心思想:“觀其伴而知其詞”,即基于詞語的上下文 / 使用場景生成稠密向量表示,主要方法分為基于計數、基于預測和基于任務三類。
- 基于計數的方法
- 核心流程:定義上下文詞匯基C和窗口大小w,統計在語料庫中,每個目標詞的每個實例左右w個詞范圍內,上下文詞匯基的出現次數,基于這些計數,形成目標詞的向量表示。
- 相似性度量:常用內積或余弦相似度(余弦對范數不敏感,更優)。
- 優化:需區分信息量高的計數和高頻噪聲,常用 TF-IDF、PMI 等歸一化方法,但存在上下文基選擇等問題。
- 神經嵌入模型
- 通用思路:收集詞語實例及其上下文,定義可微的分數函數和損失,通過優化得到嵌入矩陣 E。
- 典型模型:
- C&W 模型(conv+MLP):通過卷積和 MLP 處理句子嵌入,用干擾句和鉸鏈損失訓練,能捕捉相鄰表示信息,但模型深、訓練成本高。
- CBoW 模型(Transform+softmax):將上下文詞嵌入相加后投影到詞匯表,用 softmax 和負對數似然訓練,全線性、速度快,有負采樣等變體。
- Skip-gram 模型(Transform+softmax):用目標詞預測上下文詞,嵌入目標詞后投影,效率高,需在效率和上下文結構化之間權衡。
- 神經模型與基于計數模型的比較
- 核心思想一致,Word2Vec 等價于基于計數模型的 PMI 矩陣分解。
- 經適當超參數優化后,兩者性能相當。
- 神經方法的優勢
- 易于學習,支持高度并行(小批量、GPU、分布式訓練)。
- 可預測上下文的離散(如詞性)和連續(如圖像)特征,避免計數方法的稀疏性問題。
- 詞表示的評估
- 內在評估:通過 WordSim-353、SimLex-999 等數據集測相似度,詞語類比任務(如 “女王 = 國王 - 男人 + 女人”),以及嵌入可視化(T-SNE投影、最近鄰)等。
- 外在評估:判斷嵌入是否能提升其他任務(如分類、情感分析)的性能。
- 基于任務的嵌入學習
- 核心:將嵌入矩陣 E 作為神經網絡參數,與網絡其他參數聯合訓練(可從頭學或預訓練后微調),使嵌入適應任務需求。
- 典型應用:
- BoW 分類器:將詞向量疊加作為特征,用于情感分析、文檔分類等,但無法處理歧義、多義性,語義較淺。
- 雙語特征學習:通過最大化對齊句子對的相似度(用噪聲對比邊際損失避免退化),使嵌入反映高層意義,提升跨語言表示能力。
- 局限性:任務嵌入僅捕捉任務相關信息,可能缺乏通用語義,可通過多任務學習或預訓練 + 任務投影緩解,但存在挑戰。
- 總結
- 詞向量是文本神經網絡的核心輸入,可單獨訓練、在任務中訓練或結合兩者。
- 遷移學習中,重用預訓練詞向量適用于數據少或詞匯覆蓋低的場景;數據充足時,任務內訓練嵌入更優,但可重用性降低。
RNN和語言建模
-
語言模型基礎
- 定義:語言模型為詞序列分配概率,滿足所有可能序列的概率和為 1,可用于比較詞序合理性(如翻譯、語音識別)。
- 核心分解:基于鏈式法則將聯合概率分解為條件概率的乘積,即p(w1,...wN)=∏n=1Np(wn∣w1,...,wn?1)p(w_1,...w_N)=∏^N_{n=1}p(w_n|w_1,...,w_{n-1})p(w1?,...wN?)=∏n=1N?p(wn?∣w1?,...,wn?1?),核心是學習 “給定歷史預測下一詞” 的條件分布。
- 評估指標:交叉熵(衡量編碼文本所需比特數)和困惑度(衡量模型對每個詞的驚訝程度,perplexity=2cross?entropyperplexity=2^{cross-entropy}perplexity=2cross?entropy)。
- 數據注意事項:需區分訓練集(過去)和測試集(未來),避免數據泄露;常用數據集包括 Penn Treebank、Billion Word Corpus,WikiText 更優。
-
基于計數的 n-gram 語言模型
- 馬爾可夫假設:用前k-1個詞近似歷史(k 階馬爾可夫模型),如 2-gram 模型假設p(w1,...,wn)≈p(w1)p(w2∣w1)p(w3∣w2)×...×p(wn∣wn?1)p(w_1,...,w_n)≈p(w_1)p(w_2|w_1)p(w_3|w_2)×...×p(w_n|w_{n-1})p(w1?,...,wn?)≈p(w1?)p(w2?∣w1?)p(w3?∣w2?)×...×p(wn?∣wn?1?)。
- 概率估計:最大似然估計通過計數計算,如 3-gram 概率p(w3∣w1,w2)=count(w1,w2,w3)/count(w1,w2)p(w_3|w_1,w_2)=count(w_1,w_2,w_3)/count(w_1,w_2)p(w3?∣w1?,w2?)=count(w1?,w2?,w3?)/count(w1?,w2?)
- 平滑與回退:解決稀疏性問題,如線性插值p(wn∣wn?2,wn?1)=λ3p(wn∣wn?2,wn?1)+λ2p(wn∣wn?1)+λ1p(wn)p(w_n|w_{n-2},w_{n-1})=λ_3p(w_n|w_{n-2},w_{n-1})+λ_2p(w_n|w_{n-1})+λ_1p(w_n)p(wn?∣wn?2?,wn?1?)=λ3?p(wn?∣wn?2?,wn?1?)+λ2?p(wn?∣wn?1?)+λ1?p(wn?),λ3+λ2+λ1=1λ_3+λ_2+λ_1 = 1λ3?+λ2?+λ1?=1Kneser-Ney 是常用高級方法。
- 優缺點:可擴展性強、訓練快,但無法捕捉長依賴和語義相似性(如 “cat” 與 “dog”)。
-
神經 n-gram 語言模型
- 模型結構:用前饋網絡處理固定 n-gram 歷史(如 trigram 的wn?2,wn?1w_{n-2},w_{n-1}wn?2?,wn?1?),通過嵌入層將獨熱向量轉為稠密向量,經隱藏層后用 softmax 輸出下一詞概率。
- 訓練:以交叉熵為損失,通過反向傳播優化參數,各時間步梯度獨立可并行計算。
- 優缺點:對未見過的 n-gram 泛化更好,但對已見過的 n-gram 性能略差;模型參數規模小于傳統 n-gram,但仍受限于固定 n-gram 長度,無法捕捉長距離依賴,且參數隨 n-gram 大小增加而增長。
-
循環神經網絡語言模型(RNN LM)
- 模型結構:拋棄固定 n-gram 歷史,通過隱藏狀態hn=g(V[xn;hn?1]+c)h_n=g(V[x_n;h_{n-1}]+c)hn?=g(V[xn?;hn?1?]+c)壓縮整個歷史,用y^n=Whn+b\hat{y}_n=Wh_n+by^?n?=Whn?+b和 softmax 輸出下一詞概率,實現對任意長度歷史的建模。
- 訓練:通過時間反向傳播(BPTT)計算梯度,需考慮各時間步梯度的依賴關系;截斷時間反向傳播(TBPTT)通過固定時間步截斷依賴,提高計算效率。
- 復雜度與批處理:BPTT 計算量與序列長度線性相關,TBPTT 為常數;批處理在 GPU 上可加速矩陣運算,但序列長度不一致時效率較低。
- 優缺點:能表示無限依賴,參數規模不隨依賴長度增長(但隨隱藏層容量增加);但難以學習長距離依賴,且隱藏層擴大會導致計算和內存成本二次增長。
-
偏差與方差權衡
- n-gram 模型:偏差高(固定歷史近似)但方差低(依賴高頻計數)。
- RNN 模型:大幅降低偏差(捕捉全歷史),但可能增加方差,需通過優化平衡。
-
長距離依賴與梯度問題
- 核心挑戰:簡單 RNN 理論上可表示長距離依賴,但實際中因循環權重VhV_hVh?的重復乘法導致梯度消失(特征值 <1)或爆炸(特征值> 1),無法有效學習長距離關聯。
- 非線性影響:激活函數(如 tanh、sigmoid)的導數進一步縮小梯度,加劇問題。
-
門控循環網絡(LSTM 與 GRU)
- LSTM:通過輸入門(ini_nin?)、遺忘門(fnf_nfn?)、輸出門(ono_non?)和細胞狀態cnc_ncn?控制信息流動,細胞狀態通過加法更新(減輕梯度衰減),隱藏狀態hnh_nhn?由輸出門調制,有效捕捉長依賴。
- GRU:簡化 LSTM 結構,合并輸入門和遺忘門為更新門(znz_nzn?),新增重置門(rnr_nrn?)控制歷史信息的使用,參數更少,計算效率更高。
- 優缺點:門控機制顯著緩解梯度問題,是神經機器翻譯、語音識別等任務的關鍵;但參數和計算量多于普通 RNN,每個參數的記憶容量較低。
-
深度循環神經網絡 Deep RNN LMs
- 擴展方式:通過增加網絡深度(空間維度)或時間維度深度提升表示能力,避免單純擴大隱藏層導致的二次成本增長。
- 典型結構:多層 RNN(空間深度)和循環高速公路網絡(時間深度,類似 GRU 的深度單元),在語言建模中表現優異。
-
大詞匯量處理
- 核心瓶頸:softmax 計算p^n=softmax(Whn+b)\hat{p}_n=softmax(Wh_n+b)p^?n?=softmax(Whn?+b)的成本隨詞匯量VVV線性增長,成為效率瓶頸。
- 解決方案:
- 短列表與混合模型:高頻詞用神經 LM,低頻詞用 n-gram,但損失泛化能力。
- 采樣與近似梯度:噪聲對比估計(NCE)將問題轉為二分類,重要性采樣(IS)用多分類,降低訓練成本但不影響測試。
- 詞匯分解:一級分類(如布朗聚類)加速V\sqrt{V}V?,樹結構分解(如二叉樹)加速logVlogVlogV,平衡計算效率與性能。
- 子詞建模:以字符或語素為單位,消除未登錄詞,捕捉形態特征,但序列更長且依賴距離更遠。
-
正則化
Dropout:僅應用于非循環連接,避免循環掩碼導致的信息丟失;
貝葉斯 Dropout 通過綁定循環掩碼并在評估時采樣,增強泛化。
-
總結與核心觀點
- 長距離依賴:門控網絡(LSTM/GRU)是解決梯度問題、捕捉長依賴的主流方案。
- 模型擴展:深度 RNN 在空間 / 時間維度擴展,以線性成本提升容量;大詞匯量通過分解或采樣優化 softmax 效率。
- 權衡關系:語言建模需平衡偏差與方差(n-gram vs RNN)、性能與效率(模型容量 vs 計算成本)、泛化與針對性(通用表示 vs 任務適配)。