Member-only story
教電腦寫作:AI球評——Seq2seq模型應用筆記(PyTorch + Python3)
對於一個non-native speaker來看,好像真的煞有其事(笑)。
Deep Learning 正夯,只要想要,幾乎任何應用都可以跟風深度一下;不過這些所謂的神經網路模型應用在近五年內最大的突破除了電腦視覺(Computer Vision)領域外,大概就是自然語言處理(Natrual Langauage Processing)了吧。其中,最火紅也最容易產品化的研究題目:機器翻譯,從2014年起就不斷有新奇的架構被提出來,從一開始的encoder-decoder,Sequence-to-Sequence with Attention,到最近Google的Attention is all you need,這些高大上的模型除了不斷修正原有架構的缺陷,在翻譯任務上達到更好的品質外,對於其他具有共通特性的語言問題也獲得了很大的進展。
身為一個文字愛好者,自然很好奇機器有沒有辦法勝任文字類的工作啦;上次嘗試了利用GAN來教電腦畫畫,這次的嘗試就是利用Seq2seq來教電腦寫作,過程完全不使用任何template或預先寫好的腳本。
- 本文的重點將會放在大概念解釋和應用嘗試,對於基礎理論及數學模型的介紹僅會蜻蜓點水;若是對於這個領域完整的學習有興趣可以參考Standford NLP with Deep Learning 課程或是台大陳縕儂老師的中文課程。
- 所有code和資料集都在Github上:https://github.com/gau820827/AI-writer_Data2Doc
Seq2seq 基本結構
Seq2seq,顧名思義就是Sequence to Sequence的縮寫,這個模型最一開始是應用在機器翻譯上 — — 給定一個句子(Sequence),輸出另一個句子(Sequence)(例如:輸入:這房間很熱,輸出:It is hot in this room.)。傳統的機率模型翻譯方式,需要對句子作許多規則解析和字句對齊,此外,不同的語言也需要由語言專家人工制定不同的相應經驗法則,一但語言切換,原有的系統若沒有隨之更換不同的規則,很難達到相同的效果。Seq2Seq的提出,一部分是為了解決這個問題:只要擁有足夠的訓練資料(配對過的文本),我們就可以讓機器自己學習不同語言間切換的特徵,並省去為各種類型語言制定各種特徵抽取的麻煩。