『ELIZAをめぐるあれこれ(仮)』について

『ELIZAをめぐるあれこれ(仮)』について

 

実は、昨今のAIブームに乗っかって、個人的に興味のある対話システムについて書きたいとの思いから、割と安直にその始祖であるELIZAに着目したのです。おそらくそれを出発点にその後のいろんな研究成果を追っかけて行くことになるのだろう…と言う僕の浅はかな見通しは文献調査に着手した早々に崩れてしまいました。

ELIZAをめぐる話は本当に多岐に分かれていて、いずれも実に重い。

「これだけで一冊書ける内容だ」というのが今の印象です。

ということで…

軽めの印象を狙った『ELIZAをめぐるあれこれ(仮)』と改題して作業を続行します。もう少し掘っていかないと適切な書籍構成にはまとめられないと感じてますが、既にかなりの情報が溜まってきているので、備忘録がわりにここでは思いつくままダンプすることにします。

 

*「ELIZA」という名前の由来

まずは軽めの名前の由来から。ジョゼフ・ワイゼンバウムが開発した対話プログラムに付けられた ELIZA という名前は『ピグマリオン』という戯曲の主人公から拝借されたものであるとオリジナルの論文では語られていますが、ワイゼンバウムがこのプログラムの開発に着手した1964年は、この戯曲を原作とする映画版『マイ・フェア・レディ』オードリー・ヘップバーン主演の名画ですよね?)の公開と重なるので「まぁ、そういうことなんだろう」と僕は想像しています。

ちなみに『ピグマリオン』の作者であるバーナード・ショーは、アイルランド生まれの作家だそうで、19世紀後半のアイルランド人と言えば産業革命の影の部分を背負わされた人々が想起されます。作家であったバーナード・ショーリベラリストであったことも容易に想像が付きます。彼の作品の多くには辛辣な社会風刺のテイストも盛り込まれていてそれが作品に奥行きを与えていることが高く評価されているそうです。事実、『ピグマリオン』も上流階級の男性二人が訛りの強い田舎娘に言葉遣いや作法を仕込んで上流階級のパーティにデビューさせようとする話ですから、社会の差別(階級や性別)を扱った作品という見方もできます。

もっとも、ハリウッドのフレーバーをまぶした『マイ・フェア・レディ』の方はもっとスィートなテイストなので社会風刺など微塵も感じられませんけどね(笑)あらすじについては、Wikipediaミュージカル版『マイ・フェア・レディ』が詳しいです。ただ、『マイ・フェア・レディ』のミュージカル版と映画版については主演女優のジュリー・アンドリュースオードリ・ヘップバーンの確執がよく知られていて、この確執の原因は映画版の製作にあたったプロデューサーのジャック・ワーナーの投資回収を優先するやり方にあったそうですから、結果的に別の意味で社会風刺になってしまった感はあります。この話、ミラマックスのハーヴェイ・ワインスタインを思い出す人もいるかと思うので、案外今時向けのエピソードかもね(笑)

 

*ジョゼフ・ワイゼンバウムについて

Wikipediaジョゼフ・ワイゼンバウムの記事を翻訳してあります。この記事を読むと彼が MIT の同僚とはかなり違った経歴の持ち主であることがわかります。

彼はベルリン生まれのユダヤ系ドイツ人でナチス・ドイツが台頭しつつあった1936年、家族と一緒にアメリカに亡命しています。彼が13歳の時です。同じ境遇のユダヤ系ドイツ人と言えばアンネ・フランクを思い出しますが、ワイゼンバウムは彼女より6つ年上です。意外なところではヘンリー・キッシンジャーも1923年生まれのユダヤ系ドイツ人です。日本人では司馬遼太郎と同じ歳です。

この世代の人は幼少期からティーンエイジャーの頃に第2次世界大戦を経験していることから世代に共通する属性があるように思います。幾つかの文献から知ったワイゼンバウムの言動に、ある種の既視感を感じたからなのですが、それは地に足のついた本物のリベラリズムといったようなもので、例えば、司馬遼太郎のそれとよく似ている。現実を踏まえた迫力のある、それでいて多少鬱屈したような理想主義と言うか、どんな説得も受け入れない芯の強さのある主張を感じてます。やはり幼少期に「暴力のある日常」の実体験を持つ人達ならではの属性ではないかと思います。

その意味では MIT の Project MAC の主要人物と比較するとワイゼンバウムの出自の違いが際立ちます。彼らはほぼ同世代ですが、同じユダヤ系だがニューヨーク生まれのマービン・ミンスキーアイルランド系とユダヤ系の混血でボストン生まれのジョン・マッカーシ、カリフォルニア出身の生粋のアメリカ人だったフェルナンド・コルバトと、いずれもアメリカで生まれ育っているところがワイゼンバウムとの大きな違いで、ユダヤ系と言うよりはむしろ(非暴力的な)ドイツ移民であることにワイゼンバウムのアイデンテティーを見出すべきかと今のところ僕は考えてます。事実、ワイゼンバウムは1996年に統一されたドイツ(のベルリン)に帰省してますしね。

同じ第2次世界大戦の敗戦国に生まれ育った我々が、ワイゼンバウムの主張に(正しいか誤りかはともかく)どこか既視感を感じるのはこのような歴史的な必然があるからなのかもしれません。

 

*『ELIZA』と言うプログラムについて 

WikipediaELIZA の記事を翻訳してみました。が、僕の好みとしてはちょっとイマイチな感じ。記述がちょっと表層的で散漫な印象を受けます。もし書籍を「ジョゼフ・ワイゼンバウムの物語」としてまとめていくなら、やはりここは彼の論文『ELIZA -- 人間と機械の自然言語コミュニケーション研究のためのコンピュータプログラム』を軸にした情報の収集・整理を進めています。

またまた余談になりますが、ELIZA論文をはじめとする1960年代に書かれたコンピュータ・サイエンスの論文(これはデニス・リッチーバトラー・ランプソンの論文にも共通するのですが)内容が具体的かつ読み物としても成立している文書が多いと思います。おそらく、この時代はまだコンピュータ・サイエンスが海のものとも山のものともつかない学問領域で、そういった学問をわざわざ選択する人はかなり物好きなオタクだったと思うし、社会的な注目度もすごく低かっただろうから「何を書いても怒られない」「最初に書いたもん勝ち」的なムードがあったんじゃないかと個人的には想像しています。

で、ELIZA論文。冒頭の "Introduction" はいきなり下記のような癖のある文章で始まります。

It is said that to explain is to explain away. This maxim is nowhere so well fulfilled as in the area of computer programming, especially in what is called heuristic programming and artificial intelligence. For in those realms machines are made to behave in wondrous ways, often sufficient to dazzle even the most experienced observer. But once a particular program is unmasked, once its inner workings are explained in language sufficiently plain to induce understanding, its magic crumbles away; it stands revealed as a mere collection of procedures, each quite comprehensible. The observer says to himself "I could have written that". With that thought he moves the program in question from the shelf marked "intelligent" to that reserved for curios, fit to be discussed only with people less enlightened that he.

The object of this paper is to cause just such a reevaluation of the program about to be "explained". Few programs ever needed it more.

僕の怪しげな翻訳では…

説明とは上手に釈明することだと言われています。この格言は、コンピュータ・プログラミングの分野、特に発見的プログラミングや人工知能と呼ばれる領域でも同様です。その領域では、マシンは驚異的な方法で動作し、しばしば最も経験豊富な観察者でさえも十分に驚嘆させます。しかし、一旦、そのプログラムの仮面が剥がされて、その内部の仕組みへの理解を促すのに十分な説明される(それぞれはかなり分かりやすい手順を単に掻き集めたものであることを明らかにする)と、その魔法は消滅します。説明を受けた人は「私でも書けるかもしれない」と呟きます。問題のプログラムを「インテリジェント」と記された棚から珍しいものの棚に移して、まだ知らされていない人とだけ議論する事を願います。
この論文の目的は、プログラムをこのような再評価するように「説明」することです。今まで、このようなプログラムはほとんどありませんでした。

 ここでの記述から察するに、この論文が発表された1966年1月の段階で既にELIZAに対する過剰な反応にうんざりしているワイゼンバウムの様子が伺い知れます。そもそも、このプログラムを "ELIZA" と名付けた彼は、プログラムをゆっくり育てていくつもりでいたのだと想像しますが、そのデモンストレーションをみた聴衆は彼が全く想像していなかった(過剰に高く評価する)反応を示したのだと思います。彼にとって、この論文は聴衆を沈静化するための種明かしのつもりだったのでしょうが、開発者が正直に語った魔法の種明かしすら聴衆は信じない…デビューの時は散々な目にあった戯曲のイライザとは全く異なる。(僕の記憶によれば)映画『メトロポリス』のアンドロイド「マリア」が初めて登場したシーンのような反応といったところでしょうか?

・オリジナル ELIZA のパフォーマンスは?

でも聴衆がここまで過剰に反応するにはそれなりの理由があるはず?…ですよね。

上記のワイゼンバウムの論文には女性とELIZAとの対話の事例と(巻末には)実際に用いられた(と思われる)"DOCTOR" スクリプトのソースが掲載されています。

Men are all alike.
男性はみんな似ています。
IN WHAT WAY?
どうしたの?
They're always bugging us about something or other. 彼らはいつも何かについて私たちを悩ませています。 CAN YOU THINK OF A SPECIFIC EXAMPLE? 具体的な例を考えられますか?
Well, my boyfriend made me come here. うーん、私のボーイフレンドは私をここに来させました。 YOUR BOYFRIEND MADE YOU COME HERE あなたのボーイフレンドはあなたをここに来させましたか?
He says I'm depressed much of the time. 彼は、私が長時間が落ち込んでいると言います。 I AM SORRY TO HEAR YOU ARE DEPRESSED 私はあなたが落ち込んでいると聞いて悲しいです。
・ ・ ・ ・

うーむ、もしこの会話を側で聞いていたとしたら、人間同士の会話と錯覚しそうですよね?ワイゼンバウムには申し訳ないですが、聴衆が過剰に反応したのは当然のような気がします。むしろ「巻末のスクリプトだけで、このような応対が可能になるのかなぁ?」と素朴に考えてしまう。これは是非試してみたいところです。

 

・オリジナルのELIZAの実装って?

…ということで、まずはワイゼンバウムが開発したオリジナルの ELIZA の実装を探して見ました。ご存知の方も多いと思いますが、ELIZAは様々なコンピュータや言語に移植された歴史(マイクロコンピュータの黎明期に気の利いたゲームとしての需要が大きかった)があるので、いろんなバージョンが手に入ります。

僕が探し当てた限りでは、オリジナル・コードについては "The Genealogy of Eliza" が一番詳細のように見えます。このページで紹介されているソースコードなどは、下記で公開されています。

github.com

素敵な事に、(他では見かけなかった)ELIZAの実装に使ったワイゼンバウムの SLIP の論文 "Symmetric List Processor" のコピーも収録されてます。が、SLIPなる言語(Lispの亜種だと思うんだけど)で動くオリジナルのELIZA実装を今動かすのはかなり骨が折れそうです。そこで、更にelizagenを読み進めると BBN の Bernie Cosell が書いた Lisp Eliza の解説が出てきます。ここでの解説を信じると、SLIPで記述されたオリジナルのELIZAは、SLIPがLispほどには人気がなかったこともあり、実装コードとしてはあまり普及しなかったようです。 で、ワイゼンバウムの論文を参考にスクラッチで実装した Lisp ELIZA がその後登場する様々な派生バージョンのベースコードになったとのこと。もっとも Lisp とは言っても今日一般的な Common Lisp ではなく、もっと古い(方言がキツイ)Lisp だとは思いますが。例によって脱線すると Bernie Cosell は書籍 "Coders at Work" でも紹介されているBBNのソフトウェア・エンジニアで、初期のARPANETで使用された IMP(Interface Message Processor) のソフトウェア開発者の一人で、ELIZAの開発は Lisp を習得するためのお題で、個人的な趣味として取り組んだそうです。

この "The Genealogy of Eliza" ってページには他にも BASIC 版 ELIZA や emacs の Doctor.el などなど ELIZA の実装について広く紹介されています。更に読み進めればいろいろネタが拾えそう。

 

 

長くなってしまったのでページを代えます