深度学习模型复现难?看看这篇句子对模型的复现论文
本期推荐的论文笔记来自 PaperWeekly 社区用户 @zhkun。本文是 COLING 2018 的 Best Reproduction Paper,文章对 sentence pair modeling 进行了比较全面的介绍,针对目前表现最好的几个模型进行了重现和对比,并且基本上实现了原文章中声明的效果,非常值得参考。
关于作者:张琨,中国科学技术大学博士生,研究方向为自然语言处理。
■ 论文 | Neural Network Models for Paraphrase Identification, Semantic Textual Similarity, Natural Language Inference, and Question Answering
■ 链接 | https://www.paperweekly.site/papers/2042
■ 作者 | Wuwei Lan / Wei Xu
论文介绍
这篇文章是 COLING 2018 的 Best Reproduction Paper,文章主要对现有的做句子对任务的最好的几个模型进行了重现,并且作者实现出来的效果和原文章声称的效果相差不多,这点还是很厉害的,而且作者对语义理解的集中任务也做了相关梳理,文章简单易读,还是很值得一看的。
任务
句子对建模是 NLP,NLU 中比较基础,并扮演着重要角色的任务,主要集中在语义理解,语义交互上,这也是我自己的一个研究方向,大致有这几类任务:
1. Semantic Textual Similarity (STS) :判断两个句子的语义相似程度(measureing the degree of equivalence in the underlying semantics of paired snippets of text);
2. Natural Language Inference (NLI) :也叫 Recognizing Textual Entailment (RTE),判断两个句子在语义上是否存在推断关系,相对任务一更复杂一些,不仅仅是考虑相似,而且也考虑了推理;
3. Paraphrase Identification (PI) :判断两个句子是否表达同样的意思(identifing whether two sentences express the same meaning);
4. Question Answering (QA) :主要是指选择出来最符合问题的答案,是在给定的答案中进行选择,而不是生成;
5. Machine Comprehension (MC) :判断一个句子和一个段落之间的关系,从大段落中找出存在答案的小段落,对比的两个内容更加复杂一些。
论文模型
有了任务,作者选取了集中目前情况下最好的模型,因为原文中每个模型可能只针对了某些任务进行了很多优化,那这些模型是否真的有效呢,作者考虑这些模型在所有的任务上进行比较,在介绍模型之前,作者首先介绍了句子对建模的一般框架:
一般框架
1. 输入层:适用预训练或者参与训练的词向量对输入中的每个词进行向量表示,比较有名的 Word2Vec,GloVe,也可以使用子序列的方法,例如 character-level embedding;
2. 情境编码层:将句子所处的情境信息编码表示,从而更好的理解目标句子的语义,常用的例如 CNN,HighWay Network 等,如果是句子语义表示的方法,一般到这里就结束了,接下来会根据具体的任务直接使用这一层得到语义表示;
3. 交互和注意力层:该层是可选的,句子语义表示有时候也会用到,但更多的是词匹配方法用到的,通过注意力机制建模两个句子在词层面的匹配对齐关系,从而在更细粒度上进行句子对建模,个人认为句子语义表示也会用到这些,只是句子语义表示最后会得到一个语义表示的向量,而词匹配的方法不一定得到句子语义的向量;
4. 输出分类层:根据不同的任务,使用 CNN,LSTM,MLP 等进行分类判断。
下图展示了一些句子语义表示的模型的基本框架:
有了这个一般的框架,接下来作者选取了集中目前最好的模型进行重现。
模型选择
1. InferSent [1]:BiLSTM+max-pooling;
2. SSE [2]:如图 1,和 InferSent 比较类似;
3. DecAtt [3]:词匹配模型的代表,利用注意力机制得到句子 1 中的每个词和句子 2 中的所有词的紧密程度,然后用句子 2 中的所有词的隐层状态,做加权和表示句子 1 中的每个词;
4. ESIM [4]:考虑了一些词本身的特征信息,和 DecAtt 比较类似;
5. PWIM [5]:在得到每个词的隐层状态之后,通过不同的相似度计算方法得到词对之间相似关系,最后利用 CNN 进行分类。
数据
为了更好的展示每个数据的情况,在这里直接用下图展示作者使用到的数据集:
结果
直接上结果,上图是原文章中的结果,下图是作者重现的结果:
从结果上看,作者实现的效果还是很厉害的,基本上跟原文章声明的不相上下,当然由于不是针对特定任务进行特别优化,所有效果还是有一点点差的,但基本上可以认为是实现了原来的效果,而且作者也发现了一些有意思的现象,例如:表现最好的就是 ESIM,个人感觉这里面加入了很多次本身的一些信息,例如近义词,反义词,上下位信息等,这些信息其实对句子语义理解十分重要。
以上就是这篇文章的整体介绍,作者完整实现了这些方法,并在不同的数据集上进行验证,工作量还是很大的,而且对句子对建模进行了比较完整的介绍,还是很有意思的。
引用
[1]. A. Conneau, D. Kiela, H. Schwenk, L. Barrault, A. Bordes, Supervised Learning of Universal Sentence Representations from Natural Language Inference Data
[2]. Shortcut-Stacked Sentence Encoders for Multi-Domain Inference, Yixin Nie and Mohit Bansal.
[3]. A Decomposable Attention Model for Natural Language Inference, AnkurP.Parikh, Oscar Täckstöm, Dipanjan Das, Jakob Uszkoreit
[4]. Enhanced LSTM for Natural Language Inference, Qian Chen, Xiaodan Zhu, Zhenhua Ling, Si Wei, Hui Jiang, Diana Inkpen
[5]. Hua He and Jimmy Lin. Pairwise Word Interaction Modeling with Deep Neural Networks for Semantic Similarity Measurement
关于PaperWeekly
PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。
加入社区:http://paperweek.ly
微信公众号:PaperWeekly
新浪微博:@PaperWeekly