专栏|自然语言处理在2017年有哪些值得期待的发展?
竹间智能专栏
作者:自然语言与深度学习小组
作为初创企业,竹间智能一直努力让 AI 更好的理解人类的语言,甚至是语言背后的意图与情感,从而使 AI 能参与到金融、服务等高价值场景。深度学习的发展让自然语言处理向前迈出了重要一步,使这一切成为可能。在此也和大家分享一些竹间智能在自然语言处理上取得的一些经验。在机器之心 GMIS 2017 大会上,竹间智能创始人、CEO 简仁贤将分享更多有关自然语言处理、人机交互的精彩内容。
演讲时间:5 月 28 日,13:50—14:10
演讲主题:机器人会改变我们连接世界的方式吗?
从符号主义和连接主义的对立走向合作,从静态分析走向交互,从语法和浅层语义走向深层语义,从功能主义走向认知和情感体验。
2016 年是深度学习的大潮冲击 NLP 的一年,果实丰硕。从底层的 pos tagging, word segmentation, NER,到高级的任务比如 semantic analysis, machine translation, machine reading comprehension, QA system, natural language generation。都是全面开花,Deep learning for NLP 的架构越来越成熟。那么在 2017 年,我们又有什么样的期待呢?
我想对于这个问题最有发言权的应该是 Christopher Manning——他在 Computational Linguistics and Deep Learning 中的一些论点到了 2017 年依然成立。(参阅:深度学习在NLP领域成绩斐然,计算语言学家该不该惊慌?)
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;我们需要知道的是从符号到人类体验的一种映射——不仅仅是「红色」可以被翻译为「Red」——我们想知道人类在看到红色时的感受,以及红色所代表的情绪。
我们想要复原的是文字完全无法记录下来的现场的气氛,情绪和心跳的感觉(embodied experience)。同样的文字,在不同的场景,应该有完全不同的表达力。
我们相信,仅仅依赖 word2vec(或其它 distributed representation)或是先进的 memory-augmented networks,或是传统的 NLP 方法,都还无法解决这些问题。
在情感和体验的另一个极端,我们又希望语言能够展示它「如雕塑一样的美感」(罗素形容数学用语),可以精准地描述概念和逻辑。这要求我们在语言的模糊性上建立出来健壮的知识和推理体系——同样,现在的深度学习也还不能做到这一点。
只有结合了符号逻辑,神经网络以及认知科学,才有可能让我们在对语言的理解和处理上更上一层楼。
现在结合一些热门的领域(任务)来谈一谈具体的方向。
关于 Dialogue
是的,自然语言对话将会开创一个新的人机交互时代。但是 2016 年流行的 seq2seq 对话框架不会给我们太大的惊喜。虽然理论上,如果能够给足训练数据,它是可以表现得很好的。
原因在于,对话不同于翻译,翻译的 input 和 output 肯定是一个 domain 的东西,这大大限制了可能的解的空间。更重要的是,对话中有大量的省略和指代,我们必须通过大量的上下文信息才能够理解对话。这样的后果就是训练对话系统对于训练数据有指数级别上升的要求。
就算我们已经记录了这个世界上所有人类的对话,明天依然会有人在不同的场景下说出的话,根本没有在训练集中出现。
所以,2017 年的对话系统,一定是在限定的场景下发挥作用的。
即便是限定场景下的对话,也存在以下的几个难点需要攻克。
关于阅读理解(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 打开了很多的方向。通过海量阅读(「machine reading at scale」),这篇文章试图回答所有在 wikipedia 上出现的 factoid 问题。其中有大量的工程细节,在此不表,仅致敬意。
关于 Unsupervised Learning
在分布式语义表示这个「传统」深度学习领域(2013 年算是很「传统」了吧),主要的工作还是向下,向上和向周边扩展(不小心说了句废话)。
向下是指 sub-word level。
向上当然就是句子/篇章级别了。
向周边呢?就是面向任务,譬如知识库里的 entity-embedding,或者面向 sentiment analysis 的情感-embedding。
关于 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 和 Li Jiwei 的 Adversarial Learning for Neural Dialogue Generation。
不过认真地说,我们同意 Ian Goodfellow 在 Reddit 里说的:「GANs have not been applied to NLP because GANs are only defined for real-valued data.」
当然,做一些 twist 当然是可以强行让它 work 的,或者用 VAE——但是目前看来,这些生成模型在自然语言方面并没有在图像方面的显著疗效。更重要的是,目前 NLG 的重要课题不是生成的质量,而是要搞清楚想说什么——类比一下,就如同就算人脑的 Broca 区域没有问题,可是 Wernicke 区域出现了问题,那么病人会说一口流利的语言,可是每一句话都毫无意义——这样的生成当然也是毫无意义的了。
所以这个领域,其实还是任重道远啊。目前的很多「自然语言生成」或「写稿机器人」,还是 carefully-crafted 的模版来的多。
总结
通过 2016 年的努力,deep learning 在 NLP 领域已经站稳了脚跟,包括竹间智能在等的海内外团队都做了不少探索。我们期待 2017 年语言学和机器学习的进一步结合,让机器更加聪明,更懂你。