涉及13章和第4节课
问题引入
问题:我们想对一个句子做情感分类,判断这个语句表达了什么情绪。
最后一层是一个softxmax的多分类,在这之前我们就需要先对每个句子进行表示,下面是一些表示方法。
Bag of Words (BOW)
Continuous Bag of Words (CBOW)
Deep CBOW
上面这三种方法对句子的表示都是认为单词之间是独立的,没有考虑单词之间的组合关系。
我们可以知道句子中有hate,not,但是not hate组合起来就是完全另一种一种意思了,所有我们需要去学习这种单词之间组合的关系。
Bag of n-grams
上面的解决方案是:我们对2-gram和3-gram都分别进行embedding,这种简单的方法能够捕捉 not the best 和 don’t love 这些词组合,但是问题是:
导致词典巨大相似n-gram之间没有共享
因此为了解决找寻n-gram之间的关系,于是引入了 convolution ,下面来理解下卷积。
基本卷积操作+pooling
上面操作的用公式来描述就是:
其中?就是向量concat操作。
下面再来介绍 Narrow vs. Wide Convolutions
narrow对于n个单词,窗口大小是k的,会产生 n-k+1 个向量
wide对于n个单词,窗口大小是k的,两边补上k-1个单词,会产生n+k-1向量。
channels
在图像领域有channel的概念,在nlp中,我们可以这么理解,单词本身的词embedding是一个channel,单词的pos tag组成另一个channel,此时我们可以将这两个向量concat起来作为一个新的向量。
Pooling
在对句子使用卷积操作产生向量后,我们下一步需要对这些向量进行pooling操作得到一个向量,常见的pooling方法有:
Max-pooling
Average Pooling
K-max Pooling
Dynamic Pooling
我们针对一个句子,可能句子中不同位置的单词需要单独分组,然后进行pooling,然后在组成一个新向量。
对上面4种pooling方法的一个解释:
ALTERNATIVE: FEATURE HASHING
针对n-gram组合太多的问题,我们可以对n-gram使用hash,然后hash_value % VOCAB_SIZE 的方法得到embedding向量,具体的使用方法可以看 Bag of tricks for e?cient text classi?cation 。
Stacked Convolution
我们在一层卷积之后再接一层卷积,这样能捕捉更远词之间的深层次联系,示意图:
一层一层加卷积的目的是捕获更大窗口中单词的联系,为了能够更快的加大窗口,我们可以不断加大stride,一个方案如下:
具体的文章看:Kalchbrenner et al. 2016
标签: 向量
②文章观点仅代表原作者本人不代表本站立场,并不完全代表本站赞同其观点和对其真实性负责。
③文章版权归原作者所有,部分转载文章仅为传播更多信息、受益服务用户之目的,如信息标记有误,请联系站长修正。
④本站一律禁止以任何方式发布或转载任何违法违规的相关信息,如发现本站上有涉嫌侵权/违规及任何不妥的内容,请第一时间反馈。发送邮件到 88667178@qq.com,经核实立即修正或删除。