リクルートにおける数理最適化の応用事例を通じて、数理最適化とは何か、どのようにビジネスに応用できるのかを紹介する連載。最終回は趣向を変え、リクルートのデータサイエンティストが大阪大学の梅谷俊治教授に数理最適化を活用する上でのポイントを聞いた。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載「リクルート事例で分かる数理最適化入門」では、数理最適化とは何か、どのような活用法があるのかを、リクルートにおける具体例を通して紹介してきました。
今回は、リクルート以外にもさまざまなプロジェクトに関わり、専門家としての視点からリクルートの取り組みにアドバイスを提供していただいている大阪大学の梅谷俊治教授をお招きし、数理最適化を活用する上でのポイントを、西村直樹と濱田賢吾の2人が伺いました。
西村 まず、実務の中において数理最適化をどう位置付けるべきかを伺います。
梅谷 数理最適化には長い歴史がありますが、逆にいうと、なかなか十分な活用に至りませんでした。データを活用できる環境が整い、ようやく今、出番がやってきたと考えています。
私は講演のたびに、「ビッグデータからデータサイエンス、そして数理最適化へ」という流れがあると説明しています。数年前にビッグデータという言葉が流行し、「とにかくデータを収集できる環境を構築しよう」という機運が高まりました。次に、「データを集めたのはいいが、その中身をきちんと分析しなければ価値を生まない」ということで、データサイエンスが注目されました。
数理最適化はその次に来るものだと思います。「データ分析の結果を最終的な意思決定や計画に落とし込むところで数理最適化が使われるようになってきた」という流れです。コンサルティングの領域で言う「記述的」「予測的」「処方的」のうち、処方的の部分に該当するのが数理最適化ですね。
西村 私も近い考え方です。予測がある程度でき、素地(そじ)が整ってきた今だからこそ、数理最適化というアプローチが活用できるようになったと思います。
連載でも紹介したギフト券の配信最適化の例では、まず、ギフト券を配信した際の予約数や利用金額をある程度予測できるようになりました。ただ、単純に予約確率が高いと予想されるユーザーから順にギフト券を配るだけでは、あまり筋が良くありません。「予測に基づいて、いかに利用者数を最大化する配信パターンを決定するか」という本当にやりたいことを実現する上で、数理最適化が生きています。
『Airレジ』のキッチンモニターによる調理順の最適化の例も同様です。単純に、予測される調理期限が近いものから処理するだけではベストな方法にはなりません。予測した上で、調理の所要時間も加味して全体の遅れを最小化するところに数理最適化が役に立っています。こうした例が示すように、予測までのステップがある程度信頼できるものになっているからこそ、数理最適化が役立っているように思います。
梅谷 そうですね。単純に「スコアが高い順に並べればいい」という話ではなく、さまざまな制約を考慮した計画に対応できることが数理最適化の強みであり、ユーザーにとってうれしいところだと思います。
西村 梅谷先生はいろいろな企業で数理最適化の活用例を見ていらっしゃいますが、一般には、どこで苦労するケースが多いのでしょうか?
梅谷 数理最適化に限らず新たな技術への取り組み全般に言えることだと思いますが、社内におけるIT部門の影響力が弱い場合は難しいと感じます。場合によっては売り上げを出している事業部門に対し、IT部門は「お荷物」と見られかねません。しかし、IT部門におけるデータ分析、数理最適化の取り組みは企業の足腰を支える部分です。トップの関与の下、具体的なゴールとそれに至るマイルストーンをきっちり定め、長期的に取り組む必要があると思います。
その点、リクルートはデータ活用に関する横断組織がきちんと構成されており、社内の横串として機能しています。また、事業部門がデータ分析に理解があることも大きなポイントだと思います。
「全体最適化」というキーワードに踊らされないことも重要です。つい「いい感じに全体最適化できますよ」と安請け合いしてしまいそうですが、ステークホルダーが増えれば増えるほどコミュニケーションコストが増え、まとまるものもまとまらなくなります。ですので、個々のプロジェクトの実施範囲をきちんと区切った上で、少数のステークホルダーですり合わせができる体制を整えることがポイントだと思います。
西村 そうですね。「最適化」という言葉は便利に使えてしまうので、ある程度スコープを絞って、「何を最適化するのか」を明確にすることが大事ですね。
梅谷 売り上げや利益、コストなどのKPIにばかり意識が向いてしまっても難しくなると思います。確かに、KPIの改善を主張すれば話は通しやすくなります。しかし、数理最適化のプロジェクトに取り組むと「これだけKPIが改善します」と事前に約束することなんてできないことに気付きます。ですので、KPIの改善よりも業務プロセスの改善による効用を主張したいですね。
西村 組織体制に関してもう1つ伺いたいことがあります。数理最適化に関して先端的な取り組みをしている企業では、もともと数理最適化のバックグラウンドを持ったメンバーが推進するケースが多いのでしょうか? はたまた、学びながら推進するケースが多いのでしょうか?
梅谷 そこはいろいろですね。全く経験を持たない企業から声を掛けられることがあれば、データサイエンスなどのバックグラウンドを持っている企業から声を掛けられることもあります。IT部門やデータ分析部門が充実している企業では、社内でデータ分析プロジェクトが進んでいるので、数理最適化のプロジェクトもスムーズに進みます。一方で、データ分析もおぼつかない状況なら、数理最適化の前にまずデータを収集するインフラを整備し、可視化したデータから事業部側が業務の改善につながる気付きを得ることを当面の目標として始めるべきだと思います。
西村 結局は、「まずデータを蓄積し、集計、可視化、そして予測を可能にする」というように、順を追って進めるのが重要ですね。確かにリクルートの場合も、長い期間をかけてデータを収集し、予測を可能にし、そして最適化するという3つの段階を順にやってきたように思います。メンバーを見ても、もともと予測が可能なメンバーがたくさんいたところに、基本的な典型問題に関する知識やソルバーを利用できるような数理最適化ができるメンバーが加わり、順を追って体制が広がっています。
リクルートの活用の流れとしては、データサイエンティストが取り組んでいる実務上のタスクに対し、数理最適化のバックグラウンドを持つメンバーが数理最適化の典型的な考え方と類似する部分がないかどうかを検討しています。もし使えそうなら、そのアプローチを適用して結果を確認し、意図しない結果が生じて改善が必要なら数理モデルを見直すという、試行錯誤のプロセスを繰り返しています。さらにメンバー内での意見交換はもちろん、梅谷先生のような社外の専門家から客観的な助言を頂くことで、プロセスがスムーズになるように努力しています。
梅谷 そういう意味で「王道」をきっちり踏んでいるように思います。リクルートと共同研究を始めてから月に1回のペースで相談会をしていますが、やけに難しい問題ばかり持ち込まれますよね(笑)。それは、それほど難しくない問題はリクルートの皆さんが自分たちで片付けているからです。これは良いことで、自分たちで片付けられる問題を増やしていかないとスケールしませんよね。
濱田 とはいえ、リソースが限られているのも事実です。数理最適化を専門としないメンバーでも活用しやすい土壌を整備することも重要で、その一例が、棚橋さんが主導して開発している「Codable Model Optimizer」だと思っています。同時に、専門外のメンバーに数理最適化を伝えることも重要ですよね。最適化に触れることで着想を得て、「この案件も数理最適化で解決できるんじゃないか」といったアイデアが生まれれば、社内での活用がどんどん活発化するのではないでしょうか。
梅谷 そうですね。数理最適化は特に、社内でノウハウやツールを共有していくのは大事なことです。
また、プロジェクトのスケジュールにどれだけ余裕を持てるかもポイントだと思います。そもそも数理最適化のプロジェクトは探索的なものです。始めから仕様が決まっていてその通りにシステムを作るのではなく、試行錯誤が必要です。ですので、うまくいかなかったときに差し戻しができる余裕がないとしんどいですね。
西村 数理最適化には何らかの制約条件が付きものです。往々にして、プロジェクトを進める中で新しい要件や制約条件が追加されていきます。あらかじめ期間が決まっていると難しいところがありますね。
梅谷 そうですね。1回の試行で最適化問題をうまく定式化できるなんてことはあり得ません。特に、一番大事な制約条件は現場の人間には常識となってしまい、なかなか口から出てこないので、インタビューを元にシステムを実装して結果を出し、フィードバックをもらうプロセスを何回も繰り返さなければいけません。そのためにも、余裕を持って中長期的に取り組むことが大事だと思います。
西村 次に、数理最適化がどのような場面で活用されているかを伺います。
梅谷 まずはデータがあることが大前提です。データがなければ最適化の計算をしようにも、できません。実施のスピードが速いこともポイントだと思います。Webサービスを扱う事業分野では、かなり早い段階で実サービスで試験運用できますが、製造や物流など「モノ」を扱う事業分野では、オペレーションの変更によって現場に混乱が生じる可能性があるので、試験運用でも慎重になる企業もあります。そこをどう乗り越えるかが、頑張りどころだと思います。
西村 1回の検証にかかるコストやサイクルが違いますからね。
梅谷 ですので最近は、数理最適化の前にシミュレーターの開発が重要ではないかと考えています。
西村 数理最適化は、他にもいろいろな分野で活用可能だと思うのですが……。
梅谷 注目したいのは、中長期のマネジメントに数理最適化を活用するケースです。数理最適化によって短時間で計画立案が可能になれば、いろいろな状況を想定して、複数の異なる入力データに対して数理最適化を適用した結果を比較することも可能になります。それを元に、中長期的のリソース配分の見積もりを立てることも可能でしょう。そのようなマネジメントでの数理最適化の活用にももっと注目していいと思います。
西村 複数のシナリオを用意しておき、「どんなシナリオが来ても安定的に結果を出せるような計画を立てるところに活用できるかもしれない」ということですね。
梅谷 そうですね。しかも、短時間で計画を立て、シミュレーションできれば情報も増えます。それを元に、より詳細な議論ができるようになることが非常に大事です。つまり、経営層にとっても役立つツールなのです。マネジメントではよるべき根拠がないまま意思決定を下さざるを得ない状況があると思いますが、数理最適化によるシミュレーションが可能になれば、経営層の意思決定においても非常に助けになるんじゃないでしょうか。
西村 個々のプロダクトの機能やキャンペーンといった事例を紹介しましたが、より高いレイヤーの計画業務にも数理最適化を活用できる可能性があるわけですね。今回の連載で紹介した適用事例や、それ以外にも、単なる予測に基づくだけでなく複数の商品のバランスを取りながら商品を推薦したり、担当者の予算やコントロールできる幅を踏まえながら価格を調整、設定したりといったケースでも、梅谷先生にご協力いただきましたね。
梅谷 そうですね。こういった部分は機械学習と数理最適化をうまく連携させて、一気通貫でできるといいですね。また最近は、実務で「平準化」が求められる事例が増えています。数理最適化では、何も考えないで定式化してしまうとエッジケースが出力されることが多いので、平準化を加味してほしいといったニーズが出てきましたよね。
濱田 実は数理最適化で解けることに気付いていない、潜在的なニーズもあるのではないかと思っています。そういった案件をどう拾うかが課題になるのではないかと感じています。
梅谷 数理最適化は、特定の応用分野や事例にとらわれるものではありません。使う側の発想力や想像力次第だと思っています。逆に使う側からすると、選択肢は数理最適化だけではないともいえます。私も、相談を受けたものの、数理最適化以外の方法がよいと思ったときには正直にそう言います。ただ、その気付きを得るのはなかなか難しいので、学会などいろいろな場に足を運び、さまざまな研究や事例の話を聞く機会を作ることが大事なポイントだと思います。自分の課題にドンピシャで当てはまらなくても、何かヒントが得られるかもしれません。
西村 そういう意味でも外部の専門家からの支援は非常に貴重です。実務に携わっていると、当事者的な視点で関わるが故に見えていないこともありますが、客観的な視点で問題の本質を突いて捉え直していただけるのは非常にありがたいと思っています。
濱田 私の場合も、自分が担当する案件なのでどうしても細かいところが気になり、問題を難しく考え過ぎてしまうことがあります。そういう場合に、フラットな視点から「ここを調整すれば最適化の典型問題に落とせるよ」といったコメントを頂けるのは非常にありがたいと思っています。
梅谷 私はしがらみがないから、全ての要求に応えようとはせずに、「本質的ではない部分は除外してもいいじゃないか」と考える傾向はありますね。
また、私自身のポリシーとして、システムに全ての意思決定を任せるのではなく、ユーザーに十分な裁量を残すべきだと考えています。「退屈なことはPythonにやらせよう」(オライリー刊)という本がありますが、私はさらに「面倒なことは人間にやらせよう」と続くべきだと思っています。複数の評価項目のバランスや細かい制約の考慮など、最適化問題では扱いづらい要件はたくさんありますが、それらを人間が判断して決めておけば、その後の最適化問題はすごく簡単になります。ですから、システムと人間の意思決定の裁量のポートフォリオをうまく組むことがポイントです。全ての意思決定をシステムにやらせようとするから大変になるのではないでしょうか。
ユーザーが不満を持つのもそこだと思います。ユーザーが意思決定の裁量を失うから、システムが完璧にやってくれないと文句を言いたくなるわけですね、もし、ユーザーが意思決定の裁量を十分に持っていれば、試行錯誤するうちにシステムをうまく使いこなせるようになると思います。
濱田 最近、機械学習の分野で「解釈性」というキーワードが注目されていますが、同じように数理最適化でもユーザーの試行錯誤の余地を残し、システムをブラックボックス化しないことが重要なのかなと思いました。
梅谷 それが問題を解きやすくすることにもつながり、うまくやれば一挙両得になると思っています。教科書ではあらかじめ定義された問題設定を変更できませんが、実務では、自分たちで問題設定を定義するので、都合に応じて問題設定を変更しても構いません。むしろ、数理最適化は問題解決のプロセスの一部分にすぎませんから、ソリューション全体をどうデザインするかという視点で、人間も含めた意思決定の良いポートフォリオを組むことが大事です。日々、そういうディスカッションをしていますよね。
濱田 梅谷先生には、社内でもセミナーを開催してもらっていますね。隔週でレクチャーを頂き、数理最適化によるアプローチの引き出しを広げていただいたり、具体的な案件について毎月3〜4件、相談させてもらったりしています。
梅谷 大学と企業による産学連携ですが、今の枠組みではいろいろと限界もあります。例えば、共同研究のプロジェクトとは別に、企業の皆さんが輪読会に参加するなど気軽に研究室に出入りして交流できるといいと思うんですが……。
濱田 それはぜひ、参加したいです。
梅谷 ですが、今はそういう枠組みが大学にはないんですよね。リクルートでの連続セミナーも、共同研究の枠組みにおける専門知識の提供として実施しているので、もう少し産学連携の制度が交通整理されればと期待しています。共同研究もそうです。例えば、学生が共同研究のプロジェクトに参加する場合には、企業がプロジェクトを進めるタイミングと卒論/修論のタイミングが合わなかったり、参加する学生のスキルにばらつきがあったり、その折り合いをきちんと付けることが大事だと思います。
西村 ちなみに、産学連携はどういったきっかけで始まり、どんな協業が多いのでしょうか。
梅谷 こちらから働き掛けるよりも、企業の担当者からメールで、あるいは学会などで直接声を掛けられることが多いですね。やはり「困っていることドリブン」が大事なのかなと思います。何をやりたいかがぼんやりしているケースよりも、「この問題に困っている」と具体的な話を持ってきていただく方がうまく進みます。協業の取り組みは、具体的な問題解決の他にも、Slackなどを通して「参加した学会でこんな発表がありましたよ」「こんなツールが使えそうです」といった情報交換もしますね。やはり、大学という立場で、しがらみなく複数の企業にアプローチできるのは良いことだと思っています。
西村 そういった立場の方は非常に貴重な存在です。今後も一緒に連携を推進できればと思っています。
梅谷 私は大阪大学の情報科学研究科でリクルートをはじめとする複数の企業から寄付金を頂き、新たに数理最適化の「寄附講座」を開設して産学連携と研究開発に取り組んでいます。私自身もそうでしたが、普通の大学教員は教育、研究、運営の業務だけで手いっぱいです。よほど超人的な教員でない限りは、産学連携で十分に活動するのは難しいのが実情です。企業の皆さまにはぜひ、産学連携の推進にご協力いただければと思っています。
西村 梅谷先生もそうですし、他のいろいろな先生方とも連携する活動をより広く展開し、お互いにとって良い形にしていけたらと思います。ありがとうございました。
大阪大学 大学院情報科学研究科 数理最適化寄附講座教授
数理最適化、アルゴリズム、オペレーションズリサーチなどの研究に従事。特に、大規模かつ計算困難な組合せ最適化問題に対する実用的なアルゴリズムの研究開発や、数理最適化モデルとアルゴリズムの現実問題への応用に従事。
著書に『しっかり学ぶ数理最適化:モデルからアルゴリズムまで』(講談社、2020)、『応用に役立つ50の最適化問題』(朝倉書店、2009)がある。
株式会社リクルート プロダクト統括本部 プロダクト開発統括室 データ推進室
リクルートに入社後、日常消費領域や人材領域などのデータ解析業務に従事。2021年に『Pythonではじめる数理最適化:ケーススタディでモデリングのスキルを身につけよう』(オーム社)を共著で執筆。
株式会社リクルート プロダクト統括本部 プロダクト開発統括室 データ推進室
2020年にリクルートに新卒入社。データサイエンティストとして、主に数理最適化の推進を担当。
Copyright © ITmedia, Inc. All Rights Reserved.