どうもー。
VIVITAでソフトウェアエンジニアをやってる山森です。
これは私の過去の仕事の紹介記事です。
ついでに扱っていた技術もちょっと紹介しているので、たぶん技術ブログです。
新しいコンセプト
弊社は昔、子ども向けにカメラをつくるメーカになりそうだった時期がありました。
子どもたちが日々の発見や出会いを記録して、そこからコンテンツが育まれるようなプラットフォームを構築したい。その入り口には、未来の文房具としてノートや鉛筆のように自由なデバイスがあるべきだ。
ちょっとうろ覚えですが、こんなコンセプトのデバイスだったと思います。
幽霊みたいなアシスタント
私が主に取り組んだのは、気の利いたAIアシスタントの部分でした。
当時は、今ほどAIアシスタントが広く認知されていなかったように思います。
存在はしていたけれど、活用するイメージが共有できていなかったくらいの時期です。
デバイスについて詳細な説明などはなかったので、AIをつかって一番賢いカメラを作るくらいの認識で着手しました。
まずは、iPhone 6 Plusで意識して写真を撮ってみることから始めたような気がします。 カメラを使う人が何を感じているのか全く想像できなかったので、自分の中に利用者の気分をモデル化したかったんだと思います。 気付いたらSONYのa6000を買っていたし、今はa6500を使っています。
哲学というと大袈裟ですが、とにかく何か芯になるような思想を掴みたかったんですよね。
自分でカメラを使ってみて気づいたこと
実際に使ってみると、基本的には通勤中に見かける動植物を撮ることが多かったです。 たまに、休日に自転車で遠出をすることもありましたが、撮るものはそれほど変わりませんでした。 たぶん、習慣化した日常に何か寄り添う機能が必要なんだろうな、と思いました。
ちなみに、上記の習慣は今も続いています。 文章を書くときに参考にするデータベースの構築が目的になっています。 時期と場所からキーワードを取り出して、写真で雰囲気を確認できるようにしています。 空間の雰囲気を描写するのに、ちょっと便利です。
あとは、実際に子どもたちが使えば、友だちと遊びにでかけるような状況が加わるかもしれません。 あるいは、週末に家族と何処かへ出かけるとか、平日でも晩ごはんの買い物についていくとか、もっと利用の状況は多様になるはずです。
とりあえず、数ヶ月ほど続けてみると色々気が付くこともありました。
- 撮った動植物の名前が何か分からない
- 撮った写真にリアクションがあると嬉しい
- コミュニケーションが生まれるとモチベーション上がる
- 毎日通るところで小さな変化が見えるようになる
- 景色の旬を逃すと出来ることがない
- 良くも悪くも目で見た色と一致しない
- 綺麗な写真は簡単に撮れたり撮れなかったりする
- 構図は良い感じなのに色がイマイチな写真がたくさんある
- 撮りためた写真を活用しようとすると見つからない
- 写真はこまめに整理しないと必要なときに取り出せない
- etc
とても個人的な話になりますが。 たまたま知り合った女の子が植物に対して造詣が深くて、あれやこれやと今までに見かけた植物に関する雑学を聞くうちに、一緒に植物園に出かけたりするようにもなって、そういうの超テンションあがったんですよね。 だから、利用者の体験を考えるにあたって、これは反映していこうと思っていました。
あとは、漠然とですが。 写真を撮る道具にはせず、メガネのような存在感を目指した方が良いのかも知れないな、という感覚がありました。 直接目で見た方が良いものは写真に撮る必要がないし、見えてなかったものが見えるから使うものにするべきなのかな、と思ったので。
ソフトウェア全般で感じていたこと
カメラとは別に、ソフトウェア全般では既に感じていたことがありました。
特にスマートフォンのアプリの関して強く感じていたのは、利用者から見て使用感に一貫性が無い、ということでした。 各プラットフォームにデザインのガイドラインはありますが、カメラ機能ひとつとってみても使用するアプリはバラバラでしたから、その使用感も似ているようで違っていました。 ホーム画面に戻っては、違うアプリを立ち上げて、対象の画像を読み込んで。 繰り返すほどに煩わしく感じていました。
利用者の頭の中に独自の世界観を展開したいようなエンタメ系のアプリであれば、それも良いと思います。 でも、道具として使用されるアプリの場合、作業が滑らかに繋がっていない状況は煩わしいものです。 だから、アプリとして閉じたパッケージではなく、APIのように機能を配信できるようにして、ミドルウェアが機能ごとの操作感の違いを吸収するような構成が作りたいと思いました。
これは師匠の受け売りでもありますが、 これから新しくサービスを開発する際には「幽霊みたいなUI」にしたいと考えていました。 普段の生活において気づかれないような、便利さが無意識に浸透する状態をゴールとして考えました。
また、当時は「気が利く」を機械に再現させることが個人的な研究テーマでした。 幽霊みたいなUIにもつながるのですが、基本的には言葉にせずとも意図に気が付いてくれるシステムを作りたい、という思いが強くありました。 昭和のドラマに出てくる駄目な亭主を支える奥さんの姿は理想に近いかもしれません。 現在、それを人間に期待すると炎上しそうですが、機械に期待する限りにおいて何か言う人はまだいないかな、と思います。
理想像
もちあるく
通知で未発見の「何か」がいることを知らせてくれる。
のぞく
写したものが何なのか教えてくれる。
対象の時系列の変化が確認できる。
図鑑へのアクセスが示される。
ためる
状況に合わせて画像は良い感じに補正される。
新しい発見は自分史に自動筆記される。
自然科学系の調査にオープンデータとして提供できる。
みせる
最近の発見がタイムライン的に表示される。
客観的に珍しい発見が強調される。
居合わせた人を認識して、その人の興味に近いものを優先する。
見せているモノに関係したコンテンツへのアクセスを引き寄せる。
目標
以上のような体験を滑らかに繋げるアシスタント!
しくみについて
基本的には簡単化して載せているので、厳密ではありません。
個人的にポイントだったような気がする3つの要素について、雰囲気で紹介していきます。
入力信号のベクトル化
あとで説明する機械学習の仕組みに流し込むためには、センサからのデジタル信号を数値配列に変換する必要があります。 入力する信号の形式によって操作は異なるのですが、基本的な考え方は一緒です。 時間も位置も加速度も音声もテキストも、それぞれの意味的な関係性が保存されるような数値化を目指します。 位置座標のように計算で距離が求められるようになっていると理想的です。
自己増殖型ニューラルネットワーク
今回の企画で一番人工知能っぽい部分です。 ある時点の入力と操作を収集したデータセットを使って、○○な状況だったら□□するみたいな経験知を機械に教え込みます。 入力が事前にベクトル化した外界からの刺激、操作は利用した機能の名前とかになります。
詳しい仕組みは省きますが、特定の手続きに従ってノードの挿入・接続・削除を繰り返していくと、ノードが集まってできたグループに適切な反応が蓄積されていくような、そんなイメージで利用していました。
マルコフ連鎖
人間が書いたみたいな文章を機械で生成したい、という処理でよく利用されるアルゴリズムです。 「○○が来たら、次は□□に来る確率が△△%で……」みたいなデータをたくさん集めて、状態遷移をモデル化していきます。 そうすると、「AがきてBがきたら、次はCだ」とか「YがきてEがきたら、次はSじゃないか」みたいな予想ができるようになります。 これを、デバイスの状態や利用者の操作をラベル化したログデータに使えば、習慣化したような操作の自動化とかにつなげられるんじゃないかな、と思っていました。
この企画はどうなったの?
実はこれ半分くらい入社前の話なんですよね。 大学を卒業してから、決まった職に就くでもなく、研究室に所属していた頃と同じように興味で開発を続けていました。 この企画も師匠から「山ちゃん、AIとか興味ない?」って聞かれたところから始まりました。
話を聞いた感じが面白そうだったので、婚活パーティの司会やライブ会場の設営などのアルバイトをしながら、半年くらい黙々と開発を続けてました。 状況の分類がそれなりに動作するようになって、そろそろフルタイムで取り組めるようにしたいなと師匠に相談したところ、企画と試作したプログラムを会社にプレゼンすることになりました。 そしたら、なんとなく入社が決まって、今に至ります。
企画そのものは2016年の事業内容の見直しの中で保留になってしまいました。 でも、この企画があったから、定職にも就けず社会不適合者に片足つっこんでいた自分が、VIVISTOPで子どもたちと未来について考えているんだ、と思うとじわっと感慨深いですね。
おまけ
過去の資料からスライドの一部を抜粋。