リクルート銀座8丁目ビル

分析

リクナビ「内定辞退率予測サービス」を再現する

「石を投げれば元リクルートに当たる」という格言?名言?をご存知でしょうか。世の中にはたくさんの元リクルートがいるという意味ですが、かく言う私も元リクルートのひとりです。

現在のリクルートキャリアには、一緒に仕事をした先輩、同僚、後輩が務めており、それなりの役職、ポジションで活躍しています。従って、今回のリクナビ(リクルートキャリア)による内定辞退率予測サービス「リクナビDMPフォロー」問題については、自ら事として経緯を見ていました。

これまでの経緯を外から見る限り、私の知っている現職の社員は、この内定辞退率予測サービスには「反対」の立場を表明していたと推測しています。・・・そうであって欲しいと願っています。

なぜなら、この内定辞退率予測サービスは、とにかく「筋が悪い」。リクルートの人材サービスはここまで落ちたか、と言わざるを得ないほど「筋が悪い」。分析の技術は高いのでしょうが、採用の素人が作ったサービス(商品)と言わざるを得ません。

とはいえ、私もデータサイエンティストの末席の、さらに後方のパイプ椅子の後ろに立っているものとして、内定辞退率を予測することには「一定の理解」を持っています。それは、お客様の課題が「内定辞退」なので、その解決策として内定通知前に内定辞退率を「予測」したくなるのは自然ですし、技術的に問題はないからです。加えて、面白そうだからやってみようという感覚も想像に難しくありません。

個人情報の扱いなど法的な問題は言わずもがなですが、私が思うこの問題の本質は、リクルートキャリアで内定辞退率というデータが、価値のあるものなのか? それとも「ゴミ」なのか? という判断ができなかったことです。

以下にあくまで推測ですが、リクナビ「内定辞退率予測サービス」を再現してみます。出力されたデータが価値のあるものなのか、それともゴミなのかを判断してみてください。

内定辞退率を予測する

まず、「目的変数」となる過去のユーザー(新卒者)のデータ(入社or辞退)を集めなければなりません。これは、リクナビのログからは取得できないので(たぶん)、リクルートキャリアの営業マンがクライアントに「内定辞退率を予測するサービス」の企画趣旨を説明し、内諾したクライアントは個人名が書かれた内定者リストに「入社」or「辞退」の判定を入れてリクルートキャリアに提出します(たぶん)。

入社or辞退

「入社」や「内定辞退」といった結果(データ)は、クライアントしか知り得ない情報です。従って、この内定辞退率予測サービスで最も手間のかかる作業は、この過去のユーザー(新卒者)のデータ収集であったと推測しています。

「採用の合否には使わない約束をした」と新聞で見ましたが、こうしたやり取りの中で本当に「採用の合否には使わない」という約束ができたのでしょうか・・・。

データを整形する

個人名に紐づいた目的変数(入社or辞退)が入手できたので、残るは「説明変数」です。これは、新聞に「リクナビ上の行動」と書かれていたので、「Aページを見た」とか「Bボタンを押した」とか、内定に影響のありそうな変数を探します。大学や学部なども説明変数に入ると思います。

この説明変数の選択や重み付けをどのように考えたか、分析を行ったリクルートの技術者に聞いてみたいですね(極秘にしますのでアポイントお待ちしています)。もしくは、すべてコンピュータ(機械学習)に任せたのかもしれませんが・・・。

ここでは、以下の16個の説明変数を設定しました。

■説明変数
・大学名
・ログイン回数
・滞在時間
・金融(見た1、見ない0)
・自動車(見た1、見ない0)
・サービス(見た1、見ない0)
・電気(見た1、見ない0)
・物流(見た1、見ない0)
・飲食(見た1、見ない0)
・Aページ(見た1、見ない0)
・Bページ(見た1、見ない0)
・Cページ(見た1、見ない0)
・Zクリック(クリックした1、クリックしない0)
・Yクリック(クリックした1、クリックしない0)
・Xクリック(クリックした1、クリックしない0)
・プレエントリー数

上記の他には、PV数とかエントリー後アクション数とかも関係ありそうですね。

■(念のため)目的変数
・内定辞退(した1、しない0)

■学生の数
・「あ~んんん」までの138名

ログイン回数や滞在時間、プレエントリー数などは、ExcelのRAND関数を使って設定。その他の変数は、1または0の二値としています。

こうして完成したデータが以下の画像です。

リスト

簡単に上図の表の見方を説明します。2行目の「え」君は、中央大学で、ログイン回数は64回、合計の滞在時間は7351秒、自動車と飲食業界、そしてBページの参照履歴があり、プレエントリー候補が63件でした。そして、この「え」君は「内定を辞退」しています。

このように、「個人名」と「リクナビの行動(説明変数)」と「内定辞退(目的変数)」が紐づけされたこんな感じのデータを分析したのだと思います。

それでは、データが完成したので分析に進みましょう。

分析する

リクルートの技術者がどんな分析を行ったのか知る由もありませんが、ここでは「決定木」と「ランダムフォレスト」による分析を行ってみたいと思います。※決定木とランダムフォレストの詳しい説明は割愛させていただきます。ここでは、「決定木」と「ランダムフォレスト」という名前の分析を行うんだ、ということを理解していただければ結構です。

ただ、「決定木」を選んだのには理由があり、それは分析結果の理由(過程)が理解できるからです。機械学習では分析の過程が分からずに結果だけが出力されることがありますが、決定木では、どの説明変数が内定辞退に影響しているかを知ることができます。この「内定辞退に影響している説明変数」というのがポイントで、後述するこの問題の本質をするどく突いてきます。

以下は、統計解析ソフト「R」のスクリプトです。データが入手できれば、ほんの数行で高度な分析ができる時代です。

上の画像のRスクリプトを実行した動画もご覧ください。

※分析手法について少し補足します。多くのケースで分析するデータは1つですが、分析する「手法」はいくつもあります。従って、分析者はデータの性質から3つくらいの分析手法で分析を行ってみて、その中で最も優れた予測値を返したモデルを選択するのが一般的です。ここで用いる「決定木」や「ランダムフォレスト」といった分析もいくつもある分析手法のひとつです。

分析結果

決定木

上の画像は、決定木の分析結果です。上部にある〇(ノード)ほど、目的変数に対する影響度が高い「説明変数」を表しています。また、下部の四角い箱は内定辞退率(右側に確率があり、黒い部分が大きいと内定辞退率が高い)を表しています。

結果を見ると、このデータでは滞在時間(リクナビにログインしている時間)が、内定辞退率に大きな影響を与えていることが分かります。

■リクナビの滞在時間で見る内定辞退
①1163秒より短い時間のユーザー(左下)は、内定辞退率が「低い」※内定辞退率約15%
②1163秒以上2672.5秒未満のユーザー(右下)は、内定辞退率が「高い」※内定辞退率約80%

余談ですが、私が営業だったら「滞在時間が短い学生の内定辞退率が低いということは、すでにやりたい仕事や会社が決まっていて、希望する会社から内定をもらった学生がこの左下に入っていると思います。課題は、滞在時間が長いユーザーで、特にAページの参照の有無が大きな影響力を持っています。御社は・・・」みたいなトークを使って説明すると思います。

続いて、2672.5秒以上滞在したユーザーが「Aページ」を見たかによって枝が分かれています。

■リクナビの滞在時間及びその他変数
③2672.5秒以上でAページを見ていない、且つ、中央・明治・立教のユーザーは、内定辞退率が「高い」※内定辞退率約75%
④2672.5秒以上でAページを見ていない、且つ、青学・法政、且つ、プレエントリー候補が27.5以下のユーザーは、内定辞退率が「低い」※内定辞退率0%
⑤2672.5秒以上でAページを見ていて、且つ、ログイン回数が22回以上のユーザーは、内定辞退率が「低い」※内定辞退率約20%

こんな感じで分析結果を眺めます。

ここまでが過去のデータを用いた分析=予測モデル作りです。ここから先が、今年の新卒者のデータ(16個の説明変数)を使った内定辞退率の予測となります。5段階評価と聞いていますので、20%刻みでABCDEと分類されていたのかも知れません。

内定辞退率を予測する

それでは、このモデルを使って今年のユーザー(新卒者)の内定辞退率を予測してみたいのですが、今年のデータがないので、この決定木とランダムフォレストのモデルがどの程度予測できているのか正答率を確かめてみたいと思います。分析を行った138人の中からランダムに選んだ8番目、19番目、53番目のユーザーで確かめてみます。

■決定木による予測

決定木の予測

8,19,53と0,1の行列で出力されています。

8番目のユーザーが1である確率(内定辞退)約74%
19番目のユーザーが1である確率(内定辞退)約61%
53番目のユーザーが1である確率(内定辞退)約78%

3人とも1である確率の方が高いので、内定辞退と予測できます。

■ランダムフォレストによる予測

ランダムフォレストの予測

8番目のユーザーは、1(内定辞退)と予測
19番目のユーザーは、0(入社)と予測
53番目のユーザーは、1(内定辞退)と予測

19番目のユーザーのみ「入社」と予測しています。決定木の予測では、19番目のユーザーは1である確率が約61%(内定辞退)だったので、このユーザーのみ予測が分かれています。

それでは、実際のデータを見て答え合わせをしてみましょう。

■実際のデータ(8,19,53番目のユーザー)

予測データ

実際のデータを見ると、内定を辞退していたのは8番目と53番目、入社していたのは19番目のユーザーでした。決定木とランダムフォレストを比較すると、ランダムフォレストの方が良く予測できているようです。

決定木のツリーで、この3名のロジックを確認しておきましょう。

予測

■今年のユーザーのデータを用意する
このようにして過去のデータを用いて予測モデルを完成させます。大まかな流れをまとめると、①データを用意する(学習データ、教師データという)②複数の分析手法で分析する(モデルをつくる)③予測したいデータで予測する(分析の目的)、となります。今回の分析ではランダムフォレストの方が良い予測をしているので、今年のユーザーのデータをランダムフォレストで分析すれば、個々人が入社するのか、内定を辞退するのかが簡単に予測できます。※実際は5段階評価とのことなのでもうひと手間かかります。

内定辞退率予測に意味はあるのか?

ここまで読まれてどのようにお感じでしょうか? 

・滞在時間で内定辞退率が判定されているの?
・Aページ見たとか内定辞退率に関係あるの?
・リクルートはこんな単純な分析してないでしょ?

多くの方は、このような疑問を感じたのではないでしょうか?

今回の分析でブラックボックスとなっているのは、説明変数です。分析の手法は、機械学習的にやるのか統計的にやるのかはあまり重要ではありません。分析手法よりも大事なのが「説明変数」をどのように設定したかなのです。

どのくらい重要かと言うと・・・

私がHONDAの役員で、Aさんを採用しようとして「内定」の判断を下したとしましょう。すると人事部長から、「リクルートの分析によると、Aさんは内定辞退率が80%を超えているので内定を見送りましょう」と進言がありました。「そんなことまでわかるの? すごいねリクルートさんは。で、内定辞退をする理由は何なの?」「はい、Aさんはリクナビの滞在時間が1163秒以上2672.5秒未満なんです。もう少し短ければ良かったのですが・・・」「お前、来月異動(怒)」

いかがでしょう、笑えますか? 説明変数に何を設定したのか分からなければ、現実もこれに近いことが行われていた可能性はゼロではないのです。

新聞には、リクナビの行動履歴から内定辞退率を予測していると書かれていたので、思いつくリクナビの行動と言えば滞在時間やあるページの参照、クリック数くらいしかないはずです。何か思いつく変数はありますでしょうか? 仮に思いついたとしても、それが内定辞退に大きな影響を与えるほどの説明変数になるでしょうか?

さらに深刻なのは、予測をされた学生です。万が一、内定辞退率に最も影響のある変数が「滞在時間」だったとしたら、それで学生は納得できるのでしょうか? 内定や採用の合否にこの予測データが活用されていないと言われていますが、2019年10月8日の日本経済新聞には、「ある企業担当者は辞退率を面接の順番を決める材料として使っていた」と記されています。もし、滞在時間によって面接の日程を後回しにされていたら・・・、考えるだけでも恐ろしいことです。

多くの人は内定辞退率をAIが自動的に割り出したと認識していますが、何もないところから予測はできません。必ず予測するためのデータが存在し、そこに設定された説明変数の値によって予測が行われます。従って、説明変数が公表されないデータは「ゴミ」なのです。クライアントも説明変数を知らずに判断を行っていたとすれば、優秀な人材を逃していた可能性は極めて高いのです。

リクナビ(リクルートキャリア)の責任

リクルートキャリアは、どのようにして内定辞退率を算出したかについて公にする義務があります。どのような変数を使い、どのような分析を行ったかを明らかにしなければ、昨今話題となっているHR TECHにおいて極めて不透明な黒歴史を作ることになります。ここまできたら洗いざらい公開して、リスペクトされる「しくじり先生」になってもらいたいものです。リクルートはそういう会社です。

さて、ここまでお読みいただきましてありがとうございました。実際にはリクナビの滞在時間が内定辞退率を決定しているとは思っていませんが、分析の詳細が分からなければ、確率はゼロではないことだけは重ねてお伝えしておきます。

今回使用したデータは、ExcelのRAND関数などで出力したランダムな値です。恐らく、リクナビが使用したデータはもっと偏り(東大の内定辞退率が高い、など)があって、分析の精度(正解率)は高いのではないかと推測しています。

なお、この投稿で使用したデータを、SONYが無料提供している分析ソフトウェア「Prediction One」でも使ってみました。次の記事「ソニーの「Prediction One」を使ってみた/ランダムフォレスト vs Prediction One」も、併せてご笑読ください!

ピックアップ記事

  1. リクナビ「内定辞退率予測サービス」を再現する
  2. 今月の応募数が減った理由
  3. アンケートを分析して求職者の潜在ニーズを探る
  4. 「Yahoo!しごと検索」で人材募集
  5. ソニーの「Prediction One」を使ってみた/ランダムフォレスト vs …

関連記事

  1. 人材採用に統計学

    分析

    今月の応募数が減った理由

    本日、拙著を購入していただいた採用担当の方とアポイントがありました。は…

  2. 平行分析

    分析

    アンケートを分析して求職者の潜在ニーズを探る

    この記事では、求職者から回収したアンケートの分析方法と、分析結果を次の…

  3. 分析

    ソニーの「Prediction One」を使ってみた/ランダムフォレスト vs Prediction…

    私の大好きなSONYさんが、データを放り投げるだけでAIが自動で分析・…

カテゴリー

最近の記事

  1. 毛蟹
  2. 超広角(歌舞伎座)
  3. リスティング広告
  4. リクルート銀座8丁目ビル

最近の記事

  1. 日比谷蟹工船
  2. iPhone 11 Pro Max
  3. リスティング広告の「掲載順位」を上げたい
  4. リクナビ「内定辞退率予測サービス」を再現する
  5. ソニーの「Prediction One」を使ってみた/ランダ…
  1. 人材採用に統計学

    分析

    今月の応募数が減った理由
  2. リスティング広告

    広告

    リスティング広告の「掲載順位」を上げたい
  3. 平行分析

    分析

    アンケートを分析して求職者の潜在ニーズを探る
  4. 分析

    ソニーの「Prediction One」を使ってみた/ランダムフォレスト vs …
  5. リクルート銀座8丁目ビル

    分析

    リクナビ「内定辞退率予測サービス」を再現する
PAGE TOP