jojonki / arXivNotes

IssuesにNLP(自然言語処理)に関連するの論文を読んだまとめを書いています.雑です.🚧 マークは編集中の論文です(事実上放置のものも多いです).🍡 マークは概要のみ書いてます(早く見れる的な意味で団子).
https://github.com/jojonki/arXivNotes/issues
194 stars 8 forks source link

2018: Learning and Evaluating Sparse Interpretable Sentence Embeddings #137

Open jojonki opened 6 years ago

jojonki commented 6 years ago

Learning and Evaluating Sparse Interpretable Sentence Embeddings Valentin Trifonov, Octavian-Eugen Ganea, Anna Potapenko, Thomas Hofmann. Analyzing and interpreting neural networks for NLP (EMNLPと共同開催?) https://arxiv.org/abs/1809.08621

概要

単語のembedding学習では,ときには人が解釈できるような表現を獲得することが出来た.本論では,文ベクトルの獲得手法及びスパース表現を得るためにいくつかの手法を試した.また文の解釈性のための定量的で自動的な評価種表も提案する.映画対話コーパスとMS COCO(画像キャプション)データセットにおいては,denseなモデルよりも,本手法のスパースなベクトルのほうが解釈性が増していることを発見した.

イントロ

単語ベクトルというのは,何らかの解釈性を発見できる,という点で興味を持たれていた.つまりある単語をエンコードしたときに,ここの次元が明確なセマンティック特徴を捉えるため,人がそのベクトルを理解可能にする(一部). Murphy(2012)らは,解釈性はスパース表現と紐付いていると示唆している.つまり,その表現データは,幅広い特徴量のスペースを持ち,数少ないキーと成る特徴量で形作るべき,といっている.

この考えに基づき,Subramanian (2017)は,解釈可能なスパース表現を獲得するため,解釈不能なdenseなembedding (word2vecやGlove)をポストプロセッシングの形で処理した.ポストプロセッシングで行うのは,スパースコーディングやダウンストリームモデル(今回の文ベクトルを利用して他のタスクに流用,感情分析とか)では一般的な手法である.

またSun 2016, Chen 2017らは,モデルがスパースembedding表現を持つように取り込み,モデル内部の中間表現としてトライした.これはポストプロセッシング型と異なり,学習冒頭から,各単語をスパースなコンビネーションとして捉える,という考えに動機づけされている.

Goh 2016は,スパース表現が画像や文のembeddingにも同様に利用可能と主張しており,VAEの潜在空間に対して解釈性獲得のためのスパースコーディングを行った(画像キャプショニングのシステム).

本論では,文embeddingの次元を解くためのスパース化手法を提案する.シンプルな文のAutoEncoderモデルを採用し,ポストプロセッシングベースとe2eモデル内取り込みベース,の両手法で,文のスパース表現を獲得する.latent spaceの解釈性を増やすことを目指す;これは推論と学習プロセスというものが,データを認識・学習するときに,どのようなデータパターンを識別しているか,という洞察に役に立つ. また本手法を評価するにあたって,解釈性を測る自動定量評価手法も提案する.これはトピックcoherenceの考えをベースにしており,これを文の場合に拡張している.この新しい手法は,embeddingの解釈性を人手で評価したものを反映できることを発見した.また再構築品質とダウンストリームタスクでも評価を行った.

モデル

一般的なRNNベースのseq2seqを採用する.このネットから得られる中間表現zをベースに話を進める.

Denseなembeddingのポストプロセッシングによるスパース化

まずN個の文のデータセットx1, x2, ..., xNを考える.これを隠れ層zの次元D'=500 (dense)でエンコードし,Z=[z1,....,zN]を得る.そしてArora (2016),Goh(2016)の手法に則り,D=2000のスパースベクトルを計算する.このスパースベクトルはk個以外の値はゼロにする.これは下記のスパース辞書の学習問題として解く.

screen shot 2018-09-30 at 10 37 45 am

これをk-SVDで解く. Uは,モデルの潜在空間におけるdenseなデータを説明する,2000のもっとも重要な特徴量を広く表現する.この問題を解くことによって,サンプルxiの潜在ベクトルであるziの中間表現を,アトムeiの線形結合で表すことができる.eはk個のみが非ゼロになるため,解釈性が増すと思われる.

embedding学習中にスパース化する

先程のk-SVDでは異なる2ステップでスパース表現を獲得した:1.文の固定サイズのベクトルの発見,2.解釈可能なスパース表現への展開.ここでは,e2eのアプローチを試みる.つまり,ニューラルネットを利用して,エンコード及び解釈可能なスパース表現の獲得を行えるアーキテクチャを提案する.(別にしない) 我々はこれを,エンコーダーとデコーダーの間に1レイヤ挟むことで実現する.エンコーダーによりベクトルzを獲得するが,これをsparcity transformationにより同サイズのベクトルeに変換する.eに変換するにあたって,eはスパースであり微分可能である必要がある.そしてこのeをzの代わりにデコーダーに流すことで,e2eでネットワークを学習できる.本論では2つのsparcity transformationを提案する.

  1. k-Sparse k-Sparse Autoencoder (Makhzani and Fery 2013)からインスパイアされた手法.ハイパーパラメタkを利用し,zの中で最大k個のactivationをサポートセット(非ゼロ要素部分)とする.バックプロップはサポートセットのみ行う.

  2. Sparsemax k-Sparseではすべてのサンプルに対してスパースレベルを固定にする必要があった.それを可変にするためサンプルごとにスパースレベルを設定できるSparsemax(Martins and Astudillo 2016)を利用.Softmaxの代替として提案されており,スパースな確率分布を返す.τ(タウ)はSparsemaxの温度パラメタ

    screen shot 2018-09-30 at 2 45 37 pm

実験

実験では単語サイズは20Kにする.またシンボルとして (人名), (OOV), (文終わり)も利用.単語は100次元でembeddingする(これは普通は非sparse).エンコーダーとデコーダーにはそれぞれGRUを利用(パラメタ非共有).予測部は,時刻毎に20Kの次元で単語を予測する.また全時刻におけるクロスエントロピーロスを最小化するように学習する.隠れ状態はここでは書いてないが,2.1を見るに,500次元,スパース化で2000次元になる. // Zは書いていないが,エンコーダーRNNの最後のレイヤのはず.

データセット

2つ利用.Cornel Movie Dialogs CorpusとMS COCO.(Common Ojbects In Context).

TokenizeはSpaCyを利用し,Tensorflowで学習した.

定量的な自動評価手法

embedding結果の解釈性に関する一般的な定量評価手法は,Chang (2009)によるword intrusionと呼ばれるものが最初に提案された.5つの単語のうち,1つが異なるトピックの単語になるように混ぜ,人がそれを見つけようとするものである.ただしこれは人が行うので,高価で遅くなる.

そこで本論では,トピックcoherenceをベースにした自動の解釈性評価手法を提案する. トピックcoherenceは,トピックモデルの解釈性の自動評価指標であり,人評価とよく相関している指標が提案されている.これはすべての単語に対してペアワイズな単語距離指標を導入して,評価するものである.(巻末の参考にChang (人で評価)とNewman(自動評価)の手法について簡単に説明しています.)

本論でもこのトピックcoherenceをベースにするが,トピック内の"単語"を利用するのではなく,我々のembeddingsの次元の中で,もっとも高くランク付けされた文(純粋にスカラ値が高い順?)を利用する.また単語類似度ではなく,文類似度(いくつかの手法を試した,後述)を利用する.

x_d^pを与える.これは,embeddingのd次元が,p番目に大きいとランク付けされたサンプルを意味する.これを利用して下記のようなcoherence式を設ける.nはあるトピック内の利用する文の数.そしてこれを全次元Dに対して行い,平均値を取る.

また,n個の文のうちのトップランクを利用しない場合,どれほどcoherenceが悪化するのかを見つけるため,すべての非ゼロ次元を考慮し,ランダムにサンプルされたn文に対しても式3を適用した.

この処理はvalidationセットを利用し,ストップワードは取り除く.またn=10(各次元d毎の文の数).

3つのsimilarity metrics

  1. ジャッカード類似度 集合を用いた類似度

    screen shot 2018-09-30 at 4 12 58 pm
  2. BoW Similarity 2つの文のbowベクトルを考え,cosine類似度で表現.

    screen shot 2018-09-30 at 4 13 55 pm
  3. WMD Similarity 上記2つはsemanticな関連性を持っていない.そこで,Word Mover's Distance (WMD; Kusner 2015)を利用.word2vecの潜在空間を用いて表される.

    screen shot 2018-09-30 at 4 17 36 pm

結果

再構築品質

一般にスパースレベルが減少すると,再構築は悪化していく.つまり,今回だとk(非ゼロ要素数)が少ないと,実際の意味やフレーズの再構築に失敗しがちであるが,それでもなお,正しい文法や関連するトピックを生成できる. 例えば,"waiting at a bench" -> "sit at a park","sidewalk" -> "curb","two cars" -> "two buses"などである.

screen shot 2018-09-30 at 5 37 06 pm

Highest-ranked samples

embeddingの大きな値を取ってサンプルすることで,スパースモデルがしばしば文をグルーピングしていることを発見;例えば共通の構文やコンセプトについての文になっている.これらの例として,水の中のモノ,人が持っているモノ,馬・車の運転者,thre is a [...]で始まる文,などである.いくつかの次元においては,これらのパターンはトップランクに認識されるだけでなく,すべての非ゼロ要素をもつサンプルxiでも発見することができた

screen shot 2018-09-30 at 5 42 00 pm screen shot 2018-09-30 at 5 48 57 pm

定量評価

Table 2は,WMD(word2vecなどを用いた文類似度)を用いたcoherenceの結果.これらのcoh_{WMD}のスコアは,我々の次元の解釈性の実証実験の結果と相関している.COCOデータセットでは,関連していないグループのcoherenceスコアは-3以下だったのに対して,関連しているものでは-2.8から-2.2の値を取った.更にかなり近い意味のものや共通のプレフィックスを取る分においては,−2以上になるものもあった.

式4(各次元のcoherenceの平均値)を利用したモデルの解釈性の評価した(Table 3).簡単なレファレンスとして,データセットからランダムサンプリングされた文のペアの類似度平均を含めた.また,500次元のdenseなAEのトピックcoherenceの結果も含めた.3つの文類似度メトリクス,及び,トップランクかランダムサンプリングでそれぞれ実験している. ランダムサンプリングよりもトップランクのサンプリングの方が類似度が高い.また,k=15, 20といったスパースな状態でもスコアが高い事がわかる.

screen shot 2018-09-30 at 5 54 02 pm

Downstream Tasks

ダウンストリームタスクで,スパース表現がどの程度役に立つのか調査.今回はSentEval framework (Conneau and Kiela, 2018)を利用,これは様々なタスクを与えられた文embeddingを利用して学習する.タスクは,他クラス分類,バイナリクラス分類など,タスク内容も多岐にわたる.文ペアの類似度やentailmentをみるため,いくつかのタスクでは人のラベルしたデータとの相関も見てみた(スピアマンの相関係数).この実験ではMovie-Dialogsモデルだけを利用し,COCOの文は汎用的でないので利用していない. 結果は下記.多くのケースでdenseのものより悪化したが,SST2やSST5では明らかにスパース表現より恩恵を受けている.

screen shot 2018-09-30 at 6 07 26 pm

議論

スパースレベルが低い(kが小さい?)ほどembeddingの中に明確なトピックが見つかった.また良い解釈性には,高い再構築エラーが伴った.スパース性を求めると,より一貫したトピックが得られる一方,デコーダーの文の再構築性能を低下させる // トピックに一貫する共通要素のみを抽出しようとして,サンプル内で他と違って尖ったところは削ぎ落とされる? またこの少ない情報量という結果は,ダウンストリームタスクで低い性能を示したのも説明ができる.ただ感情分類などでは高い精度を示していいたので,今回のスパースで解釈可能な表現はLogistic Regressionのようなシンプルなモデルにおける,有用な特徴量を発見するのに役立った.

denseモデルの中間表現から情報を抽出する手法と比べて,観測及び計測可能な解釈性の向上を発見した.これはポストプロセッシングの手法が再構築のみに注力している一方,今回の学習に取り込んだ手法は,今回のアーキテクチャをモデルのタスクの一部として扱えたことによるものだ. 反面,複雑な目的関数になり,スパースレイヤはforward/backpropできる情報が限定される;そのため高いロス値と再構築エラーを生む.

我々のSparsemaxベースの手法はあまりうまくいかなかったが,文のサンプル数10以上ののhighest-rankedを使ったケースにおいて他のアプローチよりも良い結果となった.Sparsemaxではスパースレベルを固定しなくても良いので,特徴量の存在/不在を良い感じに表現できていたのかもしれない.固定だと,特徴がなくても必ず同じサイズにしないといけない.逆もしかり.

関連研究

// スパースな単語embeddingに関する関連研究が紹介されている

結果

ニューラルネットの中間表現を理解できることは,我々のモデルの理解にもつながる.本論では文のオートエンコーダをベースにいくつかのスパース化手法を試した.モデルの評価では,スパース手法はembeddingの解釈性に対して利益がある,という我々の仮説をサポートする形になった.ベクトルに多くのゼロ要素を強制することで,情報量が減るということは直感的に分かる,これにより再構築品質やダウンストリームタスクでの性能悪化が見られたが,バランスを取って大きなペナルティなしによい解釈性を得られることがわかった.

トピックcoherenceの手法をベースに自動定量評価指標も提案した.この手法は,解釈性の定性評価と相関していることがわかった.今回の手法は人手を介さないので早くコストがかからない.また異なる文類似度メトリクスや他のトピックcoherenceも簡単に利用することもできる.

解釈可能な文表現は,モデルの理解だけでなく,アプリケーションにも適用可能である.例えば,なぜその2つの文が似ているのか,といったことも分かるかもしれない.またpositive/negativeを判定する線形分類モデルなどにおいて,どの文がモデルの決定に影響を与えているか,などが分かるかもしれない

フューチャーワークとして,SkipThoughtやInferSentといったより洗練された文ベクトルをスパース制約に適用しても良いかもしれない.またイメージキャプ初任具,機械翻訳,レコメンシステムとかにも応用できそうである.

コメント 📔

参考

jojonki commented 5 years ago

Podcastでも解説しました.https://anchor.fm/lnlp-ninja/episodes/ep9-Learning-and-Evaluating-Sparse-Interpretable-Sentence-Embeddings-e2anu5