同じ「本」でもベクトルが違うから、AIは文脈を理解している。この結論に飛びつくのは、座席番号が違うから二人の乗客は性格が違う、と言うのと同じ早さです。BERTの入口で二つの「本」を分けているのは、どちらの文の何番目にあるかという置き場所だけで、文脈はまだ何も入っていないからです。この記事では、Input Embeddingの足し算を小さな例で手で追い、差の内訳を計算して、文脈がどこで入るのかを示します。
二つの文を、三種類のIDの列に変えます
BERTのようなモデルは、各トークンを、Token Embedding、Segment Embedding、Position Embeddingの三つを足した一本のベクトルに変えます。これがInput Embeddingです。次の二つの文を入れるとします。
- 文A: 私は昨日、図書館で本を読みました。
- 文B: その本はとても面白かったです。
トークンに分け、文頭に[CLS]、文の区切りと末尾に[SEP]を入れると、20個のトークンになります。
[CLS] 私 は 昨日 、 図書館 で 本 を 読みました 。 [SEP] その 本 は とても 面白かった です 。 [SEP]
トークンごとに、三種類のIDを用意します。IDは説明用の仮の値です。
- トークンID: 語彙の中での番号。[CLS]は101、私は2001、本は2007、[SEP]は102、そのは2011
- セグメントID: 文Aなら0、文Bなら1。最初の[SEP]までの12個が0、残りの8個が1
- 位置ID: 先頭から数えた順番。0から19まで
三つの表からベクトルを引いて、足します
それぞれのIDに対応するベクトルを、三つの埋め込み行列から引きます。数値は3次元の仮の値で、実際のモデルではランダムに初期化され、学習で調整されます。
- Token Embedding: [CLS]は[0.1, 0.2, 0.3]、私は[0.4, 0.5, 0.6]、本は[2.2, 2.3, 2.4]、[SEP]は[3.4, 3.5, 3.6]、そのは[3.7, 3.8, 3.9]
- Segment Embedding: 0は[0.01, 0.02, 0.03]、1は[0.04, 0.05, 0.06]
- Position Embedding: 位置0は[0.001, 0.002, 0.003]で、一つ進むごとに各成分が0.003ずつ増える
[CLS]なら、[0.1, 0.2, 0.3] + [0.01, 0.02, 0.03] + [0.001, 0.002, 0.003] = [0.111, 0.222, 0.333] です。
| トークン | セグメント | 位置 | Input Embedding |
| [CLS] | 0 | 0 | [0.111, 0.222, 0.333] |
| 私 | 0 | 1 | [0.414, 0.525, 0.636] |
| 本(文A) | 0 | 7 | [2.232, 2.343, 2.454] |
| [SEP] | 0 | 11 | [3.444, 3.555, 3.666] |
| その | 1 | 12 | [3.777, 3.888, 3.999] |
| 本(文B) | 1 | 13 | [2.280, 2.391, 2.502] |
| [SEP] | 1 | 19 | [3.498, 3.609, 3.720] |
二つの「本」の差は、意味ではなく置き場所の差です
文Aの「本」と文Bの「本」の差を計算すると、どの成分も0.048です。内訳は、セグメントの差が0.03、位置が6つ離れていることによる差が0.018で、トークンの部分の差はゼロです。
入口で二つの「本」を分けているのは、置き場所の情報だけです。「読みました」の目的語なのか、「面白かった」の主語なのかという役割は、まだどこにも入っていません。仮に同じ字が、一方では書物を、もう一方では細長い物の数え方を意味していても、入口のトークンの部分は同じベクトルです。
小数第3位まで合っている表は、それだけで説得力を帯びます。しかしこの表の数字はすべて説明用の仮の値で、精密な計算が保証するのは手順の正しさであって、そこから引き出した結論の正しさではありません。拙著『GoogleのAI NotebookLM 意思決定の強化書』で使う根拠、前提、結論の三層に分けると、表の数字が根拠、それをどう読むかが前提、文脈を理解しているという主張が結論です。ベクトルが違う、という根拠からは、置き場所が違う、までしか言えません。
文脈は、層を通るあいだに周りの語から書き込まれます
意味の違いが入るのはこの後です。Input Embeddingがトランスフォーマーの層に入ると、自己注意の計算で、各トークンに周りの語の情報が混ぜ込まれます。文Aの「本」には「読みました」の、文Bの「本」には「面白かった」の情報が入り、層を重ねるごとに、二つの「本」は役割を反映したベクトルになっていきます。
PyTorchで書くと、nn.Embeddingで三つの埋め込み層を作り、三つのIDを通して足すだけです。実際のモデルでは次元は数百あり、値は学習で調整されますが、入口では足し算だけ、文脈は層で入る、という分担は変わりません。ただし、層を通るうちにどの段階でどの語の情報がどれだけ混ざるのかは、外から完全には説明できていません。なお、GPTのようなモデルはSegment Embeddingを使わず、区切りを特殊なトークンで示します。その場合、入口の差は位置の差だけになります。
依頼の区切りも、AIには情報です
背景、依頼、出力の形を一つの段落に流し込んだ依頼は、[SEP]を抜いて二つの文をつなげた入力のようなものです。どこまでが前提で、どこからが頼みごとかを、モデルが推測で切り分けるしかなくなります。「背景」「依頼」「出力の形」と見出しを付けて区切れば、それぞれの言葉の役割が周りから読み取りやすくなります。依頼が一文で済む単純な仕事なら、区切りはなくても困りません。
あなたの依頼文で、背景と依頼と出力の形の境目は、初めて読む人にも一目で分かるでしょうか。AIの説明で精密な数字を見たとき、その数字から言えることと言えないことを分けて読んでいるでしょうか。
この記事の背景にある考え方は、拙著『GoogleのAI NotebookLM 意思決定の強化書』の1章1節「意思決定の構造と前提の要素」に書きました。東京から大阪への移動手段の例で、意思決定を根拠、前提、結論の三層に分け、根拠と前提を理由という一語でひとまとめにせず、厳密に区別する、という節です。そこには「前提が違えば、同じデータからでも結論は真逆になってしまいます。」とあります。この節を読むと、精密な数字の表を見せられたとき、表そのものと、そこから文脈を理解していると言い立てる読み方とを、自分で切り離して読めるようになります。
同じ資料を見ているのに、なぜ結論が割れるのか。
『GoogleのAI NotebookLM 意思決定の強化書』
前提が結論を決める。意思決定を根拠、前提、結論の三層に分け、前提を対象、目的、制約、評価基準の四つで言葉にする本です。
読み終えたとき、手元に残るもの
- 意思決定の設計図になる前提リスト
- 資料を事実、意見、噂、ゴミに仕分けるFORT
- 同じ物差しで比べる選択肢表と採点表
- 始める条件と止める条件を書いた決定書
NotebookLMは2026年7月にGemini Notebookへ名称が変わりました。本の手法は、使うAIの種類を問いません。

