Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2019: Emu: Enhancing Multilingual Sentence Embeddings with Semantic Specialization #371

Open
jojonki opened this issue Feb 7, 2020 · 0 comments

Comments

@jojonki
Copy link
Owner

jojonki commented Feb 7, 2020

Emu: Enhancing Multilingual Sentence Embeddings with Semantic Specialization
Wataru Hirota, Yoshihiko Suhara, Behzad Golshan, Wang-Chiew Tan
AAAI 2020
https://arxiv.org/abs/1909.06731

概要

意図分類器と言語識別器の2コンポーネントによるマルチ言語の文埋め込みフレームワークEMUの提案.意図分類器は,関連文の意味類似度を改善し,言語識別器は多言語敵対学習によって埋め込みの多言語性を高めることができる.実験では,単一言語のラベルデータのみを使って,クロス言語の意図分類タスクにおいて,sotaなマルチ言語埋め込みを示した.

イントロ

多言語文表現の学習はNLPにおける多言語サポートの鍵である.多言語文埋め込みの主なメリットとして,単一言語で1つの分類器を作り,それを他の言語に,その言語のトレーニングなしに適用できることである.更に最近の多言語文埋め込みでは,単一言語の翻訳による2ステージベースのアプローチと比べて,competitiveである.

多言語文埋め込みの主な問題として,表記類似度に敏感であることが挙げられる.下記はその例である.S1とS3が意味的に似ている(意図が似ている)が,S2は異なる意味である.我々は単言語及びクロス言語の設定でこの文の埋め込みを作り比較した.すると,すべてのモデルがS1とS3で残念ならがS2と比べて低類似度を示した.この事例は,表記類似性のビアスを示しており,文の意味類似度を捉えられていないのである.

  • S1: What time is the pool open tonight?
  • S2: What time are the stores on 5th open tonight?
  • S3: When does the pool open this evening?

本研究では,意味類似度を扱うために事前学習型の多言語埋め込みを行う,多言語意味specialization (semantic specialization)を行う.semantic specialization自体はこれまで研究されてきたが,多言語ではやられていなかった.

本論では,どのようなモデルにも適用可能な多言語埋め込みの軽量なsemantic specializationアプローチを開発した.我々のアプローチでは,意味類似度を考慮する分類タスクをベースに,多言語文埋め込みを行う.また損失もいくつか試し,softmax損失のような分類タスクにおいてナイーブな方法では,オリジナルの多言語文埋め込みモデルと比べて明らかなデグレに陥ることを見つけた.

また我々のモデルでは,単一言語の学習データしか使わない(複数言語でのパラレル学習データ収集は高価なため).また多言語性を高めるために,敵対学習を取り入れる.具体的には,入力文埋め込みの言語(英語とか)を識別する識別器を作りつつ,それが混乱するような多言語埋め込みを最適化するようにした.

6言語を含む3つののクロス言語意図分類タスクで実験し,良い結果を示した.

多言語semantic specialization

提案モデルEMUをFig 1に.多言語エンコーダーE,意味分類器C,言語識別器Dの3コンポーネントからなる.実線は,CとEのfine-tuning時のforward propagation,破線はDのforward計算.意味分類器Cと言語識別器Dはfine-tuning時にのみ使われる.fine-tuning後,多言語エンコーダーEは入力文をエンコードし,cosine類似度で2文の類似度を計算する
Screen Shot 2020-02-07 at 10 32 08 PM

多言語エンコーダー

EMUの多言語エンコーダーでは,どのような言語でも文の埋め込みにできれば,アーキテクチャは柔軟に選べる.本論ではLASER (Artetxe and Schwenk 2019b)をベースラインに採用.LASERは93言語以上をカバーする文埋め込みモデル.BiLSTM及びBPEに基づくモデル.このモデルは2カ国の翻訳タスクで学習され,cross-lingualなNLPタスクでSOTA.多言語BERTは使ってない,というのもLASERは多言語BERTより性能が高く,変更なしで文埋め込み器と使えるため.

意味分類器

意味分類器では,入力文の意図を推測する.(例えば,'seeking pool information', 'seeking restaurant informatin'等).意味分類器では,関連文の意味類似度をよく反映することを期待している.

2文の埋め込みの類似度はcos類似度を見ているため,L2-constrained softmax損失 (Ranjan, et al., 2017) 及びcenter loss (Wen 2016) を採用.この組み合わせはおそらく初.// center lossは画像認識でよく使われるらしい

  • L2-constrained softmax loss
    L2-constrained softmax lossでは,softmax lossに対して,入力文埋め込みベクトルのL2ノルムに強い制約を与える.

Screen Shot 2020-02-07 at 11 00 52 PM

Mはクラス数,u_iはi番目の文埋め込み,y_iはi番目のラベル, αはハイパラ. 通常のsoftmaxと違うのは,入力ベクトルuをL2ノルムで正規化し,定数αでスケーリングしているだけで単純.// 同一クラスの特徴ベクトル同士のcos類似度が大きくなり,違うクラスの特徴ベクトル同士のcos類似度が小さくなるように学習することができるらしい.
  • Center loss
    これは元々は顔認識タスクで,データから学習した特徴量の安定化に利用された.文埋め込みuiに対して,あるラベルyの文埋め込みの重心を引き算する.これは同じ意図同士は,できるだけコンパクトに集まって欲しいためである.(softmaxにはこのような機能はないため補完的に動く)

Screen Shot 2020-02-07 at 11 20 46 PM

この2つのロスは,ハイパラλでくっつけて,最終的な意図分類器の損失とする
Screen Shot 2020-02-07 at 11 25 50 PM

言語識別器

意図分類器は,多言語性を考慮するわけではないので,単言語で学習してしまうと,他言語で性能が悪化してしまう恐れがある.そこで多言語敵対学習の仕組みを取り入れる.具体的には言語識別器Dを取り入れ,入力文埋め込みの言語を識別する.そして多言語エンコーダーEは,Dが識別しにくいようなエンコードをするように損失を変える.
この言語識別器Dは,2つの入力文の言語が異なるかどうかを識別.同時に言語識別器が識別しにくいようにモデルを学習.そこでWasserstein GANを利用した.// Goodfellow氏のGANよりロバストらしい

Screen Shot 2020-02-08 at 9 42 11 PM

Algorithm 1にEMUの学習ステップを示す.学習は2フェーズに分かれており,最初に言語識別器Dを学習し,次に多言語エンコーダーEと意図分類器Cを学習する.
ターゲット言語tは学習に使われる言語で,複数言語使われる場合はランダムに選ばれる.敵対言語Lは敵対文に使われる言語のセット.言語識別器Dは,学習言語毎に学習.各ターゲット言語ではk回のイテレーション分のパラメタ更新が行われる(クロスエントロピーロス).

次のフェーズでは,ターゲット言語tと敵対言語lでそれぞれ事例がサンプルされ,言語識別器Dtのパラメタは固定した状態でエンコーダーEと意図分類器Cのパラメタ更新を行う(式4).分類のロスL_C (意味分類器で説明した2種の損失の式)に対して,言語識別器Dtの損失にハイパラ定数Γをかけたものを差し引く.Dtが識別に難しい=多言語埋め込み表現が獲得できたとして,望ましい状況であることを,ここで設定できる.
Screen Shot 2020-02-07 at 11 48 03 PM

Screen Shot 2020-02-07 at 11 31 15 PM

評価

cross-lingualな意図分類タスクでEMUを評価.このタスクでは,ターゲット言語(英語等)の意図ラベルに関連する文をベースに,ソース言語(ドイツ語等)の意図を予測する.これは類似度ベースで予測する.入力文ともっともcos類似度が近いラベル文の意図を採用する.この手法は,検索ベースのQAなどでよく使われる(学習データがスパースな場合に特に効く).今回意図分類器Cがあり,それを使うのが直感的ではあるが,性能が悪かったためその結果は除いている.

データセット

  • HotelQ: ホテルのスタッフと客の小規模リアル対話(820質問).28 intents,5つの非英語言語にプロが翻訳されたもの

  • ATIS: 音声対話での有名なデータ.flightsクラスは75%も締めているため,取り除き,残りの中から,最低5文含む含むものを選んだところ13 intentsとなった.そしてそれごGoogle翻訳で5つの非英語言語に翻訳.

  • Quora: 質問サイトの重複質問データセット(パラフレーズ).ここから50クラスをフィルターして選択し,これも同様にGoogle翻訳で5つの非英語言語に翻訳

ベースライン

  • MT + sent2vec
    機械翻訳と単言語の埋め込みのパイプライン.埋め込みはsent2vec (Pagliardini, 2018)を採用
  • Softmax loss
    意図分類器の学習にsoftmax lossを採用し,埋め込みを調整
  • Contrastive loss (Chopra 2005)
    メトリックラーニング(データ間の関係性を考慮した特徴量空間を学習する手法)のペアワイズな損失関数としてよく使われる手法.ラベルが同じ場合,2文の2乗距離が最小になるように学習し,違う場合はマージンをとって距離が離れるように学習.エンコーダーはSiamese Networks(ダブルエンコーダーによるアーキテクチャ).重みを共有したエンコーダにいれて文埋め込みを獲得して2文の距離関数を類似度とする.
  • N-pair loss (Yang 2019)
    1つの正例サンプルし,N-1の負例をサンプル.そして,cos類似度ベースの損失を最小化する方法

実験設定

EMU及びベースラインのモデルのfine-tuneには英語の学習データのみを利用.EMUの言語識別器の学習には,非英語(ドイツ語,スペイン語,フランス語,日本語,中国語)のラベルなし学習データを利用.

  • EMUの変種
    ablation studyも兼ねて,言語識別器なしのEMU(EMU w/o LD),言語識別器とcenter損失なしEMU(EMU w/o LD+CL)
    また,cross-ligual敵対学習のために文をランダムサンプルしていた代わりに,パラレル文を利用するEMU-Paralelも用意

  • Hyper parameters
    FB公式のLASERとBPE含む事前学習モデルを利用.識別器は2レイヤーの全結合ネット.他パラメタは論文参照.

  • 評価メトリック
    testデータでのleave-one-out評価を採用.各文の評価時,テストデータの残りの文をラベル文として扱い,もっとも近い文のラベルを,その評価文のラベルとして採用する.現実世界では実際にパラレル文はなく,ターゲット言語(今回は英語)への翻訳がない.そのためソース言語(非英語)がそのまま入力されるので,リアルな設定となりチャレンジング.評価はAcc@1(テスト文でのintent正解率)

結果と議論
結果はTable 2

  • HotelQAでは全11タスクでbest performance
  • ATISでは10タスクでbest.zh-enではオリジナルのLASERが良かった
  • Quoraでは7タスクでbest.残り4タスクではオリジナルのLASERが良かった.
  • かねがねEMUはオリジナルLaser含むモデルより高いことを示したが,zh-enなど悪化しているものもある.ただしEMUは英語のラベルデータのみで学習し,非英語のラベルなしデータを使っていたことを思い出してほしい.EMUは多言語の文埋め込み表現を獲得できていると言えないだろうか.
  • オリジナルLaserはen-enタスクがかなり強いのは,オリジナルの学習データサイズ(英語)が大きいからに思える
    image

Ablation study
言語識別器とcenter lossのablation studyの結果を見る.Table 5にそれぞれを除いた時のスコアの低下を載せる

  • 言語識別器がATISで2.81ポイントと有意にドロップ.HotelQAとQuoraでは1.45, 1.05ドロップ
  • Center lossでは,Quoraで6ポイント有意にドロップ.しかしATISではほぼ変わらず,HotelQAではむしろ改善してしまう

Screen Shot 2020-02-08 at 10 23 18 AM

文埋め込みの可視化
多言語性を見るために可視化による定性評価を行う.ATISの英語とドイツ語に対して文埋め込みを描く手法別に可視化(a: オリジナルLASER,b: softmax loss, c: EMU wo LD, d: EMU)

  • オリジナルLASER (a)では,英語とドイツ語は近いところにマッピングされている
  • Softmax loss(b)では,意味分類も多言語性も壊れている
  • EMU w/o LD (c)では,文埋め込みはできているが,オリジナルLASERと比べて同一intent内の文が分かれており多言語性が損なわれている(英語とドイツ語できれいに分かれている箇所がある)
  • EMU (d)では,いい感じにintentおよび多言語性が表現できている
    image

この結果から,言語識別器は多言語性の獲得に役立っていると言えそうだ.
EMUではパラレル文が必要か?
パラレル文が多言語の敵対学習をより効率的にするかを確認するために,パラレル文での評価,EMU−parallelも実施していた.
Table 2にEMUとEMU-parallelが載せてある.EMU-parallelはEMUと比べて,-0.5, -1.2, -5.9ポイントと各データセットでなっている.この差異はQoraを除いて有意とは認められない.EMUの言語識別器は,パラレル文の用意のようにコストは掛からないし,他言語のラベルなしの非パラレル文を利用することによって性能も向上させることができる

学習にはどの言語を使うべきか?
英語以外で学習したらどうなるか調べた.そのためにEMUが特定言語だけを使うように,言語識別器を外した(EMU w/o LD).そしてオリジナルLASERをHotelQAで比較.これまでの結果でわかるようにタスクに英語が含まれていると,含まれていない場合と比べて性能が良かった.これはそれらの非英語言語での埋め込みは英語と比べて適切にfine-tuningできていない可能性を示す(そもそも学習データは英語しか使っていない).
それ故,我々はtarget or source言語と同じ言語を学習に使うのはベストな選択だと仮定する.
この仮定をテストするため,英語,ドイツ語,フランスをsource or target言語にし,HotelQAで同様の実験を行った.(学習データにen/de/fr/en+de/En+Fr/De+Fr/En+De+Frのパターン).Table 3にその結果.

  • 単一言語で学習した際,en-en, de-de, fr-frタスクでベストパフォーマンスだった
  • 同様にsourceとtargetの2言語で学習するのもベスト設定だった.(en-de, de-enタスクとde-fr, fr-deタスク)
  • 3言語を使うと9タスク中7タスクでベスト正解率.
  • この結果からEMUでベストパフォーマンスを得るためには,source or target言語の学習データを作るべきと結論付けられる.
    image

関連研究

多言語埋め込みは広く研究されていいるが,単語埋め込みにフォーカスしたものが多い.また多言語文埋め込みはまだまだ少ない.
以下この章では,多言語文埋め込み,center lossや敵対学習のNLP適用に関する関連研究が紹介されている.

結論

多言語文埋め込みであるEMUを提案.パラレル文を利用せずとも多言語性を高めることができた.実験では,多言語文埋め込みのLASERや他ベースラインと比べてもパフォーマンスが良かった.またラベル付き単言語とラベルなしの他言語群でEMUを十分に学習できることを示した.

コメント

  • ラベルデータは単一言語だけでよいということでコスパ高い
  • 言語識別器を敵対学習の仕組みで取り入れるのは色々応用できそう
  • 意図分類器の結果が低いのはなぜなのかは気になった.

参考

@jojonki jojonki changed the title 🚧 2019: Emu: Enhancing Multilingual Sentence Embeddings with Semantic Specialization 2019: Emu: Enhancing Multilingual Sentence Embeddings with Semantic Specialization Feb 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant