リクルートが取り組む「競技プログラミング」「数理最適化技術」プロジェクトの舞台裏──RECRUIT TECH MEETUP #4
アーカイブ動画
■登壇者プロフィール
株式会社リクルート データ推進室
シニアデータアプリケーションエンジニア 田中 伸明氏
2016年リクルートコミュニケーションズ(当時)に中途入社。様々なデータ活用系のアプリケーションに、インフラからフロントエンドまで幅広く関わっている。2021年より、人材採用サービスでのレコメンド基盤構築に従事。
株式会社リクルート データ推進室
シニアデータサイエンティスト 西村 直樹氏
2015年リクルートに新卒入社。じゃらん、ホットペッパーグルメなどのサービスにおけるデータ活用プロジェクトの推進、分析などを担当。2021年に書籍「Pythonではじめる数理最適化: ケーススタディでモデリングのスキルを身につけよう」を共著にて執筆。
競技プログラミング「日本橋ハーフマラソン」の開催秘話
最初に登壇したのは、シニアデータアプリケーションエンジニア 田中伸明氏。まずは、リクルートが2017年から開催している競技プログラミングコンテスト「日本橋ハーフマラソン」の特徴や開催の背景を紹介した。
競プロ歴13年の田中氏が、リクルートに入社したのは2016年。社内のwikiを開くと、エンジニア主導でコンテストをやろうという話題で盛り上がっていた。
そこで、問題案を持っていることを伝えたところ、すぐにプロジェクトが始動。そこから1カ月半というタイトな期間で、コンテストの開催に至る。
「イベントは目立ってなんぼ。他でやっていないことをやろうと思った」という田中氏の言葉どおり、正解・不正解が結果ではなく、解答の完成度に応じてスコアがつく、いわゆるマラソン(ヒューリスティック)形式を採用。2問を4時間で解くという短時間なレギュレーションとし、当時はあまり見られなかった、問題文にビジュアライザを搭載した。
また、コンテストの企画はもちろん、問題の作成、コンテスト名、その他コンテストの開催・運営に関する業務を、すべてリクルート所属の競プロメンバーでやることとした。日本橋ハーフマラソンを運営するリクルートメンバーは、AtCoderで赤や橙のトップコーダーが揃っている。ちなみに田中氏も以前はトップの赤にいたこともあり、現在は橙に位置する。
コンテストでは、レベルの高いコーダーだけではなく、競プロ初心者にも楽しめることも意識した。これまで出題したのは19問だが、発案は70以上になる。
「それぞれの参加者のレベルで楽しめるよう、どのレベルの人でも点数が取れるように工夫しました。一方、上位者にとっても深みのある問題にするよう心がけました」(田中氏)
田中氏をはじめとするメンバーの想いが伝わり、参加者は着実に増加、累計3000名を超え、会社やチームのブランディングに寄与したことはもちろん、参加を通じて実際に入社に至ったケースもあるという。
数理最適化技術活用のための取り組みとは
続いては、西村直樹氏が登壇。西村氏は、数理最適化に関する著書「Pythonではじめる数理最適化」も上梓しているシニアデータサイエンティストである。
まずは改めて、田中氏と西村氏が所属するリクルートのデータ組織「データ推進室」を、今度は内側からの目線で説明した。
「リクルートのビジネス領域ごとに構成されるのが、縦の組織です。対して、データエンジニアリング、データマネジメントといった専門機能ごとにまとまった横の組織。データ推進室は、この両組織の機能を合わせ持つマトリクス構造となっています」(西村氏)
領域ごとに事業を進めるのが特徴であり、グループ内にデータ分析グループがある事業部もある。だが当然、人材が潤沢ではない技術領域もある。まさしく、数理最適化などだ。
そこで、推進部のマトリクス構造を活用し、数理最適化技術を各グループへ展開。同時に、数理最適化で事業価値を出せる案件を探索するために、アカデミックな機関と連携しながら取り組んでいる。
この産学連携の取り組みは、大きく2つある。1つ目は、相談や議論を重ねる共同研究であり、2018年度からスタート。2020年度以降は月次の頻度で行われている。同取り組みによる成果を、西村氏は大きく3つ紹介した。
・成功確度の向上
・課題解決の引き出しの増加
・活躍機会の創出
「社内に限らず、多くの人と複眼的に解決策を検討するため、成功確率が向上します。また、情報を整理することで、内容のより深い理解につながります」(西村氏)
加えて、他の事例に触れることで、案件の課題解決の引き出し増加や、新たな知見の獲得につながっているという。専門性と合致した業務での活躍機会を創出する成果もある。
【事例紹介】「フリーペーパーの配送」「調理順のサジェスト」など
続いて、数理最適化技術を活用した社内の事例が紹介された。
最初の事例は、事業・サービスを超えた最適なレコメンドを行うことで、より良いマッチングを実現するメール配信・レコメンドだ。田中氏の内容に重なるが、機械学習でスコアの高い順にレコメンドしていくと、ある一定の頂点に偏ってしまう。しかし、その調整が難しい。そこで最適化技術を導入した。
2つ目は、リクルートサービスのポイントやクーポン、インセンティブキャンペーンの告知において、投資対効果が最大化される配信アプローチを考える事例だ。
「ヘアサロン、ネイルサロンなどのクーポンを配布した場合の行動率などをもとに、数理最適化を使い計算します。複数のカテゴリーのサービスの利用者を増加させることが目的です」(西村氏)
3つ目は、フリーペーパーが置かれている駅などラックの状況から、配送トラックのルート、車両台数、配達時間といった条件での解を、数理最適化技術により算出する事例だ。
4つ目はテレビCMの配信枠の割り当てだ。単に視聴者数を最大化するのではなく、一定回数以上視聴するユーザー数を、最大化する配信枠としたかった。そのような目的に沿った割当を、数理最適化技術で行った。
最後は、飲食店などにおける調理順番をサジェストする機能だ。たとえば、ファーストドリンクは3分以内に出す。このようなルール(条件)のもとで、料理の注文時間を算出する。過去データによる提供の遅れなどを加味し、全体の調理遅れ時間の総和が最小となる調理順を、数理最適化技術が導き出す。
西村氏は「これからはより一層、各種プロダクトの中に数理最適化技術を導入するケースが増えていく」と述べ、セッションをまとめた。
【Q&A】参加者から寄せられた質問を紹介
セッション後は、Q&Aタイムが設けられた。その中からいくつか紹介する。
Q.必要なスキルや言語は何でしょうか。
田中:特に決まった言語やスキルというのはありません。参加するプロジェクトに応じて、とにかく何でも取り組む姿勢が大切だと思います。
Q.日本橋ハーフマラソンの問題はどのように考えているのか。
田中:2通りあります。1つは、ゲームやパズルといった元ネタがあり、そこから競プロの形になっていくケース。もう1つはこんな問題があったら楽しそうといった発案です。こうして作成した中から、一番よい作品を採用しています。
Q.数理最適化における費用対効果での工夫や苦労、直接的な利益以外の狙い
西村:クーポンやWebの施策であれば、実装しやすく成果も見やすいです。一方で配送計画など人が介在する案件では、数理最適化の結果どおりにいかないこともあります。直接利益以外については、工数削減などの指標を目標とすることもあります。
Q.数理最適化モデルの決定そのままか、それとも得た結果を元に施策を考慮するのか
西村:Web上で完結する案件も出てはいますが、個人的には半々だと感じています。
Q.有償の最適化ソルバーを導入する割合
西村:半々という感覚です。手軽に利用したいときは無償版。性能が求められる場合には有償版を使うこともあります。