↓次回(2回目)の記事
↓3回目の記事
↓4回目の記事
↓5回目の記事:
↓6回目の記事:
1. 概要
$$\huge{「意味」とは「状態」だ。}$$
$$\huge{「単語」とは状態を変換する「非線形作用素」だ。}$$
少なくとも僕はそう考える。
こう考えると、「文」は「作用素の合成」として理解することが出来るし、
「意味を理解すること」とは「状態の観測」として説明することが出来る。
なんか、こうやって言ってみると、量子力学の議論みたいな匂いがしてくる。
というわけで、量子力学の言葉で多くが説明つくような自然言語処理モデル
「複素テイラー単語関数言語モデル」
を提案しようと思う。
2. 理論(学習以外)
2-1. 単語=関数
第1章で「単語とは非線形作用素だ」と言ったが、作用素とは簡単に言えば「関数」のことだ。
要するに僕は「単語って関数じゃね?」と言いたいのだ。
こういうと次に浮かぶのは「じゃあ単語とは何から何への関数なのか」という問いだ。
その答えとして僕は、「単語は意味から意味への関数だ」と考える。
例えば入力意味を $x$ とするなら、"I" という単語が出力する出力意味$y$は:
$$y={\rm I}(x)$$
となる。
これの何が嬉しいかと言うと、「文」を「合成関数」と見れるところだ。
I love you
という文が持つ意味は、入力を$x$とすると:
$${\rm you}\Big(
{\rm love}\big(
{\rm I}\left(
x
\right)
\big)
\Big)$$
と書ける。
プログラマ的に言うなら、入力と出力の型が同じだから、メソッドチェーン的なことが出来るよと。
では、「何も入力しない場合の」"I love you" という文の意味を考えたい場合はどうしたらいいだろうか。
それに答えるために、「初期意味」を表す $\ket{0}$ を考えよう。
$\ket{0}$ を入力した場合の文や単語の意味を、「何も入力しない」場合の文や単語の意味として捉えることにする。
今後、「何も入力しない場合の」という言葉は基本的に省略することにする。
例えば 「"I love you" の意味」といったら:
$${\rm you}\Big(
{\rm love}\big(
{\rm I}\left(
\ket{0}
\right)
\big)
\Big)$$
を指すと考えてほしい。
2-2. 意味=ベクトル
では、意味とは何だろうか。
word2vec などで著名な事実として:
$$王 - 男 + 女 \simeq 女王$$
というものがある。
これは「単語の意味の足し引き算が出来る」ということだ。
そう。ここで足し引き算されているのは単語そのものではなくて、単語の持つ「意味」だ。
ここは word2vec をリスペクトして、そのまま「意味はベクトルである」と考えることにしよう。
但し、後から説明するとおり、今回は「意味」を量子力学における「状態」に対応させたい都合上、意味ベクトルは:
- 実ベクトルではなく複素ベクトル
- 大きさ(絶対値)は$1$固定
にするから、それだけ要注意。
(大きさを固定するのだから、単語は非線形作用素の中でも「非線形ノルム保存作用素」である)
2-3. 状態もベクトル。だから意味=状態
2-3-1. ちょっとだけ量子力学
2-3-1-1. 量子力学における「状態」とは
量子力学の話になるが、「状態」は複素ベクトルで表される。
「状態」が複素ベクトルで表されるからこそ、量子力学の世界では「確率的な重ね合わせ」とかいう奇妙なことが起こる。
例えば表と裏のどちらかが出るコインの状態を表すベクトル $\ket{コイン}$ は:
$$\ket{コイン} = \alpha\ket{表}+\beta\ket{裏}$$
のように書ける。
但し $\alpha$と$\beta$ は$|\alpha|^2+|\beta|^2=1$ を満たす複素数であり、
$\ket{表}$ は「絶対に表が出るという状態」、
$\ket{裏}$は「絶対に裏が出るという状態」
だ。
実は:
$$\ket{コイン} = \alpha\ket{表}+\beta\ket{裏}$$
は、「表が出る確率が $|\alpha|^2$で, 裏が出る確率は$|\beta|^2$ の状態」を表す。
蛇足: 状態の重ね合わせと収縮
この状態を無理に説明しようとすると:
量子力学の世界では、コインの状態は表と裏が重ね合わせになっている
みたいな言い方になるというわけだ。
そして「表が出る確率が $|\alpha|^2$で, 裏が出る確率は$|\beta|^2$ の状態」のコインは、実際に投げれば表か裏のどっちかに決まる。
当たり前だよな。
だが、これを先ほどの無理な説明とつじつまを合わせようとすると、次のようにややこしくなって、量子力学が(実態以上に)不思議なものに感じるというわけだ。
量子力学の世界では、観測するまで(=投げるまで)
コインの状態は表と裏が重ね合わせになっている。
しかし人間が観測すると(=投げると)重ね合わせの状態が「収縮」し、表と裏のどちらか一方に確定する
(蛇足 ここまで)
2-3-1-2. ブラベクトルとケットベクトルとエルミート内積
高校数学の世界では、ベクトル$v$を表すために、上に矢印を付けて $\vec{v}$ のように書く「約束」があった。
それと同じように、量子力学の世界では、
縦ベクトル(列ベクトル)$v$ を:
$$\ket{v}$$
のように書く「約束」がある。
そして $\ket{v}$ を転置し、複素共役を取ったもの、つまり$\ket{v}^\dagger$ を:
$$\bra{v}$$
のように書くという約束もある。
そして $\ket{v}$ を $v$の「ケットベクトル」、
$\bra{v}$ を $v$ の「ブラベクトル」
と呼ぶ。
このような表記をすると、$\ket{f}$ と$\ket{g}$ のエルミート内積 $\ket{f}^\dagger\ket{g}$ を:
$$\bra{f}\ket{g}$$
と書ける。
これを量子力学では、縦棒を1本省略して:
$$\braket{f|g}$$
と書き、「ブラケット」と呼ぶ約束になっている。
ブラベクトルとケットベクトルを並べたらブラケットになるというわけだ。
わざわざこんな表記を用いるくらいには、量子力学ではエルミート内積が何度も頻繁に出てくる―ということが伺える。
2-3-1-3. 状態ベクトルの大きさ
量子力学では、状態ベクトルの大きさは基本的に$1$であることが必要とされる。
(場合によっては大きさ$1$でない状態ベクトルを考えることもあるようだが、少なくとも今回はそのようなものを考える必要はない。)
大きさを$1$にしたからこそ、2-3-1-1節のコインの例で言えば:
$$\ket{コイン} = \alpha\ket{表}+\beta\ket{裏}$$
は、「表が出る確率が $|\alpha|^2$で, 裏が出る確率は$|\beta|^2$ の状態」を表す
のようなことが言える。
「表」と「裏」のように「背反で確定した状態たち」も、状態である以上は大きさ$1$ だ。
$$\braket{表|表}=\braket{裏|裏}=1$$
更に、「背反」であることを自然に表現するため、直交させたい。(エルミート内積を$0$にしたい)
$$\braket{表|裏}=\braket{裏|表}=0$$
こうすると、「背反で確定した状態たち」は「正規直交基底」となる。
この場合、$\big|\ket{コイン}\big|^2$ は:
$$\begin{array}{ll}
&\big|\alpha\ket{表}+\beta\ket{裏}\big|^2\\
=&\big<
\left(\alpha\ket{表}+\beta\ket{裏}\right)
\big|
\left(\alpha\ket{表}+\beta\ket{裏}\right)
\big>\\
=&\alpha\bar{\alpha}\braket{表|表}
+\alpha\bar{\beta}\braket{表|裏}
+\beta\bar{\alpha}\braket{裏|表}
+\beta\bar{\beta}\braket{裏|裏}\\
=&\alpha\bar{\alpha}1
+\alpha\bar{\beta}0
+\beta\bar{\alpha}0
+\beta\bar{\beta}1\\
=&\alpha\bar{\alpha}+\beta\bar{\beta}\\
=&|\alpha|^2 + |\beta|^2\\
=&1
\end{array}$$
だから、平方根を取れば:
$$\big|\ket{コイン}\big|=1$$
だ。同じことが一般に言えるから、任意の状態ベクトルの大きさは$1$となる。
2-3-1-4. 状態間の確率
状態$\ket{f}$が 状態$\ket{g}$ として観測される確率は $|\braket{g|f}|^2$ となる。
そして:
$$|\braket{g|f}|^2 = \left|
\sum_{i\neq f}(\alpha_i\braket{g|i})
\right|^2$$
である。
変形すると:
$$|\braket{g|f}|^2 = |\alpha_g|^2 + 2
\sum_{i\neq g,f}
{\rm Re}
(\bar{\alpha_g}\alpha_i\braket{g|i})
+\left|
\sum_{i\neq g,f}
(\alpha_i\braket{g|i})
\right|^2
$$
ともいえる。
今度は、コインではなくサイコロの例を考えてみよう。
$$\ket{サイコロ}=\alpha \ket{偶数} + \beta\ket{2以上}+\gamma\ket{(その他)}$$
という場合に、サイコロの出目が偶数になる確率を考えてみよう。
一見、答えは$|\alpha|^2$ であるように見えるが、実は間違いだ。何故なら、 $\ket{2以上}$ とかいう余計なやつがいるせいで、 $\beta$ のことも考えなきゃいけなくなったからである。
係数の絶対値の$2$乗をそのまま確率として捉えることが出来るのは、あくまでも右辺の状態ベクトルたちが直交している場合だけである。
例えば:
$$\begin{array}{l}
\ket{サイコロ}=c_0 \ket{偶数} + c_1\ket{状態1}+c_2\ket{状態2} + \cdots + c_{d-1}\ket{状態d-1}\\
(\ket{偶数}, \ket{状態1}, \ket{状態2}, \cdots, \ket{状態d-1}は正規直交基底)
\end{array}$$
のように。
この場合はサイコロの出目が偶数になる確率を $|c_0|^2$ といってよい。
そしてこの式の両辺に左から $\bra{偶数}$ を掛けると面白いことが分かる。
$$
\braket{偶数|サイコロ}=c_0 \braket{偶数|偶数} + c_1\braket{偶数|状態1}+c_2\braket{偶数|状態2} + \cdots + c_{d-1}\braket{偶数|状態d-1}
$$
だが、
まず $\braket{偶数|偶数}=1$ なのと、
直交性より $\braket{偶数|状態i}$ がことごとく$0$になることから、結局:
$$\braket{偶数|サイコロ}=c_0$$
なのだ。
よってサイコロの出目が偶数になる確率は:
$$|\braket{偶数|サイコロ}|^2$$
であるのだ。
それでは:
$$\ket{サイコロ}=\alpha \ket{偶数} + \beta\ket{2以上}+\gamma\ket{(その他)}$$
の両辺にも左から$\bra{偶数}$を掛けてみよう。
すると:
$$\braket{偶数|サイコロ}=\alpha \braket{偶数|偶数} + \beta\braket{偶数|2以上}+\gamma\braket{偶数|(その他)}$$
だ。つまり:
$$|\braket{偶数|サイコロ}|^2=|\alpha + \beta\braket{偶数|2以上}|^2$$
であり、これがサイコロの出目が偶数になる確率というわけである。
一般に:
$$\begin{array}{l}
\displaystyle
\ket{対象} = \sum_{i=0}^{n-1} (\alpha_i\ket{状態i}) + \gamma \ket{(その他)}\\
但し\\
\ket{(その他)}\ \bot\ {\rm Span} \big\{\ket{状態i}\big|i\in\{0,1,\cdots,n-1\}\big\}\\
だが、\ket{状態i}たちは互いに直交するとは限らない
\end{array}$$
のとき、対象が状態$j$として観測される確率は:
$$|\braket{状態j|対象}|^2 = \left|
\sum_{i=0}^{n-1}(\alpha_i\braket{状態j|状態i})
\right|^2$$
となる。
これを変形すると:
$$|\braket{状態j|対象}|^2 = |\alpha_j|^2 + 2
\sum_{i\in \left(
\begin{array}{l}
0以上\\
n未満で\\
j以外の\\整数
\end{array}
\right)}
{\rm Re}
(\bar{\alpha_j}\alpha_i\braket{状態j|状態i})
+\left|
\sum_{i\in \left(
\begin{array}{l}
0以上\\
n未満で\\
j以外の\\整数
\end{array}
\right)}
(\alpha_i\braket{状態j|状態i})
\right|^2
$$
という形になったりもする。
サイコロの例:
$$\ket{サイコロ}=\alpha \ket{偶数} + \beta\ket{2以上}+\gamma\ket{(その他)}$$
で言うなら:
$$|\braket{偶数|サイコロ}|^2=|\alpha|^2 + 2 {\rm Re}(\bar{\alpha}\beta\braket{偶数|2以上})
+|\beta\braket{偶数|2以上}|^2$$
というわけだ。・・・①
2-3-1-5. 干渉
サイコロの例:
$$\ket{サイコロ}=\alpha \ket{偶数} + \beta\ket{2以上}+\gamma\ket{(その他)}$$
では、サイコロの出目が偶数になる確率は $|\alpha|^2$ を下回ることがある。
(もちろん上回ることも、一致することもある)
さらに、すべての場合の確率、つまり:
- サイコロの出目が偶数になる確率
- サイコロの出目が$2$以上になる確率
- サイコロの出目が(その他)になる確率
を足し合わせても、$1$を下回ることがある。
(もちろん上回ることも、一致することもある)
これは、「偶数」という状態と「$2$以上」という状態が互いに「干渉」しているためにおこることだ。
すべての場合の確率を足し合わせたものが $1$ を下回るという不思議な現象は$0$以外のどんな$|\alpha|, |\beta|$を考えたとしても、$\braket{偶数|2以上}$ の値によっては起こる。
①で:
$$2 {\rm Re}(\bar{\alpha}\beta\braket{偶数|2以上})$$
の項は実数だが、正とも負とも限らない。
よって $|\braket{偶数|サイコロ}|^2$ は $|\alpha|^2$ より大きくもなり得るし、小さくもなり得る。
面白いのが、$\ket{偶数}$ と独立でない $\ket{2以上}$ の存在が、偶数になる確率を小さくすることがある、ということだ。
直感的には$\ket{偶数}$に加えて、$\ket{2以上}$ももう一度数えるのだから、偶数が出る確率は($\ket{偶数}$だけを見た時と比べて)大きくなることはあっても、小さくなることはなさそうなのに。
これを量子力学では、「$\ket{偶数}$と$\ket{2以上}$が波として『干渉』して、強め合ったり弱めあったりしている」と考える。
ここで:
$$\ket{サイコロ}=\alpha \ket{偶数} + \beta\ket{2以上}+\gamma\ket{(その他)}$$
の両辺に、自身の転置の複素共役を左から掛けてみよう。
何故そんなことをするかと言うと、左辺は $\braket{サイコロ|サイコロ}$ となって、これは明らかに$1$になるからである。$1$はすべての背反な状態の確率を足し合わせた数値、直感的には「全体」と言える。
すると:
$$\begin{array}{ll}
\braket{サイコロ|サイコロ}=1
& = \left(
\bar{\alpha}\bra{偶数}
+ \bar{\beta}\bra{2以上}
+ \bar{\gamma}\bra{(その他)}
\right)\left(
\alpha \ket{偶数}
+ \beta\ket{2以上}
+ \gamma\ket{(その他)}
\right)\\
& = \ \ \ \bar{\alpha}\alpha\braket{偶数|偶数}
+ \bar{\alpha}\beta\braket{偶数|2以上}
+ \bar{\alpha}\gamma\braket{偶数|(その他)}\\
&\ \ \ + \bar{\beta}\alpha\braket{2以上|偶数}
+ \bar{\beta}\beta\braket{2以上|2以上}
+ \bar{\beta}\gamma\braket{2以上|(その他)}\\
&\ \ \ + \bar{\gamma}\alpha\braket{(その他)|偶数}
+ \bar{\gamma}\beta\braket{(その他)|2以上}
+ \bar{\gamma}\gamma\braket{(その他)|(その他)}\\
& = \ \ \ |\alpha|^2 + \bar{\alpha}\beta\braket{偶数|2以上}\\
&\ \ \ +\bar{\beta}\alpha\braket{2以上|偶数} + |\beta|^2\\
&\ \ \ +|\gamma|^2\\
& = |\alpha|^2 + |\beta|^2 + 2{\rm Re}(\bar{\alpha}\beta\braket{偶数|2以上}) + |\gamma|^2
\end{array}$$
となる。・・・②
おっと、ここにも干渉項 $2 {\rm Re}(\bar{\alpha}\beta\braket{偶数|2以上})$ が出てきた。
これは直感的には、「各状態の係数に加えて干渉項まで含めて考えると、全体を考えたことになる」ということを意味する。
さて、「偶数になる確率」、「$2$以上になる確率」、「その他になる確率」をすべて足し合わせると、不思議なことが起こる。
①より:
$$\mathbb{P}[偶数|サイコロ]=|\braket{偶数|サイコロ}|^2=|\alpha|^2 + 2 {\rm Re}(\bar{\alpha}\beta\braket{偶数|2以上})
+|\beta|^2|\braket{偶数|2以上}|^2$$
であるし、①と同様に考えれば:
$$\mathbb{P}[2以上|サイコロ]=|\braket{2以上|サイコロ}|^2=|\beta|^2 + 2 {\rm Re}(\bar{\alpha}\beta\braket{偶数|2以上})
+|\alpha|^2|\braket{偶数|2以上}|^2$$
だ。
そして:
$$\mathbb{P}[(その他)|サイコロ]=|\braket{(その他)|サイコロ}|^2=|\gamma|^2$$
と言える。何故なら:
$$\ket{サイコロ}=\alpha \ket{偶数} + \beta\ket{2以上}+\gamma\ket{(その他)}$$
より:
$$\braket{(その他)|サイコロ}=\alpha \braket{(その他)|偶数} + \beta\braket{(その他)|2以上}+\gamma\braket{(その他)|(その他)}$$
つまり:
$$\braket{(その他)|サイコロ}=\gamma$$
だからだ。
よって、これら$3$つを足し合わせると:
$$\begin{array}{ll}
&\mathbb{P}[偶数|サイコロ]+\mathbb{P}[2以上|サイコロ]+\mathbb{P}[(その他)|サイコロ]\\
=& |\braket{偶数|サイコロ}|^2
+ |\braket{2以上|サイコロ}|^2
+ |\braket{(その他)|サイコロ}|^2\\
=&
|\alpha|^2 + |\beta|^2 + |\gamma|^2
+ 4 {\rm Re}(\bar{\alpha}\beta\braket{偶数|2以上})
+ (|\alpha|^2 + |\beta|^2)|\braket{偶数|2以上}|^2
\end{array}$$
となる。
ここに ②を$|\gamma|^2$について解いた:
$$|\gamma|^2=1-|\alpha|^2 - |\beta|^2 - 2{\rm Re}(\bar{\alpha}\beta\braket{偶数|2以上})$$
を代入すると:
$$\begin{array}{ll}
&\mathbb{P}[偶数|サイコロ]+\mathbb{P}[2以上|サイコロ]+\mathbb{P}[(その他)|サイコロ]\\
=&
1
+ 2 {\rm Re}(\bar{\alpha}\beta\braket{偶数|2以上})
+ (|\alpha|^2 + |\beta|^2)|\braket{偶数|2以上}|^2
\end{array}$$
となる。
これの不思議なところは、
「すべての場合の確率を足し合わせたのに、$1$未満になることがある」・・・③
というところだ。
背反でない場合を含んでいるため、「$1$を超えることがある」のは直感でも理解できるのだが・・・
だが実際:
$$F:=2 {\rm Re}(\bar{\alpha}\beta\braket{偶数|2以上})
+ (|\alpha|^2 + |\beta|^2)|\braket{偶数|2以上}|^2$$
が負であれば、不思議なこと③が起こる。
③は$0$以外のどんな$\alpha,\beta$に対しても、$\braket{偶数|2以上}$ によっては引き起こすことが出来る。
証明
$${\rm Re}(\bar{\alpha}\beta\braket{偶数|2以上})
=|\alpha||\beta||\braket{偶数|2以上}|
\cos (\angle \bar{\alpha}\beta + \angle\braket{偶数|2以上})$$
であるから、 $F<0$とは:
$$2 |\alpha||\beta||\braket{偶数|2以上}|
\cos (\angle \bar{\alpha}\beta + \angle\braket{偶数|2以上})
+ (|\alpha|^2 + |\beta|^2)|\braket{偶数|2以上}|^2<0$$
だ。
今回、「偶数」と「$2$以上」が干渉する場合を考えているので、$|\braket{偶数|2以上}|$は非零だ。
だから両辺を$|\braket{偶数|2以上}|$で割ってよく:
$$2 |\alpha||\beta|
\cos (\angle \bar{\alpha}\beta + \angle\braket{偶数|2以上})
+ (|\alpha|^2 + |\beta|^2)|\braket{偶数|2以上}|<0$$
となる。
変形すると:
$$
\cos (\angle \bar{\alpha}\beta + \angle\braket{偶数|2以上})
<-\frac{|\alpha|^2 + |\beta|^2}{2 |\alpha||\beta|}|\braket{偶数|2以上}|$$
となる。
つまり、不思議なこと③を、$\cos (\angle \bar{\alpha}\beta + \angle\braket{偶数|2以上})$ 次第で起こせる必要十分条件は:
$$-1<-\frac{|\alpha|^2 + |\beta|^2}{2 |\alpha||\beta|}|\braket{偶数|2以上}|$$
だ。
(さもなくば:
$$\cos (\angle \bar{\alpha}\beta + \angle\braket{偶数|2以上}) < -1$$
という矛盾が導かれるから、③が起こるという前提が誤りになってしまう。)
これを変形すると:
$$|\braket{偶数|2以上}|<\frac{
2 |\alpha||\beta|
}{
|\alpha|^2 + |\beta|^2
}$$
であるが、実は$\alpha,\beta$が$0$以外のどんな複素数であっても、常に:
$$0<\frac{
2 |\alpha||\beta|
}{
|\alpha|^2 + |\beta|^2
}\leq1$$
であることが知られている。・・・④
よって、$\alpha,\beta$が$0$以外のどんな複素数であっても:
$$|\braket{偶数|2以上}|<(0超1以下の値)$$
であればよいから、$|\alpha|,|\beta|$が$0$以外のどんな大きさであっても $\braket{偶数|2以上}$ を都合よく調整すれば、不思議なこと③は必ず起こせる。
④については、$\alpha,\beta$が$0$以外なら:
$$(|\alpha|-|\beta|)^2\geq0, |\alpha|>0,|\beta|>0$$
だから、変形して:
$$\begin{array}{l}
|\alpha|^2-2|\alpha||\beta|+|\beta|^2\geq0\\
|\alpha|^2+|\beta|^2\geq2|\alpha||\beta|
> 0\\
\displaystyle
1\geq
\frac{2|\alpha||\beta|}{|\alpha|^2+|\beta|^2}
>0
\end{array}$$
として証明される。
(証明 ここまで)
2-3-1-6. 干渉の向き
$$\ket{対象} = \alpha\ket{状態a}+\beta\ket{状態b}+\gamma\ket{(その他)}$$
とする。
($\ket{(その他)}$は$\ket{a}$と$\ket{b}$に直交)
このとき$2$つの状態$a,b$の干渉が、互いに強め合うのかそれとも打ち消し合うのか、またそれはどの程度であるのかについては:
$$
2|\alpha||\beta||\braket{状態a|状態b}|\cos
\angle\left(
\frac{\beta}{\alpha}
\braket{状態a|状態b}
\right)
$$
で測ることができる。
干渉の大きさは:
$$\angle\left(
\frac{\beta}{\alpha}
\braket{状態a|状態b}
\right)$$
が$0$や$\pm\pi$ に近いとき大きくなり、 $\pm\pi/2$ に近いとき小さくなる。
また干渉の正負は $-\pi/2$ 超 $\pi/2$ 未満で正(強め合う)、
$\pi/2$ 超 $\pi$以下、$-\pi$以上 $-\pi/2$ 未満で負(打ち消し合う)
となる。
サイコロの例:
$$\ket{サイコロ}=\alpha \ket{偶数} + \beta\ket{2以上}+\gamma\ket{(その他)}$$
で、サイコロの出目が偶数になる確率は、$\ket{偶数}$ と $\ket{2以上}$ の干渉によって強め合ったり打ち消し合ったりする。
では「強め合うのか、それとも打ち消し合うのか」とか、その「強さ」はどうやって決まるのだろうか。
$$\mathbb{P}[偶数|サイコロ]=|\braket{偶数|サイコロ}|^2=|\alpha|^2 + 2 {\rm Re}(\bar{\alpha}\beta\braket{偶数|2以上})
+|\beta|^2|\braket{偶数|2以上}|^2$$
と:
$$\mathbb{P}[2以上|サイコロ]=|\braket{2以上|サイコロ}|^2=|\beta|^2 + 2 {\rm Re}(\bar{\alpha}\beta\braket{偶数|2以上})
+|\alpha|^2|\braket{偶数|2以上}|^2$$
を思い出せば、干渉を決めているのは 干渉項 $2 {\rm Re}(\bar{\alpha}\beta\braket{偶数|2以上})$であることはわかる。
ちなみに 第$3$項 $|\beta|^2|\braket{偶数|2以上}|^2$ や $|\alpha|^2|\braket{偶数|2以上}|^2$ は干渉とは関係ない。
なぜなら $|\braket{偶数|2以上}|^2$とは $\mathbb{P}[偶数|2以上]$ であり、第$3$項はその正数倍、つまり「射影成分」でしかないからだ。
あるいは、古典的な実験でも第$3$項は出るからだ。
詳細
もうすこしちゃんと説明しよう。
$C$ を次のような実験とする。
- 古典的なくじを引いて、内部ラベル$L$を選ぶ。
但し:
$$\begin{array}{l}
\mathbb{P}[L={\rm even}|C]=|\alpha|^2,\\
\mathbb{P}[L={\rm ge2}|C]=|\beta|^2
\end{array}$$ - $L={\rm even}$ なら $\ket{x}=\ket{偶数}$,
$L={\rm ge2}$ なら $\ket{x}=\ket{2以上}$
とする。 - $\ket{x}$ を観測する。
すると:
$$\begin{array}{ll}
&\mathbb{P}[偶数|C]\\
=&\mathbb{P}[偶数|L={\rm ge2}\cap C]\mathbb{P}[L={\rm ge2}|C]
+\mathbb{P}[偶数|L={\rm even}\cap C]\mathbb{P}[L={\rm even}|C]\\
=&|\braket{偶数|2以上}|^2|\beta|^2+|\braket{偶数|偶数}|^2|\alpha|^2\\
=&|\alpha|^2+|\beta|^2|\braket{偶数|2以上}|^2
\end{array}$$
となる。
同様に:
$$\mathbb{P}[2以上|C]
=|\beta|^2+|\alpha|^2|\braket{偶数|2以上}|^2$$
だ。
これらを $\mathbb{P}[偶数|サイコロ]$ や $\mathbb{P}[2以上|サイコロ]$ と比較すると、
第$2$項だけ抜け落ちたものとなっている。
逆に言えば第$3$項は古典的な実験でも生じるのだ。
(詳細 ここまで)
よって、干渉項 $2 {\rm Re}(\bar{\alpha}\beta\braket{偶数|2以上})$ の大きさや正負を考えればよい。
そしてこれは:
$$\begin{array}{ll}
&2 {\rm Re}(\bar{\alpha}\beta\braket{偶数|2以上})\\
=&2|\alpha||\beta||\braket{偶数|2以上}|\cos \left(
-\angle \alpha
+\angle \beta
+\angle\braket{偶数|2以上}
\right)\\
=&\displaystyle
2|\alpha||\beta||\braket{偶数|2以上}|\cos
\angle\left(
\frac{\beta}{\alpha}
\braket{偶数|2以上}
\right)
\end{array}$$
である。
よって干渉の大きさは:
$$\angle\left(
\frac{\beta}{\alpha}
\braket{偶数|2以上}
\right)$$
が$0$や$\pm\pi$ に近いとき大きくなり、 $\pm\pi/2$ に近いとき小さくなる。
また干渉の正負は $-\pi/2$ 超 $\pi/2$ 未満で正(強め合う)、
$\pi/2$ 超 $\pi$以下、$-\pi$以上 $-\pi/2$ 未満で負(打ち消し合う)
となる。
2-3-2. 量子力学をマネしてみる
せっかく2-2節で「意味」をベクトルにしたんだ、
量子力学の「状態」に対する考え方を、「意味」にも持ち込んでみようじゃないか。
単語$w$の意味 $w(\ket{0})$ を、ここでは量子力学っぽく $\ket{w}$ と書くことにしよう。
例えば:
$$\ket{正恩}=\alpha\ket{正義}+\beta\ket{悪}+\gamma\ket{(その他)}$$
と書けるとしよう。
但しここでは話を簡単にするため、"正恩"を「観測」すれば、
"正義", "悪", (その他) のいずれか一つに必ず決まるものとしよう。
つまり $\ket{正義},\ket{悪},\ket{(その他)}$ を正規直交基底とするんだな。
するとこれは、"正恩"が:
- "正義"の意味を持つ確率$\mathbb{P}[正義|正恩]$が $|\alpha|^2$
- "悪"の意味を持つ確率$\mathbb{P}[悪|正恩]$が $|\beta|^2$
- (その他)の意味を持つ確率$\mathbb{P}[(その他)|正恩]$が $|\gamma|^2 (= 1-(|\alpha|^2+|\beta|^2))$
の意味を持つ単語であると解釈できる。
なるほど。乱暴に例えていえば、「金正恩は〇〇だ」という文があったときに、この文が金正恩を善人とか偉人みたいに説明している確率が $|\alpha|^2$, 悪者として説明いている確率が$|\beta|^2$, そのどちらとも言えない確率が $|\gamma|^2$ というわけだ。
2-3-3. 意味同士が直交しない場合
2-3-2節に引き続き:
$$\ket{正恩}=\alpha\ket{正義}+\beta\ket{悪}+\gamma\ket{(その他)}$$
と書けるとしよう。
だが、"正義" と "悪" は直交するとは限らない。
バイキンマンの名言に
- 誰かにとっての正義は
誰かにとっての悪になる- 悪には悪の正義がある
というものがある。
そう考えれば、"正義" の意味が "悪"である確率は$0$と言い切れない。
確率が$0$でない場合、二つの状態ベクトルは直交しない。
当然だよな、エルミート内積の2乗がそのまま確率になるんだから。
このような場合には2-3-1-4節の考え方を用いて:
$$\begin{array}{ll}
\mathbb{P}[正義|正恩]=|\braket{正義|正恩}|^2=|\alpha + \beta\braket{正義|悪}|^2,\\
\mathbb{P}[悪|正恩]=|\braket{悪|正恩}|^2=|\beta + \alpha\braket{正義|悪}|^2,\\
\mathbb{P}[(その他)|正恩]=|\braket{(その他)|正恩}|^2=|\gamma|^2
\end{array}$$
とすればよい。
2-3-3-1. 余談(妄想)
Xに今日投稿されたポストをコーパスとしてモデルを学習して、
$上がる(株価(明日(\ket{0})))$ を $\ket{明日\_株価\_上がる}$ と書くようなルールで:
$$\ket{〇〇株式会社} = \alpha\ket{明日\_株価\_上がる}+\beta\ket{明日\_株価\_下がる}+\gamma\ket{(その他)}$$
と置いて:
$$\begin{array}{l}
|\alpha+\beta\braket{明日\_株価\_上がる|明日\_株価\_下がる}|^2,\\
|\beta+\alpha\braket{明日\_株価\_上がる|明日\_株価\_下がる}|^2
\end{array}$$ を計算することで、一儲け出来るかもしれない
・・・さすがにそんなわけないか(笑)
2-4. 単語を関数にするには
意味がベクトルであり、単語が意味から意味への関数であるとした今回、単語はベクトルからベクトルへの関数になる。
ベクトルからベクトルへの関数といって真っ先に思い浮かぶのは行列だろう。
しかし、単語を行列にしてしまうと、線形関数しか表現できない。それではつまらない。非線形な関数も表現したい。
実は、行列を$k$個並べたリストによって、解析可能などんなベクトル関数も、$k$次近似することが出来る。2-4節ではそのことを解説する。
まず、マクローリン展開:
$$f(x)=\sum_{n=0}^\infty \left(\frac{
f^{(n)}(0)
}{n!}\cdot x^n\right)$$
を思い出そう。
但し $f^{(n)}(0)$ とは:
$$\left.\left(\frac{\rm d}{{\rm d}x}\right)^n f(x)\right|_{x=0}$$
のことだ。
スカラからスカラへの任意の解析可能な関数 (=$C^\omega$級関数) $f$ はマクローリン展開することが出来るから、
マクローリン係数の列:
$$\left(
\begin{matrix}
f(0)\\f'(0)\\
\vdots\\f^{(n)}(0)\\\vdots
\end{matrix}
\right)$$
との$1$対$1$対応を考えることが出来る。
逆に言えばこの列を自由に決めれば、解析可能などんな関数でも表現することが出来るというわけだ。
(本当は収束半径を考えないといけないが、今回はそれは見て見ぬふりをする)
See the Pen マクローリン級数 by 平田智剛 (@ovbdcewp-the-sasster) on CodePen.
嬉しいことに、マクローリン展開の考え方は、ベクトルからベクトルへの関数にも適用することが出来る。
単語 $w$, つまりベクトルからベクトルへの関数$w$の場合のマクローリン展開の公式は、入出力ベクトルの次元を$d$とするとき、次のようになる。
$$w(z)=\sum_{n=0}^\infty \left(\frac{
w^{(n)}(0) {\rm vec}(z^{\otimes n})
}{n!} \right)$$
但し:
$$z^{\otimes n}$$
は テンソル積 $1\otimes z \otimes z \otimes \cdots$ を $n$ 回繰り返したもの、つまり:
$$1\underbrace{\otimes z}_{n回繰り返し}$$
である。
形状は$n>0$のとき $d\underbrace{\times d}_{n-1回繰り返し}$ の $n$階テンソル、 $n=0$ならスカラだ。
$${\rm vec}(z^{\otimes n})$$
はそれを flatten() (あるいは reshape(-1)など)して $d^n$ 次元ベクトルにしたものを表す。
また:
$$w^{(n)}(0)$$
は何らかの $d$行 $d^n$列行列だ。
よって行列積:
$$w^{(n)}(0){\rm vec}(z^{\otimes n})$$
は$n$に拠らず$d$次元ベクトルとなり、その $1/(n!)$倍の無限和である $w(z)$ も $d$次元ベクトルになるというわけだ。
そう。$w$もまた、スカラからスカラへの関数の時と同じように:
- $w^{(0)}(0)$ ($d$行$1$列)
- $w^{(1)}(0)$ ($d$行$d$列)
- $\vdots$
- $w^{(n)}(0)$ ($d$行$d^n$列)
- $\vdots$
の列に$1$対$1$対応させることが出来る。
これはつまり、任意の解析可能な関数が、行列の無限リストで表現できる ということを意味している。
とはいえ、現実的には「無限リスト」をプログラムで扱うことは無理だからどこかで打ち切ることになる。そのタイミングを $k$ とすれば:
$$w(z)=\sum_{n=0}^k \left(\frac{
A_{w,n} {\rm vec}(z^{\otimes n})
}{n!} \right)$$
となる。
要は$k+1$次以上の高次成分を無視するから、本質的には関数の $k$次近似だな。
但し $A_{w,n}$ は 単語$w$を表現するための $d$行$d^n$列の複素パラメータだ。
(入出力が複素ベクトルなのだから、関数を表すパラメータも複素数にしなければいけないのは自然だ。)
これで、解析可能などんな単語関数も、行列の有限リストで$k$次近似できることが分かった。
2-5. 一般的な量子力学との違い
一般的な量子力学では、状態を変化させる作用素は「ノルムを変えない線形変換」である必要がある。
(そのような変換を、難しい言葉で「ユニタリ変換」といい、ユニタリ変換を表現できる行列を「ユニタリ行列」と言う。)
一方、今回考案するモデルでは作用素は非線形変換を行えるものとするので、そこが一般的な量子力学との相違である。
2-3節では、「意味」が「量子力学における状態」に例えられるということを説明した。
しかし、2-4節で単語を非線形関数(非線形作用素)にしたことにより、「一般的な量子力学」とは違う道を歩んでいるということを強調しておきたい。
一般的な量子力学では、作用素は線形であることを前提としている。
なぜ線形であってほしいのかと言うと、次のことが成り立ってほしいからである。
先に状態を重ね合わせて、後から作用させても、(実験A)
先に各状態に作用させて、後から重ね合わせても、(実験B)
実験AとBで同じ結果を得られるといいなぁ
・・・⑤
例えば:
$$\ket{サイコロ}=\alpha \ket{偶数} + \beta\ket{2以上}+\gamma\ket{(その他)}$$
に対して作用素 $f$ を適用すると:
$$f(\ket{サイコロ})=f\left(\alpha \ket{偶数} + \beta\ket{2以上}+\gamma\ket{(その他)}\right)$$
である。
これは、先に $\ket{偶数}, \ket{2以上}, \ket{(その他)}$ を重ね合わせた $\ket{サイコロ}$ を作り、
後から作用$f$をさせているので、実験Aだ。
対して実験Bでは、先に各状態に作用$f$させて:
$$f(\ket{偶数}), f(\ket{2以上}), f(\ket{(その他)})$$
を得て、後から重ね合わせて:
$$\alpha f(\ket{偶数})+\beta f(\ket{2以上})+\gamma f(\ket{(その他)})$$
が結果となる。
これが実験Aの結果と一致して:
$$\alpha f(\ket{偶数})+\beta f(\ket{2以上})+\gamma f(\ket{(その他)})
=f\left(\alpha \ket{偶数} + \beta\ket{2以上}+\gamma\ket{(その他)}\right)$$
となるためには:
- $f(a+b)=f(a)+f(b)$
- $f(ca)=cf(a)\ (cはスカラ)$
が必要であるが、これを満たすような$f$は、もれなく線形演算である。だってそういう定義だから。
しかし、今回の自然言語処理モデルでは、この性質は却って都合が悪い。
例えば:
$$\ket{アップル}=\alpha\ket{企業}+\beta\ket{果物}$$
という例を考えてみよう。ここでは簡単にするため、$\ket{企業}$と$\ket{果物}$が正規直交基底であるものとする。
この場合、「アップル」が「企業」の意味である確率は $|\alpha|^2$ であるし、
「果物」の意味である確率は $|\beta|^2$ である。
どっちの意味である確率も同じくらいありそうだから、今回仮に:
$$|\alpha|^2=|\beta|^2=\frac{1}{2}$$
と考えることにしよう。
ここに「食べる」を作用させてみよう。
もし「食べる」が線形作用素だとすると:
$$\ket{アップル\_食べる}=\alpha \ket{企業\_食べる}+\beta \ket{果物\_食べる}$$
になる。
この場合も、「アップル 食べる」が「企業 食べる」の意味である確率は $|\alpha|^2=\frac{1}{2}$ ,
「果物 食べる」の意味である確率は $|\beta|^2=\frac{1}{2}$ になってしまう。
これはどう考えてもおかしいだろう。
「企業 食べる」と言う意味での「アップル 食べる」 といったら、たぶん「アップル社を買収する」という意味だろうが、
アップル社を単独で買収できるのなんて、原油マネーを動かせるサウジアラビア政府か、世界一のGDPを誇るアメリカ政府くらいのもんだ。
あるいは単独ではなく、Google, Amazon, Metaが共同でAppleを買収することは、金額的には可能でも、独禁法などの法律が絡んできて現実的には不可能だ。
それか、さらに主体を増やして、数多の投資家たちがアップルの株を所有していることを「みんなで食べている」と捉えるのは・・・それは果たして本当に「食べている」と言えるだろうか?
そう、どう考えても「アップル社を食べる」ことなんてほぼ不可能だ。
故に $|\alpha|^2$ はほとんど$0$にならないとおかしい。
つまり、今回のモデルでは、単語(例えば「食べる」)を作用させると、
係数 $\alpha,\beta$ は激しく変化しないとおかしいのだ。
言い換えれば、量子力学特有の⑤のような性質は、複素テイラー単語関数言語モデルでは不自然なのである。
故に、単語を線形作用素に限定するのは現実的でない。
ここが量子力学と複素テイラー単語関数言語モデルの大きな違いである。
2-6. 初期意味
初期意味 $\ket{0}$はどのようにおいても理論上は問題ない。
但し、特定の次元だけ絶対値が大きくなったり、実部と虚部で大きさが違ったりするのはなんか不公平にも感じる。
そこで、この記事では:
$$\ket{0}:=\frac{1+i}{\sqrt{2d}}\left(
\begin{matrix}
1\\1\\\vdots\\1
\end{matrix}
\right)$$
とすることにした。
3. 次回について
次回の記事では、このモデルをどのように学習させることが出来るかについての理論を説明する。
↓次回の記事

