テクノロジー

「美味しい!」を支えるのは、機械学習の技術。Rettyが織りなすデータ解析の世界

「信頼できる人からお店探しができる」をコンセプトに、オススメしたい飲食店の口コミを投稿・閲覧できる日本最大級の実名グルメサービス「Retty」(https://retty.me)。読者の中にも、「飲食店を探すとき、よく利用している」という方は多いのではないでしょうか。

実はRettyの“便利さ”は、機械学習の技術に支えられています。たとえば画像解析により、投稿された写真を「料理」「店舗外観」「店舗内観」「メニュー」の4つに自動分類したり。自然言語解析により、店舗や料理の口コミから料理名を抽出したり。私たちが何気なく利用しているサービスの裏には、高度なデータ解析技術が光っているのです。

これらの技術はどのようなプロセスを経て導入され、Rettyの機能をいかに改善してきたのでしょうか。同サービスを開発・運営するRetty株式会社で機械学習に携わってきたソフトウェアエンジニア・氏原淳志さんに、その道程を聞きました。

原点は、たまたま目にしたTensorFlowのチュートリアル

image1

――氏原さんは、Rettyに入社する前から機械学習を専門にしていたんですか?

氏原:いえ。実は私、もともとは機械学習のエンジニアではなかったんです。前職ではサービスのバックエンドを担当しており、小売り業などの基幹システムを開発していました。機械学習に触れるようになったのは、Rettyに入社してからです。

――機械学習を業務で扱うようになったのはなぜ?

氏原:Rettyには、業務時間の10パーセントを自由な技術学習に割いてよい制度があり、それを利用してGoogleの機械学習ライブラリであるTensorFlowについて勉強し始めたんです。

TensorFlowはチュートリアルが数多く用意されており、その中にCIFAR-10という画像識別のAIを開発するためのチュートリアルがありました。そのサンプルコードを読んでいるうち、「これを使えば、Rettyに投稿された画像をAIによって分類できるのでは」と気づいたんです。

――それが、RettyのシステムにAI画像解析を導入するきっかけになったと。

氏原:そうなんです。当時は、画像の分類作業を人間の目視に頼っていたため、多くの時間と人的コストがかかっていました。その課題を解決できればと思ったんです。

しばらく研究を続け、その結果をCTOの樽石に見せたら「よし! 氏原さん機械学習をやってみてよ!」と勢い良く背中を押してくれ、機械学習基盤をつくってくれました。そこから、機械学習に本格着手し始めたんです。

画像識別技術を支えるのは、膨大な量のトライアル・アンド・エラー

image2

▲Rettyは、2017年7月より本社を麻布十番に移転。本インタビューは、その移転記念パーティーの日に実施された。グルメサービス・ベンチャーらしく会場には数えきれないほどの料理が並べられていたが、中でもとびきり美味しそうだったRettyケーキをパシャリ。

――画像認識技術を実用化レベルにまで到達させるには、どのようなことが大変でしたか?

氏原:ディープラーニングにおいて、画像認識の精度を上げるための「パラメータ設定」の難易度が高かったですね。

――パラメータ設定とは何ですか?

氏原:ディープラーニングは従来の機械学習の手法と異なり「大量のデータをインプットすれば、それらが持つ特徴をコンピューター自身が自動的に学習してくれる」という利点を持っています。

しかし、それだけでは実用レベルの精度まで到達させることはできません。精度を高めるには、「データのどの特徴を重視し、どの特徴を軽視すべきか」の設定を開発者自身がチューニングしていく必要があります。これがパラメータ設定と呼ばれるものです。

――チューニングのために、どのような手法を用いるのですか?

氏原:たとえば、ドロップアウトという手法があります。これは、ディープラーニングの学習に参加しているニューロン(ディープラーニングの各層における、人間の脳のニューロンに当たるもの)をランダムに数%だけ欠落させるという手法です。

これにより、ディープラーニングの「過学習(※)」という現象を防ぎ、未知のデータへの判断力を向上させることができます。

※…ディープラーニングは、放っておくとインプットのデータを「丸暗記」してしまいます。そうなってしまうと、既知の問題には正答率が上がるものの、未知の問題にはむしろ正答率が下がってしまうのだとか。その状態が「過学習」であり、それを避けるための手法の1つとしてドロップアウトが用いられます。この手法により、欠落のある複数のデータからディープラーニングが一定の傾向を見出そうとするため、「データそのもの」ではなく「データが持つ特徴」を学習するようになるのだそうです。

それから、前のニューロンから送られた値に対して一定の演算をした上で後続のニューロンに渡してやる「活性化関数」という手法も用いています。これは、たとえば「データの持つ特定の値が○○以上であれば使うけれど、それ未満だったら使わない」といったように、値の閾値を決めるような目的で使用されます。

――おおお、これは高等数学の世界ですね……。

氏原:こうした最適化のための手法が数えきれないほど存在しており、それらを用いて各パラメータをベストな状態までチューニングしていくのが、データ解析を担うエンジニアの役目になってきます。

ディープラーニングはまだまだ発展途上の技術ということもあり、最適化の作業にはマニュアルのようなものはありません。パラメータ変更をし、その結果を変更前と比較しながら、膨大な量のトライアル&エラーをくり返していくしかないんです。

――気が遠くなりそうな作業……。私たちが何気なく利用しているサービスは、エンジニアの職人技によって支えられているのですね。

口コミ投稿を自然言語処理し、「○○に向いている店」を自動判定

image3

▲Rettyでは、エンジニアがいつでも好きなだけ定額でGPUを使える環境を整えるため、クラウドではなくオンプレミス(自社所有)サーバを選択している。また、可能な限りコストを下げるべく、GPUワークステーションではなく汎用PCに数万円のGPUボードを載せたものを使用しているのだとか。

――Rettyでは画像認識だけではなく自然言語処理も活用しているそうですが、この技術はどのような機能に使われているのですか?

氏原:たとえば、Rettyでは『宴会・飲み会』『デート』といったように店舗の「目的・シーン」による検索ができるんですが、店舗情報と目的・シーンを紐づける作業(例:雰囲気の良い店に、『デート向き』のタグを付与するなど)は、自然言語処理によって自動化されています。

――どうやって、それを実現しているのですか?

氏原:Rettyは膨大な量の店舗データと、それに紐づく口コミデータを持っています。そして、過去にはそれらに対して人間が目的・シーンのタグを手作業で付与してきました。

その「店舗」「口コミ」「紐づけられた目的・シーンのタグ」という過去データをディープラーニングにインプットしてやることで、「特定の目的・シーン(『ランチ』『デート』など)に向いている店舗の口コミが持つ特徴」を学習させているんです。

――すごい……。それができるのは、膨大な量の店舗や口コミのデータを持つRetty“だからこそ”ですね。

氏原:そう思います。たとえば、「デートに向いている店」の口コミだけに絞ってみても、本番環境には20万件以上の投稿があります。これだけの大量データが揃っているからこそ、そのデータを活用してさまざまな機能を生み出すことができるんです。

しかも、それらのデータは利用者が日々投稿してくれるため、今もすごい勢いで増え続けています。データを扱うことに興味のあるエンジニアにとっては、非常にチャレンジしがいのある環境なんです。

「食を通じて世界中の人々をHappyに」すべく、機械学習とともに歩む

image4

――画像解析。そして、自然言語処理。なぜRettyは、これほどまでに機械学習をフル活用しているのですか?

氏原:Rettyは「食を通じて世界中の人々をHappyに」というビジョンを持っており、今後は日本のみならずグローバルへ展開しようとしています。それを実現するには、なるべくヒューマンリソースに依存せずに事業をスケールできるような仕組みが必要になってくるからです。

また、私たちはベンチャー企業ですし、社員の人数がまだまだ少ない。だからこそ、徹底的に業務を効率化することが、世界で勝負していくためには不可欠なんです。

――その「徹底的な効率化」を実現するためのカギが、機械学習だというわけですね。最後に、未来の話を聞かせてください。これから先、Rettyに入社して機械学習に携わるエンジニアには、どのような資質を持っていてほしいと思いますか?

氏原:「実践できる人」であってほしいと思います。先ほども話したように、機械学習・ディープラーニングはまだまだ発展途上であり、わかりやすいマニュアルのようなものは存在していません。

その状況下で目的を達成するにはプランニングやアイデア出しをするだけでは不十分で、とにかく実際に手を動かす必要があります。膨大なトライアル&エラーが必要になってくるんです。

非常に根気のいる作業ですが、同時に大きなやりがいもあります。その作業を楽しみながらやれる人こそ、機械学習を担うエンジニアには向いていると思いますね。

取材協力:Retty株式会社

この記事が気に入ったらいいね!しよう

いいね!するとi:Engineerの最新情報をお届けします

プライバシーマーク 優良派遣事業者認定マーク