人と人。人とAI。AIとAI。壮大なデザイン

これからは、「人と人、人とAI、AIとAI」が相互にコミュニケーションをしていく時代がきます。というか、もうすでにきています。

それを説明していきます。実際に僕が作っているAIスケジュール管理アプリ(OnefuncPlan)を具体例に書くので、分かりやすいと思います。


まずいきなりですが、マルチエージェントシステムという概念を説明します。

マルチエージェントシステム

マルチエージェントシステム(Multi-Agent System、MAS)とは、複数のエージェントから構成されるシステムであり、個々のエージェントやモノリシックなシステムでは困難な課題をシステム全体として達成する。
それぞれ異なった判定アルゴリズムなどの特徴(キャラクタリスティック)を持ったエージェントモデルを用い(よってマルチエージェントと呼ばれる)、複数かつある一定以上のエージェントを多数設定し、人工社会を構成しそれぞれ特徴の異なったエージェントの相互作用をシミュレーションするシステム。


以下はエージェントの動作概要。この動きをそれぞれのエージェントで行います。この図の動きが人分、AI分だけ存在していると考えてください。

僕はAIスケジュール管理アプリ(OnefuncPlan)を作っていて、そのアプリでAIが予定調整をする機能を提供しています。
予定調整は単に空いている時間を擦り合わせるのではなく、それぞれのスケジュールや習慣を学習したAIが「候補日時」への「投票」によって行います。

マルチエージェントシステムの文脈では、OnefuncPlanを使うそれぞれの人、AIがエージェントに当たります。

少し汎用的にした図です。

上の図を参考に、もう少し詳しく実際のOnefuncPlanの挙動を解説すると、

1, 情報取得(予定名、開始時間、終了時間)

2, 行動(情報を解釈して、最適な時間を投票)

3, 結果を学習(投票結果が出たらスケジュールに追加。結果を学習)

という流れです。
OnefuncPlanでは「2, 行動」の際に、自分(エージェント)にとって最適な候補日時が存在しない場合は、最適な候補日時をさらに追加できます。

追加はAIが自動で行えますが人が手動で行うこともできます。

候補日を追加した場合は、別な人(エージェント)がこれと同じこと再度「1, 情報取得」から同じ行動をします。その結果、お互いに都合の良い日時を見つけることができ、尚且つ、全て自動で行える。そういった自動調整機能です。


上にサラッと書きましたが、「AIが自動で投票を行います」これは「投票」という作法を用いたコミュニケーションであって、投票がコミュニケーションのプロトコルと言えます。
投票の仕組み自体は歴史があり、検索すると色々と出てくるので、検索してみてください。面白いですよ。行動経済学です。

ここではOnefuncPlanで利用している投票形式のみについて説明します。


投票の仕組み

ボルダ得点

ボルダ得点(ボルダとくてん)は、投票者が選好順序に従って候補にランク付けをする、一人勝者選挙方式である。
ボルダ式得点法では、各々の候補に、有権者が付けたランキングの順位に対応した特定の点数を与えることによって選挙の勝者が決定される。いったんすべての票が集計され、もっとも得点の高い候補が勝者となる。ときに、多数派に好まれる候補よりむしろ、幅広い人が受け入れ可能な候補を選ぶことがあるので、ボルダ式は、多数決主義の選挙制度ではなく、世論の一致を重視した選挙制度だとしばしば言われる。

一言で説明すると、候補にエージェントそれぞれが「点数」を付けます。その点数が高い方が勝ちです。日本で行われる普通の選挙とは違いますね。

OnefuncPlanに当てはめると、候補日時の点数の集計結果が一番高い数値の候補日時が予定日になります。

もっと具体的にいうと、AIが今までのスケジュール学習結果を元に、その候補日時に点数を付け、その点数が「投票」という意味になります。
例えば出席できない日は0点で、一番都合の良い日は100点の様に点数で表現します。

他にも投票の作法(デザイン)はあるのですが、このボルダ方式はwikipediaにあるように「多数派に好まれる候補よりむしろ、幅広い人が受け入れ可能な候補を選ぶことがあるので、ボルダ式は、多数決主義の選挙制度ではなく、世論の一致を重視した選挙制度」な点が個人的に気に入っていますし、おそらく殆どの人は、これが良いと思うはずです。

その理由を説明します。

図で説明します。新機能の打ち合わせ会議(30分ほど)の想定の予定調整です。

上記の図は、わかりやすいですね。「2月1日の14時」がベストです。全員が出席できるし、一番点数が高い。
午前中は忙しいみたいですね。


次の投票結果だった場合はどう思いますか?

結果的にボルダ方式では「2月1日14時」になります。
ですが、「2月1日13時」「2月1日14時」の二つを比べてみて下さい。「13時もありじゃない?」と思う人がいると思います。

もっと具体的にいうと、「近藤が社長」「工藤と佐藤が平社員」だった場合、最近流行りの忖度が発生する可能性があります。その忖度した結果は「2月1日13時」ですね。

AIに任せた投票というか、ボルダ方式では、こういった状況で忖度しません。

ある一定のルール(デザイン)に基づいて結果を出します。
このルールは個人的に好きです。エージェントそれぞれが同じ立場です。


OnefuncPlanで候補日を追加できるとは以下の状態を想定できます。例です。

上記の図の場合は、工藤が新規に候補日時を追加します。他の人は工藤のスケジュールを知りませんからね。
また、OnefuncPlanでは誰が何点だったかは表示しません。プライバシーの問題があるので、相手のスケジュールは見れません。

また、このAIがする計算は端末側のアプリのみで行います。Onefuncのサーバは点数だけをやり取りします。


長くなってきたので、ここでやめますw


言語だけじゃないコミュニケーション

大雑把にAI同士がコミュニケーションするとは単に「言語」を使うのではなく、「特定のプロトコル(手段、手順)」であれば何でもコミュニーケーション可能ということが伝わったと思います。

これからは人と人はもちろん、人とAI、AIとAIもコミュニケーションしていく時代になると確信しています。僕はマルチエージェント社会と呼んでいます。


また、これからの時代はコンピュータ(機械)を単なるタスク、コントロールできるモノとしてではなく、マネージメントしていく存在になり、それはつまり自分の代わりにもなる「エージェント」としても意識していく必要があると思います。
それをできる方が「効率的」で、生産性が高い人間になります。なにせ自動なので。
もちろん慣れが必要だと思いますが、それをできるだけ速く慣れてもうように解決するのが僕ら開発者であり、デザイナーであり、サービス提供者です。

AIにこそデザインが必要です!それがテクノロジーが社会に溶け込むインターフェイスでもあります!

壮大なデザインの話でした!