翻译一篇总结ACL2017趋势的文章

  1. 看到一篇总结ACL趋势的文章,感觉得了解一下最新nlp的动态,于是决定翻译大概意思,留作备用。基于自己才疏学浅,有些只是自己的粗浅理解,希望有识之士能指出其中理解的误区。
简介
“NLP爆炸了”,这是ACL2017主席Joakim Nivre 说的一番话。无论是参会人数还是论文投稿次数毫无意外的创造了新高,可见现在的NLP有多火。
关于该项目
在我的两篇介绍ACL2017趋势的文章中,我将描述目前NLP的四个研究趋势,其中的内容均是基于我自己的研究兴趣,主要包含深度学习、sequence-to-sequence模型和相关的话题。第一部分我先介绍两个趋势:语言结构和词表达。
趋势一:语言结构正在回归
最近的deep NLP复兴一直在强调一个简单的事实:语言仅仅是词的序列。基于此,很多额外的结构开始不再那么重要,训练一个简单的端对端RNN模型或者一个随机梯度下降模型解决所有事情,这个思想开始蔓延,但弊端也开始变得越来越明显了。在本届ACL上,很多研究者开始反对“语言仅仅是词的序列”,并且从理论和实践上提出了依据。
原因一:缩小了搜索空间
Mirella Lapata对RNN的sequence-to-sequence模型包打天下提出了质疑,她否认语言是死的,所有的语言特征都是毫无意义的。她认为语言结构开始回归,语言结构缩小了可能输出结果的搜索空间,让生成的结果更好。
比如,代码自动生成是将一段语言表达变成Python代码,例如“generate a list of the first 10 square numbers”对应的是“ [x**2 for x in range(10)] ”,这个任务用标准的 sequence-to-sequence方法是将代码看做是简单的tokens序列,而不是其隐含的树结构,其结果很可能是生成一个具有错误格式的结果(比如,解码器可能会生成具有错误格式的括号)。 Yin and Neubig and Rabinovich et al.的论文中,使用具有结构的预测方法使得他们的结果直接含有抽象规则树。这种方法使得输出结果符合正常规则。
语言结果的应用不仅能让代码自动生成或者语义分析方法结果更好,而且可以减少某些应用的搜索空间,比如完型阅读理解问题。Xie and Xing认为语言正确的输出结果应该具有一定的语法结构,使用语法结构相比于搜索所有可能的结果会更简单更有效率。
原因二:结合基础句法功能
Noah Smith反对使用线性变换和常用的类似神经网络的方法解决所有的NLP问题,他觉得应该鼓励大家使用类似偏执归纳的思想,他强调多任务学习的思想,众所周知,将基础的句法功能与大型任务结合起来可以让结果更好,原因可能在于大型任务可以更加充分得使用低频词包含的有用信息。ACL中的Eriguchi et al. and Wu et al.设计了一种新型的混合解码器来解决神经机器翻译问题,设计中包含了shift-reduce算法。
这种结合神经机器翻译和句法分析系统,相对于sequence-to-sequence方法,将会产生更好的效果,原因得益于原因之一(减少了搜索空间)。
原因三:(这一段没太看懂)
趋势二:重新考虑使用词向量
本届ACL标题中带有“词向量”的文章今年有四篇,去年是10篇,可能有一部分转移到了面向sub-word-level表达。然而,词向量仍然是一种标准的技术,今年相关的论文也非常有意思,有可能的原因是词向量已经越过了“假设”阶段到了“深入思考”阶段。这些论文指出了词向量是如何成功或失败地解决了问题,如何提高自己算法。
更好地理解词向量
词向量最大 的成功在于其额外的结构可以计算词的相似度。Skip-Gram - Zipf + Uniform = Vector Additivity 的作者认为用sg模型训练的分布式词向量在某种前提下有额外的结构-最值得注意的是这些词都是均匀分布的。虽然训练语料不是均匀分布的,但是这些结果在某种程度上是可以解释词向量的额外性。(待编辑。。。)

猜你喜欢

转载自blog.csdn.net/f12105212/article/details/77881005