Quick-Thought模型学习笔记


文章目录

    • 一、前言
    • 二、Skip-Thought模型
    • 三、Quick-Thought模型
    • 四、实验
    • 五、总结
    • 参考资料

一、前言 ??英文论文名称:《An efficient framework for learning sentence representations》
??该文主要提出了一种新的方法来实现sentence2vec,实际上则是对skip thoughts的一种改进。从效果上来看,它训练得到的句向量在测试方面表现得也比较优异。而且他的另一个特点则是训练快,这是它非常具有吸引力的一个地方。
??上一篇我们已经学习了Skip-Thought Vector模型,接下来我们学习Quick Thoughts(论文中简称QT),可以理解为升级版本的Skip-thought,方法简单很多,但是效果优于其他算法。
二、Skip-Thought模型 ??Skip-Thought借鉴了word2vec算法的skip-gram的思想,Skip-gram模型是利用中心词来预测context中的词汇。而,Skip-thought利用中心句预测context中的句子。 如下图:
Quick-Thought模型学习笔记
文章图片

??文中作者利用了一个encoder来压缩中心句子的信息,然后用两个decoder来产生context里的句子,一个decoder用于预测前一句,另外一个decoder用于预测后一句。对于这种sequence modeling, 一般的最佳选择是LSTM或者GRU,论文中encoder和decoder都是GRU。相应的,负的损失函数是:
Quick-Thought模型学习笔记
文章图片

三、Quick-Thought模型 ??看上去,Skip-thought和Skip-gram挺象。唯一的不同是Skip-thought的decoder那部分,它是作为language modeling来处理的。而Skip-gram则是利用一个classifier预测周围的词(通过hierarchical softmax 或者negative sampling)。QT针对这个问题,对decoder部分做了大的调整,它直接把decoder拿掉,取而代之的是一个classifier,使得预测行为变成了分类行为。模型结构如下:
Quick-Thought模型学习笔记
文章图片

模型的目标函数:
??对于一个给定的句子s,一个s c a n d ∈ S c a n d s_{cand}\in S_{cand} scand?∈Scand? 是s的上下文的概率为:
Quick-Thought模型学习笔记
文章图片

??我们的训练目标则是最大化如下概率(D为训练集,就是让有效上下文的概率最大化):
Quick-Thought模型学习笔记
文章图片

上面公式中的符号说明:
1、f,g是带参数(需要训练)的函数,它们的作用是将句子变为定长的向量。(常用的包括RNN、LSTM等)
【Quick-Thought模型学习笔记】2、s表示一个句子
3、 S c t x t S_{ctxt} Sctxt? 表示出现s的上下文集合
4、 S c a n d S_{cand} Scand? 是S c t x t S_{ctxt} Sctxt? 的子集,其中包含一个有效的上下文句子和许多无效的非上下文句子。
??其中函数c c c 表示两个向量的内积(或许还有其他定义函数c的方法)。f 和g通常用RNN。最后句子 s 的向量用f(s)和 g(s) 的拼接来表示。
四、实验 1、和unsupervised representation learning方法的比较:
Quick-Thought模型学习笔记
文章图片

??在大多数情况下,uni/bi/combine-QT的表现好于其他模型,并且训练时间大大缩短。这里uni-QT和bi-QT分别指使用了单向和双向RNN作为encoder的模型。combine-QT在test time使用了uni-QT和bi-QT学习得到的句子表征(由于它同时使用了两种表征,我们可以看到在dim一栏值是其它值的两倍)。在这里uni/bi/combine-QT都没有使用pre-trained word vectors。
??注意MC-QT模型在各个任务上最优。MC-QT就是MultiChannel-QT,作者模仿了Yoon Kim 在Convolutional neural networks for sentence classification(2014)中的做法,分别用一个pretrained word embedding(Glove)和一个tunable word embedding(trained from scratch)来作为输入。
2、和supervised representation learning方法的比较:
Quick-Thought模型学习笔记
文章图片

3、和Skip-thought进行Nearest neighbors提取的比较:
感受以下两种方法从Wikipedia里1M个句子中寻找最近邻的表现。
Quick-Thought模型学习笔记
文章图片

五、总结 ??QT是一种新的state-of-art的算法。它不光效果好,而且训练时间要远小于其他算法。在算法方法上和效果上,都可称为是句子表征界的Word2Vec一般的存在。
参考资料
  • 论文:《An efficient framework for learning sentence representations》
  • 博客: https://blog.csdn.net/triplemeng/article/details/81561320

    推荐阅读