2007年、サイボウズ・ラボ株式会社に入社。 小学校5年生のときに懸賞で当選し「TRS-80」を入手して以来、ゲームを動機にプログラミングにのめり込む。40代を迎えた今もゲーム好きは相変わらずで、家族からは「ゲームは1日30分」と言われているとか。gihyo.jpにて「機械学習 はじめよう」を連載中。
あるとき中谷は、山本泰宇(※1)から次のような相談を持ちかけられた。「ガルーンの全文検索で言語を選べるようにしたい。とりあえず10言語をサポートする。ついては、言語を判定するライブラリを探してくれないか。もし良いのがなければ作ってほしい。ただし、作るときはオープンソースでよろしく」。
さっそく調べてみたところ、ガルーンの用途に合ったものが見つからず、中谷は自ら作ることを決断する。
とりあえず最初のプロトタイプは、Rubyで一週間ぐらいで作りました。これでも90パーセント以上の精度は出たので、あ、これはイケる、と。もし作るならJavaでという指定だったので、そこでJavaに切り替えて本格的に作り始めました。メインのプログラム自体はたいして大きくないので、2、3週間ぐらいでできてしまいました。でも、そこからデータを集めるのに2、3カ月はかかりましたね。
機械学習では、モデルをどうやって作るかが重要です。モデルのところに、自分の知識とか前提とか、欲しい答えとか、全部そういうものが反映されてしまうからです。モデルをどう設計するかというところで、データや対象ドメインに対する知識がものすごく要求されることになります。これがないと、どんなに最新の複雑な手法を知っていても、まったくいい結果が出ないことになります。
そのため、この開発プロジェクトでもっとも苦労したのは「自分が対象言語を理解すること」だったと中谷は言う。アラビア語を扱うのに、自分自身がアラビア語についてまったく知らないわけにはいかないからだ。
本業をやりながらだとそのアイデアを実現する時間がなかなか取れないそんなジレンマに悩んでいたとき、偶然、サイボウズ・ラボの募集広告を目にすることになる。
毎週水曜日に行われている社内の機械学習勉強会は、中谷の発案で始まった。
同じ研究室で、時期的にもかぶっていたのですが、実は、サイボウズ・ラボで顔を合わせるまでお互いがお互いを知らなかったんです(笑)。
いろんなことに興味をいだく一方、それ以外のことはあまり目に入らないということか。そんな二人が揃ってサイボウズ・ラボに所属することになろうとは何たる偶然。毎週水曜日のお昼に、機械学習勉強会で楽しそうに議論する二人の姿を見るにつけ、人生における進路選択の妙を思わずにはいられない。(編集部)