categoryとしての言語

【 なぜ、言語をcategory として捉えるのか? 】

前回のセッションでは、大規模言語モデルの入力に与えられるテキストデータを、「語の並び」からなる「表現」の集まりと考えると、そこに文字列の包含関係に基づいて二つの表現SとTとの間の順序を、次のように定義できることを見てきました。

 ⚫️ SがTの部分文字列である時、S ≦ T
 ⚫️ そうでない時、SとTの間には、順序関係は存在しない。

この順序 ≦ は、反射律と推移律を満たしますので、preorder(前順序)です。
「表現」の集まりとしての言語は、preorderの構造を持ちます。

今回のセッションでは、前回見たpreorderの構造を持つ対象は、category としても考えることができると言う話をします。

まず、category とは何かを見ておきましょう。


【 categoryとは何か? -- categoryを構成するもの 】

category Cは、次のものからできています。

 ⚫️ オブジェクト (object): Cを構成する要素
 ⚫️ 射 (morphism): Cの二つのオブジェクト x, yを結ぶもの。

この射fを f : x → y と表します。この時、xをfのdomain、yをfのcodomainと呼びます。

f : x → y,  g : y → z なる 射 f, g に対して、g◦f : x → z なる射が存在します。これを射 f, g の合成 (composition) といいます。これは、射 f のcodomainと射 gのdomainが一致する時、射の合成 g◦f が定義されるということです。


【 categoryとは何か? -- category が満たすべき性質 】

category C は、次の性質を満たさなければなりません。 

 ⚫️ 同一射の存在: Cのすべてのオブジェクト x について、xを同じxと結ぶ射 id_x : x → xが存在する。
 ⚫️ 射の合成の結合性:f : x → y,  g : y → z, h : z → w  の時、( h◦g )◦f = h◦( g◦f )が成り立つ。

この性質はスライドの図を見た方がわかりやすいと思います。


【  preorderとしての言語はcategoryである 】

先に見た、preorderとしての言語 P がcategoryとしても解釈できることを見ていきましょう。このcategoryとしての言語ををLとします。

 ⚫️ Lのオブジェクトを、Pの要素と同じものとします。
Pの要素をS,Tとすると、S,Tは、Lのオブジェクトでもあります。それは言語の語の並びからなる表現です。

 ⚫️ Lの射 f : S → T を、Pで S ≦ T である時かつその時に限り、定義されるものとします。

Lのオブジェクトと射が定義できたので、このLがcategoryの要件を満たすことを見ていきましょう。

 ⚫️ まずは、射の合成についてです。
Pはpreorderで推移律を満たしますので、Pの要素 S,T,Uについて、 S ≦ T かつ T ≦ U なら S ≦ U が成り立ちます。 S,T,Uは、Lのオブジェクトですので、このことは、Lにおいて
f : S → T かつ g : T → U なら h : S → U が成り立つことを意味します。このhを射 f, g  の合成 g◦f と解釈することができます。 

 ⚫️ 次は、同一射の存在についてです。
Pは反射律を満たしますので、すべてのPの要素Sについて、 S ≦ S が成り立ちます。このことは、すべてのLのオブジェクトSについて、同一 id_S : S → S が存在することを意味します。 

 ⚫️ 最後は、射の合成の結合性についてです。
これについては、スライドの図をご覧ください。


【 なぜ、言語をcategory として捉えるのか? 】

なぜ、「構造のないテキスト」の集まりに見える大規模言語モデルのテキスト・データを、あらためてcategory として捉える必要があったのでしょう?

プリミティブな順序構造であるpreorderdだけだと、大規模言語モデルが行なっているように見える言語の意味理解にはつながりません。それは、文のsyntaxを分析するだけでは、語や文のsemanticsの理解が進むわけではないのと同じです。

確かに、大規模言語モデルの理解には、pregroupの文法カテゴリーは強すぎるものでした。その前提を弱める必要がありました。

ただ、カテゴリー論的フレームを放棄する必要はないのです。


【  なぜ、preorderのcategory なのか? 】

順序が定義された集合は、preorder, partial order, total order そして pregroup といろいろあるのですが、それらはいずれも、categoryの言葉に翻訳できます。

今回、preorderがcategoryであることを説明する中で、改めて気づいたのですが、preorder は、categoryを構成する順序集合の中で、もっとも仮定が少ないものになっています。 

【 なぜ、category論が重要なのか? 】

pregroupという文法的categoryとLawvereのFunctorial Semanticsのフレームを利用して、syntaxの構成性とsemanticsの構成性を結びつけることに成功したDisCoCatの理論は、画期的な飛躍だったと思います。

それは、同時に、言語とその意味の理解には、カテゴリー論が極めて有用であることを示しました。

今回のセミナーで紹介するTai-Danaeの理論は、言語とその意味の理解にとどまらず、現代の人工知能技術の中核である大規模言語モデルの理解にとっても、カテゴリー論が強力なツールを提供できることを意味しています。


【 次回予告 --Tai-Danaeの素晴らしいアイデア 】

しかも、その方法は、意想外(僕にとっては)のものでした。

彼女は、プリミティブなpreorderで特徴づけられる言語の構成性を表現するcategory L から、意味の世界へのジャンプを、一般的なFunctorial Semanticではなく、「米田レンマ」を使うことで成し遂げるのです。

この彼女のアプローチを特徴づける素晴らしいアイデアを、次回のセッションでは紹介しようと思います。

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

ショートムービー「 categoryとしての言語 」を公開しました。
https://youtu.be/xlEtioFJhbQ?list=PLQIrJ0f9gMcPgnaymP8vC37oKdYa5pvDm

「 categoryとしての言語   」のpdf資料https://drive.google.com/file/d/1nQJNWOZwHtCaumRVsyxvQEwf50a0T7aS/view?usp=sharing

blog 「 なぜ、言語をcategory として捉えるのか? 」
https://maruyama097.blogspot.com/2023/12/category.html

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


コメント

このブログの人気の投稿

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

初めにことばありき

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