White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

なぜ彼は人工無脳を友達だと思ったか

ついかっとなって書いてみた。一部先日の記事と重複しています。あとで英訳してhacker's cafe blogにでも載せたい(もしくは訳して貼りつけて(ぉぃ)

Why did he think a bot is friend(by technical)

なぜ彼は人工無脳を友達だと思ったか


Few days ago, a blog entry was focused;"The people I've been friends with for ages on Twitter were bots"(twitterでずっと仲良くしていた人がbotだった).See also On Twitter, nobody knows you're a bot.On this entry, I talk about "Why did he think a bot is friend" by technical.

先日,twitterで〜というblogエントリが注目を集めた。詳しくはこちらを見てほしい。ここではなぜ彼が人工無脳を友達だと認識したのかについて、技術的に解説する


1.Turing Test and Chinese Room Problem

チューリングテストと中国人の部屋

There is a probrem called "Turing Test" and "Chinese Room".

Turing Test is a test which a person is man or computer. Chinese Room is a hole of Turing Machine.

チューリングテストと中国人の部屋という問題があります。前者はある人が本当に人であるか、それともコンピュータであるかを判定するものです。一方で中国人の部屋はチューリングテストの抜け穴とも言われるものです。


チューリングテストではまず仕切られた部屋に人が入ります。その部屋には少しだけすき間が開いていて、となりの部屋の人と筆談を交わす事ができます。ここで筆談を行い、相手が人間かどうかを判断します。もしこちらが相手と会話できれば、あなたは相手が人間であると感じるでしょう。逆に言えばこのテストに通れば、例え本当はコンピュータだったとしても人間だと思われるということになります。


チューリングテストに対処するには通常

  • 発言の意味を解釈する
  • 意味に基づいて返事を返す

というやり方が考えられます。しかしテストに通すことだけを考えればもっと簡単な方法があります。それは「ある文章Aが来たら文章Bを返す」というものです。これをよく表しているのが中国人の部屋です。


中国人の部屋では、会話ではなくこちらの文章を中国語に翻訳してもらいます。中国語に翻訳するのであれば特に意味を理解しなくても、辞書を片手に対応する文章を訳して行けばいいことがわかります。しかしこの時相手は中国語を理解していると言えるでしょうか。今回私が作った人工無脳はまさしく中国人の部屋と同じような応答をさせていました。


2.Twitter: makes turing test easy.


Twitter では人々は多くの人々と文章でやりとりをします。ここでは多少ノイズが入っていようと多くの発言の中に埋もれます。そのため容易にturing testが実行できます。


3.A simple/chiep coding.


今回私が作成した人工無脳は非常に簡素でいいかげんな実装となっています。

  • 既存の他人の文章を分解しマルコフ連鎖を起こす(単語レベルでランダムにつなげて出力する)
  • 一部応答に対しては返事を決めておく
    • おはよう->おはよう
    • ただいま->おかえり
    • つかれた->お疲れさま


これだけで人からは

  • 普段は適当なことを言っている
  • でもこちらが挨拶すると相手は挨拶をしてくれる

と見ることができるわけです。


4.Characterize

キャラクタ性を持たせることはとても重要です。日本では八百万の神とか擬人化とかいった名前で昔から物を人と見立てる事が頻繁に行われています。twitterで発言するとき、何の特徴の無い人よりも、ある程度特徴を持った発言やアイコンがあることでより人間らしく見えます。


今回私はそれほど注意は払いませんでした。なぜならばそもそも私はゲームのキャラクターをtwitterの1ユーザとして動かしたかったからです。


今回作成したキャラクターは「はま」という、アルトネリコというゲームのキャラクターです。このキャラクターは語尾に「なのよ」をつけるという特徴を持っています。そのため適当な発言でも語尾に「なのよ」とつければ「はま」っぽくなると考えました。


挨拶を自動で返すようにしたのは、もともと私が挨拶を1つ1つ返すのが大変な為にコンピュータに自動で返してもらおうと実装したものです。ちょうど「はま」を作っていたので「はま」に挨拶してもらうことにしました。


そして実際に作った結果、本当に人間であるとすら思われた訳です。


5.Important things:重要な事

よく人工知能では意味の解釈など細かいところを中心に研究されていますが、今回私はやってもらいたいことを中心に実装を進めていきました。もちろん意味等について追究して行くことは重要だと思いますが、人と一定の会話をする分には私のように簡単な実装で実現できることがわかります。


もしあなたが人工無脳を産み出すのならば、注意することがあります。人として振る舞わせたければ、決してbotなどと名前をつけてはいけませんし、ロボットのようなアイコンにしてもいけません。さらに毎回全く同じ反応を返してもいけません。もし人がやっていたとしても、毎回全く同じ反応ならば飽きてしまうでしょう。