これまでにない可能性を提案する――機械学習を活用したレコメンドシステムのその後

alt

デジタルテクノロジー統括部は、人の介在価値を最大限発揮するために、最新のテクノロジーを使って、その実現を目指しています。今回の記事では、そのミッションを体現するプロジェクトをご紹介。事業側の企画×事業BITA×デジタルテクノロジー統括部がどのように連携し、様々な大きな困難を乗り越えながら仕事を進めているのか、総勢7名の関係者が揃って“本音対談”を展開。「機械学習を活用したレコメンシステム(通称セカンドマッチ)」について振り返ります。 

※高浜、吉川は退職していますが、本人の同意を得て掲載を継続しています。

 

転職希望者にあった求人を最適な数と質で素早く提供するために

――まずは、簡単に皆さんの自己紹介と、今回のプロジェクトにおける役割を教えてください。

西村:このプロジェクトでは営業企画として、業務側のマッチングクオリティ向上を担当しています。要件定義から関わらせていただきました。

橋本: 私はシステムの要件定義、マッチングのロジックをどのように作るかを考えていくビジネス側のメンバーですね。

高浜:僕はアナリティクススとビジネスを担当していました。どのようなものを形作っていて、どういう使い方をするためにスコアを出すのかを設計。実際に統計でモデルを作ってみて検証を行い、エンジニアの皆さんに要望を出しています。

中村:いわゆる“プロジェクトマネージャー”です。西村さんなどのフロントの思いを要件として受け入れて、どのようにシステムで実現しようか?というところを繋ぐ役割です。

春日:私と吉川さんは修正作業からジョインしました。結果的には、より深くこのプロジェクトに関わることになりました。インフラ側でSparkを使った開発、ロジック設計を含めて担当しています。 

吉川:役割は春日さんと同じく、データを加工するアプリの部分の改修をしています。時々、インフラ部分に携わることもあります。

藤瀬:このプロジェクトでは、最初にAI基盤のクラウド環境の準備や構築を担当しました。AWS環境と接続する当社の基幹システム(ARCS)の調査、バックアップ周りや処理の一部も担当しています。

 

 ――では、ここからが本題ですね。まずは「人材紹介サービスのレコメンドシステム(通称:セカンドマッチ)」について教えてください。

西村:個人、法人顧客に対して、キャリアアドバイザー(以下、CA)や法人営業を介してマッチングを行うのがdodaエージェントサービスです。キャリアカウンセリングを通じて、転職希望者の経験や志向性、希望に沿ってその方に合った求人を提案していくモデルですが、月に1万件以上、新しい求人が発生する中で、人がすべての求人に目を通して最適なマッチングを実現するには限界があります。そこで2008年に基幹システムに自動的に新規求人を紹介するセカンドマッチ機能を実装しました。 

現在のセカンドマッチ機能には、転職希望者一人ひとりに対して希望に沿った求人の検索条件設定と翌日に該当求人を自動的に配信するシステムが搭載されています。勤務地や年収、希望職種などヒアリングした情報をCAが検索条件に指定すれば、新規で登録された求人情報から自動的に紹介される機能です。セカンドマッチが搭載されてから紹介案件の数が増え、転職希望者に紹介できる求人はこれまでよりも格段に量を増やすことができました。ただ、そのぶん転職成功の数も増えるか、でいうとそうでもないんです。

alt

dodaプラス事業部 企画統括部 事業推進部 事業推進グループ マネジャー 西村 有希

CAが毎日、新着求人を検索して紹介する工数をシステムに置き換えることはできましたが、転職成功の数につながっていないことを考えると、希望に沿わない求人も中にはご案内してしまっているかもしれないという構図になります。

ですからCAが指定した検索条件に合致した中でも特にマッチング精度の高いものだけが送られるようにして、転職希望者の方に適切な量の求人の紹介と転職成功に少しでも早く実現できるようにすることを目的に、業務のクオリティを高めることが、今回の“セカンドマッチの洗い替え”で実現したいミッションであるととらえています。

 

――今回のプロジェクトチームが結成された過程を教えてください。

高浜:元々は、2016年にスタートし、当時のメンバーは西村、橋本、清田、そして私の4人でしたね。 

 

西村:当時は「自動点数化」という表現が正しいですね。転職希望者が選考を通過するかどうかを判断する材料として、定量的に判断できる要素から“こういう経験を持つ方は選考通過しやすい”という標準値を法人営業が登録。

それに対して転職希望者の方が合致する要素を持っているか、持っているとしたらどの程度かで判定するという仕組みでした。CAは転職希望者が応募する企業の選考通過の可能性を判断基準として総合的にサポートをしていきます。

 

高浜:ルールエンジンを活用して、そのルールに合致しているかどうかで点数をつけ、“選考通過の可能性”を判断していました。このルールエンジンにも実は進化の過程があり、詳細にはお伝えできないのですが、まずはルールに合致するかを判断し、そのうえで合致する項目の重みづけを加える必要がありました。そこまでが第一段階。

続いて、合致した重みづけを機械学習に変えるというのが第二段階にあたります。今回は第三段階となるもので、候補者の希望の変化に合わせて、マッチングする求人を変化させていくというものです。転職希望者や求人の状況に合わせて、随時学習しながら、組み合わせを変化させます。どちらかというとこれまでの仕組みは求人側の採用ニーズを中心にマッチングが行われていましたが、互いの希望の着地点を探していく、という機能を持たせ、これまで「ヒト」に担保されすぎていた部分を一部切り出せるようにしていくつもりです。

alt

デジタルテクノロジー統括部 データ&テクノロジー ソリューション部 アナリティクスグループ シニアデータアナリスト 高浜 武史 

 ――人や案件の状態が変化するというのは、どういうことなのでしょう?

高浜:人によって応募する案件は変化しますよね。当初、希望していた職種から内定がもらえなければ、それに近い他の職種に応募することもあるでしょう。また、元々目指していた職種から、何かをきっかけにして新しいチャレンジをすることだってあります。それだけキャリア選択も応募する求人案件も変化するものと考えています。

 

一方で、案件側、すなわち求人企業も変化していきます。1人も応募がなければ必須条件を緩和したりしますよね。例えばすでに2名の転職希望者の方が面接通過している場合の3人目は、先の2人と合わせて確認をするので、少し選考基準が厳しくなるケースもあります。色々な状況に合わせて、欲しい人材の組み合わせが変化するということですね。今後は「なぜ、この人にこのタイミングでこの情報を渡しているのか?」がきちんと伝わるようにしていきたいですね。

 

エンジニアから見るセカンドマッチの複雑さと歴史の壁

――中村さんの役割は、どのような役割だったんでしょうか?

中村:今回のセカンドマッチの洗い替えにおいて、転職希望者の条件に合わせてマッチング精度の高い求人を適正な数でお届けする要件が決まり、システム化の方向性も見えていきていました。

ですが実際に進める際には、基幹システム内外での業務を誰が何をしていて、それをどのように組み合わせて進めていくのか、を深く踏み込む必要がありました。歴史のあるシステムなので、機能の増築が繰り返されて複雑な構成となったり、当初の目的が分からなくなったロジックやドキュメントにない仕様があったりするので。

alt

テクノロジー本部 BITA統括部 プロジェクトBITA部 システムPMグループ シニアコンサルタント 中村 正幸 

 本当に実装し活用できるのか、全体を調整しながらプロジェクトを前に進めていく、そんな役割と自覚していました。当初、僕は状況がよく分からなかったのでヒアリングを重ね、それを整理しているうちになんとなくまとまってきて…。そこからは、様々なチャレンジを繰り返しましたね。

 

――デジタルテクノロジー統括部の開発メンバーのみなさんは、最初にこのプロジェクトに入ったときの印象をお聞かせいただきたいです。正直言って、キャッチアップも大変だったのではないでしょうか。 

春日:そうですね。セカンドマッチの内容自体が結構奥深いので、いまだに分からない仕様はたくさんあります。キャッチアップはけっこう大変でした。

 

吉川:僕がジョインしたときには、“新しい技術にチャレンジしているな”という印象があり、“やりがいがありそうだ”と思いました。このプロジェクトで最初に手掛けたアプリは元々ベンダーさんが作ったものだったので、ソースコードなどは何が書いてあるか、なんでこれを書いたのか分からない状態でした(笑)その理解から始めるのに、とても苦労したことを覚えています。ロジックを理解するのに半年ほどかかりましたね。

alt

左からデジタルテクノロジー統括部 リードエンジニア吉川、シニアストラテジスト 橋本、BITA統括部 シニアコンサルタント 中村

橋本:検索ロジックで、案件検索に「こういうものを含む」と希望条件を入れるといくつか検索がヒットしますが、過去の判断では「そうではないものを外す」という設定になっていました。それを理解するのが大変でしたね。項目ごとの検索ロジックの要件定義を見ましたが、表現が難しかったですね。単純に1項目であれば70ほどの検索ロジックで済むのに、それに対して「含む・含まない」の検索方法があるので250にまで膨れあがっていましたね。

 

藤瀬:僕が入った時には、吉川さんから「変数の意味が分からない…」と聞かされていて。ソースコードが理解しづらいというので、私も一緒に見ましたが、4文字の英文字などに省略をし過ぎてしまっていて、その名前が何を表しているのかが分かりませんでした。

 

中村:基幹システム側の古い変数がそのまま使われていました。日本語も母音を外したような書き方をされていましたし…。そこに会社の特殊な言い回しなどが絡んできて、さらに難しくなっていました。ソースの変数になってしまうと結局何を表しているのかが分からないので、結局はデータベースとにらめっこするしかなかったですね。非常に時間がかかる作業を開発側のメンバーにお願いしていましたね。

 

――数十年使われているシステムなので、当時の思想などはわからないですもんね。その中で今回のプロジェクトが可能になったのはどのような技術を活用したのでしょうか?

中村:個人的には、大量なデータ処理できる基盤が構築できたことが大きいと思っています。それによって機械学習が活かせるようになりました。技術面における大きな壁は、やはりオンプレ環境でしたね…。

 

春日:そうですね。事業側が求める時間までに処理を終わらせて配信まで持っていくというのは、どうしてもオンプレではスケーリングができない。膨大に増えていくデータに対応ができたのは、やはりクラウドが大きかったと思います。

alt

デジタルテクノロジー統括部 データ&テクノロジー ソリューション部 エンジニアリンググループ リードエンジニア 春日 善信

 中村:オンプレ環境によって生じる問題は2つあります。ひとつはパフォーマンス面。春日さんが言うように、時間までに処理が終わらないという問題ですね。もうひとつは、オンプレを導入したときにシステムの不安定動作の解決や、バージョンアップ検証に時間がかかるということ。

2つを解決していくには、ハードウェアやミドルウェアに精通していなければ、とても時間がかかるということが見えてきました。そこに時間をかけていると、なかなかリリースができないので、オンプレではなくクラウドサービスを活用してスピーディに出すという選択をしたことが、ブレークスルーになりました。

 

パーソルキャリアの新しい事業の柱となりうるPJTに参画した意義

――できることの幅が広がったように感じているのですが、皆さんがこのプロジェクトに関わったことで何か意識の変化はありましたか?

橋本:技術的な背景により、大量処理の技術を使いましたが、オンプレからクラウドに移行するにあたり、これまで扱えなかったデータが取れたり、検証環境もスピーディーに立ち上がったり、あまり時間をかけずにできたのは大きいですね。

それはある意味、ビジネス側の判断を早めるというか、進められる環境になったと思います。データを集計して検証したり、人が判断してスコア化しているところをどのように評価するかというのは、すぐにデータ抽出できなかったりしますが、クラウドでは比較的スピーディにできます。それを扱える技術の基盤をエンジニアサイドが持っていたので、相談しやすかったですね。

 

中村:経験豊富なベンダーさんと一緒に進めると話が早いという良さはありましたが、結局は契約の縛りがあるので、フレキシブルに動いてくれるわけでもありません。なので“やってみなければ分からない”という局面においては、非常に進めづらいという課題がありました。

そこで第二期に入った段階で内製のメンバーを増やしてもらったことで、“やってみなければ分からない”チャレンジングな進め方も可能になりました。これは大きな変化だったと思います。

内製のエンジニアの中に、新しい技術に詳しくてチャレンジができるメンバーがいると、トライをして次に繋げることができます。その点で非常に助かっていますし、こういった体制があったからこそ、クラウドへの移行もスムーズに進めることができました。

 

――エンジニアのみなさんはいかがですか?

吉川:パーソルキャリアに入社して感じたのは、データの活用が今後の事業成長を推し進める重要なものであり、また大量のデータを使って事業に貢献できそうだと思いました。技術的な面では、データをどのように加工するかということはあまり経験がなかったので、データエンジニアとしてのキャリアアップができて良かったとは思います。また自分がやりたいと言えばやらせてもらえる環境だったのも良かったですね。

alt

デジタルテクノロジー統括部 データ&テクノロジー ソリューション部 エンジニアリンググループ リードエンジニア 吉川 侑希

アーキテクチャについては、基幹システムからSqoopインポートを使ってAI基盤に移しています。その部分はプログラミング言語ではなく、Sqoopのコマンドを使ってインポートをさせてデータを加工します。さらにSparkで個人データと求人案件のデータに対して、いくつかの判定を決めつつ、機械学習をまわすための準備のデータ加工を行っていました。また、機械学習もSparkで実行しています。機械学習をまわした結果に対して、候補者の希望案件と案件を照らし合わせてセカンドマッチを配信しています。

 

――データエンジニアとしてのやりがいはどんなところにありますか?

吉川:今まではWebアプリケーションを使用して構築していたので、画面を見ながら確認できましたが、データの世界では、正直、“やってみなければ分からない”部分があります。また、データの元を確認しながら、“どのようなロジックで考えていくのか”というが、私の中では難しい部分ではありますが、同時にやりがいを感じていました。

 

藤瀬:EMRまわりを主に担当していましたが、本格的に触ったのは今回の案件が初めてで、クラウドも少し触っていましたが、分析用の環境は初めてでした。最終的な自分のゴールは、“いかに楽になるか”ということ。勝手にバッチがまわって処理が終わっているのが理想だと思うので、そのためには、どのようなツールを使えばよいのかを、AWSのマニュアルを見ながら考えて進めてきました。

alt

デジタルテクノロジー統括部 データ&テクノロジー ソリューション部 エンジニアリンググループ リードエンジニア 藤瀬 聡一郎

もともとオンプレで動いていたのをEMRで動かさなければならなかったので、“今までオンプレで動いていたソースをどのように動かすか?”ということに、けっこう時間がかかりました。でも、1日にひとつ新しい発見があったので、そこは楽しかったです。少しでも処理を変えるとエラーになるので、リリース前は春日さんとヒヤヒヤしながらやっていたのも、今は良い思い出となっています。

 

春日:そうですね。リリースの3日前に仕様変更があって大変でした(笑)。

ここは他のプロジェクトとセカンドマッチプロジェクトの違いというか、やりがいがあるところで、ロジックまわりで大きなデータを扱えるところと、インフラに関しても開発者としての喜びがあります。

また、セカンドマッチ自体、パーソルキャリアにとってひとつの大きな事業の柱となっていくシステムだと思いますし、その開発に関われたということが大きなやりがいで、この環境を提供していただいたことに感謝しています。

 

このシステムを理解している方が1人、2人いて、我々も少しずつ内容を理解してきましたが、今後、このセカンドマッチを軸に、会社のDXを考えていくうえで、属人化したやり方では難しいと思います。解決するためには様々なものを可視化・ドキュメント化して、横展開をしていく必要があると思っています。

 

高浜:内製で開発をするにしても、チャレンジできるところと、できないところがあります。新しいことを見つけたり、やったことがない技術を駆使してもいいから、要望を叶えるためにはどうすればいいのかを考えていくことに時間を使えること自体は、我々の組織の特徴だと思います。内製エンジニアだからこそのクイックな対応を求められます。急な仕様変更もありますが、それを楽しいと思ってくれる人がいる、そんな職場でもあります。

 

――西村さんから見た、このプロジェクトのやりがいは?

西村:これまでのマッチングの在り方を変革するようなプロジェクトだったと思います。まさしく来月あたりから、マッチング精度が高いものしか送らないことになるので、そこで実際に僕たちが狙っていたような成果が出るのかという点は確認が必要です。でも、恐らくそこで僕たちが正しかったということが証明できるのではと確信しています。

これが実現できれば、顧客へ良い体験を提供できるきっかけになると思います。一部過剰な情報提供によって判断がしづらい状況を招いてしまっていたので、そこを大きく変えられるはずです。弊社サービスにとってターニングポイントになるプロジェクトに関われたということで、大きなやりがいを感じています。

 

――この先の展望についてお聞かせください。

西村:ビジネス側としては、これを生み出したところが、ようやくのスタート地点だと思っています。最終的には、人が指定した範囲の中でしか安心して任せられない精度ではなく、テクノロジーを活用して転職希望者と求人案件の最適なマッチングがどんどん提案されるようなシステムにまで昇華させていくと、使い方の幅が広がると思います。

 

精度を上げるためには、不足しているインプット情報を扱っていくことが重要です。今は、求人案件を受け取り応募したいのかどうか、選考通過可能性が高いのかどうか、という点を結果から受け取っていますが、そこだけではなくて、志向性の変化などもインプット情報として扱えるようになると、また違った評価になってくると思います。インプット情報のバリエーションを増やしていく、有効なインプット情報を見定めに行くことが重要です。

 

 

橋本:西村さんが言っていることを、実際にどのように実現していくのかが僕の仕事だと思っています。転職希望者が応募したい、選考通過可能性が高い、という軸で案件紹介がされますが、そこに転職希望者の状態を捉えて、インプット情報を加えていくことで、より使える状態にしていくことを合わせて考えていきたいと思っています。

alt

デジタルテクノロジー統括部 データ&テクノロジー ビジネス部 ビジネスグループ シニアストラテジスト 橋本 久

人が判断する際の情報も使おうとしていて、例えば、音声や会話の情報、職務経歴書、仕事内容など扱いがなかなか難しいものも加えようとしていて、そのあたりの研究も進めています。いずれ、そういった要素をマッチングに組み込んでいくと精度も上がっていくと考えています。

 

――開発側の方々の展望を教えてください。

春日:最適なエンジニアの体制を考えています。できる人材、関わる人材を増やしていくことで、セカンドマッチを軸としてパーソルキャリアのDX、働き方改革に携われるようなエンジニアを増やしていくのは理想ですし、我々も、様々なことにチャレンジできると思っています。西村さんや橋本さんが言っていたようなことを実現しつつ、色々なことを試していきたいですね。

 

橋本:今回のセカンドマッチは、このメンバーだから実現できたことだと思います。

新しく何かを生み出すために、ビジネスも、エンジニアもアナリティクスも、ひとつになれるような価値観が共有できたのが大きいですね。エンジニアやアナリティクスも、ビジネスとしてどのように使っていくかを一緒に考えることができたから、そういう文化ができあがっていた。だから新しいエンジニアが増えても、その文化は崩れずに動くことができたのだと思いますね。

alt

 ――皆さんのチームワークとビジネスを支えていく大きなチャレンジであることが伝わりました!ありがとうございました!

(インタビュー・編集=伊藤秋廣(エーアイプロダクション)/執筆=The Text Factory(エーアイプロダクション)/撮影=古宮こうき)

alt

西村 有希 Yuki Nishimura

dodaプラス事業部 企画統括部 事業推進部 事業推進グループ マネジャー

alt

中村 正幸 Masayuki Nakamura

テクノロジー本部 BITA統括部 プロジェクトBITA部 システムPMグループ シニアコンサルタント

alt

高浜 武史 Takeshi Takahama

デジタルテクノロジー統括部 データ&テクノロジー ソリューション部 アナリティクスグループ シニアデータアナリスト

現在は退職。

alt

橋本 久 Hisashi Hashimoto

デジタルテクノロジー統括部 データ&テクノロジー ビジネス部 ビジネスグループ シニアストラテジスト

alt

春日 善信 Yoshinobu Kasuga

デジタルテクノロジー統括部 データ&テクノロジー ソリューション部 エンジニアリンググループ リードエンジニア

alt

藤瀬 聡一郎 Soichiro Fujise

デジタルテクノロジー統括部 データ&テクノロジー ソリューション部 エンジニアリンググループ リードエンジニア

alt

吉川 侑希 Yuki Yoshikawa

デジタルテクノロジー統括部 データ&テクノロジー ソリューション部 エンジニアリンググループ リードエンジニア

現在は退職。

※2020年7月現在の情報です。