黴黴 vs AI:誰的歌詞寫的更好

AI科技大本營發表於2018-12-22

翻譯 | AI科技大本營(rgznai100)
參與 | Shawn

從小到大我一直都是Taylor Swift的死忠粉。上初中時,我的 iPod Nano 裡播放最多的就是《Speak Now》。還記得上大二時,我趁著爸媽在睡覺,偷偷在 Tumblr 上熬夜尋找《Red》的 小樣,因為我當時買不起這張專輯。

上週黴黴放出了新專輯《Reputation》的首支單曲,為了第一時間聽到,作為死忠粉的我苦苦熬了好幾天夜。但是當《shattering YouTube records》放出《Look What You Made Me Do》時,我有點……失望。Guys,別誤會我,我還是聽了至少 20 遍。但是黴黴一貫動人的歌詞和好聽的旋律哪去了?這首歌怎麼充滿了仇恨和復仇呢?

上週,我想看看機器學習(ML)能否拯救一下黴黴的歌?我將黴黴所有歌的歌詞輸入到一個迴圈神經網路(RNN)中,並取樣了一些新歌詞。以下就是我得到的結果(一點也沒改,直接從複製貼上的):

  黴黴 vs AI:誰的歌詞寫的更好

                                                                                   歌詞1

                         黴黴 vs AI:誰的歌詞寫的更好
                                                                                     歌詞2
上圖是機器直接生成的兩首樣本歌,每首大約 900 個單詞。
讀了這些生成的歌詞,我的結論是黴黴絕對比機器學習寫得更好。這些生成的歌詞語法怪異,而且很多單詞都拼錯了,大部分句子根本講不通,雙括號或引號有時都沒閉上。但是,RNN 能夠通過逗號、行長度和斷行學習歌詞結構,這點讓我挺驚訝!
另外,我還用同一 RNN 生成了可能的歌曲名稱。以下是 ML 生成的《Reputation》專輯歌曲的名稱:
Go won’t hit me there
Your love through all
We said to be better
Walls if miles
No conversation
I should ever say that
I don’t wanna see the way
I don’t leave you here
You want to me
And we say how I just
Anything a good taft
Love there on more

“Anything a good taft?”聽起來有些怪啊。但是還是有些能夠打動我的歌詞,如 “Your love through all” 或“I don’t wanna see the way”。

技術說明
我復刻了 Andrej Karpathy 的 char-RNN(https://github.com/karpathy/char-rnn)的一個 Tensorflow 應用。.txt file(https://github.com/irenetrampoline/taylor-swift-lyrics/blob/master/all_tswift_lyrics.txt)裡面是Taylor Swift的歌詞,這是我從網上找到的。
在這裡可以獲取我所使用的程式碼

https://github.com/shreyashankar/char-rnn-tensorflow

我使用的是基於長短期記憶網路(LSTM)的模型,層數為 3 層,隱藏狀態大小為12。我用到了 Dropout,不過沒做任何超引數測試,所以模型還有很大的提升空間。

原文地址

https://medium.com/towards-data-science/https-medium-com-sh-reya-taylor-swift-or-artificial-intelligence-19f2989ab7a4

相關文章