意味的類似度判定 (G検定)

意味的類似度判定

1. 定義と概要

意味的類似度判定(Semantic Textual Similarity、STS)とは、2つの文がどれくらい意味的に近いかを数値で判定するタスクです。語句の並びや使われている単語が異なっていても、意味が同じか近ければ高いスコアが付きます。

代表的なベンチマークとして、GLUEに含まれるSTS-Bというデータセットが知られています。STS-Bとは、文ペアの意味的な近さを0〜5のスコアで評価する、回帰タスク(カテゴリを当てるのではなく、連続した数値を予測する問題設定)として扱われるデータセットです。

たとえば「猫がソファで寝ている」と「ソファの上で猫が眠っている」という2つの文は、語順や言い回しが違っても意味はほぼ同じであるため、高い類似度と判定されます。

従来、文章検索やFAQ(よくある質問)の照合では、単語そのものの一致に頼る手法が中心でした。この表層的な一致に頼る方法は言い換え(同じ意味の内容を違う言葉や語順で表現すること)に弱く、表現が変わると同じ意味の文でも別物として扱ってしまう弱点を抱えていました。

その後、ディープラーニングによる文埋め込み(文全体を、意味の近さを表すベクトルに変換する技術)が発展し、状況が変わります。ベクトル(文や単語の意味を多数の数値の並びで表現したもの)に変換した文同士の向きの近さを、コサイン類似度(2つのベクトルの向きがどれくらい近いかを測る指標。1に近いほど似ている)などで測る手法が広がったことで、語句が異なっていても意味が近い文を検出できるようになりました。

2. 試験対策ポイント

意味的類似度判定は、GLUE(複数の言語理解タスクをまとめた英語圏の評価用ベンチマーク)を構成するタスクの一つであり、代表的なデータセットとしてSTS-Bが知られています。この2つはあわせて整理しておきたいところです。

STS-B(GLUEに含まれる、文ペアの意味的な近さを0〜5のスコアで評価するデータセット)は、回帰タスク(カテゴリを当てるのではなく、連続した数値を予測する問題設定)として扱われる点も押さえておきたいポイントです。

文をベクトルに変換する文埋め込みの考え方と、ベクトル同士の向きの近さを測る指標としてのコサイン類似度は、あわせて理解しておくと整理しやすいポイントです。コサイン類似度は文のベクトル同士の向きの近さを表す指標であり、データのばらつきや2つの変数の関係を扱う統計の指標とは別の概念として区別されます。

また、GLUEには意味的類似度判定のほかに、含意関係認識(自然言語推論、NLI)や質問応答など複数の言語理解タスクが含まれています。それぞれのタスクが「何を判定するタスクか」を区別できるようにしておきたいところです。

意味的類似度判定は2つの文の意味がどれくらい近いかを数値で判定するタスクであり、前提の文から仮説の文が論理的に導けるかを判定する含意関係認識とは目的が異なります。

3. 関連概念との比較・相違点

含意関係認識(自然言語推論、NLI)との最大の違いは、判定の目的にあります。意味的類似度判定が「2つの文の意味がどれくらい近いか」をスコアとして測るのに対し、含意関係認識は「前提の文から仮説の文が論理的に導けるか」を、含意・矛盾・中立といったカテゴリで判定するタスクです。

2つの文が言っている内容がほぼ同じでも、一方が他方の結論を導く根拠になっているとは限りません。両者はどちらもGLUEに含まれる言語理解タスクですが、「似ているかどうか」を測るのか「論理的に成り立つかどうか」を判定するのかという、判定の軸そのものが異なります。

表層的な文字列の一致、いわゆるキーワードマッチングとの違いは、意味の近さをどう捉えるかという点にあります。キーワードマッチングは語句そのものが一致しているかどうかを見る手法であるため、「猫がソファで寝ている」と「ソファの上で猫が眠っている」のように使われている単語や語順が違う文は、一致度が低いと判定されがちです。

一方、意味的類似度判定は文埋め込みを用いるため、言い換えによって表現が変わっていても、意味が同じであれば高い類似度と判定できます。言い換えを同じ意味として捉えられるかどうかという点が、両者を分ける最大の違いです。

三つの捉え方を、判定の対象と結果の形で並べると次のようになります。

判定の方式 何を判定するか 結果の形
意味的類似度判定 2つの文の意味がどれくらい近いか 数値のスコア(STS-Bでは0〜5)
含意関係認識 前提の文から仮説の文が論理的に導けるか 含意・矛盾・中立のカテゴリ
キーワードマッチング 語句そのものが一致しているか 表層的な一致の度合い

同じ「2つの文を比べる処理」でも、測る対象と返ってくる結果の形が違う点が、三者を区別する手がかりになります。

4. ビジネス・実務での活用シナリオ

カスタマーサポートのFAQ検索では、ユーザーが入力する質問文とFAQに登録された文言が一字一句一致するとは限りません。意味的類似度判定を使えば、言い回しが違っていても意味が近い質問であれば該当のFAQを検索結果の上位に表示できます。表現の揺れをそのまま拾えなければ、せっかく用意したFAQが利用者に届かず、問い合わせ対応の負担が減らないままになってしまいます。

社内文書検索やナレッジ管理の場面では、過去の議事録や問い合わせ履歴が担当者ごとに異なる言葉で書かれていることが珍しくありません。意味的類似度判定を用いることで、表現の異なる文書の中からも意味的に関連する記録を探し出せます。単語の一致だけを頼りに検索していると、同じ内容を指す記録が別々の言葉で書かれているだけで見つからず、過去の知見が組織に蓄積されにくくなります。

アンケートの自由記述回答やレビューの分析でも、意味的類似度判定は役立ちます。表現は違っても内容が似ている投稿を意味の近さでグループ分けできるため、同じ趣旨の意見がどれだけ集まっているかという重複や傾向をつかめます。単語の一致だけで集計すると、同じ意見が違う言葉で書かれているだけで別々に数えられ、実際の声の大きさが見えなくなってしまいます。

5. 要点まとめ

  • 意味的類似度判定(STS)は2つの文がどれくらい意味的に近いかを数値で判定するタスクで、GLUEの言語理解タスクの一つ(STS-B)として位置づけられます。
  • 文をベクトルに変換する文埋め込みとコサイン類似度によって、語句が異なる言い換え文でも意味の近さを捉えられます。
  • 「意味が近いか」を測る意味的類似度判定と、「前提から仮説が導けるか」を判定する含意関係認識(自然言語推論)は、GLUEに含まれる別のタスクとして区別されます。

6. 確認問題

問1意味的類似度判定は、2つの文の意味がどれくらい近いかを数値で判定するタスクである。

解答・解説をみる

○ 正しい

STS(Semantic Textual Similarity)は文ペアの意味的な近さをスコア化するタスクです。GLUEに含まれるSTS-Bはこの代表例にあたります。

問2意味的類似度判定はGLUEベンチマークを構成する言語理解タスクの一つであり、代表的なデータセットとしてSTS-Bが知られている。

解答・解説をみる

○ 正しい

STS-BはGLUEに含まれるデータセットで、文ペアに0〜5の類似度スコアを付与する回帰タスクとして扱われます。

問3意味的類似度判定は、文中の単語が完全に一致しているかどうかで類似度を測る手法である。

解答・解説をみる

× 誤り

正しくは、文埋め込みによって文をベクトル化し、語句が異なっていても意味が近ければ高い類似度と判定します。単語が完全に一致しているかどうかを見る手法は表層的な文字列マッチングであり、意味的類似度判定とは異なります。