sentence representation的文章已经分享了几篇,包括了supervise和unsupervise的方法,但并没有对各种model进行系统地对比和分析,今天分享的这篇文章对现有各种各样的distributed representations of sentences model进行了分类、对比和分析,为了增强对比效果,还提出了两种虚拟的模型。最后将所有的模型在supervised和unsupervised评价任务中进行对比,得出了一些有意义的结论。本文的题目是:Learning Distributed Representations of Sentences from Unlabelled Data,作者是来自剑桥大学的Felix Hill博士。
首先对现有模型进行了分类描述。
1、直接在纯文本上进行训练的模型,模型包括:Skip-Thought Vector、Paragraph Vector,两种模型都在之前分享过。
2、在结构化资源上进行训练的模型,这种模型借助了一些纯文本之外的资源进行辅助练。模型包括:DictRep、CaptionRep、NMT。
DictRep是本文作者之前提出的一个模型,模型训练了一个从词典定义到预训练好的词向量之间的映射。
CaptionRep模型架构与DictRep一样,采用的数据集不同而已,这里使用了COCO数据集,训练一个从图像vector representation到图像caption的映射。
NMT是神经网络机器翻译,该模型架构与skip-thought vector模型相同,但训练数据换成了sentence-aligned翻译文本,WMT语料中的En-Fr和En-De。
3、本文提出的一些新模型。为了解决当前存在模型的问题,本文设计了两种虚拟模型。包括:Sequential (Denoising) Autoencoders(SDAE、SAE)和FastSent。
SDAE模型是为了解决Skip-Thought Vector模型对语料中句子连贯性的依赖问题。传统的去噪自编码器(DAE)一般都是一个输入是固定尺寸图像数据的前馈神经网络,本文利用一个噪声函数将传统的DAE扩展到变长度句子中,噪声函数是N(S|p0,px),S表示一个句子,p0,px都是一个[0,1]的数,表示概率。首先,对于每一个S中的word,N函数会以一个p0的概率来删除word,概率是相互对立的。然后,对于S中的每一对不重叠的bigram,w(i)w(i+1),N函数会以一个px的概率来交换两个词的位置。最后用一个类似NMT的encoder-decoder模型进行训练,只不过不同的是目标函数变了,变成了使得噪声最小。这里,source是经过噪声函数处理过的sentence,target是原始的sentence。这个模型就是SDAE模型,相比于skip-thought vector,可以处理任意顺序的句子集。如果令px=0,p0=0,我们称为SAE模型。这里p0其实就是防止深度网络模型训练时过拟合的正则化方法Dropout。
FastSent模型旨在解决Skip-Thought Vector模型计算速度慢的缺点,解决的思路与word2vec突破传统多层神经网络语言模型的思路类似,只用了一个简单的log-linear层。给定一个用词袋模型表示的句子,模型来预测该句子两边相邻的句子。该模型在训练时也会学习句中每个单词的词向量,并且将句子用句中所有词的词向量之和来表示。
下图给出了所有模型在性能上的比较:
![640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=]()
其中,OS是指是否需要保留句子在语料中的顺序;R表示需要结构化的训练资源;WO:对词序敏感;SD:句子向量维度;WD:词向量维度;TR:训练时间;TE:编码50w句子需要的时间。
任务评价一共分为两类,监督学习任务和无监督学习任务。通过大量实验的比较,得出了一下的结论:
最后,展示一个各模型训练之后的应用效果。
![640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=]()
来源:paperweekly
原文链接