把自己对神经网络语言模型(NNML)的一些理解记录下来,有理解不正确的地方还请在评论区批评指正。
原文可在这里阅读下载
模型结构如下图所示:
模型包含:输入层,投影层,隐藏层,以及输出层。
输入层:将前N-1个词 ( w t − n + 1 , ⋯ , w t − 2 , w t − 1 ) (w_{t-n+1}, \cdots,w_{t-2}, w_{t-1}) (wt−n+1,⋯,wt−2,wt−1)用1-of- ∣ V ∣ |V| ∣V∣编码方式(好像是dummy coding,可以参考pandas中的get_dummies函数)编码, V V V是词典。假设将词 w t − n + 1 w_{t-n+1} wt−n+1编码之后的向量用 a t − n + 1 ∈ R 1 × ∣ V ∣ a_{t-n+1}\in R^{1\times |V|} at−n+1∈R1×∣V∣表示。
投影层:假设每个词用 m m m维表示。使用一个投影矩阵 C ∈ R ∣ V ∣ × m C\in R^{|V|\times m} C∈R∣V∣×m将输入 a t − n + 1 a_{t-n+1} at−n+