見出し画像

パープレキシティとは

言語モデルの評価値としてよく登場するパープレキシティ(Perplexity)について簡単に説明します。


言語モデルにおけるパープレキシティ

”Perplexity”を直訳すると

”Perplexity”を直訳すると「困惑」や「当惑」と言った言葉になります。つまり、言語モデルにおいては、この指標が「モデルがどれだけ困惑しているか」を評価するために使われるようになりました。

最近話題になっているAI検索サービスの perplexity.ai の名前もここからきています。

言語モデルについてある程度詳しい人には親しみがある言葉ですが、一般人にとっては「検索エンジンなのに困惑とはいかがなものか」と思われるかもしれません。

後で見るように、パープレキシティはもとは情報理論において確率分布の不確実性を測る指標として定義されました。この考えを利用して言語モデルの予測の不確実性を表す指標になっています。

指標としての意味

名前の意味だけを見ると、よくわからない指標ですが、やっていることは与えられたデータ(文章や単語列)に対して、モデルがどれだけ自信を持って次の単語を予測できるかを測定しています。

  • パープレキシティが低い(困惑が少ない)ほど、モデルは次の単語を自信を持って予測している

  • パープレキシティが高い(困惑が多い)ほど、モデルは次の単語を予測するのが難しい。

単純化して言うと、パープレキシティが低いほどモデルの性能が良いです。

ただし、文章によっては、さまざまな意味が考えられるため、予測が難しいケースもあります。それでも、平均的にパープレキシティが低いモデルは、文脈を理解する能力が高く、一般的に性能が優れていると判断されます。

ここが正解率などと違って分かりにくい点でもあります。

なぜ正解率ではダメなのか

なぜ、正解率ではなく、このような指標を使うのかというと言語モデルの予測においては正解が一つとは限らないからです。

その一方で、パープレキシティは正解が一つでなくとも評価を行える指標です。単純化して表現すると、パープレキシティは「次に来る単語の選択肢の平均的な数」と捉えることができます。

例えば、パープレキシティが10の場合、モデルは次に来る単語を10個の候補から選んでいるようなイメージです。言い方を変えると10個の候補に対して同じくらいの確率を予測しており、自信がなく迷っている(困惑している)と言うわけです。

では、次に情報理論におけるパープレキシティを紹介します。これによって言語モデルの評価としてのパープレキシティを理解しやすくなります。

情報理論におけるパープレキシティ

言語モデルの評価に使われる以前に、パープレキシティは情報理論におけるエントロピーをもとに、確率分布の不確実性を測る指標として定義されました。

エントロピーとの関係

数学的には、パープレキシティは確率分布のエントロピーに基づいており、言語モデルが予測した単語の確率を用いて計算されます。

$$
\text{Perplexity}(X) = 2^{\text{H}(X)}
$$

ここで、$${\text{H}(X)}$$はデータセット$${X}$$のエントロピーです。

ランダムな確率分布ではエントロピーが高くなるので(ランダムな予測を行うモデルに相当する)、パープレキシティが高くなります。また、エントロピーが0ならばパープレキシティは1になります。

簡単に言うとエントロピーの値を指数関数で変換しているだけです。では、なぜ直接エントロピーを使わないのでしょうか。

なぜエントロピーではダメなのか

それは、次のように単純な確率を使ってパープレキシティを計算することで明らかとなります。

$${K}$$個の結果をもつランダムな現象が等確率で生じるとします。

$$
P(X = x) = \dfrac{1}{K}, \quad x \in \set{x_1, \ldots, x_K}
$$

この場合のエントロピーは以下になります。

$$
\begin{aligned}
H(X) &= - \sum\limits_{i=1}^K P(x_i) \log_2 P(x_i) \\
&= - \sum\limits_{i=1}^K \frac{1}{K} \log_2 \frac{1}{K} \\
&= -\log_2 \frac{1}{K}
\end{aligned}
$$

これを使ってパープレキシティを計算すると以下になります。

$$
\begin{aligned}
\text{Perplexity}(X) &= 2^{\text{H}(X)} \\
&= 2^{-\log_2 \frac{1}{K}} \\
&= \frac{1}{2^{\log_2 \frac{1}{K}}} \\
& = \frac{1}{1/K} \\
& = K
\end{aligned}
$$

つまり、K 個の事象が等確率で生じる場合のパープレキシティの値は$${K}$$です。

例えば、公平(フェア)であることを条件とすると、

  • コインのパープレキシティは2

  • 6 面サイコロのパープレキシティは 6

となります。

よって、エントロピーよりも直感的に不確実性を表現しています。

以上、情報理論におけるパープレキシティを簡単に紹介しました。次に、言語モデルにおけるパープレキシティを解説します。

言語モデルに対する定義

繰り返しますが、初めは情報理論で生まれた概念ですが、言語モデルの評価を行うためにパープレキシティの考え方が利用されるようになりました。

パープレキシティで言語モデルを評価

情報理論におけるパープレキシティによる評価を言語モデルの予測に対して適用すると「次に来る単語の選択肢の平均的な数」と捉えることができます。

よって、「パープレキシティが10の場合、モデルは次に来る単語を10個の候補から選んでいるようなイメージです」と直感的な説明しました。「10個の候補に対して同じくらいの確率を予測しており困惑している」と。

こうして考えると情報理論の定義をそのまま使えそうです。

しかし、言語モデルのためのパープレキシティでは、いくつか異なる点があります。

自然対数を使う

なお、パープレキシティは通常、自然対数(ベース e)を使って計算されます。ベースは底とも呼ばれます。

情報理論からの概念を適用する際に、機械学習では自然対数がよく使われます。微分の計算が楽になるといった利点があります。

参考記事:エントロピー交差エントロピー

以下は、Huggingfaceによる定義をもとに、記号を少し変更したものです。

$$
\text{Perplexity}(X) = \exp\left\{ -\frac{1}{N} \sum_{i=1}^{N} \log P(x_i | x_1, x_2, \dots, x_{i-1}) \right\}
$$

ここで、$${X}$$は一文を意味し、トークン化されたシーケンスとして$${X = (x_1, x_2, \ldots, x_N)}$$となります。また、$${P(x_i | x_1, x_2, \dots, x_{i-1})}$$は、条件付き確率で、文脈 $${(x_1, x_2, \dots, x_{i-1})}$$ に基づいて、次の単語 $${x_i}$$ を予測する確率を表します。

よって、上述の式の指数関数の中身は、単語 $${x_i}$$​ の条件付き確率の対数を全て合計して平均を計算したもので、文全体の予測の不確実性を示します。

GPTなどのトランスフォーマー系のモデルでは、入力の最大トークン数(単語数)に明示的な制限があります。

ちなみに、リカレントニューラルネットワーク(RNN)やその派生モデル(LSTM, GRU)は、理論上は無限の文脈を保持できるとされていますが、実際には長期依存関係の情報が消えてしまう「勾配消失問題」があります。これにより、文脈の有効範囲は限られます。

なお、$${N}$$は、文や単語列に含まれる単語の総数(単語の数)で、平均を取るための分母として使用されています。

文脈による不確実性の評価

また、この式の指数関数の中身は、いわゆるエントロピーではなく、特定の文 $${X}$$ に対する条件付き確率の対数の平均です。

エントロピーは、確率分布の全体的な不確実性を測定します。情報理論におけるエントロピーは、すべての可能な結果の不確実性を平均して表すもので、通信やデータ圧縮の分野で多く使われています。

ただし、エントロピーは確率分布が固定されている場合に有効ですが、言語モデルの予測では文脈に応じて確率分布が変化します。よって、文脈によって予測が異なる言語モデルにおいては、単にエントロピーを使うだけではモデルの性能を適切に評価できません。

そこで、言語モデルにおけるパープレキシティの式では文 $${X}$$ における各単語の予測困難度を測るため、文脈に依存する形で計算が行われています。

まとめると、パープレキシティは、言語モデルが次に来る単語を予測する際の困惑度合いを示す指標です。数値が低いほど、モデルがうまく予測できていることを意味します。

関連記事

ここから先は

0字

キカベン・読み放題

¥1,000 / 月
初月無料
このメンバーシップの詳細

この記事が気に入ったらサポートをしてみませんか?