G検定対策!「単語の数値化の手法」がわかる学習ノート
AIが「言葉」を「数字」に変える旅
AIは「りんご」という文字をそのまま理解できません。AIが得意な「数字」に変換する必要があります。この「言葉を数字のリスト(ベクトル)に変える」技術が、自然言語処理の土台となります。
ステップ1:One-Hotベクトル表現
「単語を区別する」ための最初のステップ
- やること:
- AIが知っている全単語の「辞書(ボキャブラリー)」を作ります。
- 各単語に「出席番号(ID)」を振ります。(例: 犬=3番, 猫=4番)
- 辞書の全単語数ぶんの「0」が並んだリストを用意します。
- 該当する単語の「出席番号」の場所だけを「1」にします。
- 例(辞書が5単語の場合):
- 犬 (3番) →
[ 0, 0, 1, 0, 0 ] - 猫 (4番) →
[ 0, 0, 0, 1, 0 ]
- 犬 (3番) →
- メリット:
- コンピューターが扱いやすく、単語を「区別」できる。
- デメリット(最重要):
- 単語の「意味の近さ」が全く分からない。
- AIにとって、「犬と猫の関係」も「犬と車の関係」も、等しく「他人(関係性ゼロ)」に見えてしまう。
ステップ2:単語分散表現(単語埋め込み)
「単語の意味の近さ」を数字で表す
One-Hotベクトルの弱点を克服するため、「単語の意味」を「特徴のプロフィール帳」のような数字のリスト(ベクトル)で表現します。
- イメージ: 各単語を「特徴」の座標で表す。
- 犬 →
[動物っぽさ: 0.9, 機械っぽさ: -0.8, ...] - 猫 →
[動物っぽさ: 0.8, 機械っぽさ: -0.7, ...] - 車 →
[動物っぽさ: -0.9, 機械っぽさ: 0.9, ...]
- 犬 →
- メリット:
- AIは「犬と猫のリストは似ている(=距離が近い)」、「犬と車は似ていない(=距離が遠い)」と判断できる。
- 「値」を持つため、ベクトルの足し算・引き算が可能になる。(例:
王様 - 男性 + 女性 ≒ 女王)
どうやって「分散表現」を作るか?
この賢い「プロフィール帳」を作る戦略には、大きく2つの流派があります。
1. カウントベース手法
- 戦略: 「アンケート集計」
- やること: 膨大な文章(コーパス)を読み、「この単語の周りに、あの単語が何回来たか」をすべて数え上げ(カウントし)、巨大な「共起行列」を作ります。この集計表が、単語のプロフィールになります。
2. 推論ベース手法
- 戦略: 「穴埋めクイズ」
- やること: AIに「穴埋めクイズ」を解かせ、間違えるたびに「プロフィール帳」を少しずつ修正(学習)させます。クイズを解き終わる頃には、「副産物」として賢いプロフィール帳が完成しています。
- 代表例: Word2Vec (ワードツーベック)
Word2Vecの仕組み
「穴埋めクイズ」で賢くなるAI
Word2Vecは、シンプルな2層のニューラルネットワーク(反省マシン)を使い、膨大なクイズを高速で解きます。
- CBOW (シーボウ):
- クイズ: 周りの単語(例: 「公園」「散歩」)から、真ん中の単語(「犬」)を予測する。
- Skip-gram (スキップグラム):
- クイズ: 真ん中の単語(「犬」)から、周りの単語(「公園」「散歩」)を予測する。
- Window幅:
- クイズの際、「前後何単語まで」を「周り」とみなすかの設定。
- 狭い場合: 文法的に似た単語(例: 犬 ≒ 猫)を見つけるのが得意。
- 広い場合: テーマ的に関連する単語(例: 犬 ≒ 散歩)を見つけるのが得意。
学習のポイント
AIの性能は、「何を学習データ(コーパス)にするか」や、「Window幅をどう設定するか」といった、人間の「目的」や「パラメータ設定」に大きく左右されます。AIは「目的」を達成する道具であり、その「目的」を決めるのは人間である、という視点が重要です。
