综述
提出了一种新的基于神经网络的语言模型,通过对局部上下文和全局上下文进行联合训练。该模型学习到的embedding能同时捕捉到单词语义信息和语法信息,并且能够实现对一词多义的区分。
目标函数
本文的目标是学习有效的单词表示,而不是根据给定的单词来预测下一个单词的概率。给定序列s和文档d,本文的目标是从其它随机选择的单词中找到位于s末尾的正确单词。替换单词后的序列为 s w s^w sw。
C s , d = ∑ w ∈ V max ( 0 , 1 − g ( s , d ) + g ( s w , d ) ) C_{s, d}=\sum_{w \in V} \max \left(0,1-g(s, d)+g\left(s^{w}, d\right)\right) Cs,d=w∈V∑max(0,1−g(s,d)+g(sw,d))
其中 g ( s , d ) g\left(s, d\right) g(s,d)为得分函数, s s s与 s w s^w sw之间的差值被限制在 ( 0 , 1 ) (0,1) (0,1)范围内。
神经网络架构
本文同时从局部上下文和全局上下文的角度来考虑上下文信息。局部和全局上下文计算得到的分数 s o c r e l socre_{l} socrel和 s c o r e g score_{g} scoreg相加得到总的分数 g ( s , d ) g\left(s, d\right) g(s,d)。
局部上下文
对于序列s,将s中的单词的embedding拼接成一个向量 X = { x 1 , x 1 , . . . , x m } X=\{x_{1}, x_{1}, ..., x_{m}\} X={ x1,x1,...,xm},经过一个两层的全连接神经网络:
a 1 ( l ) = f ( W 1 ( l ) [ x 1