はじめに
X上でなぜかしばしば直接的・間接的に絡んでくださる谷口一平氏が、次のようなポストを投稿していた。
永井哲学と入不二哲学の基本的な関係は、
— 谷口一平 A.k.a.hani-an (@Taroupho) 2024年3月14日
θ=π/2
つまり90度の回転である。
すなわちそこでは、タテのもの(超越論的構成)はヨコ(横方向への展開運動)とされ、ヨコのもの(山括弧の存在)はタテ(垂直に働く現実性の力)とされるからである。
もちろん、ただ回転しただけでは全然ないが。
永井哲学と入不二哲学の関係は π/2 らしい。
永井哲学か入不二哲学の一方のノルムが0の場合でも、内積は0になるけどね。
本記事では、コサイン類似度とテキスト埋め込み(分散表現)を用いて、「『永井均の哲学』と『入不二基義の哲学』の関係は π/2 なのか」を、リテラルに調べてみようと思う。
コサイン類似度
コサイン類似度 は、2ベクトルの類似度の表現の一である。 また、ピアソンの相関関数 は、コサイン類似度を中心化したものと考えることができる。 ベクトルを引数に取る演算子 を (ただし、- は前置ベクトルのすべての要素に対して、後置スカラーを減算することを表す)と定義すると、等式 が成立する。
分散表現
「テキストの分散表現とは」といった説明は、自然言語処理の教科書の最初の方に書かれている事項であるため省略する。 今回は、 OpenAI 社が提供するテキスト埋め込みモデル text-embedding-3-large を用いる。 次のリンクは、API ドキュメントである。
https://platform.openai.com/docs/guides/embeddings
コード
以下の Python コードを用いて、『永井均の哲学』と『入不二基義の哲学』のコサイン類似度および度数法表現を出力する。
import openai import numpy as np inputs = ["永井均の哲学", "入不二基義の哲学"] model = "text-embedding-3-large" res1 = openai.Embedding.create( input=inputs[0], model=model ) res2 = openai.Embedding.create( input=inputs[1], model=model ) def calculate_cosine_similarity(v1, v2): """2つのベクトル間のコサイン類似度を計算""" return np.dot(v1, v2) / (np.linalg.norm(v1) * np.linalg.norm(v2)) input_embeddings = [res1.data[0].embedding, res2.data[0].embedding] sim = calculate_cosine_similarity(input_embeddings[0], input_embeddings[1]) print(f"コサイン類似度: {sim}") # コサイン類似度を角度に変換 sim = np.arccos(sim) sim = np.degrees(sim) print(f"角度: {sim}")
実行
実行!
❯ python ~/hoge.py コサイン類似度: 0.6130158455291262 角度: 52.192110853994855
うーん、52度になってしまった。むしろ、45度に近い結果に。
原ツイートでは「永井哲学と入不二哲学の関係」となっているので、inputs = ["永井哲学", "入不二哲学"]
に変えて実行。
❯ python ~/hoge2.py コサイン類似度: 0.6680563453346285 角度: 48.082770729609514
48度になった。あまり変わりがない。
inputs
を「超越論的構成」と「横方向への展開運動」へ変えてみよう。
❯ python ~/hoge3.py コサイン類似度: 0.21494257203890757 角度: 77.58784184435343
およそ 76 度になった! 90度に近づきつつあるのかもしれない。
inputs = ["山括弧の存在", "垂直に働く現実性の力"]
の場合。
❯ python ~/hoge4.py コサイン類似度: 0.2578236956709326 角度: 75.05903295994082
これも 75 度だが、90 度に近いかというと微妙である。
まとめ
いかがでしたか? みんなも分散表現で遊んでみよう!
後記
谷口氏より以下の引用リツイートを拝受した。
「語の意味とは脳内神経の電気現象である」と言っているのと、あまり変わらない気がする。その仕方で何でも説明できるけど、それは「語の意味とは何か」という問いに対する適切な次元の解答とは言いがたいので、脳科学の発達した現代においても言語哲学は変わらず有効である。 https://t.co/1wHgJoT6ZE
— 谷口一平 A.k.a.hani-an (@Taroupho) 2024年3月13日
私から言えることとしては、(それらの違いも研究の対象となるほど)脳科学とニューラルネットワークによる大規模言語モデルは同じものではない(ニューラルネットワークでは個々のシナプスの重みを外的に調整するが、人間の脳には外部からそれらを調整する機序はないなど)。 ぜひとも「適切な次元の解答」を期待したい!――とか言ったら怒られるだろうか。