宮沢弘/楠樹 暖『aiの呟き』
副題【ナンセンスからセンスへ】
さて、(半)自動生成小説とのことだ。手法などは小説情報を確認していただきたい。専門用語や専門のツールの名前が書かれているが、気にしてはいけない。それでも気になるようなら、検索すれば大丈夫だ。
今回この作品を取り上げたのは、偶然と言えば偶然だし、そういうことに私が興味を持っているからということもある。それで思い出したのだが、「なろうレビュー祭り2015」で、すこしばかり関連することを書いていた。どうせだからコピペしてしまおう:
| ところで、「だとしてもElizaなどは決められた反応をするのみであ
| る」という言もあるだろう。では、 "Racter" (ラクター) という、
| 同じく人工無脳を思い出してみよう。ラクターは、あるいはラクター
| の作者は、1983年に 『The Policeman's Beard Is Half Constructed』
| という本を出版している。1984年には、Mindscape社からチャット可能
| なバージョンのラクターが発売されている。どちらのバージョンのラ
| クターも、「テンプレート方式」を用いていた。特にチャット可能な
| バージョンでは、入力を軽くではあるが解析し、それを出力に反映す
| る機能が加えられ、より洗練されていた。
| さて、ラクターは 『The Policeman's Beard Is Half Constructed』
| という本を出版していることから想像できるだろうが、チャット版の
| ラクターも非常に多弁であった。たとえ、それがテンプレートによる
| ものだとしてもである。ここで、ある種の問題が現われる。「では、
| そのテンプレートとはいったい何であるのか?」というものだ。人間
| はおおむね文を文法に従って生成している。テンプレートのありかた
| にもよるだろうが、ではテンプレートと文法とは、どこがどう違うの
| だろうか。文法は有限のルールから無限の文を生成できる。だが、そ
| れは再帰さえ認めれば、テンプレートであっても可能だ。人間は意味
| を操って文を作っているという話もあるだろう。では、意味とは何だ
| ろうか。あるいは、こう言ってもいい。「あなたは『意味』を意識し
| て、言葉を使っているのか?」と。
と、まぁ、こんなところだ。
ラクターをもって、「小説の自動生成はとっくに実用化されている」とは言えない。ただ、チャット版は、こちらがうんざりするほどに多弁だったし、一回の返事の中では、内容もそれなりに整合性があったように思う。
テンプレート方式は、テンプレートをうまく作れさえすれば、文法や内容に整合性を持った出力を出せるという利点がある。ただし、非常に高品質なテンプレートを作るのは、あたりまえだが、無茶苦茶な労力を必要とする。
さて、この作品は統計的な手法を用いている。マルコフ連鎖として、どういう形のものを使ったのかはわからない。だが、基本的なマルコフ連鎖だとすれば、自然言語処理などにおいてn−gramと呼ばれるものと同じか、ほぼ同じである。これはまたシンプルな条件付確率の一つでもある。
ところで、2016年3月にAIが書いた小説が星新一賞の1次審査を通ったというニュースがあった。もっとも、まだ完全に自動ではないようだが。
星新一賞の1次審査を通った作品と、この作品では、技術的になにが違うだろう。とくに、「きまぐれ人工知能プロジェクト 作家ですのよ」のほうとは、なにが違うだろう。そちらのプロジェクトでは、テンプレート方式か、それに近いものを用いているらしい。だが、テンプレート方式という言葉をそのまま受け取るわけにはいかない。「どのようなものをテンプレートと呼んでいるのか」が不明だからだ。「作家ですのよ」のほうでも、メインではないとしても、なんらかの統計モデルは使っているだろう。また次のような解説があった:
| 登場人物の設定や話の筋、文章の「部品」に相当するものを人間が用
| 意し、AIがそれをもとに小説を自動的に生成した。
ということは、おそらく物事についてのオブジェクト指向のデータベースも使っているのだろう。
「作家ですのよ」にしても、この作品にしても、生の出力の品質はわからない。だが、おそらくは、「作家ですのよ」の出力のほうが、多少なりとも品質はいいと思う。理由は、この作品が採用している「形態素のマルコフ連鎖」では、そのモデルが持つことができる情報はあまりにすくないだろうからだ。もっとも、「形態素のマルコフ連鎖」も、実際にはどういうものなのかはわからないのだが。なお、「形態素」は、荒っぽく言えば「単語」のことだと思ってもらえばいい。
ところでマルコフ連鎖には、その性質の一つとして、エルゴード的であるか非エルゴード的であるかというものがある。エルゴード的であるとは、たとえば単語や状態が"A", "B", "C"とあれば、この"A", "B", "C"で三角形を作っているようなものだ。この場合、"A", "B", "C"の間を行き来しても、全体としては出力する単語などの確率に時間的な変化はない。対して非エルゴード的であるとは"A→B→C"と、時間によって単語や状態が移り変わり、それに応じて出力する単語などの確率も時間的に変化する。
この作品では非エルゴード的なマルコフ連鎖を用いているものと思う。その場合、簡単なものとしては次のようなものが考えられる:
名詞の集合1+助詞の集合1
→形容詞の集合2+名詞の集合2+助詞の集合2
→動詞の集合3
これであれば、「私は 大きな電車に 乗った」であるとか、「彼から 新しい本を もらった」などが出力可能になる。もし、エルゴード的なマルコフ連鎖であれば、動詞が最後に来るということすら表現できない。
だが、これで小説を出力するには無理がある。というのも、「形態素のマルコフ連鎖」という言葉をそのまま受け取るなら、物語の流れに対応するものがモデル化されていないからだ。
こちらの方向での自動生成を試みるなら、上記のようなものを一つの島とし、複数の島の間でのマルコフ連鎖のモデル化が、最低でも必要になるだろう。そして一つの島の中には、細かいマルコフ連鎖が複数入っているような形もありえるだろう。
あるいは、どのようなものであれ物語の文法を定義し、その規則の末端のほうでマルコフ連鎖を使う方法もあるだろう。
また、マルコフ連鎖ではなく、隠れマルコフ・モデルを使えば、その表現力はおそらく大きく向上するだろう。
物語の文法を使うにしても、隠れマルコフ・モデルを使うにしても、このあたりは、すこし昔の音声認識や、音声合成についての資料が役に立つはずだ。
レビューというよりも技術解説のようになってしまったが、そこはお許し願いたい。AIによる物語の生成は、魔法でも不思議技術でもないのだ。ちら見の情報ではあっても、この程度の技術的な推測はできる、テクニカルな、あるいはロジカルな話題なのだ。
小説家になろうに、このような作品が投稿されたのは喜ばしいことだ。
そして、皆さんにも、このような技術について興味を持ってもらえたらと思う。
そのためにも、小説家になろうにおいて「自動生成」というジャンルか、あるいは「その他」の下に「自動生成」という下位ジャンルを設けてもらえたらと思う。いや、それは欲張りすぎというものだろうか。
『aiの呟き』
作者名:楠樹 暖
作品URL:http://ncode.syosetu.com/n4839de/