NLP(四):ConvS2S
2019/04/02
-----
Fig. ConvS2S(圖片來源:Pixabay)。
-----
Outline
1. ConvS2S
2. I/O Embedding
3. Padding and Mask
4. GLU
5. Encoder
6. Decoder
7. Multi-Hop Attention
8. Details
-----
「用 CNN 來做時間序列預測分析,是一個非常難的問題。在此之前,CNN 在圖像領域大放異彩,橫掃物體識別、檢測、分割等不同場景。即便是應用到自然語言處理中,也只是簡單的從 embedding 中提取相鄰幾個單詞的特徵,再加上 pooling 層,變成固定高層特徵輸入到分類器中。
背景:Kalchbrenner & Blunson (2013) 提出過從句子中提取出固定長度的 embedding,Cho 等人 (2014) 提出帶門的遞歸 CNN 用來重複的產生向量 representation,直到一定長度就停止。但是這些模型都沒有 RNN、LSTM、GRU 等的效果好,單純的使用卷積層提取特徵,對於時間序列來說,這對於把握住單詞前後的特徵特別難。隨著 CNN 的越來越成熟,發展出了新的特性,包括attention mechanism、residual connection 以及一些工程上的 tricks,使得 CNN 的表徵能力越來越強。
最近比較有突破的進展如下。 Kalchbrenner 等人 (2016) 已經開始使用 CNN 模型應用到翻譯任務中,但是沒有使用 attention 機制,結果沒有達到預期。 Pham 等人 (2016) 將 CNN 成功用於語言模型,即便沒有超過 LSTM。
最新成果:自然語言處理包括眾多領域,機器翻譯、語言模型、NER、POS、QA 問答、多輪對話等,RNN 及其變種都取得了非常大的成功。然而,Facebook 一直堅持將 CNN 用於這些任務中,不得不說是工業界及學界的一股清流。最近的幾篇論文也非常有意思,先說結果。
第一篇叫 A convolutional encoder model for neural machine translation,去年11月份發的,採用了非常多的技巧,1. 加上 position embedding,解決單詞位置信息;2. 每層卷積的輸出都要加上其輸入,即殘差連接;3. attention 機制的使用,encoder 最後是兩個 stacked 卷積層,一個負責 encoder 的輸出,另一個負責 conditional input。」。
# 如何评价 Facebook 新推出的 CNN 机器翻译项目 Fairseq? - 知乎
-----
2. I/O Embedding
-----
Weight Matrix of Word2vec
https://mc.ai/deep-nlp-word-vectors-with-word2vec/
圖四、1-hot Encoding to Vector。
-----
3. Padding and Mask
-----
-----
4. GLU
-----
# GLU 論文 [2]。
-----
6. Decoder
-----
https://reniew.github.io/44/
-----
-----
在五篇 NLP 的經典論文中,比起之前的 LSTM、Seq2seq、Attention,以及稍後的 Transformer,這篇 ConvS2S 無疑是被低估的,引用次數也只有數千,不像其他動輒上萬。
◎ 論文
[1] ConvS2S
[2] GLU
-----
◎ 英文參考資料
# 論文作者的投影片
2_1-Yarats
https://aiukraine.com/wp-content/uploads/2017/10/2_1-Yarats.pdf
# 綜述
Understanding incremental decoding in fairseq – Telesens
http://www.telesens.co/2019/04/21/understanding-incremental-decoding-in-fairseq/
claps
Seq2Seq model using Convolutional Neural Network – Gautam Karmakar – Medium
https://medium.com/@gautam.karmakar/summary-seq2seq-model-using-convolutional-neural-network-b1eb100fb4c4
-----
◎ 日文參考資料
論文解説 Convolutional Sequence to Sequence Learning (ConvS2S) - ディープラーニングブログ
http://deeplearning.hatenablog.com/entry/convs2s
fairseq – PyTorch
http://torch.classcat.com/category/fairseq/
-----
◎ 韓文參考資料
ConvS2S Convolutional Sequence to Sequence Learning
https://reniew.github.io/44/
Convolutional Sequence to Sequence Learning
https://norman3.github.io/papers/docs/fairseq.html
Convolutional Sequence to Sequence Learning
http://jeonseoungseon.blogspot.com/2017/06/convolutional-sequence-to-sequence.html
-----
◎ 簡體中文參考資料
从《Convolutional Sequence to Sequence Learning》到《Attention Is All You Need》 - 知乎
https://zhuanlan.zhihu.com/p/27464080
《Convolutional Sequence to Sequence Learning》阅读笔记 - 知乎
https://zhuanlan.zhihu.com/p/26918935
机器翻译模型之Fairseq:《Convolutional Sequence to Sequence Learning》 - 技术成长笔记 - CSDN博客
https://blog.csdn.net/u012931582/article/details/83719158
如何使用fairseq复现Transformer NMT _ Weekly Review
http://www.linzehui.me/2019/01/28/%E7%A2%8E%E7%89%87%E7%9F%A5%E8%AF%86/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8fairseq%E5%A4%8D%E7%8E%B0Transformer%20NMT/
如何评价 Facebook 新推出的 CNN 机器翻译项目 Fairseq - 知乎
https://www.zhihu.com/question/59645329
论文笔记(1) ConvS2S Convolutional Seq to Seq Learning - 知乎
https://zhuanlan.zhihu.com/p/60524073
-----
◎ 繁體中文參考資料
論文筆記 Convolutional Sequence to Sequence Learning _ Y.C. Tseng’s Site
https://ycts.github.io/weeklypapers/convSeq2seq/
-----
◎ 代碼實作
convs2s — OpenSeq2Seq 0.2 documentation
https://nvidia.github.io/OpenSeq2Seq/html/api-docs/parts.convs2s.html
GitHub - hongweizeng_cnn-seq2seq
https://github.com/hongweizeng/cnn-seq2seq
XSum_XSum-ConvS2S at master · EdinburghNLP_XSum · GitHub
https://github.com/EdinburghNLP/XSum/tree/master/XSum-ConvS2S
GitHub - BruceChaun_NMT Neural Machine Translation with RNN_ConvS2S_Transoformer
https://github.com/BruceChaun/NMT
GitHub - tobyyouup_conv_seq2seq A tensorflow implementation of Fairseq Convolutional Sequence to Sequence Learning(Gehring et al. 2017)
https://github.com/tobyyouup/conv_seq2seq
GitHub - pytorch_fairseq Facebook AI Research Sequence-to-Sequence Toolkit written in Python
https://github.com/pytorch/fairseq
GitHub - facebookresearch_fairseq Facebook AI Research Sequence-to-Sequence Toolkit
https://github.com/facebookresearch/fairseq
No comments:
Post a Comment