2018.05.29

WEBプログラミングでAIに触れる

AIに少し触れてみる。自己組織化マップ(SOM)とニューラルネットとシグモイドニューラルネット、遺伝アルゴリズム。

SOM(自己組織化マップ)のデモをjavascriptで作ったものが残っていました(デモ)。小学生でも分かる~のSOM解説サイトを見て作成しただけなので間違ってる部分は多いと思います。上が解説通りのもの。下が元データの並び替えバージョン。
あくまでただの興味本位で作ったものなのでその辺は宜しくお願いします。

ごく普通のWEBサイトにもAIを

「AI」つまり人工知能。テレビでは毎日の様に話題になっていますね。海外では市民権まで獲得した人工知能のお姉さんがいるようです。しかも言葉を使って人とコミュニケーションをするとか。人工知能同士会話させると人間が知らない言葉でお互い話し出したとか。
凄いですよね。って、ヒトゴトで済まされないでしょ!

そんな噂のAIについて少しは触れておきたいのが探究心でございます。

で、ちゃんと会話できるボットに出会った事あります?

英語はよく分からないので会話が成り立ってても分からないのですが、日本語なら分かる。一応、日本語を話すAIボットと言えばマイクロソフトのLINEbot「リンナ」。登録して試してみれば分かりますが、人間との会話には遠すぎる。相当曖昧に若者の会話として捉えればギリギリ成り立っているのかもしれないというレベル。市民権を与えられたAIを観ても「凄いですよね。」って感じるだけなのも普通なのでは。
それならば、なぜAIが騒がれるのか。
なぜならAIは、与えられたデータと人間の感じる答えの関係を導き出せる関数を作成できるから。これはつまり、複雑なパターンを大体記憶して未知の答えを導き出せるということです。
ではそのパターン(教師信号)は誰が出すのか。それは製作者。もしくはクライアント。偏った統計なら偏った答えを返すことを正解とするAIができる。100人中50人が本気で興味がなくて、1番のみにチェックを入れたアンケートシートを正解とするなら相当な確率で何がなんでも1番が正解。
だから、とてつもない人間の判定データを使ってAIに学習させれば、適当な答えも大方「これ、やっぱ違うだろ」と判断できる。

WEBサイトにAIをどう使うか

WEBサイトへ訪問する閲覧者はまず、目的がないとサイトへ入って何かアクションを起こすことはない。そのサイト運営者もほぼそういう意欲のある閲覧者しか相手にしない。
知識であっても購買意欲であっても、ページ内を巡回するユーザーや購入するユーザーを「正解」とするなら、その確率が高くなるサイト構成に変化させていけば、サイトに訪れる大体のユーザーにとって良いサイトになっていく。
かなり前に考えた方法ですが、まずGoogleのボットは外す。やり方によってはGoogleBotの好みに合わせるという方法もあるかもしれないけど、Google検索をスクレイピングし続けるとかまぁ無理。そして、ユーザーのページ推移数が多ければ多いほど良いという判定とし、GEアルゴリズムで様々なパターンを模索させながらお勧めのページへの誘導を強くしていく。SOMでそのページのベクトルデータを更新し、何かしらのグループであるというグループ分けをする。これによって、その時の流行や訪れるユーザーの質によって絶えず変化を続ける事になり、結果、良いサイトになるのではないかと考える。
試したことも実はあったりしますが、サイトも企画も運営も終わってたのでせっかくのGEも終わってました。そのうち、hanaCMSのプラグインを作ってみたいなぁとは思います。