目錄
- 研究背景
- 離散表示
- 分布式表示
- 神經網絡
NNLM (Neural Network Language model),神經網絡語言模型是03年提出來的,通過訓練得到中間產物–詞向量矩陣,這就是我們要得到的文本表示向量矩陣。
1、研究背景
維數災難(curse of dimensionality)是語言模型和其他一些學習問題的基礎問題。進一步的,當我們對連續變量進行建模時,通過根據目標函數的局部光滑特性進行學習,可以相對容易的對目標函數進行泛化;但在離散空間中,待學習的結構通常不明確,任何一個離散變量的改變都可能對待估函數的取值產生重大影響,而且,當每一個離散變量的取值范圍都很大時,大多數觀察對象之間的海明距離都變得很遠。這說明了維度約減的重要性。
n-gram模型的單詞序列長度,即n通常小於3(基於計算效率的考慮),並且沒有考慮單詞之間的語義信息。這是Neural Probabilistic Language Model的動機。
2、神經網絡模型
學習目標:得到模型f,使得
該模型可分為特征映射和計算條件概率分布兩部分:
- 特征映射:一個從詞匯表V(V 是所有單詞的集合,即詞典)到實數向量空間的映射C。通過這個映射得到每個單詞的向量表示。因此C實際上是一個|V|×m的矩陣(m是單詞向量的維數);
下面重點介紹神經網絡的結構,網絡輸出層采用的是softmax函數,如下式所示:
三、模型訓練
模型的訓練目標是最大化以下似然函數:
使用梯度下降算法更新參數的過程如下:
上述過程可以歸結為三步:
- 將單詞映射到m維的特征空間中;
- 使用單詞序列的對應向量集合作為輸入表達單詞序列的聯合概率方程;
- 同步學習單詞的特征向量和概率函數。
注意:在本文中作者仍然是以學習語言生成模型為主要目標的,但在word2vec中,作者以獲得理想的單詞向量為目標。
四、總結
由於NNLM模型使用了低維緊湊的詞向量對上文進行表示,這解決了詞袋模型帶來的數據稀疏、語義鴻溝等問題。顯然nnlm是一種更好的n元語言模型;另一方面在相似的上下文語境中,nnlm模型可以預測出相似的目標詞,而傳統模型無法做到這一點。其優勢可見下面一個例子(因為神經網絡是一個向量模型):
參考: