!@转载文章
自然语言处理在 2017 年有哪些值得期待的发展?
知乎·竹间智能 Emotibot·几秒前·打开原文
谢邀。 从符号主义和连接主义的对立走向合作,从静态分析走向交互,从语法和浅层语义走向深层语义,从功能主义走向认知和情感体验。
谢邀。
从符号主义和连接主义的对立走向合作,从静态分析走向交互,从语法和浅层语义走向深层语义,从功能主义走向认知和情感体验。
2016年是深度学习的大潮冲击NLP的一年,果实丰硕。从底层的pos tagging, word segmentation, NER,到高级的任务比如semantic analysis, machine translation, machine reading comprehension, QA system, natural language generation。。都是全面开花,Deep learning for NLP的架构越来越成熟。经典的Speech and Language Processing也出了第三版的draft(http://web.stanford.edu/~jurafsky/slp3/)。
那么在2017年,我们又有什么样的期待呢?
我想对于这个问题最有发言权的应该是Christopher Manning——他在Computational Linguistics and Deep Learning (http://www.mitpressjournals.org/doi/pdf/10.1162/COLI_a_00239) 中的一些论点到了2017年依然成立。
NLP无疑依然是机器学习有待攻克的下一个重大领域。但是由于语言本身已经是一种高层次的表达,深度学习在NLP中取得的成绩并不如在视觉领域那样突出。尤其是在NLP的底层任务中,基于深度学习的算法在正确率上的提升并没有非常巨大,但是速度却要慢许多,这对于很多对NLP来说堪称基础的任务来说,是不太能够被接受的,比如说分词。
在一些高级任务中,基于端到端学习的神经网络确实取得了令人瞩目的成就,尤其是机器翻译方面。由于复杂性太高,这样的高级任务在此前是非常难以攻克的,无论是基于常规的统计学习方法,还是基于规则的方法。深度神经网络强悍的“记忆”能力和复杂特征提取能力非常适合于这类问题。在完形填空类型的阅读理解(cloze-style machine reading comprehension)上,基于attention的模型也取得了非常巨大的突破(在SQuAD数据集上,2016年8月的Exact Match最好成绩只有60%,今年3月已经接近77%,半年时间提升了接近20个点,这是极其罕见的)。
但同时,深度学习的不可解释的特性和对于数据的需求,也使得它尚未在要求更高的任务上取得突破,比如对话系统(虽然对话在2016年随着Echo的成功已经被炒得火热)。
相比于机器翻译,对话系统并不是一个简单的“sequence-to-sequence”的问题(虽然很多paper尝试这样去做)。对话系统必须要能够准确地理解问题,并且基于自身的知识系统和对于对话目标的理解,去生成一个回复。这并不是简单地去寻找“word alignment”就可以做到的。当然更不必说对于上下文和情感的理解。而相比于完形填空类型的机器阅读理解,对话系统可能的回复是完全开放的,并不是仅限于“答案包含在文本中”这样的情形。而开放式的阅读理解,同样是一个AI-complete的难题。
这就要求我们对于交互的过程有更深刻的理解,对于人类在交流的过程中的认知过程和情感变化有更好的模型。而这个方向上,深度学习暂时还没有更好的办法。
在这个过程中,就像Chris Manning说的一样,我们需要更好的理解模型的组合( compositionally in models)。
很显然,从传统的语言学到我们现在的端到端的靠大量数据的训练结果,其间还有很大一块认知过程的坑没有被填上。有一个有意思的事情是,在大多数端到端的NLP应用中,在输入中包括一些语言学的特征(例如pos tag或dependency tree)并不会对结果有重大影响。我们的一些粗浅的猜测,是因为目前的NLP做的这些特征,其实对于语义的表示都还比较差,某种程度来说所含信息还不如word embedding来的多。对于极其复杂、需要非常深的语义理解的任务来说,这些语言学特征并没有太多作用。这并不一定是对的——在结合语言学的规则与深度学习方面,太多实验等着我们去做了。
所以,我们需要解决的不仅仅是Semantic Role Labelling,甚至Semantic Parsing或是Abstract Meaning Representation(http://amr.isi.edu/);我们需要知道的是从符号到人类体验的一种映射——不仅仅是“红色”可以被翻译为“Red”——我们想知道人类在看到红色时的感受,以及红色所代表的情绪。
我们想要复原的是文字完全无法记录下来的现场的气氛,情绪和心跳的感觉(embodied experience)。同样的文字,在不同的场景,应该有完全不同的表达力。
我们相信,仅仅依赖word2vec(或其它distributed representation)或是先进的memory-augmented networks,或是传统的NLP方法,都还无法解决这些问题。
在情感和体验的另一个极端,我们又希望语言能够展示它“如雕塑一样的美感”(罗素形容数学用语),可以精准地描述概念和逻辑。这要求我们在语言的模糊性上建立出来健壮的知识和推理体系——同样,现在的深度学习也还不能做到这一点。
只有结合了符号逻辑,神经网络以及认知科学,才有可能让我们在对语言的理解和处理上更上一层楼。(硬广Bayersian Cognitive Science/PPLhttps://www.zhihu.com/question/59442141/answer/166358150)
现在结合一些热门的领域(任务)来谈一谈具体的方向。
Dialogue
是的,自然语言对话将会开创一个新的人机交互时代。但是2016年流行的seq2seq对话框架不会给我们太大的惊喜。虽然理论上,如果能够给足训练数据,它是可以表现得很好的。
原因在于,对话不同于翻译,翻译的input和output肯定是一个domain的东西,这大大限制了可能的解的空间。更重要的是,对话中有大量的省略和指代,我们必须通过大量的上下文信息才能够理解对话。这样的后果就是训练对话系统对于训练数据有指数级别上升的要求。
就算我们已经记录了这个世界上所有人类的对话,明天依然会有人在不同的场景下说出的话,根本没有在训练集中出现。
所以,2017年的对话系统,一定是在限定的场景下发挥作用的。
即便是限定场景下的对话,也存在以下的几个难点需要攻克。后面例举的文章只是抛砖引玉。
1. 怎样评估对话的质量?必须要和标准答案回答得一模一样才算好吗?(Towards an automatic Turing test: Learning to evaluate dialogue responseshttps://openreview.net/pdf?id=HJ5PIaseg)
2. 怎么利用对话中人类的反馈来帮助学习?(Dialogue Learning With Human-in-the-Loop:https://arxiv.org/pdf/1611.09823.pdf)
3. 怎样keep track of dialogue state?怎么定义目标?怎么记住多个对话片段?(Frames: A Corpus for Adding Memory to Goal-Oriented Dialogue Systems:https://arxiv.org/abs/1704.00057)
4. 如何去做对话的policy?(Towards Information-Seeking Agents:https://arxiv.org/abs/1612.02605)
5. 如何结合记忆以及情感?(Emotional Chatting Machine: Emotional Conversation Generation with Internal and External Memory:https://arxiv.org/abs/1704.01074)
6. 上下文如何建模?(Improving Frame Semantic Parsing with Hierarchical Dialogue Encoders:https://arxiv.org/abs/1705.03455)
7. 对话回复的生成如何变得可控?(Data Distillation for Controlling Specificity in Dialogue Generationhttps://arxiv.org/pdf/1702.06703.pdf)
阅读理解(Open-domain QA)
去年到今年初MRC取得的进展大家已经有目共睹了,最高表现的架构基本趋同。估计再刷下去就要达到super-human performance了(人类的 baseline是82 EM, 91 F1)。比较有意思的是大家基本上都放弃了multi-hop reasoning的结构,原因非常简单:Stanford的SQuAD跟FB的bAbI不一样,没有专门设立这种需要推理的项目(诸如John went to the hall; John putdown the ball; Where is the ball?这类问题),大部分的问题主要依赖Attention机制就可以抓得很好了。bAbI这样的伪推理看来大家也是受够了。
但是SQuAD本身也存在很多问题,抛开细的面不说,cloze-style本来就有很大的问题。而且最近出现了海量的刷SQuAD的文章,品质老实说并不敢恭维。幸好Stanford的Chen Danqi大神的Reading Wikipedia to Answer Open-Domain Questions (http://cs.stanford.edu/people/danqi/papers/acl2017.pdf)打开了很多的方向。通过海量阅读(“machine reading at scale”),这篇文章试图回答所有在wikipedia上出现的factoid问题。其中有大量的工程细节,在此不表,仅致敬意。
Unsupervised Learning
在分布式语义表示这个“传统”深度学习领域(2013年算是很“传统”了吧),主要的工作还是向下,向上和向周边扩展(不小心说了句废话)。
向下是指sub-word level。(Enriching Word Vectors with Subword Information:https://arxiv.org/abs/1607.04606)
向上当然就是句子/篇章级别了。(A Simple but Tough-to-Beat Baseline for Sentence Embeddings:https://openreview.net/pdf?id=SyK00v5xx)
向周边呢?就是面向任务,譬如知识库里的entity-embedding,或者面向sentiment analysis的情感-embedding。。好吧,我承认这类的文章真的已经看得太多了,并没有太大新意(no offense:我知道无论如何“boring”的文章,背后都是大家不眠不休的心血)。
NLG
通过RNN-language model来做语言生成已经很成熟了,这都已经出survey paper了——Survey of the State of the Art in Natural Language Generation: Core tasks, applications and evaluation:https://arxiv.org/pdf/1703.09902.pdf
但是通过GAN/VAE来生成呢?
当然,做这个方向的人也很多,比如MSRA的Adversarial Neural Machine Translation(https://arxiv.org/abs/1704.06933)和Li Jiwei的Adversarial Learning for Neural Dialogue Generation:https://arxiv.org/pdf/1701.06547.pdf
不过认真地说,我同意Ian Goodfellow在Reddit里说的:“GANs have not been applied to NLP because GANs are only defined for real-valued data.” (https://www.reddit.com/r/MachineLearning/comments/40ldq6/generative_adversarial_networks_for_text/)
当然,做一些twist当然是可以强行让它work的,或者用VAE——但是目前看来,这些生成模型在自然语言方面并没有在图像方面的显著疗效。更重要的是,目前NLG的重要课题不是生成的质量,而是要搞清楚想说什么——类比一下,就如同就算人脑的Broca区域没有问题,可是Wernicke区域出现了问题,那么病人会说一口流利的语言,可是每一句话都毫无意义——这样的生成当然也是毫无意义的了。
所以这个领域,其实还是任重道远啊。目前的很多“自然语言生成”或“写稿机器人”,还是carefully-crafted的模版来的多。
总结
通过2016年的努力,deep learning在NLP领域已经站稳了脚跟。我们期待2017年语言学和机器学习的进一步结合,让机器更加聪明,更懂你。
欢迎大家补充、讨论:)
本回答来自竹间智能Emotibot机器学习科学家马永宁。