羊をめぐるブログ

趣味の色々について書きます

Multi-Modal Learningのサーベイ論文を読んだ

 

マルチモーダル学習についてのサーベイ論文を読んだので,見返しようにまとめてみたいと思います.

論文情報

Multimodal Machine Learning: A Survey and Taxonomy

Introduction

マルチモーダル学習の分野はそのタスクに寄って大まかに5つのカテゴリに分けられる.

Representation

マルチモーダルなデータをどう表現したり要約したりするかについて.テキスト情報や信号データなどを同一空間で扱えるかなど.

Translation

あるモダリティのデータを別のモダリティのデータに変換するタスク.画像からその説明文を生成するなど.正解が1つに絞られない,

Alignment

複数のモダリティ間の直接的な関係を明らかにするタスク.

料理を作るビデオを例とすると,その各シーンを正確に並び替えるには料理のレシピの情報と画像中の情報を結びつける必要がある.

Fusion

ある予測をするために複数のモダリティの情報を利用するもの.例として,スピーチの内容を正確に判定するために,音声に加えて動画中の話者の口の動きを使うなど.

Co-learning

あるモダリティ内で作られた予測モデル,ベクトル表現などを別のモダリティに転移させるようなもの.Zero-shot learningやco-training,conceptual groundingなどが例としてあげられる.あるモダリティ上で得られた知識が別のモダリティでどう活かされるかに興味が置かれる.

応用先

  • 唇の動きと音声を利用したスピーチ認識(Audio Visual Speech Recognition:AVSR).信号がノイジーな場合などに有効.
  • マルチメディアのインデクシングと検索.画像や音声をキーワードベースでなく直接画像などで検索する.
  • マルチモーダルデータを用いて人間の振る舞いを理解する.ビデオや発言からの感情認識など.
  • 言語と画像を対象としたもの.画像のキャプショニングなど.画像キャプショニングでは評価方法が一番の課題らしい.

Representation

Representationは大まかにJointとCoordinateの2つの種類に分けられる.

f:id:sheep96:20190329230313p:plain

Joint Representation

 {\bf x}_m = f({\bf x}_1,...,{\bf x}_n)

射影fとしてはDNNやボルツマンマシンなどが使われる.各モダリティの特徴表現(BoW,メル周波数ケプストラム係数など)への依存がある.

  • 一番シンプルな方法は,書くモダリティの特徴量をconcatinateするというもの.
  • 近年はニューラルネットやオートエンコーダを使うものが多い.事前学習が可能な点が有用だが,データが大量に必要だったり欠損データへの対応が難しい.
  • その問題に対応するためにDeep Boltz Machineが利用されたりする.DBMのような生成可能なモデルを使うことで一部モダリティの欠損に対応することができる.
  • シーケンス長が一定でないデータに対してはRNNなどの時系列モデルが用いられる.

Coordinate

 f({\bf x}_1) \sim g({\bf x}_2)

各モダリティに,共有空間へ射影するための関数を用意するタイプ.関数はモダリティ間で異なるが,射影後の空間は共有される.

  • Smilality models:モダリティ間の特徴ベクトルの距離を最小化するようなモデルを設計する.Web Scale Annotation by Image Embedding: WASABIEなどが有名なタスク.従来はモダリティ間の関係を表すラベルを元に射影行列を設計することなどがされていたが近年ではNNが用いられる.DeViSEなどはEnd-to-EndでWASABIEを行う.
  • Structured coordinate space: 距離以外の制約を加えてモデルを設計する.Cross-modal Hashingなどがある.

 

Translation

Translationは大まかにexample-basedとgenerativeの2つに分けられる.

Example-based

基本的に辞書データをベースにtranslationを行う.

Retrieval based modal

辞書データから最も近いデータを持ってくるというもの.モダリティの中で近いデータの検索を行うものと,共有空間内で近傍データを検索するものに別れる.テキストをスピーチに変換するタスクや画像のキャプション付などに用いられた.semantic空間を用いた検索は双方向の翻訳が容易などの利点があるが,その空間の設計のために辞書データ(学習データ)が大量に必要となるなどの問題がある.

Combination-based Model

検索ベースだが,その検索のクエリとして複数のモダリティのデータを結合したものを用いる.多くがhand-crafted特徴を用いている.

Generative-approaches

与えられたデータをもとに別モダリティのデータを生成するアプローチ.
ソースとターゲット両方のモダリティの性質を理解する必要があり難しい.

Grammar-based Model

事前にある程度Translationの規則(Grammar)を決めておくもの.

画像やビデオより物体や動作などの高レベルの概念を取得し,それをもとにTranslationを行うような感じ.

Encoder-decoder Model

ニューラルネットを用いたE2Eな手法.一度データを何らかのベクトルに落としてから別モダリティのデータへデコードする.機械翻訳のためのモデルがそのまま画像のキャプショニングに用いられたりしている.

Continuous generation Model

テキストから信号への変換のように,連続的なデータをオンラインに,タイムスタンプごとに変換していくタスク.graphicalモデル,continuous encoder-decoderモデルなどが用いられる.

Model evaluation and discussion

Translationの評価は難しい.現状人を集めて評価を行ってもらったり,別モダリティのデータのペアを互いにtranslateしあう,検索システムを使うなどの方法が取られている.

 

Alighment

異なるモダリティのデータの一部が与えられたとして,それらのなかで関連する部分を探すようなタスクと本論文では定義している.例えば画像とそれに対するキャプションが与えられ,画像中のキャプションに関連する箇所を特定するなど.

大まかにimplicitとexplicitに分割する.

Explicit alignment

あるインスタンスについてそのサブコンポーネントが2つ以上ある場合のalighnmentをここにカテゴライズする.

Explicit alighnmentにおいては類似度のはかり方が重要となる.学習ベースで類似度指標を設計する手法はUnsupervisedとsupervisedに分けられる.

Unsupervisedの多くは統計的機械翻訳の手法やgenome sequenceなどの手法からインスパイアされたもである.代表としてはDynamic time warping (DTW)などがある.

Supervisedの手法としては,CCAや混合ガウスモデルを用いるものなどが提案されてきたが,近年ではDeepLearning手法が台頭している.

Implicit alignment

explicitと違い,implicit alighnmentは他のタスクで利用するための潜在表現として利用される.これはVQAや機械翻訳などの厳密なalighnmentがないタスクに対する手法のパフォーマンスの向上に利用できる.手法は大まかにGraphical modelとNeural Networkに分けられる.

Graphical modelは機械翻訳やspeech phenemesのalignmentに利用されてきた.しかしそれらは人手での単語間のマッピングなどを必要とする.

Neural Networkは近年よく用いられており,encoder-decoderモデルはそれら従来の機械翻訳の問題に対応できる.しかし,implicit alignmentを利用しない場合,encoderへの要求が大きくなってしまう(うまく文書全体,画像全体を潜在表現に落とし込むことが求められる).この問題に解決する手法としてはattentionが有名である.

Discussion

Multimodal Aligmentの難しさとしては,1.厳密にaligmentがアノテーションされたデータセットが少ない,2.モダリティ間の類似度指標を定義するのが難しい,3.モダリティ間のデータに一対一の関係が成り立たない,などがある.

 

Fusion

fusionは,複数モダリティのデータを用いて予測を行うような分野である.マルチモーダル学習の中で最も歴史が長いものの一つ.

メリットとしては,複数モダリティのデータを用いることでよりロバストな予測を行うことができる,どこかのモダリティのデータが欠けていても予測ができる,などがある.

応用分野はAudio Visual Speech Recognition (AVSR),感情認識,医用画像解析,マルチメディアイベント検知など幅広い.

ここではFusionをmodel-agnostic,model-basedに分類する.

 

Model-agnostic approaches

model-agnosticは機械学習の手法と直接関係しないようなアプローチである(特徴量の組み合わせ方など).

歴史的にはこちらの方がより多く取り組まれてきた.大まかにearly, late, hybridに分けられる.

earlyは各モダリティの特徴量をそのままconcatしたりするというものが多い.各モダリティのlow levelでの関係を学習できる,基本的にモデルが一つしか必要ないなどの利点がある.

lateでは各モダリティの特徴を元にそれの平均をとる,結果のvotingを行う,分散やchannel noiseを元に重み付けをする,モデルを学習するなどの手法がとられた.これらの手法には各モダリティで別のモデルを利用し異なるアウトプットを得ることで,それらを柔軟に組み合わせられるという利点がある.また,どれかのモダリティのデータが欠けていても訓練や予測ができる.しかし,モダリティ間のlow levelでの関係を捉えられているとは言えない.

hybridではその両方を組み合わせており,話者特定やmultimediaイベント検出で成果をあげている.

 

Model-based approaches

単一モダリティに対して利用される機械学習手法を複数モダリティ用に拡張する.

Multiple kernel learning (MKL) はカーネルSVMを拡張したものである.モダリティごとに別々のカーネルを利用する.MKLベースの手法は様々な応用ができ,また,損失関数がconvexなのでスタンダードな最適化パッケージを利用できる.分類,回帰の両方に対応できるという利点もある.デメリットとしてはトレーニングデータへの依存の高さ,テスト時の推論の遅さ,メモリの使用料などがあげられる.

Graphical Modelsによる手法は大まかに,同時確率をモデリングするgenerativeと条件付き確率をモデリングするdiscriminativeに分けられる.初期ではcoupled and hidden Markov modelとdynamic Bayesian networkを組み合わせるgenerativeモデルが提案された.

Graphical Modelの利点として,データの局所的,一時的な構造を捉えるのが容易であるという部分がある.また,専門家の知見をモデルに組み込み,解釈可能なモデルを設計することができる. 

ニューラルネットは近年よく利用される.主な応用例としては,image captioning,audio-visual emotion classificationにCNN,RNNを用いるケースがあげられる.ニューラルネットの優位な点として,大規模なデータを有効に利用できるという点,RNN系列の手法がマルチモーダルでの表現学習とfusionの両方に利用できるという点がある.また,他に劣る点としては,結果の解釈性が低く,多くのデータセットが必要になるということがある.

全体として,現状,ニューラルネット系列の手法が多く利用されるが,以前graphical modelとmultiple kernelも利用される.現状の課題点として,1) 信号が稠密なのに対して,重要なイベントがスパースである,2) データの全体でなく,一部を利用するようなモデルを設計するのが難しい,3) モダリティごとに違うタイプのノイズが違うタイミングで現れてくる,などがある.

Co-learning

co-learningはあるモダリティにおいてモデルを設計する際,(データが豊富にあるような)別のモダリティのデータを利用するというものである.co-learningにおいては,訓練時のみに別モダリティのデータを利用し,テストの際には利用しない.co-learningはそれが訓練時に利用するデータのリソースに応じて,parallel,non-parallel,hybridに分けられる.

f:id:sheep96:20190921002825p:plain

Parallel data

parallel dataは,あるモダリティのデータと別モダリティのデータが完全にリンクしているようなケースである.例として,映像とその音声の組み合わせがあげられる.このケースにおいては,それぞれのモダリティにおいてモデルの性能の向上が期待できる.

Co-trainingはマルチモーダルなタスクに置いて少量しか訓練データが存在しない際に,ラベル付きのデータを生成するような処理である.例として,ラベルなしデータに対応するラベルありデータを別モダリティから取り出すために,弱学習機を各モダリティのために設置するなどが行われる.
このようにCo-trainingは学習データの増加に利用できるが,モデルのオーバーフィットなどが課題になる.

 
また,転移学習もparallelデータに大してco-learningを行う方法の一つである.
multi-modal Boltzmann machineやmulti-modal auto-encoderはあるモダリティの情報を別モダリティに転移させるのに利用される.これはマルチモーダルな表現の学習だけでなく,単一モダリティの表現力の向上も行うことができる.具体例として,スピーチ情報をリップリーディングに組み合わせ訓練を行いつつ,テストを行う際にはスピーチ情報を必要とせずリップリーディングの性能を向上させた研究が行われている.

Non-Parallel data

non-parallel dataは,モダリティ間でインスタンスが共有されていないが,カテゴリやコンセプトは共有されているようなケースである.このケースで利用される手法は,表現学習の際によりセマンティックな情報を取り込ませたり,未知オブジェクトへの対応などに利用できる.

転移学習はデータがnon-parallelな状況に対しても適用できる.転移学習によって,よりデータが多く綺麗なモダリティから良い表現を得るといったことが可能になる.代表として,タグの学習済みエンベディングを画像分類モデルの訓練に組み合わせるというものがある.このように訓練されたモデルは,たとえ分類が間違っていたとしても,元のカテゴリに近いクラスと判定したりと,エラーに関しても多くの情報量を含んでいる.

Conceptual groundingは言語上の意味情報だけでなく,視覚や音声など他のモダリティの追加情報を意味づけに利用するようなケースである.人間の知識は様々な知覚情報に大きく依存しているため,言語情報のみで意味づけを行うのは最適とは言えない.
初期の研究としては,各モダリティ間で共通の潜在表現を獲得するもの(Parallelなデータに対して),各モダリティそれぞれで表現学習を行なったのちそれを組み合わせる(Non-Parallelなデータに対して) などが行われていた.一度マルチモーダルな表現が得られれば,それはピュアなNLPタスクに利用できる.使用の一例として,それらの表現をメタファーやリテラル言語の分類に利用する研究が行われている.これらの表現はデータが意味的にどの程度似ているかを測る際などに有用である.
Conceptual groundingによって様々なタスクのパフォーマンス向上が期待できるが,groundingがタスクに関係ないようなケースでは,逆にモデルの性能を劣化させてしまうこともある(見た目が似ているような概念を結びつけるタスクなど).

Zero-shot Learning (ZSL)は見たことのないコンセプトを持つデータをモデルに知覚させるようなタスクである.例えば,猫という概念を猫とラベルがついたデータなしにモデルに認識させることを目標とする.これは画像認識など,ラベルを与えなければならないデータが際限なく存在するようなタスクで重要となる.

ZSLには大まかにunimodalとmultimodalの二つのタイプがある.unimodal ZSLでは,対象のパーツや特性を元に認識を行う.例として,音素を元に聞いたことのない単語認識したり,画像中の物体のパーツの一部から判定するといったものが存在する.multimodal ZSLでは,他のモダリティの情報を利用して本来のモダリティの認識を行う.multimodal ZSLは,Non-Parallelなデータに適用する際,適用するモダリティごとにオーバーラップしているクラスが多くの場合で異なってしまうという問題がある.
ZSLの例として,画像特徴を単語の意味空間に埋め込む研究が行われた.これによって,unseenなオブジェクトは視覚的に類似している単語に割り当てが行われる.他にも画像とコンセプトが協調しているような空間を設計する研究,いくつかの画像から人の想像している単語を予測する研究などが行われてきた.

Hybrid Data

Hybridのケースは,non-Parallelな2つのモダリティを,共有されている1つのモダリティによって橋渡しするようなものである.有名な手法として,Bridge Correlational Neural Networkというものがある.適用先として例えば多言語での画像キャプショニングがあり,その場合は画像が複数言語の間で共有される情報となる.この手法は別言語への翻訳を行う際,常に対応するコーパスが存在しないような場合に利用される.

 Co-Learningはfusion,translation,alignmentなど様々なタスクに適用でき,実際,画像認識,動作認識,ASVRなど様々な箇所に応用されている.

 

長くてめちゃめちゃ雑になってしまいました...