Seq2Seq模型
Seq2seq(Sequence to sequence)模型,是將序列(Sequence)映射到序列的神經網絡機器學習模型。這個模型最初設計用於改進機器翻譯技術,可容許機器通過此模型發現及學習將一種語言的語句(詞語序列)映射到另一種語言的對應語句上。[1]除此之外,Seq2Seq也能廣泛地應用到各種不同的技術上,如聊天機械人、Inbox by Gmail等,但需要有配對好的文本集才能訓練出對應的模型。[2]
Seq2seq是用於自然語言處理的一系列機器學習方法。[3]應用領域包括機器翻譯,圖像描述,對話模型和文本摘要。[4]
歷史
[編輯]在2019年, Facebook宣佈其用於求解微分方程。 相比 Mathematica,MATLAB 和 Maple等商業解決方案,該算法能夠更快更精準的解決複雜方程。首先,方程被解析為樹形結構來避免書寫方式帶來的偏差。 之後應用一個LSTM神經網絡,基於標準模式識別來處理方程樹。[5]
在2020年,谷歌發佈了Meena,一個在341GB數據集上訓練的26億參數的seq2seq聊天機械人。谷歌稱,該聊天機械人的模型容量比OpenAI的GPT-2多出1.7倍.[6]
技術
[編輯]Seq2seq將輸入序列轉換為輸出序列。它通過利用循環神經網絡(遞歸神經網絡)或更常用的LSTM GRU網絡來避免梯度消失問題。當前項的內容總來源於前一步的輸出。Seq2seq主要由一個編碼器和一個解碼器組成。 編碼器將輸入轉換為一個隱藏狀態向量,其中包含輸入項的內容。 解碼器進行相反的過程,將向量轉換成輸出序列,並使用前一步的輸出作為下一步的輸入。[4]
優化包括:[4]
- 注意力機制:解碼器的輸入只有一個單獨的向量,這個向量包含輸入序列的全部信息。注意力機制允許解碼器有選擇的分塊地使用輸入序列的信息。
- 束搜索,而不是選擇單一的輸出(文字)作為輸出、多極有可能選擇是保留,結構化作為一個樹(使用 Softmax 上設置的注意力的分數[7])。 平均編碼器國家加權關注的分佈。
- 存入桶:變序列長度是可能的,因為填補0,這可以做到的輸入和輸出。 然而,如果的序列長度為100和輸入只有3項長、昂貴的空間被浪費。 桶可以不同規模和指定的輸入和輸出的長度。
相關的軟件
[編輯]採用類似的算法的軟件包括OpenNMT(Torch),Neural Monkey(TensorFlow)和NEMATUS(Theano)。[2]
參考
[編輯]參考文獻
[編輯]- ^ Li, Zuchao and Cai, Jiaxun and He, Shexia and Zhao, Hai, Seq2seq dependency parsing, Proceedings of the 27th International Conference on Computational Linguistics, 2018: 3203––3214
- ^ 2.0 2.1 Overview - seq2seq. google.github.io. [2019-12-17]. (原始內容存檔於2019-09-25).
- ^ Sutskever, Ilya; Vinyals, Oriol; Le, Quoc Viet. Sequence to sequence learning with neural networks. 2014. arXiv:1409.3215 [cs.CL].
- ^ 4.0 4.1 4.2 4.3 Wadhwa, Mani. seq2seq model in Machine Learning. GeeksforGeeks. 2018-12-05 [2019-12-17]. (原始內容存檔於2019-12-17) (美國英語).
- ^ Facebook has a neural network that can do advanced math. MIT Technology Review. December 17, 2019 [2019-12-17]. (原始內容存檔於2019-12-27) (美國英語).
- ^ Mehta, Ivan. Google claims its new chatbot Meena is the best in the world. The Next Web. 2020-01-29 [2020-02-03]. (原始內容存檔於2020-01-30) (美國英語).
- ^ 7.0 7.1 Hewitt, John. Sequence 2 sequence Models (PDF). Stanford University. 2018. (原始內容存檔 (PDF)於2019-12-17).
外部連結
[編輯]- A ten-minute introduction to sequence-to-sequence learning in Keras. blog.keras.io. [2019-12-19]. (原始內容存檔於2018-05-18).
- Dugar, Pranay. Attention — Seq2Seq Models. Medium. 2019-11-24 [2019-12-19]. (原始內容存檔於2020-09-12) (英語).
- Nag, Dev. seq2seq: the clown car of deep learning. Medium. 2019-04-24 [2019-12-19]. (原始內容存檔於2019-12-19) (英語).
- Adiwardana, Daniel; Luong, Minh-Thang; So, David R.; Hall, Jamie; Fiedel, Noah; Thoppilan, Romal; Yang, Zi; Kulshreshtha, Apoorv; Nemade, Gaurav; Lu, Yifeng; Le, Quoc V. (2020-01-31). "Towards a Human-like Open-Domain Chatbot". arXiv:2001.09977 [cs.CL].