• 沒有找到結果。

第三章 研究方法

3.3 分類模型

3.3.3 隨機森林

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

3.3.3 隨機森林(Random Forest)

隨機森林是一個代表性的引導聚集學習(Bootstrapping Aggregating,簡稱 Bagging)算法,簡單來說,就是使用多個弱學習器來做表決,以下我們簡單的 介紹引導聚集的算法概念。給定弱學習器數量為 M,弱學習器為 h,訓練資料 集為 D, Dbs𝑡 為第 t 次拔靴法後的資料集,(𝐱bst, ybst) 為 Dbst 中對應的特 徵與標籤,我們同時訓練了所有弱學習器,如式子 3.3.3.1,

ht(𝐱) = 𝑎𝑟𝑔𝑚𝑖𝑛 𝐸𝑦𝑏𝑠𝑡 ,𝒙𝑏𝑠𝑡(𝐿 (𝑦𝑏𝑠𝑡 , ℎ(𝒙𝑏𝑠𝑡))) ,

∀𝑡 = 1, … 𝑀 (3.3.3.1)

訓練完所有的弱學習器之後,再利用所有的弱學習器進行多數決的投票,假設 資料中的標籤為集合 V,𝑓̂ 為學習出來的函數,投票過程如式子 3.3.3.2。

𝑓̂(x) = 𝑎𝑟𝑔𝑚𝑎𝑥𝑣∈𝑉∑ 𝐼(ℎ𝑡(𝒙) = 𝑣)

𝑀

𝑡=1

(3.3.3.2)

隨機森林為引導聚集學習中的一份子,顧名思義由許多決策樹組成,並且為 了讓每個決策樹之間的變異變大,使用了許多方法讓每個決策樹有所不同,像 是利用拔靴法,讓每個決策樹的訓練資料有所差異,並且每個決策樹使用的特 徵為所有特徵中隨機抽出的子集等等,最後再將所有決策樹的預測結果做投 票,票數最多的則為隨機森林的預測結果。隨機森林的特色為使用了許多隨機 的概念,讓每個決策樹之間的變異變大,如此一來,每個決策樹在投票的過程 中,達到去除雜訊的效果,並且在許多分類問題中,表現也非常的出色。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

第四章 資料介紹

在與歌曲相關的資料集中,相較有曲風標籤的資料,有標記情緒標籤的資料 少之又少,因此本實驗在取得有標記情緒標籤的歌曲資料集上非常不易。本論 文使用兩個資料集,分別為 KKBOX 提供的中文歌曲資料「 KKBOX-Song-Mood-Dataset」與南京大學所整理的 「 NJU-MusicMood-V1.0 」 資料集 [2],兩份 資料集的資料量都在千筆之內,並且分別為中文與英文的歌曲資料集。

4.1 KKBOX 中文歌曲情緒標籤資料

此資料集中總共有 593 首中文歌,提供的資訊有情緒標籤、歌詞與 188 個 音訊的特徵。

4.1.1 情緒標籤

此標籤為 KKBOX Data Center 人工標注所產生,每一首歌的情緒分為兩個面 向,一種為單以歌詞的資訊判斷的情緒,另一種為單以旋律的資訊判斷的情 緒,一首歌的兩種情緒是可以不同的。歌詞、旋律標記的情緒準則分別如表格 6,其可以發現有許多歌曲旋律的情緒標籤與歌詞的情緒標籤並不相同,旋律情 緒標籤與歌詞情緒標籤不同的情形中,旋律情緒為悲傷且歌詞情緒為平靜的歌 曲最多,旋律情緒與歌詞情緒的分佈情形如表格 5。

以歌詞標記的情緒標籤中,有 241 首為悲傷, 170 首為平靜, 164 首為快 樂, 18 首為憤怒(歌詞情緒標籤中並無標記成激昂的歌曲);以旋律標記的 情緒標籤中,則有 349 首為悲傷, 117 首為快樂, 64 首為平靜, 48 首為 激昂,15 首為憤怒。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

4.2 NJU-Music-Mood V1.0 資料集 [2]

在 NJU-Music-Mood V1.0 [2]中,總共有 777 首英文歌曲,提供的資訊有情緒 標籤與歌詞的資訊。

4.2.1 情緒標籤

此情緒標籤的來源為知名音樂網站 last.fm 上使用者對歌曲的標注 (tag),

該資料集作者蒐集在 last.fm 網站上與情緒相關的標註(tag)的歌,並且一首 歌以眾多使用者註記最多情緒相關的標註,做為該歌曲的情緒標籤。此情緒標 籤有四種,分別為 Sad 199 首、 Happy 206 首、 Relaxed 201 首、 Angry 171 首。

4.2.2 歌詞

每首歌都有相應的歌詞,在分析之前,我們對歌詞做了一些前處理,像是去 除一些特殊標點符號,並將所有字都轉成小寫的形式,前處理中並無過濾常見 的停止詞,主要的顧慮是往後的分析方法會自動過濾那些詞彙,因此在此並無 對停止詞做刪除的處理。

4.2.3 音訊特徵

此資料集中的歌曲並無每一首歌的音檔 (audio files),因此在此資料集中 並無音訊特徵。

由於 KKBOX-Song-Mood-Dataset 內部歌曲情緒資料各個情緒標籤的數量非常 不平均,有某些情緒標籤的歌曲數量非常少,像是歌詞為憤怒的歌曲在此資料

出我們方法三的構想,並發現方法三抽取的歌詞特徵能在 KKBOX-Song-Mood-Dataset 中讓模型表現的更好,為了測試此方法的效果不是只對於此資料集有 是使用 Python scikit-learn 的套件實作。由於此資料量不是非常龐大,因此採用 20 折的交叉驗證,將 20 次的準確率取平均做為模型評估的方法。本研究的分 析流程如 圖 1 所示。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

歌曲

歌詞

音訊

歌詞特徵

音訊特徵

分類模型 分類模型 分類模型

歌詞情緒標籤

旋律情緒標籤

歌詞情緒標籤

旋律情緒標籤

歌詞情緒標籤

旋律情緒標籤

圖 1 分析流程圖

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

表格 9.A 以歌詞情緒標籤為預測目標,支持向量機放入歌詞與旋律特徵在二分類中預測結果之精確度、召 回率與 F1 分數

精確度 召回率 F1分數

快樂 0.86 0.76 0.81

悲傷 0.85 0.92 0.88

圖 2.A 以歌詞情緒標籤為預測目標,支持向量機放入歌詞與旋律特徵在二分類 中預測結果之混淆矩陣

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

表格 9.B 以旋律情緒標籤為預測目標,支持向量機放入歌詞與旋律特徵在二分類中預測結果之 精確度、

召回率與F1分數

精確度 召回率 F1分數

快樂 0.82 0.77 0.79

悲傷 0.92 0.94 0.93

圖 2.B 以旋律情緒標籤為預測目標,支持向量機放入歌詞與旋律特徵在二分類 中預測結果之混淆矩陣

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

方法二中,在悲傷與快樂兩類別分類表現是非常不錯的,以歌詞情緒標籤為 預測目標中,準確率有將近八成三左右,以旋律情緒標籤為預測目標,準確率 有將近九成,因此我們預期,在歌詞特徵與旋律特徵的高維度空間中,悲傷與 快樂的歌曲是彼此分開的,並且悲傷的歌聚集在一起,快樂的歌亦有群聚現 象,由於無法畫出高維度空間的圖,因此我們使用主成分分析(PCA)的方法,

將原本十維的特徵空間壓縮至三維的空間,並且在以歌詞情緒標籤以及以旋律 情緒標籤為預測目標的各個三維空間中,都各自保有將近原本十維空間的百分 之八十左右的資訊(變異)。

其結果如 圖3.A 與 圖3.B,能發現兩個情形在三維空間中,悲傷的歌曲群聚 在圖中的一個區塊,但反觀快樂的歌,在 圖3.A 中,有一部分分散在圖中的各 處,有一部份雖然聚集,但大致上與悲傷的歌混雜在一起(也許在更高維度的 空間中是分開的,但此圖無從得知);在 圖3.B 中,有一部分的歌亦是分散在 圖中的四處,但是另一部分有群聚的現象,並且雖然與悲傷的歌距離較近,但 看的出來大致上是分開的。

從發現悲傷的歌曲有群聚的現象,並且快樂的歌分布較為分散,我們推估大 致上這十維特徵當中,能抓到悲傷歌曲的共同特性,但快樂的歌曲在我們現有 的特徵當中較無共同的特性。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖 3.A 以歌詞情緒標籤為預測目標,將歌詞特徵以及旋律特徵映射到三維空間之散佈圖

圖 3.B 以旋律情緒為預測目標,將歌詞特徵以及旋律特徵映射到三維空間之散佈圖

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

5.3 悲傷、快樂與平靜三分類

歌詞擷取方法二中,在快樂與悲傷兩類別分類表現不錯的情況下,我們加入 平靜標籤的歌曲,觀察模型在三類別分類的表現能力,可惜的是,由於旋律標 籤的平靜歌曲資料過少,因此我們只做以歌詞情緒為預測目標,悲傷、快樂與 平靜的三分類問題。結果如表格10。在歌詞擷取方法二搭配支持向量機模型,

同時放入歌詞特徵與旋律特徵,準確率可以達到六成左右,在三分類問題的情 況之下,六成的準確率是差強人意的。值得注意的是,從 圖4 中可以發現,

雖然在歌詞擷取方法二搭配支持向量機模型,同時放入歌詞特徵與旋律特徵模 型的準確率有大約六成,模型除了容易將悲傷與平靜的歌混淆之外,亦容易將 快樂與平靜的歌混淆。直觀上來看,不管在歌詞層面上或是旋律層面上,確實 平靜與悲傷的歌有許多相似的地方,因此模型容易將平靜的歌和悲傷與快樂的 歌混淆也是在意料之中。

表格 10 使用方法二預測歌詞情緒標籤(三分類)的各個模型準確率

支持向量機 隨機森林 最近鄰居法

單用歌詞特徵 0.566 0.547 0.533

單用旋律特徵 0.518 0.506 0.496

歌詞特徵與旋律 特徵

0.603 0.568 0.554

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

5.4 過濾歌詞中的重複詞問題

在流行歌曲中,作詞人為了讓歌曲的傳唱度增加,並且讓歌曲更有記憶點,歌 詞中常常會不斷的重複少數的特定詞彙,但這些重複的詞彙,並不能保證真的 與該歌曲中的情緒有關,因此我們提出方法三,構想在歌詞特徵擷取方法二 中,每首歌的歌詞斷完詞後,將重複的詞彙只計算一次,避免高估一首歌當中 反覆出現的詞彙在各個情緒標籤的分數。

按照前面的實驗流程,一樣預測目標分成歌詞標籤與旋律標籤,並且以悲傷 與快樂,兩類別的分類做探討,結果如表 11.A 與 表 11.B。

圖 4 以歌詞情緒標籤為預測目標,支持向量機放入歌詞與旋律特徵在三分類結果 的混淆矩陣

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

表格11.A預測歌詞情緒標籤(二分類),方法二與方法三的準確率比較

支持向量機 隨機森林 最近鄰居法

單用歌詞特徵 方法二 0.771 0.760 0.765

方法三 0.817 0.796 0.813

歌詞特徵與旋律特徵 方法二 0.855 0.797 0.778

方法三 0.864 0.798 0.817

表格11.B預測旋律情緒標籤(二分類),方法二與方法三的準確率比較

從 KKBOX-Song-Mood-Dataset 來看,除了使用歌詞特徵與旋律特徵預測旋律 情緒標籤之外,方法三確實是能提升模型的預測能力。為了測試此效果並不是 只表現於 KKBOX-Song-Mood-Dataset 資料集,我們另外使用了南京大學所整理 的 NJU-MusicMood-V1.0 資料集 [2],比較有無將重複歌詞刪除對分類結果的影 響。此資料集有 777 首英文歌曲,有四種情緒標籤,分別為悲傷、快樂、平靜 與憤怒,每一首歌都有對應的歌詞,此資料集並無音訊的特徵,因此以下實驗 只利用歌詞做分析。

支持向量機 隨機森林 最近鄰居法

單用歌詞特徵 方法二 0.767 0.787 0.794

單用歌詞特徵 方法二 0.767 0.787 0.794

相關文件