人間のあるべき姿の探索

思索・人形・エンジニアリング

分類の構造を考える

人間の三大欲求の一つに世界を言葉によって分割したい欲求があると思うので、考えていました。

しかし、分類学というと生物の分類に関するものばかりで、任意の学問に共通する構造が中々見つけられなかったのですが、結論から述べると、その構造化にはそれほど語る意義がないのではないかと思います。…という話をします。

bookclub.kodansha.co.jp

岡西政典さんの『生物を分けると世界が分かる』を読みました。クモヒトデの分類について調査されている著者が分類学の大まかな流れを説明する書籍なのですが、現在強力とされているDNAを見る手法だけではなく、アリストテレスの頃からあった生物の形態をつぶさに観察する手法など歴史的な背景についてもしっかりと書かれていて、とても面白かったです。

分け方について有名どころだと、系統樹の考え方は生物の授業でも習った通り一般的な考え方なのではないかと思います。まず真核生物や原核生物といったドメインが存在し、目や種などに細分化されていく、といった階層構造を持ちます。また、どうやって分けるかについても記載されており、昔であれば見た目の違いで判別されていたものが、現代ではDNAの塩基配列を見ることでより客観的にとらえられるようになったことが述べられています。個人的には、蝶々と蝙蝠、鯨の例が分かりやすく、形態としては蝶々と蝙蝠の羽の形が似ているが、進化の過程や仕組みを考えると蝙蝠と鯨の方が近い、という説明がしっくりきました。収斂進化の話もあり、分類における指標の重要性が伝わってきます。指標については、最初に例としてラグビーボールとバスケットボールの話が出てきます。これらは二つ用意されたとき、(知識として)丸さや色といった要素はあるのですが、その二つでは区別できず、三つ目の何か(例えばバスケットボール)が現れた際に二つは真球だが、もう一つはそうではないといった区別がつくという説明をしています。生物に限らず、知識を用いることとは別に実際の現象・データがもう一つ重要なポイントになっていますね。

と読み進めていると、系統樹の種レベルまでいくと、その上のレベルでは統一的にとらえられていた存在が下のレベルでは統一的に分けられない、といったことが発生します。これはデータが先行しているから当然なのですが、つまり詳細化されたそれを具体的に記述することに分類の価値があります。と考えると、統一的にすべてを記述できる枠組みとしてのメタ的な分類の構造が語れる領域は限られていて、結局詳細化なのかなという結論に至りました。

せっかくなので、もう少し分類の話をします。元の欲求については5年前くらいからあったのですが、当時は自然言語処理の観点から考えていました。パッと思い浮かぶものとしては辞書でしょうか、名前の付けられた現象のカテゴリに対する説明がされています。そして、シソーラスといい階層化されたそれらの関係が記述された情報が存在します。物体ー金属ー鉄ー…といった階層化された構造でそれらが記述されています。嬉しいですね。しかし、こういった情報をまとめる作業はかなり大変です。特に実際のデータ点として存在するのが生物ではなく言葉なので、見つけることの大変さはともかくとして移り変わりは激しいですし、大量にあります。

そこで、機械学習は自動化されたプロセスで分類を行うのでうれしいですよね。有名どころだとWord2Vec、言葉をベクトルとして表現することで、疑似的に意味を扱うことができます。大雑把には、王ベクトル+男性ベクトル=女王ベクトルみたいな、これらは大量の文章を学習する過程で”同じ文脈で発生する言葉同士は意味が近い”という前提によってベクトルが決まっていきます。ChatGPTも潜在空間を持ってそこに入出力の関係が作られる点では同じなのですが、量が質に転化した感じがあり、正直それ以上のことをへたに述べるべきではないレベルに達しましたね。†昇天†

Word2Vecの話を膨らませると、個人的に好きな研究がいくつかあって、例えばWord2Vecのデータ点を正規分布で表現したり、多峰分布で表現する手法です。それによって、二つの記号間の関係が距離だけではなくその積による類似度で測れる、二つ以上のある程度離れた意味を持つが同じ記号によって表現されるものについて、より表現力が高まります(多峰分布に関しては理想的には十分な次元の潜在空間によって正規分布で表現できるんですかね…??)。あとはsub-wordといって”ヒトデ”、”クモヒトデ”みたいな二つの記号を別個のものとして扱わず、”クモ"-"ヒトデ”の合成として扱うことで近い対象ではないか?と考えることもできます(実際にはクモヒトデはヒトデではないので、こういった誤分類が発生するのも、sub-wordの仮定による仕方ないエラーです)。

ちょっと脱線すると、潜在空間の良さってある程度データを圧縮した空間に表現することで汎用性が出てくるだけではなく、過度に単純化された、言ってしまえば記号のレベルまで落とし込まない表現を保持していることだと思っていて、人間は少なくとも意識的には記号操作をやるのが脳のリソース的に限界ですが、機械に記号操作より細かい表現のレイヤーをリソースに任せてやらせることができ、それを後から分析できるので、こういったところが魅力的ですよね。

とまぁ、自然言語処理に限った話でも、まずデータとなる文章の列が存在し、そこに指標があります。ここでは文字列を記号として扱う、そしてそれらの距離を決める為の指標として共起仮説やsub-wordの文字列は分割された文字列の意味の和であるといった仮説です。その点、任意の分類を扱うときに、とまではいかないですが、データおよび指標という観点で見ていくと筋が良いのではないかと思います。

ただ、限界点を見極めておくと、あくまで実際のデータ、あるいは現象に対してこの手法が有効で、機械学習で潜在空間を獲得しよう!みたいなことについても同じなのではないかと思います。勿論、エラーに対する許容性といった点もあるのかなと思います(存在しないイデアを仮定してもをデータ列からそのまま獲得できることはないですしね)。意味を持った記号のみによって構成されるもの…というとあいまいですが、数学みたいな対象は普通にその論理の作り方を追うべきだと思います。

世界を言葉によって分割したい…!