5WordEmbedding(下)-深度学习

Word Embedding 之深度学习

RNN:

RNN引入了隐状态h(hidden state)的概念,h1接收到前一个隐状态h0和当前输入x1,结合权重和bias,输出y1


image.png

RNN存在很多问题, 如序列足够长RNN会遗漏掉比较早时刻的信息。当然还有反向传播时候面临梯度消失的问题,所以原生态RNN没法用,LSTM在RNN基础上做了优化。

LSTM:

LSTM除了RNN的h隐状态又引入一条贯穿顶部的”传送带” Cell 状态 C, LSTM的关键之处就在于这个Cell的状态。

image.png

三个门:,遗忘门(下图1),输入门(下图2,3),输出门(下图4)。门与门之间通过一个sigmoid[0,1]和一个点乘操作组成, 结果0不能通过,1可以通过。


image.png

image.png

image.png

回到LSTM为什么能解决RNN的不足,首先LSTM顾名思义“长短期记忆网络”,随着C的加入,LSTM有对长期记忆的处理,同时“门”的加入进行了选择性的保留和添加,所以也可以对短期以及进行处理。同时“门”的设计中,每个激活函数都是sigmoid[0,1], 使其输出要嘛接近0,要嘛接近1.门为0时,说明上一时刻对当前时刻没有影响,也就没必要传递回来更新参数了。所以这样很大程度上减轻了梯度消失发生的概率。

LSTM在keras中的实际应用:

数据表-2D 形状 = (样本数,特征数)
序列类-3D 形状 = (样本数,步长,特征数)
图像类-4D 形状 = (样本数,宽,高,通道数)
视屏类-5D 形状 = (样本数,帧数,宽,高,通道数)

这里重点说说序列类,输入shape(samples, timesteps, input_dim),这里的timesteps可以理解为input_length。比如100条句子,每条句子有13个单词,每个单词200维,shape(100, 13, 200)。当然这个是比较简单的解释,实际中因每条句子长度不一样,需将句子设置为最长长度,句子长度不足的padding补0。keras中model.add(LSTM(128,....))看下图代码中表示是隐层ht是128维。

输出时,当return_sequence = True时,返回3D张量 shape(samples, timesteps, output_dim)

否则,返回shape(samples, output_dim) 2D张量


image.png

keras现在被tensorflow封装的好,当然用tf也可以实现,下面是多层LSTM用TF实现

image.png

GRU:

GRU在LSTM基础上做了变种,组合了遗忘门和输入门到一个单独的“更新门”,同时也结合了cell状态C和隐状态h,变得比LSTM更简单。

image.png

查了一些论文,说这两种方法基本上一样。如果数据少用GRU更快,如果数据多,LSTM也许会有更好的结果.

ELMO

双层双向LSTM,由一个向前和向后语言模型构成,目标函数取这两个方向的最大似然。相对于最基本的LSTM,ELMO相当于deep model. 从之前讨论深度学习的本质来看,ELMO比LSTM提取到了更多词义,句法,上下文关系,long term dependency等等特征信息。所以ELMO目的在解决一词多义的问题,即在不同的上下文环境下,哪怕是同一个词,也会表达出不同的含义。

image.png

Elmo由RNN演变而来,所以具备了时序模型类一个最大问题:无法并行计算(计算的本质),咱们的GPU再强大,core再多,提速也不理想。但是不用时序模型,又没法“记忆”。有没有一种方法即可以让计算机并行计算,模型又具备“记忆”功能。Attention就这样横空出世。

Transformer

首先看几幅图,来自论文“Why Self-Attention?....”和张俊林的博文


image.png

image.png

image.png

image.png

这样一对比,是不是看出来Transformer在各项指标上都碾压了RNN和CNN。为什么会这样?

image.png

上图就是transformer的内部构造,除了大家都知道的self-attention在发挥作用外,还有transform里的各个“部件”也发挥着作用。一起先看看self-attention

image.png

Query贯穿整个流程,与Key发生交互后输出value,这就是attention抽象流程图,具体是怎么样了?


image.png

”Thinking”输入是one-hot编码,假设通过embedding形成1 * 4矩阵,再与q权重wq(4 * 3)矩阵相乘得出个1 * 3矩阵的q值,同样的分别得到k与v值。q与k的值得到score,为了更好normalization转换后进行softmax得到概率,再与v值相乘输出。从这可以看出q值分别与每个词的k值相乘得到score,然后判断每个词与自己的相关性。这里与每个词都相乘了再判断,所以attention解决了RNN句子太长会损失最初信息的问题,attention“记住”了所有词的信息。另外因为attention每个词都是一样的相乘,所以解决了RNN无法并行计算的问题。只是因为attention的加入,transformer才表现的这么好吗?做个小实验,用transformer的内部构造,把self-attention替换成双向RNN和CNN,看看最后结果

image.png
image.png
image.png
image.png

可以看出替换了双向RNN和CNN后,性能得到不同幅度的提升。Transformer有什么神构造这么厉害?看下图

image.png

把x输入向量与attention后z向量做相加和归一化(add&Normalize),在减少信息损失的同时,让分布更均匀,这样便于训练梯度。做完后,向量z1做一次前馈神经网络提取更细致的特征,然后与提取前的输入结合再做一次add&normalize。Transformer的架构就是一个优化框架。Multi-head attention使用不同的attention关注点的特征,一开始是随机初始化,通过训练输入到前馈神经网络后获取不同w值,这么多组都输入到前馈神经网络是不合理的,所以为了解决这个问题,需要再初始化一个矩阵w,和多个attention结果做乘法最终变换成前馈神经网络可以接收的大小。

最后就是encoder - decoder。 Self-attention 是自身去做attention,输入和输出是一样长,encoder-decoder attention对编码输入和解码输出做attention,可以不是一样长。Decoder后再经过Linear线性计算,然后做一次softmax.

image.png
image.png

Bert

双向transformer,相当于把ELMO中的LSTM替换成transformer.

image.png

Transformer XL

RNN主要的问题是梯度消失和梯度爆炸的问题,而且其捕捉上下文的长度没有Transformer那么强大,而Transformer虽然能力比较强,但是在预测时会受到训练时所设定的最大长度限制。 两者都局限在捕捉长期依赖性上。

Transformer规定输入大小为512,这意味着我们需要对原始的输入文本进行裁剪或填充.剪裁填充后,整个文章被割裂,这样文本如果跨片段就无法学习。Transformer XL做了两件事:XL把上一次处理的片段存储起来,在当前片段的处理中会把这部分信息添加进来,这便是“延长”的含义。这样做便完成了上下文之间的迁移。第二件事是使用相对编码位置,Transformer原本的位置embedding是一种绝对的位置编码。XL做第一件事时,绝对位置编码会发生变化。

XLNet

BERT 虽然用了深层双向信息,但没有对被遮掩(Mask)的 token 之间的关系进行直接学习,因此 XLNet 通过提出 Permutation Language Model (PLM)对其进行了学习。

更多的数据,还有用 Transformer-XL 中的技巧带来的更大范围上下文,对模型有正向加强。这就是为什么XLNet数据上能跑过Bert.

image.png

最近的新闻,Facebook AI团队 RoBERTa 采用Bert-Large,并通过更多的数据和更长时间的训练来提升预训练的过程,最终结果超过XLNet。其实到这里,我对NLP还是有点失望的,自从Bert诞生再到Transformer XL再到XLNet, Google大佬们引领这AI进入了需要更多数据和更强计算力才能跑赢各项指标的时代。不客气的讲一句,我这有大量数据又有超强计算力,用什么模型不都一样能跑出不错的分数,这样让“算法”不知不觉中从核心变成了辅助,让数据量和计算机的算力成为了主角。更致命的一点是,数据如果都需要TPU来跑了,工业界又有多少能承担的起?又怎么落地了?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容

  • 深度学习在NLP领域的发展 一、词向量历史 1.1 第一阶段: Word embeddignd Word 2Vec...
    骆旺达阅读 2,650评论 0 7
  • 高校招生考试中流行“631”综合测评模式 南山区“712”学业质量评价改革打破传统一纸试卷“论英雄”的状态,以期末...
    赵雪奎阅读 821评论 0 0
  • “我只想把最短而又最真诚的祝福送给你,告诉你,我不曾忘记初次的相识,珍惜我们的缘份,新年快乐!”除...
    37度女王阅读 235评论 7 4
  • 《玉世界》 碧玉琉璃俏色铺, 天公写意漫山涂。 夹香风动清凉沁, 畅快淋漓酒一壶。 这样山清水秀的景色,水面似琉璃...
    飘逸1阅读 528评论 10 12
  • 原创小说 连载11 几个小时的长途飞行,还没有耗尽半夏三个星期养的精力。到达桃仙机场的时候已...
    麻花饺子阅读 275评论 0 0