[NLP论文阅读] Supervised Learning of Universal Sentence Representations from NLI data
这篇论文提出了一种基于监督学习的方法来生成通用句子表示,并从自然语言推理数据中进行训练和评估。该方法通过构建层次式的嵌入空间来捕捉句子的语义信息,并在多个基准测试集上取得了优异的性能表现。GitHub上提供了该模型的一个实现工具包(InferSent),由Facebook Research团队开发并维护
这个GitHub仓库名为 facebookresearch/InferSent,并提供了一个称为 InferSent 的开源工具包
引言
这篇文章感觉有类似之处是我上一篇博客中阅读的一篇论文,在思路层面上存在一定的相似性。具体来说,在实现目标的过程中都需要先掌握其他基础技能才能实现最终的目标。不过这一篇的核心创新在于构建了一个完整的武功体系框架,在这个基础上其他相关技能能够自然衔接和应用。相比之下之前的论文则更加注重从简单技能入手逐步提升的重要性
摘要
在NLP领域中普遍采用的方法是将word embedding用作base feature。传统的训练方法通常基于大量语料库采用无监督的方式进行。然而,在处理较长文本(如句子)时仍面临诸多挑战。本文探讨了如何通过特定数据集上的模型实现更高效的sentence representation,并展示了其相较于现有非监督方法的优势更为明显的效果。研究表明,在Standford Natural Language Inference dataset上经过NLI任务训练的模型能显著优于某些现有的non-supervised learning方法. 其主要原因在于, NLI作为一个高层次的理解任务,涉及对句子内部语义关系的深度推理
The Natural Language Inference task
由570,000个经过人工标注的英语句子对组成的SNLI数据集包含了大量的样本信息,并且每个样本都对应着特定的标签类别
由570,000个经过人工标注的英语句子对组成的SNLI数据集包含了大量的样本信息,并且每个样本都对应着特定的标签类别

可以看到标签是综合了5个专家的意见,根据少数服从多数的原则得到的。
训练方案

该作者在SNLI数据集上设计了 encoder 的两种训练方法:第一种方法中 encoder 对每个输入句子独立编码生成 representation ,各句子间无交互作用;第二种方法则采用 encoder 对多轮对话输入进行联合编码处理,并可借助 cross-features 或注意力机制辅助。研究者在此处采用了第一种训练策略。
在方案图中,经sentence encoder处理后的SNLI数据集中的premise与hypothesis分别对应于u与v两个向量表示。该研究采用三种方法来分析这两个向量之间的关系:
i. 合并:将u与v的向量连接形成新的元组(u, v);
ii. 逐元素乘积:对u与v各自维度上的数值进行相乘运算得到新的元胞数组;
iii. 绝对值逐元素减法:通过对u与v各自维度上的数值进行相减运算并取其绝对值得到最终结果
在后续处理中将得到的结果被引入到一个三类别的识别系统中去进行分析;该系统由多个fully connected layers以及一个softmax layer构成;通过这一过程可以确定输入premise和hypothesis所对应的类别概率分布
Sentence encoder architectures
目前有多种不同的神经网络能够将输入句子映射到固定长度的向量表示空间并且研究者尚未明确哪种编码方案最为优胜为此作者采用了七种具有代表性的架构结构如下

基于上述公式计算出每个时刻t对应的隐藏状态h_t之后, 通过执行max/mean池化操作来获得整个句子的表征. 其中,max/mean池化的作用是通过对每个时刻t所对应的维度值进行比较, max运算则选择该维度上的最大值, mean运算则是对该维度的所有数值求总和并取平均. 网络模型的具体架构如下所示:

self-attention网络

BiLSTM模型输出随后经过了一次线性转换与一次非线性激活函数σ(sigma)的应用,在此过程中实现了所需形态的确立;随后推导出各个隐藏状态对应的注意权重,并将各隐藏状态按其对应注意权重进行加权汇总后得出最终表征

7. hierarchical convolutional networks

利用多层次卷积神经网络能够对输入句子进行多层次抽象处理,在每个层次中作者能够通过max-pooling提取出一个特征向量u_i;随后将所有提取到的特征向量进行整合形成最终的整体特征向量u = [u_1, u_2, ..., u_n]
训练细节
数据集名称:Standford Natural Language Inference dataset
参数更新策略:采用SGD(Stochastic Gradient Descent)随机梯度下降算法
初始学习率设置为0.1
学习率衰减因子设定为0.99,在每个epoch结束后将当前学习率乘以该因子
批量处理大小定为64
训练终止条件定义为当当前学习率降至10^{-5}以下时停止训练
分类器模型采用多层感知机架构,在隐藏层中使用512个神经元进行建模
所有词汇嵌入采用300维Glove向量,并基于840亿字爬虫语料库进行预训练
对句子表示的评估
主要涉及了如下任务:包括二元和多元分类任务、语义蕴涵与语义相关性分析、基于STS14的语义文本相似性研究、语义重写检测以及图像描述检索系统开发
实验结果


结论
这篇文章针对这12个不同的研究场景和来自SNLI的数据集对从有标签数据集训练得到的句子向量进行了系统性研究。
研究表明,在自然语言推理(NLI)领域中这些模型表现更为出色,并且优于其他监督学习或非监督条件下获得的模型。
通过对比各种编码器的表现, 研究者们发现 BiLSTM with max pooling 是最有效的生成句子表示的方法, 并且超过了 SkipThought vectors.
20170915 上海。
