拥抱Transformer,图解NLP处理流程四部曲

一、Transformer简介       

        Transformer是google团队在2017年提出来的,它的问世刷新了一系列NLP竞赛的结果,现在也成为各大NLP爱好者的首选结构,诸如ELMO、Bert等超牛的model都是在transform的思想上实现的。

        Transformer的基本结构如下图所示,详情可以参考我的另一篇博客:

拥抱Transformer,图解NLP处理流程四部曲_第1张图片

二、NLP四部曲

        (1)embedding - 词嵌入

        词嵌入,是对词汇粒度的操作,即将词汇转化为词向量作为网络结构的输入大部分神经网络模型首先都会把输入文本切分成若干个词语,然后将词语都用词向量表示。另一些模型用其它信息扩展了词向量表示。比如,除了词语的ID之外,还会输入一串标签。然后可以学习得到标签向量,加入位置信息得到位置向量,将标签向量和位置向量等拼接为词向量。这可以让你将一些位置敏感的信息加入到词向量表示中。然而,有一个更强大的方式来使词语表示呈现出语境相关。

        (2)encoder - 编码层

        编码层是句子粒度的操作,假设得到了词向量的序列,编码这一步是将其转化为句子矩阵,矩阵的每一行表示每个词在上下文中所表达的意思。

拥抱Transformer,图解NLP处理流程四部曲_第2张图片

        这一步用到了双向RNN模型。LSTM和GRU结构的模型效果都不错。每一行向量通过两部分计算得到:第一部分是正向计算,第二部分是逆向计算,然后拼接两部分得到完整的向量。

        (3)attention - 注意力机制

        这一步是将上一步的矩阵表示压缩为一个向量表示,因此可以被送入标准的前馈神经网络进行预测。注意力机制对于其它压缩方法的优势在于它输入一个辅助的上下文向量。

拥抱Transformer,图解NLP处理流程四部曲_第3张图片

        Yang等人在2016年发表的论文提出了一种注意力机制,输入一个矩阵,输出一个向量。区别于从输入内容中提取一个上下文向量,该机制的上下文向量是被当做模型的参数学习得到。这使得注意机制变成一个纯粹的压缩操作,可以替换任何的池化步骤。attention的更详细的介绍,也可以参考我的博客。

        (4)predict - 预测

        文本内容被压缩成一个向量之后,我们可以学习最终的目标表达 —— 一种类别标签、一个实数值或是一个向量等等。我们也可以将网络模型看做是状态机的控制器,如一个基于转移的解析器,来做结构化预测。

        通常我们会在网络结构的最后一层接入softmax作为预测的网络结构。

 

 

 

你可能感兴趣的:(自然语言处理,自然语言处理)