パラフレーズは幅広い自然言語処理 (NLP) アプリケーションにとって重要なリソースです。そのため、様々なパラフレーズ・マイニング技術が開発されてきました。これらのマイニング技術は一般的なパラフレーズを発見することには成功していますが、多くの場合、ドメイン固有の言い換えを特定できません。この問題を解決するために、Megagon Labsは Essentia を開発しました。この優れたシステムは、Word-Alignment Graphsを用いることで入力セットに一握りの文章しか含まれていなくとも、そのセットからドメイン固有の言い換えを抽出します。
現在のパラフレーズ・マイニング技術の問題点
パラフレーズはテキストからテキストへの生成、機械翻訳、テキストの含意認識など、多くのNLPタスクにおいて重要な役割を果たしています。最初の2つの分野においては、有機的で多様な出力テキストを作成するために不可欠な存在です。
想像してしてみてください。あるチャットボットの挨拶が 「How can I help you? 」 だけだとしたら、ユーザはどう感じるでしょうか。恐らくユーザはすぐに退屈しイライラしてしまいますよね。チャットボットがやり取りの中で 「Can I help you? 」 や 「What can I do for you? 」という表現を相互に利用することができるのは、言い換えの表現のおかげです。
既存のパラグラフマイニング技術はドメイン固有の言い換えではなく、一般的な言い換えに焦点を当てています。ドメイン固有の言い換えとは、その言葉が示すように、特定のニッチにのみ適用される表現です。例えば「having a late checkout(遅めにチェックアウトする) 」という表現は、ホスピタリティ領域では 「extending the checkout (チェックアウト時間を延長する)」の言い換えです。同様に、「get a table(席を取る)」「make a reservation(予約する)」「book a table (席を予約する)」などは、レストラン領域における代表的な言い換え例です。これを踏まえて、レストラン領域の3つの文章を見てみましょう。
- Can I please get a table for tonight?(今夜の席を取っていただけますか?)
- Can I book a table for dinner?(夕食の席を予約できますか?)
- Can I make a reservation for tonight?(今夜の予約はできますか?)
「get a table(席を取る)」と 「make a reservation(予約する)」という表現は、多くの文脈では意味的に類似しておらず、一般的なマイニングシステムではこれらの表現を相互の言い換えとは見なしていないでしょう。人間の目から見ると、これらの文章が文脈的に一致していることは明らかです。さらに、一般的なパラフレーズマイニング技術では大規模なコーパスと統計的手法を用いてパラフレーズを見つけるのが一般的ですが、ドメイン固有の言い換えをマイニングすると十分なデータが存在しないという課題にも直面します。対話システムのスクリプトを集めたコーパスには数百の文章しか含まれていないこともあるのです。
Essentiaの紹介
Megagon Labsは、限られたデータしか利用できないためにドメイン固有の言い換えの自動発見が制限されている問題に対処するため、Essentiaを開発しました。この新しいシステムは小規模なコーパスから高品質なドメイン固有の言い換え表現を抽出します。要するに、Essentiaでは一連の文章をWord-Alignment Graphsと呼ばれるグラフベースで表し、このグラフでは複数の文章で(同じような文脈で)共有されている単語を1つのグラフノードで表現します。そして、一連のドメイン固有のパラフレーズセットを出力します。
先ほどのレストランの例では、Essentiaは3つの例文から {“book a table,” “make a reservation,” “get a table”} を抽出します。この機能では文脈(コンテキスト)が鍵を握ります。これらの表現は意味的に似ていませんが、EssentiaのWord-Alignment Graphsでは文脈的な類似性があることがわかります。つまり、フレーズの前後にある単語が同じパターンを共有していることを認識するのです。理解を深めるため、Essentiaのパイプラインについてさらに深く掘り下げてみましょう。
Essentiaのパイプラインはドメイン固有の言い換えをどのようにマイニングするのか
Essentiaは word aligner 、word-alignment graph generator 、paraphrase generator という3つの主要コンポーネントで構成されています。
Essentia architecture
word aligner は、複数の文章の中にある同じ単語や類義語を特定します。レストラン領域の例では、共有されている単語”Can”、“I”、“for” を認識します。その後、word-alignment graph generator がこれらの共通語を使って、入力文を単語ラティスと呼ばれるグラフベースのデータ構造で表現します。
A word lattice
単語ラティス表現はよく知られているパラグラフデータベース(PPDB)を参照し、各トークンのPOSタグを調べることで、同一の単語や類義語を統合します。2つの文章にある程度の意味的類似性が示されている場合にのみ統合が行われます(FastTextを利用して計算した埋め込みのコサイン類似度を通じて測定します)。統合できない単語は独立したパスとして表されます。その後、パラフレーズジェネレータがノード間の並列経路を発見することで、単語ラティスからドメイン固有の言い換えをマイニングします。
この例では、{“book a table,” “get a table,” “make a reservation”} はノード “I” と “for” の間に分類されます。そのため、Essentiaはこのグループを一連の言い換え候補と報告します。これらの候補はクラウドソーシングプラットフォーム上にいる人間のアノテーターに送られ、誤ってマイニングされたパラフレーズが選別されます。
paraphrase generator は、文中に不要な単語を抽出することもできます。これは、例示した最初の文章にある ”please” のようにループを形成するノードを認識することで行われます。このようなフレーズは文章の中核的な意味に影響を及ぼすことなく削除することができます。
いかがでしたか? Essentia: Mining Domain-Specific Paraphrases With Word-Alignment Graphsのサマリーを日本語でお届けしました。Essentiaの評価と今後の展望はMegagon Labs 英語ブログでお楽しみください!
(翻訳:Megagon Labs Tokyo)