投稿

12月, 2023の投稿を表示しています

数学から計算科学へ、そしてその逆 -- MIP* = RE の場合

【 数学から計算科学へ、そしてその逆 】 今回のセミナー「大規模言語モデルの数学的構造 I 」 https://llm-math.peatix.com/  は、数学(カテゴリー論の基本的定理)が計算科学への実践的な応用を持つという例なのですが、逆の例、計算科学が数学の問題を解くのに応用されるという例もあります。 添付した短いビデオは、計算科学が量子力学を経由して純粋数学に影響を与えるという状況が生まれているということを表しています。 この動画  https://d2r55xnwy6nx47.cloudfront.net/uploads/2020/03/Connes-2880x1620_v2.mp4 はQuaunta Magazineの " Landmark Computer Science Proof Cascades Through Physics and Math"  https://www.quantamagazine.org/landmark-computer-science-proof-cascades-through-physics-and-math-20200304/ という記事から借用したものですが、具体的には、計算複雑性の理論での「MIP* = RE」という定理の証明が、数学の未解決の難問だった「コンヌ予想」を「否定的」に解決したことを表しています。 【 「計算科学」と「数学」をつなぐ 「量子力学」という段階の意味 】 興味深いのは、この例の場合、計算科学と数学は直結しているわけではなく、途中に、「量子力学」という段階を経由していることです。 といいますのも、MIP* (MIP star と読むようです)の ' * ' (star) は、量子論的にentangle した二人の「万能の(しかし嘘もつく)証明者」を仮定しているからです。彼らとの「対話型証明」として証明は進行します。 【 動画を逆転する 】 今回のセミナーで取り上げる「数学から計算科学へ」の例は、この動画を逆転したものと考えていいのです。実は、そこでも、この動画での「量子力学」に相当する段階が重要な役割を果たしています。 それは、次回のセミナー「大規模言語モデルの数学的構造 II -- enriched categoryによる言語モデル」で詳しく展開

巨人の肩に乗ろう!

【 12/30 マルレク「大規模言語モデルの数学的構造 I 」申し込み受付開始 】 大規模言語モデルの働きがよくわからないという人は少なくないと思います。僕自身もそうです。大規模言語モデルの振る舞いとその背後にある理由をもっとよく知りたいと考えている人は、きっと沢山いらっしゃると思います。 二回連続のシリーズを予定しているセミナー「大規模言語モデルの数学的構造」は、こうした疑問に、大規模言語モデルにカテゴリー論に基づくモデルを与えることで応えようとしたTai-Danae Bradley らの興味深い論文を紹介することを主要な目的にしています。 12月30日開催のセミナー「大規模言語モデルの数学的構造 I -- 言語へのカテゴリー論的アプローチ入門 」はこの連続セミナーの第一回目です。お申し込みは、次のサイトからお願いします。 https://llm-math.peatix.com/ 連続セミナーの二回目は、「大規模言語モデルの数学的構造 II -- enriched categoryによる言語モデル」というタイトルで、来年の一月末開催予定です。ご期待ください。 12月30日のセミナーは、次のような構成を予定しています。  ⚫️ Part 1 構成的分散意味論の展開    ・語の意味をどう捉えるか -- 分散意味論の系譜    ・DisCoCatの登場    ・Quantum NLP  ⚫️ Part 2 大規模言語モデルの特徴    ・Tai-Danaeの問題提起    ・Tai-Danaeの道具箱    ・あらためて、セミナーの目的について  ⚫️ Part 3 言語をカテゴリーとして捉える    ・preorderとしての言語  ・ categoryとしての言語  ・ functor:意味を表現する方法  ⚫️ Part 4 意味をカテゴリーとして捉える    ・functor category と意味  ・ Yoneda embeddingと意味の表現  ・ 言語のcategoryに確率を導入する -- enriched category 日頃あまり見慣れない用語や概念が出てくるので、最初はわかりにくいところが多いかもしれません。ただ、それは当然かもしれません。なぜなら、ここでの議論のベースになっているのは、50年以上前に数学の巨人であるグロタンディックやロー

言語のcategoryに確率を導入する -- enriched category

【 セミナーを二つに分割します 】 今月末に予定しているセミナーを二つに分けて、enriched category に基づく言語理論を紹介する後半部分を次回のセミナー「大規模言語モデルの数学的構造 2」に回そうと思っています。予定変更、すみません。詳しくは、このポストの最後の部分をお読みください。 【 言語のcategoryに確率を導入する 】 これまでみてきた言語のcategory L では、二つの表現SとTがある時、SがTの部分文字列である時、S → T という射が存在します。 例えば、次のような射が category L には存在します。   red → red firetruck   red → red idea S → T という射を、単なる部分文字列の関係としてではなく、表現Sが表現Tを「連想させる」という関係として考えると、普通の言語使用の局面では、red → red firetruck の方が、red → red idea よりたくさん出現するような気がします。 「連想」というのが曖昧だというなら、表現の「継続」あるいは表現の「連続」と考えて構いません。 こうした違いを、数値的に次のように表現することにします。射 を表す矢印の上に数字が割り当てられています。            0.12   red  →  red firetruck           0.003   red  →  red idea この例は仮のものですが、ここでのポイントは、射 red → red firetruck に割り当てられた 0.12という数字が、射 red → red ideaに割り当てられた 0.003という数字より大きいということです。 このことが、「普通の言語使用の局面では、red → red firetruck の方が、red → red idea よりたくさん出現するような気がする」ということを表現していると考えましょう。 もう少しきちんと定義すれば、これらの数字は、表現Sが現れた時、表現Sの「継続」として表現Tが現れる条件付き確率π(T|S)だと考えることができます。 【 大規模言語モデルでの Next Sentence Prediction 導入の意味 】 僕は、翻訳モデルから大規模言語モデルへの飛躍をもたらした最大のものは、文と文の「継続」あるいは

Yoneda embeddingと意味の表現

【 言語と意味の関係をカテゴリー論で整理する 】 前回のセッションで、意味のcategory M の形を見てきました。 それは、言語のcategory L のオブジェクト x から、Lの射 x → y によってうつされるすべてのオブジェクト yの集合によって表現されます。 Lのオブジェクトxを、その意味を表すcategory Setのあるオブジェクトに割り当てる functor を L(x, − )で表すと、   L(x, − ) :  L → Set と表すことができます。 意味のcategory M のオブジェクトは、この   L(x, − ) : Set^L に他なりません。 【 もとの問題意識に戻る 】 意味のcategory M の構造は定義できたのですが、それで問題が片付いたわけではありません。 もともとの問題意識は、言語のcategory Lと意味のcategory M を関連づけようということでした。   L → M のように。  Mが定義できたので、これが今度はこうなります。   L → Set^L これを図で表してみましょう。この説明は、スライドをご覧ください。 まず、 言語のcategoryと意味のcategory の関係 を図に表してみました。 次に、この図の上で、語 red の意味がどう扱われるのか、具体例で説明しています。言語のcategory L と意味のcategory Set^L との対応は、Lのオブジェクト red をSet^Lのオブジェクト L(red, − )に対応づけるものです。 一般に、Lのオブジェクト x をSet^Lのオブジェクト L(x, − )に割り当てることを「Yoneda Embedding」と言います。 後半では、こうした構成を一般的な視点から説明しようと思います。 【 表現可能なfunctor 】 ここでは、これらの構成のアイデアのもとにあるYoneda lemmaについて、簡単に説明したいと思います。 category Cから集合のcategory Set へのfunctor    F : C → Set  が存在する時、このF を表現可能なfunctor と呼びます。 category Cの性質が最初はよく分からなくとも、性質のよくわかっているSet へのfunctor を考えると、Cの性質がSetの

functor category と意味

【 John Firthの意味理解をカテゴリー論的に解釈する 】 意味の世界にアプローチする手がかりは、どこかにないでしょうか? 特に、その意味の世界をカテゴリーとして捉えるヒントはどこかにないでしょうか? このセミナーの中では、意味の世界をカテゴリーとして捉えようとする二つの理論 DisCoCatとQNLPを紹介してきました。そこでは意味の世界は、有限ベクトル空間あるいはヒルベルト空間のカテゴリーとしてモデル化されていました。 また、それらの理論では言語のカテゴリー Lは、pregroup文法に従うものとして、高度に構造化されたものだとされていました。 ただ、それらは、「構造を持たないテキスト」をその入力とするように見える大規模言語モデルの数学的モデルとしては、使いにくいものでした。 【 意味の理論の振り返り 】 改めて、 DisCoCatやQNLP以前の、まだカテゴリー論化されていない意味の理論を振り返ってみましょう。 ここでは、次の二つの意味の理論を、振り返ってみましょう。  ⚫️ 意味の使用説:Wittgenstein  ⚫️ 意味の文脈依存説:Firth 意味の使用説とは、意味はその使用から説明されるべきだ、という考え方です。 Wittgensteinに始まるものです。   “meaning of a word is its use in a language”   「ある語の意味は、ある言語におけるその使用である」 チューリングは、言葉の意味を知る事は、その用法を知る事だといったヴィトゲンシュタインらの見解に痛烈な皮肉をあぴせています。 すなわち、「機械」や「考える」という言葉の使い方をいくら調べた所で「機械は考える事ができるか」という問の意味も答えも明らかになるわけではない。それとも、「ギャラップの世論調査の様な 統計的研究」が必要という事になるのだろうかと。 Firthは「状況の文脈」という概念で意味の文脈依存的な性質に注目したことで知られ、連語的(collocational)意味に関する彼の研究は、分散意味論の分野で広く認められています。特に、彼は次の有名なことばで知られています。   “You shall know a word by the company it keeps”   「我々は、ある語を、それが引きつれている仲間たちによって知ること

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としての言語

【 なぜ、言語を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としての

preorderとしての言語

【 言語のプリミティブな構造を考える 】 これから Tai-Danae の大規模言語モデルの数学的モデルの紹介をしたいと思います。細かいテクニカルな話に入ってしまうと、全体の流れが見えにくくなるので、彼女のアプローチの基本的な骨組みの概説を先行して、段階的に進めたいと思います。 概説の第一回目である今回は、言語のプリミティブな構造としてpreorderという構造に注目するという話をします。 【 pregroupからpreorderへ 】 DisCoCatの言語理論の前提の一つは、自然言語が構成的な文法構造を持つことです。それは、通常は、Lambekのpregroup文法で記述されています。 DisCoCatとLambekのpregroup文法については、2022年12月のマルレク「ことばと意味の「構成性」について」 https://www.marulabo.net/docs/discocat と、その中の次の資料を参照ください。 https://www.marulabo.net/docs/discocat/#Pregroup_Grammar   pregroupは、基本的には、いくつかの代数的構造を持つ「半順序集合(partial order set: poset)」です。カテゴリー論的には、monoidal categoryの一種で、compact closed categoryになります。それは「半順序」より、複雑な構造を持っています。 大規模言語モデルが、「構造化されていないテキストデータの相関関係から完全に構築されている」とみなそうとする Tai-Danaeにとって、pregroupという構造を前提にすることはできません。 彼女が選んだのは、pregroupがもつ余分な代数的な構造(monoidとself dual)を捨て、さらに残った半順序(partial order)からも、ある性質を捨てて得られる 非常にプリミティブな前順序(preorder)という構造から大規模言語モデルの振る舞いを数学的に再構築するという道でした。 その意味では、彼女は、テキストデータが、「全く構造化されていない」と考えたわけではありません。最低限の前提ですが、言語は、 preorder という構造を持つのです。 【 preorderとは何か 】 順序≤が定義された集合𝑃で、

あらためて、セミナーの目的について

【 あらためて、セミナーの目的について 】 中断があったので、改めて今回のセミナー 「大規模言語モデルの数学的構造」の目的を確認したいと思います。 まずは、個人的な背景から。 正直に言うと、僕には大規模言語モデルの働きについてよくわからないところがいろいろあります。ただ、その振る舞いには何かの理由があるはずです。また、その理由は数学的に表現できるとも考えています。 そうした疑問の中、DisCoCatの時代から注目していた Tai-Danae Bradleyの議論の「変化」に注目するようになります。 【 大規模言語モデルの振る舞いは、DisCoCatの枠組みでは説明できない 】 DisCoCatの理論は、言語の文法的構成性を言語の意味的構成性に結びつける、強力なカテゴリー論的枠組みを提供する素晴らしい理論です。 ただ、現実の大規模言語モデルの振る舞いは、DisCoCatの枠組みでは説明できないのです。 なぜなら、DisCoCatのモデルではモデルに与えられる入力は、あらかじめ pregroupとして形式的に記述される文法構造を持ち、そうしたものとして解析されていることを前提としているからです。大規模言語モデルは、そうではありません。 【 Tai-Danae らの二つの論文に注目 】 ある論文の冒頭で、Tai-Danae Bradleyは、こう言っています。 「この研究は、今日の最先端の統計的言語モデルが、その性能において印象的であるだけでなく、より本質的に重要なことは、それが構造化されていないテキストデータの相関関係から完全に構築されているという観察から生まれたものです。」 "Language Modeling with Reduced Densities" https://arxiv.org/abs/2007.03834v4       彼女の関心は、まず、現在の「大規模言語モデル」の「印象的」な性能に向けられています。その上で、「構造化されていないテキストデータの相関関係から完全に構築されている」ことに注目しています。 まったく、同感です。 Tai-Danaeは、別の論文で、次のように語ります。 「最先端の言語モデルは、どのような入力テキストからも自然言語テキストの続きを返すことができる。首尾一貫したテキストの拡張を生成するこの能力は、このモデ

Tai-Danaeのアメリカ数学会デビュー論文へのコメント

【 Tai-Danaeの仕事は、まだ十分には理解されていないのかも 】 (小論は、昨日Facebookに投稿した「AIにおけるカテゴリー理論のツールの普及」のタイトルを変更し、若干の資料を追加したものです。Tai-Danae が名を連ねる論文へのコメントとしては、辛口なものになっています。 ただ、それは、この論文だけでは、この分野で彼女が果たしてきた役割が正当に評価されていないのではと言う不満に基づいたものです。 少し考えたのですが、現在準備中の彼女の理論の紹介を目的とした「大規模言語モデルの数学的構造」のエピソードの「番外編」として、このコメントを組み込むことにしました。 内容の重複をお許しください。) -------------------------------- 【 Tai-Danaeのアメリカ数学会デビュー論文へのコメント 】 来年のことを言うと鬼が笑うと言いますが、来年2月に発行される AMS(アメリカ数学会)誌にTai-Danae Bradleyらの論文が掲載されるそうです。 共著者の一人の John Terilla が自分のページにpre-print を載せています。  "The structure of meaning in language:  parallel narratives in linear algebra and category theory"「言語における意味の構造:線形代数とカテゴリー理論におけるパラレル・ナラティブ」 https://qcpages.qc.cuny.edu/~jterilla/main.pdf このpreprintの「はじめに」の部分を紹介したいと思います。 「機械学習におけるカテゴリー論に関するオンラインプログラム "Categories for AI "は、昨年秋から数ヶ月にわたって展開された。  Deep Mind社の2名を含む産業界の研究者数名を含む "Cats for AI "組織委員会は、機械学習コミュニティはより厳密な構成的言語を使用すべきであり、カテゴリー論は科学全般、特に人工知能において「結束力を持つ大きな可能性」を持っていると感じていた。 この論文は決してその出来事を包括的に報告するものではないが、「Cats for AI」 ht