唯物是真 @Scaled_Wurm

プログラミング(主にPython2.7)とか機械学習とか

論文紹介 “Representing Topics Using Images” (NAACL 2013)

研究室で論文紹介したので適当に以下に資料を貼っておく。
論文を読んだ後で気づいたけど、NAACL 2013はまだやっていないので、preprintバージョン(?)っぽい。
何故か研究室での論文紹介は、資料が英語で口頭説明が日本語なので、以下では日本語の説明を加えておいた。

英語が間違っている部分があると思いますが、コメントで指摘なりスルーするなりしてください。
スライドはこうした方がいいとかもあったらぜひ。
後から読むと説明の流れが変かな?ってところもありますね。

論文中の図表ってどの程度載せていいんでしょうか……?
やっぱりまったく載せないほうがいいんですかね。

論文紹介

概要

自然言語処理ではトピックモデルというものがよく用いられている。
トピックモデルが出力したトピックについて適切な画像を出力するというのが本研究のタスク。
このタスク自体が面白いと思うんですが、完全に新しい研究というわけではなくて、このような研究は2012年辺りからいくつかでているらしいです。
この論文の貢献は画像自身の視覚的な特徴を用いたところ。

トピックとトピックモデルって何?

トピック(話題)は単語の分布やまとまりと考えるとわかりやすい。
「スポーツ」トピックならサッカーや野球に関連した単語がでやすいが、「食べ物」トピックにはそれらの単語はほとんど出てこないといった感じになる。
f:id:sucrose:20130518183922j:plain
トピックモデルはテキスト集合から、テキストに含まれるトピックと、トピックに含まれる単語を推定している。
トピックモデルにはLatent Dirichlet Allocation(LDA)やProbabilistic Latent Semantic Analysis(pLSA)などの様々なモデルが有る。
f:id:sucrose:20130518184545j:plain

トピックのラベル付け

トピックは単語の集合であるため、簡単に解釈できないことがある。
f:id:sucrose:20130518185035j:plain
近年トピックに対して、適切な単語や画像によるラベル付けを行う研究がされており、本研究では後者を扱う。
f:id:sucrose:20130518185130j:plain

手法の流れ

f:id:sucrose:20130518185733j:plain
トピックの上位n単語を使ってWeb画像検索で画像を収集。
f:id:sucrose:20130518185804j:plain
画像間の類似度(テキストと視覚的な情報の両方を使う)を使ってグラフ構造を構築。
f:id:sucrose:20130518185742j:plain
(Personalized) PageRankアルゴリズムによって画像のランキングを行う。
画像間の類似度と画像とトピック間の類似度の両方を使う
f:id:sucrose:20130518185817j:plain

提案手法

画像の収集

トピックごとに上位5単語を使って20の画像をWikipediaから収集。
Wikipediaの画像を使った理由は、ライセンス的に便利など。
f:id:sucrose:20130518190402j:plain

特徴量の抽出

テキスト情報
  • 画像検索結果からタイトルとリンクの情報を使う。

単語分割やstop wordの除去などの前処理をする

視覚的な情報

SIFT特徴量を用いる
SIFTは位置変化や拡大縮小、回転に強い性質があり、一般物体認識の分野でよく用いられている。

SIFT

以下のページの説明を読んだほうがわかりやすいかも。

各画像について複数の特徴点が選ばれて、それぞれ128次元のベクトルが作られる。
この特徴点の選び方として今回はdense sampling(グリッドなどを作って等間隔で選ぶ)という方法を用いている。
128次元のベクトルは特徴点の周囲を4×4分割したそれぞれについて、上下左右斜めの8方向について画像の勾配(色の差)の大きさを表したもの。
この勾配の方向は相対的になっていて、これにより回転不変性がある。

以下は特徴点の例(dense samplingではない)。点それぞれについて128次元のベクトルが作られる
f:id:sucrose:20130518195048p:plain

PageRank

グラフ構造から重要なノードを見つけ出すためのアルゴリズム。
Googleで使われているアルゴリズムとして有名。
f:id:sucrose:20130518195306j:plain
前の項はそのノードに向かって入ってくるエッジの重み(遷移確率)をエッジの元のノードのスコアとかけて総和を取ったもの
f:id:sucrose:20130518195628j:plain
後ろの項はランダムなテレポーテーションを表している。
またpersonalizationとしてトピックと画像の類似度を入れることで、トピックと類似度が高い画像が選ばれやすくする。
f:id:sucrose:20130518195927j:plain

グラフの重み付け

画像間のグラフのエッジの重み付けを行う。
テキスト情報を使ったものとしてPMIとESA、視覚的な情報を使ったものとしてSIFTのBag of visual wordsを用いる。
PMIの平均とESA・SIFT(bag of visual words)のコサイン類似度を重みとする。
f:id:sucrose:20130518200506j:plain
PMIは共起の強さを測る尺度としてよく用いられる。
f:id:sucrose:20130518200558j:plain
ESAは今回はじめて目にした手法で、テキストをWikipediaの記事との関連度のベクトルに変換する。

f:id:sucrose:20130518200608j:plain

Bag of Visual Words

以下のページが参考になりました

以下のbag of visual wordsのスライドはあまり評判がよくなかったので、上の記事のほうがわかりやすいような気がします。

bag of visual wordsは一般物体認識の分野でよく使われています。
自然言語処理でよく使われるbag of wordsによく似ています
bag of wordsは単純に文書中の単語の頻度を数えたものです。
f:id:sucrose:20130518201057j:plain
bag of visual wordsの作り方の説明をします。
まずは複数の画像のすべての局所特徴量(今回はSIFT)についてクラスタリングを行います。
以下のスライドでは画像が局所特徴量(SIFTの128次元ベクトル)を表していると考えてください。
f:id:sucrose:20130518201231j:plain
次のそのクラスタの中心を計算します。
このクラスタ中心がvisual wordsとなります。
f:id:sucrose:20130518201422j:plain
前のステップで計算したvisual wordsを使って画像を表します。
画像のすべての局所特徴量について、一番近いvisual wordsの頻度を数えて、その結果がbag of visual wordsとなります。
f:id:sucrose:20130518201449j:plain

Personalization

同様に、今度はトピックの上位単語と画像のテキスト情報を用いて、PMIとESAによる類似度を求めてpersonalizationベクトルの値とします。
f:id:sucrose:20130518201848j:plain

実験設定

New York TimesWikipediaの記事についてトピックモデル(LDA)を適応した結果について実験。
New York Times 100トピック、Wikipedia 200トピックの合計300トピックについてそれぞれ20の候補画像、つまり6000個の画像を用意して実験。

人手評価

クラウドソーシングした。
トピックの上位10単語を与え、画像に0点(まったく合っていない)から3点(とても合っている)までの評価をしてもらった。

得点が高かった画像(論文中から)
f:id:sucrose:20130518203148j:plain

評価尺度

  • Top-1 average rating

各トピックについてシステムが出力したランキングの最上位のスコアの平均

  • Normalized Discounted Cumulative Gain

よくランキングの評価で用いられる尺度で、特にそれぞれのアイテムに関連度のスコア(今回は人手評価による0から3)が与えられている時に使われる。

結果

画像間の類似度として視覚的な情報を用いると良くなっている。

以下の図表は論文中のものに線を引いたもの
f:id:sucrose:20130518203908j:plain
左がシステムの出力で、右が人手評価のスコアが高かったもの。
f:id:sucrose:20130518204043j:plain

抽象的なトピックや候補画像が検索で得られないもの(多義性?)についてはうまくいかなかった。