请问王老师,关于Attention is all you need这篇论文,为什么要剥离RNN呢,这样做有什么好处?是因为没有Recurrent就可以更有利于并行计算吗? 还有,如果剥离了RNN,那么计算相关性的时候就没有能够包含全部词语信息的状态向量h了,剥离之后是直接通过输入的词向量序列通过Wk Wv Wq取得的相关性和Context Vector,这样剥离之后是怎么达到和Self-Attention中一样的效果呢?
@@ShusenWang 不用RNN,输出的c向量确实和所有的输入相关。但是在RNN中,词向量是按顺序输入进来的,因此保留了词与词之间的位置信息。如果剥离RNN,是不是就失去了这个位置编码?比如第一个输入是"Tommy bought Jimmy an apple",第二个输入是"Jimmy bought Tommy an apple "。这两句话的主语和宾语正好相反,因为h向量的存在RNN就会看做是不同的。但是剥离掉RNN之后的Self-Attention层是怎么区分词序的呢?如果Attention层不能考虑词序的话,效果还能比RNN+Attention好,是如何达到的呢? 您的文章中说“只用注意力机制居然表现更好,在机器翻译等任务上效果有大幅提升”,是不是指Transformer的效果会比RNN+注意力机制的效果更好,而不是指一个浅层的单头注意力层的效果比RNN+注意力机制的效果更好呢? 我的理解是,因为去掉了RNN层,虽然弱化了词序信息,但是因为可以更好地实现并行计算,所以可以搭建更深的深度神经网络,因此可以充分利用语料提取更为抽象的信息,效果对比浅层RNN+Attention就有了显著提升。。我的理解是不是出现了偏差呢?谢谢老师
翻墙不方便的请点这里:
下载链接: pan.baidu.com/s/1FOjyWMuQV7ap3Dw_mc0hMA 密码:lb9t
搬运请注明视频和课件地址。
视频:ruclips.net/video/aButdUV0dxI/видео.html
课件:github.com/wangshusen/DeepLearning
感谢王老师分享!非常棒。请问您的课件是如何用哪个软件制作的?是基于Markdown生成的么?
@@leozhao2831 用power point就行啊
老师您可以在Bilbili上开一个账号,Bilibili上有很多youtube搬运资源,自己上传还能避免版权问题。
@@ronnychen8240 多谢!我开了个账户。
王老师讲的太清楚了!有时间可以讲一下GNN (Graph Neural Network)吗?看了几个youtube视频还是云山雾罩的。
老师讲的太好了,是我目前发现的把原理讲的最清楚的老师,非常感谢老师。
我找了全網多個中英文的nlp視頻來學習,發現王老師講的最好。
看了很多视频和资料,都没搞懂,还是Shusen牛!讲的真明白
一系列RNN课程看下来醍醐灌顶,实在是太清楚了
大爱老师,这么好的课程尽然不火,真是天理难容
第一次这么清楚的理解!太感谢您啦!
每次这块儿理论忘了,理不清的时候就来刷一遍视频。真的好。谢谢Mr.Wang
看过很多机器学习的视频课程,王老师是讲的最详细的,谢谢,点赞。
好像transformer里既有用到self-attention,又有用到attention,attention是用在encoder输出的结果喂给decoder那部分,因为这时候q来自decoder,k和v来自encoder。
更新:看完整个视频,好像视频23:43里也是这么说的
讲得太清楚了! 从RNN跟着一遍这些都懂了, 接下来就是做项目实践了哈哈. 感谢老师!
感谢老师的视频. 先去看的论文, 发现难以理解. 老师从背后的设计思想出发, 结合了设计思想的发展历史, 一切显得这么自然. 茅塞顿开!
这集真的好漫长,生怕稍一个不注意就错过了一个要点。讲的太清楚了
Amazing, first time to see it clearly explains how the attention mechanism aij is related to the K, Q, V
老师谢谢你仔细的讲解。我有两点不是很明白想向老师求教。 1. 在两个 RNN + Att和 Att only中 k 和v 分别= h* W(RNN +Att) 和 x*W (Att only)所以区别就在于 h和x。 在RNN中h包含了前文的信息。而x只是单个词的信息。那么上文词的信息在 Att only中会不会遗失。 2. 在Att only中decoder的第一个输入 x1'是不是必须是 开始符号 @Shusen Wang
王老师功德无量
讲得很好!希望可以做到你这样清楚流畅
厉害,希望professor你能多发这样的视频!
如果每个Cj‘都内涵了全部X1,X2...Xj信息,那么其输入端再加上X1’,X2‘。。。Xj’,是不是翻译结果更确定更好呢?换句话说,在DECODE端每一个预测新的单词时,不仅仅看到原文全部信息,还加上已经翻译输出的内容,是不是会对后续预测结果更加准确?
另外,好想看看W参数矩阵里,经过学习,到底放了什么,长什么样子啊?
讲得太好了,Dr. Wang,yyds!
这回真的懂了,太感谢了!
讲的太好了!
之前都视频attention里面没有提到过value,我有点不是太懂。
讲的非常清楚
常看常新,忘了就回来复习一下
条理清晰,赞
棒,很清晰。
非常清楚和natural
清晰明了,赞
谢谢老师,讲的真清楚。
讲的实在太好了 内牛满面
NLP小白请问一下20:33处PPT的 RNN‘s inputs是不是写错了呀,这里不是without RNN吗?应该就是self-attention层inputs?
另外王学长讲的很好~同浙大同胞帮顶!
是的,我写错了。多谢指正!
老师讲得太好了,谢谢😊
麻烦问一下14.04处decoder的输入不应该是德语的下一个单词的真实值么,为什么这里是下一个单词的预测值呢
王老师讲的太好了
王老师,我们需要你。要是多出一些视频就好了
感谢老师的精彩讲解,想请问下老师的PPT是怎么制作的呢?感觉可视化部分非常直观!
请问self attention为什么有两个输入矩阵X呢?计算C的时候不是只需要一个x1,x2…xm的序列吗?
请问老师为什么说 c是向量v的加权“平均”,而不是加权求和呢
那就是transformer和普通seqtoseq的注意力区别就是v向量喽?
谢谢。讲得真好👍
老师可以讲讲Deformable DETR 和 TrackFormer吗
请问RNN和seq2seq有何区别?RNN不就是循环结构seq2seq吗?为何说他们不同呢?
点赞点赞!太强了!
讲的太棒了wang老师,但是还想请教一下 self-attention layer训练的原理应该是怎么样了
我没细讲训练。训练是用Transformer整体去做预测,预测的错误就是loss,然后用loss关于每一层求梯度,做梯度下降更新参数。后面的BERT视频稍微讲了一点训练。
Pytorch 文件中有提到 Mask 機制,針對 encode 以及 decode 都可以從老師您的投影片很直觀的理解,但是 memory mask 要如何理解呢?
请教一下,之前的attention for seq2seq 就没有value,这里突然就冒出来了value,能否解释一下?
应该是transformer里用到了吧,value就是原来的seq2seq里的h再transform一下
谢谢 真牛
请问王老师,关于Attention is all you need这篇论文,为什么要剥离RNN呢,这样做有什么好处?是因为没有Recurrent就可以更有利于并行计算吗?
还有,如果剥离了RNN,那么计算相关性的时候就没有能够包含全部词语信息的状态向量h了,剥离之后是直接通过输入的词向量序列通过Wk Wv Wq取得的相关性和Context Vector,这样剥离之后是怎么达到和Self-Attention中一样的效果呢?
好处一个是加速并行计算,另一个是机器翻译的实验效果更好。
即使不用RNN,输出的c向量还是跟所有的输入相关。你可以看一下这个:
github.com/wangshusen/DRL/blob/master/Notes_CN/chp16.pdf
@@ShusenWang 不用RNN,输出的c向量确实和所有的输入相关。但是在RNN中,词向量是按顺序输入进来的,因此保留了词与词之间的位置信息。如果剥离RNN,是不是就失去了这个位置编码?比如第一个输入是"Tommy bought Jimmy an apple",第二个输入是"Jimmy bought Tommy an apple "。这两句话的主语和宾语正好相反,因为h向量的存在RNN就会看做是不同的。但是剥离掉RNN之后的Self-Attention层是怎么区分词序的呢?如果Attention层不能考虑词序的话,效果还能比RNN+Attention好,是如何达到的呢?
您的文章中说“只用注意力机制居然表现更好,在机器翻译等任务上效果有大幅提升”,是不是指Transformer的效果会比RNN+注意力机制的效果更好,而不是指一个浅层的单头注意力层的效果比RNN+注意力机制的效果更好呢?
我的理解是,因为去掉了RNN层,虽然弱化了词序信息,但是因为可以更好地实现并行计算,所以可以搭建更深的深度神经网络,因此可以充分利用语料提取更为抽象的信息,效果对比浅层RNN+Attention就有了显著提升。。我的理解是不是出现了偏差呢?谢谢老师
@@jarorkwong8042
1. Attention本身确实没有位置编码,而Transformer会做位置编码,有一些技巧。我在课里面没有讲到。
2. RNN+Attention也可以是深层的。我相信在Transformer出现之前肯定有人试过,大公司不缺计算资源。要是深层RNN+Attention能有特别好的效果,早就是大新闻了,未必有后来Transformer什么事。
@@ShusenWang 原来Transformer里面的学问这么深,谢谢王老师的耐心解惑~
王老师在外网用中文开课 功德无量啊 O(∩_∩)O哈哈~
你是天才.
赞
十分感谢
Mark一下,强烈推荐
请问下,decoder层的xt不是依次按顺序生成的吗?在还没有生成的情况下,怎么做self-attention呢?
是按顺序的。比如做机器翻译的时候,把当前所有的作为输入,预测下一个词。然后把已有的和新生成的词一起作为输入,再预测下一个词。
@@ShusenWang 所以对decoder的self-attention来说,比如只预测了两个单词,那么只对这两个单词做self-attention,是吗?
@@chenxuyuan7567 是的,机器翻译是这样做的
@@ShusenWang 明白啦 感谢老师!
真是一种享受啊
好
请问王老师有没有办法做一个英文的版本?听中文实在听不懂术语。谢谢!
我刚上传英文的了。不过有点晚了。。。。
@@ShusenWang Much appreciated!
UP讲的很好,但刚起步似乎关注的人不是很多。有考虑过将视频搬到b站上去吗?
多谢~ 国内社交平台是非太多了,动不动就把人挂出来diss。我不往墙内发了。别人想转发就随便转吧。
@@ShusenWang emmm科技区可能没这种事情,b站环境还可以。如果您同意的话,我把你这边的都打包发到b站可以吗。反正传上去也不用维护啥的,就当传播一下知识。
@@ShusenWang 搜了一下,发现已经有同僚搬运了,虽然老实说看的人还是不多吧,但反馈还是可以的。
@@nullllun7124 一开始都这样,正常~
老师有源码可以分享吗?
Wonderful!
讲的nice,我看完以后有个地方不是很明白,拿视频里机器翻译的例子,第一个问题是:如果当前处于训练阶段,attention得到context向量矩阵之后,那么这个context矩阵接下来应该怎么利用
context vectors相当于从文本中提取的特征。Decoder网络用context vectors来做翻译。下面一个视频里有讲。
顶
建议大家移步王木头的Transformer
please make the video lectures in English. your lectures are of first class. please please.
我看谁踩
有点念经,其他都很好
讲的真好,谢谢!