LLM の条件付き確率分布と尤度 | 確率・統計
本稿では、条件付き確率分布の考え方を自己回帰言語モデル(LLM)に適用し、連鎖律による同時分布の分解から、学習時の誤差関数(交差エントロピー / 負の対数尤度)までを一貫した流れで整理します。
以降では、モデルが近似する分布を $q$、真の(データが従う)分布を $p$ として区別して表記します。モデルのパラメータ(重み全体)を $\theta$ とし、$\theta$ への依存を明示するときは $q_\theta$ と書きます。
LLMにおける確率変数と実現値
- $X_1, X_2, \dots, X_T$:各位置のトークンを表す確率変数
- $x_1, x_2, \dots, x_T$:その実現値(具体的な単語・トークン)
- $x_{\lt t} := (x_1, \dots, x_{t-1})$:$t$ 番目より前の実現値をまとめた記法
条件付き確率分布 $q(\,\cdot\,\vert{}x_{\lt t})$
条件付き確率 $q(x_t\vert{}x_{\lt t})$ は、複数の事象が同時に起きたという1つの複合事象(${X_1=x_1} \cap {X_2=x_2} \cap \cdots \cap {X_{t-1}=x_{t-1}}$)を条件($x_{\lt t}$)として、以下のように定義します。
\[q(x_t\vert{}x_{\lt t}) := q(X_t = x_t\vert{}X_1=x_1,\dots,X_{t-1}=x_{t-1}) = \frac{q(x_1,\dots,x_t)}{q(x_1,\dots,x_{t-1})}\]条件 $x_{\lt t}$ は $t-1$ 個の確率変数それぞれに関する事象の連言を圧縮して書いたものです。この条件付き確率が定義できるには、$X_1,\dots,X_t$ が同じ確率空間上で同時に定義され、条件の確率 $q(x_1,\dots,x_{t-1})$ が正である必要があります。$X_t$ が $x_{\lt t}$ に依存するかどうかは、この定義とは別の、同時分布の性質です。
$x_{\lt t}$ を固定して、$x_t$ が語彙 $V$ の中のどの値を取るかについて確率を割り当てたもの全体
\[\{\, q(x_t = v\vert{}x_{\lt t}) \;:\; v \in V \,\}\]が「トークン $X_t$ の、$x_{\lt t}$ のもとでの条件付き確率分布」です。語彙 $V$ の要素数を $V$ とすると、これは $V$ 次元の確率ベクトルで、語彙上のカテゴリカル分布のパラメータにあたります。
LLM はこの分布を、ニューラルネットワーク $f_\theta$ の出力(ロジット)に softmax を適用して近似します。
\[q_\theta(\,\cdot\,\vert{}x_{\lt t}) = \mathrm{softmax}\bigl(f_\theta(x_{\lt t})\bigr)\]$\theta$ は、埋め込み行列、アテンションの重み行列、フィードフォワード層の重みなど、ネットワークの学習可能なパラメータ全体です。確率そのものではなく、全位置で共通です。位置 $t$ ごとに分布が変わるのは、共通の $f_\theta$ に入力する文脈 $x_{\lt t}$ が変わるためです。
系列全体への拡張(連鎖律)
条件付き確率の定義(乗法定理)
\[q(A,B) = q(A)\,q(B\mid A)\]を $T$ 個の確率変数 $X_1,\ldots,X_T$ に逐次的に適用すると、系列全体の同時分布は
\[q(x_1,\dots,x_T) = q(x_1)\, q(x_2\mid x_1)\, q(x_3\mid x_1,x_2) \cdots q(x_T\vert{}x_{<T}) = \prod_{t=1}^{T} q(x_t\vert{}x_{\lt t})\]と分解できます。これは確率の公理から導かれる恒等式(連鎖律, chain rule of probability)であり、i.i.d.(独立同分布)の仮定を一切必要としません。
- $t$ ごとに異なる分布であってよい(identically distributed である必要はない)
- 直前の文脈 $x_{\lt t}$ に依存してよい(independent である必要はない)
各因子 $q(x_t\vert{}x_{\lt t})$ は上記の点で、i.i.d. を仮定した単純な積 $\prod_t q(x_t)$ とは前提が異なります。自己回帰言語モデルは、この分解のとおり、各時刻 $t$ で文脈 $x_{\lt t}$ を条件とした条件付き分布を出力します。
LLMの交差エントロピー誤差とカテゴリカル分布の尤度関数
系列長 $C$、語彙数 $V$ とします。ここでは系列長 $C$ の 1 系列に注目して、交差エントロピー誤差と負の対数尤度(NLL: Negative Log-Likelihood)の対応を確認します。ミニバッチ(サイズ $N$)では、各系列の損失をバッチ内で平均します。
何が共通で、何が位置ごとに変わるか
先に、混同しやすい記号を整理します。
| 記号 | 意味 | 位置 $t$ ごとに変わるか |
|---|---|---|
| $\theta$ | モデルの重み全体 | 変わらない(全位置・全系列で共通)。学習で求めるのは $\hat\theta$ |
| $V$ | 語彙(カテゴリの集合) | 変わらない |
| $x_{\lt t}$ | 位置 $t$ までの文脈 | 変わる |
| $q_t := q_\theta(\,\cdot\,\vert{}x_{\lt t})$ | 位置 $t$ の語彙上の確率ベクトル(softmax の出力) | 変わる($\theta$ は共通で、入力の文脈が違うため) |
| $k_t$ | 位置 $t$ の正解トークン(観測値) | 変わる |
$\theta$ と $q_t$ は別物です。 尤度関数の記事のカテゴリカル分布では、パラメータ(確率ベクトル)を $\boldsymbol{p}$ と書き、$\theta=\boldsymbol{p}$ と読み替えました。i.i.d. の場合は、確率ベクトルそのものが未知のパラメータだからです。LLM では $q_t$ は自由なパラメータではなく、$\theta$ と文脈から計算される値です。
$q_1,\dots,q_C$ を互いに無関係な自由なパラメータとして動かすと、各位置の観測値は正解トークン $k_t$ の 1 個だけなので、$q_t=\text{one-hot}(k_t)$ とするだけで尤度が最大になり、推定は退化します。$q_t$ を共通の $\theta$ の関数にすることで、はじめて訓練データにない文脈への汎化が可能になります。
位置 $t$ の尤度関数
各位置 $t$ の予測分布 $q_t$ は、$x_{\lt t}$ を条件として語彙 $V$ のどれが出現するかを表すカテゴリカル分布のパラメータです。
$x_{t,v} \in {0,1}$ は時刻 $t$ における正解トークンを表す one-hot ベクトルの $v$ 番目の成分を表します。
時刻 $t$ の正解ラベルが $k_t$ であるとき、$x_{t,v}$ は次式で定義されます。
このとき、$q_t$ を変数とみなした時刻 $t$ の尤度関数は、観測値が1つ(正解トークン) のカテゴリカル分布の尤度関数として次式で定義されます。
\[\prod_{v=1}^{V} q_t(v)^{x_{t,v}} = q_t(k_t)\]$v=k_t$ の項以外はすべて $q_t(v)^0=1$ となるため、実質的に正解トークンの確率のみが残ります。
また対数尤度は次式で定義されます。
文脈 $x_{\lt t}$ を固定すれば、$x_t$ の分布は通常のカテゴリカル分布である。i.i.d. の場合との違いは、確率ベクトル $q_t$ が共通の 1 つではなく、$\theta$ と文脈から位置ごとに計算される点にある。
実際に学習で動かす変数は $q_t$ ではなく $\theta$ です。$\theta$ の関数として書くと、位置 $t$ の尤度は $q_\theta(k_t\vert{}x_{\lt t})$ です。
系列長 C の尤度関数 / 対数尤度関数 と損失関数
系列長 $C$ 全体の尤度関数、対数尤度は、連鎖律により(各時刻で異なる分布 $q_t$ であっても成立する形で)以下の式で定義されます。各位置の観測値 $x_t$ は正解トークン $k_t$ です。
\[\begin{aligned} L(\theta) &= \prod_{t=1}^{C} q_\theta(k_t\vert{}x_{\lt t}) = \prod_{t=1}^{C} q_t(k_t) && \text{(系列長 $C$ の尤度関数)} \\ \log L(\theta) &= \sum_{t=1}^{C} \log q_\theta(k_t\vert{}x_{\lt t}) = \sum_{t=1}^{C} \log q_t(k_t) && \text{(系列長 $C$ の対数尤度関数)} \end{aligned}\]これは、連鎖律による同時確率 $q_\theta(x_1,\dots,x_C)$ を、観測した系列で評価したものです。
注意点は次の 3 つです。
- 各位置で観測する値は正解トークン $k_t$ の 1 個だけです。「各位置から $n$ 回観測する」のではなく、各位置から因子が 1 つずつ出て、それらを $C$ 個掛け合わせたものが系列の尤度です。
- 各 $q_t$ は、モデル自身が生成した文脈ではなく、訓練データの正解の文脈 $x_{\lt t}$ を条件として計算します(teacher forcing)。位置どうしは独立ではなく、文脈を通じて従属しています。
- 位置ごとに分布 $q_t$ は違いますが、$\theta$ は共通です。
損失は、系列長 $C$ の対数尤度をトークン数で正規化(平均)し、符号を反転して定義します。尤度関数 $L(\theta)$ と区別するため、損失を $\mathcal{L}(\theta)$ と書きます。
\[\mathcal{L}(\theta) = - \frac{1}{C} \sum_{t=1}^C \log q_\theta\left(k_t\vert{}x_{\lt t}\right)\]位置 $t$ の項は、真の分布を one-hot ベクトル $x_t$、モデルの分布を $q_t$ としたときの交差エントロピーです。
\[-\sum_{v=1}^{V} x_{t,v} \log q_t(v) = -\log q_t(k_t)\]$-\frac{1}{C}\log$ は単調減少で、$C$ は固定なので、$\mathcal{L}(\theta)$ を最小化する $\theta$ と $L(\theta)$ を最大化する $\theta$ は一致します。これが、交差エントロピー誤差を用いた学習が言語モデルの尤度最大化と数学的に等価であることの根拠です。実際の学習では、訓練データ全体(多数の系列)の対数尤度の和を最大化します。
学習後の分布
学習で求めるのは、共通の $\hat\theta$ 1 組です。
\[\hat\theta = \underset{\theta}{\arg\max}\; \log L(\theta)\]$\hat\theta$ を固定すると、文脈 $x_{\lt t}$ が与えられるたびに、語彙上の分布 が決まります。
\[\hat{\boldsymbol{p}}_t = q_{\hat\theta}(\,\cdot\,\vert{}x_{\lt t}) = \mathrm{softmax}\bigl(f_{\hat\theta}(x_{\lt t})\bigr)\]決まるのは $\hat\theta$ と文脈の組に対してであり、$\hat\theta$ だけで分布が決まるわけではありません。なお、ニューラルネットワークの損失は非凸なので、実際の学習で得られる $\hat\theta$ は厳密な最大点とは限らず、初期値によっても変わります。
カテゴリカル分布の $\hat\theta$ との違い
「$\hat\theta$」は、カテゴリカル分布と LLM で中身が違います。
カテゴリカル分布の場合
尤度関数の記事のカテゴリカル分布では、$\hat\theta=\hat{\boldsymbol{p}}=(\hat p_1,\dots,\hat p_M)$ で、各カテゴリの確率そのものです。パラメータが分布そのものなので、$\hat\theta$ が決まれば分布が直接決まります。観測数を $n$、カテゴリ $j$ の観測回数を $n_j$ とすると、最尤推定値は $\hat p_j = n_j/n$ です(導出は尤度関数の記事の範囲外)。制約 $\sum_j p_j=1$ があるので、自由なパラメータは $M-1$ 個です。
LLM の場合
$\theta$ は、次のようなネットワーク内の重み全体をまとめたものです。確率ではありません。
- トークン埋め込み行列(語彙数 × 埋め込み次元)
- 各層のアテンションの重み行列($W_Q, W_K, W_V, W_O$ など)
- 各層のフィードフォワード層の重み行列とバイアス
- LayerNorm などの正規化層のスケールとバイアス
- 出力層の重み行列(埋め込み行列と共有する設計も多い)
これらを全部 1 本のベクトルに並べたものが $\theta$ で、成分数は数十億以上にもなります。$\hat\theta$ は学習後のこれらの値です。softmax 自体には学習可能な重みはなく、ネットワークの最終出力(ロジット)を確率に変換するだけです。
違いの整理
| カテゴリカル分布 | LLM | |
|---|---|---|
| $\hat\theta$ の中身 | 各カテゴリの確率 $\hat p_j$ | ネットワークの全重み |
| 成分数 | $M-1$ 個 | 数十億以上 |
| 分布との関係 | $\hat\theta$ がそのまま分布 | $\hat\theta$ と文脈 $x_{\lt t}$ から計算して初めて分布が出る |
カテゴリカル分布では、パラメータの空間と分布の空間が同じです。LLM では、パラメータ空間(重みの空間)から、$f_\theta$ と softmax を通して語彙上の分布が計算されます。$\hat{\boldsymbol{p}}_t$ が $t$ ごとに違っても $\hat\theta$ は 1 組なのは、この計算の入力(文脈)が違うからです。
尤度関数の記事にある「パラメータ $\theta$ を $\boldsymbol{p}$ と書く」という読み替えは、カテゴリカル分布のように $\theta=\boldsymbol{p}$ となる場合だけのものです。LLM の $\theta$ は $\boldsymbol{p}$ ではありません。
まとめ
| 要素 | 対応するもの |
|---|---|
| 確率変数 | $X_1,\dots,X_T$(各位置のトークン) |
| 実現値 | $x_1,\dots,x_T$(実際の文) |
| 条件(複合事象) | $x_{\lt t}$(それまでの文脈) |
| 条件付き確率分布 | $q_\theta(\,\cdot\,\mid x_{\lt t})$(語彙上の分布、モデルの出力。位置ごとに異なる) |
| モデルのパラメータ | $\theta$(重み全体。全位置で共通。学習で求めるのは $\hat\theta$) |
| 同時分布の分解 | 連鎖律 $\prod_t q_\theta(x_t\mid x_{\lt t})$ |
| 系列の尤度 | $L(\theta)=\prod_{t=1}^{C} q_\theta(k_t\mid x_{\lt t})$ |
| 対数尤度(平均) | $\displaystyle\frac{1}{C}\sum_{t=1}^{C}\log q_\theta(k_t\mid x_{\lt t})$ |
| 学習時の誤差関数 | 交差エントロピー誤差 = 負の対数尤度(NLL) |