カスタマーサポートの通話録音1件に、怒った声と疲れた声が一緒に収められていることがあります。感情認識モデルがこの録音に「怒り」だけを付けると、一緒に収められていた悲しみは記録に残りません。これまでの音声感情認識研究は、ほとんどが複数の感情のうち1つだけを選ぶ方式でした。しかし実際の場面では、複数の感情が混ざって現れることが多くあります。
この記事が扱う問いは1つです。韓国語音声の一区間に一緒に収められた複数の感情を、同時に読み取れるでしょうか。
この問いに答えた論文を1本読んでみます。
- タイトル: Multi-Label Emotion Recognition of Korean Speech Data Using Deep Fusion Models
- 学術誌: Applied Sciences
- 年: 2024
- DOI: 10.3390/app14177604
この論文は、韓国語音声から3種類の音声特徴を抽出し、特徴ごとにディープラーニングモデルを1つずつ作ります。続いて、これらのモデルを2つまたは3つずつ組み合わせたディープフュージョンモデル(deep fusion model)を作り、すべての性能を比較します。音声感情認識(Speech Emotion Recognition, SER)は、録音された発話から感情を自動的に読み取る技術です。多クラス分類(multi-class classification)は感情を1つだけ決めます。多ラベル分類(multi-label classification)は、感情が1つの場合も、複数の感情が混ざっている場合も扱います。
この記事で使う主要な用語は次のとおりです。
- 対数メルスペクトログラム(Log-mel spectrogram): 時間とともに周波数と振幅が変化する様子を、人間の聴覚に合わせた尺度で表した2次元画像
- メル周波数ケプストラム係数(Mel-Frequency Cepstral Coefficients, MFCCs): メルスペクトログラムに離散コサイン変換を適用して得られる係数の集まりで、周波数帯域ごとのエネルギー分布を要約したもの
- 音声品質特徴(Voice Quality Features, VQFs): 音の高さ、音の大きさ、周波数と振幅の揺らぎなど、声そのものの性質を表す22個の音響指標
動機: 感情を1つだけ選ぶ分類では、混ざった感情を取りこぼす
なぜ混合感情の認識が重要なのか
論文が挙げる理由は次のとおりです。
- 感情は、人の心理状態を表す重要な要素である。
- 自動感情認識システムは、うつや不安といったメンタルヘルスの問題を見つけるのに使える。社会の仕組みも医療の仕組みも、このシステムの助けを受けられる。
- 脳波、心拍、脈拍で感情を読み取るには専用の機器が必要である。音声は時間や場所の制約が少なく、データを集めやすい。
- 人とコンピュータのインタラクション(Human–Computer Interaction, HCI)で感情を自動的に読み取れれば、ユーザーの気分に合わせたサービスを提供できる。
- 実際の場面では、感情が混ざって現れることが多い。そのため、混合感情を読み取る多ラベル分類が必要である。
既存研究が扱っていない部分
既存のSER研究は大半が多クラス分類で、音声特徴も1つしか使っていませんでした。ドイツ語のEmoDBデータセットのスペクトログラムを深層畳み込みニューラルネットワーク(Convolutional Neural Network, CNN)に入力した研究がその例です。英語のRAVDESSデータセットのMFCCsを長短期記憶(Long Short-Term Memory, LSTM)に入力した研究もあります。2つ以上の特徴を使った研究もありましたが、主に多クラス分類に集中していました。IEMOCAPデータセットのMFCCsとメルスペクトログラム、韓国語音声データベースのMFCCsとERBスペクトログラムを使った研究がそれにあたります。
多ラベル分類の研究もありました。ある研究は、英語のIEMOCAPデータセットの発話で混合感情を認識しました。別の研究は、多言語のRMLデータセットから対数メルスペクトログラムとMFCCsを抽出し、CNNとLSTMを組み合わせたモデルで混合感情を分類しました。論文が指摘する空白は次のとおりです。
- 韓国語音声で多ラベル分類を行った研究がほとんどない。韓国語音声を使った研究は、多クラス分類にとどまっていた。
- 感情を表すときの話す速さ、抑揚、形態素といった音声信号は、国の文化や言語によって異なる。そのため、各言語の音声データベースでモデルを作る必要がある。
- 大半の研究は、対数メルスペクトログラムかMFCCsのどちらか1つしか使っていない。特徴が1つでは音声データの複雑さを十分に反映できず、混合感情を読み取るのが難しい。
方法: 3種類の音声特徴を個別にも、組み合わせても学習させて比較する
論文は方法を4段階で説明しています。この記事では2段階目をデータ拡張と特徴抽出に分け、5段階で説明します。
事例と資料
分析対象は、NIA(National Information Society Agency)のAI-Hubが提供する韓国語音声感情データベースです。このデータベースには、20代から50代までの話者が年齢や性別の制限なく録音されており、さまざまな状況の発話が含まれています。音声ファイルごとに専門家5人が聞いて感情を判定しており、1ファイルに感情が1個から5個まで付いています。論文は5つの感情を使います。喜び(Happiness)、悲しみ(Sadness)、怒り(Anger)、中立(Neutral)、嫌悪(Disgust)です。
研究チームは、ハードラベリング(hard labeling)でラベルを決めました。5人のうち2人以上が同じ感情を選んだときだけ、その感情をラベルとして残す方式です。こうすると曖昧な感情が除かれ、ファイルごとに感情が1つか2つ付きます。論文の例示ファイルで確認すると次のとおりです。
- Audio#1: 悲しみ2人、中立3人です。どちらの感情も2人以上なので、ラベルは「悲しみと中立」です。
- Audio#2: 中立1人、怒り2人、悲しみ1人、嫌悪1人です。ラベルは「怒り」です。
- Audio#3: 喜び3人、悲しみ1人、中立1人です。ラベルは「喜び」です。
「喜びと嫌悪」「喜びと怒り」の組み合わせは、データが少なく、同時に表現されにくい組み合わせであるため除外しました。最終データは40,645件で、ラベルは感情1つのものが5種、2感情の組み合わせが8種です。ラベルごとの件数は大きく異なります。最も多い「悲しみ」は15,184件(37.4%)で、最も少ない「中立と嫌悪」は266件(0.7%)です。
1段階目: 前処理
- 入力: ハードラベリングを終えた音声ファイル
- 出力: 無音を除いた、長さ3秒以上の音声データ
処理の手順は次のとおりです。
- 音声ファイルを、サンプリングレート(sampling rate、1秒間に音を何回記録するか)16,000 Hzのオーディオデータに変換する。
- Pythonのlibrosaライブラリのpower_to_dBで周波数帯域のパワーをdBに変換し、平均が−70 dBより低いデータを除く。音が小さいと混合感情を読み取りにくいためである。
- 前後の無音を切り取り、長さが3秒以上のデータだけを残す。研究チームは、混合感情を読み取るには音声が最低3秒は必要だと判断した。
この段階で、データの約20%が除かれました。
2段階目: データ拡張
- 入力: 前処理した音声データ
- 出力: ラベルごとの件数の差が縮まった、3秒長のデータ
不均衡な学習データは、ディープラーニングモデルの性能を下げます。データ拡張で使えるデータを増やすと性能が上がり、過少適合と過剰適合も避けられます。処理の手順は次のとおりです。
- 前処理したデータを、学習、検証、テストのデータセットに約6:2:2の比率で事前にランダム分割する。
- 3つのデータセットすべてにシフト拡張(shift augmentation)を適用する。元データを時間軸の右方向に少しずつずらして、複数の断片を作る手法である。長さ3.5秒の音声に、区間3.0秒、シフト時間0.5秒を設定すると、断片が2つできる。
- 最も多い「悲しみ」には拡張を行わない。データが少ない「喜びと悲しみ」「中立と嫌悪」は、シフト時間を短く設定して断片を多く作る。
- モデルの入力サイズをそろえるため、すべてのサンプルの長さを3秒に統一する。
拡張後のデータは、学習71,340件、検証11,968件、テスト12,849件です。学習データで割合が最も高いラベルは「怒り」の6,354件(8.9%)で、最も低いラベルは「中立と嫌悪」の4,835件(6.8%)です。拡張前は37.4%と0.7%だった差が、大きく縮まりました。
3段階目: 特徴抽出
- 入力: 3秒長の音声データ
- 出力: サイズ(100, 300, 1)、(300, 40)、(22)の入力ベクトル
3つの特徴は、含む情報が異なります。対数メルスペクトログラムとMFCCsは周波数領域と時間領域の性質を含み、VQFsは元の信号と声そのものの品質を含みます。処理の手順は次のとおりです。
- 対数メルスペクトログラム: 短い区間ごとに周波数成分を求める短時間フーリエ変換(Short-Time Fourier Transform, STFT)でスペクトログラムを得る。これをメルフィルタバンクでメルスペクトログラムに変換し、各値の対数を取る。メルフィルタ数は100、STFTのhop lengthは25 ms、overlap長は15 msである。
- MFCCs: メルスペクトログラムに離散コサイン変換を適用し、同じSTFT設定で40個を抽出する。1D CNN-LSTMに入力するため、ベクトルを転置(行と列を入れ替え)する。
- VQFs: 音声の周期波形から、22個の音響指標を抽出する。
メル尺度は、人間が周波数を聞き取る方式を反映しています。人間は低い音の違いに敏感で、周波数が高くなるほど鈍感になります。ヘルツ(f)をメル(M)に変換する式は M = 2595 log(1 + f/700) です。
22個のVQFsは6つのグループに分かれます。
- 基本周波数(F0): F0 mean、F0 stdev、2個
- 調波雑音比(Harmonics-to-Noise Ratio, HNR): 1個
- ジッタ(jitter、周波数の揺らぎ): Local、Local absolute、Rap、PPQ5、DDP、5個
- シマー(shimmer、振幅の揺らぎ): Local、Local dB、APQ3、APQ5、APQ11、DDA、6個
- 強度(intensity): max、mean、min、dynamic range、Intonation variation、5個
- ピッチ(pitch): max、mean、range、3個
グループごとの個数を足すと 2+1+5+6+5+3=22 です。
4段階目: モデル構成
- 入力: 3種類の特徴ベクトル
- 出力: 7つのモデルが出す5つの感情の確率
単一モデル3つは、特徴1つに構造1つを対応させました。
- ビジョントランスフォーマー(Vision-Transformer, ViT)と対数メルスペクトログラム: ViTは画像をパッチ(小さな断片)に分け、セルフアテンションでパッチ間の関係を学習する。研究チームは、スペクトログラムを100×10サイズの長方形パッチに分けた。300÷10=30なのでパッチは30個で、パッチ1つの埋め込み次元は100×10×1=1000である。パッチは位置埋め込みとトランスフォーマーエンコーダ6層を経たあと、ドロップアウトを適用した多層パーセプトロン(Multi-Layer Perceptron, MLP)で分類される。
- 1D CNN-LSTMとMFCCs: 1D CNN 3層のフィルタ数と長さは(32, 3)、(64, 3)、(128, 3)である。畳み込みと最大プーリングを経ると(300, 40)の入力が(35, 128)になり、LSTM層はこれを(1, 15)のベクトルに変換する。CNNが短い区間のパターンを捉え、LSTMが長い順序情報を学習する。
- 深層ニューラルネットワーク(Deep Neural Network, DNN)とVQFs: 隠れ層は32個、16個のニューロンで、出力層は5個のニューロンである。層の間にGELU活性化関数、バッチ正規化、ドロップアウトを入れた。
長方形パッチを選んだ理由は2つあります。正方形にするには元の画像サイズを変える必要がありますが、長方形パッチは元の画像をそのまま使えます。また、時間軸に沿って分けた長方形パッチは、短い時間の周波数と振幅の変化を捉え、感情の変化を読み取りやすくなります。研究チームは、ImageNetで事前学習済みのViTを使わず、韓国語SERに合わせたモデルをゼロから学習させました。
フュージョンモデル4つは、単一モデルの特徴を組み合わせます。
- ViT + 1D CNN-LSTM
- ViT + DNN
- 1D CNN-LSTM + DNN
- ViT + 1D CNN-LSTM + DNN
各単一モデルの全結合層の出力を連結し、MLPで最終分類します。
出力層は5つの感情に合わせてノード5個で構成し、各ノードにシグモイド関数を適用して感情ごとの確率を出します。確率が閾値を超えればその感情があるとみなし、超えなければないとみなします。そのため、出力は感情0個から5個までのどんな組み合わせにもなり得ます。研究チームは閾値を、よく使われる0.5ではなく0.45にしました。0.45のほうが複数の感情の組み合わせがよく出て、性能が高かったためです。
損失関数は二値フォーカルロス(binary focal loss)です。式は BFL(y, p̂) = −αy(1−p̂)^γ log(p̂) − (1−y)p̂^γ log(1−p̂) です。yは正解(0または1)、p̂は予測確率、αはクラス均衡の重み、γは難しい事例にどれだけ重みを与えるかを決める値です。すでによく当てている事例は(1−p̂)^γが小さくなって損失が減り、よく間違える感情には損失がより大きく付きます。拡張だけでは元データの極端な不均衡を解消しきれないため、この損失関数を使いました。
学習にはAdamオプティマイザを使いました。探索範囲は、学習率[0.0005, 0.001]、エポック[50, 150]、バッチサイズ[32, 256]、早期終了の忍耐回数[5, 8]、γ[0.5, 2.5]で、この範囲で最も性能が良い値を選びました。
5段階目: 性能検証
- 入力: テストデータに対する感情ごとの予測(あり1、なし0)
- 出力: 感情ごと・平均の二値正確度、適合率、再現率、F1スコア
混同行列は、予測と実際を突き合わせ、真陽性(TP)、真陰性(TN)、偽陽性(FP)、偽陰性(FN)に分けた表です。研究チームは感情ごとに混同行列を作り、4つの指標を計算しました。
- 二値正確度(binary accuracy): (TP + TN) ÷ (TP + FN + FP + TN)。ある感情の有無をどちらも当てた割合です。
- 適合率(precision): TP ÷ (TP + FP)。「ある」と予測したもののうち、実際にある割合です。
- 再現率(recall): TP ÷ (TP + FN)。実際にあるもののうち、「ある」と当てた割合です。
- F1スコア: 2 × 適合率 × 再現率 ÷ (適合率 + 再現率)。適合率と再現率の調和平均です。
計算例を示します。ViT単一モデルの喜びは、再現率0.423、適合率0.582です。F1スコアは 2 × 0.582 × 0.423 ÷ (0.582 + 0.423) = 0.492 ÷ 1.005 ≈ 0.490 で、論文の表の値と一致します。平均二値正確度は、5つの感情の二値正確度を平均した値です。ViTと1D CNN-LSTMのフュージョンモデルは (0.776 + 0.684 + 0.654 + 0.686 + 0.761) ÷ 5 = 3.561 ÷ 5 ≈ 0.712 です。
結果: 対数メルスペクトログラムとMFCCsを組み合わせたモデルが、平均二値正確度71.2%で最も高かった
長方形パッチと正方形パッチ
研究チームは、単一モデルを作る前に、ViTのパッチの形を先に比較しました。長方形パッチは(100, 300, 1)の画像を(100, 10, 1)のパッチ30個に分けました。正方形パッチは(128, 128, 1)の画像を(32, 32, 1)のパッチ16個に分けました。
平均二値正確度は、長方形パッチが0.678、正方形パッチが0.677でほぼ同じでした。平均F1スコアは、長方形パッチが0.512で、正方形パッチの0.499よりわずかに高くなりました。研究チームは、長方形パッチがスペクトログラムの時間、周波数、振幅の特性をよりよく捉え、混合感情の認識に役立ったと解釈しました。そのため、以降のモデルには長方形パッチを使いました。
単一モデルとフュージョンモデルの比較
7つのモデルを、平均二値正確度と平均F1スコアで比較しました。
| モデル | 平均二値正確度 | 平均F1 |
|---|---|---|
| ViT(対数メル) | 0.678 | 0.512 |
| 1D CNN-LSTM(MFCCs) | 0.707 | 0.499 |
| DNN(VQFs) | 0.572 | 0.389 |
| ViT + 1D CNN-LSTM | 0.712 | 0.522 |
| ViT + DNN | 0.690 | 0.465 |
| 1D CNN-LSTM + DNN | 0.701 | 0.478 |
| 3モデルすべて | 0.706 | 0.509 |
出典: Park, S.; Jeon, B.; Lee, S.; Yoon, J. (2024), Applied Sciences 表8・表9。CC BY 4.0(ライセンス)。筆者が平均値だけを抜き出して再構成しました。
単一モデルのうち、平均二値正確度は1D CNN-LSTMが70.7%、平均F1スコアはViTが51.2%で、それぞれ最も高くなりました。DNNは、この2つのモデルより大きく低い結果でした。特に怒りの再現率は0.093、F1スコアは0.149にとどまり、VQFsは怒りを読み取るうえで大きな助けになりませんでした。
ViTと1D CNN-LSTMを組み合わせたフュージョンモデルは、2つの指標とも7モデルの中で最も高くなりました。4つのフュージョンモデルのうち、3モデルをすべて組み合わせたモデルがそれに次ぎました(平均二値正確度0.706、平均F1 0.509)。ただし7モデル全体で見ると、このモデルは1D CNN-LSTM単一モデル(平均二値正確度0.707)とViT単一モデル(平均F1 0.512)よりわずかに低くなっています。DNNが入ったフュージョンモデルはDNN単一モデルよりは良かったものの、ViTと1D CNN-LSTMのフュージョンモデルを超えられませんでした。研究チームは、性能の低いDNNがフュージョンモデル全体の性能を押し下げたと解釈しました。
最良モデルの感情別性能
ViTと1D CNN-LSTMのフュージョンモデルの感情別の値は次のとおりです。
| 感情 | 二値正確度 | 再現率 | F1 |
|---|---|---|---|
| 喜び | 0.776 | 0.471 | 0.531 |
| 悲しみ | 0.684 | 0.481 | 0.546 |
| 怒り | 0.654 | 0.621 | 0.526 |
| 中立 | 0.686 | 0.528 | 0.554 |
| 嫌悪 | 0.761 | 0.368 | 0.451 |
出典: Park, S.; Jeon, B.; Lee, S.; Yoon, J. (2024), Applied Sciences 表9。CC BY 4.0(ライセンス)。筆者が適合率の列を除いて再構成しました。
適合率は、喜び0.610、悲しみ0.631、怒り0.456、中立0.582、嫌悪0.584です。嫌悪は適合率が0.584であるのに対し、再現率は0.368で、5つの感情の中で最も低くなっています。
二値正確度とF1スコアの違い
最良のモデルでも、二値正確度に比べて再現率とF1スコアが低くなりました。研究チームは、このモデルはすべての感情で真陰性率(True Negative Rate, TNR)が高く、偽陽性を減らす点に強いと見ました。一方、感情がはっきりしない録音や複数の感情が混ざった録音では、実際の感情を漏れなく見つけるのが難しい状況でした。適合率と再現率がずれる現象は、多ラベル感情認識でよく見られる難しさです。
この記事は、感情別の判断では論文の表の数値を基準にします。怒りの再現率は、モデルによって大きく異なりました。表8の列の順序(二値正確度、再現率、適合率、F1)に従うと、単一モデルの怒りの再現率はViTが0.448、1D CNN-LSTMが0.304、DNNが0.093です。フュージョンモデルでは0.621に高まりましたが、適合率は0.456です。
なお、論文の本文は、このフュージョンモデルで怒りと嫌悪の再現率が低いと記しています。表9の数値では、この記述に当てはまるのは嫌悪(0.368)だけです。この違いは、平均値で決めたモデルの順位には影響しません。
最初の問いに答えると、韓国語音声の一区間から複数の感情を同時に読み取ることは可能です。最良のモデルは、感情ごとの有無を平均71.2%当てました。ただし平均F1スコアは52.2%なので、筆者はこの水準を、人の判断を助ける補助的な用途にとどまるものと考えます。
意義と限界
何が変わるのか
- 韓国語音声データベースで、多ラベル感情分類を行った。
- 対数メルスペクトログラム、MFCCs、VQFsを1つずつ使ったモデルと、2つ、3つを組み合わせたモデルを、同じデータで比較した。
- 対数メルスペクトログラムとMFCCsを組み合わせた構成の性能が最も良かった。DNNを含む組み合わせは、ViTと1D CNN-LSTMの組み合わせを超えられなかった。ViT + DNNは平均二値正確度が0.690で、1D CNN-LSTM単一モデルの0.707よりも低かった。
実務者にとっての有用性
研究チームは、このモデルがメンタルヘルスケア、カスタマーサービス、エンターテインメント、スマートサービスシステムに応用されることを期待しました。ただし、カスタマーサポートの通話録音での性能は、この論文では検証されていません。感情別に見ると、嫌悪の再現率は0.368、怒りの適合率は0.456にとどまります。
そのためこのモデルは、「悲しみと怒り」のように一緒に収められた感情を記録しようとする試みで参考にできる程度と見るべきです。このデータには「悲しみと怒り」のラベルが1,625件あります。
研究チームは、学習データが20代から50代まで年齢と性別の制限なく録音されている点を挙げ、韓国語を使う現場のさまざまなユーザーに適用できると見ました。しかしこの結果は単一のデータベースから得られたもので、年齢・性別ごとの性能は報告されていません。他の話者集団や他の現場で使うには、別途検証が必要です。閾値を0.5から0.45に下げて複数の感情の組み合わせがよく出るようにした設定は、実務でも参考にする価値があります。
研究者にとっての有用性
研究チームは、この研究が以降の研究の比較基準として使われることを期待しました。筆者の見るところ、ハードラベリング、シフト拡張、二値フォーカルロス、閾値の設定まで、手順が数値とともに記されているので、同じデータで再実験してみる価値があります。ただし、学習率、エポック、バッチサイズ、γといったハイパーパラメータは範囲だけが示され、最終的な選択値は記されていません。データはAI-Hubで入手できます。
パッチの形による違いは、平均二値正確度ではほとんどなく、平均F1スコアでは小さなものでした。研究チームは、長方形パッチが小規模な音声データでの帰納バイアスの不足を補える可能性があると解釈しました。しかし、この実験だけではその効果は確認されていません。パッチ設計を扱う研究であれば、この点を別途検証してみる価値があります。
論文が示した限界
論文自身が示した限界は4つあります。
- MFCCsは背景雑音に敏感で、騒がしい環境では性能が下がる可能性がある。前処理の段階にノイズ除去の手法を入れる必要がある。
- ViTは帰納バイアスが低く、小規模なデータセットでは性能が下がる可能性がある。データをさらに集め、長方形パッチと大規模データベースを併用してみる必要がある。
- モデルの判断過程を解釈する手法を使っていない。今後の研究で、Grad-CAMやSHAPを使って、特徴が予測に与える影響を調べる計画である。
- 多ラベル感情認識の研究は少なく、最近の研究は表情やテキストを音声と併用するマルチモーダル方式が多い。対象とする感情の数や種類も研究ごとに異なり、既存研究と性能を直接比較することが難しい。
このほか研究チームは、LSTMしか使わなかった点を挙げ、CARUやGRUなど他の再帰型ニューラルネットワークを試せば、複雑な時間パターンをより適切に扱える可能性があると付け加えました。
筆者が考える適用条件
以下は論文に書かれた内容ではなく、筆者が実務への適用を念頭に置いて付け加える条件です。
- ラベルを複数人で判定する必要があります。ハードラベリングは、判定者5人のうち2人以上の同意を基準にするため、判定者が1人しかいない資料にはそのまま適用できません。
- 発話の長さを確認する必要があります。3秒より短い応答が多い相談資料では、前処理で除かれる割合が大きくなります。
- 電話相談のように雑音が混ざった録音であれば、先にノイズ除去を行う必要があります。
- 使う目的に応じて指標を決める必要があります。誤警報を減らすことが重要であれば二値正確度と適合率を、感情を漏れなく見つけることが重要であれば再現率を基準にします。
- この結果は、AI-Hubデータの5つの感情についてのものです。自社の録音の感情分布や話者の特性が異なる場合は、再学習と再検証が必要です。
すぐに試してみること
論文の手順を自分の資料にそのまま適用する最初の段階として、次の3つを試してみることができます。
- 複数の判定者が感情を付けた録音があれば、2人以上が同じ感情を選んだときだけラベルとして残すハードラベリングを適用します。ラベルごとの件数を表にまとめ、不均衡がどれほど大きいかを確認します。
- 録音を16,000 Hzでサンプリングし、平均−70 dBより小さいデータと前後の無音を除いたうえで、3秒以上だけを残します。残った音声から、メルフィルタ100個の対数メルスペクトログラムと40個のMFCCsを一緒に抽出します。
- 感情ごとにシグモイド確率を出すモデルを作ったら、閾値0.45と0.5で感情別の二値正確度、再現率、F1スコアをそれぞれ求めて比較します。
ビジネスインテリジェンスラボは、音声やテキストなどの非構造化データを実務の判断につなげる研究を続けています。関心のある読者は、ブログの他の論文解説もあわせてお読みください。