澪標アナリティクス×NTTデータ数理システム 機械学習と最適化による人材ビジネス用レコメンデーションエンジン開発事例

  • HOME
  • 機械学習と最適化による人材ビジネス用レコメンデーションエンジン開発事例

機械学習と「最適化」により、新レコメンデーションエンジンを開発

2019年12月25日 13:29

最先端の学術知識に基づくコンサルティングサービスを展開している澪標アナリティクスでは、これまで実用例のなかった人材ビジネス用レコメンデーションエンジン開発を、機械学習と最適化パッケージ「Numerical Optimizer」により成功させた。

Profile:澪標アナリティクス株式会社様
大学で教鞭を執る井原氏の新規事業として2006年スタート、2014年6月に法人化。統計学や数学の観点から新たな事業価値を見出す独自のコンサルティングサービスを展開。文部科学省や経済産業省などとの共同プロジェクトも多数。
代表取締役/シニアコンサルタント
井原 渉 様
シニアエンジニア/コンサルタント
笹尾 卓史 様

今までなかった、人材ビジネス用のレコメンデーションエンジン

人材紹介レコメンデーションエンジンの開発は難しいと聞きました。

井原 一般的なレコメンデーションエンジンは、大量の在庫を多数のユーザーにマッチングさせることは得意です。しかし、人材ビジネスのように1案件に対し1人の求職者をマッチさせる用途には向いていませんでした。条件の良い2割の求人を8割の人に勧めるようなことが起きますし、そうなると売切れが頻発します。結果、8割の求人企業にはいつまでたっても求職者が来ない、その一方で、マッチングするのは条件の良い求職者のみ、そのほかは仕事が決まらないといった状況になりがちです。

そこで、この分野でマッチング数を最大化できるようなレコメンデーションエンジンを開発することができないか、という相談をお客様企業からいただきました。

どのような方法で、その課題を解決しようとしたのでしょうか。

井原 課題解決のアイデアとして、我々が着目したのが最適化の線形計画法です。求職者情報と求人情報により成約確率を計算し、募集人数に対して紹介する案件数を均等化した上で、成約率の合計値が高まる組合せを計算するロジックを組み立ててはどうか、と考えたのです。ただし、この手法による実用化例は私が知る限りではありませんでした。

人材と求人の最適マッチングを線形計画法で実現

数理システムのNumerical Optimizerの選択理由を教えてください。

井原 先端的な開発だったため、あらゆる困難が予想されました。仕様変更などの試行錯誤があっても、パッケージソフトであるNumerical Optimizerであれば柔軟に対応できます。また、最適化計算は専門性の高い領域ですが、これに関する情報も開発に不可欠です。その点、数理システムはさまざまなノウハウや経験を豊富に持っており、それが今回の我々のチャレンジの大きな力になってくれると期待しました。

開発作業はどのように進行されたのでしょうか。

笹尾 当社でロジックや仕様を決め、それをもとに数理システムで開発を行うという役割分担で開発進行しました。互いにコミュニケーションをとり、またモジュール単位で開発したことなどもあり、スケジュール通りに進みました。設計通りに解が出るか、そのときの計算時間はどのくらいか、またハードウェアの要件はどうか、そのたびに数理システムのスタッフから明快な回答が迅速に戻ってきて、着実な開発につながりました。

井原 当社では、お客様に最適化ロジックを理解いただくことにも腐心しました。最適化、特に線形計画法とは何か、どのような機能や役割があるのか、それを分かっていただかないと導入につながりませんから。当社が最も注力したのは、この部分かもしれません。

今回のレコメンデーションエンジンの概要を教えてください。

井原 エンジンは大まかに機械学習と最適化の2つのロジックで構成されており、その最適化の部分にNumerical Optimizerによるプログラムを組み込みました。最適化では「解がない」という結果になることもあり、それは避けられません。しかし、そうなると求職者にお勧めする案件がなくなってしまいます。そこで機械学習により、他のマッチング情報を参照するなどして別の解を出す処理をしています。

笹尾 納品したエンジンは、お客様のスタッフが運用されます。現場で業務に活かしていただくために、エンジンの作り込みを入念に行いました。データ入力を間違えると、正しい解が返ってこなくなる恐れがあるため、入力の際のルールを厳格に決めました。さらに解を出す際、スタッフがお勧めしやすいように機械学習を使ってレコメンドした理由もあわせて提示したり、求職者が以前働いていた企業をレコメンドしたりしないようにNGフラグを立てる機能なども実装しています。

最適化によって機械学習の可能性が広がっていく

40人によるマッチング作業が4人で可能になったそうですね。

井原 お客様では、求人案件と求職者のマッチングを主に人力で行っていました。約40人の専任の担当者が互いに話し合いながら、どの求職者にどの求人を勧めるか随時決めていたのです。それが今回のレコメンデーションエンジンにより、同じボリュームの案件処理を4人の担当者で実行することが可能になりました。しかも、処理時間は10分程度で完了できます。 エンジンの開発期間は約4か月ですみ、費用も当初予算から大幅に圧縮できました。これはパッケージソフトである「Numerical Optimizer」の効果といえるでしょう。

今後の展望についてお聞かせいただけますか。

井原 お客様からはすでに、このエンジンを他部署の人材ビジネスでも利用したいとご要望をいただいています。今後さらにエンジンのチューニングが進めば、求職者や求人の情報を入力した時点で、それに最適な案件を紹介できるようになるかもしれません。 今機械学習が注目されていますが、それに最適化のロジックを加えることで、今回のエンジンのように新たな機能の実現が可能になります。これまで人間が行ってきた業務を、ロジックで置き換えることができるようになるのです。

今後、約30兆円規模に広がるといわれているAIマーケットの中で、機械学習をサポートするロジックとして最適化が果たす役割はますます大きくなってくるでしょう。

おわりに

今回は、数理計画のためのモデリング言語、多様な求解アルゴリズム、及び GUI 開発環境を備えた汎用数理計画法パッケージ「Numerical Optimizer (NUOPT)」を活用していただいた事例についてご紹介しました。 機械学習を活用した課題解決やNumerical Optimizerについて、少しでも興味をお持ちいただけたでしょうか?製品について詳しく知りたい方は、Numerical Optimizerのページ、最適化の事例や技術概要については数理計画・最適化のページをご覧ください。

また、弊社NTTデータ数理システムでは、長年培ってきた数理科学の技術を基に、お客様のご要望に合わせた受託開発を承っております。「データはあるから何となく何かをやりたい…」というきっかけでも大丈夫です。お客様が解きたい課題を弊社技術スタッフが一緒に課題整理を行いながら、ご要望に合わせたご利用形態で課題解決をサポートします! ぜひお気軽にお問い合わせ、ご相談いただけると幸いです。