(二)背景知識 -- 4 神經概率語言模型

2020-08-08 21:59:39

4. 神經概率語言模型

對應上一小節 概率模型函數化,神經概率語言模型即用「神經網路」構建「函數FF」。

4.1 詞向量

對詞典DD中任意詞ww,指定一個固定長度的實值向量 v(w)Rmv(w)\in \Bbb R^m。則,v(w)v(w)稱爲ww的詞向量,mm爲詞向量的長度。

詞向量存在兩種表示方法:

(1) One-hot Representation
用維度爲字典長度的向量表示一個詞,僅一個分量爲1,其餘爲0。
缺點:容易導致維度災難,且無法很好地刻畫詞與詞之間的關係。

(2) Distributed Representation
每個詞對映爲固定長度的短向量,通過刻畫兩個向量之間的距離來刻畫兩個向量之間的相似度。


4.2 網路結構

其中,

  • 訓練樣本 (Context(w),w)(Context(w), w)
    ww是語料C中的每一個詞,Context(w)Context(w)取爲其前面n1n-1個詞。
  • 投影層向量 XwX_w
    將該訓練樣本(Context(w),w)(Context(w), w)的前n1n-1個詞的詞向量首尾相接,拼接在一起構成XwX_w
    XwX_w的長度爲(n1)m(n-1)·mmm爲詞向量長度。
  • 隱藏層向量 ZwZ_w
    Zw=tanh(WXw)+pZ_w=tanh(WX_w)+p
  • 輸出層向量 ywy_w
    維度爲N=DN=|D|,即,詞典DD中詞的個數。
    yw=UZw+qy_w=UZ_w+q

注:在對ywy_w做Softmax歸一化後,ywy_w的分量表示當前詞是ww的概率。

p(wContext(w))=eyw,iwi=1Neyw,i(1)p(w|Context(w))= \frac{e^{y_{w,i_w}}}{\sum_{i=1}^Ne^{y_{w,i}}} \tag{1}

對於該神經網路,其參數包括:「詞向量v(w)v(w)」以及「神經網路參數W,p,U,qW,p,U,q」。一旦確定了這些參數,就相當於確定了「函數FF」的參數,也就相當於知道了參數p(wContext(w))p(w|Context(w)),繼而能求得整個句子的概率。


4.3 優缺點

相比於N-gram模型,神經概率語言模型具有以下優點:
(1) 詞與詞之間的相似度可以通過詞向量來體現。
(2) 基於詞向量的模型自帶「平滑化」功能,無需額外處理。因爲公式(1)(1) 不可能爲0。

神經概率語言模型的主要缺點是計算量太大,各參數量級分別爲:
(1) 投影層節點數=上下文詞數量*詞向量維度。上下文數量通常不超過55,詞向量維度在10210^2量級。
(2) 隱層節點數在10210^2量級,
(3) 輸出層節點數爲詞典大小,在10510^5量級。

因此,對於神經概率語言模型,其主要的計算集中在「隱層和輸出層之間的矩陣運算」和「輸出層上的Softmax歸一化運算」。
考慮到語言模型對語料庫中的每一個詞ww都要進行訓練,而語料庫通常有10610^6以上的詞數,無法承擔該計算量。因此,需要做進一步的優化。



參考

部落格:Word2Vec-知其然知其所以然