论文原文:Supervised Learning of Universal Sentence Representations from Natural Language Inference Data
Github:facebookresearch/InferSent
引言
这篇文章感觉上我上一篇博客中阅读的论文在想法上有相似的地方,想法都是你要达到目标,你必须先会点别的。不同的是,之前那篇是你要会点简单的才能去干点难的,而这篇是你要掌握了一门绝世神功,其他的武功就触类旁通了。
摘要
很多NLP系统都将word embedding作为base feature,word embedding通常是以无监督方式在大型语料库中训练得到的。但是,对于更长的文本(例如句子)的编码仍然存在很多困难。在这篇文章中,作者展示了在Standford Natural Language Inference dataset上训练得到通用sentence representation可以取得比一些非监督方法(例如SkipThought)学习得到的sentence representation在很多任务上更好的效果。作者认为,经过NLI task 训练过的模型之所以能表现出优越的性能,是因为NLI is a high-level understanding task that involves reasoning about the semantic relationships within sentences.(大概意思就是这么难的NLI你都能会,其他的不是小菜一碟吗?)
The Natural Language Inference task
SNLI dataset是由570,000人工标注的英语句子对组成,每个句子对都有对应的标签。标签一共有三种,分别是entailment,contradiction和neutral。下面是官网提供的几个例子:
可以看到标签是综合了5个专家的意见,根据少数服从多数的原则得到的。
训练方案
作者给出了在SNLI上训练encoder的两种方法:
i. encoder对输入句子单独编码得到representation,句子之间没有交互;
ii. encoder对输入句子对联合编码(可以用到cross-features或者注意力机制)。
在文中,作者采取了第一种做法。
在方案图中,SNLI数据集中的premise和hypothesis经过sentence encoder后对应的向量表示分别为u和v,然后作者用3中方法来抽取u和v的关系:
i. concatenation: 将u和v的表示首尾相连得到(u, v)
ii. element-wise product: 将u和v对应维度上的值相乘得到新的表示u*v
iii. absolute element-wise difference: 将u和v对应维度上的值相减得到新的表示 |u−v