搜索

深度学习与自然语言处理(8)_斯坦福cs224dRNNMV-RNN与TN

gecimao 发表于 2019-07-01 13:20 | 查看: | 回复:

  说明:本文为斯坦福大学CS224d课程的中文版内容笔记,已得到斯坦福大学课程@Richard Socher教授的授权翻译与发表

  这篇课堂笔记将介绍不同类型的RNN(递归神经网络),并介绍它在NLP领域的应用和优势。

  在这篇课笔记中,我们会一起学习一种新的模型,这种模型绝对是以前介绍的那种递归神经网络的加强版!递归神经网络(RNNs)十分适用于有层次的、本身就有递归结构的数据集。来,咱们一起看看一个句子,是不是就很符合上面的要求呢?比如这个句子,“三三两两的人静静地走进古老的教堂。”首先,咱们可以把这个句子分成名词短语部分和动词短语部分,“三三两两的人”和“静静地走进古老的教堂。”然后呢,在动词短语里面还包含名词短语部分和动词短语部分对不对?“静静地走进”和“古老的教堂”。也就是说,它是有明显的递归结构的。

  另外一个更为有价值的问题是,在语义分析的过程中,从语法角度的理解时候会有所帮助,或者说是必不可少的?好吧,尽管有各种反对的理由,目前我们还是按照如下流程来进行的语义分析:首先,我们需要先理解各个词;其次,我们需要知道各个词是如何组织在一起;最后,我们可以通过前两步的分析结果来理解一个短语或句子的实际意义。

  现在让我们一起来学习下基于以上原则所设计出来的一个模型。假如我们有一个句子和与这个句子相关的解析树,就比如上面那个图,我们如何将这个句子编码,并且通过词向量来得出句子的情绪分值?其实,仅仅一个简单的递归神经网络模型就可以得到我们想要的结果。(练习题3就是一个相关题目)

  下面我们来学习下图中的模型。我们首先来看下这个句子的解析树和词向量,由下而上的来逐步分析这棵树。结点3(node 3)是图中最底层的结点,所以我们将L29和L430连接组合成一个2d维的向量,并将这个向量输入到网络中按如下公式计算:

  由于W(1)Rd×2d,b(1)Rd,同时h(1)Rd,我们可以将h(1)看做是在相同向量空间中,关于2元语法短语“this assignment”的一个点。在这里,我们没有必要去探究如何表示这个点,只要关注如果从构成的词向量中导出就可以。

  我们把h(1)输入softmax层计算得到其关于各情感分类的得分,这里所谓的情感分类就是一组离散分类,用来表示一些特定的含义。举个列子,比如说在正负情感分析中,我们可以把情感分成5类,0表示强烈的负能量,1表示负能量,2表示中性,3表示正能量,4表示强烈的正能量。

  现在,我们用同样的方式,用”I” 和 “love”作为输入来计算表示”I love”这条词组的h(1)。类似的,我们用h(1)作为输入,得到其关于情感分类的得分。 最后,最有意思的地方来了,我们需要找到一个方式来合并两个短语”I love” 和 “this assignment”。 这里我们并不是把这些单词的词向量连起来,而是合并这两条词组作为输入。换句话说,就是把表示这两条词组的h(1)向量合并起来计算:

  现在我们在词向量空间中,得到了表示”I love this assignment”这个词组的向量。接着,我们可以把这个向量h(1)输入给softmax层来计算整句话的情感分类得分。当然,这个模型只有在训练之后才能给出合理的结果,这部分留作PSet3练习。

  这里有个问题,我们无论是把单词连接成词组,还是把词组连接起来到更深层,与之相乘的都是同一个权重矩阵W,于此同时我们还希望得到的向量h(1)尽可能的表达更多的内容,这样是不是太天真了。这个问题确实是存在的, 我们在接下来的例子中会做更细致的讲解。

  就像上一节最后所提到的问题,用同样一个权重矩阵W去合并动词跟名词和去合并介词短语及另外一个词向量似乎直观上讲不通。这样的草率处理可能会影响到模型的表现。

  为了弥补这个缺点,我们可以通过针对这些不同的任务”语义解绑”权重矩阵W。 也就是说,我们不必去考虑是否针对这类输入最佳的W在其他类的输入上的表现是否会怎么样。我们弱化限制,使得W并不需要处处相同。这样做一方面使得我们有更多的矩阵要去学习,但另一方面在模型的表现也会有显著的提升。

  如下图所示, 注意到我们现在的模型根据输入的句法类别分别进行处理, 这里我们通过一个简单的概率上下文无关文法 (Probabilistic Context Free Grammar, PCFG) 来确定输入的句法类别. 其中 PCFG 大致通过对 Penn Tree Bank 进行汇总统计来学习这些分类规则, 如“The”通常是一个冠词 (DT) , 等等. 关于 PCFG 的内容无需进行更深入的理解, 你只需知道它确实很简单即可.

  当前模型与之前模型相比, 最主要的不同是, 我们初始化权重矩阵 W 为单位矩阵. 通过这样做, W会将两个输入的词向量进行均值计算, 但经过一段长时间的训练, 模型将会学习到哪个向量对于句子表达更加重要, 同时它可以通过对向量进行旋转或缩放来提高这种表现. 我们观察到下图中训练好的权重矩阵 W 确实学习到了单词的重要性. 举个例子, 对于冠词-名词短语 (DT-NP) 规则, 或者限定词接名词短语, 如 “The cat” 以及 “A man”, 我们的模型会将注意力放到名词短语而非限定词上. (因为图中对角线中红色代表更高的权重, 所以这是显而易见的). 这就是所谓的”软头词” (soft head word) 概念, 语言学家通过长时间的观察总结出来这些概念. 然而我们的模型通过观察数据自己就学习到了这点. 这太棒了.

  通过这部分讨论我们看到, SU-RNN 确实比前一小节讨论的模型要更加强大, 但是SU-RNN的表达力似乎还有提升的空间. 一旦我们考虑到修饰词, 例如副词 “very”, 任何针对此单词及下一单词词向量进行插值的行为, 确实都很难说明 “very” 的本质含义.

  作为一个副词, “very” 的字面意思是 “用于强调”, 我们怎么才能仅仅通过线性插值的方法, 来使得一个向量可以强调其后的其他向量? 我们怎么才能构建一个向量来 “缩放” 其他的向量? 事实是我们无法做到这一点. 我们需要采用另外一种形式的词与词之间的乘法操作才能做到. 这里我们有两种新的组合形式可以做到这一点, 其中一种利用了词矩阵 (word matrices) 的概念而另外一种利用了典型仿射上的二次形方程.

  现在我们讨论一下加强词的表示形式, 除了词向量外, 还往其中加入一个词矩阵(word matrices)! 现在单词 “very” 将拥有一个词向量vveryRd及一个词矩阵VveryRd×d, 通过这么做, 新的模型将不仅仅拥有表达嵌入词含义的能力, 它还拥有学习一个单词是如何 “修饰” 其他单词的能力, 新加入的词矩阵使我们拥有了这种新的能力. 将两个单词 a 和 b 喂到一个 RNN 网络中, 我们将得到他们的词矩阵 A 与 B, 接下来我们将向量 Ab 与 Ba 进行连接作为新的输入向量 x. 对于之前 “very” 的例子,VveryRd×d可以是一个单位矩阵与一个任意大于1的常量 s 的乘积, 因此可以将相邻的词向量缩放 s 的比例. 这正是我们之前期望的那种新的模型表现力. 虽然这种新的词的表达形式将会使得模型的特征空间增加额外的一个维度, 但是我们将从这种新的词的修饰能力中获益良多。下图是一个 MV-RNN 的例子。

  通过观测模型的误差,我们看到即使MV-RNN仍不能表达一定的关系。我们注意到了有三类错误。

  首先,否定正向的。当我们说一些正向的东西时,其中有一个词变成负向的,这个模型不能衡量一个词强大到足以翻转整个句子的情绪。图7给出了这样一个例子,交换的“most”“least”应该倒装句子的整个情绪,但MV-RNN不能实现这一点。

  第二类错误是否定负向的例子。在我们说什么是不坏,或不沉闷,如图8所示,MV-RNN不能领略到“not”可以减轻负向的情绪。

  我们观察到的最后一类错误是“X 但是 Y 的结合”,如图9所示。这里的X可能是负向的,但如果Y是正向的,那么该模型的情感输出的句子应该是正向的!MV-RNNs无法做到这一点。

  图9:使用递归神经网络可以准确分辨”X 但是Y”的这种结合,但MV-RNN做不到

  因此,我们必须寻找一个更具表现力的合成算法,将能够充分捕捉这些类型的高层次的组成。

  最后介绍的这种RNN,对上述的3类错误处理的很好。RNTN(递归神经张量网络)用一个词矩阵的概念,而且没有采用传统的仿射变换 pre-tanh/sigmoid的概率。为了构成两个词向量或短语向量,我们以向量R2d的形式连接起来,不去把它通过仿射函数处理变为一个非线性,我们首先把它通过一个二次型处理,然后变为非线)=tanh(xTVx+Wx)(3)

  xTV[i]x?i[1,2,...d]切成张量输出向量Rd。接着加上Wx,然后进行一个非线性函数的变换。这个二次型表明,我们确实可以允许的乘法类型的词向量之间的相互作用,而不需要保持和学习词矩阵!

  实验结果表明,RNTN是唯一的能在这些非常难的数据集上表现很好的模型。

本文链接:http://windsorflowers.net/diguixiangliang/310.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部