MIREX(Music Information Retrieval Evaluation eXchange)は、音楽情報処理技術の性能を競う毎年恒例のコンテストです。音楽のキー・コード・拍解析、自動採譜、ジャンル識別など、音楽情報処理研究が扱う様々なタスクを設けており、それぞれの分野の研究者たちがSOTAを競い合ってきました。一時は参加者減少のため数年間開催が見送られていましたが、去年から有志の尽力により、音楽生成・自動作曲・質問応答などの新たなタスクを引っ提げてリバイバルされています。
折角なので、筆者も久しぶりにAudio Chord Estimation(コード進行推定)タスクに参戦してみました。
提出タスクの評価は既に完了しており、結果が発表されています。
YK1が筆者による提出物の成績です。参戦者の中では、主にSevenths指標で比較的良い成績を残せていますが、いずれの評価セットでもベストスコアに一歩及ばず、ちょっと悔しい。ちなみにBillboard2012とRWC-Popularは学習セットに入れてるのでノーカンです。
本記事では参戦手法の考え方を簡単に紹介します。手法の大枠は筆者が博士課程で取り組んでいた、VAEでコード解析問題を定式化する研究に基づいています。下記の記事でも詳しく解説しているので、本記事は概要だけ紹介します。
生成モデルベースの定式化
この研究の思想を簡単に紹介します。
コード解析を含む音楽解析や音楽採譜タスクは、確率モデルの観点では$argmax_{\mathbf{s}}[p(\mathbf{s}|\mathbf{x})]$を求める問題になります。$\mathbf{s}$はコードのような音楽記号系列、$\mathbf{x}$は音楽の音響特徴量を表します。モデル$p(\mathbf{s}|\mathbf{x})$を求めるには、一定規模の音楽データとアノテーションのペアを集め、$\mathbf{s}$の事後確率を最大化するようなモデルを推定するのが、一番分かりやすい方法でしょう(教師あり学習)。
一方、ベイズの定理$p(\mathbf{s}|\mathbf{x})=\frac{p(\mathbf{s})p(\mathbf{x}|\mathbf{s})}{p(\mathbf{x})}$により、同じ問題は$argmax_{\mathbf{s}}[p(\mathbf{s})p(\mathbf{x}|\mathbf{s})]$に書き換えることもできます。この式を言葉で表すと、「この$\mathbf{x}$が生成される確率が一番高くなるような$\mathbf{s}$を逆算する」ということになります。耳コピする時に鍵盤かギターを弾きながら一番合ってそうなコードを探す様子を想像してみてください。
つまり、$\mathbf{s}$の事後確率だけでなく、$\mathbf{x}$の尤度を最大化することも、音楽解析を実現する手段のひとつなのです。
この「二つの視点」を組み合わせれば、より正確な音楽解析モデルを作ることができる、というのが本研究の基本思想です。
半教師あり学習
事後確率推論モデル$p(\mathbf{s}|\mathbf{x})$と生成モデル$p(\mathbf{s})p(\mathbf{x}|\mathbf{s})$は、$\mathbf{x}$と$\mathbf{s}$のペアでそれぞれ教師あり学習を行うことができます。
一方、教師データが存在しない、つまり$\mathbf{x}$しか無い場合、推論モデルと生成モデルからなるVAEに対して教師なし学習を行うことができます。生成モデルに関する$\mathbf{x}$の尤度を最大化することは、推論モデルに正則化のような働きを起こし 、推論モデルの汎化性を向上させることが期待できます。
変数の分離を促進
博士当時の研究と異なる点として、今回の提出手法は潜在変数の分離(disentanglement)を促すテクニックを導入しました。
VAEで定義された生成モデルは2つの変数「コードラベル」と「潜在特徴」を入力としています。この両者は、それぞれ音楽の音高に対して「同変(pitch-equivariant)」「不変(pitch-invariant)」であるという性質を持っています。この性質を利用し、学習過程で両者の分離を促進することが可能です。
生成モデルが「音高同変な離散変数=コードラベル」と「音高不変な連続変数=潜在特徴」をしっかり区別できるようになれば、教師なし学習時にコードの推定事後分布に対して適切な正則化効果が働くようになり、半教師あり学習の効果を向上させることが期待できます。
データセット
モデルを学習するために、時間同期されたコード進行ラベル付きの楽曲のデータセットをかき集めました。曲数を稼ぐために音楽生成AIも駆り出しています。
データセット名 | 概要 | 曲数 |
---|---|---|
Isophonics | ビートルズやQueenの作品からなるデータセット | 222 |
RWC-POP | RWC研究用音楽データベースに収録されているポピュラー音楽データセット | 100 |
USPOP | アメリカのポピュラー楽曲からなるデータセット | 195 |
Billboard2012 | 米ビルボードチャートから選出したポピュラー楽曲からなるデータセット | 731 |
Robbie Williams | Robbie Williamsの作品からなるデータセット | 65 |
Generated | Chordonomiconデータセットからランダムに選んだコード進行から、Text-to-Music生成モデルJASCOで生成した楽曲 | 10,000 |
Self-annotated | 筆者の手持ちの楽曲から、セブンスコードを多用してそうなものを選び、手動でアノテーションを作成。 | 12 |
更に、色んな所からかき集めた1,400曲分の音源を、教師なしデータセットとして半教師あり学習に使いました。
実際の効果
MIREXに出すものなので、本線の論文みたいに綿密な実験を設計する必要はありませんが、せめて半教師あり学習の有効性を示すために簡単な比較実験をやってみました。上述のデータセットのうち、RWC-POPデータセットをテストセット、それ以外のデータを訓練セットとする条件で実験を行いました。
比較対象になる実験条件は以下の3つです。
- Supervised:アノテーション付きデータセットだけで、推論モデルを教師あり学習
- Semi-supervised:アノテーション付きデータセットだけで、半教師あり学習ロスを最適化
- Semi-supervised+:アノテーションなしデータセットも学習データに加え、半教師あり学習ロスを最適化
それぞれの条件で学習を回した結果、コード推定の正答率は以下の通りになりました。
majmin | seventh | |
---|---|---|
Supervised | 78.49% | 63.23% |
Semi-supervised | 79.29% | 64.38% |
Semi-supervised+ | 79.79% | 65.66% |
小幅な向上ですが、博士課程当時の研究では結局教師なしデータの追加による効果を示すことができなかったので、それに比べればそこそこ前進した気がします。
まとめ
ロス関数の計算やパラメタ更新手法自体は特に細かい工夫をせず、ただ雑に学習ループを回しただけですが、それでも比較的良いスコアを出すことができました。ロスの重みや、コード種類の不均衡に関してもっと工夫すれば、より良い結果を出せたのかもしれません。
半教師あり学習の効果についてはもうちょっと掘り下げてみたいです。実際どの施策が効果を生んだのか、ちゃんと調べれば来年のISMIRかどこかに論文を出せるかもしれません。