王振業(yè),葉成緒*,王文韜,楊 萍
(1.青海師范大學 計算機學院,青海 西寧 810008;2.青海師范大學 地理科學學院,青海 西寧 810008)
流行音樂作為當下人們文娛消費的產品之一,越來越受到人們的關注。根據速圖研究院研究報告指出,2013年到2018年中國的移動音樂市場呈現(xiàn)井噴的模式。在當今大數(shù)據的背景下,眾多的流行音樂聽眾在很大程度上能夠決定流行音樂的發(fā)展趨勢,這主要體現(xiàn)在眾多聽眾在各大音樂平臺上的諸如試聽、收藏、下載等行為對流行音樂的影響,這些影響反映出了聽眾對相應音樂的喜好和偏愛。針對流行音樂趨勢的預測,可以在海量用戶數(shù)據的基礎上,對聽眾的喜好和偏愛進行深層次的挖掘和分析來獲得。收集整合各大平臺的海量曲庫資源以及用戶行為,從而形成流行音樂大數(shù)據集,對該數(shù)據集進行特定屬性的精準分析,最終可以實現(xiàn)對流行音樂趨勢走向的精準把控,也實現(xiàn)了用戶喜好偏愛的聚合決定流行音樂的趨勢走向。
針對流行音樂趨勢走向的預測,國內外現(xiàn)在還鮮有研究,2016年阿里舉辦了音樂流行趨勢預測大賽開啟了該研究領域的大門。阿里音樂經過將近7年的發(fā)展和沉淀,如今已經擁有了將近百萬首的曲庫資源和數(shù)以億次的用戶試聽、收藏、下載等行為。通過對歷史用戶行為數(shù)據的分析,預測下一階段某些藝人或歌曲的播放量,從海量的數(shù)據中挖掘出未來的黑馬歌手,從根本上精準把控流行音樂的發(fā)展趨勢,是眾多音樂平臺的關注焦點。文中在阿里提供的用戶音樂數(shù)據2015年3月到2015年8月的歷史播放數(shù)據上,組合長短時記憶網絡(long short-term memory,LSTM)和注意力機制(attention mechanism)方法,構建LSTM-Attention預測模型,實現(xiàn)對2015年9月到2015年10月藝人播放量較為精準的預測。
對時間序列數(shù)據進行預測時,傳統(tǒng)的方法包括:支持向量機(support vector machine,SVM)、BP(back propagation)神經網絡以及循環(huán)神經網絡(recurrent neural network,RNN)等[1]。支持向量機最早是在20世紀90年代中期,由Cortes和Vapnik所提出的。當樣本規(guī)模較小、維度較高且樣本間呈非線性狀態(tài)時,SVM能夠充分發(fā)揮其自身優(yōu)勢來解決這些問題。
以VC(Vapnik-Chervonenkis dimension,VC)維理論與結構風險最小原理為基礎,SVM模型被建立起來[2]。通過有限的數(shù)據信息,SVM模型以期在模型的復雜程度和學習技巧、方法之間找到最佳平衡點,從而獲得極佳的泛化能力。
SVM的核心思想就是基于訓練集在樣本空間中找到一個超平面將不同類別的樣本分開。基于樣本空間E,SVM在尋找超平面時采用如下的方式來表述:
VTX+a=0
(1)
其中,V=(V1,V2,…,Ve) 為法向量,決定了超平面的方向;a代表位移發(fā)生的程度,SVM所尋求的超平面與(0,0)之間的距離由a所確定。經過推導后的SVM基本模型如下:
(2)
s.t.yi(VTX+a)≥1,i=1,2,…,m
SVM本身可以通過決策邊界的邊緣來控制模型的能力[3],同時,它在小樣本訓練集上能夠得到比其他算法好很多的結果。相較于其他模型,在對目標進行優(yōu)化時,SVM在確保分類準確率的基礎上,對模型的VC維進行降維,從而使得模型在整個樣本數(shù)據上的期望誤差得到了很好的控制,這種方法使得SVM對新鮮樣本具有很強的適應能力。然而不可忽視的是SVM本身所存在的缺陷:(1)SVM算法無法對大規(guī)模的樣本進行訓練;(2)SVM算法對于解決多分類問題存在困難;(3)SVM算法對缺失的數(shù)據敏感,對參數(shù)和核函數(shù)的選擇也很敏感。近年來有學者指出,在進行大規(guī)模時間序列預測問題上,SVM存在較為嚴重的過擬合現(xiàn)象。
循環(huán)神經網絡是一類用于處理序列數(shù)據的神經網絡。相對于深度神經網絡(deep neural network,DNN)、卷積神經網絡(convolutional neural networks,CNN),RNN的不同之處在于:它不僅考慮前一時刻的輸入,并且賦予了網絡對前面信息的一種“記憶”功能[4]。具體的表現(xiàn)形式為網絡會對前面的信息進行記憶并應用于當前輸出的計算中,即隱含層之間的節(jié)點不再是無連接的而是有連接,并且包括上一時刻隱含層的輸出。
RNN結構與傳統(tǒng)的前饋神經網絡不同,其存在記憶效應,正是這種記憶使得RNN網絡可以對上下文進行分析,具體到時間序列數(shù)據中,它可以做到對前后文數(shù)據的連接。然而,在實踐中RNN也存在不可避免的缺陷:無法實現(xiàn)對較長序列數(shù)據的記憶[5]。一個主要的原因是,RNN在訓練中很容易發(fā)生梯度爆炸和梯度消失。文獻[3]指出,利用RNN在進行時間序列數(shù)據的預測時,極易發(fā)生梯度消失現(xiàn)象,這導致訓練時梯度不能在較長的序列匯中一直傳遞下去,從而使得RNN無法捕捉到長距離的影響。
(1)長短時記憶網絡模型。
利用長短時記憶網絡來進行音樂時序數(shù)據的相關預測。長短時記憶(long short-term memory,LSTM)神經網絡模型是RNN的一種特殊變形,由瑞士人工智能實驗室Hochreiter & Schmidhuber(1997)提出,并在近期由Alex Grave進行了改良和推廣[6]。此處主要介紹2000年Gers改進后的LSTM算法。在傳統(tǒng)的RNN中,使用反向傳播算法(back propagation through time,BPTT)訓練RNN,存在以下問題:(1)網絡中輸出步長的梯度計算不僅取決于當前步長,還依賴于前一或許多步長的計算;(2)由于存在長期的依賴,會造成梯度消失或梯度爆炸問題[7]。LSTM模型就是在此基礎上被提出的。
LSTM跟RNN最大的不同之處在于,為了判斷網絡信息流中相應的信息是否有用[8],LSTM網絡中加入了“處理器”,該處理器的作用就是甄別當前輸入和上一時刻的輸出是否對接下來的信息修整有用,這個“處理器”通常被稱為“細胞”[9]。在LSTM中,每個“細胞”中又被放入了三個“門”,分別是:輸入門、遺忘門和輸出門。正是通過這三個門,LSTM可以處理相應的信息。
(2)注意力機制。
2014年,在人類視覺注意力機制的基礎上,Bahdanau等人首次將注意力模型應用到了自然語言處理領域。同時,注意力模型被應用到基于神經網絡的機器翻譯中并取得了當時最好的效果。隨著深度學習的發(fā)展,注意力機制因其優(yōu)異的表現(xiàn)而得到廣泛應用,以時序序列為代表的領域也開始引入注意力機制進行相關的研究[10]。以文中對阿里音樂平臺音樂流行預測研究為例,由LSTM層得到相應的輸出后,可以對這些輸出信息進行計算,進一步得到相關信息的注意力概率分布,這為掌握時序序列中每一時刻LSTM細胞單元的輸出狀態(tài)對預測未來歌手歌曲流行趨勢提供了重要依據。
(3)LSTM-Attention模型。
LSTM-Attention模型就是在LSTM結構后加上注意力層。雖然LSTM與Attention的組合模型早被用于關系分類中并取得了較好的效果[11],但是該組合模型在時序序列數(shù)據尤其是公共數(shù)據中的預測研究上還處于不斷探討改進的地步。文中利用LSTM與Attention相結合的機制,對阿里云音樂平臺上的相應歌手及歌曲進行預測研究,利用過往歷史數(shù)據選取組合“日播放量”、“連續(xù)3天播放均值”2個維度來預測未來60天的歌手歌曲播放量。所采用的整體模型結構如圖1所示。

圖1 所采用的LSTM-Attention模型結構
2.1.1 樣本數(shù)據來源
文中所用到的數(shù)據集來自于阿里云音樂平臺[12]。阿里云音樂是阿里巴巴旗下的一個大型音樂平臺,該平臺經過多年的發(fā)展積累了大量的用戶以及曲庫資源,不論是歌手數(shù)量還是歌曲種類,該平臺都在同類平臺中名列前茅。更重要的是,在平臺下,存在豐富的用戶行為:上傳歌曲、下載專輯等。無論是豐富的資源還是用戶的活躍程度都對把握音樂流行趨勢起到了極其重要的指引作用[13]。
針對該音樂平臺下的數(shù)據信息,平臺給出的樣例數(shù)據是兩張表,一張是用戶行為表(時間跨度為2015.03.01~2015.08.31)p2_mars_tianchi_users_action,該表的作用是對阿里音樂平臺下用戶的行為進行表征;另一張是歌曲信息表p2_mars_tianchi_songs,該表所表述信息包含:歌手以及相應歌曲的相關信息,如所屬專輯、初始熱度等。
文中所用到的數(shù)據集p2_mars_tianchi_user_actions.csv和p2_mars_tianchi_songs.csv中涵蓋了(2015.03.01~2015.08.30)共計6個月的用戶行為信息和歌曲信息,經過對數(shù)據集的統(tǒng)計,其中所包含歌曲的初始播放總熱度(即歷史播放人次)為26 107萬。用戶的播放行為記錄為478萬。
2.1.2 數(shù)據預分析及預處理
數(shù)據分析包括數(shù)據質量分析和數(shù)據特征分析等。數(shù)據質量分析是數(shù)據準備過程中重要的環(huán)節(jié),是數(shù)據預處理的前提。數(shù)據質量分析主要是檢查原始數(shù)據中是否存在臟數(shù)據,包括缺失值、異常值(用戶表出現(xiàn)新歌曲或用戶表行為不在20150301~2010831等)、重復數(shù)據以及含有特殊符號的數(shù)據。由于數(shù)據集中存在著大量對進行預測無意義的數(shù)據(比如gmt_create即用戶播放時間),因此要考慮刪除。對原始數(shù)據集p2_tianchi_user_actions.csv進行處理,可得到兩個文件:一個是song_p_d_c.txt,該文件包含songs_id、每天的播放量、每天的下載量以及每天的收藏量;另一個是song_fan.txt,包含songs_id以及每天不同用戶的數(shù)目。同理,利用ifNoArtistTXT()對artist的songs進行整理。
(1)相關屬性選取。
為了提高預測模型的準確率、效率及降低算法的復雜度,在進行實驗之前需對數(shù)據集中的若干個屬性進行選擇,挑選組合能夠決定或者影響到未來歌手歌曲播放量的因素。傳統(tǒng)情況下通常采用維度變化、特征轉換等處理來達到目的[14]。文中要對阿里云音樂平臺未來60天歌手歌曲播放量進行預測,通過相關先驗知識可知,所用到的數(shù)據集之間很多屬性間不存在相關性,例如用戶播放時長等。因此,為了降低模型的復雜度,考慮刪除不相關屬性。文中利用最大信息系數(shù)方法來尋找各個屬性間的相關性。
最大信息系數(shù)(也稱互信息方法)是一種具備廣泛性和公平性的標準,該方法的主要作用是權衡眾多數(shù)據中相關兩個變量X、Y之間存在的依賴關系。假設給定兩個離散型變量X和Y,定義兩者之間的互信息系數(shù)R(X,Y)計算方法如下:
(3)
其中,p(x)、p(y)分別為變量X、Y的邊緣概率分布,p(x,y)為兩者的聯(lián)合概率分布。
文中利用以上方法,在刪除不相關屬性后的數(shù)據集中計算以下四個屬性:播放量、播放均值、播放量方差和播放時長,最終選取“日播放量”和“連續(xù)3天播放均值”作為未來歌手歌曲播放量預測的組合指標。
(2)數(shù)據預處理。
在獲取的數(shù)據集中存在諸如數(shù)據缺失、臟數(shù)據以及異常數(shù)據等不符合要求的數(shù)據,因此在模型構建之前需要對這些異常數(shù)據進行處理,其處理的步驟如下:
Step1:數(shù)據缺失值處理。
在獲取的470多萬條數(shù)據中存在數(shù)據缺失現(xiàn)象,文中采用均值填補法進行數(shù)據缺失值的填充,具體方法如下:
(4)
其中,Xt代表當前時刻缺失的信息,Xt-1代表前一時刻的信息,Xt+1代表后一時刻的信息。
Step2:數(shù)據平滑。
數(shù)據平滑的目的是將數(shù)據集相關屬性中存在的偏度較大的數(shù)據進行轉化,使其更加服從高斯分布,為取得較好的后續(xù)分類結果奠定基礎。文中利用最小二乘法對數(shù)據進行平滑;
Step3:數(shù)據歸一化。
在利用深度學習方法尤其是神經網絡進行模型構建時,數(shù)據集中數(shù)值越大的數(shù)據對模型的影響比重越高,這就導致無形中可能丟失那些數(shù)值較小的數(shù)值屬性。因此要對數(shù)據集中的數(shù)據進行歸一化處理,文中利用最小最大標準化(Min-Max標準化)方法將數(shù)據歸一化到[0,1]:
(5)
其中,X'表示歸一化完成后的數(shù)據,X表示原始數(shù)據,Xmax和Xmin分別表示原始數(shù)據中的最大值和最小值。
經過上述數(shù)據預處理后,數(shù)據集大致的格式如表1所示。

表1 經預處理后的數(shù)據內容
2.1.3 數(shù)據預分析及預處理
文中的最終目標是預測相應歌手歌曲的播放量,因此在進行數(shù)據集的處理時應定位到歌手歌曲播放量這一屬性。針對數(shù)據集給出的2015.03.01~2015.08.30這六個月數(shù)據,統(tǒng)計并制作歌手歌曲播放量的變化趨勢圖,選取組合日播放量、連續(xù)3天播放均值,作為某一時間點的樣本值,“滑動”構建神經網絡的訓練集。其模型參數(shù)設置如下:
(1)輸入節(jié)點數(shù)=2;
(2)輸出節(jié)點數(shù)=1;
(3)傳播步長=64;
(4)隱含層節(jié)點個數(shù)=128;
(5)激活函數(shù)=ReLU;
(6)正則優(yōu)化(Dropout丟棄比例)=0.3;
(7)學習率=0.001。
圖2所示為任意一名歌手過去六個月內歌曲的平均播放、下載和收藏量。從中可以看出,某位歌手的歌曲播放量、收藏量及下載量三者中,最適合用來預測未來某段時間內某位歌手是否能流行起來的是播放量。

圖2 歌手歌曲的平均播放、下載和收藏量
針對所有歌手的歌曲播放數(shù)據,進行去均值、方差歸一以及縮放到[-1,1],同時設置均值濾波的長度為aveFilter=4。利用原始的播放量進行預測,能夠得到如圖3所示的預測曲線。從圖3可以看出,對原始數(shù)據進行預測所得的結果中,在某些歌手的預測上存在偏差。

圖3 歌手歌曲預測播放量和真實播放量比對
圖4為利用歌手平均歌曲播放量預測未來60天歌手歌曲播放量的實驗結果(為縮放后的結果)。由圖4可以看出,使用平均歌曲播放量進行預測的結果要比使用原始歌曲播放量進行預測的效果好,預測結果基本和未來60天歌手的真實歌曲播放量吻合。

圖4 利用平均播放數(shù)據進行預測后歌手歌曲預測播放量和真實播放量比對
對比其他預測方法時,利用了RMSE、MAE,其具體的計算方法如下:
(6)
(7)

文中實驗在數(shù)據集中任意選取10名藝人,分別利用SVM、LSTM以及文中用到的LSTM-Attention算法預測2015年8月1日到2015年8月31日藝人歌曲播放量,預測結果—均方根誤差、平均絕對誤差如圖5和圖6所示。

圖5 三種模型在RMSE指標上的比對

圖6 三種模型在MAE指標上的比對
由圖5和圖6可以看出,在對10名藝人的歌曲播放量預測中,文中提出的預測模型在預測效果(RMSE、MAE指標)上,相比于傳統(tǒng)方法中的LSTM以及SVM,分別由原來的0.073、0.046降低到0.046、0.033,誤差率分別降低了36.8%和28.3%。證明文中所提出的模型更適合對音樂流行趨勢進行預測。圖7顯示的是不同的模型參數(shù)的RMSE、MAE兩個指標的影響程度,不難發(fā)現(xiàn),在一定范圍內隨著模型層數(shù)的增加,兩個指標都在下降,但是超過一定的范圍后,又呈上升趨勢。文中模型所采用的層數(shù)為5層。

圖7 不同預測模型層數(shù)對RMSE和MAE的影響
表2為模型中隱層單元個數(shù)以及學習率兩個參數(shù)對結果的影響,主要體現(xiàn)在訓練集以及測試集的均方根誤差和平均絕對誤差兩個指標中。可以看出,隱層單元個數(shù)為64,學習率為0.001時,所得實驗結果優(yōu)于其他參數(shù)組合。

表2 不同參數(shù)對模型結果的影響
提出了一種基于LSTM-Attention的音樂流行趨勢預測模型,即根據過往歌手歌曲的均值播放量來預測未來一段時間內某位歌手的歌曲能否流行起來。利用阿里云音樂上的音樂數(shù)據評估了該模型,預測結果超過了利用傳統(tǒng)機器學習方法進行的預測,證實了LSTM-Attention模型更適合于處理時間序列數(shù)據。
未來,在該研究的基礎上還可以進行以下工作:文中采用的是基于LSTM-Attention模型的預測方法,接下來可以嘗試采用CNN-LSTM-ResNet的方法進行相關數(shù)據的預測,因此后續(xù)工作中也可以嘗試單模型組合,以期提升預測效果;文中在進行相應特征選擇時,影響藝人歌曲播放量的因素考慮略有不足,使得預測結果略差,因此后期可進一步挖掘出對藝人歌曲播放量有影響的其他特征。