陳耕耘 ,李圣辰 ,邵 曦 ,梅昕浩 ,劉徐博 ,黃秋實 ,王文武
(1.南京郵電大學 通信與信息工程學院,江蘇 南京 210003;2.西交利物浦大學 先進工程學院,江蘇 蘇州 215123;3.薩里大學 電子與電氣工程學院,英國 薩里郡 吉爾福德GU2 4BB)
自動音頻標注任務(Automated Audio Captioning,AAC)[1]旨在通過計算機為一段音頻自動生成語言描述。近年來,音頻標注任務得到了許多關注,該領域也產(chǎn)生了許多引人矚目的成果[2]。作為一項典型的跨模態(tài)任務,音頻標注的基礎是音頻分類,同時需要建立正確的音頻事件與自然語言之間的映射。最終我們希望模型生成的標注既要能夠合理地描述音頻中的事件,同時也能夠符合人類的語法規(guī)則。目前,序列到序列的結構是音頻標注任務的常見模型結構,這種結構也已經(jīng)被證明是較為有效的[3]。模型通過編碼器來提取輸入的音頻特征,隨后輸入至解碼器,由解碼器生成對應的標注語句。
與圖像標注(Image captioning)[4]任務類似,音頻標注任務要求先提取出輸入音頻空間的特征表示,然后將其映射到語言空間中去。如果可以提取出更為準確的音頻特征,也就能夠使得模型更容易生成出符合原始音頻的描述語句。正因如此,我們自然希望模型的編碼器能夠足夠強大且有效。預訓練音頻神經(jīng)網(wǎng)絡(Pretrained Audio Neural Networks,PANNs)[5]就是這樣的一種大型預訓練模型。PANNs是在AudioSet數(shù)據(jù)集上訓練的一系列預訓練模型,并且在各項音頻任務上有著優(yōu)秀的表現(xiàn)。通過遷移學習(Transfer learning)[6]的方法,利用PANNs的模型來初始化卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)編碼器的參數(shù),最終使得模型能夠更為有效地完成音頻標注的任務。
在編碼器完成了音頻特征提取的任務后,解碼器需要根據(jù)輸入生成標注語句。單獨來看,這是一個文本生成的任務,而當前大部分的文本生成網(wǎng)絡采用的都是Teacher-Forcing的方式來進行訓練。當模型輸出一個單詞后,下一個單詞的生成將會依賴于上一個時間步所生成的單詞,這導致了曝光誤差(Exposure bias)的產(chǎn)生。音頻標注的任務中也不可避免地存在曝光誤差。除此之外,在這個過程中還有一個問題是評價指標(Evaluation metrics)與損失函數(shù)之間的不匹配。模型訓練時損失函數(shù)往往采用的是交叉熵損失,而最終模型的好壞評判標準卻采用的則是BLEU[7],ROUGE[8],METEOR[9],CIDEr[10],SPICE[11]及其他評價指標。已有學者提出了許多強化學習的方法來試圖解決這些問題。其中,針對圖像標注優(yōu)化的一種方法,SCST(Self-Critical Sentence Training)[12]已經(jīng)被證明是有效的,它能夠顯著提升圖像標注任務的得分。在之后的任務中,有學者將其應用到了音頻標注的任務上[13],SCST也同樣被證明是有效的。
本文中我們采用14層的卷積神經(jīng)網(wǎng)絡(CNN14)作為模型的編碼器,采用Transformer[14]的解碼器部分作為模型的解碼器。我們采用了遷移學習的方法,將優(yōu)秀的音頻預訓練模型PANNs作為編碼器的初始化參數(shù)。在模型訓練完成之后,利用強化學習的方法來對模型進行微調(diào),以此來解決訓練時的損失函數(shù)和模型評價指標得分之間不匹配的問題。
首先在自動音頻標注任務上進行嘗試的有Drossos等[2],他們于2017年提出了一個基于門控循環(huán)單元(Gated Recurrent Unit,GRU)的序列到序列的結構來生成標注的語句。隨后,人們開始探索在特定場景中的音頻標注任務。目前,大部分的自動音頻標注模型都是采用了編碼器 解碼器的結構,這種結構能夠很好地處理音頻與文字兩種模態(tài)。本文所提出的模型結構同樣是基于編碼器 解碼器的結構,使用的編碼器是CNN14,解碼器采用的是Transformer的解碼器部分。在模型完成訓練后,采用強化學習的方法對模型進行微調(diào),借此通過直接反向傳播一個評價指標來對模型進行優(yōu)化。模型系統(tǒng)的結構如圖1所示。
圖1 模型系統(tǒng)的結構Fig.1 The structure of the model system
選取CNN14作為本文模型的編碼器,通過CNN強大的提取特征的能力完成對輸入音頻的特征提取。相比于其他更深層的神經(jīng)網(wǎng)絡,14層的CNN能夠更有效地防止過擬合的發(fā)生。這個14層的CNN總共由6個卷積塊組成,每個卷積塊里包含2個3×3的卷積層,使用ReLU作為激活函數(shù),并且使用了批標準化(Batch normalization)[15]來加快模型的訓練速度。每個卷積塊當中的通道數(shù)量分別是64,128,256,512,1 024,2 048。
作為一項跨模態(tài)任務,想要訓練出一個優(yōu)秀的端到端模型來完成自動音頻標注并非易事。由于缺乏足夠多的標注好的音頻數(shù)據(jù),這使得模型的訓練更加困難。然而在單模態(tài)領域,例如各類音頻任務中,人們已經(jīng)有了大量的標注好的數(shù)據(jù)集。因此,我們嘗試通過遷移學習的方法,把在大規(guī)模數(shù)據(jù)上訓練的模型加載到本文模型中,借此來為解碼器提供一個更有效的音頻特征。此外,遷移學習還能夠幫助本文模型在訓練時能夠更快地收斂。近年來,學界推出了大量的與音頻任務相關的預訓練模型,PANNs就是其中之一。PANNs是在AudioSet數(shù)據(jù)集上訓練的一組預訓練模型,得益于AudioSet擁有大量的標注好的且涵蓋了多種場景的音頻片段數(shù)據(jù),PANNs有著強大的提取音頻特征的能力。在各個音頻識別相關的下游任務中,PANNs也已經(jīng)被證明是有效的[16-17]。
選取PANNs中的CNN14來初始化本文模型編碼器的參數(shù)。該CNN14是在Audioset數(shù)據(jù)集上共計527種分類,190萬條音頻片段上完成訓練的,最終該模型能夠達到0.431的平均精度值,遠超之前最好的系統(tǒng)能達到的。同時,本文使用的Clotho數(shù)據(jù)集[18]的數(shù)據(jù)量大約只有幾千條,在這種情況下,PANNs充分學習了AudioSet數(shù)據(jù)集中的音頻信息,這將有助于本文模型的編碼器提取音頻特征。利用PANNs的網(wǎng)絡參數(shù)來初始化本文模型的CNN編碼器的參數(shù),這將使得編碼器能夠更好地學習到音頻模態(tài)的信息,使得編碼器能更好地提取音頻特征。同時,這么做也能使本文模型在Clotho數(shù)據(jù)集上更快地完成訓練。
本文模型的解碼器選擇了當前性能表現(xiàn)最好的Transformer。自從Transformer問世以來,該模型已經(jīng)在各個自然語言處理領域都取得了優(yōu)秀的表現(xiàn)。之后,谷歌提出了由Transformer構成的大型預訓練語言模型BERT(Bi-directional Encoder Representations from Transformers)[19],更是刷新了自然語言處理(Natural Language Processing,NLP)領域中的各項任務的得分。由此,也證明了Transformer在處理自然語言任務時的有效性。我們使用的Transformer是一個只有解碼器部分的Transformer,共計2層,每層都有4個注意力頭(Multi-head attention),隱層的維度是128維。通常,一個標準的Transformer結構是由編碼器和解碼器組成。由于其編碼器本身的特性,使得標準的Transformer最多只能夠接受長度為512的輸入,這對于處理一個句子來說已經(jīng)足夠長了,但是本文模型的輸入是音頻特征,通常抽取出來的音頻特征的長度遠遠超過一個句子,此時Transformer的編碼器就不適用了。因此,本文僅僅采用Transformer的解碼器部分來為音頻特征生成標注語句。
目前,文本生成任務的模型在進行預測輸出時,解碼器首先根據(jù)編碼器的輸出來生成第一個單詞,然后再根據(jù)上一個時刻的輸出生成下一個時刻的詞。一旦當前時刻的輸出出現(xiàn)錯誤,那么該錯誤就會累積至下一個時刻,最終傳播至整個輸出。這樣的誤差也被稱為曝光誤差。此外,當我們評判一項文本生成任務完成的好壞時,通常采用的是BLEU,CIDEr,SPICE等評價指標。這些評價指標各有各的側(cè)重點,例如,BLEU主要衡量的是翻譯任務時生成的語句的準確度,CIDEr主要是用來衡量生成的標注語句是否包含了關鍵內(nèi)容,而SPICE在評價生成的標注語句時會更多地考量目標、屬性、關系是否相符合。然而,以上的各種評價指標都是不可微的,這也就意味著我們無法在訓練時直接反向傳播這些指標。因此,我們通常在訓練時會把預測的標注語句和實際的標注語句做交叉熵損失,以此來反向傳播更新模型,但這也不可避免地造成了模型訓練與模型評價之間的不匹配。
針對以上問題,已經(jīng)有學者證明了通過強化學習的方法能夠一定程度上緩解或是避開這類問題[20],這些強化學習方法之一就是SCST。有學者將SCST運用至自動圖像標注任務之中并且取得了不錯的成績[20]。考慮到音頻標注與圖像標注任務的相似性,我們嘗試將這種方法引入至音頻標注任務之中。
SCST是一種稱為Reinforce的強化學習算法的改進,通過添加了一項Baseline使得SCST比其他強化學習的算法更穩(wěn)定,方差更低。它允許我們可以直接反向傳播一個評價指標來更新模型的參數(shù)。SCST算法的結構如圖2所示。借此,通過使得模型在訓練時的參數(shù)更新目標與測試時的評價指標一致,由此來改善最終模型測試階段的表現(xiàn)。而對于曝光誤差的產(chǎn)生,由于強化學習在訓練時是以句子級別進行反向傳播,對整個句子的權重參數(shù)進行調(diào)整,因而加強了模型在預測時輸出的連貫性,從而減小了曝光誤差的影響。通過強化學習,我們在模型訓練時的每一個時間步都對此時模型預測的輸出進行蒙特卡洛采樣,并對此時預測的輸出計算評分。根據(jù)計算出的得分,就可以獲得當下模型的獎勵(Reward),通過Reward的形式來反向傳播一個評價指標并對模型進行參數(shù)更新。而SCST通過利用模型當前時刻的貪心算法(Greedy Algorithm,GA)獲得的輸出得分作為一項Baseline,并與Reward做差,由此來改善強化學習方差過大,訓練不穩(wěn)定的問題。通常來說,編碼器與解碼器的輸入輸出如下:
圖2 SCST算法的結構Fig.2 The structure of SCST algorithm
式中:X是輸入的音頻;V是編碼器的輸出;S=(S1,S2…,S n)是依次生成的單詞,并構成了標注語句。在應用強化學習之后,模型的梯度(?θ)可表示為
式中:l(θ;V)為模型訓練的目標函數(shù);r(S)為模型采樣句的得分;b為模型預測獲得的語句得分;log為對數(shù)運算;p(S|θ;V)表示模型在編碼V和策略P下的采樣。我們選擇采用貪心搜索(Greedy search)的方法來生成預測語句,通過這種方式,解碼器在輸出時的每一步都會選取概率最大的單詞作為當前的輸出,最終整合成一句完整的輸出語句。
本次實驗采用的數(shù)據(jù)是Clotho數(shù)據(jù)集。該數(shù)據(jù)集總共包含了4 981條長度為15~30 s的音頻片段,同時每個音頻片段各有5句長度為8~20詞的標注,這些標注都是由母語為英語的人來人工標注的,并且確保了這些標注里都不會包含特殊字符或是命名實體。
對于輸入的原始音頻,首先提取出它的對數(shù)Mel譜圖。提取時,采用的采樣率為44.1 k Hz,快速傅里葉變換(Fast Fourier Transform,FFT)的窗口長度為1 024。同樣,我們也對標注的語句做了預處理。首先,對所有的標注語句都移除了標點符號;然后,將所有的單詞全部轉(zhuǎn)為小寫;最后,在每句標注的開頭和結尾分別添加了特殊符號“<sos>”和“<eos>”,利用它們作為起始標記和結束標記來輔助模型訓練。
模型訓練的過程如圖3所示。本次實驗所有的訓練都采用Adam優(yōu)化器,每個批次輸入的Batch size均為32條。在使用交叉熵訓練模型時,初始學習率設為0.001,模型總共訓練了20個周期。為了加快模型的收斂,我們還采用了梯度熱身(Warm up)的方法,在模型訓練的前5個周期,將學習率逐漸增大至0.001,而在前5個周期之后,每5個周期學習率會降低為此時的1/10。
圖3 模型訓練的過程Fig.3 The process of model training
此外,為了加強模型的泛化能力,我們還采用了頻譜增強[21]的方法。頻譜增強用于提升已有數(shù)據(jù)的有效性,并且已經(jīng)在自動音頻識別任務中被證明是有效的。詞嵌入(Word embedding)也同樣被用于解碼器,來加強模型在生成語句時的表現(xiàn)。利用所有的標注語句在Word2Vec模型上進行預訓練,可以獲得每個單詞的詞向量表達,語義或是語法上相近的單詞將會在詞向量空間上有較近的距離,由此來輔助解碼器的語句生成工作。
在模型完成訓練之后,再使用強化學習來對模型進行微調(diào)。SCST方法選擇的優(yōu)化指標是CIDEr得分,生成目標語句的方法是貪心搜索。之所以選擇CIDEr得分是因為在文獻[12]中,將該得分作為優(yōu)化指標的模型效果最好。本文模型總共進行了20輪的訓練來完成微調(diào),初始學習率的大小是0.000 1,在最后的5個周期中學習率降低為0.000 01。
本次實驗的結果如表1所示。由于模型結構上的相似性,我們選取了DCASE2020比賽的第二名[22]作為比較的基線系統(tǒng)??傮w來看,與該基線系統(tǒng)相比,采用了PANNs作為初始化權重的解碼器對實驗結果有一定提升,并且在使用強化學習CIDEr得分進行優(yōu)化后,模型的CIDEr得分獲得了顯著的提升,這證明我們選取的方法是有效的。
表1 實驗結果Tab.1 The experimental results
在未使用強化學習前,使用PANNs初始化的解碼器在BLEU,ROUGE,METEOR這幾項指標上的得分并沒有較基線系統(tǒng)有較大提升。這幾項指標的評價依據(jù)主要是基于n-gram的詞或詞組來對語句進行評分,更多用于機器翻譯的評分,側(cè)重生成語句與參考語句的符合程度。而音頻標注主要是以文本生成為主,這說明該模型的編碼器并沒有很好地提升音頻標注生成的語句中詞或短語的準確性。但是在CIDEr,SPICE和這兩個指標的加權組合SPIDEr的得分有了較大的提升,而這些指標正是專門設計出來用于評價圖像標注問題的,這說明使用了PANNs之后,新系統(tǒng)相較于未使用預訓練編碼器的系統(tǒng)能夠更準確地提煉出輸入音頻的特征,從而令生成的標注語句能夠更符合參考語句的側(cè)重點,也說明了PANNs的有效性。
使用了強化學習之后的系統(tǒng)在各項得分上均有著較大的提升。在訓練的過程中,我們始終以CIDEr的得分作為強化的目標,CIDEr的得分也確實得到了較大的提升,同時整個系統(tǒng)的得分也得到了提高,這說明了強化學習盡管在訓練時是以優(yōu)化單一評價指標為目標的,但是同時也可以提高模型在其他評價上的得分,能夠改善系統(tǒng)的整體綜合表現(xiàn),這說明了強化學習在音頻標注任務上的有效性。
本文針對自動音頻標注任務的問題提出了基于編碼器 解碼器結構以及強化學習優(yōu)化的模型系統(tǒng)。通過遷移學習的方法,將優(yōu)秀的預訓練CNN作為模型的編碼器,而解碼器選取Transformer的解碼器部分,來提高模型的有效性。此外,為了解決模型的評價得分指標不可微問題,我們采用了強化學習的方法來反向傳播一個指標的得分,由此對模型進行微調(diào)優(yōu)化。實驗結果表明,采用強化學習的方法對模型進行微調(diào),可以一定程度上回避訓練時損失函數(shù)與評價指標之間不匹配的問題,能夠有效提高優(yōu)化指標對象的得分。此外,這兩種方法均能有效地提高模型的各項指標得分,且兩種方法有著很好的相容性。在未來的工作中,將考慮如何使模型生成更加符合人類語法的流暢的標注語句。