特許第6943062号(P6943062)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許6943062機械学習集団行列因子分解フレームワークを使った作業者適性の予測
<>
  • 特許6943062-機械学習集団行列因子分解フレームワークを使った作業者適性の予測 図000005
  • 特許6943062-機械学習集団行列因子分解フレームワークを使った作業者適性の予測 図000006
  • 特許6943062-機械学習集団行列因子分解フレームワークを使った作業者適性の予測 図000007
  • 特許6943062-機械学習集団行列因子分解フレームワークを使った作業者適性の予測 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6943062
(24)【登録日】2021年9月13日
(45)【発行日】2021年9月29日
(54)【発明の名称】機械学習集団行列因子分解フレームワークを使った作業者適性の予測
(51)【国際特許分類】
   G06N 99/00 20190101AFI20210916BHJP
   G06Q 10/06 20120101ALI20210916BHJP
【FI】
   G06N99/00 180
   G06Q10/06 302
【請求項の数】20
【全頁数】23
(21)【出願番号】特願2017-153964(P2017-153964)
(22)【出願日】2017年8月9日
(65)【公開番号】特開2018-101399(P2018-101399A)
(43)【公開日】2018年6月28日
【審査請求日】2020年5月14日
(31)【優先権主張番号】15/387,605
(32)【優先日】2016年12月21日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】スリニバサン・ラムヤ マルアー
(72)【発明者】
【氏名】ジェットチーヴァ・ジョージェタ ゲオルギエバ
(72)【発明者】
【氏名】チャンダー・アジャイ
【審査官】 石川 亮
(56)【参考文献】
【文献】 特開2009−289056(JP,A)
【文献】 特開平09−259178(JP,A)
【文献】 米国特許出願公開第2014/0165027(US,A1)
【文献】 CERTA, A et al.,Multi-Objective human resources allocation in R&D projects planning,International Journal of Production Research [online],2010年,Vol. 47, No. 13,pp. 3503-3523,[retrieved on 2021.07.29], Retrieved from the Internet: <URL: https://www.tandfonline.com/doi/abs/10.1080/00207540701824233>,<DOI: 10.1080/00207540701824233>
【文献】 THAI-NGHE, Nguyen et al.,Multi-Relational Factorization Models for Student Modeling in Intelligent Tutoring Systems,2015 Seventh International Conference on Knowledge and Systems Engineering (KSE) [online],IEEE,2016年01月07日,pp.61-66,[retrieved on 2021.04.26], Retrieved from the Internet: <URL: https://ieeexplore.ieee.org/abstract/document/7371759>
【文献】 KLAMI, Arto et al.,Group-sparse Embeddings in Collective Matrix Factorization,arXiv.org [online],2014年02月18日,[retrieved on 2021.4.26], Retrieved from the Internet: <URL: https://arxiv.org/abs/1312.5921>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
G06Q 10/00−10/10
(57)【特許請求の範囲】
【請求項1】
作業者適性を予測するための動作をシステムに実行させるよう構成されたコンピュータ実行可能命令を含む非一時的なコンピュータ可読記憶媒体であって、前記動作は:
複数の作業者、複数のツールおよび複数の分類法パラメータを同定する段階と;
前記分類法パラメータと前記ツールの間の関係を表わす値の部分的に満たされた第一の行列であって、欠けている各値は前記ツールのうち前記分類法パラメータの値が未知であるものを表わす、第一の行列と、前記作業者と前記ツールの間の関係を表わす値の部分的に満たされた第二の行列であって、欠けている各値は前記ツールのうち前記作業者のスキルが未知であるものを表わす、第二の行列と、前記作業者と前記分類法パラメータとの間の関係を表わす値の部分的に満たされた第三の行列であって、欠けている各値は前記分類法パラメータのうち前記作業者の習熟度が未知であるものを表わす、第三の行列とを同定する段階と;
前記部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークを用いて前記部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じる段階であって、満たされた第一の行列のそれぞれの予測された値は前記ツールの前記分類法パラメータの値を表わし、満たされた第二の行列のそれぞれの予測された値は前記作業者が前記ツールのスキルを習得する適性を表わし、満たされた第三の行列のそれぞれの予測された値は前記作業者の前記分類法パラメータに習熟する適性を表わす、段階と;
ツール要求および時間制約条件を含むタスクを同定する段階と;
各作業者についての時間利用可能性を同定する段階と;
前記タスクのツール要求、前記タスクの時間制約条件および各作業者についての時間利用可能性に基づいて、前記タスクを実行するための前記作業者の最適な部分集合を予測するとともに、前記タスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる段階とを含む、
非一時的なコンピュータ可読記憶媒体。
【請求項2】
前記ツールがソフトウェア開発ツールであり、前記タスクがソフトウェア開発タスクである、請求項1記載の非一時的なコンピュータ可読記憶媒体。
【請求項3】
前記分類法パラメータが、学習の複雑さ、学習時間、使いやすさ、抽象化レベル、活用レベルもしくは協働スタイルまたはそれらの何らかの組み合わせを含む、請求項2記載の非一時的なコンピュータ可読記憶媒体。
【請求項4】
前記部分的に満たされたおよび前記満たされた第一、第二および第三の行列における値が0から1までの間の値である、請求項3記載の非一時的なコンピュータ可読記憶媒体。
【請求項5】
前記タスクを実行するための前記作業者の最適な部分集合を予測するとともに、前記タスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる前記段階がさらに、最小時間期間から最大時間期間までの間に制約された、前記タスクを完了するための合計時間を含む作業品質制約条件に基づく、請求項1記載の非一時的なコンピュータ可読記憶媒体。
【請求項6】
前記タスクを実行するための前記作業者の最適な部分集合を予測するとともに、前記タスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる前記段階がさらに、前記作業者のうちの相性がいい二人を作業者の前記最適な部分集合に含ませることを含む、あるいは前記作業者のうちの相性がよくない二人の両方は作業者の前記最適な部分集合に含ませないことを含む作業者協働制約条件に基づく、請求項1記載の非一時的なコンピュータ可読記憶媒体。
【請求項7】
前記動作がさらに、前記タスクに関連するハードウェアおよび/またはソフトウェア資源へのアクセスを、前記作業者の前記最適な部分集合の各作業者に対して承認することを含む、請求項1記載の非一時的なコンピュータ可読記憶媒体。
【請求項8】
作業者適性を予測するためのコンピュータ実装される方法であって:
複数の作業者、複数のツールおよび複数の分類法パラメータを同定する段階と;
前記分類法パラメータと前記ツールの間の関係を表わす値の部分的に満たされた第一の行列であって、欠けている各値は前記ツールのうち前記分類法パラメータの値が未知であるものを表わす、第一の行列と、前記作業者と前記ツールの間の関係を表わす値の部分的に満たされた第二の行列であって、欠けている各値は前記ツールのうち前記作業者のスキルが未知であるものを表わす、第二の行列と、前記作業者と前記分類法パラメータとの間の関係を表わす値の部分的に満たされた第三の行列であって、欠けている各値は前記分類法パラメータのうち前記作業者の習熟度が未知であるものを表わす、第三の行列とを同定する段階と;
前記部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークを用いて前記部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じる段階であって、満たされた第一の行列のそれぞれの予測された値は前記ツールの前記分類法パラメータの値を表わし、満たされた第二の行列のそれぞれの予測された値は前記作業者が前記ツールのスキルを習得する適性を表わし、満たされた第三の行列のそれぞれの予測された値は前記作業者の前記分類法パラメータに習熟する適性を表わす、段階と;
ツール要求および時間制約条件を含むタスクを同定する段階と;
各作業者についての時間利用可能性を同定する段階と;
前記タスクのツール要求、前記タスクの時間制約条件および各作業者についての時間利用可能性に基づいて、前記タスクを実行するための前記作業者の最適な部分集合を予測するとともに、前記タスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる段階とを含む、
コンピュータ実装される方法。
【請求項9】
前記ツールがソフトウェア開発ツールであり、前記タスクがソフトウェア開発タスクである、請求項8記載のコンピュータ実装される方法。
【請求項10】
前記分類法パラメータが、学習の複雑さ、学習時間、使いやすさ、抽象化レベル、活用レベルもしくは協働スタイルまたはそれらの何らかの組み合わせを含む、請求項9記載のコンピュータ実装される方法。
【請求項11】
前記部分的に満たされたおよび前記満たされた第一、第二および第三の行列における値が0から1までの間の値である、請求項10記載のコンピュータ実装される方法。
【請求項12】
前記タスクを実行するための前記作業者の最適な部分集合を予測するとともに、前記タスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる前記段階がさらに、最小時間期間から最大時間期間までの間に制約された、前記タスクを完了するための合計時間を含む作業品質制約条件に基づく、請求項8記載のコンピュータ実装される方法。
【請求項13】
前記タスクを実行するための前記作業者の最適な部分集合を予測するとともに、前記タスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる前記段階がさらに、前記作業者のうちの相性がいい二人を作業者の前記最適な部分集合に含ませることを含む、あるいは前記作業者のうちの相性がよくない二人の両方は作業者の前記最適な部分集合に含ませないことを含む作業者協働制約条件に基づく、請求項8記載のコンピュータ実装される方法。
【請求項14】
前記タスクに関連するハードウェアおよび/またはソフトウェア資源へのアクセスを、前記作業者の前記最適な部分集合の各作業者に対して承認する段階をさらに含む、請求項8記載のコンピュータ実装される方法。
【請求項15】
前記機械学習集団的行列因子分解フレームワークが疎な群埋め込みを用いる、請求項8記載のコンピュータ実装される方法。
【請求項16】
作業者適性を予測するためのコンピュータ実装される方法であって:
複数の作業者、複数のツールおよび複数の分類法パラメータを同定する段階と;
前記分類法パラメータと前記ツールの間の関係を表わす値の部分的に満たされた第一の行列であって、欠けている各値は前記ツールのうち前記分類法パラメータの値が未知であるものを表わす、第一の行列と、前記作業者と前記ツールの間の関係を表わす値の部分的に満たされた第二の行列であって、欠けている各値は前記ツールのうち前記作業者のスキルが未知であるものを表わす、第二の行列と、前記作業者と前記分類法パラメータとの間の関係を表わす値の部分的に満たされた第三の行列であって、欠けている各値は前記分類法パラメータのうち前記作業者の習熟度が未知であるものを表わす、第三の行列とを同定する段階と;
前記部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークを用いて前記部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じる段階であって、満たされた第一の行列のそれぞれの予測された値は前記ツールの前記分類法パラメータの値を表わし、満たされた第二の行列のそれぞれの予測された値は前記作業者が前記ツールのスキルを習得する適性を表わし、満たされた第三の行列のそれぞれの予測された値は前記作業者の前記分類法パラメータに習熟する適性を表わす、段階とを含む、
コンピュータ実装される方法。
【請求項17】
前記ツールがソフトウェア開発ツールである、請求項16記載のコンピュータ実装される方法。
【請求項18】
前記分類法パラメータが、学習の複雑さ、学習時間、使いやすさ、抽象化レベル、活用レベルもしくは協働スタイルまたはそれらの何らかの組み合わせを含む、請求項17記載のコンピュータ実装される方法。
【請求項19】
前記部分的に満たされたおよび前記満たされた第一、第二および第三の行列における値が0から1までの間の値である、請求項18記載のコンピュータ実装される方法。
【請求項20】
前記機械学習集団的行列因子分解フレームワークが疎な群埋め込みを用いる、請求項16記載のコンピュータ実装される方法。
【発明の詳細な説明】
【技術分野】
【0001】
本稿で論じられる実施形態は、機械学習集団行列因子分解フレームワークを使って作業者適性を予測することに関する。
【背景技術】
【0002】
ソフトウェア開発における一つの現在の潮流は、新しいソフトウェア開発ツール(たとえばプログラミング言語、フレームワーク、APIおよびパッケージなど)が絶えず利用可能になってくるということである。ソフトウェア開発におけるもう一つの潮流は、伝統的な計算機科学教育が古典的なソフトウェア開発ツールを教えることに焦点を当て、一般には、最新のソフトウェア開発ツールを教えないということである。こうして、新しいソフトウェア開発ツールの知識を必要とするタスクが定義されるとき、利用可能な作業者が該新しいソフトウェア開発ツールのスキルをもたないことがしばしばある。
【0003】
本願で特許請求される主題は、何らかの欠点を解決するまたは上記のような環境でのみ動作する実施形態に限定されない。むしろ、この背景は、本稿に記載されるいくつかの実施形態が実施されうる一つの例示的な技術領域を示すために与えられているだけである。
【発明の概要】
【課題を解決するための手段】
【0004】
本開示の一つまたは複数の実施形態は、作業者適性を予測するためのコンピュータ実装される方法を含みうる。ある実施形態によれば、方法は、複数の作業者、複数のツールおよび複数の分類法パラメータを同定することを含んでいてもよい。本方法は、前記分類法パラメータと前記ツールの間の関係を表わす値の部分的に満たされた第一の行列であって、欠けている各値は前記ツールのうち前記分類法パラメータの値が未知であるものを表わす、第一の行列と、前記作業者と前記ツールの間の関係を表わす値の部分的に満たされた第二の行列であって、欠けている各値は前記ツールのうち前記作業者のスキルが未知であるものを表わす、第二の行列と、前記作業者と前記分類法パラメータとの間の関係を表わす値の部分的に満たされた第三の行列であって、欠けている各値は前記分類法パラメータのうち前記作業者の習熟度が未知であるものを表わす、第三の行列とを同定することをも含んでいてもよい。さらに、本方法は、前記部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークを用いて前記部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じることを含んでいてもよい。ここで、満たされた第一の行列のそれぞれの予測された値は前記ツールの前記分類法パラメータの値を表わし、満たされた第二の行列のそれぞれの予測された値は前記作業者が前記ツールのスキルを習得する適性を表わし、満たされた第三の行列のそれぞれの予測された値は前記作業者の前記分類法パラメータに習熟する適性を表わす。
【0005】
実施形態の目的および利点は、少なくとも請求項において具体的に指摘される要素、特徴および組み合わせによって実現され、達成されるであろう。以上の概括的な記述および以下の詳細な記述は例示および説明するものであり、制約するものではない。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】Ajit P. Singh and Geoffrey J. Gordon, "Relational Learning via Collective Matrix Factorization", Proceedings of the 14th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 2008, pp.650-658
【非特許文献2】Arto Klami, Guillaume Bouchard, and Abhishek Tripathi, "Group-sparse Embeddings in Collective Matrix Factorization", International Conference on Learning Representations 2014に投稿、version 2, 最終改訂2014年2月18日、arXiv:1312.5921v2[stat.ML](「クラミ論文」)
【図面の簡単な説明】
【0007】
例示的実施形態について、付属の図面を使って、さらに具体的かつ詳細に記述し、説明する。
図1】作業者適性を予測するためのシステムの実施形態を示す図である。
図2図1の作業者適性を予測するためのシステムの一部の実施形態を示す図である。
図3】機械学習集団的行列因子分解フレームワークを使って作業者適性を予測するための例示的方法のフローチャートである。
図4】例示的なコンピューティング装置のブロック図である。
【発明を実施するための形態】
【0008】
先述したように、新しいソフトウェア開発ツールの知識を必要とするタスクが定義されるとき、利用可能な作業者が該新しいソフトウェア開発ツールのスキルをもたないことがしばしばある。よって、利用可能な作業者のうち誰が該タスクを完了するために必要とされるその新しいソフトウェア開発ツールを学習し、使うために最も適しているかを判定することが問題となることがある。
【0009】
本稿で開示される実施形態は、機械学習集団的行列因子分解フレームワークを使って作業者適性を予測することによって、この問題および同様の問題を解決するために用いられうる。たとえば、本稿に開示される実施形態は、機械学習集団的行列因子分解フレームワークを使って、新しいソフトウェア開発ツールを学習し使うことに対する、利用可能な作業者の適性を予測するために用いられてもよい。この予測は、利用可能な作業者のうち誰がその新しいソフトウェア開発ツールの使用を要求するタスクを完遂するために割り当てられるのに最も適しているかについての判定を可能にしうる。さらに、本稿に開示される実施形態は、タスクの時間制約条件および各作業者の時間利用可能性といった他の制約条件に対応するために用いられてもよい。
【0010】
このように、機械学習なしで人間の管理者が達成するのは不可能であろうことを達成するために、すなわち、タスクを実行するために利用可能な作業者たちの最適な部分集合を予測することを該作業者たちがまだそのタスクを実行するために必要とされるツール(単数または複数)のスキルをもたない場合でさえ行なうために、本稿に開示される実施形態を使って、機械学習が用いられてもよい。それにより、タスクが時間どおりに完了する可能性が高まり、作業者の時間およびスキルが最も効率的な仕方で利用される。
【0011】
本開示の実施形態について、ここで付属の図面を参照して説明する。
【0012】
図1は、作業者適性を予測するためのシステム100の実施形態を示している。システム100は、部分的に満たされた行列102、104および106、機械学習集団的行列因子分解フレームワーク108、満たされた行列110、112、114、制約条件116、凸最適化フレームワーク124および作業者選択および作業者毎時間割り当て126を含んでいてもよい。
【0013】
部分的に満たされた行列102、104および106は、分類法パラメータ、ツールおよび作業者の間の関係を表わす二次元行列として定義されてもよい。
【0014】
部分的に満たされた行列104および106における値によって表わされる作業者は、タスクを実行するために利用可能な作業者であってもよい。たとえば、作業者は、ソフトウェア開発ツールを使ってソフトウェア開発タスクを実行するために企業が雇用している利用可能な作業者であってもよい。作業者は、代替的または追加的に、利用可能な潜在的従業員であってもよく、タスクを実行するために該潜在的従業員が雇われるべきかどうかを決定するために企業が該潜在的従業員を評価している。作業者は、代替的または追加的に、何百または何千の作業者へのアクセスを認めうるクラウドソーシング・ウェブサイトとの関連で利用可能であってもよい。
【0015】
部分的に満たされた行列102および104における値によって表わされるツールは、さまざまなタスクを実行するために必要とされるツールであってもよい。たとえば、ツールはソフトウェア開発ツールであってもよく、タスクはソフトウェア開発タスクであってもよい。ソフトウェア開発ツールの例示的カテゴリーは、プログラミング言語、フレームワーク、APIおよびパッケージである。
【0016】
部分的に満たされた行列102および106における値によって表わされる分類法パラメータ(taxonomy parameter)は、作業者およびツールをパラメータ化するための共通のベースラインのはたらきをしうる。たとえば、これらの分類法パラメータは、学習の複雑さ、学習時間、使いやすさ、抽象化レベル、活用レベルまたは協働スタイルまたはそれらの何らかの組み合わせを含みうる。分類法パラメータ、学習の複雑さは、作業者については、その作業者が学習するのに抵抗がない新しいツールの複雑さのレベルを指してもよく、ツールについては、そのツールを学習することの複雑さのレベルを指してもよい。分類法パラメータ、学習時間は、作業者については、作業者が新しいツールを学習するために費やすことに抵抗がない時間の長さを指してもよく、ツールについては、そのツールを使うことを学習するのに必要とされる時間の長さを指してもよい。分類法パラメータ、使いやすさは、作業者については、その作業者が抵抗がない、ツールを使うことの複雑さのレベルを指してもよく、ツールについては、ひとたびそのツールが学習されたときにそのツールの使用に関わる複雑さのレベルを指してもよい。分類法パラメータ、抽象化レベルは、作業者については、ツールと対話するときにその作業者が扱うことに抵抗がない詳細さのレベルを指してもよく、ツールについては、そのツールと対話するために必要とされる詳細さのレベルを指してもよい(たとえば、コマンドライン対話は、視覚的なドラッグアンドドロップ対話よりも、高いレベルの詳細さを要求しうる)。分類法パラメータ、活用レベルは、作業者については、その作業者が使うツールからその作業者が歓迎する案内のレベルを指してもよく、ツールについては、そのツールが提供する案内のレベルを指してもよい。分類法パラメータ、協働スタイルは、作業者については、その作業者が好む協働のレベルを指してもよく、ツールについては、そのツールが許容する協働のレベルを指してもよい。
【0017】
部分的に満たされた行列102、104および106は、いくつかの値が欠けているために部分的にしか満たされていないことがある。特に、部分的に満たされた行列102の値は、分類法パラメータとツールの間の関係を表わしてもよく、それぞれの欠けている値は、前記ツールのうち、分類法パラメータの値が未知であるものを表わしてもよい。さらに、部分的に満たされた行列104の値は、作業者とツールの間の関係を表わしてもよく、それぞれの欠けている値は、前記ツールのうち、作業者のスキルが未知であるものを表わしてもよい。また、部分的に満たされた行列106の値は、作業者と分類法パラメータの間の関係を表わしてもよく、それぞれの欠けている値は、前記分類法パラメータのうち、作業者の習熟度(proficiency)が未知であるものを表わしてもよい。
【0018】
機械学習集団的行列因子分解フレームワーク108は、同じ行エンティティを共有するが列エンティティは異なる、あるいは同じ列エンティティを共有するが行エンティティは異なる、部分的に満たされた関係行列に対して用いられてもよい。たとえば、部分的に満たされた行列104および106は同じ行エンティティ(すなわち作業者)を共有するが、列エンティティ(すなわちツールおよび分類法パラメータ)は異なる。さらに、共有されるエンティティをもつ部分的に満たされた関係行列に対して機械学習集団的行列因子分解フレームワーク108が用いられて、ある関係からの情報を活用し別の関係を予測することによって予測精度を改善してもよい。これは、いくつかの行列を同時に因子分解し、エンティティが複数の関係に参加するときは諸因子の間でパラメータを共有することによって達成されてもよい。それぞれの関係は、異なる値型および誤差分布をもつことがあり、パラメータと出力の間に非線形関係が許容される。
【0019】
さらに、機械学習集団的行列因子分解フレームワーク108は、疎な群埋め込み(sparse group embedding)を用い、諸因子について群ごとに疎である制約条件を加えることによって行列の任意の部分集合にプライベートな諸因子を許容してもよい。この例示的実施形態において、疎な群埋め込みは、機械学習集団的行列因子分解フレームワーク108が、部分的に満たされた行列106の作業者‐分類法パラメータ関係のようなある種の関係に固有の(あるいはプライベートな)事実を学習することを許容しうる。この例示的実施形態ではまた、疎な群埋め込みは、すべての関係が等しく重要であることは前提としない。たとえば、部分的に満たされた行列106の作業者‐分類法パラメータ関係、部分的に満たされた行列104の作業者‐ツール関係および部分的に満たされた行列102の分類法パラメータ‐ツール関係に等しい重要性を与えなくてもよい。このことは、欠けている値を予測することにおいて、ある種の関係に他の関係よりも大きく重み付けすることを許容する。この不均等な重み付けは、たとえば、アマゾン・ウェブ・サービスを使ったプログラミングにおける作業者のスキルが作業者がアパッチ・プログラミング言語をより迅速に学習することと相関している、あるいは作業者のC++プログラミング言語におけるスキルが作業者がパイソン・プログラミング言語をより迅速に学習することと相関している状況では、正当化されうる。同様に、この不均等な重み付けは、作業者が複雑なタスクに抵抗がない場合に正当化されうる。それにより、たとえCとパイソンのプログラミング言語の間の相関がそれほど強くなかったとしても、その作業者がパイソン・プログラミング言語のスキルがあるがCプログラミング言語にはスキルがない場合にその作業者がそのタスクに割り当てられるべきよい選択でありうる。
【0020】
機械学習集団的行列因子分解フレームワーク108は、非特許文献1に記載されている集団的行列因子分解フレームワークと同様、あるいは非特許文献2に記載されている集団的行列因子分解フレームワークと同様であってもよい。両文献はここに参照によってその全体において組み込まれる。
【0021】
機械学習集団的行列因子分解フレームワーク108は、部分的に満たされた行列102、104および106の欠けている値を予測して満たされた行列110、112および114を生じるために部分的に満たされた行列102、104および106に対して用いられてもよい。ひとたび欠けている値が予測されたら、満たされた行列110のそれぞれの予測された値はツールの分類法パラメータの値を表わしてもよく、満たされた行列112のそれぞれの予測された値は作業者がツールのスキルを習得する適性を表わしてもよく、満たされた行列114のそれぞれの予測された値は作業者が分類法パラメータに習熟する適性を表わしてもよい。
【0022】
制約条件116はタスクに対する制約条件として定義されてもよい。たとえば、タスクは、タスク・ツール要求120およびタスク時間制約条件122によって定義されてもよい。加えて、作業者時間利用可能性118のような他の制約条件がタスクに関連付けられてもよい。
【0023】
タスク・ツール要求120、タスク時間制約条件122および作業者時間利用可能性118に基づいてそのタスクを実行するための作業者の最適な部分集合を予測するためおよびそのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測して、作業者選択および作業者毎の時間割り当て126を与えるために、満たされた行列110、112および114に対して凸最適化フレームワーク124が用いられてもよい。したがって、単に作業者利用可能性およびタスク時間制約条件のみに焦点を当てるのではなく、凸最適化フレームワーク124は、タスク・ツール要求120によって定義される、タスクによって要求されるスキル・セットを考慮に入れる。凸最適化フレームワーク124は、凸最適化のためのMatlabベースのモデル化システムであるCVXバージョン2.1、2016年10月、ビルド1112を使って実装されてもよい。
【0024】
加えて、凸最適化フレームワーク124の予測は、最小時間期間と最大時間期間の間に制約された、タスクを完了するための全時間を含む作業品質制約条件にも基づいていてもよい。追加的または代替的に、凸最適化フレームワーク124の予測は、前記作業者のうちの相性がいい二人を作業者の前記最適な部分集合に含ませることを含む、あるいは前記作業者のうちの相性がよくない二人の両方を作業者の前記最適な部分集合に含ませることはしないことを含む作業者協働制約条件にも基づいていてもよい。
【0025】
このように、システム100は、機械学習集団的行列因子分解フレームワーク108を使って、新しいツールを学習し、使用することについての利用可能な作業者の適性を予測するために用いられてもよい。この予測は、利用可能な作業者のうちの誰が、その新しいツールの使用を必要とするタスクを完遂するために割り当てられるのに最も好適かについての判定を可能にしうる。このように、機械学習集団的行列因子分解フレームワーク108は、システム100において、機械学習なしに人間の管理者が達成するのは不可能であろうことを達成するために、すなわち、タスクを実行するために利用可能な作業者たちの最適な部分集合を予測することを該作業者たちがまだそのタスクを実行するために必要とされるツール(単数または複数)のスキルをもたない場合でさえ行なうために用いられてもよい。それにより、タスクが時間どおりに完了する可能性が高まり、作業者の時間およびスキルが最も効率的な仕方で利用される。
【0026】
図2は、図1の作業者適性を予測するためのシステム100の一部200の実施形態を示している。部分200は、部分的に満たされた行列102、104および106と、機械学習集団的行列因子分解フレームワーク108と、満たされた行列110、112、114とを含む。図2の実施形態では、ツールはソフトウェア開発ツール、すなわちパイソン(Python)、C++およびジャバ(Java(登録商標))プログラミング言語であり、作業者は作業者1、作業者2おおよび作業者3であり、分類法パラメータは学習複雑さ、使いやすさおよび活用レベルである。
【0027】
図2に開示されるように、部分的に満たされた行列102、104および106および満たされた行列110、112、114における値は0から1までの間の値であり、0は最低値を示し、1は最高値を示す。たとえば、部分的に満たされた行列104の左上のセルにおける0.1の値および右上のセルにおける0.325の値は、作業者1がパイソン・プログラミング言語よりもジャバ・プログラミング言語によりスキルがあることを示している。このコンテキストにおいて、特定のプログラミング言語のスキルは、特定の作業者のそのプログラミング言語への選好に結びつけられていてもよいことは理解される。一般に、作業者が特定のプログラミング言語を好むこととその作業者がその特定のプログラミング言語のスキルをもつこととの間には共生関係がありうるからである。したがって、スキルと選好とは、少なくともいくつかの実施形態では、交換可能であってもよい。図2の開示ではまた、図2の部分的に満たされた行列102、104および106のそれぞれは、疑問符で表わされるところの値を欠いている。具体的には、部分的に満たされた行列102の欠けている値は、パイソンの活用レベルが未知であることを示し、部分的に満たされた行列104の欠けている値は作業者2のジャバのスキルが未知であることを示し、部分的に満たされた行列106の欠けている値は、作業者2の学習複雑さにおける習熟度が未知であることを示している。このコンテキストにおいて、未知とは、部分的に満たされた行列104のコンテキストにおけるように、スキルの欠如を示してもよいことは理解される。
【0028】
部分的に満たされた行列102、104および106における値は、サーベイ、観察および試験を含む多様な仕方で得られてもよい。たとえば、部分的に満たされた行列104および106における値は、部分的に満たされた行列104の列に挙げられたソフトウェア開発ツールに関し、また部分的に満たされた行列106の列に挙げられた分類法パラメータに関して作業者1、2、3にアンケートを取ることによって得られてもよい。この例では、部分的に満たされた行列104における欠けている値は、作業者2がアンケートにおいて作業者2はまだプログラミング言語、ジャバのスキルがないことを示すことから帰結してもよい。同様に、この例において、部分的に満たされた行列106における欠けている値は、作業者2が、その作業者が学習することに抵抗がない新しいツールの複雑さのレベルに関するアンケートの質問への答えを空欄にしたことから帰結してもよい。
【0029】
図2に開示されるように、機械学習集団的行列因子分解フレームワーク108は、プログラミング言語、パイソンの活用レベルの値を予測し、作業者2がプログラミング言語、ジャバのスキルを習得する適性を予測し、作業者2が学習複雑さに習熟する適性を予測するために、用いられてもよい。この予測は、利用可能な作業者1、2、3のうちの誰が、パイソン、C++およびジャバのプログラミング言語のうちの特定のものの使用を要求するタスクを完了するために割り当てられるのに最も好適であるかについての判定を可能にしうる。
【0030】
ここで図1および図2を参照するに、ある実施形態は、機械学習集団的行列因子分解フレームワーク108が、部分的に満たされた行列102、104および106の欠けている値を予測するために部分的に満たされた行列102、104および106に対して用いられるのに先立って、10回の反復工程など特定の逐次反復回数にわたってトレーニングされることを含んでいてもよい。この実施形態では、機械学習集団的行列因子分解フレームワーク108についての基本因子の数は、基本因子2つなど、特定の数に設定されてもよい。これは、有効確認誤差に基づいて決められる数であってもよい。最小の誤差を与える因子が選ばれる。また、この実施形態では、部分的に満たされた行列102、104および106を構成するオブジェクト集合のインデックスは(1,2)、(3,2)、(3,1)であってもよい。つまり、部分的に満たされた行列102は分類法パラメータを列、ツールを行として形成され、部分的に満たされた行列104が作業者を行、ツールを列として形成され、部分的に満たされた行列106は作業者を行、分類法パラメータを列として形成される。
【0031】
この実施形態において、機械学習集団的行列因子分解フレームワーク108は、部分的に満たされた行列102、104および106に対して用いられて、満たされた行列110、112および114を与えてもよい。さらに、この実施形態において、作業者時間利用可能性118は、作業者1≦100時間、作業者2≦40時間および作業者3≦120時間であってもよく、タスク・ツール要求120はパイソンおよびC++プログラミング言語の使用であってもよく、タスク時間制約条件122は≦100時間でのタスク完了であってもよい。パイソン・プログラミング言語が満たされた行列110の最上行において分類法パラメータ・ベクトル[0.7,0.1,0.5]によって表わされ、C++プログラミング言語は満たされた行列110の中央の行において分類法パラメータ・ベクトル[0.8,0.2,0.5]によって表わされていることを注意しておく。これら二つの分類法パラメータ・ベクトルを考えているタスクについての分類法パラメータを特徴付ける一つのベクトルに組み合わせるために、さまざまな集計戦略のうちのいずれかが用いられうる。用いられる集計戦略は、分類法パラメータの意味内容または実装の複雑さに基づいていてもよい。たとえば、集計戦略は、以下の集計戦略のいずれかまたはその何らかの組み合わせであってもよい:最大、最小、多数決、平均、乗算法、ボルダ得点、コープランド法、個別認否投票(approval voting)、最小忍耐(least misery)、最大満足(most pleasure)、忍耐を除いての平均(average without misery)、公平(fairness)または最も尊敬される者(most respected)。この実施形態では、第一の要素(学習複雑さに対応)を組み合わせるためには最大値が使用でき、第二の要素(使いやすさに対応)を組み合わせるためには最小値が使用でき、第三の要素(活用レベル)を組み合わせるためには平均値が使用できる。これらの組み合わせは、考えているタスクに対応する分類法パラメータ・ベクトル[0.8,0.1,0.5]を与える。
【0032】
この実施形態では、次いで、満たされたベクトル110、112および114に対して凸最適化フレームワーク124が用いられて、そのタスクを実行するための作業者の最適な部分集合を予測し、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測してもよい。具体的には、作業者1が分類法パラメータ・ベクトル[0.2,0.1,0.325]によって特徴付けられることができ、作業者2が分類法パラメータ・ベクトル[0.3,0.1,0.4]によって特徴付けられることができ、作業者3が分類法パラメータ・ベクトル[0.4,0.1,0.3]によって特徴付けられることができ、パイソンおよびC++プログラミング言語は組み合わされた分類法パラメータ・ベクトル[0.4,0.1,0.3]によって特徴付けられることができることから、作業者1≦100時間、作業者2≦40時間および作業者3≦120時間という作業者時間利用可能性118に基づいて、かつ≦100時間でのタスク完了というタスク時間制約条件に基づいて、凸最適化フレームワーク124が次いで用いられて、そのタスクを実行するための作業者の最適な部分集合が作業者1であると予測し、そのタスクに作業者1が割くべき時間の最適な量が100時間であると予測してもよい。
【0033】
作業者時間利用可能性118が作業者1≦60時間、作業者2≦40時間および作業者3≦120時間と変更されるほかは先の実施形態と同様であるもう一つの実施形態では、凸最適化フレームワーク124が用いられて、そのタスクを実行するための作業者の最適な部分集合が作業者1および作業者3であると予測し、そのタスクに作業者1および作業者3が割くべき時間の最適な量が作業者1について60時間、作業者3について40時間であると予測してもよい。
【0034】
もう一つの実施形態では、図1のシステム100および図2のシステム100の部分200によって実行される動作は次のように表わされてもよい:
・Tが、ツール=[D1,D2,…,Dn]によって定義されるツールの集合によって完了されることのできるタスクであるとする。
・Gが作業者W=[W1,W2,…,Wd3]からなる群であるとする。
・αがそのタスクについて許容される合計時間であるとする。
・α12,…,αd3が、そのタスクを完了するための個々の作業者の時間制約条件を表わすとする。
・可能な制約条件が、α1+α2,…+αd3≦αというものであってもよい。
・各ツールおよび作業者は、分類法ベクトルTP=[TP1,TP2,…,TPd1]に沿って特徴付けられてもよい。
【0035】
この実施形態において、これらのベクトルの欠けている値は、機械学習集団的行列因子分解フレームワーク108によって得られてもよい。ここで、
・X1=[xij(1)]が分類法パラメータ(エンティティE1)とツール(エンティティE1)との間の関係、すなわち、d2個のツール全部にわたる、d1 TPについての多くの作業者にわたる平均レーティングを記述するとする。
・X2=[xij(2)]が作業者とツールとの間の関係、すなわち、d2個のツールについての、d3人の作業者の選好レーティングを記述するとする。
・X3=[xij(3)]が作業者(エンティティE3)と分類法パラメータ(エンティティE1)との間の関係、すなわち、d1個の分類法パラメータについてのd3人の作業者の個々のレーティングを記述するとする。
・こうして、三つのエンティティ集合E={E1=TP,E2=ツール,E3=作業者}があり、上述したように次元deをもつ三つの関係行列がある。
【0036】
この実施形態では、ひとたび機械学習集団的行列因子分解フレームワーク108を使って欠けている値が得られたら、次の段階は、分類法パラメータに沿ってツール要求によって特徴付けられる単一のタスク・ベクトルを次のようにして得ることである。
・タスクTがD1,D2,…,Dnによって与えられるツールの集合によって完了されることができるとする。
・機械学習集団的行列因子分解フレームワーク108が、各ツールがその独自の分類法パラメータ(TP: taxonomy parameter)の集合によって特徴付けられることを保証する。
・よって、
D1=[TP11,TP21,…,TPd11], D2=[TP12,TP22,…,TPd12], Dn=[TP1n,TP2n,…,TPd1n]
・タスクTを、その分類法パラメータを用いた単一のTPベクトルによって特徴付ける。
・これを得る際、当該TPに基づき適切なマージ方式が用いられてもよい:
・たとえば、TPがツールの学習複雑さに関係している場合には、すべてのツールの間での複雑さの最大値が選ばれてもよい(最大満足方式);
・他方、TPが作業者の学習複雑さに関係している場合には、すべてのツールの間での最小値が選ばれてもよい(最小忍耐方式);
・曖昧さのない場合には、すべてのツールにわたる平均値が選ばれてもよい(平均方式)。
【0037】
この実施形態では、今や次のことがある。
・TPに沿って特徴付けられたタスクT=[TP1T,TP2T,…,TPd1T]
・作業者からなる群W=[W1,W2,…,Wd3]
・前記群の構成員は、個々のTPおよび時間制約条件によって特徴付けられる。よって、
W1=時間制約条件α1をもつ作業者1についてのTP値のベクトル、
W2=時間制約条件α2をもつ作業者2についてのTP値のベクトル、
など。
・こうして、問題は、次を解くことに帰着する:
・アルファに対する時間制約条件のもとでT=α1W1+α2W2+α3W3+…αd3Wd3 。これは凸最適化フレームワーク124を使って解いてもよく、結果として作業者選択および作業者毎の時間割り当て126を与える。
【0038】
この実施形態において、次のような条件を組み込むよう制約条件が選ばれてもよい:
・作業品質――タスクについて完了される仕事がある要件を満たし、よい品質であることを保証するために、タスクαを完了するための合計時間が区間[t1<α<t2]内であるよう制約条件が追加されることができる。これは、タスクの完了が速すぎるためにタスクが低品質であることを回避するとともに、完了までに時間がかかりすぎるためにタスクが非効率的な仕方で完了されることを回避する助けになりうる。
・作業者協働――一部の作業者は一緒に仕事をすることになじまないため、あるいは一部の作業者は常に一緒に作業することを望むため、それぞれα1>0ならα2=0(および逆にα2>0ならα1=0)、あるいはα1>0ならα2>0(および逆にα2>0ならα1>0)といった条件を選ぶことによって制約条件を組み込むことができる。α1>0ならα2>0(および逆にα2>0ならα1>0)という制約条件は非凸であり、よって解くためには非凸の数値的推定法を必要とすることを注意しておく。これを解くのは、凸最適化問題への解よりも達成するのが難しいことがある。
【0039】
もう一つの実施形態では図1のシステム100および図2のシステム100の一部200によって実行される動作は、次のように表わされてもよい。
・各関係行列Xmが低い階数の表現によって次のように近似されてもよい:
【数1】
ここで、Ue=[uik(e)]は、エンティティ集合eに関係した低階数の行列であり、bi(m,r)およびbj(m,c)はm番目の行列についてのバイアス項であり、εij(m)は要素ごとの独立ノイズである。
・どのXにも対応しないブロックが未観測(ブランク)のままにされるよう大きな単一の行列YがすべてのXmを含んでいてもよく、対応する一つの大きなエンティティ集合をもって構築される。ここで、d=EΣdeである。
・モデルは次いで、次のように対称行列因子分解として定式化できる:
Y=UUT+ε
ここで、
【数2】
はすべてのUe行列の列ごとの連結であり、εは全体的なノイズ項である。
・因子行列Ueのk番目の列が二つのエンティティ型rmおよびcmを除いてみなヌルである場合、そのことは、k番目の因子が関係mについてプライベートな因子であることを含意しうる。これらプライベートな因子の自動生成を許容するために、クラミ論文において開示されているように、Ueの列に対する群疎事前分布(group sparse priors)が課されてもよい。
・モデルが投影(projections)についてのガウシアン尤度(Gaussian likelihood)およびガンマ事前分布(Gamma priors)を指定することによって
【数3】
となるようインスタンス化されうる。ここで、eはエンティティiを含むエンティティ集合である。
・エンティティ集合eの変動をモデル化するためには必要とされないことがありうる因子kについての大きな精度値αekを学習することによって、uについての事前分布は各因子についてそれがアクティブである行列の集合を自動的に選択する。
・クラミ論文に開示されるようにモデル・パラメータを学習するために変分ベイズ近似が使われる。
【0040】
図3は、本開示に記載される少なくとも一つの実施形態に基づいて構成された、機械学習集団的行列因子分解フレームワークを使って作業者適性を予測するための例示的方法300のフローチャートである。方法300は、いかなる好適なシステム、装置またはデバイスによって実行されてもよい。たとえば、図1のシステム100またはそのコンポーネントの一つまたは複数は、方法300に関連付けられた動作の一つまたは複数を実行してもよい。これらおよび他の実施形態では、方法300の動作の一つまたは複数を実行するために、非一時的なコンピュータ可読媒体に記憶されたコンピュータ実行可能命令が実行されてもよい。離散的なブロックとして示されているが、目標実装に依存して、さまざまなブロックが追加的なブロックに分割されたり、より少数のブロックに組み合わされたり、あるいはなくされたりしてもよい。さらに、ブロックは異なる順序で実装されてもよい。たとえば、ブロック308〜312はなくされてもよい。
【0041】
ブロック302では、複数の作業者、複数のツール、複数の分類法パラメータが同定されてもよい。たとえば、図1および図2との関連で開示されたように、作業者はタスクを実行するために利用可能な作業者であってもよく、ツールはさまざまなタスクを実行するために要求されるツールであってもよく、分類法パラメータは、作業者およびツールをパラメータ化するための共通のベースラインのはたらきをしてもよい。ある例示的実施形態では、ツールはソフトウェア開発ツールであってもよい。
【0042】
ブロック304では、部分的に満たされた第一、第二および第三の行列が同定されてもよい。部分的に満たされた値の第一の行列は、前記分類法パラメータと前記ツールの間の関係を表わしてもよく、部分的に満たされた値の第二の行列は前記作業者と前記ツールの間の関係を表わしてもよく、部分的に満たされた値の第三の行列は前記作業者と前記分類法パラメータの間の関係を表わしてもよい。たとえば、図1および図2との関連で開示されたように、部分的に満たされた行列102の値は前記分類法パラメータと前記ツールの間の関係を表わしてもよく、欠けている各値は前記ツールのうち前記分類法パラメータの値が未知であるものを表わしてもよい。さらに、部分的に満たされた行列104の値は前記作業者と前記ツールの間の関係を表わしてもよく、欠けている各値は前記ツールのうち前記作業者のスキルが未知であるものを表わしてもよい。また、部分的に満たされた行列106の値は前記作業者と前記分類法パラメータとの間の関係を表わしてもよく、欠けている各値は前記分類法パラメータのうち前記作業者の習熟度が未知であるものを表わしてもよい。
【0043】
ブロック306では、部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークが用いられて、前記部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じてもよい。たとえば、図1および図2との関連で開示されたように、部分的に満たされた行列102、104、106に対して機械学習集団的行列因子分解フレームワーク108が用いられて、部分的に満たされた行列102、104、106の欠けている値を予測し、満たされた行列110、112、114を生じてもよい。さらに、満たされた行列110のそれぞれの予測された値は前記ツールの前記分類法パラメータの値を表わしてもよく、満たされた行列112のそれぞれの予測される値は前記作業者が前記ツールのスキルを習得する適性を表わしてもよく、満たされた行列114のそれぞれの予測される値は前記作業者の前記分類法パラメータに習熟する適性を表わしてもよい。
【0044】
ブロック308では、ツール要求および時間制約条件を含むタスクが同定されてもよい。たとえば、図1との関連で開示されるように、タスクはタスク・ツール要求120およびタスク時間制約条件122によって定義されてもよい。ある例示的実施形態では、タスクはソフトウェア開発タスクであってもよい。
【0045】
ブロック310では、各作業者の時間利用可能性が同定されてもよい。たとえば、図1との関連で開示されたように、作業者時間利用可能性118が同定され、ブロック308で同定されたタスクと関連付けられてもよい。
【0046】
ブロック312では、そのタスクのツール要求、そのタスクの時間制約条件および各作業者の時間利用可能性に基づいて、そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークが用いられてもよい。たとえば、図1との関連で開示されたように、タスク・ツール要求120、タスク時間制約条件122および作業者時間利用可能性118に基づいて、そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた行列110、112、114に対して凸最適化フレームワークが用いられてもよい。これにより、作業者選択および作業者毎の時間割り当て126が得られる。加えて、ブロック312はさらに、そのタスクに関連するハードウェアおよび/またはソフトウェア資源へのアクセスを、作業者の前記最適な部分集合の各作業者に対して承認することを含んでいてもよい。たとえば、作業者の前記部分集合のみが、そのタスクに関連するコンピュータ・ハードウェアまたはコンピュータ・ソフトウェア、たとえばそのタスクに関連するソフトウェア開発ツールへのアクセスを認められてもよい。一方、利用可能であるが前記作業者の部分集合に含まれない他の作業者は、そのタスクに関連する同じコンピュータ・ハードウェアまたはコンピュータ・ソフトウェアへのアクセスを拒否され、タスクに関連するツールへのアクセス・コントロールが提供される。
【0047】
したがって、方法300は、機械学習集団的行列因子分解フレームワークを使って新しいツール(単数または複数)を学習し使用するための、利用可能な作業者の適性を予測するために用いられうる。この予測は、利用可能者のうち誰がその新しいツールの使用を必要とするタスクを完了するために割り当てられるべく最も好適かについての判定を可能にしうる。このように、方法300では、機械学習なしで人間の管理者が達成するのは不可能であろうことを達成するために、すなわち、タスクを実行するために利用可能な作業者たちの最適な部分集合を予測することを該作業者たちがまだそのタスクを実行するために必要とされるツール(単数または複数)のスキルをもたない場合でさえ行なうために、機械学習集団的行列因子分解フレームワークが使用されうる。それにより、タスクが時間どおりに完了する可能性が高まり、作業者の時間およびスキルが最も効率的な仕方で利用される。
【0048】
方法300はソフトウェア開発ツールおよび例示的なソフトウェア開発タスクのコンテキストで論じてきたが、方法300は作業者が肉体労働者である場合の建設ツールおよびタスクのような身体的な労働ツールおよびタスク、作業者が管理者である場合のプロジェクト管理ツールおよびタスクまたは作業者が医師および看護師のような医療人員である場合の医療ツールおよびタスクまたは肉体労働およびソフトウェア開発の両方を含む復号タスクのコンテキストなどでのツールおよびタスクの任意の組み合わせのコンテキストでも等しく適用可能でありうることは理解される。
【0049】
図4は、本開示の少なくとも一つの実施形態に基づく、例示的なコンピューティング装置400のブロック図である。たとえば、図1のシステム100は、コンピューティング装置400上に実装されてもよい。コンピューティング装置400は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、サーバー・コンピュータ、タブレット・コンピュータ、携帯電話、スマートフォン、携帯情報端末(PDA)、電子書籍リーダー装置、ネットワーク・スイッチ、ネットワーク・ルーター、ネットワーク・ハブ、他のネットワーキング装置または他の好適なコンピューティング装置を含んでいてもよい。
【0050】
コンピューティング装置400は、プロセッサ410、記憶装置420、メモリ430および通信装置440を含んでいてもよい。プロセッサ410、記憶装置420、メモリ430および/または通信装置440はみな、各コンポーネントが他のコンポーネントと通信しうるよう、通信上結合されていてもよい。コンピューティング装置400は、本開示において記述される動作の任意のものを実行しうる。
【0051】
一般に、プロセッサ410は、さまざまなコンピュータ・ハードウェアまたはソフトウェア・モジュールを含むいかなる好適な専用または汎用コンピュータ、コンピューティング・エンティティまたは処理装置を含んでいてもよく、いかなる適用可能なコンピュータ可読記憶媒体上に記憶された命令を実行するよう構成されていてもよい。たとえば、プロセッサ410はマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)またはプログラム命令をインタープリットおよび/または実行するおよび/またはデータを処理するよう構成された他の任意のデジタルもしくはアナログ回路を含んでいてもよい。図4では単一のプロセッサとして示されているが、プロセッサ410は、本開示に記載される任意の数の動作を個々にまたは集団的に実行するよう構成された任意の数のプロセッサを含んでいてもよい。
【0052】
いくつかの実施形態では、プロセッサ410は、プログラム命令をインタープリットおよび/または実行するおよび/または記憶装置420、メモリ430または記憶装置420とメモリ430に記憶されたデータを処理することを行なってもよい。いくつかの実施形態では、プロセッサ410は記憶装置420からプログラム命令を取ってきて、該プログラム命令をメモリ430にロードしてもよい。プログラム命令がメモリ430にロードされた後、プロセッサ410はプログラム命令を実行してもよい。
【0053】
たとえば、いくつかの実施形態において、プロセス・チェーンの処理動作の一つまたは複数がデータ記憶420にプログラム命令として含められてもよい。プロセッサ410は、前記処理動作のうち一つまたは複数の前記プログラム命令を取ってきて、前記処理動作の前記プログラム命令をメモリ430にロードしてもよい。前記処理動作のプログラム命令がメモリ430にロードされた後、プロセッサ410はプログラム命令を実行してもよく、それによりコンピューティング装置400はプログラム命令によって指令されるように、前記処理動作に関連する動作を実装しうる。
【0054】
記憶装置420およびメモリ430は、コンピュータ実行可能な命令またはデータ構造を担持するまたは記憶するコンピュータ可読記憶媒体を含んでいてもよい。そのようなコンピュータ可読記憶媒体は、プロセッサ410のような汎用または特殊目的コンピュータによってアクセスされうるいかなる利用可能な媒体を含んでいてもよい。限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスク記憶、磁気ディスク記憶または他の磁気記憶デバイス、フラッシュメモリ・デバイス(たとえば半導体メモリ・デバイス)またはコンピュータ実行可能な命令またはデータ構造の形で所望されるプログラム・コードを担持または記憶するために使用されうる、汎用または特殊目的コンピュータによってアクセスされうる他の任意の記憶媒体を含む、有体または非一時的なコンピュータ可読記憶媒体を含んでいてもよい。上記のものの組み合わせも、コンピュータ可読記憶媒体の範囲内に含まれうる。コンピュータ実行可能な命令はたとえば、プロセッサ410に、ある動作または動作群を実行させるよう構成された命令およびデータを含んでいてもよい。
【0055】
いくつかの実施形態では、記憶装置420および/またはメモリ430は、深層学習システムに関連するデータを記憶してもよい。たとえば、記憶装置420および/またはメモリ430はエンコードされた活性化アドレス、エンコードされた重みアドレスおよび/または一つまたは複数の辞書を記憶してもよい。
【0056】
通信装置440は、コンピューティング装置400と別の電子装置との間の通信を許容するまたは容易にするよう構成された任意の装置、システム、コンポーネントまたはコンポーネントの集まりを含んでいてもよい。たとえば、通信装置440は、限定なしに、モデム、ネットワーク・カード(無線または有線)、赤外線通信装置、光通信装置、無線通信装置(たとえばアンテナ)および/またはチップセット(たとえばブルートゥース(登録商標)装置、802.6装置(たとえば都市圏ネットワーク(MAN))、Wi-Fi装置、WiMAX装置、セルラー通信設備など)および/またはその他を含んでいてもよい。通信装置440は、若干の例を挙げるとセルラー・ネットワーク、Wi-Fiネットワーク、MAN、光ネットワークなどのような任意のネットワークおよび/またはリモート装置を含め本開示に記載される他の任意の装置と、データが交換されることを許容しうる。
【0057】
本開示の範囲から外れることなく、図4に修正、追加または省略がなされてもよい。たとえば、コンピューティング装置400は、本開示において図示され、記述されているより多数または少数の要素を含んでいてもよい。たとえば、コンピューティング装置400は、タブレットまたは携帯電話の画面のような統合された表示装置を含んでいてもよく、あるいはコンピューティング装置400とは別個でありコンピューティング装置400に通信上結合されているのでもよい外部モニター、プロジェクター、テレビジョンまたは他の好適な表示装置を含んでいてもよい。
【0058】
本開示での用法では、用語「モジュール」または「コンポーネント」は、該モジュールまたはコンポーネントのアクションを実行するよう構成された特定のハードウェア実装および/またはコンピューティング・システムの汎用ハードウェア(たとえばコンピュータ可読媒体、処理装置など)に記憶および/または実行さうれるソフトウェア・オブジェクトまたはソフトウェア・ルーチンを指しうる。いくつかの実施形態では、本開示に記載される種々のコンポーネント、モジュール、エンジンおよびサービスは、(たとえば別個のスレッドとして)コンピューティング・システム上で実行されるオブジェクトまたはプロセスとして実装されてもよい。本開示に記載されるシステムおよび方法のいくつかは、一般に、(汎用ハードウェアに記憶および/または実行される)ソフトウェアで実装されるものとして記述されるが、個別のハードウェア実装またはソフトウェアと個別のハードウェア実装の組み合わせも可能であり、考えられている。本開示において、「コンピューティング・エンティティ」は、本開示で先に定義したような任意のコンピューティング・システムまたはコンピューティング・システム上で走る任意のモジュールもしくはモジュールの組み合わせでありうる。
【0059】
本開示および特に付属の請求項(たとえば付属の請求項の本文)において使われる用語は一般に「オープン」な用語として意図されている(たとえば、用語「含む」は「含むがそれに限られない」と解釈されるべきであり、用語「もつ」は「少なくとも…をもつ」と解釈されるべきであり、用語「含む」は「含むがそれに限られない」と解釈されるべきであるなど)。
【0060】
さらに、導入される請求項の記載の特定の数が意図される場合、そのような意図は請求項において明示的に記載される。そのような記載のない場合には、そのような意図はない。たとえば、理解の助けとして、以下の付属の請求項は、請求項の記載を導入するために「少なくとも一つの」および「一つまたは複数の」という導入句の使用を含むことがありうる。しかしながら、たとえ同じ請求項が導入句「一つまたは複数の」または「少なくとも一つの」および「a」または「an」のような不定冠詞を含むときでも、そのような句の使用は、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入された請求項の記載を含む何らかの特定の請求項を、そのような記載を一つだけ含む実施形態に限定することを含意していると解釈されるべきではない(たとえば、「a」および/または「an」は、「少なくとも一つの」または「一つまたは複数の」を意味するものと解釈されるべきである)。同じことは、請求項の記載を導入する定冠詞の使用についても成り立つ。
【0061】
さらに、たとえ導入される請求項の記載の特定の数が明示的に記載されていたとしても、当業者は、そのような記載が、少なくともその記載された数を意味すると解釈されるべきであることを認識するであろう(たとえば、他の修飾語なしで単に「二つの記載」という記載は、少なくとも二つの記載または二つ以上の記載を意味する)。さらに、「A、BおよびCなどのうちの少なくとも一つ」または「A、BおよびCなどの一つまたは複数」に類似する慣用句が使われる事例においては、一般に、そのような構文はAだけ、Bだけ、Cだけ、AおよびB両方、AおよびC両方、BおよびC両方またはA、BおよびC全部などを含むことが意図される。
【0062】
さらに、明細書であれ請求項であれ図面であれ、二つ以上の代替的な用語を呈示するあらゆる離接的な語句は、該用語の一つを含む、該用語のいずれかを含むまたは該用語の両方を含む可能性を考えているものと理解されるべきである。たとえば、「AまたはB」という句は、「A」または「B」または「AおよびB」の可能性を含むと理解されるべきである。
【0063】
本開示において記載されるすべての例および条件付きの言辞は、本発明および発明者によって当技術分野の発展のために寄与される概念の理解において読者を助ける教育目的を意図されており、そのような特定的に挙げられる例および条件に限定することなく解釈されるものとする。本開示の実施形態について詳細に述べてきたが、本開示の精神および範囲から外れることなく、これにさまざまな変化、代替および変更をなすことができることは理解しておくべきである。
【0064】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
作業者適性を予測するための動作をシステムに実行させるよう構成されたコンピュータ実行可能命令を含む非一時的なコンピュータ可読記憶媒体であって、前記動作は:
複数の作業者、複数のツールおよび複数の分類法パラメータを同定する段階と;
前記分類法パラメータと前記ツールの間の関係を表わす値の部分的に満たされた第一の行列であって、欠けている各値は前記ツールのうち前記分類法パラメータの値が未知であるものを表わす、第一の行列と、前記作業者と前記ツールの間の関係を表わす値の部分的に満たされた第二の行列であって、欠けている各値は前記ツールのうち前記作業者のスキルが未知であるものを表わす、第二の行列と、前記作業者と前記分類法パラメータとの間の関係を表わす値の部分的に満たされた第三の行列であって、欠けている各値は前記分類法パラメータのうち前記作業者の習熟度が未知であるものを表わす、第三の行列とを同定する段階と;
前記部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークを用いて前記部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じる段階であって、満たされた第一の行列のそれぞれの予測された値は前記ツールの前記分類法パラメータの値を表わし、満たされた第二の行列のそれぞれの予測された値は前記作業者が前記ツールのスキルを習得する適性を表わし、満たされた第三の行列のそれぞれの予測された値は前記作業者の前記分類法パラメータに習熟する適性を表わす、段階と;
ツール要求および時間制約条件を同定する段階と;
各作業者についての時間利用可能性を同定する段階と;
そのタスクのツール要求、そのタスクの時間制約条件および各作業者についての時間利用可能性に基づいて、そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる段階とを含む、
非一時的なコンピュータ可読記憶媒体。
(付記2)
前記ツールがソフトウェア開発ツールであり、前記タスクがソフトウェア開発タスクである、付記1記載の非一時的なコンピュータ可読記憶媒体。
(付記3)
前記分類法パラメータが、学習の複雑さ、学習時間、使いやすさ、抽象化レベル、活用レベルもしくは協働スタイルまたはそれらの何らかの組み合わせを含む、付記2記載の非一時的なコンピュータ可読記憶媒体。
(付記4)
前記部分的に満たされたおよび前記満たされた第一、第二および第三の行列における値が0から1までの間の値である、付記3記載の非一時的なコンピュータ可読記憶媒体。
(付記5)
そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる前記段階がさらに、最小時間期間から最大時間期間までの間に制約された、そのタスクを完了するための合計時間を含む作業品質制約条件に基づく、付記1記載の非一時的なコンピュータ可読記憶媒体。
(付記6)
そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる前記段階がさらに、前記作業者のうちの相性がいい二人を作業者の前記最適な部分集合に含ませることを含む、あるいは前記作業者のうちの相性がよくない二人の両方は作業者の前記最適な部分集合に含ませないことを含む作業者協働制約条件に基づく、付記1記載の非一時的なコンピュータ可読記憶媒体。
(付記7)
前記動作がさらに、前記タスクに関連するハードウェアおよび/またはソフトウェア資源へのアクセスを、前記作業者の前記最適な部分集合の各作業者に対して承認することを含む、付記1記載の非一時的なコンピュータ可読記憶媒体。
(付記8)
作業者適性を予測するためのコンピュータ実装される方法であって:
複数の作業者、複数のツールおよび複数の分類法パラメータを同定する段階と;
前記分類法パラメータと前記ツールの間の関係を表わす値の部分的に満たされた第一の行列であって、欠けている各値は前記ツールのうち前記分類法パラメータの値が未知であるものを表わす、第一の行列と、前記作業者と前記ツールの間の関係を表わす値の部分的に満たされた第二の行列であって、欠けている各値は前記ツールのうち前記作業者のスキルが未知であるものを表わす、第二の行列と、前記作業者と前記分類法パラメータとの間の関係を表わす値の部分的に満たされた第三の行列であって、欠けている各値は前記分類法パラメータのうち前記作業者の習熟度が未知であるものを表わす、第三の行列とを同定する段階と;
前記部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークを用いて前記部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じる段階であって、満たされた第一の行列のそれぞれの予測された値は前記ツールの前記分類法パラメータの値を表わし、満たされた第二の行列のそれぞれの予測された値は前記作業者が前記ツールのスキルを習得する適性を表わし、満たされた第三の行列のそれぞれの予測された値は前記作業者の前記分類法パラメータに習熟する適性を表わす、段階と;
ツール要求および時間制約条件を同定する段階と;
各作業者についての時間利用可能性を同定する段階と;
そのタスクのツール要求、そのタスクの時間制約条件および各作業者についての時間利用可能性に基づいて、そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる段階とを含む、
コンピュータ実装される方法。
(付記9)
前記ツールがソフトウェア開発ツールであり、前記タスクがソフトウェア開発タスクである、付記8記載のコンピュータ実装される方法。
(付記10)
前記分類法パラメータが、学習の複雑さ、学習時間、使いやすさ、抽象化レベル、活用レベルもしくは協働スタイルまたはそれらの何らかの組み合わせを含む、付記9記載のコンピュータ実装される方法。
(付記11)
前記部分的に満たされたおよび前記満たされた第一、第二および第三の行列における値が0から1までの間の値である、付記10記載のコンピュータ実装される方法。
(付記12)
そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる前記段階がさらに、最小時間期間から最大時間期間までの間に制約された、そのタスクを完了するための合計時間を含む作業品質制約条件に基づく、付記8記載のコンピュータ実装される方法。
(付記13)
そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる前記段階がさらに、前記作業者のうちの相性がいい二人を作業者の前記最適な部分集合に含ませることを含む、あるいは前記作業者のうちの相性がよくない二人の両方は作業者の前記最適な部分集合に含ませないことを含む作業者協働制約条件に基づく、付記8記載のコンピュータ実装される方法。
(付記14)
前記タスクに関連するハードウェアおよび/またはソフトウェア資源へのアクセスを、前記作業者の前記最適な部分集合の各作業者に対して承認する段階をさらに含む、付記8記載のコンピュータ実装される方法。
(付記15)
前記機械学習集団的行列因子分解フレームワークが疎な群埋め込みを用いる、付記8記載のコンピュータ実装される方法。
(付記16)
作業者適性を予測するためのコンピュータ実装される方法であって:
複数の作業者、複数のツールおよび複数の分類法パラメータを同定する段階と;
前記分類法パラメータと前記ツールの間の関係を表わす値の部分的に満たされた第一の行列であって、欠けている各値は前記ツールのうち前記分類法パラメータの値が未知であるものを表わす、第一の行列と、前記作業者と前記ツールの間の関係を表わす値の部分的に満たされた第二の行列であって、欠けている各値は前記ツールのうち前記作業者のスキルが未知であるものを表わす、第二の行列と、前記作業者と前記分類法パラメータとの間の関係を表わす値の部分的に満たされた第三の行列であって、欠けている各値は前記分類法パラメータのうち前記作業者の習熟度が未知であるものを表わす、第三の行列とを同定する段階と;
前記部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークを用いて前記部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じる段階であって、満たされた第一の行列のそれぞれの予測された値は前記ツールの前記分類法パラメータの値を表わし、満たされた第二の行列のそれぞれの予測された値は前記作業者が前記ツールのスキルを習得する適性を表わし、満たされた第三の行列のそれぞれの予測された値は前記作業者の前記分類法パラメータに習熟する適性を表わす、段階とを含む、
コンピュータ実装される方法。
(付記17)
前記ツールがソフトウェア開発ツールである、付記16記載のコンピュータ実装される方法。
(付記18)
前記分類法パラメータが、学習の複雑さ、学習時間、使いやすさ、抽象化レベル、活用レベルもしくは協働スタイルまたはそれらの何らかの組み合わせを含む、付記17記載のコンピュータ実装される方法。
(付記19)
前記部分的に満たされたおよび前記満たされた第一、第二および第三の行列における値が0から1までの間の値である、付記18記載のコンピュータ実装される方法。
(付記20)
前記機械学習集団的行列因子分解フレームワークが疎な群埋め込みを用いる、付記16記載のコンピュータ実装される方法。
【符号の説明】
【0065】
108 機械学習集団的行列因子分解フレームワーク
116 制約条件
118 作業者時間利用可能性
120 タスク・ツール要求
122 タスク時間制約条件
124 凸最適化フレームワーク
126 作業者選択および作業者毎の時間割り当て
302 複数の作業者、複数のツールおよび複数の分類法パラメータを同定
304 分類法パラメータとツールの間の関係を表わす値の部分的に満たされた第一の行列、作業者とツールの間の関係を表わす値の部分的に満たされた値の第二の行列および作業者と分類法パラメータの間の関係を表わす値の部分的に満たされた第三の行列を同定
306 部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークを用いて、部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じる
308 ツール要求および時間制約条件を含むタスクを同定
310 各作業者の時間利用可能性を同定
312 そのタスクのツール要求、そのタスクの時間制約条件および各作業者の時間利用可能性に基づいて、そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる
図1
図2
図3
図4