NNLM(Neural Network Language Model)模型

论文链接

定义

  • 词汇表VVw1wTw_{1} \cdots w_{T}表述词汇表中的单词
  • 目标函数,f(wt,,wtn+1)=P^(wtw1n1)f\left(w_{t}, \cdots, w_{t-n+1}\right)=\hat{P}\left(w_{t} | w_{1}^{n-1}\right),即对于文本中某个位置的单词,希望当出现其前n-1个单词为wtn+1,wtn+2,..wt1w_{t-n+1},w_{t-n+2},..w_{t-1}时,希望该位置出现的是单词wtw_t的概率最大
  • matrix C,该矩阵为单词向量矩阵

模型结构

NNLM(Neural Network Language Model)模型
预测函数为
y=b+Wx+Utanh(d+Hx)(1)y=b+W x+U \tanh (d+H x) \qquad (1)
结合上图,softmax的输入主要包含两个部分,一个是输入单词向量的线性变换,在公式中体现为WxWx, 另一部分为**函数部分,该部分首先将单词向量进行拼接,然后乘上权重HH并加上偏置项dd,将结果经过tanh函数后在乘上权重矩阵UU,所以在该模型找中需要学习的参数主要有θ=(b,d,W,U,H,C)\theta=(b, d, W, U, H, C),其中C是最后学需要的词向量矩阵。

softmax的输出,跟对应label算交叉熵,并加上参数θ\theta的正则项成为最终的损失函数。

NNLM的思考

为什么加上了类似于deep & wide模型中的wide部分?
参数太多?
通过拼接的方法具有了一定的顺序性?
限制条件的作用?

f(wt,wt1,,wtn+2,wtn+1)>0i=1Vf(i,wt1,,wtn+2,wtn+1)=1 \begin{array}{l} \cdot f\left(w_{t}, w_{t-1}, \ldots, w_{t-n+2}, w_{t-n+1}\right)>0 \\ \cdot \sum_{i=1}^{|V|} f\left(i, w_{t-1}, \ldots, w_{t-n+2}, w_{t-n+1}\right)=1 \end{array}