基于深度学习的自然语言处理在 2016 年有哪些值得期待的发展?

技术上LSTM和RNN和其他机器学习方法在人机对话,QA系统方面会有什么进展?
关注者
2408
被浏览
58571

13 个回答

水平有限,勉强回答下这个问题。这两天准备个讲稿,刚好思考了一下深度学习在自然语言处理中需要关注的问题。趁着热情未退,就顺便记录下。抛个砖,欢迎有兴趣者一起讨论。


毕竟2016年已将近过半,本文更多的是对未来的思考。

先说下目前深度学习在自然语言处理中的主要研究点(抛开具体任务):

1)对字、词、句子、篇章等多粒度自然语言单位的分布式表示,也就是Embedding(嵌入),主要从两个角度:一是得到更好的语言学解释;二是后续任务的性能。具体研究就是通过各种CNN、RNN以及变体对语言进行建立各种的语义组合模型,后面接一个分类器或相似度计算就可以直接用到各种任务上。

2)序列到序列模型,配合注意力模型和外部记忆单元(神经图灵机、记忆网络等),可以有效地解决长距离依赖问题,强大到无所不能,几乎涵盖了大部分自然语言处理任务(机器翻译、自动问答、序列标注、文本摘要等)。

经过最近两年的快速发展,深度学习给自然语言处理也带来了很多新变化。

1)有了embedding,也就是基于低维稠密向量的语义表示,语义变得可以计算了,这点非常重要。可以说深度学习方法在自然语言处理中取得成功的最重要原因。通过大规模未标注文本,可以自动学习出字、词、句子的语义表示,并且是稠密向量,可以无缝介入后续分类模型。研究者终于可以摆脱知识库、词法、句法等门槛或障碍,这些东西用过就知道多痛苦。

2)不断出现的新“玩法”,比如看图说话、作诗、作词、写代码等,这些都是传统方法不敢玩的游戏。

3)门槛降低,包括自动问答、机器翻译等以前需要大量知识积累的NLP任务,变得不那么让人望而生畏。一个懂深度学习的新生,找一些开源的工具,参照着学习下,就可以轻松上手。这使得自然语言处理的研究群体一下子大了好多。不过,竞争也激烈了。

但是,还是要说但是,虽然深度学习的应用在NLP中用得如火如荼,但是有些问题还是必须静下心来思考的,也可以说是期待解决的问题。

1) Embedding是否可以代表一切?虽然Embedding使得语义计算变得十分方便,但是是否所有的东西都需要用Embedding来表示。比如,一个陌生的无意义的符号怎么表示?变量什么表示?数字什么表示?embedding是不是过多地给一个词附加了本不该有的含义。此外,大量的未登录词怎么办?肯定不能简单地用UNK表示。未来怎么解决这个问题看不清,很多人想把符号主义的方法引进来,但是也不是那么容易的事。

2) Embedding的形式是否是“向量”?如果说词的表示可以是向量的话,句子、文章也用向量表示的话就显得句子和文章的内容太“单薄”了吧。有没有更好的表示结构,比如矩阵、队列、栈?

3) 语言理解的生物学启发模型是什么?我们都知道在计算机视觉中卷积神经网络的巨大威力,ImageNet比赛从2014年开始排行榜上就找不到了采用非卷积模型的系统。但是卷积是一个实实在在受到生物学启发的模型,虽然比真正的生物学模型要简单很多,但是已经很足以处理很多计算机视觉的任务。然而,人们对语言处理相关的生物神经系统到现在近乎一无所知。目前在NLP中使用最多的RNN怎么看都不像是生物学模型。从某种意义上讲,目前的研究都不是“正途”。虽然个人对memory enhanced的模型比较看好,但是目前的addressing(读写)机制差了些。

4) 真正的“深度”学习?我个人一直认为目前NLP的所谓的“深度学习” 多数是浅层学习。虽然很多人不太认同,认为RNN在时间维上非常深。但是从表示学习层面上(概念、语义等直觉上通过多层加工得来的),RNN的输入到输出之间的路径很短。并且目前研究也表明即使是LSTM也不能很好地处理长距离依赖问题。特别是和计算机视觉相比,NLP中的网络是非常浅的。目前的成功主要受益于“分布式”表示。虽然不是说深的网络就一定好,但是浅的网络终究能力有限,不足以解决很多NLP任务,特别是涉及到语义理解以及推理的任务。(吐槽下今年IJCAI的审稿人之一居然认为我们一个工作的网络太深,别人的都是一层的,然后就给拒了)

5) 深度学习模型的可解释性或可视化?我们知道一个模型表现好是远远不够的,还要知道为什么好?在计算机视觉中有大量的可视化工作,虽然也有很多不足,但是让人在很大程度上理解了模型是如何工作的?但是在NLP上,虽然有一些工作(比如Karpathy的工作等),但是还不足以让人理解“为什么”效果好或“怎么”工作?特别是embedding,到底代表了什么?

6) 和ImageNet等视觉的数据集相比,大多数NLP任务(除了机器翻译)的数据集都太小。Fei-Fei Li在TED上讲,人每天无时无刻都在接收数据,一个3岁大的小孩已经看过上一张真实世界的照片了,人脑的训练样本是无限多的。同理,人对语言的理解也需要大量的样本。因此,要训练一个好的NLP系统也必须有足够多的数据。要说深度学习方法在NLP上不行,首先要看下数据集是否足够。因此,NLP中的ImageNet什么时候在哪里出现?以及类似CV中AlexNet、GoogleNet、ResNet们的标志性NLP系统何时出现?这些都值得我们期待。

7) 最后,谈一下Lecun、Bengio等大牛们看好的非监督学习。如果一个学生很听老师的话,老师说好他就说,老师说差他就说差。我们不会说这个学生聪明,只会说他比较死板。因为智能某种程度上不是说要给一个正确答案(在很多情况下也没有正确答案),而是一个思维方法,以及对新环境的适应,这些都是监督学习不能给予的。既然NLP中监督数据集都太小,何不尝试性非监督学习方法呢?扯远一点,当我们不再要求端到端的监督学习,不再要求整个模型可微,每个模型学到多少东西全靠自己的悟性,一种优胜劣汰的机制保证整个模型群体的进化,多熟悉的画面!