(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023121251
(43)【公開日】2023-08-31
(54)【発明の名称】マッチング装置およびプログラム
(51)【国際特許分類】
G06Q 10/04 20230101AFI20230824BHJP
G06N 3/08 20230101ALI20230824BHJP
【FI】
G06Q10/04
G06N3/08
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022024485
(22)【出願日】2022-02-21
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
(71)【出願人】
【識別番号】000233538
【氏名又は名称】株式会社日立ソリューションズ東日本
(74)【代理人】
【識別番号】110002572
【氏名又は名称】弁理士法人平木国際特許事務所
(72)【発明者】
【氏名】清藤 駿成
(72)【発明者】
【氏名】星 魁人
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA04
(57)【要約】
【課題】異なる部門に所属するパートナとプロジェクトの適合度を、より正確に予測できるマッチング装置およびプログラムを提供する。
【解決手段】パートナとプロジェクトの適合度を予測するマッチング装置であって、マッチング装置は、学習手段および予測手段を備える。機械学習処理は、パートナ属性値およびプロジェクト属性値を入力とし、正解適合度により近い予測適合度を出力するよう学習する、第1学習処理と、パートナ属性値およびプロジェクト属性値を入力とし、どの部門の適合度の予測にも使える共通の予測方法を学習する、第2学習処理と、を含み、予測手段は、学習済みモデルを用いて、パートナに関する情報およびプロジェクトに関する情報に基づいて適合度を予測する。
【選択図】
図7
【特許請求の範囲】
【請求項1】
パートナとプロジェクトの適合度を予測するマッチング装置であって、
前記マッチング装置は、学習手段および予測手段を備え、
前記学習手段は、パートナ属性値、プロジェクト属性値、パートナ正解部門、プロジェクト正解部門、および正解適合度に基づいて機械学習処理を行うことにより学習済みモデルを生成し、
前記機械学習処理は、
‐前記パートナ属性値および前記プロジェクト属性値を入力とし、前記正解適合度により近い予測適合度を出力するように学習する、第1学習処理と、
‐前記パートナ属性値および前記プロジェクト属性値を入力とし、どの部門の適合度の予測にも使える共通の予測方法を学習する、第2学習処理と、
を含み、
前記予測手段は、前記学習済みモデルを用いて、パートナに関する情報およびプロジェクトに関する情報に基づいて適合度を予測する、
マッチング装置。
【請求項2】
請求項1に記載のマッチング装置であって、
前記第1学習処理は、
前記パートナ属性値に基づいてパートナ特徴量を計算する処理と、
前記プロジェクト属性値に基づいてプロジェクト特徴量を計算する処理と、
前記パートナ特徴量および前記プロジェクト特徴量に基づいて前記予測適合度を計算する処理と、
前記正解適合度と前記予測適合度との誤差である適合度誤差がより小さくなるように学習を行う処理と、
を含む、マッチング装置。
【請求項3】
請求項2に記載のマッチング装置であって、
前記第2学習処理は、
前記パートナ特徴量に基づいて、パートナが所属するパートナ予測部門を予測する処理と、
前記パートナ予測部門と、前記パートナ正解部門との誤差として、パートナ部門誤差を計算する処理と、
前記パートナ部門誤差がより大きくなるように学習を行う処理と、
を含む、マッチング装置。
【請求項4】
請求項3に記載のマッチング装置であって、
前記第2学習処理は、
前記プロジェクト特徴量に基づいて、プロジェクトが所属するプロジェクト予測部門を予測する処理と、
前記プロジェクト予測部門と、前記プロジェクト正解部門との誤差として、プロジェクト部門誤差を計算する処理と、
前記プロジェクト部門誤差がより大きくなるように学習を行う処理と、
を含む、マッチング装置。
【請求項5】
請求項4に記載のマッチング装置であって、
前記パートナ特徴量および前記プロジェクト特徴量はベクトルによって表され、
前記機械学習処理は深層ニューラルネットワークを用いて行われる、
マッチング装置。
【請求項6】
請求項1に記載のマッチング装置であって、
前記予測適合度は、二乗誤差またはコサイン類似度を用いて計算される、
マッチング装置。
【請求項7】
請求項3に記載のマッチング装置であって、
前記パートナ予測部門は、当該パートナが各部門に属する尤度を表すベクトルによって表され、
前記パートナ正解部門は、当該パートナが当該部門に属する尤度を1とし、当該パートナが他の部門に属する尤度を0とするベクトルによって表され、
前記パートナ部門誤差は、交差エントロピー誤差関数を用いて計算される、
マッチング装置。
【請求項8】
請求項5に記載のマッチング装置であって、
前記機械学習処理は、
‐前記パートナ属性値を入力とし、前記パートナ特徴量を出力とする第1深層ニューラルネットワークと、
‐前記プロジェクト属性値を入力とし、前記プロジェクト特徴量を出力とする第2深層ニューラルネットワークと、
‐前記パートナ特徴量を入力とし、前記パートナが所属するパートナ予測部門を出力とする第3深層ニューラルネットワークと、
‐前記プロジェクト特徴量を入力とし、前記プロジェクトが所属するプロジェクト予測部門を出力とする第4深層ニューラルネットワークと、
を用いて行われ、
前記第1学習処理において、前記第1深層ニューラルネットワークおよび前記第2深層ニューラルネットワークの学習が行われ、
前記第2学習処理において、前記第1深層ニューラルネットワーク、前記第2深層ニューラルネットワーク、前記第3深層ニューラルネットワークおよび前記第4深層ニューラルネットワークの学習が行われる、
マッチング装置。
【請求項9】
請求項8に記載のマッチング装置であって、
前記第1学習処理において、
‐前記適合度誤差をより小さくするように前記第1深層ニューラルネットワークのパラメータを更新し、
‐前記適合度誤差をより小さくするように前記第2深層ニューラルネットワークのパラメータを更新し、
前記第2学習処理において、
‐前記パートナ部門誤差をより大きくするように前記第1深層ニューラルネットワークのパラメータを更新し、
‐前記プロジェクト部門誤差をより大きくするように前記第2深層ニューラルネットワークのパラメータを更新し、
‐前記パートナ部門誤差をより小さくするように前記第3深層ニューラルネットワークのパラメータを更新し、
‐前記プロジェクト部門誤差をより小さくするように前記第4深層ニューラルネットワークのパラメータを更新する、
マッチング装置。
【請求項10】
コンピュータを、請求項1~9のいずれか一項に記載のマッチング装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はマッチング装置およびプログラムに関する。
【背景技術】
【0002】
プロジェクト型事業を行う企業では、人手不足の解消や自社で保持していない技術の調達のために、他社の人材がパートナとして自社のプロジェクトに一時的に参画することが多い。特に、高いスキルを持つパートナはプロジェクトの中核を担っていることが多く、そのようなパートナと一時的な連携にとどまらず、長期に渡って連携していくことは、経営上の重要な課題である。
【0003】
パートナとの連携を長期に渡って継続させるためには、特定の部門での利用にとどまらず、部門を越えて全社で連携していくことが求められる。しかし、部門を越えたパートナとの連携は進んでいないのが現状である。これは、部門ごとに求められるスキルや顧客の特徴が異なることから、異なる部門に所属するパートナが自部門のプロジェクトに適合しているかを判断することが難しいためである。
【0004】
パートナとプロジェクトの適合度を予測するための技術として、特許文献1に、過去のパートナとプロジェクトのマッチング実績から、適合度の計算方法を学習する技術が開示されている。
【0005】
具体的には、深層ニューラルネットワーク(DNN)を用いて、パートナとプロジェクトの属性値から、適合度の計算に有用な特徴量を抽出し、その特徴量にもとづいてパートナとプロジェクトの適合度を計算する。過去のマッチング実績におけるパートナとプロジェクトに対して、DNNが予測した適合度と実際の適合度が一致するようにパラメータを学習することで、適合度を正確に予測できるようになる。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、従来の技術では、ある部門に所属するパートナと、異なる部門に所属するプロジェクトとの適合度を正確に予測することは難しいという課題があった。
【0008】
特許文献1に記載の技術を用いてこれを実現するためには、予測対象と類似の特徴を持つ学習データとして、それぞれ異なる部門に所属するパートナとプロジェクトのマッチング実績が必要となる。しかし、パートナ連携の現状として、そのようなマッチング実績は少なく、十分な量の学習データが得られない。したがって、先行技術では、異なる部門に所属するパートナとプロジェクトの適合度を正確に予測することは難しい。
【0009】
本発明はこのような課題を解決するためになされたものであり、異なる部門に所属するパートナとプロジェクトの適合度を、より正確に予測できるマッチング装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明に係るマッチング装置の一例は、
パートナとプロジェクトの適合度を予測するマッチング装置であって、
前記マッチング装置は、学習手段および予測手段を備え、
前記学習手段は、パートナ属性値、プロジェクト属性値、パートナ正解部門、プロジェクト正解部門、および正解適合度に基づいて機械学習処理を行うことにより学習済みモデルを生成し、
前記機械学習処理は、
‐前記パートナ属性値および前記プロジェクト属性値を入力とし、前記正解適合度により近い予測適合度を出力するように学習する、第1学習処理と、
‐前記パートナ属性値および前記プロジェクト属性値を入力とし、どの部門の適合度の予測にも使える共通の予測方法を学習する、第2学習処理と、
を含み、
前記予測手段は、前記学習済みモデルを用いて、パートナに関する情報およびプロジェクトに関する情報に基づいて適合度を予測する。
【0011】
一例において、前記第1学習処理は、
前記パートナ属性値に基づいてパートナ特徴量を計算する処理と、
前記プロジェクト属性値に基づいてプロジェクト特徴量を計算する処理と、
前記パートナ特徴量および前記プロジェクト特徴量に基づいて前記予測適合度を計算する処理と、
前記正解適合度と前記予測適合度との誤差である適合度誤差がより小さくなるように学習を行う処理と、
を含む。
【0012】
一例において、前記第2学習処理は、
前記パートナ特徴量に基づいて、パートナが所属するパートナ予測部門を予測する処理と、
前記パートナ予測部門と、前記パートナ正解部門との誤差として、パートナ部門誤差を計算する処理と、
前記パートナ部門誤差がより大きくなるように学習を行う処理と、
を含む。
【0013】
一例において、前記第2学習処理は、
前記プロジェクト特徴量に基づいて、プロジェクトが所属するプロジェクト予測部門を予測する処理と、
前記プロジェクト予測部門と、前記プロジェクト正解部門との誤差として、プロジェクト部門誤差を計算する処理と、
前記プロジェクト部門誤差がより大きくなるように学習を行う処理と、
を含む。
【0014】
一例において、前記パートナ特徴量および前記プロジェクト特徴量はベクトルによって表され、
前記機械学習処理は深層ニューラルネットワークを用いて行われる。
【0015】
一例において、前記予測適合度は、二乗誤差またはコサイン類似度を用いて計算される。
【0016】
一例において、前記パートナ予測部門は、当該パートナが各部門に属する尤度を表すベクトルによって表され、
前記パートナ正解部門は、当該パートナが当該部門に属する尤度を1とし、当該パートナが他の部門に属する尤度を0とするベクトルによって表され、
前記パートナ部門誤差は、交差エントロピー誤差関数を用いて計算される。
【0017】
一例において、前記機械学習処理は、
‐前記パートナ属性値を入力とし、前記パートナ特徴量を出力とする第1深層ニューラルネットワークと、
‐前記プロジェクト属性値を入力とし、前記プロジェクト特徴量を出力とする第2深層ニューラルネットワークと、
‐前記パートナ特徴量を入力とし、前記パートナが所属するパートナ予測部門を出力とする第3深層ニューラルネットワークと、
‐前記プロジェクト特徴量を入力とし、前記プロジェクトが所属するプロジェクト予測部門を出力とする第4深層ニューラルネットワークと、
を用いて行われ、
前記第1学習処理において、前記第1深層ニューラルネットワークおよび前記第2深層ニューラルネットワークの学習が行われ、
前記第2学習処理において、前記第1深層ニューラルネットワーク、前記第2深層ニューラルネットワーク、前記第3深層ニューラルネットワークおよび前記第4深層ニューラルネットワークの学習が行われる。
【0018】
一例において、前記第1学習処理において、
‐前記適合度誤差をより小さくするように前記第1深層ニューラルネットワークのパラメータを更新し、
‐前記適合度誤差をより小さくするように前記第2深層ニューラルネットワークのパラメータを更新し、
前記第2学習処理において、
‐前記パートナ部門誤差をより大きくするように前記第1深層ニューラルネットワークのパラメータを更新し、
‐前記プロジェクト部門誤差をより大きくするように前記第2深層ニューラルネットワークのパラメータを更新し、
‐前記パートナ部門誤差をより小さくするように前記第3深層ニューラルネットワークのパラメータを更新し、
‐前記プロジェクト部門誤差をより小さくするように前記第4深層ニューラルネットワークのパラメータを更新する。
【0019】
本発明に係るプログラムの一例は、コンピュータを、上述のマッチング装置として機能させる。
【発明の効果】
【0020】
本発明によれば、異なる部門に所属するパートナとプロジェクトの適合度を、より正確に予測できる。
【図面の簡単な説明】
【0021】
【
図1】本発明の実施形態1に係るマッチング装置100の機能ブロック図。
【
図3】マッチング装置100の動作を示す概略フローチャート。
【
図9】学習手段101による計算処理の詳細を説明する数式。
【
図10】学習手段101による計算処理の詳細を説明する図。
【発明を実施するための形態】
【0022】
まず、本発明の概略を説明する。本明細書では、十分な量の学習データが得られる、同一部門に所属するパートナとプロジェクトのマッチング実績から、部門ごとに固有の特徴を除外し、どの部門の適合度の予測にも使える共通の予測方法を学習することで、異なる部門に所属するパートナとプロジェクトの適合度を正確に予測できるマッチング装置を開示する。
【0023】
具体的には、特徴量からパートナやプロジェクトが所属する部門を予測できなくなるように学習し、その特徴量に基づいて適合度を予測する。部門を予測できないということは、異なる部門のパートナやプロジェクトも同じ特徴を持っているということであり、どの部門にも共通の特徴であると言える。
【0024】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。以下では、本発明の一実施形態を用いて、あるプロジェクトのパートナ調達担当者が、企業内で利用しているパートナ一覧から、そのプロジェクトで利用するパートナを選択する例を示す。
【0025】
[実施形態1]
図1は、本発明の実施形態1に係るマッチング装置100の機能ブロック図を示す。マッチング装置100は、パートナとプロジェクトの適合度を予測する装置である。パートナとはたとえば人材を意味し、プロジェクトとはたとえば企業においてある目的のために編成される人材のグループを意味するが、パートナは企業の人材でなくともよく、また、プロジェクトは企業内のグループでなくともよい。
【0026】
マッチング装置100は、学習手段101および予測手段102を備える。
【0027】
図2は、マッチング装置100のハードウェア構成を示す。マッチング装置100は、公知のコンピュータとしてのハードウェア構成を有し、入力装置103、出力装置104、演算装置105および記憶装置106を備える。
【0028】
入力装置103は、キーボード、マウス、ネットワークインタフェース、等を含む。出力装置104は、表示装置(ディスプレイ等)、印刷装置(プリンタ等)、ネットワークインタフェース、等を含む。演算装置105はたとえばプロセッサを含む。記憶装置106は、たとえば半導体メモリ装置および磁気ディスク装置等の記憶媒体を含む。記憶装置106は、主記憶装置および補助記憶装置を備えてもよい。
【0029】
記憶装置106は、パートナテーブルT1、プロジェクトテーブルT2、マッチング実績テーブルT3、学習結果テーブルT4、予測対象テーブルT5および予測結果テーブルT6を記憶する。これらのテーブルの内容については後述する。
【0030】
記憶装置106は、図示しないプログラムを記憶してもよい。演算装置105がこのプログラムを実行することにより、コンピュータはマッチング装置100として機能してもよい。すなわち、このプログラムは、コンピュータをマッチング装置100として機能させるものであってもよい。
【0031】
図3に、マッチング装置100の動作を示す概略フローチャートを示す。ステップS1において、マッチング装置100は処理を開始する。ステップS2において、マッチング装置100は、学習モードで動作するか、または、予測モードで動作するかを決定する。この決定は、たとえばユーザである調達担当者からの指示に応じて行われる。
【0032】
マッチング装置100が学習モードで動作する場合には、ステップS3において、マッチング装置100の学習手段101が、過去のマッチング実績に基づいて、パートナとプロジェクトの適合度の計算方法を学習する。
【0033】
マッチング装置100が予測モードで動作する場合には、ステップS4において、マッチング装置100の予測手段102が、学習処理で学習した適合度の計算方法に基づいて、ユーザが指定したパートナとプロジェクトの適合度を予測する。なお、ステップS4の処理は学習結果テーブルT4を用いて行われるが、初期状態では学習結果テーブルT4にはデータが格納されていないため、マッチング装置100は少なくとも一度は学習モード(ステップS3)で動作する必要がある。
【0034】
ステップS3の後およびステップS4の後は、ステップS5において処理が終了する。
【0035】
<実施形態1における学習処理>
以下、ステップS3について、より詳細に説明する。ステップS3の学習処理では、過去のマッチング実績に基づいて、パートナとプロジェクトの適合度の計算方法を学習する。
【0036】
学習処理を実行する前に、ユーザは、入力装置103を用いて、パートナテーブルT1、プロジェクトテーブルT2、マッチング実績テーブルT3に必要なデータを格納しておく。
【0037】
図4に、パートナテーブルT1の構成例を示す。パートナテーブルT1は、パートナに関連する教師パートナ情報を格納する。教師パートナ情報は、パートナに関連する情報であり、
図4の例では、パートナを識別する情報(パートナID)をキーとし、そのパートナが所属する部門、そのパートナのスキルの有無(C言語のスキルおよびJava言語のスキル)、そのパートナの性格(明るいか否か、および、穏やかか否か)、そのパートナの雇用単価、そのパートナの経験年数、等を表す情報を関連付ける。
【0038】
本実施形態では、教師パートナ情報は、必須の項目として、パートナIDおよび部門を表す情報を含む。これら以外の項目は、当業者が適宜変更可能であり、図示する項目以外にも様々な項目を含むことが好ましい。
【0039】
教師パートナ情報は、学習に適した形式であることが好ましい。本実施形態ではDNNを用いるので、教師パートナ情報はDNNに入力できる数値データであることが好ましい。
図4の例では説明の便宜上、「部門」をテキストデータとして表しているが、実際には部門も数値データとして表される。
【0040】
図4に示す情報のうち、C言語のスキルの有無、Java言語のスキルの有無、性格が明るいか否か、性格が穏やかか否か、雇用単価、および経験年数は、パートナに関する属性値を表す。
【0041】
図5に、プロジェクトテーブルT2の構成例を示す。プロジェクトテーブルT2は、プロジェクトに関連する教師プロジェクト情報を格納する。教師プロジェクト情報は、プロジェクトに関連する情報であり、
図5の例では、プロジェクトを識別する情報(プロジェクトID)をキーとし、そのプロジェクトが所属する部門、そのプロジェクトにおけるパートナの技術の要否(C言語の技術およびJava言語の技術)、プロジェクトに関連する顧客の特徴(新規顧客または継続顧客)、プロジェクトに関連する社員の性格(明るいか否か、および、穏やかか否か)、等を表す情報を関連付ける。なお「社員」とはパートナを含んでもよいし、パートナか否かに関わらず定義されてもよい。
【0042】
本実施形態では、教師プロジェクト情報は、必須の項目として、プロジェクトIDおよび部門を表す情報を含む。これら以外の項目は、当業者が適宜変更可能であり、図示する項目以外にも様々な項目を含むことが好ましい。
【0043】
図5に示す情報のうち、C言語の技術の要否、Java言語の技術の要否、新規顧客か否か、継続顧客か否か、社員の性格が明るいか否か、および、社員の性格が穏やかか否か、は、プロジェクトに関する属性値を表す。
【0044】
教師プロジェクト情報は、学習に適した形式であることが好ましい。本実施形態ではDNNを用いるので、教師プロジェクト情報はDNNに入力できる数値データであることが好ましい。
図5の例では説明の便宜上、「部門」をテキストデータとして表しているが、実際には部門も数値データとして表される。
【0045】
図6に、マッチング実績テーブルT3の構成例を示す。マッチング実績テーブルT3は、現在または過去の各プロジェクトと、そのプロジェクトに所属した各パートナとのペアをキーとし、そのペアについて、プロジェクトとパートナとの適合度(正解適合度)を関連付けて格納する。正解適合度はたとえば0以上1以下の実数で表され、大きいほどプロジェクトとパートナがよく適合していたことを示す。
【0046】
たとえば
図6の1行目は、パートナID「PTN0001」のパートナが、プロジェクトID「PRJ0001」のプロジェクトに所属したことがあり、これらのペアに対して担当者(たとえばマッチング装置100のユーザ)が入力した適合度が0.9であったことを意味する。
【0047】
図7に、学習手段101による学習処理の概要を示す。本実施形態の学習手段101は、DNNを用いて、過去のマッチング実績からパートナとプロジェクトの適合度の計算方法を学習する。DNNに関する処理は、特徴量計算処理、適合度計算処理、適合度誤差計算処理、部門計算処理、部門誤差計算処理、を含む。
【0048】
図7において、白い正方形はスカラー値を表し、白い正方形が3つ連結された図形はベクトル値を表す。
【0049】
DNNの入力は、パートナテーブルT1とプロジェクトテーブルT2に格納された情報(属性値)である。属性値を直接比較して適合度を予測することは難しいため、特徴量抽出計算処理で、複数の属性値に基づき、適合度の予測に適した形式の情報(特徴量)に変換する。
【0050】
適合度計算処理では、パートナとプロジェクトの特徴量を比較することで、そのペアの適合度を計算する。適合度誤差計算処理では、適合度計算処理で予測した適合度と、マッチング実績テーブルT3に格納された正解適合度との誤差(適合度誤差)を計算する。この誤差を小さくするように特徴抽出計算処理のパラメータを更新することで、学習手段101は適合度の計算方法を学習する。
【0051】
部門計算処理と部門誤差計算処理は、同一部門に所属するパートナとプロジェクトのマッチング実績から、部門ごとに固有の特徴を除外し、どの部門の適合度の予測にも使える共通の予測方法を学習するための処理である。
【0052】
部門計算処理と部門誤差計算処理を合わせて、「共通特徴量学習処理」と呼ぶことにする。部門計算処理では、パートナとプロジェクトの特徴量から、部門ごとに固有の特徴を抽出することで、それぞれが属する部門を予測する。部門誤差計算処理では、部門計算処理で予測した部門と、パートナテーブルT1またはプロジェクトテーブルT2に格納された正解の部門との誤差(部門誤差)を計算する。この誤差を大きくするように(特徴量から部門を予測できないように)特徴量計算処理のパラメータを更新することで、部門ごとに固有の特徴が除外された特徴量が学習される。その結果、どの部門の適合度の計算にも使える共通の特徴量が学習され、異なる部門のパートナとプロジェクトの適合度を正確に予測できるようになる。また、各学習の段階における特徴量から部門ごとに固有の特徴を抽出するために、部門計算処理についてもパラメータを逐次更新する。具体的には、部門誤差を小さくするようにパラメータを更新する。
【0053】
図8を用いて、共通特徴量学習処理の効果の概要を説明する。
図8において、白い人形およびハッチングが付された人形は、それぞれ異なる部門に属するパートナを表す。
【0054】
図8(a)は、共通特徴量学習処理を適用しない場合の概念図である。一般的には、マッチング実績テーブルT3に含まれるペアデータのほとんどが、同一部門に属するパートナとプロジェクトのペアであることが多い。このため、各部門のペアの適合度のみを正確に予測できるような、各部門で異なる分布の特徴量が学習されてしまう。
【0055】
図8(b)は、共通特徴量学習処理を適用した場合の概念図である。特徴量から部門を予測できなくなるように特徴量を学習することで、特徴量から部門ごとに固有の特徴が除外され、部門ごとの特徴量の分布が重なる(互いに類似した値となる)ようになる。この場合、特徴量空間において、ある部門のパートナの特徴量の近くには、異なる部門のパートナの特徴量も配置されているため、複数の部門に共通する特徴量が抽出されていると言える。
【0056】
以下、学習手段101による学習処理について説明する。学習手段101は、4つのDNNを用い、パートナ属性値、プロジェクト属性値、パートナ正解部門、プロジェクト正解部門、および正解適合度に基づいて機械学習処理を行うことにより、学習済みモデルを生成する。なお、本実施形態では4つのDNNを用いているが、DNNの数は当業者が適宜変更可能である。例えば、部門ごとに得られるパートナまたはプロジェクトの属性値が異なる場合には、特徴量計算処理のDNNを部門ごとに作成してもよい。
【0057】
図9に示す数式および
図10に示す図を用いて、学習手段101による計算処理の詳細を説明する。以下では、パートナをi∈S
ptnで表し、プロジェクトをj∈S
prjで表す。S
ptnはパートナの集合であり、S
prjはプロジェクトの集合である。t∈{ptn,prj}は、パートナ(ptn)またはプロジェクト(prj)を表す添字である。
【0058】
パートナiの属性値をxi(パートナの属性値の要素数に等しい次元のベクトル)で表し、プロジェクトjの属性値をxj(プロジェクトの属性値の要素数に等しい次元のベクトル)で表す。
【0059】
学習手段101は、パートナ特徴量計算DNN201(第1深層ニューラルネットワーク)、プロジェクト特徴量計算DNN202(第2深層ニューラルネットワーク)、パートナ部門計算DNN203(第3深層ニューラルネットワーク)およびプロジェクト部門計算DNN204(第4深層ニューラルネットワーク)を備える。パートナ特徴量計算DNN201およびプロジェクト特徴量計算DNN202は全結合のDNNであり、n∈{1,…,N}は層番号を表し、Nは層数である。パートナ部門計算DNN203およびプロジェクト部門計算DNN204は全結合のDNNであり、m∈{1,…,M}は層番号を表し、Mは層数である。
【0060】
特徴量計算処理では、パートナ特徴量計算DNN201が、式(1)(2)を用いて、パートナiの属性値xiに基づいてパートナ特徴量yi
Nを計算する。yi
Nはパートナ特徴量の要素数に等しい次元のベクトルである。Aptnはパートナ特徴量計算DNN201のニューロン間接続の重み付け係数であり、Aptn
0は[パートナ特徴量の要素数]次元×[パートナ属性値の要素数]次元の行列であり、Aptn
nは[パートナ特徴量の要素数]次元×[パートナ特徴量の要素数]次元の行列である。aptn(すなわちaptn
0とaptn
n)は各層のバイアスであり、パートナ特徴量の要素数に等しい次元のベクトルである。LeakyReLUは漏洩正規化線形ユニットである。
【0061】
式(2)を各層について計算することにより、出力として適合度の予測に用いるパートナ特徴量yi
Nが計算される。このように、パートナ特徴量計算DNN201は、パートナiの属性値xiを入力とし、パートナ特徴量yi
Nを出力とする。
【0062】
同様に、式(1)(2)の添字iをjに変更した数式を用いて、プロジェクト特徴量計算DNN202が、プロジェクトjの属性値xjに基づいてプロジェクト特徴量yj
Nを計算する。yj
Nはプロジェクト特徴量の要素数に等しい次元のベクトルである。Aprjはプロジェクト特徴量計算DNN202のニューロン間接続の重み付け係数であり、Aprj
0は[プロジェクト特徴量の要素数]次元×[プロジェクト属性値の要素数]次元の行列であり、Aprj
nは[プロジェクト特徴量の要素数]次元×[プロジェクト特徴量の要素数]次元の行列である。aprj(すなわちaprj
0とaprj
n)は各層のバイアスであり、プロジェクト特徴量の要素数に等しい次元のベクトルである。
【0063】
式(2)を各層について計算することにより、出力として適合度の予測に用いるプロジェクト特徴量yj
Nが計算される。このように、プロジェクト特徴量計算DNN202は、プロジェクトjの属性値xjを入力とし、プロジェクト特徴量yj
Nを出力とする。
【0064】
各特徴量の要素数および各DNNの層数は、外部から任意に変更できるように構成することが好ましい。
【0065】
適合度計算処理では、学習手段101が、式(3)を用いて、パートナiとプロジェクトjの特徴量のペア(yi
N,yj
N)から、そのペアの予測される適合度として、予測適合度pijを計算する。予測適合度pijは実数(スカラー値)である。MSEは二乗誤差関数であり、tanhは双曲線関数である。予測適合度pijは0以上1以下の値として計算され、1は適合度が高いことを意味し、0は適合度が低いことを意味する。
【0066】
なお、本実施形態では、予測適合度pijは二乗誤差を用いて計算されるが、(yi
N,yj
N)の間のコサイン類似度を用いて計算されてもよく、他の計算方法を用いてもよい。
【0067】
適合度誤差計算処理では、学習手段101が、式(4)を用いて、予測適合度pijと、マッチング実績テーブルT3に格納される正解適合度^pijとの誤差として、適合度誤差eij
evlを計算する。なお表記の都合上、ハット記号^をpの左に付記しているが、ハット記号^は正しくは式(4)に示すようにpの上に付される。以下同じである。
【0068】
適合度誤差eij
evlは実数(スカラー値)である。適合度誤差eij
evlが小さくなるようにパートナ特徴量計算DNN201およびプロジェクト特徴量計算DNN202のパラメータを更新することにより、予測適合度pijを計算するための計算方法が、各DNNのパラメータとして学習されることになる。
【0069】
このように、学習手段101による機械学習処理は、パートナ属性値およびプロジェクト属性値を入力とし、正解適合度により近い予測適合度を出力するように学習する処理(第1学習処理)を含む。より具体的には、第1学習処理は、以下の処理を含む:
‐パートナiの属性値xiに基づいてパートナ特徴量yi
Nを計算する処理、
‐プロジェクトjの属性値xjに基づいてプロジェクト特徴量yj
Nを計算する処理、
‐パートナ特徴量yi
Nおよびプロジェクト特徴量yj
Nに基づいて予測適合度pijを計算する処理、
‐マッチング実績テーブルT3に格納される正解適合度^pijと、予測適合度pijとの誤差である適合度誤差eij
evlがより小さくなるように、パートナ特徴量計算DNN201およびプロジェクト特徴量計算DNN202の学習を行う処理。
【0070】
本実施形態では、この第1学習処理において、パートナ特徴量計算DNN201およびプロジェクト特徴量計算DNN202の学習が行われるが、パートナ部門計算DNN203およびプロジェクト部門計算DNN204の学習は行われない。(なお、変形例において、パートナ部門計算DNN203およびプロジェクト部門計算DNN204についても学習を行ってもよい。)
【0071】
部門計算処理では、パートナ部門計算DNN203が、式(5)~(8)を用いて、パートナ特徴量yi
Nに基づいてパートナ予測部門qiを計算する。qiは部門の数に等しい次元のベクトルであり、各要素は、パートナiが各部門に属する確率または尤度を表す。Bptnはパートナ部門計算DNN203のニューロン間接続の重み付け係数であり、Bptn
mは[パートナ特徴量の要素数]次元×[パートナ特徴量の要素数]次元の行列であり、Bptn
M+1は[部門数]次元×[パートナ特徴量の要素数]次元の行列である。bptnは各層のバイアスであり、とくにbptn
mはパートナ特徴量の要素数に等しい次元のベクトルであり、bptn
M+1は部門数に等しい次元のベクトルである。Softmaxはソフトマックス関数を表す。
【0072】
このように、パートナ部門計算DNN203は、パートナ特徴量yi
Nを入力とし、パートナ予測部門qiを出力とする。
【0073】
同様に、式(5)~(8)の添字iをjに変更した数式を用いて、プロジェクト部門計算DNN204が、プロジェクト特徴量yj
Nに基づいてプロジェクト予測部門qjを計算する。qjは部門の数に等しい次元のベクトルであり、各要素は、プロジェクトjが各部門に属する確率または尤度を表す。Bprjはプロジェクト部門計算DNN204のニューロン間接続の重み付け係数であり、Bprj
mは[プロジェクト特徴量の要素数]次元×[プロジェクト特徴量の要素数]次元の行列であり、Bprj
M+1は[部門数]次元×[プロジェクト特徴量の要素数]次元の行列である。bprjは各層のバイアスであり、とくにbprj
mはプロジェクト特徴量の要素数に等しい次元のベクトルであり、bprj
M+1は部門数に等しい次元のベクトルである。
【0074】
このように、プロジェクト部門計算DNN204は、プロジェクト特徴量yj
Nを入力とし、プロジェクト予測部門qjを出力とする。
【0075】
部門誤差計算処理では、学習手段101が、式(9)を用いて、パートナiについて予測された部門(パートナ予測部門qi)と、正解の部門(パートナ正解部門^qi)との誤差として、パートナ部門誤差ei
dptを計算する。パートナ正解部門^qiは、パートナiが所属する部門を表すワンホットベクトル(パートナiが当該部門に属する確率または尤度を1とし、パートナiが他の部門に属する確率または尤度を0とするベクトル)である。CrossEntropyは交差エントロピー誤差関数を表す。
【0076】
同様に、学習手段101は、式(9)の添字iをjに変更した数式を用いて、プロジェクトjについて予測された部門(プロジェクト予測部門qj)と、正解の部門(プロジェクト正解部門^qj)との誤差として、プロジェクト部門誤差ej
dptを計算する。プロジェクト正解部門^qjは、プロジェクトjが所属する部門を表すワンホットベクトル(プロジェクトjが当該部門に属する確率または尤度を1とし、プロジェクトjが他の部門に属する確率または尤度を0とするベクトル)である。
【0077】
学習手段101は、パートナ部門誤差ei
dptおよびプロジェクト部門誤差ej
dptを大きくするように、パートナ特徴量計算DNN201およびプロジェクト特徴量計算DNN202のパラメータを更新する。このような学習処理により、部門間に共通の特徴量のみを効率的に学習することができる。
また、学習手段101は、パートナ部門誤差ei
dptおよびプロジェクト部門誤差ej
dptを小さくするように、パートナ部門計算DNN203およびプロジェクト部門計算DNN204のパラメータを更新する。このような学習処理により、パートナ部門計算DNN203およびプロジェクト部門計算DNN204は、各学習の段階における特徴量から部門ごとに固有の特徴を抽出できるようになる。
【0078】
なお、上述のように、パートナ特徴量計算DNN201は、適合度誤差eij
evlが小さくなるような学習と、パートナ部門誤差ei
dptが大きくなるような学習との、2種類の学習処理において更新される。同様に、プロジェクト特徴量計算DNN202は、適合度誤差eij
evlが小さくなるような学習と、プロジェクト部門誤差ej
dptが大きくなるような学習との、2種類の学習処理において更新される。このため、適合度に関する学習と部門に関する学習との影響度を調整するために、式(9)に示すように、部門誤差の計算には重みw(実数)が乗算される。
【0079】
このように、学習手段101による機械学習処理は、パートナ属性値およびプロジェクト属性値を入力とし、パートナが所属する部門およびプロジェクトが所属する部門の間の予測をより困難にする処理(第2学習処理)を含む。より具体的には、第2学習処理は、以下の処理を含む:
‐パートナ特徴量yi
Nに基づいて、パートナiが所属するパートナ予測部門qiを予測する処理、
‐パートナ予測部門qiと、パートナ正解部門^qiとの誤差として、パートナ部門誤差ei
dptを計算する処理、
‐パートナ部門誤差ei
dptがより大きくなるように、パートナ特徴量計算DNN201の学習を行う処理、
‐パートナ部門誤差ei
dptがより小さくなるように、パートナ部門計算DNN203の学習を行う処理、
‐プロジェクト特徴量yj
Nに基づいて、プロジェクトjが所属するプロジェクト予測部門qjを予測する処理、
‐プロジェクト予測部門qjと、プロジェクト正解部門^qjとの誤差として、プロジェクト部門誤差ej
dptを計算する処理、
‐プロジェクト部門誤差ej
dptがより大きくなるように、プロジェクト特徴量計算DNN202の学習を行う処理、
‐プロジェクト部門誤差ej
dptがより小さくなるように、プロジェクト部門計算DNN204の学習を行う処理。
【0080】
本実施形態では、この第2学習処理において、パートナ特徴量yi
Nおよびプロジェクト特徴量yj
Nの計算方法について、部門ごとに固有の特徴を除外し、どの部門の適合度の予測にも使える共通の予測方法を学習することができる。これによって、異なる部門に所属するパートナとプロジェクトの適合度を、より正確に予測できるような学習が行われる。
【0081】
図11に、学習手段101の動作のフローチャートを示す。このフローチャートは、
図3のステップS3の詳細を表す。
【0082】
ステップS11において、学習手段101が処理を開始する。次に、ステップS12において、学習手段101は、マッチング実績テーブルT3から、パートナとプロジェクトのペアと、そのペアの適合度(正解適合度^pij)を取得する。
【0083】
次に、ステップS13において、学習手段101はパートナテーブルT1およびプロジェクトテーブルT2から、パートナの属性値xiおよびプロジェクトの属性値xjを取得する。また、それぞれが所属する部門(正解部門)として、パートナ正解部門^qiおよびプロジェクト正解部門^qjを取得する。これらの正解部門はワンホットベクトルに加工される。
【0084】
次に、ステップS14において、学習手段101は、各DNNのパラメータを初期化する。たとえばすべてのパラメータの初期値を、-1以上1以下の一様乱数を用いて決定してもよいが、この方法に限らない。
【0085】
次に、学習手段101は、ステップS15~S23の処理を所定回数だけ繰り返す。繰り返しの回数は、マッチング装置100のユーザが入力または変更できるように構成することが好ましい。ステップS15において、学習手段101は繰り返し単位を開始する。
【0086】
ステップS16において、学習手段101は、ステップS13で取得したパートナの属性値xiおよびプロジェクトの属性値xjに基づき、パートナ特徴量yi
Nおよびプロジェクト特徴量yj
Nを計算する。
【0087】
次に、ステップS17において、学習手段101は、ステップS16において計算されたパートナ特徴量yi
Nおよびプロジェクト特徴量yj
Nに基づき、そのペア(i,j)について予測適合度pijを計算する。
【0088】
次に、ステップS18において、学習手段101は、適合度誤差計算処理を用いて、ステップS17で計算した予測適合度pijと、ステップS12で取得した正解適合度^pijから、適合度誤差eij
evlを計算する。
【0089】
次に、ステップS19において、学習手段101は、部門予測処理を用いて、ステップS16において計算されたパートナ特徴量yi
Nおよびプロジェクト特徴量yj
Nに基づき、パートナ予測部門qiおよびプロジェクト予測部門qjを計算する。
【0090】
次に、ステップS20において、学習手段101は、部門誤差計算処理を用いて、ステップS19で計算したパートナ予測部門qiおよびプロジェクト予測部門qjと、ステップS13で取得したパートナ正解部門^qiおよびプロジェクト正解部門^qjとに基づき、パートナ部門誤差ei
dptおよびプロジェクト部門誤差ej
dptを計算する。
【0091】
次に、ステップS21において、学習手段101は、ステップS18で計算した適合度誤差eij
evlと、ステップS20で計算したパートナ部門誤差ei
dptおよびプロジェクト部門誤差ej
dptとに基づき、各DNNのパラメータの勾配を計算する。勾配の計算には、たとえば誤差逆伝播法を用いることができるが、これに限らない。
【0092】
次に、ステップS22において、学習手段101は、各DNNのパラメータを以下のように更新する。
‐パートナ特徴量計算DNN201:適合度誤差eij
evlを最小化、パートナ部門誤差ei
dptを最大化
‐プロジェクト特徴量計算DNN202:適合度誤差eij
evlを最小化、プロジェクト部門誤差ej
dptを最大化
‐パートナ部門計算DNN203:パートナ部門誤差ei
dptを最小化
‐プロジェクト部門計算DNN204:プロジェクト部門誤差ej
dptを最小化
【0093】
なお、S22におけるパラメータの具体的な更新差分の計算には、Adam等の規則を用いることができる。
【0094】
次に、ステップS23において、学習手段101は繰り返し単位を終了する。繰り返し単位として、パートナとプロジェクトのペアが1つ処理されるたびにパラメータを更新するようにしてもよいし、パートナとプロジェクトのペアが所定数処理されるたびにパラメータを更新するようにしてもよいし、他の基準に基づいてパラメータの更新タイミングを決定してもよい。
【0095】
ステップS15~S23の繰り返し処理が終了した時点で、機械学習処理が完了し、各DNNは学習済みモデルとして生成される。次に、ステップS24において、学習手段101は、ステップS15~S23において学習が行われた結果のパラメータを、学習結果テーブルT4に格納する。次に、ステップS25において、学習手段101は処理を終了する。
【0096】
図12に、学習結果テーブルT4の構成例を示す。この例はパートナ特徴量計算DNN201を定義するパラメータの一部を示す。パラメータ名「A
ptn
0」によって特定される行列について、その行列の各要素を特定する行番号と列番号とのペアが定義され、各ペアについて数値が格納される。パートナ特徴量計算DNN201の他のパラメータについても、他のDNNについても、同様の形式で表現可能である。
【0097】
<実施形態1における予測処理>
以下、
図3のステップS4について、より詳細に説明する。ステップS4の予測処理では、ステップS3の学習処理で学習した適合度の計算方法に基づいて、ユーザが指定したパートナとプロジェクトの適合度を予測する。
【0098】
マッチング装置100のユーザは、ステップS4が実行される前に、入力装置103を用いて予測対象テーブルT5を生成しておく。
【0099】
図13に、予測対象テーブルT5の構成例を示す。予測対象テーブルT5には、適合度を予測したいパートナとプロジェクトのペアが格納される。具体例として、パートナIDとプロジェクトIDがキーとなる。
【0100】
ここで、特定のプロジェクトで利用するパートナを探している場合には、すべてのパートナと、その特定のプロジェクトとのペアを入力すればよい。同様に、特定のパートナに対して、推薦するプロジェクトを探したい場合には、すべてのプロジェクトと、その特定のパートナとのペアを入力すればよい。
図13では、プロジェクトPRJ1001で利用するパートナを探している場面を想定し、プロジェクトPRJ1001とすべてのパートナとのペアが入力されている。
【0101】
図14に、予測手段102の動作のフローチャートを示す。このフローチャートは、
図3のステップS4の詳細を表す。
【0102】
ステップS31において、予測手段102は処理を開始する。次に、ステップS32において、予測手段102は、予測対象テーブルT5から、予測対象となるパートナとプロジェクトのペアを取得する。
【0103】
次に、ステップS33において、予測手段102は、ステップS32で取得したパートナとプロジェクトについて、属性値を取得する。属性値は、たとえばパートナテーブルT1およびプロジェクトテーブルT2から取得することができるが、他の情報源から取得してもよい(すなわち教師パートナ情報および教師プロジェクト情報とは異なる情報であってもよい)。
【0104】
次に、ステップS34において、予測手段102は、学習結果テーブルT4から、各DNNのパラメータを取得して各DNNに設定することにより、各DNNを学習済みモデルとして再現する。
【0105】
次に、ステップS35において、予測手段102は、特徴量計算処理を用いて、ステップS33で取得したパートナの属性値およびプロジェクトの属性値から、パートナ特徴量およびプロジェクト特徴量を計算する。この計算はパートナ特徴量計算DNN201およびプロジェクト特徴量計算DNN202によって行われる。
【0106】
次に、ステップS36において、予測手段102は、適合度計算処理を用いて、ステップS35で計算したパートナ特徴量およびプロジェクト特徴量から、ペアの適合度を計算する。
【0107】
次に、ステップS37において、予測手段102は、ステップS36で計算した適合度を、予測結果テーブルT6に書き込む。次に、ステップS38において、予測手段102は処理を終了する。
【0108】
図15に、予測結果テーブルT6の構成例を示す。予測結果テーブルT6には、ステップS32で取得されたすべてのペアをキーとし、各ペアについて、ステップS36において計算された適合度を関連付けて格納する。たとえば
図15の1行目は、パートナPTN0001とプロジェクトPRJ1001との適合度が0.234であることを示す。
【0109】
マッチング装置100のユーザ(たとえば調達担当者)は、予測結果テーブルT6に格納されたパートナとプロジェクトの適合度をもとに、プロジェクトで利用するパートナを選択することができる。たとえば、各プロジェクトについて、適合度が最も高いパートナを選択することができる。
【0110】
ここで、上述のように各DNNのパラメータは部門に依存しない共通の予測方法を学習しているため、異なる部門に所属するパートナとプロジェクトが入力された場合でも、それらの適合度をより正確に予測することができる。
【符号の説明】
【0111】
100…マッチング装置
101…学習手段
102…予測手段
103…入力装置
104…出力装置
105…演算装置
106…記憶装置
T1…パートナテーブル
T2…プロジェクトテーブル
T3…マッチング実績テーブル
T4…学習結果テーブル
T5…予測対象テーブル
T6…予測結果テーブル
201…パートナ特徴量計算DNN(第1深層ニューラルネットワーク)
202…プロジェクト特徴量計算DNN(第2深層ニューラルネットワーク)
203…パートナ部門計算DNN(第3深層ニューラルネットワーク)
204…プロジェクト部門計算DNN(第4深層ニューラルネットワーク)