演習発表 sari v.1.2
TRANSCRIPT
[論文紹介]A Subsequence Matching with Gaps-Range-
Tolerances Framework: A Query-By-Humming Application
システム情報科学府 情報学専攻修士1年 池田研究室
ルトフィアナ サリ アリスティン
1
2012 年 12 月 18 日 (火)情報演習発表
2
背景
音楽、画像、動画といった様々なマルチメディアデータが近年増大化している
データのタイトルよりもコンテンツの方を人が覚える
3
動機
メタデータではなく音楽コンテンツを録音デバイスの使用で新たな音楽検索の実現
の重要性
昨日聞いた音楽を検索したい
でも、タイトル、歌詞、歌手が分からない
音楽データの増大化で、このような難点が現れてきた
検索の手段はメタデータ使用必須
4
着眼点:ハミング検索
音高の時系列データユーザが歌ったクエリ
音楽データ今回は MIDI に着目 音高の時系列データ
ハミング検索は2つの部分列の照合問題として扱える
5
目的
問題点:ユーザが歌ったクエリは3つ種類のエラーあり1. 縦軸のずれ(音高のエラー)2. 横軸のずれ(音楽データのどの部分と一致するかが不明)3. 伸縮のずれ(テンポが違う)
上記の問題の解決
黒色:MIDI データその他の色:実際の歌声
同じ曲を指す MIDI データといくつかのユーザの歌声
の比較
6
論文紹介[タイトル]
A Subsequence Matching with Gaps-Range-Tolerances Framework: A Query-By-Humming Application
[著者] Alexios Kotsifakos, Panagiotis Papapetrou, Jaakko Hollmén, Dimitrios Gunopulos
[書誌情報] Proceeding of the VLDB Endowment, Vol. 4, No. 11 2011
[概要] データ処理の観点からハミング検索の問題を解決する.ユーザが歌ったクエリと音楽データを完全一致させるのではなく、許容範囲内を設定することで一致条件をあげる.
7
論文の背景
部分列照合問題:クエリとデータベースが与えられた時、クエリと一番一致するデータベース内の部分列を識別する.
時系列の類似性マルチメディア検索パターン発見
動的計画法で解く
•窓単位での比較を繰り返すため効率が悪い
•多くの場合、ドメインの性質を考慮せず精度が低い
様々な分野で適用可能
上記の問題の解決を改善する必要あり時系列の部分照合に着目し、音楽検索の視点から
解決策を適用
8
関連研究•動的時間伸縮法 (DTW)
•2つの列(文字列/数列など)が一致するところが一方の列の方で伸びるか縮むことを許す手法
•編集距離•ある列(文字列/数列など)が別の列に編集するためにかかるコスト
(+) クエリの不整合・伸縮対応(−) クエリとの比較が列全体スライド窓単位で比較が行えるため、無駄な比較の繰り返しが多く、効率が悪い
9
目的
列全体ではなく、部分列照合へ対応したい
クエリのエラーへの対応の他に、ギャップの制限を設けたい
コストの低い計算でのアルゴリズムを使用したい
10
提案手法:SMBGT•SMBGT (Subsequence Matching with Bounded Gaps and Tolerances) は以前の手法である SMGT (Subsequence Matching with Gaps-Range-Tolerances)
の改良で、違いは SMGT に α=β=∞ であること.•行列 a は (|Q|+1)x(|X|+1) で、{1, ..., |Q|}内のi、{1, ..., |X|}内のj に対し、
ai,j =
�ai−1,j−1 + 1 if qi ≈f
� xj
max ai−1,j , ai,j−1 otherwise
a0,j = 0 and ai,0 = 0
•行列 s は ai,j のベスト照合値の開始点を si,j に保存•2つの1次元行列 A と B は現時点のスコアと開始時点、そして前時点のスコアと開始時点を保存
•A と B の値により、現時点の行列 a のベストを更新し、必要な場合各列をリセット
11
提案手法:SMBGTinput : Q,X,!,", #f , r, パラメータ K
output: プライオリティキュー S
beginS=null
for t ! 1 to |DB| dobestvalue = 0
beststart = 0
for j ! 1 to |Xt| dofor i ! 1 to |Q| do
if qi "f! xj then
curi.value = previ!1.value+ 1
curi.start = previ.start
end
elsecuri = propagation(i, j, Astart, Bstart)
end
end
best = Update(j, cur)
cur = ResetB(j, cur,Astart, Bstart)
end
Updatequeue(S, best,K)
end
end
1
一致しない場合、伝播という意味の関数を動かすターゲットからの伝播:クエリからの伝播:
j −Aprevstart(i) ≤ α
i−Bprevstart(i− 1) ≤ β
今まで見つけた SMBGT と比較しbestvalue, beststart, bestend を更新
入力と出力
行列 として動的に比較される
j - cur.start + 1 = r の場合、 現在の j 番目の列を:
• なら、1 にリセット.• それ以外:伝播により、値を継承する.
(|Xj |+ 1)× (|Qi|+ 1)
qi ≈f� xj
12
提案手法の計算例簡単にするため、音の存続時間を考慮しない例:
Q = {0,−4, 1, 2,−2}X = {0, 0,−4, 3, 0, 2,−3, 1}
α = 2,β = 1, δ = 1, r = |Q| = 5
a XXXXXXXX
Q 0 0 -4 3 0 2 -3 1
0 1 1 1 1 1 1
-4 1 1 2 2 2 1
1 0 0 2 2 2 0
2 0 0 0 0 0 3
-2 0 0 0 0 0 3
s XXXXXXXX
Q 0 0 -4 3 0 2 -3 1
0 1 2 2 2 5 5
-4 1 2 2 2 2 5
1 0 0 2 2 2 0
2 0 0 0 0 0 2
-2 0 0 0 0 0 2
Astart XXXXXXXX
Q 0 0 -4 3 0 2 -3 1
0 1 2 2 2 5 5
-4 1 2 3 3 3 5
1 0 0 3 3 3 0
2 0 0 0 0 0 6
-2 0 0 0 0 0 6
Bstart XXXXXXXX
Q 0 0 -4 3 0 2 -3 1
0 1 1 1 1 1 1
-4 1 1 2 2 2 1
1 0 0 2 2 2 0
2 0 0 0 0 0 4
-2 0 0 0 0 0 4
a XXXXXXXX
Q 0 0 -4 3 0 2 -3 1
0 1 1 1 1 1 1 1 0
-4 1 1 2 2 2 1 1 0
1 0 0 2 2 2 0 0 2
2 0 0 0 0 0 1 1 2
-2 0 0 0 0 0 1 1 1
s XXXXXXXX
Q 0 0 -4 3 0 2 -3 1
0 1 2 2 2 5 5-4 1 2 2 2 2 5
1 0 0 2 2 2 0
2 0 0 0 0 0 6
-2 0 0 0 0 0 6
Astart XXXXXXXX
Q 0 0 -4 3 0 2 -3 1
0 1 2 2 2 5 5 5 0
-4 1 2 3 3 3 5 5 0
1 0 0 3 3 3 0 0 8
2 0 0 0 0 0 6 6 8
-2 0 0 0 0 0 6 6 6
Bstart XXXXXXXX
Q 0 0 -4 3 0 2 -3 1
0 1 1 1 1 1 1 1 0
-4 1 1 2 2 2 1 1 0
1 0 0 2 2 2 0 0 3
2 0 0 0 0 0 4 4 3
-2 0 0 0 0 0 4 4 4
r の条件をチェック→ Update 関数
ResetB 関数の実行
13
音高の表現
MIDI データにおいて、音高 → semitone
semitone = 12× log2frequency
440+ 69
周波数 (frequency) は音高を表すが人間が聞いた2倍高い音高 ≠ 周波数が2倍人間が聞いた2倍高い音高 = 周波数の対数が2倍
人間が聞いた2倍の音高 = 2倍の semitone
実験では音高を semitone に変換
14
音楽データの表現
音高の表現:1.絶対音高2.相対音高(隣接する音高の差)
音の存続時間の表現:1.隣接する音の開始時刻の差 (Inter-Onset Interval / IOI)
2.隣接する音の IOI の比 (IOI Ratio / IOIR)
3.対数をとった IOI の比 (Log IOI Ratio / LogIOIR)
今回論文で用いた表現の組は下記の2つ:•<相対音高, IOIR>
•<相対音高, LogIOIR>
15
論文の実験音楽データ:5643 MIDI ファイル(様々なジャンル)人工クエリ:音楽データの一部をとったもの 6 セット
(1セット = 100 個)、任意の長さ歌声のクエリ:100個の歌声、任意の長さ
Q0, Q.10, Q.20, Q.30, Q.40, Q.50
Qx ⇔ x× noise|Q|min = 13, |Q|max = 137
|Qhum|min = 14, |Qhum|max = 76
手法 :SMBGT (Subsequence Matching with Bounded Gaps and
Tolerances
再現率:何%のクエリの正解結果がトップ K 個に入ったか評価方法
16
論文の実験結果(1/2)
人工クエリを用いた実験 歌声クエリを用いた実験
K = 20
17
論文の実験結果(2/2)
歌声クエリを用いた実験結果(様々な K)
18
音楽・クエリの性質を考える実際に、音楽データと歌声を比較すると.
周波数の時系列
semitone の時系列
19
が、実験で用いた相対音高の時系列は、
相対音高の時系列
落とされた情報が多い.これは、良くないのでは?
音楽・クエリの性質を考える
20
平均値との差
音楽・クエリの性質を考える元々の時系列の要素をその列の平均値や中央値と差をとり、一致させたもの
中央値との差
グレイ:対応する音楽データの列
その他:対応する音楽データと同じものを歌ったいくつかの歌声
21
発表者の実験平均値との差・中央値との差で一致させたものを•編集距離•動的時間伸縮法 (DTW)
で比較
データセット:→MIREX (the Music Information Retrieval Evaluation eXchange) - 年に一回の音楽情報検索に関する評価のための会 - からのMIR-QBSH-Corpus
音楽データ:48個、クエリ:2003年のデータセット(655個)
処理:音楽データ・クエリに下記の前処理を加えた•平均値との差をとった•中央値との差をとった存続時間は音高ごとに 0.01 秒とした
•vocaloid にかけたもの•最低の音高との差
22
発表者の実験
0
0.125
0.250
0.375
0.500
0.625
0.750
0.875
1.000
最低音との差 [ED] 最低音との差 [DTW] Vocaloid [ED] Vocaloid [DTW] 平均値との差 [ED] 平均値との差 [DTW] 中央値との差 [ED] 中央値との差 [DTW]
様々な前処理で行った結果
MRR K=10 の再現率
再現率:何%のクエリの正解結果がトップ K 個に入ったか
MRR (Mean Reciprocal Rank):ランクの平均逆数
MRR =1
N
N�
n=1
1
rankn
評価方法
平均値との差で、編集距離も DTW も K=10 で 0.9098 の再現率→前処理が重要なのではないか
23
発表者の実験
0
0.125
0.250
0.375
0.500
0.625
0.750
0.875
1.000
最低音との差 [ED] 最低音との差 [DTW] 平均値との差 [ED] 平均値との差 [DTW] 中央値との差 [ED] 中央値との差 [DTW]
様々な前処理で行った歌声-歌声の結果
MRR K=10 の再現率
同じ音楽データの部分の歌声はどの程度違うか?クエリのデータセット→ 50% ターゲットとし、50% 検索クエリとした
平均値との差、K=10 で、編集距離は 0.9874 の再現率→ 同じ音楽データの部分の歌声はそれほど違わないのではないか
24
結論
•SMBGT はクエリがデータベースにある音楽データのどの部分と類似するかを見つけることに有効性が表れた
•その場合、編集距離や DTW よりも高い評価値が得られた
•論文の実験では、歌声のクエリを用いた編集距離の実験結果が低いことを疑い、発表者は前著裏を加えた実験を行った
•発表者の実験により、データのどの部分がクエリと一致するかが分かっている時、前処理を加えた有効性を確かめ、前処理を行う必要があると考えられる
25
発表者の今後の研究方針
紹介した論文の提案手法と発表者が行った実験より、•論文の実験では、歌声のクエリを用いた編集距離の実験結果がとても低いことを疑い、発表者は•発表者の実験は歌声縦軸のずれに対応
上記の知見より、•SMBGT の考え方でクエリのエラーに対応したい•が、その前にクエリの前処理を加えるこれの実装をする価値があると考えている
あぱや~ っっz