セマンティック言語モデル

完了

詳細については、「 テキストと画像 」タブを参照してください。

NLP の最先端が進むにつれて、トークン間のセマンティック関係をカプセル化するモデルをトレーニングする機能が、強力なディープ ラーニング言語モデルの出現につながりました。 これらのモデルの中心にあるのは、 埋め込みと呼ばれるベクトル (数値の複数値配列) としての言語トークンのエンコードです。

テキストのモデリングに対するこのベクターベースのアプローチは、 Word2VecGloVe などの手法で一般的になりました。この手法では、テキスト トークンは複数の次元を持つ高密度ベクトルとして表されます。 モデルのトレーニング中に、トレーニング テキストでの使用に基づいて各トークンのセマンティック特性を反映するようにディメンション値が割り当てられます。 ベクトル間の数学的関係は、古い純粋な統計的手法よりも効率的に一般的なテキスト分析タスクを実行するために悪用される可能性があります。 このアプローチのより最近の進歩は、 注意 と呼ばれる手法を使用してコンテキスト内の各トークンを考慮し、その周囲のトークンの影響を計算することです。 結果として得 られるコンテキスト化された 埋め込み (GPT ファミリのモデルなど) は、最新の生成 AI の基礎を提供します。

テキストをベクターとして表す

ベクトルは、複数の軸に沿った座標によって定義される多次元空間内のポイントを表します。 各ベクトルは、原点からの方向と距離を表します。 意味的に似たトークンは、方向が似たベクトルになります。つまり、同じ方向を指します。

たとえば、一般的な単語の次の 3 次元埋め込みを考えてみましょう。

ワード Vector
dog [0.8, 0.6, 0.1]
puppy [0.9, 0.7, 0.4]
cat [0.7, 0.5, 0.2]
kitten [0.8, 0.6, 0.5]
young [0.1, 0.1, 0.3]
ball [0.3, 0.9, 0.1]
tree [0.2, 0.1, 0.9]

次に示すように、これらのベクトルを 3 次元空間で視覚化できます。

単語ベクトルの 3D 視覚化の図。

"dog""cat"のベクターは、"puppy""kitten"(両方の若い動物)と同様に類似しています(両方の家畜)。 単語 "tree""young"、および ball" は、異なる意味を反映して、明確に異なるベクトルの向きを持っています。

ベクトルにエンコードされたセマンティック特性により、単語を比較し、分析的な比較を可能にするベクターベースの演算を使用できます。

ベクトルの向きは次元値によって決まるため、意味意味が似ている単語の向きは似ている傾向があります。 つまり、ベクトル間の コサインの類似性 などの計算を使用して、意味のある比較を行うことができます。

たとえば、 "dog""cat"、および "tree"の間の "奇数 1 アウト" を決定するには、ベクトルのペア間のコサインの類似性を計算できます。 コサインの類似性は次のように計算されます。

cosine_similarity(A, B) = (A · B) / (||A|| * ||B||)

ここで、 A · B はドット積であり、 ||A|| はベクトル A の大きさです。

3 つの単語間の類似点の計算:

  • dog [0.8, 0.6, 0.1] と cat [0.7, 0.5, 0.2]:

    • ドット積: (0.8 × 0.7) + (0.6 × 0.5) + (0.1 × 0.2) = 0.56 + 0.30 + 0.02 = 0.88
    • dogの大きさ: √(0.8² + 0.6² + 0.1²) = √(0.64 + 0.36 + 0.01) = √1.01 ≈ 1.005
    • catの大きさ: √(0.7² + 0.5² + 0.2²) = √(0.49 + 0.25 + 0.04) = √0.78 ≈ 0.883
    • コサイン類似性: 0.88 / (1.005 × 0.883) ≈ 0.992 (高類似性)
  • dog [0.8, 0.6, 0.1] と tree [0.2, 0.1, 0.9]:

    • ドット積: (0.8 × 0.2) + (0.6 × 0.1) + (0.1 × 0.9) = 0.16 + 0.06 + 0.09 = 0.31
    • treeの大きさ: √(0.2² + 0.1² + 0.9²) = √(0.04 + 0.01 + 0.81) = √0.86 ≈ 0.927
    • コサインの類似性: 0.31 / (1.005 × 0.927) ≈ 0.333 (低類似性)
  • cat [0.7, 0.5, 0.2] と tree [0.2, 0.1, 0.9]:

    • ドット積: (0.7 × 0.2) + (0.5 × 0.1) + (0.2 × 0.9) = 0.14 + 0.05 + 0.18 = 0.37
    • コサイン類似性: 0.37 / (0.883 × 0.927) ≈ 0.452 (低類似性)

犬、猫、およびツリーベクトルを示すコサイン類似性の視覚化の図。

結果は、 "dog""cat" が非常に似ている (0.992) 一方、 "tree""dog" (0.333) と "cat" (0.452) の両方に低い類似性を持っていることを示しています。 したがって、 tree は明らかに奇数です。

加算と減算によるベクトル変換

ベクトルを追加または減算して、新しいベクターベースの結果を生成できます。これは、一致するベクトルを持つトークンを見つけるために使用できます。 この手法を使用すると、直感的な算術ベースのロジックを使用して、言語関係に基づいて適切な用語を決定できます。

たとえば、前のベクターを使用します。

  • dog + young = [0.8, 0.6, 0.1] + [0.1, 0.1, 0.3] = [0.9, 0.7, 0.4] = puppy
  • cat + young = [0.7, 0.5, 0.2] + [0.1, 0.1, 0.3] = [0.8, 0.6, 0.5] = kitten

犬+若い=子犬と猫+若い=子猫を示すベクター付加の図。

これらの操作は、 "young" のベクトルが成人動物から若い動物へのセマンティック変換をエンコードするため機能します。

実際には、ベクトル算術は完全一致を生成することはほとんどありません。代わりに、ベクトルが結果に 最も近い (最も似ている) 単語を検索します。

算術演算は逆でも動作します。

  • puppy - young = [0.9, 0.7, 0.4] - [0.1, 0.1, 0.3] = [0.8, 0.6, 0.1] = dog
  • kitten - young = [0.8, 0.6, 0.5] - [0.1, 0.1, 0.3] = [0.7, 0.5, 0.2] = cat

類推推論

ベクトル算術は、「puppydogであるように、kittenである」といったアナログ問題にも答えることができます。

これを解決するには、次の値を計算します。 kitten - puppy + dog

  • [0.8, 0.6, 0.5] - [0.9, 0.7, 0.4] + [0.8, 0.6, 0.1]
  • = [-0.1, -0.1, 0.1] + [0.8, 0.6, 0.1]
  • = [0.7, 0.5, 0.2]
  • = cat

子猫 - 子犬 + 犬 = 猫を示すベクトル算術の図。

これらの例では、ベクター操作で言語リレーションシップをキャプチャし、セマンティック パターンに関する推論を可能にする方法を示します。

テキスト分析にセマンティック モデルを使用する

ベクターベースのセマンティック モデルは、多くの一般的なテキスト分析タスクに強力な機能を提供します。

テキストの要約

セマンティック埋め込みでは、ドキュメント全体を最も代表するベクトルを使用して文を識別することで 、抽出的な 要約が可能になります。 各文をベクトルとしてエンコードすることで (多くの場合、その構成要素の単語の埋め込みを平均化またはプールすることによって)、ドキュメントの意味の最も中心となる文を計算できます。 これらの中心的な文を抽出して、主要なテーマをキャプチャする概要を形成できます。

キーワード抽出

ベクターの類似性は、各単語の埋め込みをドキュメントの全体的なセマンティック表現と比較することで、ドキュメント内の最も重要な用語を識別できます。 ベクトルがドキュメント ベクターに最も似ている単語、またはドキュメント内のすべての単語ベクトルを考慮する際に最も中心的な単語は、主なトピックを表す重要な用語である可能性があります。

名前付きエンティティの認識

セマンティック モデルは、類似したエンティティ型をクラスター化するベクター表現を学習することで、名前付きエンティティ (人、組織、場所など) を認識するように微調整できます。 推論中、モデルは各トークンの埋め込みとコンテキストを調べて、それが名前付きエンティティを表しているかどうかを判断し、存在する場合は、どのような型を表すのかを判断します。

テキスト分類

感情分析やトピック分類などのタスクでは、ドキュメントを集計ベクトル (ドキュメント内のすべての単語埋め込みの平均など) として表すことができます。 これらのドキュメント ベクターは、機械学習分類子の特徴として使用したり、クラス プロトタイプ ベクターと直接比較してカテゴリを割り当てたりすることができます。 意味的に似たドキュメントはベクターの向きが似ているため、このアプローチでは、関連するコンテンツを効果的にグループ化し、さまざまなカテゴリを区別します。