Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

Shawn Yan作者Synced Global制作白妤昕编译Joni编辑

语言表征:从词嵌套到句子语义

演讲链接:https://www.youtube.com/watch?v=nFCxTtBqF5U

PDF链接: https://simons.berkeley.edu/sites/default/files/docs/6449/christophermanning.pdf

去年,Christopher Manning教授发表了这个演讲。这是一个介绍性教程,没有太复杂的算法。 该主题分为四个部分:

  • 人类语言特征
  • 分布式词表征
  • 双向LSTM现状
  • RNN的一些应用

人类语言特征

人类语言最鲜明的特征之一是其有意义的表征。 无论一个人说什么,一个词或一个词组,它往往都有意义。 人类语言也有一个特殊的结构,使其易于学习,即使是孩子也可以快速学习。 与最先进的机器学习方法中使用的必要输入不同,人类语言更可能是离散/符号/分类表征。 因此,我们需要一种更有效、更有意义的方式来编码人类语言。

分布式词表征

词向量

就一些传统的机器学习方法而言,词被表示为向量空间中的离散向量(即one-hot编码),例如 [0 0 0 0 1 0 0 1] 可能是一个具备同样规模词汇量的大的向量。但这种方法存在一个问题,即缺乏相似性的自然概念。例如如果我们想要搜索“Dell notebook”,我们也可以接受词条“Dell laptop”,但实际上它们被表示为两个不同的离散向量 [0 0 0 1 0] 和 [0 0 1 0 0],正交性使我们无法在它们之间建立任何概念联系。

为了分享更多的统计数据并寻求类似单词/短语之间的更多相似性,密集向量被认为是现代NLP最成功的想法之一。神经网络使用密集向量来表示单词。

word2vec的详细信息

神经网络中,用于学习密集词向量的标准概率建模基于以下公式:

这意味着该目标函数是使用中心词 c 及其语境词的softmax函数,其中o是语境词索引,u_o是对应的词向量,c是中心词索引,v_c是对应的词向量。 总体目标是尽量使该概率最大化,以便经过百万次反向传播后,具有相同周围词向量的词更容易在向量空间中具备相似的含义。

上图是学习后向量空间中的投影词向量。 因此,它不仅可以捕获相似性共现,还可以捕获一些细粒度维度含义,以便你可以在某些指定的方向上观察某些特定的语境连接。

BiLSTM现状

“基本上,如果你想做一个自然语言处理任务,不管它是什么,你都应该把数据放到一个BiLSTM网络中,通过注意力机制增强其信息流。”

以上图片是经典的RNN编码器-解码器网络。 首先,根据当前输入和前一个隐藏状态,计算每个时间步的源语句的编码器网络读入词和相应的隐藏状态。 然后解码器开始基于编码器的最后隐藏状态生成单词。 不幸的是,它不能很好地用于机器翻译,因为它无法捕捉源句子的长期依赖。

LSTM和GRU可以改善这一点,这是近年来最成功的两个RNN变体,用于解决长期依赖问题。 它们也被广泛称为“gated recurrent unit”。 门控机制控制哪些信息应该传递到下一步,以便预测出好的译文。

上图是GRU模块的数学公式。 GRU模块就像一个读/写寄存器。 它读取前一个隐藏状态的一部分,并与当前输入结合以构建候选更新(请参阅上面公式的第二行)。 然后它保留部分维度与先前隐藏状态相同,并通过候选更新更新剩余部分(请参阅上面公式的第一行)。 请注意,u_t和r_t是多变量伯努利分布,范围从0到1(以便做出选择:遗忘或更新)。

LSTM模块与GRU模块类似,但它具有更多的可训练参数。这里的思路也是基于先前隐藏状态和当前输入的候选更新值(参见上面公式中的第三个方程),它用于单元格计算(参见上述公式中的第二个方程)。当我们计算单元格时,可能会根据f_t遗忘前一个单元格状态的一部分,并且可以根据i_t添加部分候选更新。在计算单元格状态之后,我们可以基于单元和输出门计算当前隐藏状态(见上式中的第一个方程)。注意,f_t和i_t也是一个多变量伯努利分布,范围从0到1(以便做出选择:遗忘或更新)。

这里的魔法是“+”符号(参见上述GRU公式中的第一个公式和上述LSTM公式中的第二个公式)。它将整合新的候选隐藏状态和之前时间步中的部分隐藏状态,这意味着信息流可以基于前一步在多个方向上进行。通过这种方式,梯度将会更平滑地反向传播(更少的梯度消失问题),并且与传统的递归神经网络相比,该系统倾向于具有更长的短期记忆。

总之,基于门控,LSTM / GRU模块可以专注于某个特定的环境,并且遗忘对将来贡献较少的语境,因此整体而言,它可以暂时记住部分句子,以便为未来的学习做出贡献。

这是Sutskever等人 2014 [1] 提出的LSTM编码器-解码器结构,它已经在机器翻译方面有杰出的表现。 LSTM模块已被替换为网络内部单元,并具有更深的架构。其工作流程与之前相同:读入源句子,将其编码为隐藏嵌入,并由解码器生成该句子。 但是这里仍然有一个很大的限制:发送给解码器的整个记忆与编码器的最后一步相关联。 但是,这种架构可能引发两个问题:首先,这样信息流可能受到限制。 其次是对于更长的句子,编码器开始时的标记可能会在从左到右的过程中被遗忘。

为了克服这两个问题,人们提出了双向长短期记忆Bi-LSTM,它的思想是,在解码器的一个步骤中,根据语境向量提供附加控制,该语境向量处理来自源句子的所有信息(回看源句子并计算它们在每个编码器隐藏状态和当前解码器隐藏状态之间的相关程度)。通过加权,语境向量可以基于整个源句子而不仅仅是最终的编码器隐藏状态来影响当前解码器的隐藏状态,这可以增强记忆并使其在实践中非常成功。为了更好地表示源语句,在编码器中使用双向设计,在两个方向上运行LSTM。这有助于模型使用左右的语境词更好地表征源句子中的每个单词。在实践中,当你在每个方向获得每个单词的词向量时,只需将它们连接起来,总会出现一些改进(无论是最终准确率还是句法顺序)。

近年来,与传统的基于短语的机器翻译和基于句法的机器翻译相比,神经网络机器翻译(NMT)在单词记忆测试的新评估中取得了重大进展。 神经网络机器翻译有四个优点:

  • 端到端培训:允许参数同时优化;
  • 分布式词表征:更好地挖掘词组相似度;
  • 更大的语境:可以推广到更大的语境(越大越好);
  • 生成文本更流利:文本生成具有更好的句法意义。

RNN的一些应用

存在基于RNN的各种应用,如问答、阅读理解和情感分析等。最近有些人也使用卷积神经网络进行机器翻译[2]。

评论与观点

尽管基于神经的方法在最近的WMT评估中取得了重大进展,但在实践中,尤其是在实际的域内数据方面,神经机器翻译仍然不如基于统计的机器翻译有竞争力。 一方面,我希望人们能够为NMT系统开发构建更有意义的、全面的、各种类型的数据,另一方面,就自然语言处理而言,无论具体的任务是什么,语言和记忆的结构和模块化程度都需要不断增加,尤其是它的泛化能力和可解释性。

参考文献

[1] Sequence to Sequence Learning with Neural Networks, Ilya Sutskever, Oriol Vinyals, and Quoc Le, NIPS 2014

[2] Convolutional Sequence to Sequence Learning, Jonas Gehring, Michael Auli, David Grangier, Denis Yarats, and Yann N. Dauphin, arXiv preprint arXiv:1705.03122v1, 2017.

理论语言RNNLSTM
51
相关数据
机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

目标函数技术

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

word2vec技术

Word2vec,为一群用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本。网络以词表现,并且需猜测相邻位置的输入词,在word2vec中词袋模型假设下,词的顺序是不重要的。 训练完成之后,word2vec模型可用来映射每个词到一个向量,可用来表示词对词之间的关系。该向量为神经网络之隐藏层。 Word2vec依赖skip-grams或连续词袋(CBOW)来建立神经词嵌入。Word2vec为托马斯·米科洛夫(Tomas Mikolov)在Google带领的研究团队创造。该算法渐渐被其他人所分析和解释。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

梯度消失问题技术

梯度消失指的是随着网络深度增加,参数的梯度范数指数式减小的现象。梯度很小,意味着参数的变化很缓慢,从而使得学习过程停滞,直到梯度变得足够大,而这通常需要指数量级的时间。这种思想至少可以追溯到 Bengio 等人 1994 年的论文:「Learning long-term dependencies with gradient descent is difficult」,目前似乎仍然是人们对深度神经网络的训练困难的偏好解释。

推荐文章
北京华道征信有限公司・数据科学家
文章中——例如如果我们想要搜索“Dell notebook”,我们也可以接受词条“Dell lapto”; 少打个字母吧?应该是laptop便携式电脑?