cs224n 笔记14 树RNN和短语句法分析

前言

cs224n 第十四讲,这篇博客记录了这节课最重要的一部分内容,也就是结合句法树和词向量生成句子表示的方法。

语言模型光谱

我们常用的语言模型是词袋模型,这种模型有其一定的缺陷。如图所示,词袋模型不能包含所有的单词,总会有一些词在词袋之外。另外,也尝试使用更复杂的结构,比如短语结构树,这种结构能够提取大量的细节信息。
在这里插入图片描述

语言的语义解释–并不只是词向量

这里讲的就是人类对语言的理解,或者说对语言的语义解释不是词向量能够完全表达出来的。比如下面两个句子中加粗的部分,人类在读句子过程中对“snowboarder”和“person on a snowboard”理解是一致的。这是因为人类及时从没见过“snowboarder”这个词,也会明白该单词代表的含义。所以,这种能力词向量无法表达出来,那么该怎么去“获取”这种能力呢?相信了解nlp领域知识的也能够想到,这里所说的这种能力也就是如何生成能够表达句子含义的句向量,并不只是词向量。
在这里插入图片描述

递归思想

在介绍句向量之前,先说一下递归思想。其实就是将“小部件”合成“大部件”,并且“大部件”会有其意义的能力。比如在图像中就可以用下图形象表示。
在这里插入图片描述
这种思想也就是递归的思想,那么语言的递归性是什么样的呢?

语言的递归性

[The man from [the company that you spoke with about [the project] yesterday]]
比如上面这个句子,可以看出来这里面一个名词短语套着一个名词短语,所以语言也是有其递归性的,利用句法树可以表示这种句子。

递归的优点

1.消除歧义,这个在以前的课上也讲过。
在这里插入图片描述
2.便于指代相消等任务
在这里插入图片描述
3.便于利用语法树结构(基于短语的机器翻译)

句子向量表示

为什么需要句子向量呢?前面说过,就是词向量无法完全满足我们的需要了,比如说前面提到的snowboarder的例子。那么如何将短语或者句子映射到向量空间呢?这里就会用到词向量和刚才谈到的句法树。如下图所示,我们的目的就是结合词向量和句法树来生成句子向量。这也是这节课最重要的一个内容,下面用一个例子讲解。
在这里插入图片描述

实例介绍

我们的目标是得到类似于下图所示的词向量和句法树综合利用的句子向量表示,那么最终得到的句子向量[5,4]是如何计算得到的呢?
在这里插入图片描述
首先,对于两个单元,合并之后会产生两个结果,分值和新的向量,具体计算方法如下图所示
在这里插入图片描述
然后,计算任意两个单词合并的得分(下图是计算的相邻单词),贪心的选择得分最大的一对进行合并,这里也就是首先选择了第一对。
在这里插入图片描述
在这里插入图片描述
然后,不断的重复这一过程
在这里插入图片描述
最后,直到只剩下根节点,达到我们的目的。
在这里插入图片描述

进一步改进

1.合并时不再根据总分挑选,而是要求每个预测分值离错误类别尽量远
J = ∑ i s ( x i , y i ) − m a x y ∈ A ( x i ) ( s ( x i , y ) + Δ ( y , y i ) ) J=\sum_is(x_i,y_i)-max_{y\in{A(x_i)}}(s(x_i,y)+\Delta(y,y_i)) J=is(xi,yi)maxyA(xi)(s(xi,y)+Δ(y,yi))
2.将贪心搜索策略替换为柱搜索
3.对于句法结构中的NP、VP、PP不同的关系,应该使用不同的权重矩阵 W N P W^{NP} WNP W V P W^{VP} WVP W P P W^{PP} WPP
在这里插入图片描述
3.对W矩阵的处理,因为在公式中, W [ c 1 , c 2 ] W[c_1,c_2] W[c1,c2],这里的W只是相当于拼接而成的, c 1 和 c 2 c_1和c_2 c1c2之间并没有产生交互,课程中讲到的方法是对每个单词节点同时赋予向量和矩阵,在合成运算过程中混合两者的矩阵和向量。如下图所示,这样得到的短语P就充分混合了两个单词。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值