目次
1. なぜテキストを「数字」に変換する必要があるのか?
コンピュータ(ニューラルネットワーク)は、人間のように言葉をそのまま理解することはできません。AIが処理できるのは「数字(ベクトル、行列、テンソル)」などの数学的なデータのみです。 そのため、自然言語処理(NLP)においては、生のテキストをニューラルネットワークが学習可能な数値データに変換するプロセスが不可欠です。この変換を担うのが「トークン化(Tokenization)」と「埋め込み(Embedding)」という2つの強力な概念であり、GPTやBERTといったすべてのTransformerモデルの基盤となっています。
2. トークン化(Tokenization)とは?
トークン化とは、テキストをモデルが処理しやすい小さな単位(トークン)に分割するプロセスです。
主なトークン化の手法
トークンの分割方法にはいくつかのアプローチがありますが、現代のAIでは主に「サブワード・トークン化」が採用されています。
-
単語レベルのトークン化 (Word Tokenization):
-
空白(スペース)を基準に分割します。(例:「I / love / machine / learning」)
-
課題: 語彙数が膨大になり、未知の単語(新語やタイポなど)が出現すると処理できない「OOV(Out Of Vocabulary)」問題が発生します。
-
-
文字レベルのトークン化 (Character Tokenization):
-
1文字ずつ分割します。(例:「T / R / A / N / S / F / O / R / M / E / R」)
-
課題: 未知の単語には対応できますが、テキストの系列(シーケンス)が長くなりすぎ、計算コストが膨大になります。
-
-
サブワード・トークン化 (Subword Tokenization) ★現在の主流:
-
単語を意味のある「部分(サブワード)」に分割します。
-
例: 「unbelievable」 → 「unbelieve」と「able」に分割。「tokenization」 → 「token」と「ization」に分割。
-
メリット: 語彙サイズを劇的に削減しつつ、未知の単語にも柔軟に対応できます(BPEやWordPieceアルゴリズムなどが有名です)。
-
トークン化された各要素には、辞書に基づいて固有のID番号(Token ID)が割り当てられます。(例:「transformers」= 1452)
3. 埋め込み(Embeddings)とは?
トークンID(単なる数字)だけでは、AIはその言葉の「意味」を理解できません。そこで必要なのが「埋め込み(Embedding)」です。 埋め込みとは、トークンを「高次元の連続的な数値ベクトル(密なベクトル)」に変換することです。
埋め込みベクトルの次元数
モデルのアーキテクチャによって、1つの単語を表現するベクトルのサイズ(次元数)は異なります。
-
例:BERTは768次元、GPT-3は12,288次元。 この高次元空間における座標データとして表現することで、AIはデータを処理できるようになります。
なぜEmbeddingが強力なのか?(意味の学習)
Embeddingの最大の強みは、「意味的な関係性」をベクトル空間上の距離として表現できる点にあります。
-
意味が似ている単語(例:KingとQueen、ParisとFrance)は、ベクトル空間上で近い位置に配置されます。
-
有名な関係式:
King - Man + Woman = Queenのように、AIは学習を通じて単語間の意味的な関係性を自動的に獲得します。
これらは、巨大な「埋め込み行列(Embedding Matrix)」としてモデル内に保存されます。
4. 位置エンコーディング(Positional Encoding)の重要性
Transformerモデルは、文章のすべてのトークンを「並列(同時)」に処理するため、そのままでは「語順」が分からなくなってしまいます。 (例:「犬が人を噛む」と「人が犬を噛む」は単語は同じでも意味が全く異なります。)
この問題を解決するのが位置エンコーディング(Positional Encoding)です。トークンのEmbeddingベクトルに対して、文中の「どの位置にあるか」という情報を足し合わせることで、AIは文章の文脈と順序を正しく理解できるようになります。
5. Transformerへの入力パイプライン(まとめ)
ここまでの流れをまとめると、AIがテキストを読み込む手順は以下のようになります。
-
Text Input: 生のテキストデータ
-
Tokenization: サブワード単位などに分割(トークン化)
-
Token IDs: 辞書に基づいてID番号を割り当て
-
Embeddings: IDを高次元のベクトル空間に変換(意味を持たせる)
-
Positional Encoding: ベクトルに「語順(位置情報)」を追加
-
Transformer Layer: 完成した入力ベクトルが、Self-Attention(自己注意機構)などのニューラルネットワーク層へ送られ、処理される。
結論
トークン化と埋め込みの設計は、言語モデルのパフォーマンス、メモリ使用量、そして未知の単語への対応力を決定づける極めて重要な要素です。この2つの概念がなければ、ChatGPTやBERTといった現代の強力なAIシステムは機能しません。NLP(自然言語処理)の土台となるこの仕組みを理解することは、AIの挙動を深く知るための第一歩と言えます。