functor:意味を表現する方法

【 意味の世界はどこにある? 】

大規模言語モデルは、言語の意味を理解しているように見えます。それでは、大規模言語モデルが理解しているように見える「意味の世界」はどこにあるのでしょう?

先のセッションでは、言語を語の並びである表現の集まりだと考えれば、文字列の包含関係で preorder の順序が定義でき、それは category としても考えられるという話をしました。

ただ、この言語のcategory L をいくら眺めても、そこにあるのは、具体的な文字列や語や表現だけで、どこにも意味は見当たりません。

【 意味を表現する方法を考える 】

これまでの流れで考えてみると、言語のcategory Lとは別に、言語の意味を表現するcategory M (meaningのMです)が存在すると考えるのが自然なアプローチだと思います。

ただ、この二つのcategory L, Mは、別々バラバラなものではなく結びついていて、言語のcategory Lが与えられるとその言語の意味のcategory Mが生み出されるという関連があるはずです。

もし、意味のcategory Mがうまく定義できるなら、言語のcategory Lと意味のcategory M を結びつけることで、言語の意味の表現ができそうです。

もっとも、この段階では 「LとMを結びつけられたらいいかも」と言っているだけで、意味のcategory Mがどんなものかは何もわかっていません。意味のcategory Mをどう構成すればいいかは、次回のセッションでもう少し具体的に触れていきたいと思います。

今回のセッションでは、「category とcategoryを結ぶ」ということを、考えてみたいと思います。

【 functor -- categoryとcategoryを結ぶ 】

カテゴリー論では、あるcategoryともう一つのcategoryを結びつける方法がキチンと定義されています。それをfunctor と言います。

言語の意味を表現するのに、カテゴリー論的枠組みを使うのなら、functorを利用することが必要になりそうです。

ここでは、functorと二つのfunctorを結びつけるnatural transformationの定義を見ておくことにします。

【 functorとはなにか? 】

category C から category D へのfunctor F: C → D は、次のように定義されます。

まず、Cのオブジェクトと射について、functor Fがどう作用するかです。

 ⚫️ Cのすべてのオブジェクトx について、 F(x)はDのオブジェクトである。
 ⚫️ Cのすべての射 f : x → y について、 F(f)はDの射 F(f) : F(x) → F(y) である。

要するに、 functor Fによって、CのオブジェクトはDのオブジェクト F(x)にうつされ、Cの射 fはDの射 F(f)にうつるということです。

スライドに、図を書きましたのでご覧ください。

functorは、次の条件も満たす必要があります。

 ⚫️ 射 g, f がCで合成可能な時、すなわち、射 g ◦ f が Cに存在する時、
  F( g ◦ f ) = F(g) ◦ F(f)。
 ⚫️ FはCのすべてのオブジェクトxについて、Cの同一射をDの同一射にうつす。
  F(id_x) = id_F(x) 

【  二つのfunctorを結ぶ -- natural transformation 】

二つのfunctor F,Gがあって、F,Gともに、category Cからcategory Dへのfunctorだとします。

この時、次の条件を満たすη(エータ)を、FからGへのnatural transformation と言います。natural transformation は、二つのfunctorを結びつけるものです。

 ⚫️ Cのすべてのオブジェクトx について、η_xはF(x)からG(x)の射である。
  η_x : F(x) → G(x)
 ⚫️ f : x → y がCの射である時、次の式が成り立つ。
  G(f) ◦ η_x =η_y ◦ F(f)

この関係をスライドで、図にしました。式だけではわかりにくいと思いますので、ぜひ、図もご覧ください。

【 可換図式 】

カテゴリー論では、図式のある頂点から他の頂点に至る経路が二つあって、どの経路を選んでも同じ結果になることを表す図式を「可換図式」と言います。

例えば、今回スライドに乗せた図式は「可換図式」です。この図は、先の二つ目の式の左辺と右辺が等しいことを、四角形の左上の頂点から右下の頂点に至る二つのどの経路を通っても「可換 commute」であることで表しています。お確かめください。

【 次回予告 】

数学的な準備ができましたので、次回は、意味のcategory Mの候補を構成してみたいと思います。カテゴリー論のツールとしては、「米田のレンマ」というのを使います。ただ、次回は、その初等的な解説です。


--------------------------------

ショートムービー「 functor:意味を表現する方法 」を公開しました。
https://youtu.be/uahXnX1s4Tw?list=PLQIrJ0f9gMcPgnaymP8vC37oKdYa5pvDm

「 functor:意味を表現する方法   」のpdf資料
https://drive.google.com/file/d/1oC9I4njEoUGnX-RyJp_Ldbp18Vvdz5fT/view?usp=sharing

blog 「 意味の世界はどこにある? 」
https://maruyama097.blogspot.com/2023/12/functor.html

「大規模言語モデルの数学的構造」まとめページ
https://www.marulabo.net/docs/llm-math/


コメント

このブログの人気の投稿

マルレク・ネット「エントロピーと情報理論」公開しました。

初めにことばありき

人間は、善と悪との重ね合わせというモデルの失敗について