NNLM(Neural Network Language Model)
神經網絡語言模型對理解word2vec模型有很大的幫助, 包括對后期理解CNN,LSTM進行文本分析時有很大的幫助.
模型訓練數據
是一組詞序列w1…wT,wt∈V。其中 V 是所有單詞的集合(即訓練預料中的詞構成的詞典), 詞向量把n-gram的離散空間轉換為連續空間.
概率函數
$f(w_{t},w_{t-1},...,w_{t-n+2}, w_{t-n+1})=p(w_{t} | {w_{1}}^{t-1})$
在這個模型中,可分為特征映射和計算條件概率分布兩部分:
1. 一個 |V|×m映射矩陣C,每一行表示某個單詞的特征向量,是m維,共|V|列,即|V|個單詞都有對應的特征向量在C中
2.通過一個函數 g (g 是前饋或遞歸神經網絡)將輸入的詞向量序列(C(wt−n+1),...,C(wt−1)) 轉化為一個概率分布,即該函數$p(w_{t} | {w_{1}}^{t-1})$是來估計,其中i有|V|種取值。如果把該網絡的參數記作ω,那么整個模型的參數為 θ = (C,ω)。我們要做的就是在訓練集上使下面的目標似然函數最大化.
目標函數:
神經網絡語言模型的網絡結構圖:
網絡結構:
從下往上依次是:
輸入層:window窗口中上下文的每個詞one-hot向量
投影矩陣: 紫色虛線表示詞語通過投影矩陣Matrix C對詞進行映射
投影矩陣也是稠密詞向量, 詞典維數V,稠密詞向量表示維數D
1*|V|*|V|*m = 1*m
神經網絡輸入層: 為經過投影矩陣映射后的詞向量的拼接, 輸入向量大小為窗口上下文詞的數量乘以定義的詞向量的長度
神經網絡隱藏層: 加激活函數tanh等進行非線性映射
輸出層:softmax做歸一化,保證概率和為1.
$p(w_{t}|w_{t-1},...,w_{t-n+2}, w_{t-n+1}) = \frac{ e^{y_{w_{t}}} }{ \sum_{i}^{ }e^{y_{i}} }$