1. 程式人生 > >自然語言處理(四)神經網路語言模型及詞向量

自然語言處理(四)神經網路語言模型及詞向量

神經網路語言模型

用句子 S S 的概率 p ( S ) p(S)

來定量刻畫句子。
統計語言模型是利用概率統計方法來學習引數 p ( w i w 1
w i 1 ) p(w_i|w_1\dots w_{i-1})
,神經網路語言模型則通過神經網路學習引數.

統計語言模型的缺點

  • 平滑技術錯綜複雜且需要回退至低階,使得該模型無法面向更大的n元文法獲取更多的詞資訊.
  • 基於最大似然估計的語言模型缺少對上下文的泛化,如觀察到藍汽車和紅汽車不會影響出現黑汽車的概率.

神經網路語言模型

根據所用的神經網路不同,可以分為

  • NNLM模型(DNN)
  • RNNLM模型(RNN)

NNLM

NNLM結構.jpg

輸入 X : w i 1 X:w_{i-1}

輸出 p ( w i w i 1 ) p(w_i|w_{i-1})

引數 θ = H , U , b 1 , b 2 \theta = {H,U,b^1,b^2}

運算關係

p ( w i w i 1 ) = exp ( y ( w i ) ) k = 1 V exp ( y ( v k ) ) y ( w i ) = b 2 + U ( tanh ( X H + b 1 ) ) p(w_i|w_{i-1}) = \frac{\exp(y(w_i))}{\sum_{k=1}^{|V|}\exp(y(v_k))}\\ y(w_i) = b^2 + U(\tanh(XH+b^1))
目標函式
採用log損失 L ( Y , P ( Y X ) ) = log P ( Y X ) L(Y,P(Y|X)) = - \log P(Y|X)

引數訓練
隨機梯度下降優化訓練目標,每次迭代,隨機從語料D選取一段文字 w i ( n 1 ) w i w_{i-(n-1)}\dots w_i 作為訓練樣本進行一次梯度迭代.
θ θ α log P ( w i w i ( n 1 ) w i 1 ) θ \theta\leftarrow \theta - \alpha\frac{\partial \log P(w_i|w_{i-(n-1)\dots w_{i-1}})}{\partial \theta}
其中, α \alpha 為學習率, θ = { H , U , b 1 , b 2 } \theta = \{H,U,b^1,b^2\}

RNNLM

輸入 X : w i 1 X:w_{i-1} h ( t 1 ) h(t-1)

輸出 p ( w i w i 1 ) p(w_i|w_{i-1}) h ( t ) h(t)

引數 θ = H , U , M , b 1 , b 2 \theta = {H,U,M,b^1,b^2}

運算關係

p ( w i w i 1 ) = exp ( y ( w i ) ) k = 1 V exp ( y ( v k ) ) y ( w i ) = b 2 + U ( tanh ( X H + M h ( t 1 ) + b 1 ) ) h ( t ) = tanh ( X H + M h ( t 1 ) + b 1 ) p(w_i|w_{i-1}) = \frac{\exp(y(w_i))}{\sum_{k=1}^{|V|}\exp(y(v_k))}\\ y(w_i) = b^2 + U(\tanh(XH+Mh(t-1)+b^1))\\ h(t) = \tanh(XH + Mh(t-1) +b^1)
目標函式
採用log損失 L ( Y , P