データナード

機械学習と自然言語処理についての備忘録 (旧ナード戦隊データマン)

パラフレーズコーパスの生成について整理

パラフレーズコーパスとは、ある文とその言い換えからなる同一言語のパラレルコーパスです。

整理

パラフレーズコーパスを作成する方法を分類すると、

  • 抽出
  • 変換, 生成
  • フィルタリング

のように分類できると考えています。

f:id:mathgeekjp:20200204153114j:plain

抽出

抽出の手法は、paraphrase extractionとも呼ばれますが、最も困難な問題は、文の集合  S から要素のペアの部分集合  T \subset S \times Sを見つけることとして定義できます。 n = |S|とすると、ブルートフォース的な方法は  O(n^{2})となってしまいます。これに対処するために、文をなんらかの方法でクラスタリングすることにより、大雑把なグルーピングができる可能性があります。その場合、 X_i \subset S となるクラスタ  X_i ができますが、 T_i \subset X_i \times X_i を抽出する問題にすれば、実質的な計算量が減ります。

クラスタとは別に、文が何らかの大きな単位として分類されている場合、それを利用することができる場合があります。 D_a := \{ s \in S | f(s) = a \} は aによって分類された文です。 E \subset D \times D ,  D= \{ D_{i} | i \in I \} を考えるとき、これは大きな単位(例えばドキュメント)のアラインメントを意味します。大きな単位のアラインメントをすると、要素数は文の数よりも少ないので、計算量が減ります。

大きな単位でアラインメントしたあと、アラインメントされた集合は、 F_a = \{ (D_a, D_i) \in E | i \in I \} として表され、この中での文のアラインメント  T_a \subset D_a \times D_I を考えることができます。 (ただし、Iはドキュメントの分類の集合)

この「大きな単位」には、

  • ドキュメント
  • パラグラフ
  • クエリ (クエリで検索された文やドキュメント)

のようなものが使えることがあります。大きな単位でも文の単位でも、アラインメントでは、その単位で使える情報を利用してアラインメントが行われます。そのような情報を比較する関数  f があるなら、同一レベルのユニット(ドキュメント,パラグラフ,文) を  f(U_i, U_j) \gt C のように比較することができます。 C はthresholdと呼ばれます。この比較によって  C を超えたペアだけが残されます。

ただし、前処理の段階として、 S_f = \{ s \in S | f(s) > C \} を施すことができます。これは文集合に対するフィルタリングであり、文ペアのフィルタリングではありません。このフィルタリングによって候補となる文集合を絞り込むことができます。

変換

変換による方法は、予め用意された文集合に対し、何らかの変換を施した別の文にします。文集合 Sに対し、 f: S \rightarrow T のような変換ルール  f を適用します。最終的に、 F = \{ (s, f(s)) | s \in S \} としてパラレルコーパスへ変換されます。

変換を用いた方法は、語をルールベースで入れ替えるような方法や、逆翻訳によって生成する方法があります。逆翻訳を使う場合、文集合  S に対応した、 S_t = \{ t(s) | s \in S \} を用意する必要があり、 S_t は通常、Sを他の言語に翻訳してあるものです。逆翻訳とは、 F_{t, u} = \{ (s, u(s_t)) | s \in S, s_t \in S_t, h(u(s_t)) = h(s), s_t = t(s) \} のような翻訳モデル  u を使うことでパラレルコーパスを作ります。関数  h は、単に言語IDを表します。

フィルタリング

フィルタリングによる方法は、ノイズを含むパラレルコーパス  F = \{(s_a, s_b) | s_a \in S_a, s_b \in S_b \} がすでに存在するところから始まります。フィルタリングとは、 G = \{ (s_a, s_b) \in F | f(s_a, s_b) > C \} のようなフィルタリング関数  f を考えることです。つまり、このような  G \subset F を見つけることを意味します。 |F| = n とすれば、単純な方法 (各々の文ペアに対して一度だけフィルタリング関数を適用する) を使うのであれば、 O(n) であるはずです。このフィルタリングは、本質的に抽出系手法においてどのペアを抽出するかを判断する方法と似ていますが、抽出系手法がより大きな単位での情報(ドキュメント等)を使えるのに対し、フィルタリング系の手法では文ペアの集合が使われます。

手法の例

具体的な方法

抽出系の手法では、ドキュメント単位での情報に基づいてドキュメントアラインメントができる場合があります。例えば普通の英語WikipediaとSimpleバージョンのWikipediaを使ってアラインメントするとき、対応する記事ページが存在するはずです。そのようなドキュメントを予め対応付けておけば、対応のあるドキュメント間だけで文アラインメントをするというヒューリスティックが使えるため、計算量が減ります。また、文を何らかの方法でクラスタリングする方法も考えられます。例えば、faissのようなツールを使う方法があります。

変換系の手法では、名詞を同義語へ入れ替える、文内の名詞の位置をスワップする、goodのような語をbadのような語へ入れ替える、受動態にする、などの単純なルールベースの方法もありますが、逆翻訳を使う方法もあります。逆翻訳の場合は少なくとも2通りのやり方があり、1)目的言語と第2言語からなるパラレルコーパスを使い、第2言語を目的言語へ翻訳する, 2) 第2言語と第3言語からなるパラレルコーパスを使い、それぞれを目的言語へ翻訳する、という方法があります。そして、変換されたペアをさらにスコアリングすることができます。

抽出系またはフィルタリング系の手法で用いられるスコアリング関数は、BoWやTF-IDFの類似度や、word2vecを使った方法、LASERのように文そのものをエンコーディングする方法、係り受けを使ってグラフ類似度を使う方法、2つの文の長さの比率を使う方法、2つの文のNgramの積集合の数を和集合の数で割ったもの(overlap)を使う方法、編集距離などの距離指標を使う、言語モデルでスコアリングする、などがあります。語をベースにした方法では、語の順序の比較を考慮することも検討され得ます。

スコアリング関数に、既存のパラフレーズデータセットで訓練されたパラフレーズ検出モデルを使うこともできますが、スコアリングの質は既存のデータセットに依存します。変換系の手法でE2Eの生成モデル(Transformer等)を使う場合においても同様に、既存のパラフレーズデータセットに依存します。したがって、この種のスコアリングモデルや生成モデルは、他の手法と組み合わせて使われる場合があります。

アノテーション

データは、訓練用のものとテスト用のものがありますが、Kaggleのように、テスト用のデータはモデル作成者に使えないようにするべきです。

評価用のテストデータを作成するためには、これまでの手法で生成されたパラレルコーパスから、文ペアが言い換えであることを人間の手でアノテーションする必要があります。基本的に「言い換えである」か「言い換えではない」かの2値でラベルを与えることができますが、「包含関係である」といったラベルを考えることもできます。アノテーションが困難であるほど、アノテータ間での意見の不一致が発生しやすくなりえます。モデルの性能の評価で使われるこれらのテストデータが信頼できる必要があります。

訓練用のデータはノイズを含んでいてもよく、distant supervision的に大量に生成できたほうが好ましい場合があります。一般的に、データの質と量を改善すればモデルの性能が上がります。

参考

  1. Regina Barzilay
  2. [1904.01130] PAWS: Paraphrase Adversaries from Word Scrambling
  3. Low-Resource Corpus Filtering Using Multilingual Sentence Embeddings - ACL Anthology
  4. 情報学広場:情報処理学会電子図書館
  5. nlp - Paraphrase data sets - Open Data Stack Exchange
  6. https://www.jstage.jst.go.jp/article/jnlp/25/2/25_223/_pdf/-char/ja
  7. http://ssli.ee.washington.edu/tial/projects/simplification/alignment.pdf
  8. https://www.aclweb.org/anthology/L18-1218.pdf
  9. https://pdfs.semanticscholar.org/13d7/cbe9035abbb0f243a5e63e19d9c01bcf69d8.pdf