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

2018: XNLI: Evaluating Cross-lingual Sentence Representations #155

Open
jojonki opened this Issue Nov 17, 2018 · 0 comments

Comments

Projects
None yet
1 participant
@jojonki
Owner

jojonki commented Nov 17, 2018

XNLI: Evaluating Cross-lingual Sentence Representations
Alexis Conneau, Guillaume Lample, Ruty Rinott, Adina Williams, Samuel R. Bowman, Holger Schwenk, Veselin Stoyanov
EMNLP 2018
https://arxiv.org/abs/1809.05053
http://www.nyu.edu/projects/bowman/xnli/

  • 大本のコーパス,MultiNLI #156

概要

最先端の自然言語処理はアノテーション付きの巨大なデータに一般に依存しており,通常英語.それは他の言語に対しては応用が効かない上に,すべbての言語のアノテーションデータを作るのは現実的ではない.そこで,cross-lingualな言語理解(XLU)及び低リソースのcross-language transferが注目を浴びてきている.
本研究では,Multi-Genre Natural Language Inference Corpus (MultiNLI)のdev/testを15言語にまで拡張して評価セット,XNLI(Cross-lingual Natural Language Inference)を作った.
更に本研究ではマルチ言語文理解(NLIタスクで評価)のベースラインを提供.

イントロ

一般に自然言語処理ではアノテーション付データに頼る必要があり,通常1言語(英語や中国語)の場合が多い.しかし国際的な製品では多言語を扱う必要がある.
Cross-linugual Language Understanding (XLU)は,1言語で学習し,他の言語で評価される.XLUはcross-lingualドキュメント分類で良い結果を出したが,研究の数は少ない.
大規模のNatural Language Inference (NLI,recognizing textual entailmentとしても知られる)は,文理解のテストベッドとして利用されるようになってきた.NLIは2つの文を与えたときに,entailment, contradiction, neutralで答えるタスク.最近クラウドソースのおかげもあって,100万近いサンプルを持つデータセットが公開され広く利用されている.このタスクを利用して,文表現の獲得にも利用できる
本研究ではXNLI(Cross-lingual Natural Language Inference)を公開.既存のコーパスを15言語に拡張.XNLIは,MultiNLIの7500の人手によるアノテーションがついたdev/testサンプルから構成される.これらのペは様々な言語に翻訳され,合計で112,500のアノテーションペアを持つ.これらは複数の言語ファミリに属し,低リソースの言語も含む.
// 英語、フランス語、スペイン語、ドイツ語、ギリシャ語、ブルガリア語、ロシア語、トルコ語、アラビア語、ベトナム語、タイ語、中国語、ヒンディー語、スワヒリ語、ウルドゥー語

  1. 学習時に公に利用できるコーパスからのパラレルデータを利用し,NLIのcross-lingual学習手法をいくつか評価.パラレルデータは,英語のNLIで学習された分類器を利用して,他の言語においても,正しくNLIタスクを解けるように,アラインに役立つことを見つけた.翻訳ベースの手法よりは悪いのだが,このアライン手法(後述)は,翻訳ベースの手法に均衡することがわかった
  2. 2つ目のXNLIの実践的な利用方法として,汎用的な目的で利用できる文エンコーダーである. 今回のベンチマークを利用して,リサーチコミュニティが多言語のembedding空間を構築するのに役立たせて欲しい.

関連研究

  • Multilingual Word Embeeding
    言語理解の多言理解の研究の多くは,単語レベルで行われている.いくつかのアプローチでは,cross-lingualな単語表現を学習するようなものである.それらの多くの手法では,ソースとターゲットのembeddingを共通空間にアラインさせるために,何らかのフォームに沿った教師データが必要(bi-gramとか).またより最近の研究では,cross-lingualな単語embeddingは教師無しで作成できる方法も示されている

  • Sentence Representation Learning
    多くの研究が,単語表現を文やパラグラフ表現に拡張している,もっとも単純な方法としては,文を構成する各単語のembeddingを足し合わせる,平均を取る,といった形である.より洗練された方法としては,SkipThought(前後の文をデコーダーで出るようにする,SkipGramの文バージョン)もある

  • Multilingual Sentence Representations
    複数言語による文表現も行われている.2言語のオートエンコーダー.複数言語への機械翻訳.ドキュメントレベル表現.などなど.

  • Cross-lingual Evaluation Benchmarks
    評価ベンチマークが不足しているため,多言語方言の開発はあまりない.多くの研究はReuterのcross-lingualドキュメント分類コーパス(Klementiev 2012)を利用している.しかし,このコーパスは文書レベルで行われており,異なる文embedding間の比較は難しい.更にこのコーパスはunbalancedであり,ターゲット言語におけるdevセットを公開していない.
    Cer (2017)では文レベルの多言語学習・評価データセットを公開している(4言語テキストの意味的な近さを測る).より最近では,アラビア語,フランス語,ロシア語,スペイン語におけるSNLIデータ(1332ペア,人手翻訳)をAgic (2018)が公開した.

まとめると,XNLIは文表現の評価を行う,はじめての大規模(多言語)コーパスとなっている.

実践的には,cross-lingualな文理解は翻訳以上のことが要求される.例えば,Mohammad (2016)は,アラビア語とその文の英語翻訳の違いを分析し(人による感情アノテーション),多くは文化的な違いから来ているものと結論づけた.またSmith (2016)は,簡単な分類モデルにおいて,英語で学習されたモデルと,英語に翻訳されたスペイン語で学習したモデルでは,性能のデグレが文化的な違いから生ずることを示した.XNLIコーパスの1つの制約はこのような違いを捉えるようなものにはなっていない.今回のXNLI評価は,複雑な多言語NLPへの問題に適用する前の必要なステップだと考えている.

XNLIコーパス

Multi-Genre NLIのテストデータはprivateだったため,XNLIは新しい英語NLIデータをもとに作られた.新しい英語NLIデータは,Multi-Genre NLIコーパスと同じクラウドソーシングの方法で作った.そして,Multi-Genre NLIコーパスの10のテキストソースから750サンプル(計7500(10x750)サンプル)を集めた.そしてこれを利用して,完全なXNLIコーパスを,プロの翻訳家を雇って,我々のターゲットとする10のターゲット言語に翻訳した.// ん?10言語への翻訳だと合計11言語のデータにならないか?
新しい文を起こすのではなく,英語をベースに翻訳するにはいくつかメリットが有る.1つは,データ分布が言語間で類似度を最大化するようなものになる.例えばこれが異なる言語話者が何らかのプロンプトに従いテキストを生成する形では,感じ方の差異が出る可能性があるかもしれない.2つ目は,以前のNLIクラウドソーシングで使われていたように,同じ信頼できるワーカープールを利用できる(言語毎に新しいワーカープールを鍛える必要がない).3つ目は,このプロセスはいかなる言語ペアにおいても組み合わせを作れることを意味する(本研究ではこのユースケースはないが,150万の組み合わせがある).
この翻訳アプローチは,Mohammad(2016)が感情分類タスクで行った研究によると,2つの文の意味的な関係にリスクが伴うものになるといっている.我々は今回のコーパスを調査したところ,無視できる分量であったことがわかった(3.2で語る)

Data Collection

  • 英語コーパス
    XNLIコーパスの英語パートのデータ収集は,MultiNLIと同じ方法である.MultiNLIコーパスで使われた10のソースからそれぞれ750文を取得した(被りなし).// 原文では250と書いてあるがtypoのような気がする
    10のソースの内,9つはOpen National Corpusの2回目のリリース(Face-To-Face, Telephone, Government, 9/11, Letters, Oxford University Press (OUP), Slate, Verbatim, and Government)から取得.10個目は,Captain Blood(Sabatini, 1992)のFictionから取得した.各ジャンルについて詳しくはWilliams (2017)を参照のこと.
    これらの文をMultiNLIワーカープール(クラウドワーカー)に,1つの文(premsie)に対して,3つのhypothesisを生成するように依頼した.
    我々は,MultiNLIが使ったテンプレートを利用してpremise文をワーカーに提示した.またデータのバリデーションもMultiNLIの方法に従い,他4人のワーカーに再度ラベル付けしてもらった.そしてその中から多数決でゴールド・ラベル評価を決定(entailment, contradiction, neutralとかのラベル付のバリデーション?).

  • 翻訳コーパス
    最後に翻訳者を雇って15言語に訳した(One Hour Translationプラットフォーム利用).premiseとhypothesisは変にコンテキストが入らないように,別個に翻訳してもらった.NLIの3ラベルは翻訳元の英語のものをそのまま利用.

screen shot 2018-11-18 at 2 20 23 pm

生成したコーパス

翻訳に伴いゴールドラベルに間違いが生まれていないか調査した.調査によると,中国語においてentailmentがcontradictionに変化しているものがあった(他の言語のentailmentは大丈夫だった).具体的にいうと,"upright"という単語はentailment関係において"standing"と使われており,中国語に翻訳すると
"(中国語で)sitting upright"のように使われていた.ただこのようなサンプルは中々見つからないので,このようなデータは稀であった.このため,英語とフランス語のバイリンガルアノテーターを雇い,再アノテーションによりラベルが言語間で復元できるかもバリデーションとして行った

更に今回のコーパスには,MultiNLIコーパスと同じ傾向を確認した.それは,すべての言語において,premiseはhypothesisの2倍ほどの長さになっている,ということである.またクラスラベルを示すようなhypothesisの単語は(各単語とクラスの相互情報から計算),各言語似ており,MultiNLIとオーバーラップしていた.例えば,'no', not', 'never'の単語は全言語におけるcontradictionに含まれていた.
screen shot 2018-11-18 at 2 27 25 pm

Cross-Lingual NLI

今回作ったXNLIのためのベースラインを作ったので紹介する

翻訳ベースのアプローチ

クロスリンガルにSLUを行うための一番のシンプルな方法は,翻訳システムを使うことである.翻訳システムを使うには2つの方法.TRANSLATE TRAINとTRANSLATE TESTがある.

  • TRANSLATE TRAIN
    XLUのために学習データ(英語?)を予め各ターゲット言語に翻訳しておく方法.学習データが各ターゲット言語に翻訳され,各ターゲット言語のNLIの分類器を学習するためのデータとして提供される.
    →欠点:言語毎にNLI分類器が必要になって学習も管理も大変.

  • TRANSLATE TEST
    XLUのために,テスト時に入力文を学習言語(英語?)に翻訳する方法.
    →欠点:テスト時に翻訳するための計算機負荷(時間も含めて)がかかる

→両方の欠点:翻訳システムの品質に依存,これは各言語の学習データの量で決まってくるところがあり難しい.

Multilingual Sentence Encoders

翻訳に頼るのではなく,ユニバーサルな言語埋め込みを利用する.そしてそれらの上に多言語なNLI分類器を構築する.もしエンコーダーが,翻訳先言語の文埋め込みに近い英語文埋め込みを出力できるなら,英語文埋め込みの上で学習された分類機は,推論時に翻訳システム不要で異なる言語の文を分類できる.
→つまりデータが大量にある英語文でエンコーダーを鍛える.この英語文エンコーダーが出力する英語文埋め込み空間に対して,他言語においてもこの英語文埋め込みの空間に近いものになるよう学習させる.(いろんな言語埋め込み)→(英語埋め込み).

cross-lingualなsentence encoderとして2種類試した.

  1. X-CBOW: 単語埋め込みの平均をベースにした事前学習ユニバーサル・マルチリンガル文埋め込み.転移学習となる.英文の単語埋め込みはfastTextを利用し,他言語の埋め込み空間を英語空間の埋め込みに近くなるようにfine-tune.
  2. X-BILSTM: MultiNLIの学習データをBiLSTMでで学習したsentence encoder.NLIスペシフィックなエンコーダーになる(in-domainデータの利用).X-BILSTMにおける特徴量抽出は2種類考えており,最初・最後の隠れ状態を使ったものと(BILSTM-last),全隠れ状態のmaxpoolingをとったも(BILSTM-max).

X-CBOW/X-BILSTMとも,文埋め込みにおけるアラインメント損失(後述)は同じものを適用.
またどちらの方法においても英語エンコーダーは固定し,ターゲット言語のエンコーダーを学習し,文埋め込み空間を英語埋め込みの空間にしていく.

Aligning Word Embeddings

マルチリンガルな単語埋め込みはPOSタギングや低リソース下における翻訳で良い結果を出している.
// SVDのくだりはよくわからない.

Universal Multilingual Sentence Embeddings

これまでの多くのユニバーサル文表現の研究は,英語に頼ってきた.いくつかの研究は複数言語における共通文エンコーダーを利用しているものの,言語数が限られており,リソースが潤沢なものに限定されている.
XNLI15言語の事前学習済みマルチ言語文表現の評価のためのベースラインとして,CBOWエンコーダーを使ったcommon-crawl埋め込みを検討する.
我々のX-CBOWでは,英語の事前学習済み単語埋め込みは固定し,ターゲット言語の埋め込みを,CBOW表現が近くなるように(英語に寄せていく)学習していく.そして,それらの文埋込は事前学習済みのものとして利用でき,その上に載せる分類器のみを学習し,評価すれば良いことになる.転移学習のマルチ言語版.

Aligning Sentence Embeddings

埋め込み空間を似せていく方法は,翻訳システムを使うよりもシンプルである.
ロス関数は下記,x, yはソースとターゲットの埋め込み,xc, ycはネガティブサンプリングされたもの.
ポジティブペアの距離空間(L2ノルム)が,ネガティブ(xc, yc)を含むものよりも十分小さくなるように学習していく.
screen shot 2018-11-25 at 2 13 09 pm

X-CBOWは事前学習済みモデルで,NLIデータでfine-tuneはされない.一方X-BILSTMはMultiNLIの学習セットで学習される.
またX-CBOW/BILSTMでは,英語エンコーダー及びNLI分類機は固定される.英語以外14言語ではそれぞれエンコーダーを持つ.これらエンコーダーは英語エンコーダーが出力するものと近しいものを出力するように,先程のL_alignと後述するパラレルデータを利用して学習される.まとめると下図のようになる.

screen shot 2018-11-25 at 12 25 23 pm

実験とその結果

学習詳細

英語と他10言語に対して,内製の翻訳機を使った.TRANSLATE TESTでは,各テストセットを英語に翻訳し,TRANSLATE TRAINでは,MultiNLIの学習データをターゲット言語に翻訳した.// 翻訳器が全言語分あるわけではないので,それには後述のパラレルデータのみを利用したっぽい?

内製翻訳器の性能は下記.マイナー言語の性能は低い感じ
screen shot 2018-11-25 at 2 25 50 pm

単語埋め込みは300次元で,頻出単語500K(98%カバー)を利用.BiLSTMは512次元.
NLI分類器の入力は[u, v, |u − v|, u ∗ v]である(uとvはpremiseとhypothesisの埋め込み).NLI分類器は,128次元1レイヤのfeed-forwardなNN.

パラレルデータ

英語と各ターゲット言語のアラインを取るために,各言語で公に利用できる様々なコーパスを利用(略).Urduやスワヒリ語は低リソースであり,Uruduは64kのパラレル文,スワヒリは42kの翻訳文ペアとなった.

分析

結果はTable 4.

  • BiLSTM系が一貫して良い結果,CBOWよりも良い結果.これは過去研究でも言われており,NLIタスクは単純な単語情報以上のものが必要になる.
  • また翻訳ベースは全体を通して良い結果.TRANSLATE TESTがTRAINよりも全言語通して良い結果になっている.また予想通り翻訳性能(BLEU)がクロスリンガルのNLIタスクの性能に影響していることがわかった.
  • また言語間で性能を比較してみると,英語とその多言語で大きく差があった.
  • 今回のアラインベースの手法は,TRANSLATE TRAINに均衡する形になったので,埋め込み空間の共通化は筋が良いかもしれない.ただ依然としてTRANSLATE TESTよりも性能は悪い.TRANSLATE TESTは,スワヒリ語ではマルチ言語エンコーダーと比べて6%も高い.この翻訳システムはアライン損失のときに利用したデータよりもかなり多くのデータを使っている.
  • 推論時はTRANSLATE TESTより,マルチ言語文エンコーダーの方がはるかに安上がり(早い,計算軽い)であることも留意.
  • X-BiLSTM-last/maxの正解率の違いは言語を通して一貫していた.これは強い英語エンコーダーは多言語への転移結果にも影響を与えることなのかもしれない.// ちょっとよくわからん

screen shot 2018-11-25 at 12 29 07 pm

またロス値の減少と正解率の向上に相関が見られる.埋め込み空間の共通化が効果を上げているのがわかる
screen shot 2018-11-25 at 2 52 19 pm

fine-tuningのあり・なしとネガティブサンプリングの割合を変えて正解率を分析.embeddingのfine-tuningは意外にもしなくても大丈夫そう(NLI分類器学習時のエンコーダーのfine-tuningを言っていると思う).またネガティブサンプルはそこまでクリティカルではなさそうだが,中国語ではわずかな改善ができた
screen shot 2018-11-25 at 2 52 09 pm

結論

産業アプリにおいての典型的な問題は多言語における十分なデータがないことである.この研究ではMultiNLIのdev/testセットを低リソース言語も含む15言語に拡張し,多言語展開におけるNLPのエリアに役立つものを提供した.
ベースライン実験では,翻訳結果が良い結果となることがわかったが,これらの手法は学習時・テスト時に必要な計算リソース,データなどが多い.今回我々が提供したマルチ言語のエンコーダーは有効な代替手段かもしれない.

コメント

  • 多言語の学習データは十分に集められないことを前提にしているので,dev/testしか用意していないのは面白い.
  • 英語とまったく異なる言語ファミリも英語に紐づけされるのは無理があるのかもしれない
  • 多言語の空間共通化において良いベンチマークになりそう.

参考

@jojonki jojonki changed the title from 🚧 2018: XNLI: Evaluating Cross-lingual Sentence Representations to 2018: XNLI: Evaluating Cross-lingual Sentence Representations Nov 25, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment