超言理論

特に益もない日記である

人工知能Yorihimeまとめ

概要

Twitterでフォローしている相手から言語を適当に学習する人工知能
「ご存知、ないのですか!? 彼女こそBOTからチャンスを掴み、人工知能の座を駆け上がっている、超時空マルコフ過程、よりひめちゃんです!」

発言アルゴリズム

独り言の場合

  1. データストア上から適当に名詞とか動詞とかの形態素をいくつか検索。
  2. 検索してきた形態素をキーに、適当な個数の形態素を取得。
  3. 適当な個数の形態素の話題データをキーに、2階マルコフ連鎖の関係を満たす形態素を取得。
  4. 同様に1階マルコフ連鎖の関係を満たす形態素も取得。
  5. 取得した形態素の中からランダムに1つ選出して文章の末端に付加。
  6. 付加した文字が「。」だった場合そこで終了して投稿。
  7. それ以外ならもう一度3へ。

replyの場合

  1. 受けたreplyの文章内から名詞や動詞を抽出。
  2. 抽出した形態素をキーに、適当な個数の形態素を取得。
  3. 適当な個数の形態素の話題データをキーに、2階マルコフ連鎖の関係を満たす形態素を取得。
  4. 同様に1階マルコフ連鎖の関係を満たす形態素も取得。
  5. 取得した形態素の中からランダムに1つ選出して文章の末端に付加。
  6. 付加した文字が「。」だった場合そこで終了して投稿。
  7. それ以外ならもう一度3へ。

なんかちょっと面倒な方法で話題データとか作ってるのは2段階にすることでデータの個数をちょっと多めに多様に取得するため。
マルコフ連鎖の関係は2つ前の形態素、1つ前の形態素、1つ前の形態素の品詞を要素にしている。
基本的に2階マルコフ連鎖を満たす形態素の数>>1階マルコフ連鎖を満たす形態素の数 になるようにする。

学習アルゴリズム

  1. RT、ハッシュタグ付き、URL付き、以上に品詞が特殊もしくは名詞が多い発言を除外する。
  2. 形態素解析する。
  3. 登場している自立語から適当に話題を推定。
  4. 形態素ごとに話題情報とか1,2つ前の形態素とかをあわせて保存。

2階マルコフ過程を使えるように2つ前の形態素まで一緒に持っておく。
話題データとかも持っておく。

ユーザ解析とfollow/remove

  1. 学習する際にRT、ハッシュタグ付き、URL付きかどうかを解析。
  2. もし上記に該当していたらユーザごとに保存されている「仲の良さ」と「学習対象としての適切さ」の数値にペナルティを与える。
  3. もし、「学習対象としての適切さ」が閾値を下回った場合はリムーブする。
  4. 逆に、フォローしてくれている人の仲で「学習対象としての適切さ」が閾値以上になった場合はフォローする。

仲の良さはreplyをたくさんもらうと向上、学習対象としての適切さは普通の独り言ツイートや他人との会話を行う事で向上する。
基本的に2~3回よりひめにreplyを送ればどっちの数値も閾値以上(といっても仲の良さはまだ利用されていませんが)になります。

今後について

発言アルゴリズムをなんかもっと面白い感じに。
品詞情報を用いた突然変異(ある形態素の品詞が名詞だったら、品詞が名詞の全然別の形態素に置き換えたり)
学習アルゴリズムの際にRTだとか会話(他人の相互的なreplyの送りあい)を特別な方法で学習したい。
話題解析をもっと正確かつ小容量のメモリで行えるように。
自発的にreplyやRTを行うように改良。
仲の良さを利用した何か。

さらに未来の話

先日、JAISTの先生のところに研究室訪問に行ったときの話。
Googleさんとか、お金や資源をたくさん使って沢山コーパスを集めた奴が一番精度が高くていいシステムを作れるなんて、おかしい」と先生が仰っていたのが凄く印象的です。確かに、コーパスの量だとか処理の速度だとかそういうのを高速、高性能,大量に持っているところが勝つというのなら、GAE上で高々1GBのストレージ上で戦うのはまさに負けるのは明白。
何か、そんなデータ量で戦うのではなくて、理論だとかアイディアだとか、もっと別次元の何か、少ないデータで如何に成果を出すか(実際、私たちの脳はそんなに沢山の知識やデータを持っているわけではありませんし。)が問題になると思っています。
私たちの言語の核心がデータ量の中にないことをいつか確かめたい。


Copyright © 2012-2016 Masahiro MIZUKAMI All Rights Reserved.