一文读懂深度学习:从神经元到BERT

阿里妹导读:自然语言处理领域的殿堂标志 BERT 并非横空出世,背后有它的发展原理。今天,蚂蚁金服财富对话算法团队整理对比了深度学习模型在自然语言处理领域的发展历程。从简易的神经元到当前最复杂的BERT模型,深入浅出地介绍了深度学习在 NLP 领域进展,并结合工业界给出了未来的 NLP 的应用方向,相信读完这篇文章,你对深度学习的整体脉络会有更加深刻认识。


一个神经网络结构通常包含输入层、隐藏层、输出层。输入层是我们的 features (特征),输出层是我们的预测 (prediction)。神经网络的目的是拟合一个函数 f*:features -> prediction。在训练期间,通过减小 prediction 和实际 label 的差异的这种方式,来更改网络参数,使当前的网络能逼近于理想的函数 f*。

神经元(Neural Cell)

神经网络层的基本组成成员为神经元神经元包含两部分,一部分是上一层网络输出和当前网络层参数的一个线性乘积,另外一部分是线性乘积的非线性转换。(如果缺少非线性转换,则多层线性乘积可以转化为一层的线性乘积)


图一

浅层神经网络( Neural Network )

只有一层隐藏层的,我们称为浅层网络。


图二

深度学习网络(Multilayer Perceptron)

相对于浅层网络结构,有两层、三层及以上隐藏层的我们就可以称为深度网络。


图三

在通常的理解中,一个足够宽的网络,是能够拟合任何函数的。而一个深层网络,则能够用更少的参数来拟合该函数,因为深层的神经元可以获取比浅层神经元更复杂的特征表示。

在图二及三所示网络,我们称为全连接网络,也就是隐藏层的神经元会和上一层所有的神经元输出相关。和全连接网络相对应的,是只和上一层部分神经元输出连接的网络,如下文介绍的卷积网络。

 卷积网络(CNN)

卷积网络神经元只和上一层的部分神经元输出是连接的。(在直觉上,是因为人的视觉神经元触突只对局部信息敏感,而不是全局所有信息都对同一个触突产生等价作用)


同一个卷积核从左到右,从上到下和输入做乘积,得到了不同强度的输出。从直觉上来理解,卷积核对原始数据的不同数据分布的敏感度是不一样的。如果把卷积核理解为是某种 pattern,那么符合这种 pattern 的数据分布会得到比较强的输出,而不符合这种 pattern 的输出则得到弱的,甚至是不输出。

一个卷积核是一个 pattern 提取器, 多个卷积核就是多个 pattern 提取器。通过多个特征提取器对原始数据做特征提取转换,就构成了一层卷积。

Alex Net, 因为 GPU 内存的原因,Alex 使用了两块 GPU 对模型做了切割,本质上的卷积层是用于特征提取, 最大池化层用于提取强特征及减少参数,全连接层则是所有高级特征参与到最后分类决策中去。

循环神经网络(RNN)

CNN是对空间上特征的提取, RNN则是对时序上特征的提取。


在RNN中,x1 , x2, x3, xt 是在时序上不一样的输入,而 V, U, W 三个矩阵则是共享。同时 RNN 网络中保存了自己的状态 S。 S 随着输入而改变,不同的输入/不同时刻的输入或多或少影响 RNN 网络的状态 S。而 RNN 网络的状态 S 则决定最后的输出。

在直觉上,我们理解 RNN 网络是一个可模拟任何函数的一个神经网络( action ),加上同时有一份自己的历史存储( memory ),action+memory 两者让 RNN 成为了一个图灵机器。

长短期记忆网络( LSTM )

RNN 的问题是非线性操作 σ 的存在且每一步间通过连乘操作传递,会导致长序列历史信息不能很好的传递到最后,而有了 LSTM 网络。


在 lstmcell 中, 包含了通常意义上的遗忘门(点乘,决定什么要从状态中去除),输入更新门(按位相加,决定什么要添加到状态中去),输出门(点乘,决定状态的输出是什么?)虽然看起来很复杂,本质上是矩阵的运算。

为了简化运算,后面有 lstm 的变种 GRU, 如下图:


文本卷积网络 (TextCNN)

CNN 在计算机识别领域中应用广泛,其捕捉局部特征的能力非常强,为分析和利用图像数据的研究者提供了极大的帮助。TextCNN 是2014年 Kim 在 EMNLP 上提出将 CNN 应用于 NLP 的文本分类任务中。

从直观上理解,TextCNN 通过一维卷积来获取句子中 n-gram 的特征表示。TextCNN 对文本浅层特征的抽取能力很强,在短文本领域如搜索、对话领域专注于意图分类时效果很好,应用广泛,且速度快,一般是首选;对长文本领域,TextCNN 主要靠 filter 窗口抽取特征,在长距离建模方面能力受限,且对语序不敏感。



卷积核( filter )→  n-gram 特征

文本卷积与图像卷积的不同之处在于只在文本序列的一个方向做卷积。对句子单词每个可能的窗口做卷积操作得到特征图( feature map )。

其中,。对 feature map 做最大池化( max-pooling )操作,取中最大值max{c} 作为 filter 提取出的 feature。通过选择每个 feature map 的最大值,可捕获其最重要的特征。

每个 filter 卷积核产生一个 feature ,一个 TextCNN 网络包括很多不同窗口大小的卷积核,如常用的 filter size ∈{3,4,5} 每个 filter 的 featuremaps=100。

增强序列推理模型(ESIM)

ESIM (Enhanced Sequential Inference Model) 为短文本匹配任务中常用且有力的模型。它对于 LSTM 的加强主要在于:将输入的两个 LSTM 层( Encoding Layer) 通过序列推理交互模型输出成新的表征。

图片来源:paper《Enhanced LSTM for Natural LanguageInference》

如图所示,ESIM 为图的左边部分。整体网络结构其实比较明确,整条通路大致包括三个步骤。

步骤一:编码层。该步骤每个 token 将预训练的编码通过 Bi-LSTM 层,从而获取了“新的编码”,其目的是通过 LSTM 学习每个 token 的上下文信息。

步骤二:局部推理层。步骤二本质是一个句间注意力( intra-sentence attention )的计算过程。通过将两句在步骤一中获取的结果做 intra-sentence attention 操作,我们在这里可以获取到一个新的向量表征。接下来对向量的前后变化进行了计算,该做法的目的是进一步抽取局部推理信息在 attention 操作的前后变化,并捕捉其中的一些推理关系,如前后关系等。

步骤三:组合推理&预测层。再次将抽取后的结果通过 Bi-LSTM,并使用Avarage&Maxpooling 进行池化(其具体操作就是分别进行 average 和 max pooling 并进行 concat),最后加上全连接层进行 Softmax 预测其概率。

ELMo

直观上来讲,ELMo(Embedding from Language Model) 解决了一词多义的问题,例如询问“苹果”的词向量是什么,ELMo 会考虑是什么语境下的“苹果”,我们应该去询问“苹果股价”里的“苹果”词向量是什么。ELMo 通过提供词级别、携带上下文信息的动态表示,能有效的捕捉语境信息。ELMo 的提出对后面的的 GPT 和 BRET有一个很好的引导和启发的作用。一个好的词向量,应满足两个特点:

  1. 能够反映出语义和语法的复杂特征。

  2. 能够准确对不同上下文产生合适语义。

传统的 word2vec 对每个 word 只有一个固定的 embedding 表达,不能产生携带上下文信息的 embedding,对多义词无法结合语境判断。ELMo 中的每个单词都要先结合语境通过多层 LSTM 网络才得到最后的表达,LSTM 是为捕获上下文信息而生,因而 ELMo 能结合更多的上下文语境,在一词多意上的效果比 word2vec 要好。

ELMo 预训练时的网络结构图与传统语言模型有点类似,直观理解为将中间的非线性层换成了 LSTM,利用 LSTM 网络更好的提取每个单词在当前语境中的上下文信息,同时增加了前向和后向上下文信息。.

预训练

给定包含 N 个词的序列,前向语言模型通过前 k-1个词预测第 k 个词。在第 k 个位置,每个 LSTM 层输出上下文依赖的向量表达 , j=1,2,…,L。顶层 LSTM 层的输出 利用交叉熵损失预测下一个位置



后向语言模型对序列做反序,利用下文的信息去预测上文的词。与前向类似,给定经过 L 层的后向深层 LSTM 网络预测得到第 j 层的隐层输出

双向语言模型拼接前向语言模型和后向语言模型,构建前向和后向联合最大对数似然。

其中,为序列词向量层参数交叉熵参数,在训练过程中这两部分参数共享。

嵌入式语言模型组合利用多层 LSTM 层的内部信息,对中心词,一个 L 层的双向语言模型计算得到 2L+1 个表达集合。

Fine-tune

在下游任务中,ELMo 将多层的输出整合成一个向量,将所有 LSTM 层的输出加上normalized 的 softmax 学习到的权重 s=Softmax(w),使用方法如下所示:

直观上来讲,biLMs 的较高层次的 LSTM 向量抓住的是词汇的语义信息, biLMs 的较低层次的 LSTM 向量抓住的是词汇的语法信息。这种深度模型所带来的分层效果使得将一套词向量应用于不同任务有了可能性,因为每个任务所需要的信息量是不同的。另外 LSTM 的层数不宜过多,多层 LSTM 网络不是很容易 train 好,存在过拟合问题。如下图是一个多层 LSTM 用在文本分类问题的实验结果,随着 LSTM 层数增多,模型效果先增加后下降。

Transformer

曾经有人说,想要提升 LSTM 效果只要加一个 attention 就可以。但是现在attention is all you need。Transformer 解决了 NLP 领域深层网络的训练问题。

Attention 此前就被用于众多 NLP 的任务,用于定位关键 token 或者特征,比如在文本分类的最后加一层 Attention 来提高性能。Transformer 起源自注意力机制(Attention),完全抛弃了传统的 RNN,整个网络结构完全是由 Attention 机制组成。Transformer 可以通过堆叠 Transformer Layer 进行搭建,作者的实验是通过搭建编码器和解码器各6层,总共12层的 Encoder-Decoder,并在机器翻译中取得了 BLEU 值的新高。

整个流程的可视化如图:以N=2示例,实际Transformer的N=6。

Encoder 阶段:输入“Thinking Machines”,对应词向量,叠加位置向量 Positional Encoding,对每个位置做 Self-Attention 得到;Add&Norm 分两步,residual connection即,layer Normalization 得到新的,对每个位置分别做 feed forward 全连接和 Add&Norm,得到一个 Encoder Layer 的输出,重复堆叠2次,最后将 Encoder Layer 输出到 Decoder 的 Encoder-Decoder Layer 层。

Decoder 阶段:先是对 Decoder 的输入做 Masked Self-Attention Layer,然后将Encoder 阶段的输出与 Decoder 第一级的输出做 Encoder-Decoder Attention,最后接 FFN 全连接,堆叠2个 Decoder,最后接全连接+Softmax 输出当前位置概率最大的的词。


Transformer 的结构上比较好理解,主要是里边的细节比较多,如 Mult-HeadAttention, Feed Forward, Layer Norm, Positional Encoding等。

Transformer的优点:

  1. 并行计算,提高训练速度。这是相比 LSTM 很大的突破,LSTM 在训练的时候 ,当前步的计算要依赖于上一步的隐状态,这是一个连续过程,每次计算都需要等之前的计算完成才能展开,限制模型并行能力。而 Transformer 不用LSTM结构,Attention 机制的每一步计算只是依赖上一层的输出,并不依赖上一词的信息,因而词与词之间是可以并行的,从而训练时可以并行计算, 提高训练速度。

  2. 一步到位的全局联系捕捉。顺序计算的过程中信息会丢失,尽管 LSTM 等门机制的结构一定程度上缓解了长期依赖的问题,但是对于特别长期的依赖现象,LSTM 依旧无能为力。Transformer 使用了 Attention 机制,从而将序列中的任意两个位置之间的距离是缩小为1,这对解决 NLP 中棘手的长期依赖问题是非常有效的。

总结对比CNN、RNN和Self-Attention:

CNN:只能看到局部领域,适合图像,因为在图像上抽象更高层信息仅仅需要下一层特征的局部区域,文本的话强在抽取局部特征,因而更适合短文本。

RNN:理论上能看到所有历史,适合文本,但是存在梯度消失问题

Self-Attention:相比 RNN 不存在梯度消失问题。对比 CNN 更加适合长文本,因为能够看到更远距离的信息,CNN 叠高多层之后可以看到很远的地方,但是 CNN本来需要很多层才能完成的抽象,Self-Attention 在很底层就可以做到,这无疑是非常巨大的优势。

BERT

BERT (Bidirectional Encoder Representations from Transformers) 本质来讲是NLP 领域最底层的语言模型,通过海量语料预训练,得到序列当前最全面的局部和全局特征表示。

\BERT 网络结构如下所示,BERT 与 Transformer 的 Encoder 网络结构完全相同。假设 Embedding 向量的维度是,输入序列包含 n 个token,则 BERT 模型一个layer 的输入是一个的矩阵,而它的输出也同样是一个的矩阵,所以这样 N 层 BERT layer 就可以很方便的首尾串联起来。BERT 的 large model 使用了 N=24 层这样的Transformer block。


目标函数

★ 1. Masked Language Model, MLM

MLM 是为了训练深度双向语言表示向量,BERT 用了一个非常直接的方式,遮住句子里某些单词,让编码器预测这个单词是什么。具体操作流程如下图示例:先按一个较小概率 mask 掉一些字,再对这些字利用语言模型由上下文做预测。


BERT 具体训练方法为:随机遮住15%的单词作为训练样本。

  • 其中80%用 masked token 来代替。

  • 10%用随机的一个词来替换。

  • 10%保持这个词不变。

直观上来说,只有15%的词被遮盖的原因是性能开销,双向编码器比单向编码器训练要慢;选80% mask,20%具体单词的原因是在 pretrain 的时候做了 mask,在特定任务微调如分类任务的时候,并不对输入序列做 mask,会产生 gap,任务不一致;10%用随机的一个词来替换,10%保持这个词不变的原因是让编码器不知道哪些词需要预测的,哪些词是错误的,因此被迫需要学习每一个 token 的表示向量,做了一个折中。


★ 2. Next Sentence Prediction

预训练一个二分类的模型,来学习句子之间的关系。预测下一个句子的方法对学习句子之间关系很有帮助。

训练方法:正样本和负样本比例是1:1,50%的句子是正样本,即给定句子A和B,B是A的实际语境下一句;负样本:在语料库中随机选择的句子作为B。通过两个特定的 token[CLS]和[SEP]来串接两个句子,该任务在[CLS]位置输出预测。


输入表示


Input:每个输入序列的第一个 token [CLS]专门用来分类,直接利用此位置的最后输出作为分类任务的输入 embedding。



从直观上来说,在预训练时,[CLS]不参与 mask,因而该位置面向整个序列的所有position 做 attention,[CLS]位置的输出足够表达整个句子的信息,类似于一个global feature;而单词 token 对应的 embedding 更关注该 token 的语义语法及上下文信息表达,类似于一个 local feature。


Position Embeddings: transformer 的 PositionEncoding 是通过 sin,cos 直接构造出来的,PositionEmbeddings 是通过模型学习到的 embedding 向量,最高支持512维。


Segment Embeddings:在预训练的句对预测任务及问答、相似匹配等任务中,需要对前后句子做区分,将句对输入同一序列,以特殊标记 [SEP] 分割,同时对第一个句子的每个 token 添加 Sentence A Embedding, 第二个句子添加 Sentence BEmbedding,实验中让EA =1, EB =0。

Fine-tune

针对不同任务,BERT 采用不同部分的输出做预测,分类任务利用[CLS]位置的embedding,NER 任务利用每个 token 的输出 embedding。

BERT的主要贡献有以下几个方面:

预训练的有效性:这方面来说 BERT 改变了游戏规则,是因为相比设计复杂巧妙的网络结构,在海量无监督数据上预训练得到的BERT语言表示+少量训练数据微调的简单网络模型的实验结果取得了很大的优势。

网络深度:基于 DNN 语言模型 (NNLM,CBOW等) 获取词向量的表示已经在 NLP领域获得很大成功,而 BERT 预训练网络基于 Transformer 的 Encoder,可以做的很深。

双向语言模型在 BERT 之前,ELMo 和 GPT 的主要局限在于标准语言模型是单向的,GPT 使用 Transformer 的 Decoder 结构,只考虑了上文的信息。ELMo 从左往右的语言模型和从右往左的语言模型其实是独立开来训练的,共享 embedding,将两个方向的 LSTM 拼接并不能真正表示上下文,其本质仍是单向的,且多层 LSTM难训练。

目标函数对比语言模型任务只做预测下一个位置的单词,想要训练包含更多信息的语言模型,就需要让语言模型完成更复杂的任务,BERT 主要完成完形填空和句对预测的任务,即两个 loss:一个是 Masked Language Model,另一个是 Next Sentence Prediction。

总结

我们在做 NLU 意图分类任务中实践了以上主流模型,包括 Xgboost、TextCNN、LSTM、BERT 及 ERNIE 等,下边是在前期模型调研阶段,在选型测试数据上的对比实验,BERT 模型表现出极大的优势。

同时在我们部署上线的过程中,对 BERT 时耗做了测试,在压测实验数据上的测试结果供参考。针对我们的问答query:

(1 ) BERT layer 的层数与时耗基本成线性关系,多头数目增加对时耗增加不明显;

(2) 针对短文本 query 的意图理解,更多依赖浅层语法语义特征,因而 BERT 层数对模型准召影响较小;

(3) attention 多头决定了可以从多少个角度理解 query,在我们的实验里降低多头数比降低层数对准召的影响略大,而时耗无明显降低。

图像领域,Alexnet 打开了深度学习的大门,Resnet是图像领域深度学习的殿堂标志。

随着Transformer, Bert 兴起,网络也在往12层,24层发展,得到了 SOTA. Bert 证明了在nlp领域,深层网络的效果要优于浅层网络。

自然语言领域,Transformer 打开了深层网络的大门,BERT 也成为了自然语言处理领域的殿堂标志。


关于我们

我们是蚂蚁金服财富对话算法团队,致力于用最新的算法,做最好的模型,造就更智能的对话系统,摘取AI皇冠上的明珠,欢迎讨论、转发。团队最近正在大力招聘NLP、推荐、用户画像方面的算法专家(P6-P9),欢迎联系:

shiming.xsm@antfin.com。


参考:

Kim Y. Convolutional neural networks for sentence classification[J]. arXivpreprint arXiv:1408.5882, 2014.

Hochreiter S, Schmidhuber J. LSTM can solve hard long time lagproblems[C]//Advances in neural information processing systems. 1997: 473-479.

Vaswani A, Shazeer N, Parmar N, et al. Attention is all youneed[C]//Advances in neural information processing systems. 2017: 5998-6008.

Chen Q, Zhu X, Ling Z, et al. Enhanced lstm for natural languageinference[J]. arXiv preprint arXiv:1609.06038, 2016.

Peters M E, Neumann M, Iyyer M, et al. Deep contextualized wordrepresentations[J]. arXiv preprint arXiv:1802.05365, 2018.

Devlin J, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectionaltransformers for language understanding[J]. arXiv preprint arXiv:1810.04805,2018.

阿里技术
阿里技术

分享阿里巴巴的技术创新、实战案例、经验总结,内容同步于微信公众号“阿里技术”。

专栏二维码
入门神经元深度学习
12
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

交叉熵技术

交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小

自注意力技术

自注意力(Self-attention),有时也称为内部注意力,它是一种涉及单序列不同位置的注意力机制,并能计算序列的表征。自注意力在多种任务中都有非常成功的应用,例如阅读理解、摘要概括、文字蕴含和语句表征等。自注意力这种在序列内部执行 Attention 的方法可以视为搜索序列内部的隐藏关系,这种内部关系对于翻译以及序列任务的性能非常重要。

参数技术

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

文本分类技术

该技术可被用于理解、组织和分类结构化或非结构化文本文档。文本挖掘所使用的模型有词袋(BOW)模型、语言模型(ngram)和主题模型。隐马尔可夫模型通常用于词性标注(POS)。其涵盖的主要任务有句法分析、情绪分析和垃圾信息检测。

注意力机制技术

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

最大池化技术

最大池化(max-pooling)即取局部接受域中值最大的点。

机器翻译技术

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

神经网络技术

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

图灵机技术

图灵机,又称确定型图灵机,是英国数学家艾伦·图灵于1936年提出的一种抽象计算模型,其更抽象的意义为一种数学逻辑机,可以看作等价于任何有限逻辑数学过程的终极强大逻辑机器。

语料库技术

语料库一词在语言学上意指大量的文本,通常经过整理,具有既定格式与标记;事实上,语料库英文 "text corpus" 的涵意即为"body of text"。

目标函数技术

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

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

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」,目前似乎仍然是人们对深度神经网络的训练困难的偏好解释。

长短期记忆网络技术

长短期记忆(Long Short-Term Memory) 是具有长期记忆能力的一种时间递归神经网络(Recurrent Neural Network)。 其网络结构含有一个或多个具有可遗忘和记忆功能的单元组成。它在1997年被提出用于解决传统RNN(Recurrent Neural Network) 的随时间反向传播中权重消失的问题(vanishing gradient problem over backpropagation-through-time),重要组成部分包括Forget Gate, Input Gate, 和 Output Gate, 分别负责决定当前输入是否被采纳,是否被长期记忆以及决定在记忆中的输入是否在当前被输出。Gated Recurrent Unit 是 LSTM 众多版本中典型的一个。因为它具有记忆性的功能,LSTM经常被用在具有时间序列特性的数据和场景中。

遗忘门技术

LSTM或GRU中特有的机制

堆叠技术

堆叠泛化是一种用于最小化一个或多个泛化器的泛化误差率的方法。它通过推导泛化器相对于所提供的学习集的偏差来发挥其作用。这个推导的过程包括:在第二层中将第一层的原始泛化器对部分学习集的猜测进行泛化,以及尝试对学习集的剩余部分进行猜测,并且输出正确的结果。当与多个泛化器一起使用时,堆叠泛化可以被看作是一个交叉验证的复杂版本,利用比交叉验证更为复杂的策略来组合各个泛化器。当与单个泛化器一起使用时,堆叠泛化是一种用于估计(然后纠正)泛化器的错误的方法,该泛化器已经在特定学习集上进行了训练并被询问了特定问题。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

蚂蚁金服机构

蚂蚁金服是一家旨在为世界带来普惠金融服务的科技企业。蚂蚁金服起步于 2004 年成立的支付宝。2014 年 10 月,蚂蚁金服正式成立。 蚂蚁金服以“为世界带来更多平等的机会”为使命,致力于通过科技创新能力,搭建一个开放、共享的信用体系和金融服务平台, 为全球消费者和小微企业提供安全、便捷的普惠金融服务。

https://www.antfin.com/
ELMo技术

ELMO 是“Embedding from Language Models”的简称, ELMO 本身是个根据当前上下文对 Word Embedding 动态调整的思路。ELMO 采用了典型的两阶段过程,第一个阶段是利用语言模型进行预训练;第二个阶段是在做下游任务时,从预训练网络中提取对应单词的网络各层的 Word Embedding 作为新特征补充到下游任务中。

推荐文章
暂无评论
暂无评论~