論文自動生成プログラムSCIgen(2)

先日のエントリ
論文自動生成プログラムSCIgen
の続き。


SCIgenという論文自動生成プログラムが2005年に開発されて以降、
このプログラムによって自動生成された論文が、査読付きの学会に複数採択されている、という内容を書いたけれど、
そのことを指摘した論文のPDFファイルが公開されていた。


Duplicate and Fake Publications in the Scientific Literature:
How many SCIgen papers in Computer Science?
http://hal.archives-ouvertes.fr/docs/00/71/35/55/PDF/0-FakeDetectionSci-Perso.pdf


タイトルは、なんともわかりやすい。
コンピュータサイエンスの分野で、SCIgenによって生成された論文はいくつ存在するか?」
ということで、具体的な検証方法と、その結果が示されている。


今回の調査で、IEEEの査読付き学会に採択された論文の中で、少なくとも85編の論文がSCIgenによって生成されたものであるとわかったらしい。
それらについての記述が興味深かったので紹介してみる。

・85編の論文は、24の学会に採択されていた。少なくとも24の学会がSCIgenによるニセ論文を見抜けなかった。
・89人の著者が、これらの論文に関わっていた。そのうち63人は1つの論文だけに関わっていたが、中には8編の論文に関わっていた者もいる。
・著者の所属する大学は全部で16大学であったが、そのうちの1つの大学が、全体の4分の1のニセ論文に関わっていた。


与えられた文章が、人間が作成したものか、プログラムで自動生成したものかどうかを判定するWebサービス
http://montana.informatics.indiana.edu/cgi-bin/fsi/fsi.cgi


架空の研究者 Ike Antkare の h-index 操作に関する記述
http://paperdetection.blogspot.jp/2010/08/fake-h-index.html


架空の研究者 Ike Antkare の論文リスト
http://membres-lig.imag.fr/labbe/Publi/IkeAntkare/Ike_AntKare_index.html


オリジナルのSCIgenの別バージョンも作られていて、物理学の論文を自動生成する「SCIgen-Physics」なるものが存在する。
こちらは、より高度な数式を自動生成する(下図)



IBM 奇跡の“ワトソン”プロジェクト: 人工知能はクイズ王の夢をみる

IBM 奇跡の“ワトソン”プロジェクト: 人工知能はクイズ王の夢をみる

形式文法による文章生成

「形式文法」について調べてみると、その厳密な定義やオートマトンと組み合わせた判定・解釈の話が多くて、具体的な文章生成に関する説明が見当たらない。
ここでは、形式文法によって文章を作り出す方法について、簡単な具体例を使って説明してみる。


■ はじめに


「形式文法による文章の生成」

文字の置き換えによる文章の生成」
のこと。



■ 例えば


<主語><述語>


という文字列があったときに、<主語>を「私は」に、<述語>を「寝る。」に置き換えると、


私は寝る。


という文章ができあがる。


■ だけど・・・

<主語>を「@%!」にして、<述語>を「★*」に置き換えると、


@%!★*


なにがなにやら・・・ということになってしまうので、置き換えに使える文字列は、予め決めておかなければならない。


最終的にできあがる文章は、次の単語しか使ってはいけないと決めておく。


{私は,あなたは,寝る。,食べる。}


つまり今回は、この4つの単語以外は最終的な文章に登場しない。


使ってよい言葉が決まった。
しかし、<主語>を「あなたは」にして、<述語>を「私は」に置き換えると、


あなたは私は


という文章ができあがる。これでは適切な文章とは言い難い。
そこで、文字の置き換えに次のようなルールを定める。


<主語>→「わたしは」または「あなたは」
<述語>→「寝る。」または「食べる。」


このような置き換えのルールを決めてあげることで、

<主語><述語>という文字列から、「わたしは寝る。」「わたしは食べる。」「あなたは寝る。」「あなたは食べる。」という4つの文章が作り出せる。


■ つまり・・

「使用できる言葉と、置き換えのルールを決めることで、適切な文章を作り出しましょう」


というのが形式文法の考え方。

使用できる単語や、置き換えルールを増やすことで、様々な変化に富んだ文章を作り出すことができる。


■ さて・・

少し天下り式になるけど、文章生成のときには、第一歩を踏み出すための初期状態が必要になる。
文章の作成は、あくまで「文字の置き換え」で実現するものだから、何もない空っぽの状態から、いきなり文章を作ることはできない。


そこで、まず最初の状態を


<文章>


で表すこととして、


<文章>→<主語><述語>


という新しい置き換えルールを追加する。


これによって、


<文章>→<主語><述語>→私は寝る。


という流れで文章が作られる。


■ まとめると

これまでに登場したものを全部まとめると、次のようになる。


□ 置き換えルールで、「置き換えられる側」のもの
{<文章>,<主語>,<述語>}

□ 使ってよい言葉
{私は,あなたは,寝る。,食べる。}

□ 置き換えルール
{
<文章>→<主語><述語>
<主語>→「わたしは」または「あなたは」
<述語>→「寝る。」または「食べる。」
}

□ 最初の状態
<文章>


■ 一般的な表現では

毎回、上のように書くのは大変だし、厳密ではないので、記号を使って次のように書く。
===============
N = {<文章>,<主語>,<述語>}
Σ = {私は,あなたは,寝る。,食べる。}
P = {
<文章>→<主語><述語>
<主語>→わたしは|あなたは
<述語>→寝る。|食べる。
}
S = <文章>
===============
これら全部をまとめて、1つの形式文法と呼ぶ。

つまり、形式文法の教科書に必ず出てくる

形式文法 G = {N,Σ,P,S}

だ。


■ 用語


N = {<文章>,<主語>,<述語>}
最後に出てくる文章には含まれないので非終端記号(non-terminal symbol)と呼ぶ。
必ず、何か別のものに置き換えられる必要がある。(もちろん決められたルールに従って)。


Σ = {私は,あなたは,寝る。,食べる。}
最後に出てくる文章に登場する。
これ以上、別のものに置き換えられることはないので、これを 終端記号(terminal symbol)と呼ぶ。


● 置き換えルールの集まりであるP生成規則(production rule)と呼ぶ。


● 初期状態を表すS開始記号(start symbol)と呼ぶ。



■ さらにもう一歩


これまでの例では、<文章>→<主語><述語>というルールによって、生成される文章は必ず、主語が1つ、述語が1つ含まれるものだった。
文章生成のルールに、次のようなものを追加したらどうなるだろう。


<文章>→<文章><文章>


1つの文章は、2つの文章から構成されることを許容する。というルールだ。


この場合、<文章>に対して、2つの置き換えルールが存在することになる。

<文章>→<主語><述語> (ルール1)
<文章>→<文章><文章> (ルール2)


適用できるルールが複数ある場合、どれか1つ、好きな方をランダムに選択すればよい。


つまり、



<文章>
↓ (ルール1を適用)
<主語><述語>

私は寝る。


でもいいし、



<文章>
↓ (ルール2を適用)
<文章><文章>
↓ (最初の<文章>にルール1を適用)
<主語><述語><文章>
↓ (最後の<文章>にルール1を適用)
私は食べる。<主語><述語>

私は食べる。あなたは寝る。

でも、構わないわけだ。


このようにして、新しいルールを1つ追加するだけで、長さが自在に変化する文章を作り出すことが可能になる。



■ 補足

今回説明した文法は「文脈自由文法(2型)」と呼ばれるもの。文脈(それまでの分の構造)に依存せずに、自由に次の置き換えをできるため。



■ 関連エントリ
論文自動生成プログラムSCIgen - 大人になってからの再学習


マッチ箱の脳(AI)―使える人工知能のお話

マッチ箱の脳(AI)―使える人工知能のお話


ブルックスの知能ロボット論―なぜMITのロボットは前進し続けるのか?

ブルックスの知能ロボット論―なぜMITのロボットは前進し続けるのか?

論文自動生成プログラムSCIgen

人工知能がチューリングテストに合格したり、アメリカのクイズ番組で人工知能ワトソンが人間のチャンピオンを破って優勝したり、日本では大学入試で私大400校に合格できるレベルの人工知能が開発されたり、最近の「人工知能」に関する進歩は目覚ましいものがある。


少し検索すれば、ニュース記事を自動生成するプログラムの話や、アフェリエイトSEO対策のために数万規模のWebページを自動生成するプログラムの話などが簡単に見つかる。
一方で、GoogleはこのようなSEO対策のために自動生成された文章を見破るためのアルゴリズムを開発したりしている。すでに、人工知能どうしの戦い」は始まっていると言っていい状態だ。


人間の進歩はコンピュータの進歩の速度にはとうてい敵わないので、近い将来、人間の知能を凌駕するコンピュータが登場するのも時間の問題だろう。
医療、司法、政治、教育、様々な分野でコンピュータの言いなりにならざるを得ない、そんな時代が来るかもしれない。


最近では、論文のねつ造事件とあいまって、論文自動生成プログラムSCIgenが再び注目されるようになっている。
SCIgenは、マサチューセッツ工科大学で開発された、論文を自動生成するプログラムで、その論文が国際会議に採択された(まともな学術論文として受理された)として、大きな話題となった。


権威あると信じられていた学術分野の体たらくが露呈した、という文脈で紹介されることが多いが、SCIgenが、いったいどのようなものであるのか、どのような論文を生成するのか、その後はどのようになっているのか(論文が採択されたことが話題になってから、既に10年近くが経っている)、という周辺情報が少なくとも日本語では見当たらない。


そこで、調べてみた内容を以下にまとめてみる。


・SCIgenは図やグラフ、参考文献を含む、コンピュータサイエンス分野の論文の体裁をした文書を自動生成する。


・生成方法として「文脈自由文法」という形式文法を用い、ランダムな文章を作り出す。


・SCIgenが生成した「Rooter: A Methodology for the Typical Unification of Access Points and Redundancy」というタイトルの論文が2005 World Multiconference on Systemics, Cybernetics and Informaticsという国際会議に採択された。
(後に、この論文を採択した国際会議の運営責任者(科学者)は、その後3年間に渡って研究助成金を停止された)


・SCIgenが生成した論文は次のような体裁で4ページから構成される。外見だけでは、人間が書いたものと区別することが難しい。
PDFファイルが、次のURLからダウンロードできる:http://pdos.csail.mit.edu/scigen/rooter.pdf


・生成された論文は、個々の文章単独では問題のない文章であるように見えてしまう。全体でみると、統制の無いバラバラなものになっているが、「内容を理解できないのは私が無知なためではなくて、論文の方に問題がある」と断定するには、それなりの知識が要求される。査読の無い、フォーマットのチェックだけを行うような学会では到底見抜くことはできない。


・その後も、数多くの自動生成論文が、世界中の様々な学術会議、学会誌に採択され、2013年の時点では、少なくとも85の自動生成論文が、それなりに権威ある学会誌に採択されてしまっていることが示されている。


・研究者の能力を評価する基準の1つにh-indexという値がある(これは、ある研究者が世に出した論文が、どの程度、他の論文に引用されたか、という情報に基づく)。SCIgenによって自動生成された多数の論文間で互いに引用しあうことで、架空の研究者が相対性理論を発表したアルバート・アインシュタインよりも上位にランクインすることができた。


・SCIgenのWebページは次のURLで現在も公開されている。架空の著者名を入力するだけで、論文の自動生成を実験できる(数秒もかからず、あっという間に結果が見られる。ただしHTML形式)。
http://pdos.csail.mit.edu/scigen/


・SCIgenのプログラムコード(Perl)も公開されていて、誰でもダウンロードできる。


・公開されているSCIgenのプログラムコードはシンプルなもので、そのほとんどは論文でよく使われる単語のデータセットが占める。たとえば、単語は約8万、図の参照は3000程度。参考文献は実在しない文献を適当に生成している。



SCIgen のプログラムコード(データセットなど)を実際に見てみると、その一部分は他のプログラムで自動生成したもののように見える。
プログラムで自動生成したプログラムを使って文章を自動生成して、それを人間が読んでどうのこうの議論するというのは、なんだか奇妙な気分だ。


関連エントリ
[情報処理][人工知能]形式文法による文章生成 - 大人になってからの再学習
[人工知能]論文自動生成プログラムSCIgen(2) - 大人になってからの再学習


IBM 奇跡の“ワトソン”プロジェクト: 人工知能はクイズ王の夢をみる

IBM 奇跡の“ワトソン”プロジェクト: 人工知能はクイズ王の夢をみる