言語AIの進化史④意味ネットワーク
前回は、1960年代頃から台頭したエキスパート・システムについて解説しました。人工無能がどちらかというと対話の表面的な流れを維持するためのルールの集合あったのに対し、エキスパート・システムは、専門的な「知識」を蓄積した上で、ルールに従って利用することにフォーカスしていました。
しかし、知識の収集し蓄積するために膨大な手作業が必要でした。
人間の専門家からの知識をインタビューなどを通して獲得し正確に記録しなくてはなりません。ところが、自然言語による表現に秘められた意味は、経験的な知識や暗黙的な文脈に依存することが多く正確に定義することが困難です。
ある言葉の意味を定義するために、それこそ多くの言葉を必要となります。例えば、国語辞書を考えてください。ある単語を説明するのに多くの文章や例題を必要としています。
同じ言葉でも文脈によって意味が異なるので、言葉によって説明された何万もの知識を矛盾なく蓄積するのは容易ではありません。自然言語をそのまま使用して「意味」を記述する方法は効率が悪すぎます。
そこでコンピュータを利用することを考えると、システムが扱いやすいように言葉の「意味」を定義することが必要になります。そうなれば、手作業が減り、効率的な知識の蓄積や探索が可能となります。
しかし、問題は「意味」をどう定義するかです。
もちろん、意味の定義の方法には、たくさんの可能な解決策があるでしょう。言語モデルの進化史を辿ると言葉が意味することの定義に対する様々なアプローチが登場します。
その一つの試みとして意味ネットワーク(Semantic Network)や知識グラフ(Knowledge Graph)と呼ばれる意味や知識を定義し構造化するための手法が登場しました。エキスパート・システムと同時期の1960年代頃のことです。
ポルピュリオスの樹
言語や意味、知識の構造に関する研究の歴史は古く、古代ギリシャの哲学者たちにまでさかのぼります。
たとえば、プラトン(紀元前427年から紀元前347年)は、対話を通して複雑な概念を明確にする手法を用いました。また、プラトンの弟子であるアリストテレス(紀元前384から紀元前322年)は、事物の分類と定義を行い、知識の体系化を図りました。これらの手法は、知識をより明確に言語化し、論理的に整理するものです。
さらに、紀元後3世紀のギリシャの哲学者ポルピュリオスは、アリストテレスの教えを階層的に説明するための「ポルピュリオスの樹」と呼ばれる分類図を導入しました。木構造で知識の体系化するものです。
以下は、ポルピュリオスの樹の例です。

3 列の単語から構成されていますが、真ん中の列は「物質、ボディ、動物、人類」とメインの概念が縦に並んでいます。太字になっており、木の幹に相当します。左右に突き出している用語は木の枝に相当する部分で、幹の言葉に対して両極端の性質による差別化を提示しています。
上から辿ると次のように解釈できます。
Substance (実体): 最上位の概念で、すべての存在の根本。
Thinking (思考): 思考する。例えば、魂や精神、意識など。
Extended (拡張): 空間的に拡張している。水や岩、動物など。ここから下へと分岐します。
Body (身体): 拡張している実体。
Inanimate (無生物): 生命がない。
Animate (生物): 生命がある。ここから下へ分岐します。
Animal (動物): 生命がある身体。
Irrational (非理性的): 理性を持たない。
Rational (理性的): 理性を持つ。ここからさらに分岐します。
Human (人間): 理性を持つ動物。
This (これ): 近くの対象。
That (あれ): 離れた対象。
Plato (プラトン): 「これ」と「あれ」は特定の個人を区別するための概念。ここでは、それがプラトンとなっている。
ポルピュリオスの樹は、上位概念から具体的な個別概念へと分岐していく構造を持ち、知識の階層的な整理を図っています。
古くから続く西洋哲学の大きな流れは、近代の知性に対するアプローチにも大ききな影響を及ぼしたでしょう。会話による知識の明確化、分類による体系化、木構造による構造化などが、イライザによる会話を通した自己発見、エキスパート・システムによる知識の蓄積・利用の手法、さらには意味ネットワークやオントロジーなどと根底で繋がっていると考えるのは、ちょっと深読みしすぎでしょうか。
もちろん哲学による意味の探究は続いていきましたが、人工知能やシステムにおける意味の定義と利用の発展は1950、60年代ごろからやっと始まります。
意味ネットワーク
意味ネットワークは、概念間の関係を表現するためのグラフ構造ですが、その具体的な実装方法やアプローチはさまざまです。異なる研究者やプロジェクトが、それぞれの目的に応じて異なる形式の意味ネットワークを提案してきました。
共通の概念としては、概念(ノード)とそれらの関係(エッジ)を表現します。下図は、意味ネットワークの一例です。

例えば、「Cat」(猫)や「Mammal」(哺乳類)はノードです。また、「Cat」と「Mammal」の関係として「is a」(…です)が、矢印付きの線で表現されています。
意味ネットワークの応用例としては、ケンブリッジ大学の計算言語学者リチャード・リチェンス(Richard Hook Richens)が1956年に発表した機械翻訳があります。ただし、この研究は当時はあまり知られていなかったそうです。
意味記憶
もう一人の意味ネットワークに関連する研究者としてロス・キリアン(Ross Quillian)がいます。
ロス・キリアンよりもロス・クイリアンの方が英語の発音ぽいかもしれませんが、Wikipediaの表記に従っています。いずれにせよ、日本語のカタカナ発音では不正解だとは思いますが。
彼は博士論文(1968年)の中で、意味を記憶する構造(意味記憶、Semantic Memory)を説明するために意味ネットワークという言葉を用いました。ただし、意味ネットワークというアイデアは古くから存在していたと考えられています。
意味ネットワーク、つまり連想的にリンクされた概念のネットワークという概念は、非常に古い歴史を持っています。たとえば、アンダーソンとバウアー (1973、p. 9) は、その起源をアリストテレスにまで遡ることができると主張しています。
The idea of a semantic network -- that is, of a network of associatively linked concepts -- is very much older: Anderson and Bower (1973, p. 9), for example, claim to be able to trace it all the way back to Aristotle.
ロス・キリアンは、意味ネットワークを言葉の「意味」を保存して利用可能にする表現形式と考えていました。また、意味ネットワークは主に非感情的で客観的な意味を対象としていました。つまり、物事に対する私たちの感じ方ではなく、物事の特性を表現することを意図していました。
彼の基本的な仮定は、単語の意味はその動詞連想の集合によって表現できるというもので、これは上述の意味ネットワークの例と同じです。
つまり、辞書が間接的に行っているように、人間の知識が関連する概念と形成する構造を表現しており、そのためにネットワーク形式を使っているわけです。よって、すべての概念は、概念間の関係の網の中での位置によって定義されています。そして、コンピュータによって扱いやすくなっています。
意味ネットワークのモダンなバージョンとしては、トニー・ブザン(Tony Buzan)マインドマップがあります。概念やアイデアをノードとして表し、それらの間の関係をエッジとして描く視覚的な表現方法です。
このようにアイデアや概念を視覚的に整理する方法は、似たようなものが古くから存在し、形を変えながら何度も登場しているのでしょう
ロス・キリアンは意味ネットワークで人間の記憶のモデル化を研究しました。記憶されたある概念に関連する情報を検索するために、ネットワーク内を効率的に移動するアルゴリズムを使います。
例えば、「Dog」(犬)に関連するすべての属性、例えば「Animal」(動物)、「Bark」(吠える)などを見つけることができます。
以下は、ロス・キリアンが1969年に発表した論文からの引用です。
教えられる言語理解者 (Teachable Language Comprehender、TLC) は、英語のテキストを「理解する」ことを教えられるよう設計されたプログラムです。プログラムがこれまで見たことのないテキストを入力すると、新しいテキストの (明示的または暗黙的な) 主張を大きなメモリに正しく関連付けることで、そのテキストを理解します。このメモリは、世界に関する事実の主張を表す「意味ネットワーク」です。
The Teachable Language Comprehender (TLC) is a program designed to be capable of being taught to "comprehend" English text. When text which the program has not seen before is input to it, it comprehends that text by correctly relating each (explicit or implicit) assertion of the new text to a large memory. This memory is a "semantic network" representing factual assertions about the world.
つまり、これは自然言語の理解を意味ネットワークを利用して行うというものです。イライザや初期のエキスパート・システムでは無理なことが可能になったわけです。もちろん、意味ネットワークをできるだけ周到に用意して、それが扱える範囲においてだけで成立する話ですが。
しかし、意味ネットワークの利用は、理解だけにとどまらず文章の生成にも応用されました。
文章生成への応用
1960年、シカゴ大学の計算言語学者であるVictor Yngveは、文法的に正しいが意味としてはナンセンス文を生成するアルゴリズムを発表しました。文の構造を理解し、文章を生成するものなので、意味の理解や表現には直接関わるものではありませんでした。しかし、この研究は自然言語処理の分野に大きな影響を与えました。
1962年から1964年にかけて、シェルドン・クライン(Sheldon Klein)とロバート・シモンズ(Robert F. Simmons)は、文章生成の際に意味ネットワークを利用することを考案しました。つまり、単語や概念間の意味的関係を基に文章を生成する方法です。これにより、構文的に正しいだけでなく、意味的にも一貫性のある文章をある程度は生成できるようになりました。
ただし、テンプレートに従って、意味ネットワークからの言葉を埋め込む方法であり、現代の言語生成モデルとは異なります。
また、置換クラスという単語やフレーズのグループを使います。各クラスには、特定のカテゴリに属する複数の選択肢が含まれており、ここからランダムに単語やフレーズを選びます。
したがって、文章を生成するためには、いくつかの準備が必要なので今日のスタンダードからすると生成とは言えません。具体的には、意味ネットワークの構築、テンプレートの設定、置換クラスの定義などを必要とします。
参考文献:
次回予告
意味ネットワークは、言語の意味を定義しコンピュータで利用するものでした。これにより、コンピュータは単語や概念の意味的関係を理解し、より自然な文章生成や質問応答が可能となりました。ただし、あらかじめ準備されたもので、それほど複雑でなければという条件付きです。
次回は、この続きとしてオントロジーについて解説します。オントロジーは、意味ネットワークの発展系とも言えるもので、より複雑な概念や関係を体系的に定義するための枠組みです。
お楽しみに!
