11月12, 2020

自然语言处理实战之卷积神经网络怎么搞?

为什么在NLP分类任务中选择CNN呢?它的主要好处是高效率。在许多方面,由于池化层和卷积核大小所造成的限制(虽然可以将卷积核设置得更大),会导致丢弃大量的信息,但这并不意味着它们不是有用的模型。大家已经看到,利用CNN能够有效地对相对较大的数据集进行检测和预测情感,即使依赖Word2vec词嵌入,CNN也可以在不映射整个语言的条件下,通过较少的词嵌入表示来运行。(本文节选自《自然语言处理与实战》一书第七章节)

语言的真正力量不在于文字本身,而在于文字的间隔、顺序以及词的各种组合。有时候,语言的意义隐藏在文字的背后,蕴含在形成词的特定组合的意图和情感中。无论是人类还是机器,理解隐藏在文字背后的意图,对于同理心强、情商高的倾听者或自然语言的阅读者而言,都是一项重要的技能。就像在思想和观念中,正是词之间的联系创造了语言的深度、信息度和复杂度。除了理解单个词的含义,词之间还有各种各样巧妙的组合方式,有没有一些比 n-gram 匹配更灵活的方法,可以用来衡量这些组合词的意义呢?我们如何从一个词序列中得到语义和情感——隐性语义信息,从而利用它来做一些事情呢?更进一步地说,我们如何才能将这种隐藏的语义传达给冰冷的计算机来生成文本呢?

“机器生成的文本”这个短语甚至让人联想到由空洞的金属声音发出的一个个词块。机器也许能让人明白它表达的意思,但仅此而已。其中缺少的是什么呢?是交流过程中人们变化的语调、流利度以及即使是在非常短暂的交谈中,人们也期待表露出来的个性特点,这些微妙之处存在于字里行间以及词的构建模式中。人们在交流时,会在他们的文字和演讲中蕴含各种语言模式。伟大的作家和演讲家会积极运用这些模式来制造非常好的效果。人们天生具有识别这些模式的能力,这种识别甚至是在无意识的状态下进行的,而这也正是机器生成的文本听起来很糟糕的原因,因为它们不具备这些模式。不过大家可以从人类生成的文本中挖掘这些模式,并将其赋给机器。

在过去的几年里,围绕神经网络的研究迅速开展起来,同时出现了大量可用的开源工具,神经网络在大型数据集中发现模式的能力得到大幅提升,并使 NLP 领域发生了巨大的转变。感知 机迅速转变为前馈网络(一个多层感知机),并由此衍生出各种变体:卷积神经网络和循环神经网络,并发展出各种应用于大型数据集上模式挖掘的更为有效和准确的工具。

正如大家看到的 Word2Vec 那样,神经网络给NLP领域带来了一个全新的方法。虽然设计神经网络最初的目的是作为一个学习量化输入的机器,这个领域已经从只能处理分类、回归问题(主题分析、情绪分析)发展到能够基于以前未见过的输入来生成新文本:将短语翻译为另一种语言,对未见过的问题生成回复(聊天机器人),甚至能够生成基于特定作者风格的新文本。

点击查看原文>

本文链接:https://blog.jnliok.com/post/GsIC2QCmsW2h94S7ZTZh.html

-- EOF --

Comments