蘆陽加入菜鳥也才僅僅四個月,這是他第一次參加雙11備戰。做爲一名新員工,用原創嘻哈歌曲慶祝雙11的形式可謂獨一無二。人工智能和雙11也成爲MusicGo的第一個主打的主題曲。git
今年的雙11很是有科技感,蘆陽就給MusicGo餵食了很多體現雙11科技的文章,好比菜鳥智慧物流、阿里雲、天巡機器人、智能客服等關鍵詞,加上修飾韻腳,20分鐘後,一首《天貓雙11有嘻哈》就出爐了。app
你們來感覺下:函數
其實,今年雙11里人工智能已經悄然成爲了狂歡節的新興「職業」。不只50%的後臺故障修復由智能機器人負責,超級機器人倉羣和一天內350萬的客戶量都是由智能機器人和「店小蜜」來完成的,能夠說今年阿里雙11開啓了人際協同時代的新篇章。學習
這款蘆陽利用業餘時間編寫的人工智能程序MusicGo,能夠分析Hip-hop的歌詞,將歌詞進行分詞以及拼音解析,從而進一步獲取每一個詞的韻腳,造成龐大的分詞詞庫,扔進去一個詞就能出來不少押韻的相關詞彙。
阿里雲
今天,阿里妹也邀請到了做者蘆陽,請他來聊聊MusicGo的實現原理。其實沒有你想象的那麼難哦~人工智能
蘆陽:把AI寫歌兒這個事兒抽象起來看,實際上是有一個模型,或者更通俗一點講,是有一個函數。就像Y=WX+B,給一個X,就能夠產出一個Y。因此,問題的關鍵是我如何抽象出這個函數,並使其儘量的精準。code
深度學習能夠作到的是抽象模型。舉例,我給出一段序列A做爲X,給出一段序列B做爲Y,它會經過不斷的有監督學習從而得到函數Y=WX+B。接着,我又給出一段序列C做爲X,給出一段序列D做爲Y,它經過調整函數的參數盡力去知足A->B && C->D。當學習的量達到必定階段的時候,模型也就基本可用了。cdn
所以,我最終想要的效果是,一個比較合理的模型。這個模型能夠作到,我給一個序列X,它能夠去生成序列Y1,同時生成隱狀態H1。接着,用Y1以及H1做爲輸入,繼續生成Y2和H2,以此類推。最終達到所定義序列長度標準。blog
步驟爲:ip
1. 收集歌詞
2. 對歌詞進行預處理,去除標點符號、特殊字符
3. 不斷訓練seq2seq模型
4. 使用模型產出歌詞
收集歌詞
我用Python爬取了XX音樂上的Hip-hop歌單,分析rapper如何押韻,收集到了幾萬首嘻哈歌詞。
數據預處理
原始的歌詞由於都是網友們上傳上去的,因此格式並不徹底統一,並且還會有一些非主流符號。所以,須要把全部歌詞都進行一樣的預處理,過濾了標點符號、特殊字符,寫入到文件中,目的是使剩下的文本足夠的整潔。
訓練模型
首先是創建LSTM模型。
根據傳入的引狀態initial_state與序列inputs_split,執行rnn的decoder得到輸出outputs_split。
把輸出用softmax層處理,獲得logits,與本來要學習的文本訓練targets,計算總損失函數值total_loss。
循環去學習feed的文本,不斷調整模型,下降損失函數值。
生成模型過程:
將足夠知足目標的結果模型保存下來,後續就能夠用該模型去生成序列了。
產出歌詞
用上述產生的模型生成嘻哈歌曲,結果不太理想,給人的感受是有點兒亂。由於嘻哈歌曲自己寫的東西都比較雜,而且因爲時間緣由,我也沒訓練模型過久,損失函數值不足夠低,致使最後生成的歌曲,更雜了。
調整思路
同時,還有個問題:嘻哈有了,「雙11」和「智能」呢?我就是讓模型學一生嘻哈,它也寫不出雙11和人工智能的東西,由於市面上並無同類型歌曲。所以,我決定回到原點,改變想法,目標導向。
用「人工智能」、「雙11」、「阿里雲」、「阿里小蜜」、「菜鳥機器人」等關鍵詞去爬科技類文章來feed模型,模型學會產出雙十一智能等相關的句子。同時,用嘻哈的句式長度去約束它,產出嘻哈歌曲。最後挑一些句子,加一點「韻腳」,就做爲詞了。
人工修正智能
固然,用程序跑出的詞,和人工寫成的做品仍有些誤差。所以,我對機器自動生成的歌曲句式進行調整,使其更通順(手動捂臉)。
天貓雙11有嘻哈
(歌詞節選)
又來到一年 雙11
讓我買買買 花光全部力氣
又來到這一年雙11
讓我把指揮權交給智能機器
黑科技改變生活
打破包圍咱們地域的封鎖
智能的技術鏈接你我
點亮雙11 夜裏萬家燈火
Yeah太多沒法計算的價值
成千上萬訂單在指尖飛馳
Yeah太多沒法計算的價值
阿里雲讓全部訂單在雲端飛馳
阿里小蜜 會語音文字圖像識別
學習能力 所有一全年都在線
人海戰術 全被科技改變
好用又百變 用戶捨不得說再見
還有機器人總動員在菜鳥倉庫上演
累計足夠智能 它們開始掌握主動權
揀選打包 順利通關
從杭州到東莞
從上海到中原
今年雙11,做爲工程師的你,在購物車裏放了哪些必敗單品?是心心念唸的機械鍵盤、降噪耳機、無人機,仍是爲愛人買的暖心手套、明星同款口紅?歡迎在留言區一塊兒分享交流~
原文發佈時間爲:2017-11-9
本文做者:蘆陽
本文來自雲棲社區合做夥伴「阿里技術」