🕷️ Crawler Inspector

URL Lookup

Direct Parameter Lookup

Raw Queries and Responses

1. Shard Calculation

Query:
Response:
Calculated Shard: 46 (from laksa153)

2. Crawled Status Check

Query:
Response:

3. Robots.txt Check

Query:
Response:

4. Spam/Ban Check

Query:
Response:

5. Seen Status Check

ℹ️ Skipped - page is already crawled

📄
INDEXABLE
CRAWLED
4 months ago
🤖
ROBOTS SERVER UNREACHABLE
Failed to connect to robots server: Connection timed out after 2002 milliseconds

Page Info Filters

FilterStatusConditionDetails
HTTP statusPASSdownload_http_code = 200HTTP 200
Age cutoffPASSdownload_stamp > now() - 6 MONTH4.6 months ago
History dropPASSisNull(history_drop_reason)No drop reason
Spam/banPASSfh_dont_index != 1 AND ml_spam_score = 0ml_spam_score=0
CanonicalPASSmeta_canonical IS NULL OR = '' OR = src_unparsedNot set

Page Details

PropertyValue
URLhttps://www.cnblogs.com/huangyc/p/10152296.html
Last Crawled2025-11-18 16:40:33 (4 months ago)
First Indexed2019-05-06 02:56:21 (6 years ago)
HTTP Status Code200
Meta TitleFacebook的Fairseq模型详解(Convolutional Sequence to Sequence Learning) - hyc339408769 - 博客园
Meta Description1. 前言 近年来,NLP领域发展迅速,而机器翻译是其中比较成功的一个应用,自从2016年谷歌宣布新一代谷歌翻译系统上线,神经机器翻译(NMT,neural machine translation)就取代了统计机器翻译(SMT,statistical machine translation),在翻译
Meta Canonicalnull
Boilerpipe Text
近年来,NLP领域发展迅速,而机器翻译是其中比较成功的一个应用,自从2016年谷歌宣布新一代谷歌翻译系统上线,神经机器翻译(NMT,neural machine translation)就取代了统计机器翻译(SMT,statistical machine translation),在翻译质量上面获得了大幅的提高。目前神经机器翻译模型主要分为三种: 一种是以rnn为基础的模型, 一般是LSTM+attention,顺序处理输入信息。 一种是以cnn为基础的模型,今天要讲的Fairseq就属于这种 一种是完全依靠attention的模型,如谷歌的transformer Fairseq 这个翻译模型由Facebook AI实验室在2017年提出,和以往以RNN为基础的翻译模型相比,采用了以cnn为主的模型结构。 RNN的链式结构,能够很好地应用于处理序列信息。但是,RNN也存在着劣势:一个是由于RNN运行时是将序列的信息逐个处理,不能实现并行操作,导致运行速度慢;另一个是传统的RNN并不能很好地处理句子中的结构化信息,或者说更复杂的关系信息。 相比之下,CNN的优势就凸显出来。文章提到用CNN做seq-seq这种翻译任务有3个好处: 通过卷积的叠加可以精确地控制上下文的长度,因为卷积之间的叠加可以通过公式直接计算出感受野是多少,从而知道上下文的长度,RNN虽然理论上有长时记忆的功能,但是在实际的训练过程中,间隔较远的时候,很难学到这种词与词之间的联系。 卷积可以进行并行计算,而RNN模型是时序的,只有前一帧得出结果才能进行后续的计算。 对于输入的一个单词而言,输入CNN网络,所经过的卷积核和非线性计算数量都是固定的,不过对于输入RNN的单词而言,第一个单词要经过n次unit的计算和非线性,但是最后一个单词只经过1次,文章说固定队输入所施加的非线性计算会有助于训练。 模型结构如下图所示: 3.1 Position Embedding 输入除了词向量之外,还加入了位置信息,最后的输入向量为词向量加上位置向量。 词向量: \(w=(w_1,w_2,...w_n)\) 位置向量: \(p=(p_1,p_2,...p_n)\) 最终输入的向量: \(e=(w_1+p_1,w_2+p_2,...w_n+p_n)\) 3.2 Convolutional Block Structure encoder 和 decoder 都是由l层卷积层构成,encoder输出为 \(z^l\) ,decoder输出为 \(h^l\) 。由于卷积网络是层级结构,通过层级叠加能够得到远距离的两个词之间的关系信息。 这里把一次“卷积计算+非线性计算”看作一个单元Convolutional Block,这个单元在一个卷积层内是共享的。 卷积计算:卷积核的大小为 \(W^{kd*2d}\) ,其中 \(d\) 为词向量长度, \(k\) 为卷积窗口大小,每次卷积生成两列 \(d\) 维向量 非线性计算:非线性部分采用的是门控结构 gated linear units(GLU)。 encoder的残差连接:把当前层的输入与输出相加,残差的和输入到下一层conv_block网络中。 \[h_i^l=v(W^l[h_{i-\frac{k}{2}}^{l-1},...,h_{i+\frac{k}{2}}^{l-1}]+b^l_w)+h_i^{l-1} \] decoder的残差连接:首先把当前层的输出和encoder的输出做attention计算,结果记为 \(c_i\) , 再将当前层的输出和 \(c_i\) 相加, 再将结果和当前层的输入相加,最后的残差的和输入到下一层conv_block网络中。 \[h_i^l=[v(W^l[h_{i-\frac{k}{2}}^{l-1},...,h_{i+\frac{k}{2}}^{l-1}]+b^l_w)+c_i]+h_i^{l-1} \] 输出:decoder的最后一层卷积层的最后一个单元输出经过softmax得到下一个目标词的概率。 3.3 Multi-step Attention 原理与传统的attention相似,attention权重由decoder的当前输出 \(h_i\) 和encoder的的所有输出 \(z_i\) 共同决定,利用该权重对encoder的输出进行加权,得到了表示输入句子信息的向量 \(c_i\) , \(c_i\) 和 \(h_i\) 相加组成新的 \(h_i\) 。计算公式如下: \[d^l_i=W^l_dh^l_i+b_d^l+g_i \] \[a^l_{ij}=\frac{exp(d_i^lz_j^u)}{\sum_{j=1}^mexp(d_i^lz_j^u)} \] \[c^l_{i}=\sum_{j=1}^ma_{ij}^l(z_j^u+e_j) \] 这里 \(a_{ij}^l\) 是权重信息,采用了向量点积的方式再进行softmax操作,这里向量点积可以通过矩阵计算,实现并行计算。 最终得到 \(c_i\) 和 \(h_i\) 相加组成新的 \(h_i\) 。如此,在每一个卷积层都会进行 attention 的操作,得到的结果输入到下一层卷积层,这就是多跳注意机制multi-hop attention。这样做的好处是使得模型在得到下一个主意时,能够考虑到之前的已经注意过的词。 将CNN成功应用于seq2seq任务中,发挥了CNN并行计算和层级结构的优势。CNN的并行计算明显提高了运行速度,同时CNN的层级结构方便模型发现句子中的结构信息。 同时模型中的一些细节处理,比如非线性部分采用的是门控结构 gated linear units(GLM),多跳注意机制multi-hop attention,都是模型效果提升的关键。
Markdown
[![](https://img2024.cnblogs.com/blog/35695/202511/35695-20251108062446442-726651367.jpg) ![](https://img2024.cnblogs.com/blog/35695/202511/35695-20251108062450387-2090760658.jpg)](https://www.juhe.cn/activity/detail/dataset?s=dataset-cnblog) [![](https://img2024.cnblogs.com/blog/35695/202510/35695-20251025102907236-509444921.jpg)](https://qoder.cnblogs.com/) - [![博客园logo](https://assets.cnblogs.com/logo.svg)](https://www.cnblogs.com/ "开发者的网上家园") - [会员](https://cnblogs.vip/) - [众包](https://www.cnblogs.com/cmt/p/18500368) - [新闻](https://news.cnblogs.com/) - [博问](https://q.cnblogs.com/) - [闪存](https://ing.cnblogs.com/) - [赞助商](https://www.cnblogs.com/cmt/p/19081960) - [HarmonyOS](https://harmonyos.cnblogs.com/) - [Chat2DB](https://chat2db-ai.com/) - [![写随笔](https://assets.cnblogs.com/icons/newpost.svg)](https://i.cnblogs.com/EditPosts.aspx?opt=1 "写随笔") [![我的博客](https://assets.cnblogs.com/icons/myblog.svg)](https://passport.cnblogs.com/GetBlogApplyStatus.aspx "我的博客") [![短消息](https://assets.cnblogs.com/icons/message.svg)](https://msg.cnblogs.com/ "短消息") [![简洁模式](https://assets.cnblogs.com/icons/lite-mode-on.svg)]("简洁模式启用,您在访问他人博客时会使用简洁款皮肤展示") [![用户头像](https://assets.cnblogs.com/icons/avatar-default.svg)](https://home.cnblogs.com/) [我的博客](https://passport.cnblogs.com/GetBlogApplyStatus.aspx) [我的园子](https://home.cnblogs.com/) [账号设置](https://account.cnblogs.com/settings/account) [会员中心](https://vip.cnblogs.com/my) [简洁模式 ...]("简洁模式会使用简洁款皮肤显示所有博客") [退出登录]() [注册](https://account.cnblogs.com/signup) [登录]() [![返回主页](https://www.cnblogs.com/skins/custom/images/logo.gif)](https://www.cnblogs.com/huangyc/) # [人工智站](https://www.cnblogs.com/huangyc) ## - [博客园](https://www.cnblogs.com/) - [首页](https://www.cnblogs.com/huangyc/) - [联系](https://msg.cnblogs.com/send/hyc339408769) - [订阅]() - [管理](https://i.cnblogs.com/) # [Facebook的Fairseq模型详解(Convolutional Sequence to Sequence Learning)](https://www.cnblogs.com/huangyc/p/10152296.html "发布于 2018-12-20 21:01") # 1\. 前言 近年来,NLP领域发展迅速,而机器翻译是其中比较成功的一个应用,自从2016年谷歌宣布新一代谷歌翻译系统上线,神经机器翻译(NMT,neural machine translation)就取代了统计机器翻译(SMT,statistical machine translation),在翻译质量上面获得了大幅的提高。目前神经机器翻译模型主要分为三种: 1. 一种是以rnn为基础的模型, 一般是LSTM+attention,顺序处理输入信息。 2. 一种是以cnn为基础的模型,今天要讲的Fairseq就属于这种 3. 一种是完全依靠attention的模型,如谷歌的transformer # 2\. Fairseq背景 Fairseq 这个翻译模型由Facebook AI实验室在2017年提出,和以往以RNN为基础的翻译模型相比,采用了以cnn为主的模型结构。 RNN的链式结构,能够很好地应用于处理序列信息。但是,RNN也存在着劣势:一个是由于RNN运行时是将序列的信息逐个处理,不能实现并行操作,导致运行速度慢;另一个是传统的RNN并不能很好地处理句子中的结构化信息,或者说更复杂的关系信息。 相比之下,CNN的优势就凸显出来。文章提到用CNN做seq-seq这种翻译任务有3个好处: 1. 通过卷积的叠加可以精确地控制上下文的长度,因为卷积之间的叠加可以通过公式直接计算出感受野是多少,从而知道上下文的长度,RNN虽然理论上有长时记忆的功能,但是在实际的训练过程中,间隔较远的时候,很难学到这种词与词之间的联系。 2. 卷积可以进行并行计算,而RNN模型是时序的,只有前一帧得出结果才能进行后续的计算。 3. 对于输入的一个单词而言,输入CNN网络,所经过的卷积核和非线性计算数量都是固定的,不过对于输入RNN的单词而言,第一个单词要经过n次unit的计算和非线性,但是最后一个单词只经过1次,文章说固定队输入所施加的非线性计算会有助于训练。 # 3\. 模型 模型结构如下图所示: ![image](https://note.youdao.com/yws/api/personal/file/WEB2c711b857a5821dc66ee8ee69337f57f?method=download&shareKey=84e3f7a3cca462dfcd5b839b759724c9) ![image](https://note.youdao.com/yws/api/personal/file/WEBe2d172d1450e0d0ddfd30a4930386903?method=download&shareKey=e30b2b5f3afc0bba7c88a26346ec2242) ## 3\.1 Position Embedding 输入除了词向量之外,还加入了位置信息,最后的输入向量为词向量加上位置向量。 词向量:\\(w=(w\_1,w\_2,...w\_n)\\) 位置向量:\\(p=(p\_1,p\_2,...p\_n)\\) 最终输入的向量:\\(e=(w\_1+p\_1,w\_2+p\_2,...w\_n+p\_n)\\) ## 3\.2 Convolutional Block Structure encoder 和 decoder 都是由l层卷积层构成,encoder输出为\\(z^l\\),decoder输出为\\(h^l\\)。由于卷积网络是层级结构,通过层级叠加能够得到远距离的两个词之间的关系信息。 这里把一次“卷积计算+非线性计算”看作一个单元Convolutional Block,这个单元在一个卷积层内是共享的。 - 卷积计算:卷积核的大小为\\(W^{kd\*2d}\\),其中\\(d\\)为词向量长度,\\(k\\)为卷积窗口大小,每次卷积生成两列\\(d\\)维向量 - 非线性计算:非线性部分采用的是门控结构 gated linear units(GLU)。 - encoder的残差连接:把当前层的输入与输出相加,残差的和输入到下一层conv\_block网络中。 \\\[h\_i^l=v(W^l\[h\_{i-\\frac{k}{2}}^{l-1},...,h\_{i+\\frac{k}{2}}^{l-1}\]+b^l\_w)+h\_i^{l-1} \\\] - decoder的残差连接:首先把当前层的输出和encoder的输出做attention计算,结果记为\\(c\_i\\), 再将当前层的输出和\\(c\_i\\)相加, 再将结果和当前层的输入相加,最后的残差的和输入到下一层conv\_block网络中。 \\\[h\_i^l=\[v(W^l\[h\_{i-\\frac{k}{2}}^{l-1},...,h\_{i+\\frac{k}{2}}^{l-1}\]+b^l\_w)+c\_i\]+h\_i^{l-1} \\\] - 输出:decoder的最后一层卷积层的最后一个单元输出经过softmax得到下一个目标词的概率。 \\\[p = softmax(Wh^L+b) \\\] ## 3\.3 Multi-step Attention 原理与传统的attention相似,attention权重由decoder的当前输出\\(h\_i\\)和encoder的的所有输出\\(z\_i\\)共同决定,利用该权重对encoder的输出进行加权,得到了表示输入句子信息的向量\\(c\_i\\),\\(c\_i\\)和\\(h\_i\\)相加组成新的\\(h\_i\\)。计算公式如下: \\\[d^l\_i=W^l\_dh^l\_i+b\_d^l+g\_i \\\] \\\[a^l\_{ij}=\\frac{exp(d\_i^lz\_j^u)}{\\sum\_{j=1}^mexp(d\_i^lz\_j^u)} \\\] \\\[c^l\_{i}=\\sum\_{j=1}^ma\_{ij}^l(z\_j^u+e\_j) \\\] 这里\\(a\_{ij}^l\\)是权重信息,采用了向量点积的方式再进行softmax操作,这里向量点积可以通过矩阵计算,实现并行计算。 最终得到\\(c\_i\\)和\\(h\_i\\)相加组成新的\\(h\_i\\)。如此,在每一个卷积层都会进行 attention 的操作,得到的结果输入到下一层卷积层,这就是多跳注意机制multi-hop attention。这样做的好处是使得模型在得到下一个主意时,能够考虑到之前的已经注意过的词。 # 4\. 总结 将CNN成功应用于seq2seq任务中,发挥了CNN并行计算和层级结构的优势。CNN的并行计算明显提高了运行速度,同时CNN的层级结构方便模型发现句子中的结构信息。 同时模型中的一些细节处理,比如非线性部分采用的是门控结构 gated linear units(GLM),多跳注意机制multi-hop attention,都是模型效果提升的关键。 posted @ 2018-12-20 21:01 [hyc339408769](https://www.cnblogs.com/huangyc) 阅读(10877) 评论(0) [收藏]() [举报]() [刷新页面](https://www.cnblogs.com/huangyc/p/10152296.html)[返回顶部](https://www.cnblogs.com/huangyc/p/10152296.html#top) [![](https://img2024.cnblogs.com/blog/35695/202511/35695-20251117210813881-1105685228.png)](https://www.cnblogs.com/cmt/p/19221803) ### 公告 [博客园](https://www.cnblogs.com/) © 2004-2025 [![](https://assets.cnblogs.com/images/ghs.png)浙公网安备 33010602011771号](http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=33010602011771) [浙ICP备2021040463号-3](https://beian.miit.gov.cn/)
Readable Markdownnull
Shard46 (laksa)
Root Hash10938660598884985246
Unparsed URLcom,cnblogs!www,/huangyc/p/10152296.html s443