年最值得读的自然语言处理领域Paper》自然语言处理介绍介绍自然语言处理(NLP)研究的问题是关于如何构建通过处理和理解语言来执行某些任务的系统。这些任务可包括问答(像Siri、Alexa、Cortana所做的那些)情感分析(决定是否某句话包含积极或消极的内涵)图像到文字的映射(生成一幅输入图像的注释)机器翻译(将一段文字翻译成另一种语言)语音识别词性标注命名实体识别传统的NLP方法涉及很多语言学领域自身的知识。要理解诸如音位和语素这样的术语是非常基本的要求,就好像他们的研究统统都是语言学问题一样。让我们来看看传统NLP是如何尝试理解下面的话的。假设我们的目标是收集关于这个词的一些信息(表征其情感,找到它的定义等)。使用我们语言领域的知识,我们可以把这个词分成3部分。我们知道前缀「un」表示反对或相反的想法,我们知道「ed」可以指定单词的时间段(过去时态)。通过识别词干「兴趣」的含义,我们可以很容易地推导出整个词的定义和情感。看起来很简单吧?然而,当考虑英语中所有不同的前缀和后缀时,需要非常熟练的语言学家来理解所有可能的组合和意义。深度学习如何很好地解决这些问题?从最基础层面来说,深度学习即是表征学习(representationlearning)。通过卷积神经网络(CNN),我们可以看到不同的过滤器(filter)组合可以用来将各种物体分类。这里,我们将采用一种相似的方式,通过大数据集来创建对各种词的表征。本文概论本文将以这样的方式来组织文章的内容结构:我们将首先浏览一下构建NLP深度网络的基本构建块,然后来谈一谈最近研究论文所能带来的一些应用。不知道我们为什么使用RNN或者为什么LSTM很有效?这些疑问都很正常,但希望你在读完下面的这些研究论文之后能更好地了解为什么深度学习技术能够如此显著地促进了NLP的发展。词向量(WordVectors)由于深度学习爱用数学进行工作,我们将把每个词表示为一个d维向量。让我们使d=6。现在让我们考虑如何填这些值。我们想要以这样的方式填充值:向量以某种方式表示词及其语境、含义或语义。一种方法是创建共生矩阵(coocurencematrix)。假设我们有以下句子:从这句话,我们要为每个特定的词都创建一个词向量。共生矩阵是包含了在语料库(或训练集)中每个词出现在所有其他词之后的计数数目的矩阵。让我们看看这个矩阵。从该矩阵中提取行可以让我们的词向量简单初始化。请注意,通过这个简单的矩阵,我们可以获得一些非常有用的见解(insight)。例如,请注意「love」和「like」这两个词都包含1,用于名词(NLP和狗)后的计数。它们与「I」的交集也是1,因此表明这些词必须是动词。对于远比一个句子更大的数据集,你可以想象这种相似性将变得更加清楚,因为「like」,「love」和其他同义词将开始具有相似的单词向量,因为它们都在相似的上下文中使用。现在,尽管这是一个了不起的起点,但我们注意到每个词的维数将随着语料库的大小线性增加。如果我们有一个百万词(在NLP标准中并不是很多),我们将有一个一百万乘一百万尺寸的矩阵,它将会非常稀疏(大量的0)。从存储效率上讲这绝对不是最好的。在寻找表示这些词向量的最优方法方面已经有许多进步。其中最著名的是Word2Vec。Word2Vec词向量初始化技术背后的基本思想是,我们要在这种词向量中存储尽可能多的信息,同时仍然保持维度在可管理的规模(25-维度是理想的)。Word2Vec基于这样一个理念来运作,即我们想要预测每个单词周围可能的词。让我们以上一句话「IloveNLPandIlikedogs」为例。我们要看这句话的前3个词。3因此将是我们的窗口大小m的值。现在,我们的目标是找到中心词,「love」,并预测之前和之后的词。我们如何做到这一点?当然是通过最大化/优化某一函数!正式地表述是,我们的函数将寻求给定当前中心词的上下文词的最大对数概率。让我们对这一点再深入地探究。上面的成本函数(costfunction)基本上是说我们要添加I和love以及NLP和love的对数概率(其中「love」是两种情况下的中心词)。变量T表示训练句子的数量。让我们再仔细研究一下那个对数概率。Vc是中心词的词向量。每个词由两个向量表示(Uo和Uw),一个用于当该词用作中心词时,一个用于当它用作外部词(outerword)时。向量是用随机梯度下降(SGD)来训练的。这绝对是一个理解起来更让人困惑的方程之一,所以如果你仍然有疑问想了解到底发生了什么,你可以查看以下两个资源:Howdoesword2vecwork?:
转载请注明:http://www.0431gb208.com/sjszyzl/7022.html