Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
HR Tech x 機械学習 導入事例紹介
株式会社ビズリーチ HRMOS事業部 エンジニア
田部 亮介
2017/02/23 (thu)
1
事前アンケートの結果
2
30%
30%
26%
13%
機械学習に興味あり: 30%
AIの活用方法に興味 : 30%
HR Techに興味あり: 26%
その他 : 13%
今日お話すること
• HR領域のSaaS 「HRMOS」 の紹介
• 機械学習の技術をどのように導入、活用しているか
• 今後の展望について
total 60page
3
自己紹介
• 名前: 田部亮介 (べーたべ)
• 高知県出身 29歳
• ビズリーチ入社4年目
• 大学文系(経済学部)
• スタンバイ事業部(1年ちょっと機械学習やってました)
-> HRMOS事業部 採用管理チーム
4
D3 とは
創業以来、高い技術力と戦略的なUI/UXを武器に、
世の中に価値あるサービスを生み出しているビズリーチ。
サービスの数が増えるにつれ、技術の幅が広がったため、
そのスキルやノウハウを社内のみならず、
世の中のエンジニアやデザイナーと...
HR領域のSaaS の紹介
人事の仕事って本当に大変ですよね…
7
例えばビズリーチの場合、
10人採用したいとすると…
採用のお仕事の悩み
• 面接、面談の情報が属人化しがちで、一般化しづらい…
• 職種毎に毛色の違う人材を採用していて採用要件が違う…
• 採用担当者が変わるともう…
8
9
• 採用管理、勤怠管理、評価管理など、人事領域の仕事の効率化を目的
として作られたモジュール群です。
• 現在リリースしているものは 採用管理 、 勤怠管理 の2つです。
• 今後は評価管理、組織管理など、あらゆる人事領域で必要な仕事を効
率化...
11
の描く未来図
12
の描く未来図
作られた背景
13
スタンバイ
• 検索結果の最適化やUX改善のために、
機械学習の技術を用いて様々な工夫をしています。
例:
年収予測
職種予測
キーワードサジェスト
• その中のATSから派生して出来たのがHRMOSです。
14
ATS ( Applicant Tracking System )
15
メールのやり取り 面接の設定 候補者の管理
採用管理ツール
のmission
16
採用活動を効率化するためには
• システムで解決できることはシステムに任せる!(自動化)
• 判断や作業に時間がかかるものには、サジェストしたりフローを簡単
にする!(簡易化)
17
ビズリーチがHR Techをやる強み
1. 自社で毎月 1,000名 以上の応募者と接点を作って来たことで
蓄積されている人事データ
2. 人材サービス(ビズリーチ, careertrek等) を展開していく中で得た知
見
(※個人情報の保護に...
採用管理ツールへの機械学習の導入と、
導入までの一連の流れ
ご紹介する機能
20
「応募者の書類選考評価予測」 機能
書類選考?
21
書類選考
面接
入社
書類選考が、
採用活動の中で1番多い
書類選考ってどこを見てますか?
• 職歴 / 学歴
( = 経験 )
• 年齢
• 写真
• 資格
• 募集しているポジション
とのマッチ度
22
判断
応募者の書類選考評価予測
• 応募書類情報と、企業情報、また求人情報から、
書類選考でどの評価 [S,A,B,C] を受けるのかを予測する機能です。
23
応募
デモ画面をちらっとお見せします
概略図
25
応募者が
情報を入力したら
評価予測
予測結果表示
AIサーバ応募者
RDB
評価
採用担当者
導入までイメージ
• 「書類選考の合格率予想を作って欲しい」との要望
• 納期1ヶ月
• 書類選考したことない人が実装担当 ( 1人 )
※ インフラは揃えていただきました。
• スタンバイで使った自然言語処理の知識は持ってた
26
事前に把握しておくイメージ
27
問題の性質 学習器の特徴
実装方法
数値化の手法
(ベクトル化)
Z
事前に把握しておくイメージ
28
問題の性質
どんなデータがあるか
数値を求めたいのか
分類したいのか
応募者のレジュメ
企業情報
求人情報
事前に把握しておくイメージ
29
学習器の特徴
学習器にはどんなものがあるのか
それぞれどんな用途に強いのか
どんな データフォーマットを
用意すれば良いのか
svm
決定木
ロジスティック回帰
事前に把握しておくイメージ
30
数値化の手法
(ベクトル化)
学習対象のデータを、
どうやったら数値で表せれるのか
どんな手法があるのか
CountVectorizer
TfIdfVectorizer
事前に把握しておくイメージ
31
実装方法
データの数値化(ベクトル化)や
学習器の使い方
予測結果をどうするのか
python
R
scikit-learn
用意した武器
• python
- scikit-learn, pandas
- common-ml
(弊社で作っている ml のライブラリです。)
• elasticsearch
- 形態素解析用サーバとして使用
32
使った技術・手法
• 自然言語処理
• 決定木 ( DesicionTreeClassifier )
• SVM ( サポートベクターマシン )
• 多項ロジスティック回帰
33
はじめにやったこと
• 決定木のモデルを作ってみて、どこのどんなキーワードまたは数値が
書類選考の結果に強い影響を持つかを調べてみる
34
どうやってやるか
• 応募者のレジュメデータと、求人情報、企業情報を全てまとめる
• elasticsearchを使ってそれらのデータを形態素解析し、
CountVectorizerで数値化 (ベクトル化) する
• scikit-learnの...
学習するデータが決まれば
• 実際の書類選考の結果を教師データ、
事前の調査で使うと決めたデータを学習データとして学習させたい
( 教師あり学習 ・ 2値分類 )
• でも書類情報や企業情報はただの文字情報…
36
データの数値化(ベクトル化)
• レジュメなどテキストデータの数値化には、
Bug-Of-Words ( BOW ) と呼ばれる手法が一般的です。
• 今回は BOW の中でも尤もシンプルな
CountVectorizer を使いました。
37
決定木の結果を見て
• 強い影響を与えるのがどこのデータなのかを大体把握した
( 職歴、学歴、年齢、住所等… )
=> 学習の際は、それらの強い影響を与えるデータのみ
を扱うようにする
38
すごくざっくりした図
39
応募情報
・年齢
・学歴
・職歴
・住所等
求人情報
企業情報
書類選考
評価
ベクトル化
(CountVectorizer)
[1,0,2,
0,0,1,
…
0,0,1]
y
モデル
作成
学習するデータが決まれば
• どんな学習器を使うかの選定になります。
• 今回は合否判定を作っていたので、
まずは 2値分類に強い SVM (サポートベクターマシン) を使いました。
40
SVM
41
合格
不合格
SVM
• 合格 と 不合格 のちょうど良いところに線を引いて、分類する
• 直線からの距離が遠ければ遠いほど信頼度が高い
=> 正解率が高い と判断できる
=> 直線からの距離を一定数値間に置き換えて、
確率に変換していました。
42
でもあまり結果が良くない…
• 理由:
1. 学習データ( 応募者のレジュメ )の情報がまばら
2. 途中で S, A, B, C の評価を出力するように変更が入り、
合格、不合格といった2値分類には精度が出るが
4択 ( 評価: S, A, ...
2値分類 -> 多値分類
• 問題の性質が変わってしまったため、
次の手法を選択しないといけない…
• 多値分類を解く問題に変わったので、次は
多項ロジスティック回帰を使って予測をするように変更しました。
44
多項ロジスティック回帰
• これは n 個への分類に対して、それぞれの尤度を出すモデルです。
• 多項ロジスティック回帰を使って、
評価 [ S, A, B, NG ] の中で1番予想確率の高いものを
選択するようにしました。
45
• 詳細はまた次回…
( 3/13 Mon にこの詳細についての勉強会が開催予定ですので、
もし興味があればそちらにご参加ください m_ _m )
46
多項ロジスティック回帰
これで予測ができるようになりました!
• あとは、AIサーバとAPIを繋いで、
応募情報の追加や更新があれば予測結果をDBに書き込みます。
• 応募者の書類選考の際には、予測結果を取得して表示します。
47
事前に把握しておくイメージ
48
問題の性質 学習器の特徴
実装方法
数値化の手法
(ベクトル化)
Z
なぜこの機能を作ったのか
と
今後の展望について
応募書類評価予測を作った理由
50
採用活動の効率化
応募書類評価予測を作った理由
51
書類 面談 面接 内定 入社
企業が人材を採用する流れ
採用のお仕事 ( 再 )
52
例えばビズリーチの場合、
10人採用したいとすると…
応募書類評価予測を作った理由
• 応募書類評価が予測できる
=> 1次面接の予測ができる
=> 内定予測…
=> 内定承諾予測…
• それらの先駆けとしてまず導入しました。
53
様々な予測が出来るようになれば
54
書類 面談 面接 内定 入社
企業が人材を採用する流れ
様々な予測が出来るようになれば
55
書類 面談 面接 内定 入社
30%20% 80% 50%
56
様々な人事モジュールがつながる未来
• 社内の評価が高い人材と似ている応募があれば、
積極的に採用してみる
• 勤怠、健康の乱れ、評価の情報から、
離職率を下げれるような動きを取り、事前に防ぐ
• 過去のデータから戦略的な人材配置のアシスト
e...
まだまだ挑戦は始まったばかり…
58
59
一緒に挑戦してくれる仲間を募集中です!
60
ご清聴ありがとうございました。
Upcoming SlideShare
Loading in …5
×

HR Tech x 機械学習 導入事例紹介

7,337 views

Published on

2017/02/23 の D3勉強会の資料です。
該当する勉強会イベントはこちら
https://d-cube.connpass.com/event/51407/

Published in: Engineering
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

HR Tech x 機械学習 導入事例紹介

  1. 1. HR Tech x 機械学習 導入事例紹介 株式会社ビズリーチ HRMOS事業部 エンジニア 田部 亮介 2017/02/23 (thu) 1
  2. 2. 事前アンケートの結果 2 30% 30% 26% 13% 機械学習に興味あり: 30% AIの活用方法に興味 : 30% HR Techに興味あり: 26% その他 : 13%
  3. 3. 今日お話すること • HR領域のSaaS 「HRMOS」 の紹介 • 機械学習の技術をどのように導入、活用しているか • 今後の展望について total 60page 3
  4. 4. 自己紹介 • 名前: 田部亮介 (べーたべ) • 高知県出身 29歳 • ビズリーチ入社4年目 • 大学文系(経済学部) • スタンバイ事業部(1年ちょっと機械学習やってました) -> HRMOS事業部 採用管理チーム 4
  5. 5. D3 とは 創業以来、高い技術力と戦略的なUI/UXを武器に、 世の中に価値あるサービスを生み出しているビズリーチ。 サービスの数が増えるにつれ、技術の幅が広がったため、 そのスキルやノウハウを社内のみならず、 世の中のエンジニアやデザイナーとも共有すべく、 私たちは「D3(ディーキューブ)※」というプロジェクトチームを立ち 上げました。 D3では、たくさんのイベントや勉強会を開催し、 世のエンジニア・デザイナーと共に、さらなる高みを目指します。 ※D3=DESIGNER & DEVELOPER DIVISION 5
  6. 6. HR領域のSaaS の紹介
  7. 7. 人事の仕事って本当に大変ですよね… 7 例えばビズリーチの場合、 10人採用したいとすると…
  8. 8. 採用のお仕事の悩み • 面接、面談の情報が属人化しがちで、一般化しづらい… • 職種毎に毛色の違う人材を採用していて採用要件が違う… • 採用担当者が変わるともう… 8
  9. 9. 9
  10. 10. • 採用管理、勤怠管理、評価管理など、人事領域の仕事の効率化を目的 として作られたモジュール群です。 • 現在リリースしているものは 採用管理 、 勤怠管理 の2つです。 • 今後は評価管理、組織管理など、あらゆる人事領域で必要な仕事を効 率化するモジュールを出して行く予定です。 10
  11. 11. 11 の描く未来図
  12. 12. 12 の描く未来図
  13. 13. 作られた背景 13
  14. 14. スタンバイ • 検索結果の最適化やUX改善のために、 機械学習の技術を用いて様々な工夫をしています。 例: 年収予測 職種予測 キーワードサジェスト • その中のATSから派生して出来たのがHRMOSです。 14
  15. 15. ATS ( Applicant Tracking System ) 15 メールのやり取り 面接の設定 候補者の管理 採用管理ツール
  16. 16. のmission 16
  17. 17. 採用活動を効率化するためには • システムで解決できることはシステムに任せる!(自動化) • 判断や作業に時間がかかるものには、サジェストしたりフローを簡単 にする!(簡易化) 17
  18. 18. ビズリーチがHR Techをやる強み 1. 自社で毎月 1,000名 以上の応募者と接点を作って来たことで 蓄積されている人事データ 2. 人材サービス(ビズリーチ, careertrek等) を展開していく中で得た知 見 (※個人情報の保護には最新の注意を払っています) 3. スタンバイを作ってくることで得た機械学習のノウハウ 18
  19. 19. 採用管理ツールへの機械学習の導入と、 導入までの一連の流れ
  20. 20. ご紹介する機能 20 「応募者の書類選考評価予測」 機能
  21. 21. 書類選考? 21 書類選考 面接 入社 書類選考が、 採用活動の中で1番多い
  22. 22. 書類選考ってどこを見てますか? • 職歴 / 学歴 ( = 経験 ) • 年齢 • 写真 • 資格 • 募集しているポジション とのマッチ度 22 判断
  23. 23. 応募者の書類選考評価予測 • 応募書類情報と、企業情報、また求人情報から、 書類選考でどの評価 [S,A,B,C] を受けるのかを予測する機能です。 23 応募
  24. 24. デモ画面をちらっとお見せします
  25. 25. 概略図 25 応募者が 情報を入力したら 評価予測 予測結果表示 AIサーバ応募者 RDB 評価 採用担当者
  26. 26. 導入までイメージ • 「書類選考の合格率予想を作って欲しい」との要望 • 納期1ヶ月 • 書類選考したことない人が実装担当 ( 1人 ) ※ インフラは揃えていただきました。 • スタンバイで使った自然言語処理の知識は持ってた 26
  27. 27. 事前に把握しておくイメージ 27 問題の性質 学習器の特徴 実装方法 数値化の手法 (ベクトル化) Z
  28. 28. 事前に把握しておくイメージ 28 問題の性質 どんなデータがあるか 数値を求めたいのか 分類したいのか 応募者のレジュメ 企業情報 求人情報
  29. 29. 事前に把握しておくイメージ 29 学習器の特徴 学習器にはどんなものがあるのか それぞれどんな用途に強いのか どんな データフォーマットを 用意すれば良いのか svm 決定木 ロジスティック回帰
  30. 30. 事前に把握しておくイメージ 30 数値化の手法 (ベクトル化) 学習対象のデータを、 どうやったら数値で表せれるのか どんな手法があるのか CountVectorizer TfIdfVectorizer
  31. 31. 事前に把握しておくイメージ 31 実装方法 データの数値化(ベクトル化)や 学習器の使い方 予測結果をどうするのか python R scikit-learn
  32. 32. 用意した武器 • python - scikit-learn, pandas - common-ml (弊社で作っている ml のライブラリです。) • elasticsearch - 形態素解析用サーバとして使用 32
  33. 33. 使った技術・手法 • 自然言語処理 • 決定木 ( DesicionTreeClassifier ) • SVM ( サポートベクターマシン ) • 多項ロジスティック回帰 33
  34. 34. はじめにやったこと • 決定木のモデルを作ってみて、どこのどんなキーワードまたは数値が 書類選考の結果に強い影響を持つかを調べてみる 34
  35. 35. どうやってやるか • 応募者のレジュメデータと、求人情報、企業情報を全てまとめる • elasticsearchを使ってそれらのデータを形態素解析し、 CountVectorizerで数値化 (ベクトル化) する • scikit-learnのDecisionTreeClassifierで学習させてみて、 結果をpandasでpdf出力して眺める 35
  36. 36. 学習するデータが決まれば • 実際の書類選考の結果を教師データ、 事前の調査で使うと決めたデータを学習データとして学習させたい ( 教師あり学習 ・ 2値分類 ) • でも書類情報や企業情報はただの文字情報… 36
  37. 37. データの数値化(ベクトル化) • レジュメなどテキストデータの数値化には、 Bug-Of-Words ( BOW ) と呼ばれる手法が一般的です。 • 今回は BOW の中でも尤もシンプルな CountVectorizer を使いました。 37
  38. 38. 決定木の結果を見て • 強い影響を与えるのがどこのデータなのかを大体把握した ( 職歴、学歴、年齢、住所等… ) => 学習の際は、それらの強い影響を与えるデータのみ を扱うようにする 38
  39. 39. すごくざっくりした図 39 応募情報 ・年齢 ・学歴 ・職歴 ・住所等 求人情報 企業情報 書類選考 評価 ベクトル化 (CountVectorizer) [1,0,2, 0,0,1, … 0,0,1] y モデル 作成
  40. 40. 学習するデータが決まれば • どんな学習器を使うかの選定になります。 • 今回は合否判定を作っていたので、 まずは 2値分類に強い SVM (サポートベクターマシン) を使いました。 40
  41. 41. SVM 41 合格 不合格
  42. 42. SVM • 合格 と 不合格 のちょうど良いところに線を引いて、分類する • 直線からの距離が遠ければ遠いほど信頼度が高い => 正解率が高い と判断できる => 直線からの距離を一定数値間に置き換えて、 確率に変換していました。 42
  43. 43. でもあまり結果が良くない… • 理由: 1. 学習データ( 応募者のレジュメ )の情報がまばら 2. 途中で S, A, B, C の評価を出力するように変更が入り、 合格、不合格といった2値分類には精度が出るが 4択 ( 評価: S, A, B, C ) は苦手だった… 43
  44. 44. 2値分類 -> 多値分類 • 問題の性質が変わってしまったため、 次の手法を選択しないといけない… • 多値分類を解く問題に変わったので、次は 多項ロジスティック回帰を使って予測をするように変更しました。 44
  45. 45. 多項ロジスティック回帰 • これは n 個への分類に対して、それぞれの尤度を出すモデルです。 • 多項ロジスティック回帰を使って、 評価 [ S, A, B, NG ] の中で1番予想確率の高いものを 選択するようにしました。 45
  46. 46. • 詳細はまた次回… ( 3/13 Mon にこの詳細についての勉強会が開催予定ですので、 もし興味があればそちらにご参加ください m_ _m ) 46 多項ロジスティック回帰
  47. 47. これで予測ができるようになりました! • あとは、AIサーバとAPIを繋いで、 応募情報の追加や更新があれば予測結果をDBに書き込みます。 • 応募者の書類選考の際には、予測結果を取得して表示します。 47
  48. 48. 事前に把握しておくイメージ 48 問題の性質 学習器の特徴 実装方法 数値化の手法 (ベクトル化) Z
  49. 49. なぜこの機能を作ったのか と 今後の展望について
  50. 50. 応募書類評価予測を作った理由 50 採用活動の効率化
  51. 51. 応募書類評価予測を作った理由 51 書類 面談 面接 内定 入社 企業が人材を採用する流れ
  52. 52. 採用のお仕事 ( 再 ) 52 例えばビズリーチの場合、 10人採用したいとすると…
  53. 53. 応募書類評価予測を作った理由 • 応募書類評価が予測できる => 1次面接の予測ができる => 内定予測… => 内定承諾予測… • それらの先駆けとしてまず導入しました。 53
  54. 54. 様々な予測が出来るようになれば 54 書類 面談 面接 内定 入社 企業が人材を採用する流れ
  55. 55. 様々な予測が出来るようになれば 55 書類 面談 面接 内定 入社 30%20% 80% 50%
  56. 56. 56
  57. 57. 様々な人事モジュールがつながる未来 • 社内の評価が高い人材と似ている応募があれば、 積極的に採用してみる • 勤怠、健康の乱れ、評価の情報から、 離職率を下げれるような動きを取り、事前に防ぐ • 過去のデータから戦略的な人材配置のアシスト etc… 57
  58. 58. まだまだ挑戦は始まったばかり… 58
  59. 59. 59
  60. 60. 一緒に挑戦してくれる仲間を募集中です! 60
  61. 61. ご清聴ありがとうございました。

×