各大音樂軟件都有本身的排行榜,大多數經過播放量、分享、下載等進行計算排名,那麼熱門歌曲是否是有必定的規律?是旋律優美,仍是歌詞感人?咱們看下Dorien是如何利用數據科學從不同的角度——音頻屬性預測熱門歌曲的。html
算法能夠預測熱門歌曲嗎?讓咱們來探索如何使用音頻特徵構建熱門歌曲分類器,正如個人文章Dance Hit Song Prediction所述(文末有連接)。
算法
在個人博士研究期間,我看到了Pachet&Roi(2008)的一篇題爲「熱門歌曲科學還不是一門科學」的論文。我以爲頗有趣,這使我開始探索是否能夠預測熱門歌曲。關於這個主題的研究很是有限,更完整的文獻綜述,請參閱Dance Hit Song Prediction(2014年)。咱們以爲該模型的有效性能夠經過專一於一個特定的流派來優化:舞曲。這對我來講是很直觀的,由於不一樣的音樂類型的熱門歌曲有着不一樣的特色。網絡
爲了進行熱門歌曲預測,咱們首先須要一個熱門歌曲/非熱門歌曲的數據集。熱門歌曲的列表是很好找的,但不熱門歌曲的列表卻很難找。所以,咱們決定改成對熱門列表中的高排名和低排名歌曲進行分類。咱們進行了一些實驗來看哪一種分割效果最好,如表1所示,這產生了三個數據集(D1,D2和D3):
dom
表1 - 來自Herremans等人的熱門數據集(2014年)ide
每一個數據集類的分佈都有略微的不平衡:性能
圖1 - Herremans等人的類分佈(2014年)測試
熱門歌曲列表的兩個來源是:Billboard(BB)和Original Charts Company(OCC)。下表顯示了收集的熱門歌曲數量。請注意,歌曲會在排行榜停留數週,所以獨特歌曲的數量要小得多:優化
表2 - 來自Herremans等人的熱門數據集(2014年)人工智能
如今咱們有了一個歌曲列表,還須要它們的音頻特徵。咱們使用The EchoNest Analyzer(Jehan和DesRoches,2012)來提取一些音頻特徵。這個漂亮的API容許咱們根據藝術家姓名和歌曲標題得到許多音頻特徵(Echo Nest由Spotify收購,現已集成到Spotify API中)。看看咱們提取了什麼:設計
包括持續時間,速度,時間戳,模式(主要(1)或次要(0)),Key,響度,可舞蹈性(由回聲巢計算,基於節拍強度,節奏穩定性,總體節奏等等,能量(由回聲巢計算,基於響度和段持續時間)。
因爲歌曲隨時間而變化,咱們根據Schindler&Rauber(2012)添加了許多時間上聚合的特徵。它們包括~1s段的平均值,方差,最小值,最大值,範圍和80百分位數。這是爲了如下特徵:
好噠!如今咱們有一個很好的音頻特徵集合,以及他們的頂部圖表位置。像任何一個好的數據科學項目應該開始同樣,讓咱們作一些數據可視化。咱們注意到的第一件事是點擊量隨時間變化。十年前的熱門歌曲不必定是今天的熱門歌曲。隨着時間的推移,當咱們將咱們的特徵形象化時,這就變得明顯了:
圖2 - Herremans等人的交互式氣泡圖。(2014)
有趣的是,咱們看到舞曲的熱門歌曲變得更短,更響亮,而且根據EchoNest的「舞蹈」特徵,不是那麼讓人能夠跳起舞來!
圖3 - Herremans等人隨時間推移的熱門特徵的演變(2014年)
有關特徵完整可視化,請查看我關於可視化熱門歌曲的簡短文章:
http://dorienherremans.com/sites/default/files/dh_visualiation_preprint_0.pdf
http://musiceye.dorienherremans.com/clustering.html
咱們探索了兩種類型的模型:可理解模型和黑盒模型。正如預料,後者更有效率,但前者讓咱們能夠深刻了解爲何一首歌能夠成爲熱門歌曲。
爲了使決策樹適合頁面,我將修剪設置爲高。這使得樹很小且易於理解,可是在D1上的AUC低至0.54。咱們看到只有時間特徵留下來了!這意味着他們必定很重要。特別是Timbre 3(PCA音色矢量的第三維)反映的重點(銳度),彷佛對預測熱門歌曲有影響。
圖4 - Herremans等人的決策樹(2014年)
使用RIPPER,能夠獲得一個與決策樹很是類似的規則集。Timbre 3再次出現。此次,咱們的AUC在D1上爲0.54。
表3 - Herremans等人的規則集(2014年)
樸素貝葉斯,Logistic迴歸,支持向量機(SVM)
有關這些技術的簡單描述,請參閱 Dance Hit Song Prediction
在進入結果以前,我應該強調在這裏使用通常分類「準確性」是沒有意義的,由於這些類是不平衡的(見圖1)。若是要使用準確性,則應該是特定於類的。這是一個常見的錯誤,但要記住這一點很是重要。所以咱們使用ROC和AUC和混淆矩陣來正確評估模型。
咱們得到了數據集1(D1)和數據集2(D2)的最佳結果,沒有特徵選擇(咱們在遺傳搜索中使用了CfsSubsetEval)。全部特徵在訓練前都已標準化。因爲D3在熱門和不熱門之間具備最小的「分裂」,所以這種結果是有意義的。整體而言,邏輯迴歸表現最佳。
表4 - Herremans等人的 AUC結果(2014年),有/沒有特徵選擇(FS)
看下面的ROC曲線,咱們看到模型優於隨機預言機(對角線)。
圖5 -來自Herremans等人的 Logistic迴歸的ROC (2014年)
經過查看混淆矩陣能夠看出分類準確性的細節,這代表正確識別不熱門的歌曲並不容易!可是,熱門的正確識別率可達68%。
表5-來自Herremans等人的 Logistic迴歸的混淆矩陣(2014年)
咱們還使用了按時間順序排列的「新」歌曲做爲測試集,而不是10折交叉驗證。這可讓性能進一步提高:
表6-來自Herremans等人的分裂與10倍CV的AUC (2014年)
有趣的是,該模型能夠更好地預測新歌。致使這種偏斜的緣由是什麼?也許它學會了預測趨勢是如何隨時間變化的?將來的研究應該着眼於,隨着時間的推移音樂偏好的演變。
僅關注音頻特徵,Dance Hit Song Prediction預測了,若是一首歌的AUC達到80%,將會進入熱門歌曲前10名。咱們能作得更好嗎?可能的!咱們在本研究中所看到的特徵是有限的,所以要經過使用低級和高級音樂特徵來擴展它,能夠實現更高的精度。此外,在後續研究中,我研究了社交網絡對熱門預測產生的重大影響(Herremans&Bergmans,2017)。
相關連接
https://towardsdatascience.com/data-science-for-hit-song-prediction-32370f0759c1
https://www.tandfonline.com/doi/abs/10.1080/09298215.2014.881888?casa_token=w0GGhjQd194AAAAA%3AV_YGtWJeIR869x4fYUfyyfFrPiCWhb56ddybPADsO9s9D-k8WaTZI4ADKxgILlufl3UbICsVZEWB5Q&journalCode=nnmr20
參考文獻
做者:Dorien Herremans博士 - dorienherremans.com,新加坡科技與設計大學助理教授,負責人工智能音樂和音頻實驗室。
本文選自:towardsdatascience
本文轉載自:TalkingData數據學堂
封面圖來源:pexels by Rene Asmussen
點此閱讀英文原文