ここ数年、日本では企業のエイプリルフール企画が盛り上がりを見せている。

多くの企業がリリース予定のない製品やサービスの発表に工夫を凝らしているなか、”嘘のようだが本当に使えるサービス”を公開している企業がある。それが、Google Japanだ。

「日本語入力」をテーマに毎年ユニークな製品を提案しているが、今年はキーボード上で指を滑らせて文字を描くと、その文字が入力できてしまうという「Gboard 物理手書きバージョン」をリリースし、ネット上を賑わせた。

「Gboard 物理手書きバージョン」の紹介サイト

Googleの開発者ブログで公開されているとおり、高度な技術が詰め込まれた同アプリケーション。データ収集方法や入力内容を認識させるための工夫は、ディープラーニング活用の参考事例にもなるだろう。

もはや”ユーモア”の域を超えたプロジェクトの裏側にある熱意と苦難を探るべく、本誌は、開発を担当した三浦氏、飯塚氏、島津氏、小松氏にお話を伺った。

左から三浦 健氏、飯塚 修平氏、島津 真人氏、小松 弘幸氏

熱意あるメンバーが自然に集まって議論

―― みなさんの普段の業務内容を教えてください。

三浦氏: Brand Studio APACというチームで、「Womenwill」や「Innovation Japan」など、主にプロダクト以外のWebサイトの制作に関わっています。エイプリルフール企画もその一環として、これまで7〜8年くらい担当してきました。

飯塚氏: 私も三浦と同じチームで、普段はUXエンジニアとしてWebサイト制作を行っています。今回の物理手書きバージョンでは、サイトの制作や機械学習の実装を行いました。

島津氏: Chromeブラウザチームのソフトウェアエンジニアとして働いています。普段は日本語入力チームとは関わりはありませんが、googleのエイプリルフール企画は大学生時代からずっと見ていて一緒にやりたいと思っていたので、前回の企画からエイプリルフールチームに入っています。

小松氏: 私はGoogle日本語入力チームのソフトウェアエンジアとして文字入力アプリ「Gboard」の開発に関わっています。エイプリルフールには一番始めの企画から参加しています。

―― 今回の企画の経緯を教えてください。

飯塚氏: 毎年10月ごろになると、エイプリルフールチームが自然発生的にできるんですよ。まずは、日本語入力の課題を解決できるプロダクトのアイディアをホワイトボードにひたすら書きつらねていくところから始まります。

―― 募集や告知があるわけではなく、自然にメンバーが集まってくるんですね。

小松氏: エイプリルフール企画を始めた2010年は4-5人のチームだったと思いますが、今年は9人でした。多少のメンバーチェンジはありますが、毎年熱意を持った人たちが集まって議論しています。

三浦氏: 9年目にもなるとみんなわかってきていて、議事も効率的に進行するようになりましたね(笑)。そもそも、業務時間の合間を縫ってやっていることなので、ダラダラ議論するわけにもいかないのですが。

―― 初めはどれくらいの案があったんですか。

飯塚氏: キーワードしかないものまで含めたら、100~200程度のアイディアが出てくる年もありますが、今年はやや例外的なところがありました。物理手書きキーボードのアイディアがずば抜けて輝いていたので、早い段階で物理手書きキーボードの開発に向けて舵を切ったんです。

島津氏:「キーボードの再発明」というキーワードが出たのをきっかけに、その案をどう膨らませていくかということが議論の本筋になりましたね。

小松氏: いろいろなアイディアが出てきますが、毎年きちんと動くものを作ろうという方針で取り組んでいます。

エイプリルフールに公開するのでコンセプトのみの発表だと思われがちですが、私たちは「きちんと動くものをたまたま4月1日に公開しているだけ」というスタンスです(笑)。

でも、いや、だからこそ、しょうもないものをリリースするわけにはいきませんので、毎年しっかりと作り込んでいます。

プロトタイプは2週間で開発

―― 開発者ブログで紹介されているGboard 物理手書きバージョン開発の工夫は、ディープラーニングの事例としても非常に参考になるものだと思います。

飯塚氏: 今回は一から訓練データを収集する必要があったので、データ収集に貢献してくださる方のUXがまずは大切だと考えました。

シンプルなインタフェースでありながらも、できるだけ多くのデータを入れたくなるような仕掛けをさまざまなところに設置したり、間違って入力したデータをすばやく見つけて取り除けるよう、きちんと入力されていることがわかるようなフィードバックを与えるようにしたりなど、いろいろと工夫をしています。

単純な手書き文字認識であればデータセットはたくさんあるのでそれを転用すれば良いのですが、ここまで低解像度の文字認識のデータセットは世の中にはないので、今回はデータを準備するところから始めたというわけです。

―― ブログを読むと、前処理として収集したデータを画像情報に変換されていますが、これはなぜですか?

飯塚氏: いろいろと試した結果、この方法に落ち着きました。はじめはキーボードのキーの位置の時系列データをそのまま利用しようと考えていたのですが、位置をうまく取り込むことができず、精度を上げるのが難しかったんですよね。

もっと良い選択肢が他にあったのかもしれませんが、限られた時間の中でいちばん精度が得られる方法は、画像情報に変換する方法だと判断しました。

三浦氏: 文字を画像として扱うこと自体はそれほど不自然なことではありませんが、キーボードという(描画入力向けとしては)著しく分解能の低いもデバイスにおいて、どのように文字の特徴を捉えるかという点が難しいんです。画像はただの画像ではなく、特徴を上手く引き出せるような2次元上のデータにしているというイメージです。

飯塚氏: 画像は、文字を構成する線を8方向に分解した8つの方向分解特徴と、時間変化を表した2つの特徴を描画した合計10チャンネルからなります。この10種類の画像をひとつのストロークから生成するようなプロセスを使っています。

例えば、「ほ」だと、4画目の左から右への線が、2画目または3画目のいずれかと重なってしまうため、「は」と「ほ」は方向分解特徴だけではほぼ見分けがつかなくなってしまうという問題があります。

でも、それぞれの画がどのタイミングで書かれるのかという情報があれば、「ほ」と「は」を区別することができます。こうした時間的な変化を表した特徴を加えたことで、さらなる精度向上を実現しました。

―― 開発期間はどれくらいだったんですか。

飯塚氏: アイディア出しを始めたのは10月だったので開発期間は約5カ月ですが、プロトタイプは1-2週間で作成してみんなで議論できる状態にもっていきました。その後の4カ月程度は精度をあげるためのチューニングや、技術の見せ方などについての議論に費やしました。

三浦氏: プロトタイプの開発には、アイディアが本当に実現できるかどうかというテスト的な意味合いもあったので、他の案を出しているなかで進めていました。ただ、小さなデータではありましたが、プロトタイプの段階ですでに6-7割の精度は得られていたんですよね。

小松氏: 打ち合わせのたびにレベルアップしていきましたよね。

飯塚氏: プロトタイプで感触が得られたので「これでいこう」と。ここでうまくいってなければ、別のアイディアに切り替えてたかもしれません。