エンジニアの中には、「技術一本で生きていきたい」と考える人も多いのではないでしょうか。しかし、特定の領域で卓越することは決して容易ではありません。
技術の進歩は速く、学び続けなければ取り残されてしまいます。企業の方針転換や市場の変化によって、自身の専門分野を活かせなくなる可能性もあるでしょう。さらに、研究や開発を長く続けるには、単なる好奇心やスキルだけでなく、困難な状況を打破する忍耐力や、周囲を巻き込むコミュニケーション力も求められます。では、高い専門性を持つ技術者たちはどのような信念を持ち、研鑽を積んだのでしょうか。
LINEヤフー研究所 上席研究員の岩崎雅二郎さんは、前職の株式会社リコー時代から現在のLINEヤフー株式会社でのキャリアに至るまで、25年以上にわたり類似画像検索の研究・開発を続けた人物です。その活動が評価され、2024年には厚生労働省の「卓越した技能者(現代の名工)」を受賞しました。岩崎さんに、これまでのキャリアや技術者として生き抜くための心構えを伺いました。
OSから検索技術へ。長い研究の旅路
――岩崎さんのこれまでの研究者としてのキャリアについて、概要をお話しください。
高校時代に趣味でプログラミングを始め、大学ではプログラマーのアルバイトをしていました。大学の研究よりもプログラミングのほうが面白く感じ、卒論や修論の執筆を退屈に思うこともありました。そこで、研究を続けるのではなくNECに就職し、汎用機のOS開発に携わりました。OSを扱うのが好きだったのです。
しばらく働いたものの、「より新しい技術を学びたい」と考え、退職。そして、大学時代のアルバイト先だったリコーの研究所に入りました。希望どおりOS開発に携わり、MachというOSの移植(ポーティング)を担当しました。しかし、当時その研究所でOSの研究・開発を担当したのは私が初めてだったこともあり、上司からなかなか評価してもらえませんでした。「成果が出ていないねえ」と言われてしまったのです。
――決して、最初から順風満帆ではなかったのですね。
そこで方向転換し、全文検索の研究に取り組むことにしました。こうして、私の検索技術のキャリアが始まったのです。研究はうまく進み、全文検索の技術を商品化し、「次は類似画像検索に取り組もう」という話になりました。もう25年以上も前のことです。
類似画像検索の技術は、「特徴量」と「検索」という二つの要素が重要になります。そこで、まずは画像特徴量(ベクトル)の研究・開発を進めました。これは後にMPEG-7に一部採用されています。そして、大量の画像に対応するため、木構造型のベクトル近傍検索にも着手しました。
しかし、社内のプロダクトに類似画像検索を導入しようとしても、適用できる場面がほとんどありませんでした。このままでは自分の研究を続けることが難しくなると考え、各社に売り込みを行いました。そのうちの一社がヤフーであり、私の研究は「Yahoo!オークション」に採用され、無事に商品化されました。
ちょうどその頃、ヤフーが研究所を立ち上げたタイミングでした。当時の私は40代半ばで、「年齢的に転職は難しいかもしれない」と思いながらも、ダメもとで応募しました。すると、採用が決まったのです。
ヤフーでは、グラフ構造型ベクトル検索の発案、Web類似画像検索VisualSeeker、汎用認識アプリmonotag、AIによる画像特徴量の抽出、ベクトル近傍検索NGT(Neighborhood Graph and Tree forIndexing High-dimensional Data)の研究やプロダクトへの導入などに携わり、現在に至ります。
成功の裏側には、数え切れないほどの試行錯誤がある
――研究者やエンジニアの中には、同じことを何年か続けると飽きてしまい、取り組む領域を変えるタイプの人もいます。岩崎さんが、特定の領域に長く向き合えたのは、なぜだと思いますか?
その答えはシンプルで、目の前に常に課題があったから。そして、その課題がいつも解決しがいのあるテーマだったからです。これは、企業に所属する研究者だったからこその利点かもしれません。事業やプロダクトの開発過程では、必ず何かしらの技術課題が生じます。その課題と向き合っていたら、飽きることなく何十年も研究を続けられました。
そして、私はプログラミング開発者というよりも、アルゴリズム開発者としての気質が強いのではないかと思います。もちろん、仕事の中でプログラミングは必ずしますが、その分野の第一人者と比べれば、私のスキルは決して高いとは言えません。では何が強みかというと、アルゴリズムやデータ構造をどう工夫すれば、より良いものになるのかを考えるのが好きなのです。自分の特性に研究内容が合っていたことも、長く続けられた理由だと思います。
――「アルゴリズムやデータ構造の工夫」の具体例はあるでしょうか?
たとえば、検索技術でよく用いられる手法にn-gramがあります。私も過去に、n-gramを用いて文書内の特定の文字列の出現を確認し、それをもとにインバーテッドインデックスを構築するという対応をしたことがあります。
しかし、日本語は英語と異なり文字の種類が膨大であるため、n-gramを適用するとインデックスのエントリー数が爆発的に増加し、当時のコンピューターでは実用レベルのパフォーマンスを確保するのが困難でした。
そこで、利便性を損なわずにパフォーマンスを向上させる方法を模索した結果、「1文字を構成するビット列の一部を間引いて符号化することで、インデックスのサイズを圧縮できる」というアイデアにたどり着きました。これにより、完全一致ではなく近似検索を行う形にはなったものの、検索精度を維持しながらインデックスのメモリ消費量を削減でき、大幅な性能向上を実現できたのです。
技術の進歩を細かく見ていくと、1つひとつのアイデアは実は平凡なものです。少しの工夫を日々積み重ねることで、大きなイノベーションが生まれます。こうしたアイデアは自分が思いつくこともありますし、世の中の誰かが考えたものを採用することもあります。
こうして簡単に説明すると、「新しいアイデアを取り入れるだけで、研究が順調に進む」ように思われるかもしれません。でも実際は、1つの改善を実現するまでに、裏で何十回も何百回も試行錯誤をくり返しています。時間をかけて実験や実装をしても、期待した性能が出ないことも多い。そんなことのくり返しですよね。ただ、その失敗を楽しめることも、研究者として重要な資質のひとつかもしれません。
学術的な知識と開発スキルは両輪。どちらか一方では成果は生まれない
――研究者は、学術的な知識と開発スキルの両方を習得する必要があります。どのようにバランスをとっていますか?
先ほどの話にも通じますが、私はあくまで「課題をどのように解決するか」から発想を始めます。その手段として、論文を読むのが効果的な場合もあれば、具体的な実装のテクニックを知るのが有効な場合もあります。その両方を分け隔てなく活用することで、学術的な知識と開発スキルのバランスは自然と取れてきます。
ベクトル検索についての具体的な事例をお話しします。以前、私が研究・開発していた検索のアルゴリズムは、どうしてもHNSW(Hierarchical Navigable Small World)というアルゴリズムにANN Benchmarksで勝つことができませんでした。いくら論文を読んでも、理由がわかりません。「なぜ、これほど速いのだろう」と思い、HNSWのソースコードを読んでみたところ、驚くような最適化が施されていたのです。
通常、プログラムを書く際にメモリのフェッチを意識することはあまりありません。コンパイラが自動的に最適化し、プリフェッチを行うためです。しかし、HNSWでは、明示的なプリフェッチ処理を記述することで、パフォーマンスを向上させていました。こうした最適化は論文には記載されておらず、実装を読まなければ気づくことはできません。
――世界には、さまざまなアイデアを思いつく方がいるのですね。
これに関する話をすると、ベクトル検索は世界中にライバルが多かったからこそ、高いモチベーションを維持できた側面もあります。ANN Benchmarksなどで負けると、「なぜあの人は、これほど性能の良いアルゴリズムを作れるのだろう。負けていられない」と闘争心が湧いてきます。ただ、最近はAIブームの影響でベクトル検索の研究者が増え、ライバルが多すぎて大変な状況ですけれど(笑)。
――他に、研究者として働くうえで心がけてきたことはありますか?
研究内容やその価値を外部にアピールすることでしょうか。これは、自らの反省を踏まえた考えです。過去には、自分の作ったものの意義を周囲から評価してもらえなかった経験があったわけです。それ以来、自分の取り組みが会社にどう貢献し、世の中にどのような影響を与えるのかを情報発信することの重要性に気づきました。さまざまな企業に出向き、技術を売り込んだのも、そうした活動の一環です。
また、私はベクトル近傍検索NGTをGitHubで公開し、極力英語で情報発信してきました。技術者は、社内の技術よりも社外の技術のほうが優れていると考えがちです。さらに言えば、国内だけの技術よりも、世界的に使われている技術のほうがレベルが高いと見なされることが多いですよね。そのうえで、ANN Benchmarksにてトップクラスの性能を実現しました。このような工夫もあって、多くの方々にNGTが認知され、広く利用されるようになったのです。
25年以上経ち、ようやく真の意味で実現した「類似画像検索」
――長きにわたり、プレイヤーとして第一線で活躍されている。研究者としては稀有なキャリアですね。
そうですね。こうして長く研究に打ち込めたのは、幸せなことです。実を言うと、もともとはリコー在籍時、40歳くらいの頃にはプレイヤーではなく管理職になっていました。その時期には、「自分が手を動かしてはならない」と決心していました。管理職としての役割に徹しなければならないと考えていたのです。
ところが、ヤフーに転職するとまたプレイヤーに戻りました。若い頃は、そんなことは絶対にできないと思っていました。私たちの時代は「30代後半になったらプログラミングなんて無理。技術はどんどん進歩するから、追いつけなくなる」と言われていました。だからこそ、リーダーやマネージャーになり、出世することがキャリアとしての成功の道だとされていたのです。
その道からは外れましたが、研究の成果を世の中から評価していただけたので、結果的に良かったのだと思います。今もこうして楽しく働けているので、結局のところ自分にはプレイヤーの方が合っているのかもしれません。
――昨今、AIやMLの技術が進歩して、社会実装が進んでいます。その流れを、どのように感じていますか?
いろいろな気持ちがありますが、何よりも「良い時代になった」と思います。私は前職時代に、類似画像検索の研究を始めるにあたり、企画資料を作りました。そして、技術の応用例として「ECサイトで類似した商品を検索する」と書いたのです。ただ、当時はまだまだ実用化にはほど遠いというフェーズでした。
その後、2000年くらいに「Yahoo!オークション」での導入が決まりましたが、特徴量抽出にはまだまだ課題があったのです。検索時のカテゴリーを絞ることで、なんとか実用できるようにしました。それが、直近の数年では深層学習により、特徴量の抽出技術とその特徴量の検索技術は劇的に進歩しました。私が25年以上も前に考えていた「ECサイトで類似した商品を検索する」というビジョンが、ついに真の意味で実現できたのです。感無量ですし、長く研究を続けて良かったと感じます。
――四半世紀越しの目標達成とは、まさに「長く続けたからこそ」実現できたことですね。最後に、この記事を読む研究者や開発者に向けて、キャリアのアドバイスはありますか?
私の場合、「自分は何を楽しめるのか」を大切に働いてきました。ですが、出世を目指す人もいれば、他の要素を重視する人もいるでしょう。いずれにしても「何を目指すのか」さえ明確にできれば、必然的に道は見えてくるはずです。
読者の中には「あなたは運が良かっただけだ。会社で働いていれば、やりたいことをやれる状況なんて、そんなにない」と思う人もいるでしょう。そんな方々に伝えたいのが、目指すキャリアを実現するためには、周囲へアピールすることも大事だということです。黙っていては、自分の仕事の意義を理解してもらうことはできません。
――岩崎さんらしいメッセージです。
ただ、このメッセージには悩ましい点もありまして。私の息子が去年就職したのですが、彼にはずっと「面白いことを見つけるのが一番だ」と伝えていました。でも、息子は「就職してしばらく経ったけれど、面白いことなんて見つからない」と言うのですよ。詳しく話を聞いてみると、息子は「面白いと思っても、すぐに飽きてしまう」とのことです。「それなら、会社でどんどん新しいことをやらせてもらえばいい」とアドバイスしました。
つまり、私は一つのことをひたすら続けるタイプですが、飽きたらまた新しい何かを探し続けるというのも、一つの生き方ですよね。私とは正反対のやり方ですが、その時々で面白いものを見つけながら進んでいくのも、悪くないのかもしれません。どんなスタイルであれ、自分に合った生き方を見つけることが大切なのでしょう。
取材・執筆:中薗昴
撮影:山辺恵美子