美文网首页
NLP(四)神经网络词向量表示技术

NLP(四)神经网络词向量表示技术

作者: shijiatongxue | 来源:发表于2019-03-15 12:27 被阅读0次

    本文的全部内容来自参考文献。来斯惟学长的博士论文对我有很大启发,读起来也特别舒服。这里是对感兴趣部分的摘录,如有需要请阅读原文,引用原文。


    • NNLM
    • LBL
    • RNNLM
    • C&W
    • CBOW和skip-gram

    1 NNLM(Bengio,2001)

    该模型在学习语言模型的同时,也得到了词向量。NNLM对n元语言模型进行建模,估算P(w_i|w_1,w_2,...,w_{i-1})的值。但与传统方法不同的是,NNLM不通过计数的方法对n元条件概率进行估计,而是直接通过一个神经网络结构,对其进行建模求解。

    神经网络语言模型(NNLM)结构图.png 输入层:独热、上文concat
    隐藏层:tanh激活函数 输出层:|V|个节点。 将y转换对应的概率值:

    由于Bengio等人的工作只考虑对语言模型的建模,词向量知识其副产品,因此他们并没有指出哪一套向量作为词向量效果更好。

    参数更新:

    其中θ为模型中的所有参数,包括词向量和网络结构中的权重U、H、b。

    改进:独热换成分布式的实数词向量。

    2 log双线性语言模型(LBL,Mnih和Hinton,2007)

    与之前的NNLM相比,没有非线性的激活函数。
    后来也有一些改进工作,主要在提高最后一层的归一化效率上:

    • 层级softmax(O(log_2|V|))
    • NCE+skip-gram(O(1))。

    3 RNNLM

    RNNLM直接对P(w_i|w_1,w_2,...,w_{i-1})进行建模,而不使用公式对其进行简化。因此,RNNLM可以利用所有的上下文信息,预测下一个词。

    循环神经网络语言模型(RNNLM)模型结构图.png
    RNNLM的核心在于其隐藏层的算法:
    其中,h(i)表示文中第i个词w_i所对应的隐藏层,该隐藏层由当前此的词向量e(w_i)以及上一个词对应的隐藏层h(i-1)结合得到。

    4 C&W模型 (Collobert和Weston,2008)

    与前面的三个基于语言模型的词向量生成方法不同,C&W模型是第一个直接以生成词向量为目标的模型。

    C&W模型结构图.png 语言模型的目标是求解

    这个式子是模型需要最小化的损失函数,希望正样本打出的分数至少比负样本大1,否则就会有损失。
    C&W模型与NNLM相比,主要的不同点在于C&W将目标词放到了输入层,同时输出层也从语言模型的|V|个节点变为了一个节点,这个节点的数值表示对这组n元组短语的打分。打分只有高低之分,没有概率特性,因此无需复杂的归一化操作。C&W模型使用这种方式把NNLM模型在最后一层的|V|×|h|次运算降为|h|次运算,极大地降低了模型的时间复杂度。

    5 CBOW模型和Skip-gram模型(Mikolov等,2013)

    他们设计两个模型的目的是希望用更高效的方法获取词向量。因此,他们根据前人在NNLM、RNNLM和C&W模型的经验,简化现有模型,保留核心部分,得到了这两个模型。

    5.1 CBOW模型

    该模型一方面根据C&W模型的经验,使用一段文本中的中间词作为目标词;另一方面,又以NNLM作为蓝本,并在其基础上做了两个简化。

    • 没有隐藏层,去掉隐藏层之后,模型从神经网络直接转化为log线性结构,与logistic回归一致。log线性结构比三层神经网络少了一个矩阵运算,大幅度地提升了模型的训练速度。
    • 去除了上下文各词的词序信息,使用上下文各词向量的平均值,代替NNLM使用的上文各词词向量的拼接。 CBOW模型的输入

    然后直接进行预测:

    CBOW的目标词预测
    结果是对训练的每一个当前词,最大化上式的对数值。可是这里面的参数是什么?如何梯度下降? CBOW模型

    5.2 skip-gram模型

    与CBOW模型稍有不同,skip-gram模型通过当前词预测上下文。(下图为了和上文保持一致,还是用的上下文预测当前词) skip-gram模型目标函数 求归一化的概率

    改进:

    • 负采样

    负采样技术与NCE技术的区别?

    负采样技术仅仅是优化正负样本的似然,而不对输出层做概率归一化。NCE技术则是通过噪声样本对概率进行估计。

    负采样技术与C&W模型中相应部分的区别?

    主要是,负采样技术用了多个负样本。

    • 二次采样技术

    在大规模语料中,高频词通常就是停用词。如果词w在预料中出现的频率f(w)大于阈值t,则有P(w)的概率在训练时跳过这个词。注意P(w)是跳过这个词的概率。


    两张有用的图(本文所有的图均来自参考文献):


    神经网络词向量模型复杂程度对比图 神经网络词向量模型复杂程度对比图

    这里有点问题,CBOW使用的是上下文,不是n-gram。如下图。


    Mikolov论文

    参考文献:
    基于神经网络的词和文档语义向量表示方法研究

    相关文章

      网友评论

          本文标题:NLP(四)神经网络词向量表示技术

          本文链接:https://www.haomeiwen.com/subject/lzpfmqtx.html