CS224d lecture 10札记

欢迎转载,转载注明出处:

http://blog.csdn.net/neighborhoodguo/article/details/47282709

Go Go Go

第十讲也顺利结束啦,不愧是Advanced Recursive NN讲得内容确实有些Advanced,不过如果认真听课再认真看课后的paper的话,我相信还是可以完全理解的。

开始总结喽。。。

首先,老师在课上开篇讲了RNN的一个综述吧,也是使用RNN进行NLP的三个大的要素:1.Train objective主要有两种,一种是cross-entropy或者max-margin  2.Composition Function,这一讲主要讲了这个内容  3.Tree structure这个在上一讲有详细讲,chain structure或者balance tree

这一讲讲了四个models,上图:

第二条Matrix-Vector RNNs在Relation Classification方面的应用在paper中没有见到,仅在课上一带而过。所以说这一讲也就主要讲了各个模型在Paraphrase detection及Sentiment Analysis方面的应用。

好吧从上往下撸(- -)

1.Standard RNNs

RNNs for Paraphrase Detection主要包含两个方面。第一方面是Recursive Autoencoder,第二方面是Neural Network for Variable-Sized Input

这个模型在第二篇paper里讲得很详细

1.Recursive Autoencoder

首先我们已经有了一个parse tree,有一个可信的parse tree对于paraphrase detection很重要。

Recursive Autoencoder有两种Autoencoder的方法。

第一种是左边的这种,每次decoder只decoder出一层,然后求所有non-terminal nodes的error的和作为loss function。non-terminal nodes的error是其两个children的vectors先连接出来,然后再求欧式距离得到的。

上面两式中,其中下面的式子中的T集合是所有non-terminal nodes,上面的式子中的c1, c2分别是p的两个children

由于non-terminal nodes的值可以通过无限shrinking the norms of the hidden layers来实现,所以必须对non-terminal nodes的值p进行normalization

第二种是上面图片里右边的那种reconstruct the entire spanned subtree underneath each nodes

就是把所有的leaf nodes全部decode出来,然后把所有leaf nodes连接起来,求欧式距离作为loss function

2.Neural Network for Variable-sized Input

上面的model tune好了,然后进行下一个阶段。

以上是tune好的tree

首先先建立一个similarity matrix,其中column和row分别按照单词的从左到右的顺序以及上面的hidden nodes从下到上从右到左的顺序排列

第二步是pooling,其中pooling layer的是一个square matrix先对#col及#row取一个fixed值,设为n_p。论文里是使用的非over-lapping的方法,就是不重叠行或者列。

如果#col > n_p, #row > n_p,每#col/n_p及#row/n_p作为一个pool最后会剩下一个比较小的pool行或者列都小于n_p。

如果#col < n_p,#row < n_p,先duplicating pixels小于n_p的那一边,然后直到那一边的pixels大于n_p为止。

在每个pool里取其最小值,然后在pool之后normalize每个entry使其mean = 0及variance = 1

paper里提到了一个对于数字的改进方法:第一如果两个句子里的数字完全一样或没有数字,设为1,反之设为0;第二如果两个句子里包含一样的数字,设为1;第三一个句子里的数字严格的是另一个句子里数字的子集,设为1

这种方法有两个缺点:第一是仅仅比较单词或者phrase的相似性遗失了语法结构;第二是计算similarity matrix也遗漏了部分信息。

最后把得到的similarity matrix输入到一个NN里或者softmax classifier里再建立loss function就能进行优化计算了。

2.Matrix-Vector RNNs

Matrix-Vector RNNs这个模型比较简单就是在表示一个word的时候不仅仅只用vector的形式表示,用matrix加vector结合起来的方式表示一个word

以上就是Matrix-Vector的表示方法,和stardard的差异比较小。

课上说这个模型对Relationship Classification的效果比较好。

Relationship Classification简单的说就像以前中学从一句话里提取出关键词。

3.RNTN

Bag-of-words的方式进行sentiment detection比较不靠谱,因为bag-of-words不能capture一个句子的parse tree还有linguistic features

使用好的corpus也会提高精确度,很诱人哦!

其实整体模型改动也不太大,也很好理解,这样就能很好的捕捉到句子的sentiment

这个模型的优化和之前的略有不同:

这个模型据说是现今唯一能够capture negation及其scope的模型。

4.Tree LSTMs

Tree LSTMs和普通的LSTMs的不同之处在于Tree LSTMs是从tree的结构中进行LSTMs的建模。

普通的LSTMs也可以看作是Tree LSTMs的一种特殊情况。

Tree LSTMs里leaf node的hidden计算和之前的普通的hidden计算方法一样,只是其parents的计算略有不同。具体公式见上图。

parent的hidden是其children的hiddens的和,每一个forget unit是根据具体的某个node来计算的,计算最终cell时要把所有forget units和对应的cells相乘并求和,其他都是和普通LSTMs一样的计算方法了。

这个模型对于semantic similarity目前还是最适用的。如图:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2025-01-14 10:18:16

CS224d lecture 10札记的相关文章

CS224d lecture 12札记

欢迎转载,转载注明出处: http://www.cnblogs.com/NeighborhoodGuo/p/4711678.html CS224d的第十一课是他们的课上考试,所以后面的视频就直接跳到lecture 12了.lecture 12是一位外宾过来讲得,据说是Facebook的工程师,讲了现在最前沿的AI research,AI很多东西在全世界范围内都没有解决方案或者说对某一问题有统一的意见,所以这堂课不是介绍一个成熟的model,可以理解这一讲是为大家打开一扇门,让大家了解AI中的这部

CS224d lecture 6札记

哈哈哈,终于又到了每课的写笔记时间.这次课程的内容比较少,可能是为了给Problem set 1空余时间吧. 废话不多说.写喽 这次的video讲的东西主要就是把推荐的论文稍微详细的讲解了一部分,然后外加给RNN模型开了个头. 1.Multi-task learning / weight sharing 这个第一部分其实在NLP(almost) from scratch里也有讲解它的理念就是,在DL model里面底下几层里学到的feature是相同或者近似的,那么这样的话,只需要统一给DL m

CS224d lecture 8札记

欢迎转载,转载注明原文地址: http://www.cnblogs.com/NeighborhoodGuo/p/4692979.html 又开始新一课的札记啦!最近Project Proposal也快到了,时间还是比较紧的.不过课程已经过半了还是挺开心的.stanford开放这么有技术含量的课程,还是很钦佩stanford的开放精神. 这一课是对Recurrent NN for MT做了一个简要的介绍.个人认为这种方法比较靠谱耶,想想我们人类对于母语的学习,对于母语的理解,从来都不是先分析语法,

CS224d lecture 9札记

欢迎转载,转载注明出处: http://www.cnblogs.com/NeighborhoodGuo/p/4694955.html 最近几课的内容不是很难,还有我的理解能力有所提高(自恋一下),所以这几课完成的都挺快.不知不觉lec9也完成了.这一讲讲了另一个RNN,其中R是Recursive不是之前的Recurrent.课上老师使用Recursive NN来做NLP和CV的任务,我个人认为做CV还是不错的,这个NLP怎么感觉有点不靠谱.不管怎么说这个model还是解决了很多实际问题的,而且性

CS224d lecture 15札记

欢迎转载,转载注明出处: http://blog.csdn.net/neighborhoodguo/article/details/47449257 这一讲还是嘉宾的讲课,讲得是关于parallel计算方面的.俗话说的好:"三个臭皮匠,顶个诸葛亮嘛".哈哈 因为一台计算机,或者一个处理器的处理能力是有限的,进行并行计算能够大大提高运算速度,节省调试的时间.而我们的NN是如此的复杂,有时候规模也特别大,所以使用并行计算是很有必要的. 这一讲呢,主要分为五个部分:1.Efficient f

CS224d lecture 13札记

欢迎转载,转载注明出处: http://blog.csdn.net/neighborhoodguo/article/details/47387229 不知不觉到了第三部分了,整个课程也快结束了,虽然不是第一次整个推完公开课,但是还是有些兴奋呢! 废话不多说,开始总结啦! 这节课就介绍了一个模型,就是在Computer Vision里十分popular的CNN(Convolutional Neural Networks).不过这里介绍它在NLP的应用,可见model其实是可以有不同的应用的哦,没准

CS224d lecture 16札记

欢迎转载,转载注明出处: http://blog.csdn.net/neighborhoodguo/article/details/47617297 终于把最后一讲也看完了,stanford的NLP课程也接近了尾声,真的是非常的开心,这门课真的让我收获了很多. 这一课讲得就是DL在NLP方面的应用,其实大部分内容在之前的课上和之前的推荐阅读里都有提及,这一课也算是一门复习课吧. 同样的先overview一下:1.Model overview 2.Character RNNs on text an

CS224d lecture 14札记

欢迎转载,转载注明出处: http://www.cnblogs.com/NeighborhoodGuo/p/4720985.html 这一课也是请得嘉宾讲得课,据说是standford的一位博士.讲得主题是Neural Networks in Speech Recognition 不过Speech Recognition可谓是博大精深啊,这一堂课就像讲师在课前的Overview里说的一样,只是做一个perspective 让大家对这个方面有一个简要的了解,具体如何操作,这个就没有详细讲了...课

深度学习与自然语言处理(2)_斯坦福cs224d Lecture 2

原文作者:Rohit Mundra, Richard Socher 原文翻译:@熊杰([email protected]) && @王昱森 内容调整与校对:寒小阳 && 龙心尘 特别鸣谢:@面包包包包包同学的帮助 时间:2016年6月 出处:http://blog.csdn.net/han_xiaoyang/article/details/51648483 http://blog.csdn.net/longxinchen_ml/article/details/5164853