3.2 線形代数とベクトル空間 - LLMにおける単語埋め込みの数理的基盤

前のセクションでは、「確率論と統計」について解説しました。ここでは単語の埋め込みやベクトル空間に基づくモデルの表現に関して詳しく見ていきます。

3.2 線形代数:ベクトル空間と埋め込み表現

線形代数は、LLM(大規模言語モデル)の数理的基盤として非常に重要な役割を果たします。特に、単語を数値ベクトルとして表現する「埋め込み表現(Word Embeddings)」は、線形代数を用いたベクトル空間内での計算に基づいています。この手法により、単語の意味的な類似性や文脈依存性を捉えることができます。

単語の埋め込みは、高次元空間における単語のベクトル表現です。モデルが膨大なテキストデータを学習する過程で、類似した意味を持つ単語は、ベクトル空間内で互いに近い位置に配置されます。例えば、「king」と「queen」や「man」と「woman」のような単語の間には、意味的な類似性があり、これらの単語のベクトルは空間内でほぼ同じ方向に向いていることが多いです。このような単語のベクトル化は、行列演算固有値分解などの線形代数の技術を活用して行われます。

埋め込み表現を計算する際、モデルは「クエリ」、「キー」、「バリュー」と呼ばれる3つのベクトルを使用します。これらのベクトルは、文脈に基づいて、どの単語が重要かを評価するために、ベクトル空間で操作されます。具体的には、クエリベクトル \(q\) とキー \(k\) の内積を計算し、その結果を基にバリューベクトル \(v\) を加重平均して関連性を評価します。この内積は次の式で表されます:

\[ q \cdot k = \sum_{i=1}^n q_i k_i \]

この計算に基づいて、モデルは単語間の文脈的な関係を捉え、次に来る単語を予測します。

コサイン類似度の詳細な解説

さらに、コサイン類似度は、単語間の類似性を評価するための重要な手法です。コサイン類似度は、2つのベクトル間の角度を用いて類似度を測定し、次の式で表されます:

\[ \text{コサイン類似度} = \frac{A \cdot B}{\|A\| \|B\|} \]

ここで、\( A \cdot B \) は2つのベクトルの内積で、\(\|A\|\) と \(\|B\|\) はそれぞれのベクトルのノルム(大きさ)です。コサイン類似度の値は -1 から 1 の範囲にあり、1 に近いほどベクトルが同じ方向を向いており、単語間の意味的な類似性が高いことを示します。

コサイン類似度の計算例

具体例として、「king」と「queen」、そして「king」と「man」のベクトル間のコサイン類似度を計算してみます。例えば以下のベクトルが与えられているとします:

  • "king" = [0.8, 0.1, 0.5]
  • "queen" = [0.9, 0.2, 0.4]
  • "man" = [0.7, 0.3, 0.6]

まず、"king" と "queen" の内積を計算します:

\[ 0.8 \times 0.9 + 0.1 \times 0.2 + 0.5 \times 0.4 = 0.94 \]

それぞれのベクトルのノルムを計算します:

\[ \|king\| = \sqrt{0.8^2 + 0.1^2 + 0.5^2} ≈ 0.95, \quad \|queen\| = \sqrt{0.9^2 + 0.2^2 + 0.4^2} ≈ 1.00 \]

コサイン類似度は次のように計算されます:

\[ \text{コサイン類似度} = \frac{0.94}{0.95 \times 1.00} ≈ 0.99 \]

この結果は、「king」と「queen」が意味的に非常に近いことを示しています。同様に、「king」と「man」のコサイン類似度を計算すると、類似度は約 0.97 となり、これも強い関連性を示します。

線形代数の重要性

行列演算、固有値分解、コサイン類似度などの手法は、LLMが大量のテキストデータを効率的に処理し、単語や文脈の意味的な関係を捉えるために重要です。これらの技術を理解することで、LLMがどのようにして言語のパターンを学習し、文脈に適応するのかをより深く理解することができます。

次の第4章では、「トランスフォーマーの数理」について学びます。セルフアテンションメカニズムとマルチヘッドアテンションが、どのように文脈理解を強化するかを見ていきましょう。

公開日: 2024-10-10
最終更新日: 2025-02-02
バージョン: 4

下田 昌平

開発と設計を担当。1994年からプログラミングを始め、今もなお最新技術への探究心を持ち続けています。