機械学習活用するために生まれたAPI群−A3RT(アート)を提供するリクルートテクノロジーズ

機械学習活用するために生まれたAPI群−A3RT

今回、取り上げるのは、リクルートテクノロジーズが無償で提供するAPI群のA3RTである。正式名称はANALYTICS & ARTIFICIAL INTELLIGENCE API VIA RECRUIT TECHNOLOGIESで、機械学習を活用・利用するためのAPIとなる。今回は、以下の方々にお話しをうかがった。

A3RTへのインタビュー風景

ITインテグレーション本部  データテクノロジーラボ部 次世代データテクノロジープロダクト開拓グループ 田中水彩氏
同グループ 牧允皓氏
企画統括本部 経営企画部 広報コミュニケーショングループ兼アドバンスドテクノロジーラボ 櫻井一貴氏

A3RTが生まれた経緯

まずは、リクルートテクノロジーズの業務内容などをお聞かせください。

櫻井:まずは頭出しということで広報の私からご説明しますね。リクルート自体は色々なサービスを展開させて頂いていることもあって、ご存じの方も多いかと思います。リクルートテクノロジーズはその機能会社の一つで、2012年10月にリクルートグループがガバナンス体制を再編する際に分社化しました。

弊社では例えばリクナビやSUUMOといった、リクルートのWebサービスを開発しています。それに加えて昨今、データ分析とその活用がこれまで以上に重要になってきたため、事業横断でデータを活用したソリューションの開発も行なっています。

さらに、AIや機械学習を利用して、サービスの改善や新しいサービスを提供するといったこともやってきました。データテクノロジーラボ部は、その「データ」を扱う部門となります。
そのなかでも、田中と牧が所属するグループでは、既存の事業から何かこんなことをやりたいというよりは、新しいテクノロジーを使って、何か新しいソリューションやサービスが展開できないかと考えています。どちらかといえば、研究・開発に近いことをやっています。

今回、取り上げていただくA3RTですが、もとは社内の各サービスに対し、バラバラに提供されていたAIや機械学習などのアルゴリズムを、共通のAPIで展開したほうが効率的だということで始めたものです。それを社外講演などで発表したところ皆さんの関心が高く、公開要望が多かったことから、社外への公開となりました。

現在、一部の機能は社内と同等ではありませんが、社外の方にも無償で使っていただくことができます。

具体的にどのようなAPIを公開しているのでしょうか?

A3RTへインタビュー風景2

田中:こちらが、公開しているA3RTのWebサイトになります。

A3RTのWebサイト


図 A3RTのWebサイト(https://a3rt.recruit-tech.co.jp/

田中: 現在11のAPIを公開しており、だいたい半期に2つのペースで新規公開やバージョンアップを行ってきました。まとめたものが以下の図です。

A3RTのソリューション概要

図 公開中のA3RT API

テキスト系では、分類、生成、要約、校閲などのAPIがあります。一定のルールや法則性があり人の工数がかかってしまうもの、機械にやってほしいと思うような機能を公開しています。

画像系では、評価、検索、生成のAPIがあります。画像評価のAPIは、画像と画像に対応する点数を学習させることで、未知の画像(学習データにない画像)に対し評価点数の予測が可能です。また画像検索APIは、画像とテキストを相互検索するAPIです。
具体的には「車」と入力すること、車の画像がでてきます。反対に猫の画像を選択すると「猫」や「動物」といった、その画像に関連するワードが提案されます。他には、一般会話のチャットボットAPIやレコメンドを行うためのAPIなども提供しています。

最近では、Named Entity APIの提供を開始しました。固有表現抽出ができるAPIです。
テキスト内の単語・品詞の並び・関係性などを機械学習させ、ユーザーが入力した文章内の固有表現を予測します。具体的には、テキスト中の単語が人名や地名といった固有表現にあたるかどうかを判別できます。技術的にはConditional Random Fields(CRF)やRecurrent Neural Network(Bidirectional LSTM)と呼ばれる機械学習手法を組み合わせています。

また、SQL Suggest APIは、自然語からSQL文を生成してくれるAPIです。

半期に2つのペースで公開されています。2つのプロダクトを決め、ロードマップを策定していくのはかなり大変なことではないでしょうか。そのプロセスはどうやっておられますか。

牧:現在、公開しているのは一部で、社内で提供しているプロダクトは20弱存在しています。その中からどれを公開するかを議論しています。公開することを目的に作っているというよりは、リクルートのビジネスをサポートできるものを作っていくなかで、他の方々にも使っていただいて価値のあるものを公開しています。決められた手順などはなく、短い会議で議論して選定しています。

櫻井:プロダクトを作る場合でも、2つのアプローチがあります。1つは、事業側から「こんなことに悩んでいます」といったマーケットからの要請に応えるものです。逆に、学会など外に出ていって、「他社ではこんな発表をしていた」といった情報から、頭の中で、それはじゃらんの何かに使えないか、カーセンサーで使えるかも、もしくはすぐには思いつかないけど何かに使えるかも、といったソリューションありきでのアプローチもあります。
最近は、後者のアプローチが増えてきています。幸い、リクルートにはいろいろなビジネスドメインがあるので、こんなのがありますといったら、事業側からも「ウチで試してみたい」といったことをいっていただけます。

実際、社内でどのような効果をもたらしたのでしょうか?

田中:ほとんどのAPIが実際のサービスに実装されています。なかにはR&Dとして作りビジネス活用に向けて議論中のAPIもありますが、多くは社内の事業で使っていた技術をAPIにまとめたものです。

効果として分かりやすいのはテキストの校閲ですね。ルールベースに加えて機械学習を導入することで、文脈にそくした正しい日本語かどうかのチェックを行っています。人が一から校正していた頃からするとかなりの工数を削減できています。

もともとあったサービスをAPI化して、それを公開したことで、データの精度が上がってきて、いろいろな面でパワーアップしたということでしょうか。また、公開による利益はあったでしょうか?

牧:公開による精度の向上は様々な可能性を模索していますが、今の段階で定量評価が難しいです。しかし、自分達が想定していなかった使い方があり、そういった分野でも事業活動ができることを再確認できました。我々はリクルート内部に提供するという思想で機能を設計しています。リクルートの事業にこだわることなく使っていただいた場合、こういう分野でも使えるのだなと感じました。

具体的に紹介できる事例があればお願いします。

牧:詳細にはお話できませんが、たとえば、Text Classification APIでの事例です。テキストが入力されると、どういうラベルかを予測するAPIです。リクルートグループ内での利用時には、規定違反の判定などを分析していました。それを公開したところ、どの有名人の発言か予測するという使い方がありました。ビジネスと少し離れたところで、使われていて興味深かったですね。とある学会でも、画像を入力し誰が書いた絵なのか予測するというタスクを解いている発表も目にしました。

そういった新しい視点で技術を見直すきっかけになりました。残念ながらその後、ビジネスには繋がりませんでしたが、技術をベースにどういうことができるかを議論できました。

無償で公開した理由とその効果

無償で公開するにあたり、どんなことがあったでしょうか?

田中:公開の経緯ですね。
公開前から学会や講演会などでA3RTについてお話する機会が多々ありました。外部での発信の主な目的は弊社のプレゼンスアップとそれを優秀な人材の採用につなげることでしたが、そこで「有償でもいいので使わせてほしい」というお話をいただくことがあり、社外にもそういったニーズがあると認識したのが公開を検討したきっかけです。

A3RTへのインタビュー風景3

田中:しかし、リクルートテクノロジーズは、社外で売上を立てている会社ではありません。売り物にはできませんでした。そこで、最近のオープンイノベーションではないですが、世の中の人に使っていただき、そこからフィードバックをもらえば、さらにチューニングができると考えました。そんな意図で無償公開しました。

公開してからは企業様からの問合せが多く、これは予想外の反応でしたね。

無償であったから使っていただいた方もおられるかと思います。その一方で、有償でサポートもほしいという声はないでしょうか?

牧:問合せの中には光栄なことにそういったご要望もありました。しかし私達の主なミッションはリクルートグループ向けにソリューションを提供することで社会に貢献することです。直接社外のお客様にモノを売るということが可能なのか、正直分かりません。

無償であることで、ユーザー層が広がったことは確かにあると思います。我々としてもデータが蓄積されていくことは、価値のあることだと思っています。無償にすることで、学生の方やより多くの方に使っていただきたいと考えています。

田中:そもそもA3RTは、お金を稼ぎたいというよりも、このAPIで新しい知見を集めたり、精度を上げることを目的にしています。売り物にしようと思えば、ちゃんとしたサポートも必要でしょうが、いくらでも売れるかと思います。
またコミュニティも広がっていくとは思いますが、我々にとっては新しい気付きがない可能性があります。売上は上がっても、我々の技術は進化しないという…。むしろ環境を無償で提供してでも、エッジーな使い方や我々の予想外の使い方をしていただくことで、「新たな知見」という対価が得られればよいと思います。

となると、特定のユーザーやターゲットも定まっていないということでしょうか。

牧:そうですね。むしろ、非常に広い層の方に使っていただきたいと考えています。サポートに関しても無償の範囲でできることをやっていきたいと思います。例えば何か月か前に、アンケートを実施しています。要望を具体的に吸い上げることをしてみました。すべての要望に応えることはできませんが、頂いた意見をもとに我々はどうすべきか議論しています。

現在、世の中はAIや機械学習で盛り上がっています。ユーザー様がどういったことを求めているのか、あるいは、社内でどういう技術が役に立っていくのか、そういった視点でフィードバックを頂いています。

なるほど、予想外の使われ方を知るほうが役に立つと。

牧:そうですね。

人工知能とは、データとは…

そもそも人工知能とは何か、という議論があります。Twitterでは「とても簡単に人工知能のプログラミングができるようになった」という書き込みがあり、よくみたらA3RTを使っていました。サービスとしての人工知能の使用と人工知能の数学を使ったモデル化の話などがうまくかみあっていないこともありました。そのあたりの区分けができていないように見えます。今後、機械学習に携わるエンジニアは、どういう出自の方で、どんなことが求められるのでしょうか?

A3RTへのインタビュー風景4

牧:私の場合、大学では確率・統計を研究していました。コンピュータサイエンスが必修科目だったということもあり、プログラミング言語もある程度勉強していました。しかし今日ではデータサイエンスをカリキュラムに取り入れている大学も多いです。

櫻井:最近の傾向でいえば、大学でバリバリに機械学習を学んできたというよりも、それをツールとして使うほうが多いようです。たとえば、ライブラリとして普通にChainerがあったりとか、この数年くらいでかなりコモディティ化してきています。専門でやっているというよりも、たまたま自分の研究にツールとして使っていた人のほうが多いと思います。

牧:私が学生のときはそういったツールはなかったので、必要なスキルセットも多少異なっていました。今の学生さんは、そういったフレームワークを手軽に使うことができます。そのため数学的な側面を完全に理解してなくても、大枠さえわかっていれば実装できる世界になっています。ここまでのお話は厳密には機械学習を専門にする場合の出自ですが、人工知能という言葉になると回答に困ってしまいます。

櫻井:AIという言葉の意味が広いですからね。

牧:文脈によって意味合いが全然違うのかなという印象です。定義や前提をすり合わせていないと、話が噛み合わないという事態になりかねません。

一方で、データをどう扱うかが、勘所になってきている。

牧:データは肝ですね。特に学習済みモデルのような、自分で大量のデータを保有していなくてもある程度、予測ができるような仕組みがオープンに公開されるようになってきています。ですから、自分たちが持っているデータをどう使いこなすかという思考回路が重要な気がします。

一般の方に知っておいてほしいことですが、コンピュータのパワーがかなりかかっているのではないでしょうか。もし、自分たちでAIをやろうとすると、こういう苦労があるよといった話はあるでしょうか。

牧:確かに公開しているA3RTの裏話などは今までやってきませんでした。どこかで文章にして公開するのもおもしろいかもしれません。

田中:AIは万能といった、変な期待もあると思います。でも、すごく地味な作業をしないと精度がでないんです。データをちゃんとクレンジングする、リソースを食わないように処理を回すにはどうしたらよいかを考えるなど、地道な努力もけっこう必要ですから。

牧:公開されているAPIを触ると、そういった苦労は伝わってこないかもしれません。まさに、その苦労をスキップできるからこそ、どのような価値を出せるかという思考に時間をかけることができるようになっています。技術がコモディティ化してきたため、ゼロから作る大変さを意識せずにすみます。

そうですね、そこがAIをサービスで使おうとしているのか、自分たちで作ろうとしているのか、その区別がつかない理由になっているのかと思います。宇宙船を作るのであれば、自分たちでできないというのは、すぐわかると思います。人工知能の世界になるとそのあたりが、グレーになってしまう…

A3RTへのインタビュー風景5

櫻井:フェーズに分けて切るといいかと思っています。よくあることですが、事業の人から、AIを使ったら100%精度がでるよねとかいわれます。まず、この時点でミスマッチがあります。そもそもAIは人間の模倣であり、その人間だってミスをするわけですから。AIに対する過度な期待をどう調整するか。

田中:我々がAIを実装するときにいちばん大事なことは、どのタスクにどのソリューションを適用しますかという、要件定義をはじめにきちんとすること。ビジネスにどういった“不”があって、どこをどう解決したいのですかというスコープがしっかりしていないと、適用した結果が最大の効果をださないこともあります。先ほどの「100%の精度がでないじゃないか」という結果になってしまいます。

ビジネスに対して、どういう要件で、どう適用していくか、そして、どこまで結果がでたら成功とみなすか、その期待値調整やビジネス検討がすごく重要になります。そのために必要なデータはありますか、そのデータは使えるようになっていますか、と。「ウチのデータを使えばなんとなるだろう」といわれることもありますが、「いやいや、このデータでは…」といったことが少なくありません。

そういう検討を行い、我々が最適な実装を行い、地道なテストを繰り返します。実装して、ABテストを繰り返し、チューニングして精度をあげていく…。そんな「運用」も重要なんです。やはり、要件定義と運用は重要だと思っています。実は、実装は全体のポーションでは、それほど大きくないんです。

牧:最初に仮設を立てて、タスクを簡略化していきます。どういうタスクにしていくかが、とても重要になります。そもそも分類の問題なのか、回帰の問題なのか。目の前に見えている課題がわかったとしても、機械学習でどう処理するかは別の問題になります。公開されているAPIを使う場合、気軽に試せてしまうが故にそういった議論が少なくなる気がします。

田中:もっといえば、我々は組み合わせで解決しようとします。分類をして何かをするであるとか、API1つでビジネス課題を解決できるものではありません。複数のAPIを組み合わせて解決するのが普通です。マイクロサービスではないですが、なるべく部品化し、それを組み合わせることによって、ビジネスやサービスの改善に繋げていきます。どう組み合わせていくかが、重要なポイントになります。

−企業様と協業して取り組まれる際に、企業様側でそういったことを理解されていない場合の苦労はありますでしょうか。

牧:結局はコミュニケーションのとり方に依存している思います。機械学習やAIの専門家でなくとも、お互いの強みを活かすように歩み寄れると思います。事業会社は、ある特定のビジネスドメインに深い理解を持っていますし、課題もある程度把握していると思います。あとは我々が課題をどう形式化していくか提案し、どういう手法を適用するか議論します。必ずしも、共通のバックグラウンドは必要ないと思います。むしろ課題が明確になっていることのほうが重要です。

A3RTの未来と課題

今後の展開について、何かありましたらお願いします。

A3RTへのインタビュー風景6

田中:いろいろな使い方、斜め上の使い方をしたいただきたいこともあります。一方で、機械学習を多くの方が、簡単に使える環境にしていきたいと考えています。個人の方も含め、多くの企業様で、何かシステムを作るときに無償で使えるものであれば、斜め上の使い方もあるでしょうし、データも貯まっていくかと思います。ですので、できるだけ最新のAPIにアップデートしていきたいと思います。

また、リクルートのなかで実装されていない未完成のプロダクトもあえて発表しています。そうしたリクルートとしてどう使おうか考えているものを、実際に世の中に出してみたときにどんな反応があるかといった点も興味があります。そういった実験的なプロダクトを出してみる、砂場的なAPIの作り方も引き続き続けていきたいです。

結果、我々の知見もデータも貯まっていくし、皆さんも便利に使っていただける世界が目標です。

牧:これまで半期に2つのペースで公開してきまして、11のプロダクトが公開されています。品揃えも充実してきたので、ブラッシュアップの方向に舵を切ってもいいのかなと思っています。
今まで、ユーザーの皆さんに使っていただいたなかで、リクエストが多かったこと、精度や使い勝手の面で、アップデートすべき個所があるのではないかと思っています。そのあたりの議論を始めています。今後、50、100と増やしていくことが正しいのかといった意見もあります。品質を上げていくことも重要という考えですね。どちらが重要になっていくか、そのあたりを考えたいと思います。

田中:サイクルですね。

牧:そうです。増やして、良くして、増やして、良くして… これから少しフェーズが変わってくるかもしれません。

田中:APIBankで評価をしていただけるのであれば、ぜひ、フィードバックをいただければと思います。

APIbankでフィードバックできれば、確かに全員にとってよいですね。

櫻井:公開したことによって、学生さんが使うとか、ちょっと試しに使ってみようといったケースもあります。

一方、企業様では実際のサービスで使ってみるとか、研究・開発に使ってみたいといったお声掛けを多数いただいております。今後は、我々自身もパワーアップする必要がありますが、他社とのコラボレーションで、新しいサービスを作っていくこともあるかと思います。リクルートはいろいろなビジネスドメインを持っていますが、我々が持っていない部分も当然あります。そういった我々の持っていないビジネスドメインで、一般のユーザーさんに便利なプロダクトを作れないか、他社との協業がもっとできていければと考えています。

A3RTの認知度をさらにあげていくために、APIを使ったハッカソンやコンテストのようなイベントなどは考えておられますでしょうか。

櫻井:ハッカソンとは異なりますが、大学のPBL(Project Based
Learning)、ハンズオンで何か手を動かしながら学ぶというものですが、そこで取り上げていただく機会も増えてきました。最近、機械学習はテーマとして非常に熱いので、人気があります。実際、昨年、奈良先端大学院大学で授業をやってほしいといった依頼もありました。APIを持っていき、ちょっとした課題を与え、2週間後に発表してもらうといった内容です。これからも積極的に使っていってもらいたいですね。

−ありがとうございました。