沈哲旭,曾景杰,丁 健,楊 亮,林鴻飛
(大連理工大學 計算機科學與技術學院,遼寧 大連 116024)
音樂具有傳達情感的功能,與聽眾之間產(chǎn)生情感共鳴是音樂創(chuàng)作的重要原則之一。對音樂的情感進行正確分析和預測,在諸多現(xiàn)實場景中均具有較高的應用價值。例如,將網(wǎng)絡平臺中的海量音樂數(shù)據(jù)按情感分類,可以方便用戶檢索,也可更好地針對用戶喜好進行推薦;利用情感信息來指導音樂生成,可以自動化地提供與場景氛圍相匹配的音樂;用音樂進行心理治療時,治療師可根據(jù)音樂的情感分析結果選擇出療效更好的音樂[1]。樂譜作為準確記錄各類音樂信息的載體,一直是人們進行音樂學習、傳播與分享的重要媒介。常見的記譜法有五線譜、簡譜、TAB譜等,分別應用于不同的樂器與音樂形式。隨著計算機音樂技術的發(fā)展,陸續(xù)產(chǎn)生了多種適用于計算機存取的電子樂譜格式。其中,由Good[2]在2001年基于可擴展標記語言(eXtensible Markup Language,XML)提出的音樂擴展標記語言(Music eXtensible Markup Language,Music XML)[1]電子樂譜格式具有描述精確、檢索方便等優(yōu)點,同時適用于音樂表示與網(wǎng)絡傳輸,在隨后的數(shù)年之內迅速成為了計算機制譜軟件的通用標準。本文基于預訓練語言模型,對Music XML樂譜所表達的音樂開展情感分類研究。
國內外對音樂情感分析的研究從21世紀初開始興起,其中絕大多數(shù)研究是針對音頻音樂或歌詞文本開展的[3]。2005年,Lu等[4]利用音頻片段的3種特征,基于高斯混合模型提出了一種分層架構,完成了音樂的情感分類任務。2012年,李靜等[5]用歌詞中的情感詞建立情感向量空間模型,并考慮情感詞與所屬歌曲情感標簽的相似度來實現(xiàn)歌曲分類任務,其改進方法的分類準確度有了較為明顯的提升。2013年,Hwang等[6]提取了節(jié)奏、動態(tài)和音高等音頻特征來表示音樂樣本,并利用K-最近鄰分類器來輸出結果。隨著數(shù)據(jù)規(guī)模的增加與計算機算力的提升,深度學習(Deep learning)逐漸成為音樂情感分類的主流手段。2019年,Zhou等[7]使用無監(jiān)督的深度神經(jīng)網(wǎng)絡進行音樂的多模態(tài)特征學習,并引入一系列回歸實驗評估學習到的特征,該項研究證明了深度神經(jīng)網(wǎng)絡具有良好的特征學習能力。2021年,趙劍等[8]提出了一種基于知識蒸餾與遷移學習結合的多模態(tài)融合方法,該方法在音樂情感識別任務中的準確率有明顯提高,泛化能力也得到了提升。
針對符號音樂(Symbolic music)或電子樂譜開展的情感分類研究相對較少。2010年,Cuthbert等[9]開發(fā)了用于計算音樂學分析的工具包music21,大大簡化了對符號音樂以及電子樂譜的解析與特征提取過程。2018年,Sun等[10]運用統(tǒng)計學方法探究歌詞與其對應音符的音樂特征的情感關聯(lián),發(fā)現(xiàn)歌詞中情感色彩濃烈的詞語所對應的音符也往往具有異于其鄰近音符的音樂特征。此外,該項研究直接對Music XML電子樂譜進行量化分析,以避免因不同演奏者或演唱者在演繹上的區(qū)別造成的聽感不一致,也為后續(xù)的基于音樂序列的研究提供了一定的指導。符號音樂與自然語言都具有類似的序列特征,故自然語言處理的相關研究手段同樣可應用于符號音樂的研究中。2019年,Ferreira等[11]構建了基于VA(Valence-Arousal)模型[12]進行情感標注的符號音樂數(shù)據(jù)集VGMIDI,并將自然語言處理的研究方法應用于對音樂序列的分析研究中,使符號音樂的情感分類與生成工作有了新的解決方案。
近年來,以基于Transformer的雙向編碼器(Bidirectional Encoder Representation from Transformers,BERT)[13]為代表的基于大規(guī)模文本數(shù)據(jù)訓練得到的預訓練語言模型(Pre-trained Language Model,PLM)成為了主流的文本表示模型。相較于早期的語言模型,預訓練語言模型采用海量的語料進行訓練,模型參數(shù)量規(guī)模得到了極大的擴增,也能夠更好地提取文本特征。在完成不同的任務時,需要將預訓練模型依據(jù)任務目標增加不同功能的輸出層聯(lián)合訓練,進行精調(Fine-tuning)以適應各類下游領域?!邦A訓練+精調”已成為了目前解決自然語言處理相關任務的主流范式。2021年,Zeng等[14]提出了一種符號音樂的編碼方式——Octuple MIDI,并在超過150萬條的符號音樂數(shù)據(jù)上采用小節(jié)級別的掩碼訓練得到MusicBERT模型,該模型經(jīng)過精調后在多項符號音樂理解任務中都達到了較高水平。Chou等[15]在多個符號音樂數(shù)據(jù)集上進行預訓練,得到MIDIBERT-Piano模型,其在主旋律抽取、力度預測、作曲家分類以及情感分類等下游任務中均大幅度超越了未經(jīng)過預訓練的基于循環(huán)神經(jīng)網(wǎng)絡的模型。
本文基于預訓練語言模型構建的歌詞情感分類模型和音樂序列情感分類模型可以較好地學習歌詞文本和音樂序列的語義特征,系統(tǒng)的整體表現(xiàn)與未經(jīng)預訓練的方法相比得到顯著改善。
MusicXML是電子樂譜的一種通用格式,為了方便樂譜的存檔、傳輸及在應用程序之間的共享而設計。正如音頻音樂的通用格式MP3一樣,MusicXML也已成為了共享交互式電子樂譜的行業(yè)標準。MusicXML電子樂譜的一般結構為整張樂譜包括若干個聲部(Parts),每個聲部之中以小節(jié)為單位記錄樂譜的音樂信息。音樂信息由元素(Elements)和屬性(Attributes)來表示,各類音樂參數(shù)均可詳細記錄。如圖1所示為一段MusicXML代碼示例。
圖1 Music XML代碼示例Fig.1 Sample of MusicXML code
現(xiàn)有的公開的Music XML電子樂譜數(shù)據(jù)集較少,本文利用爬蟲(用Python編寫實現(xiàn))從互聯(lián)網(wǎng)上獲取Music XML樂譜數(shù)據(jù)以供研究,使用music21工具包對數(shù)據(jù)集中所有樂譜進行解析,并提取歌詞文本與音樂序列。經(jīng)檢查發(fā)現(xiàn),樂譜數(shù)據(jù)集中存在一定比例的低質量數(shù)據(jù),如樂譜內容為空、音樂序列均為相同單音、無歌詞、歌詞均為無意義的襯詞、歌詞非英語等,故進行數(shù)據(jù)清洗工作以將這部分低質量數(shù)據(jù)去除。此外,進行樂譜節(jié)拍的篩選,僅保留拍號為4/4拍的樂譜數(shù)據(jù),以便于音樂序列分析模型的構建。經(jīng)過數(shù)據(jù)清洗之后,用于后續(xù)研究的Music XML樂譜數(shù)據(jù)規(guī)模在5 000條以上。
本文構建含有情感標注的歌詞文本數(shù)據(jù)集,用于歌詞文本情感分類模型的訓練。多數(shù)網(wǎng)絡音樂平臺允許用戶自行創(chuàng)建并公開含有若干情感標簽的歌單,其中包含的歌曲均經(jīng)過用戶人工篩選并分類,用戶標注的情感標簽可作為歌曲情感類別劃分的重要參考。為了保證歌曲情感標注的準確性,本文選取的情感歌單播放量均在10萬及以上級別,且僅選用“快樂”和“傷感”這兩類較為強烈、明顯的情感標簽,分別作為正向(Positive)和負向(Negative)的判定標準。經(jīng)初步篩查發(fā)現(xiàn),數(shù)據(jù)集中的一些歌詞存在前后兩部分的情感表達不完全一致的現(xiàn)象,且情感波動較為顯著,故數(shù)據(jù)清洗時將這樣的歌詞去除。在此基礎上,采用回譯的方式對原始數(shù)據(jù)進行數(shù)據(jù)增強,以擴大數(shù)據(jù)規(guī)模。具體操作為: 使用機器翻譯系統(tǒng),將歌詞內容從初始的英文分別翻譯為4種不同語言,再重新翻譯為英文,并補充回原數(shù)據(jù)集中。歌詞數(shù)據(jù)集的分布如表1所示。
表1 含有情感標注的英文歌詞數(shù)據(jù)集分布Tab.1 Statistics of sentiment-annotated english lyrics dataset
3.1.1 基于情感詞典的歌詞文本情感分類模型
本文選用英文文本情感分析領域通用的標準情感詞典SentiWord Net 3.0[16]作為歌詞文本情感分類的基線模型之一。該詞典中包含每個單詞經(jīng)人工標注的3個情感傾向值,依次為褒義、貶義和中性。通過對整段文字中單詞的詞頻與情感值進行加權平均運算,可得到文本的情感得分,進而判斷其情感傾向性。
3.1.2 基于TextCNN的歌詞文本情感分類模型
卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)是一類包含卷積計算且具有深度結構的前饋神經(jīng)網(wǎng)絡,其所具有的獨特的卷積處理與池化能力可避免對圖像的復雜前期預處理,自動提取其高級特征,在圖像處理領域有著廣泛應用。Kim[17]于2014年提出的TextCNN模型使卷積神經(jīng)網(wǎng)絡的應用擴展到自然語言處理領域。首先將每個單詞映射為一個詞向量,作為整個網(wǎng)絡的輸入,然后經(jīng)過若干卷積層學習到不同的特征后,通過最大池化層,使不同長度的向量變?yōu)槎ㄩL表示,拼接成為一個特征向量,最后經(jīng)過一個全連接層分類器輸出分類結果,如圖2所示。
圖2 TextCNN模型的結構Fig.2 Structure of TextCNN model
在本文的歌詞情感分類任務中,使用預訓練好的Glo Ve.6B.100d詞向量數(shù)據(jù)作為詞嵌入輸入。先通過3種不同尺寸的濾波器將輸入分割為不同長度的字節(jié)片段,隨后依次經(jīng)過卷積層和最大池化層,最后通過一個全連接層,輸出歌詞情感分類結果。
3.1.3 基于BERT+Bi-GRU的歌詞文本情感分類模型
BERT是Devlin等[13]提出的一種自編碼式預訓練語言模型。其基于雙向深層Transformer網(wǎng)絡,擁有雙向編碼能力和強大的特征提取能力,在11項自然語言處理任務中取得了當時業(yè)界的最高水平,使自然語言處理進入了“預訓練+精調”范式的新階段。
BERT的預訓練任務之一為掩碼語言模型(Masked Language Model,MLM),該訓練任務類似于填空,可使得模型對上下文關系有更好的理解。在BERT模型中,掩碼(Mask)比例為15%,在這其中的80%用[MASK]標記來替換,10%替換為任意隨機詞,10%保持原詞不變,這樣的操作可避免雙向語言模型導致的信息泄漏問題。BERT的另一個預訓練任務為下一個句子預測(Next Sentence Prediction,NSP)。在該任務中,模型需要判斷后一段文本是否為前一段文本的下一個句子。其中的正樣本為語料庫的兩個相鄰句子A和B,負樣本將句子B替換為其他任意的語句。正負樣本的比例設置為1∶1。
門控循環(huán)單元(Gated Recurrent Unit,GRU)是Cho等[18]提出的長短期記憶網(wǎng)絡(Long and Short-Term Memory networks,LSTM)的一種變體,它將標準LSTM中的遺忘門和輸入門組合到一個單獨的“更新門”中,模型比標準LSTM模型更加簡單,而性能表現(xiàn)幾乎相當,能夠很大程度上提高訓練效率。GRU的單元結構如圖3所示。
圖3中:x t代表輸入;h t-1與h t為相應節(jié)點的隱藏狀態(tài);r t和z t分別為重置門和更新門;h~t為候選隱狀態(tài)。計算公式如下所示:
圖3 GRU的結構Fig.3 Structure of GRU
式中:⊙代表張量逐元素積;σ為Sigmoid函數(shù),使得各門的取值范圍保持在(0,1);W與b均為待優(yōu)化的網(wǎng)絡參數(shù),其下標用以區(qū)分不同門的參數(shù)。
本文的任務中,首先將BERT預訓練模型中的Transformer層進行凍結處理,保留其原有參數(shù),將其輸出的詞句表示通過一個多層的雙向GRU(Bi-GRU)進行下游任務的精調,通過Softmax分類器輸出歌詞文本的情感分類結果:
式中:z為輸入向量[z1,z2,…,z k];k為類別數(shù);y i表示輸入向量屬于第i個類別的概率。在本文的歌詞情感分類任務中,類別數(shù)為2,故式(5)可簡化為下面的形式,即Sigmoid函數(shù):
完整的BERT+Bi-GRU模型結構如圖4所示。
圖4 基于BERT的歌詞文本情感分類模型的整體結構Fig.4 Overall structure of BERT-based lyric text sentiment classification model
3.2.1 基于MIDIBERT的音樂情感分類模型(1) 預訓練階段
2.2節(jié)中構建的Music XML樂譜數(shù)據(jù)集均為無標注數(shù)據(jù),可以用于預訓練。將音樂數(shù)據(jù)輸入至模型時,需要對音樂進行合理的表示,以便于模型對音樂信息進行處理。Hsiao等[19]提出的復合詞(Compound Word,CP)是一種適用于深度學習的符號音樂序列表示方法,將音樂序列及其時間信息轉換為高維向量的表示,使神經(jīng)網(wǎng)絡模型可以讀取。本文的研究中將其進行簡化,單個標記(Token)僅表示單個音符的相關事件,其具體結構為: 所在小節(jié)(新一小節(jié)的開始/小節(jié)內部)、分拍(以十六分音符為單位,4/4拍的音樂每小節(jié)有16個分拍)、音高(同MIDI事件范圍,數(shù)值為0~127)、時值(以三十二分音符為單位)。一段音樂序列的簡化的CP表示方式的結構如圖5所示。
圖5 符號音樂的簡化CP表示Fig.5 Simplified CP representation for symbolic music
本文將所有樂譜的音樂序列部分提取并轉換為CP表示,并將該數(shù)據(jù)集與MIDIBERT初始預訓練使用的5個數(shù)據(jù)集混合,重新進行預訓練,該處理方式相當于擴充了預訓練的數(shù)據(jù)規(guī)模,這樣可使模型更好地學習音樂序列的上下文知識。預訓練任務與BERT模型的MLM任務類似,將一段音樂序列中的某個Token進行掩碼處理,讓模型還原被掩碼掉的音符及其對應的事件。
(2) 精調階段
EMOPIA數(shù)據(jù)集是Hung等[20]構建的含有情感標注的鋼琴符號音樂數(shù)據(jù)集。其數(shù)據(jù)規(guī)模為1 000級別,情感標注基于Russell提出的VA模型[12]。在本文的情感分類研究中,僅討論情感極性,即VA模型的愉悅度(Valence)維度,故分別將VA模型中的第一象限和第四象限、第二象限和第三象限視為同一標簽。訓練集、驗證集、測試集比例劃分為7∶2∶1。
本文將預訓練后的MIDIBERT模型在EMOPIA數(shù)據(jù)集上進行精調,使預訓練模型適配下游的音樂序列情感分類任務。模型的整體結構如圖6所示。
圖6 基于MIDIBERT的音樂情感分類模型整體結構Fig.6 Overall structure of MIDIBERT-based music sentiment classification model
歌詞情感分類模型所用計算設備的配置為:NVIDIA GeForce RTX 2080 GPU,操作系統(tǒng)為Ubuntu 18.04.2 LTS,Python版本為3.8.3,深度學習框架為Py Torch 1.5.1。實驗參數(shù): 批尺寸為64,采用Adam優(yōu)化器,初始學習率為1×10-4,訓練輪次為20。
音樂序列情感分類模型所用計算設備的配置為:NVIDIA GeForce RTX 3090 GPU(雙卡),操作系統(tǒng)為Ubuntu 20.04.2 LTS,Python版本為3.8.12,深度學習框架為Py Torch 1.8.2。實驗參數(shù): 批尺寸為12,采用Adam W優(yōu)化器,初始學習率為2×10-5,設置權重衰減為0.01;預訓練階段訓練輪次為500,精調階段訓練輪次為10。
本文的實驗采用準確率(Accuracy)λAccuracy、精確率(Precision)λPrecision、召回率(Recall)λRecall和F1值(F1-Measure)F1作為電子樂譜情感分類模型的評價指標。以下將分別對歌詞情感分類模型與音樂序列情感分類模型的性能表現(xiàn)進行分析。
4.2.1 歌詞情感分類模型性能表現(xiàn)
將帶有情感標簽的英文歌詞數(shù)據(jù)集分別輸入至TextCNN與BERT+Bi-GRU模型中進行訓練,取若干次訓練中損失最小的模型在測試集上進行檢驗。3種分類模型在該數(shù)據(jù)集的測試集上的最佳表現(xiàn)如表2所示。
表2 歌詞文本情感分類模型性能表現(xiàn)Tab.2 The performance of lyric text sentiment classification model
通過以上實驗結果可以看出,基于深度神經(jīng)網(wǎng)絡的方法在歌詞文本情感分類任務上的表現(xiàn)顯著優(yōu)于情感詞典。這是因為歌詞文本中除了顯式的情感詞,還存在很多的隱式情感表達,而情感詞典對于隱式情感的處理能力較弱。采用預訓練精調方法的BERT+Bi-GRU模型在帶有情感標簽的英文歌詞數(shù)據(jù)集上相比于TextCNN取得了更好的表現(xiàn),這表明預訓練語言模型確實能有效學習到更豐富的語言知識。
4.2.2 音樂序列情感分類模型性能表現(xiàn)
將EMOPIA數(shù)據(jù)集輸入至MIDIBERT模型中進行訓練,取若干次訓練中損失最小的模型在測試集上進行檢驗。為了檢驗預訓練在該任務中的有效性,取未經(jīng)預訓練的模型作為對比。表3為符號音樂序列情感分類模型在EMOPIA數(shù)據(jù)集上的情感二分類性能表現(xiàn)。
表3 符號音樂序列情感分類模型性能表現(xiàn)Tab.3 The performance of symbolic music sequence sentiment classification model
從實驗結果可以看出,經(jīng)過了預訓練的MIDIBERT模型的情感分類性能表現(xiàn)相比未經(jīng)預訓練的方法有了很大程度上的提升,說明BERT類型的預訓練不僅適用于自然語言處理任務,對于符號音樂序列也是有效的。
本文構建了Music XML樂譜數(shù)據(jù)集和帶有情感標簽的英文歌詞數(shù)據(jù)集,并進行了較為完善的數(shù)據(jù)預處理工作,以保證數(shù)據(jù)的質量。隨后,在英文歌詞數(shù)據(jù)集上分別利用情感詞典、卷積神經(jīng)網(wǎng)絡、精調后的大規(guī)模預訓練語言模型BERT等方法構建歌詞文本情感分類模型;在樂譜數(shù)據(jù)集上利用MIDIBERT預訓練模型構建音樂序列情感分類模型。實驗結果表明,本文提出的電子樂譜情感分類模型相比于基線模型效果有顯著提升,體現(xiàn)了預訓練模型在語義特征學習上的優(yōu)勢。在未來的研究工作中將繼續(xù)關注預訓練模型等方法,探究其在情感控制的音樂生成任務中的作用。