如何用深度学习做自然语言处理?

如何用深度学习做自然语言处理


潇湘沐
浏览 1223回答 1
1回答

慕森王

深度学习在自然语言处理中的应用已经非常广泛,可以说横扫自然语言处理的各个应用,从底层的分词、语言模型、句法分析等到高层的语义理解、对话管理、知识问答、聊天、机器翻译等方面都几乎全部都有深度学习的模型,并且取得了不错的效果。可以参看ACL2017年的accepted papers list。Accepted Papers, Demonstrations and TACL Articles for ACL 2017。从这里可以看到大部分论文都使用了深度学习的模型。那为什么深度学习在自然语言中取得这么大的进步呢?一、从数据上看,经过前些年互联网的发展,很多应用都积累到了足够量的数据。当数据量增大,以SVM、CRF等为代表的浅层模型,因为模型较浅,无法对海量数据中的非线性关系进行建模,所以不能带来性能的提升。相反,以CNN、RNN为代表的深度模型,能够随着模型复杂性的增加,对数据进行更精准的建模,从而得到更好的效果。二、从算法上看,深度学习也给自然语言处理的任务带来了很多好处。首先,word2vec的出现,使得我们可以将word高效的表示为低维稠密的向量(distributed representation),相比于独热表示表示(one-hot-representation),这一方面一定程度上缓解了独热表示所带来的语义鸿沟的问题,另一方面降低了输入特征的维度,从而降低了输入层的复杂性。其次,由于深度学习模型的灵活性,使得之前比较复杂的包含多流程的任务,可以使用end to end方法进行解决。比如机器翻译任务,如果用传统的方法,需要分词模块、对齐模块、翻译模块、语言模型模块等多个模块相互配合,每个模块产生的误差都有可能对其他模块产生影响,这使得原来的传统方法的构建复杂度很大。在机器翻译使用encoder-decoder架构后,我们可以将源语言直接映射到目标语言,从而可以从整体上优化,避免了误差传递的问题,而且极大的降低了系统的复杂性。深度学习虽然是把利器,但是并不能完全解决自然语言中的所有问题,这主要是由于不同于语音和图像这种自然界的信号,自然语言是人类知识的抽象浓缩表示。人在表达的过程中,由于背景知识的存在会省略很多的东西,使得自然语言的表达更加简洁,但这也给自然语言的处理带来很大的挑战。比如短文本分类问题,由于文本比较简短,文本所携带的信息有限,因此比较困难。像这样的问题,当样本量不够时,如何将深度学习方法和知识信息进行融合来提升系统的性能,将是未来一段时间内自然语言处理领域研究的主要问题。
打开App,查看更多内容
随时随地看视频慕课网APP