(57)【要約】      （修正有）【課題】ソフトウェア開発における作業者適性を予測する。【解決手段】複数の作業者、複数のツールおよび複数の分類法パラメータを同定する。分類法パラメータとツールの間の関係を表わす値の部分的に満たされた第一の行列と、作業者とツールの間の関係を表わす値の部分的に満たされた第二の行列と、作業者と分類法パラメータとの間の関係を表わす値の部分的に満たされた第三の行列とを同定する。さらに、部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークを用いて部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じる段階を含む。満たされた第二の行列のそれぞれの予測された値が、作業者がツールのスキルを習得する適性を表わし、満たされた第三の行列のそれぞれの予測された値は作業者が分類法パラメータに習熟する適性を表わす。【選択図】図３
2018101399.tif 000002
【特許請求の範囲】
【請求項１】
作業者適性を予測するための動作をシステムに実行させるよう構成されたコンピュータ実行可能命令を含む非一時的なコンピュータ可読記憶媒体であって、前記動作は：
複数の作業者、複数のツールおよび複数の分類法パラメータを同定する段階と；
前記分類法パラメータと前記ツールの間の関係を表わす値の部分的に満たされた第一の行列であって、欠けている各値は前記ツールのうち前記分類法パラメータの値が未知であるものを表わす、第一の行列と、前記作業者と前記ツールの間の関係を表わす値の部分的に満たされた第二の行列であって、欠けている各値は前記ツールのうち前記作業者のスキルが未知であるものを表わす、第二の行列と、前記作業者と前記分類法パラメータとの間の関係を表わす値の部分的に満たされた第三の行列であって、欠けている各値は前記分類法パラメータのうち前記作業者の習熟度が未知であるものを表わす、第三の行列とを同定する段階と；
前記部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークを用いて前記部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じる段階であって、満たされた第一の行列のそれぞれの予測された値は前記ツールの前記分類法パラメータの値を表わし、満たされた第二の行列のそれぞれの予測された値は前記作業者が前記ツールのスキルを習得する適性を表わし、満たされた第三の行列のそれぞれの予測された値は前記作業者の前記分類法パラメータに習熟する適性を表わす、段階と；
ツール要求および時間制約条件を同定する段階と；
各作業者についての時間利用可能性を同定する段階と；
そのタスクのツール要求、そのタスクの時間制約条件および各作業者についての時間利用可能性に基づいて、そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる段階とを含む、
非一時的なコンピュータ可読記憶媒体。
【請求項２】
前記ツールがソフトウェア開発ツールであり、前記タスクがソフトウェア開発タスクである、請求項１記載の非一時的なコンピュータ可読記憶媒体。
【請求項３】
前記分類法パラメータが、学習の複雑さ、学習時間、使いやすさ、抽象化レベル、活用レベルもしくは協働スタイルまたはそれらの何らかの組み合わせを含む、請求項２記載の非一時的なコンピュータ可読記憶媒体。
【請求項４】
前記部分的に満たされたおよび前記満たされた第一、第二および第三の行列における値が0から1までの間の値である、請求項３記載の非一時的なコンピュータ可読記憶媒体。
【請求項５】
そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる前記段階がさらに、最小時間期間から最大時間期間までの間に制約された、そのタスクを完了するための合計時間を含む作業品質制約条件に基づく、請求項１記載の非一時的なコンピュータ可読記憶媒体。
【請求項６】
そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる前記段階がさらに、前記作業者のうちの相性がいい二人を作業者の前記最適な部分集合に含ませることを含む、あるいは前記作業者のうちの相性がよくない二人の両方は作業者の前記最適な部分集合に含ませないことを含む作業者協働制約条件に基づく、請求項１記載の非一時的なコンピュータ可読記憶媒体。
【請求項７】
前記動作がさらに、前記タスクに関連するハードウェアおよび／またはソフトウェア資源へのアクセスを、前記作業者の前記最適な部分集合の各作業者に対して承認することを含む、請求項１記載の非一時的なコンピュータ可読記憶媒体。
【請求項８】
作業者適性を予測するためのコンピュータ実装される方法であって：
複数の作業者、複数のツールおよび複数の分類法パラメータを同定する段階と；
前記分類法パラメータと前記ツールの間の関係を表わす値の部分的に満たされた第一の行列であって、欠けている各値は前記ツールのうち前記分類法パラメータの値が未知であるものを表わす、第一の行列と、前記作業者と前記ツールの間の関係を表わす値の部分的に満たされた第二の行列であって、欠けている各値は前記ツールのうち前記作業者のスキルが未知であるものを表わす、第二の行列と、前記作業者と前記分類法パラメータとの間の関係を表わす値の部分的に満たされた第三の行列であって、欠けている各値は前記分類法パラメータのうち前記作業者の習熟度が未知であるものを表わす、第三の行列とを同定する段階と；
前記部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークを用いて前記部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じる段階であって、満たされた第一の行列のそれぞれの予測された値は前記ツールの前記分類法パラメータの値を表わし、満たされた第二の行列のそれぞれの予測された値は前記作業者が前記ツールのスキルを習得する適性を表わし、満たされた第三の行列のそれぞれの予測された値は前記作業者の前記分類法パラメータに習熟する適性を表わす、段階と；
ツール要求および時間制約条件を同定する段階と；
各作業者についての時間利用可能性を同定する段階と；
そのタスクのツール要求、そのタスクの時間制約条件および各作業者についての時間利用可能性に基づいて、そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる段階とを含む、
コンピュータ実装される方法。
【請求項９】
前記ツールがソフトウェア開発ツールであり、前記タスクがソフトウェア開発タスクである、請求項８記載のコンピュータ実装される方法。
【請求項１０】
前記分類法パラメータが、学習の複雑さ、学習時間、使いやすさ、抽象化レベル、活用レベルもしくは協働スタイルまたはそれらの何らかの組み合わせを含む、請求項９記載のコンピュータ実装される方法。
【請求項１１】
前記部分的に満たされたおよび前記満たされた第一、第二および第三の行列における値が0から1までの間の値である、請求項１０記載のコンピュータ実装される方法。
【請求項１２】
そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる前記段階がさらに、最小時間期間から最大時間期間までの間に制約された、そのタスクを完了するための合計時間を含む作業品質制約条件に基づく、請求項８記載のコンピュータ実装される方法。
【請求項１３】
そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる前記段階がさらに、前記作業者のうちの相性がいい二人を作業者の前記最適な部分集合に含ませることを含む、あるいは前記作業者のうちの相性がよくない二人の両方は作業者の前記最適な部分集合に含ませないことを含む作業者協働制約条件に基づく、請求項８記載のコンピュータ実装される方法。
【請求項１４】
前記タスクに関連するハードウェアおよび／またはソフトウェア資源へのアクセスを、前記作業者の前記最適な部分集合の各作業者に対して承認する段階をさらに含む、請求項８記載のコンピュータ実装される方法。
【請求項１５】
前記機械学習集団的行列因子分解フレームワークが疎な群埋め込みを用いる、請求項８記載のコンピュータ実装される方法。
【請求項１６】
作業者適性を予測するためのコンピュータ実装される方法であって：
複数の作業者、複数のツールおよび複数の分類法パラメータを同定する段階と；
前記分類法パラメータと前記ツールの間の関係を表わす値の部分的に満たされた第一の行列であって、欠けている各値は前記ツールのうち前記分類法パラメータの値が未知であるものを表わす、第一の行列と、前記作業者と前記ツールの間の関係を表わす値の部分的に満たされた第二の行列であって、欠けている各値は前記ツールのうち前記作業者のスキルが未知であるものを表わす、第二の行列と、前記作業者と前記分類法パラメータとの間の関係を表わす値の部分的に満たされた第三の行列であって、欠けている各値は前記分類法パラメータのうち前記作業者の習熟度が未知であるものを表わす、第三の行列とを同定する段階と；
前記部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークを用いて前記部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じる段階であって、満たされた第一の行列のそれぞれの予測された値は前記ツールの前記分類法パラメータの値を表わし、満たされた第二の行列のそれぞれの予測された値は前記作業者が前記ツールのスキルを習得する適性を表わし、満たされた第三の行列のそれぞれの予測された値は前記作業者の前記分類法パラメータに習熟する適性を表わす、段階とを含む、
コンピュータ実装される方法。
【請求項１７】
前記ツールがソフトウェア開発ツールである、請求項１６記載のコンピュータ実装される方法。
【請求項１８】
前記分類法パラメータが、学習の複雑さ、学習時間、使いやすさ、抽象化レベル、活用レベルもしくは協働スタイルまたはそれらの何らかの組み合わせを含む、請求項１７記載のコンピュータ実装される方法。
【請求項１９】
前記部分的に満たされたおよび前記満たされた第一、第二および第三の行列における値が0から1までの間の値である、請求項１８記載のコンピュータ実装される方法。
【請求項２０】
前記機械学習集団的行列因子分解フレームワークが疎な群埋め込みを用いる、請求項１６記載のコンピュータ実装される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本稿で論じられる実施形態は、機械学習集団行列因子分解フレームワークを使って作業者適性を予測することに関する。
【背景技術】
【０００２】
ソフトウェア開発における一つの現在の潮流は、新しいソフトウェア開発ツール（たとえばプログラミング言語、フレームワーク、APIおよびパッケージなど）が絶えず利用可能になってくるということである。ソフトウェア開発におけるもう一つの潮流は、伝統的な計算機科学教育が古典的なソフトウェア開発ツールを教えることに焦点を当て、一般には、最新のソフトウェア開発ツールを教えないということである。こうして、新しいソフトウェア開発ツールの知識を必要とするタスクが定義されるとき、利用可能な作業者が該新しいソフトウェア開発ツールのスキルをもたないことがしばしばある。
【０００３】
本願で特許請求される主題は、何らかの欠点を解決するまたは上記のような環境でのみ動作する実施形態に限定されない。むしろ、この背景は、本稿に記載されるいくつかの実施形態が実施されうる一つの例示的な技術領域を示すために与えられているだけである。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示の一つまたは複数の実施形態は、作業者適性を予測するためのコンピュータ実装される方法を含みうる。ある実施形態によれば、方法は、複数の作業者、複数のツールおよび複数の分類法パラメータを同定することを含んでいてもよい。本方法は、前記分類法パラメータと前記ツールの間の関係を表わす値の部分的に満たされた第一の行列であって、欠けている各値は前記ツールのうち前記分類法パラメータの値が未知であるものを表わす、第一の行列と、前記作業者と前記ツールの間の関係を表わす値の部分的に満たされた第二の行列であって、欠けている各値は前記ツールのうち前記作業者のスキルが未知であるものを表わす、第二の行列と、前記作業者と前記分類法パラメータとの間の関係を表わす値の部分的に満たされた第三の行列であって、欠けている各値は前記分類法パラメータのうち前記作業者の習熟度が未知であるものを表わす、第三の行列とを同定することをも含んでいてもよい。さらに、本方法は、前記部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークを用いて前記部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じることを含んでいてもよい。ここで、満たされた第一の行列のそれぞれの予測された値は前記ツールの前記分類法パラメータの値を表わし、満たされた第二の行列のそれぞれの予測された値は前記作業者が前記ツールのスキルを習得する適性を表わし、満たされた第三の行列のそれぞれの予測された値は前記作業者の前記分類法パラメータに習熟する適性を表わす。
【０００５】
実施形態の目的および利点は、少なくとも請求項において具体的に指摘される要素、特徴および組み合わせによって実現され、達成されるであろう。以上の概括的な記述および以下の詳細な記述は例示および説明するものであり、制約するものではない。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】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
【非特許文献２】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]（「クラミ論文」）
【図面の簡単な説明】
【０００７】
例示的実施形態について、付属の図面を使って、さらに具体的かつ詳細に記述し、説明する。
【図１】作業者適性を予測するためのシステムの実施形態を示す図である。
【図２】図１の作業者適性を予測するためのシステムの一部の実施形態を示す図である。
【図３】機械学習集団的行列因子分解フレームワークを使って作業者適性を予測するための例示的方法のフローチャートである。
【図４】例示的なコンピューティング装置のブロック図である。
【発明を実施するための形態】
【０００８】
先述したように、新しいソフトウェア開発ツールの知識を必要とするタスクが定義されるとき、利用可能な作業者が該新しいソフトウェア開発ツールのスキルをもたないことがしばしばある。よって、利用可能な作業者のうち誰が該タスクを完了するために必要とされるその新しいソフトウェア開発ツールを学習し、使うために最も適しているかを判定することが問題となることがある。
【０００９】
本稿で開示される実施形態は、機械学習集団的行列因子分解フレームワークを使って作業者適性を予測することによって、この問題および同様の問題を解決するために用いられうる。たとえば、本稿に開示される実施形態は、機械学習集団的行列因子分解フレームワークを使って、新しいソフトウェア開発ツールを学習し使うことに対する、利用可能な作業者の適性を予測するために用いられてもよい。この予測は、利用可能な作業者のうち誰がその新しいソフトウェア開発ツールの使用を要求するタスクを完遂するために割り当てられるのに最も適しているかについての判定を可能にしうる。さらに、本稿に開示される実施形態は、タスクの時間制約条件および各作業者の時間利用可能性といった他の制約条件に対応するために用いられてもよい。
【００１０】
このように、機械学習なしで人間の管理者が達成するのは不可能であろうことを達成するために、すなわち、タスクを実行するために利用可能な作業者たちの最適な部分集合を予測することを該作業者たちがまだそのタスクを実行するために必要とされるツール（単数または複数）のスキルをもたない場合でさえ行なうために、本稿に開示される実施形態を使って、機械学習が用いられてもよい。それにより、タスクが時間どおりに完了する可能性が高まり、作業者の時間およびスキルが最も効率的な仕方で利用される。
【００１１】
本開示の実施形態について、ここで付属の図面を参照して説明する。
【００１２】
図１は、作業者適性を予測するためのシステム１００の実施形態を示している。システム１００は、部分的に満たされた行列１０２、１０４および１０６、機械学習集団的行列因子分解フレームワーク１０８、満たされた行列１１０、１１２、１１４、制約条件１１６、凸最適化フレームワーク１２４および作業者選択および作業者毎時間割り当て１２６を含んでいてもよい。
【００１３】
部分的に満たされた行列１０２、１０４および１０６は、分類法パラメータ、ツールおよび作業者の間の関係を表わす二次元行列として定義されてもよい。
【００１４】
部分的に満たされた行列１０４および１０６における値によって表わされる作業者は、タスクを実行するために利用可能な作業者であってもよい。たとえば、作業者は、ソフトウェア開発ツールを使ってソフトウェア開発タスクを実行するために企業が雇用している利用可能な作業者であってもよい。作業者は、代替的または追加的に、利用可能な潜在的従業員であってもよく、タスクを実行するために該潜在的従業員が雇われるべきかどうかを決定するために企業が該潜在的従業員を評価している。作業者は、代替的または追加的に、何百または何千の作業者へのアクセスを認めうるクラウドソーシング・ウェブサイトとの関連で利用可能であってもよい。
【００１５】
部分的に満たされた行列１０２および１０４における値によって表わされるツールは、さまざまなタスクを実行するために必要とされるツールであってもよい。たとえば、ツールはソフトウェア開発ツールであってもよく、タスクはソフトウェア開発タスクであってもよい。ソフトウェア開発ツールの例示的カテゴリーは、プログラミング言語、フレームワーク、APIおよびパッケージである。
【００１６】
部分的に満たされた行列１０２および１０６における値によって表わされる分類法パラメータ（taxonomy  parameter）は、作業者およびツールをパラメータ化するための共通のベースラインのはたらきをしうる。たとえば、これらの分類法パラメータは、学習の複雑さ、学習時間、使いやすさ、抽象化レベル、活用レベルまたは協働スタイルまたはそれらの何らかの組み合わせを含みうる。分類法パラメータ、学習の複雑さは、作業者については、その作業者が学習するのに抵抗がない新しいツールの複雑さのレベルを指してもよく、ツールについては、そのツールを学習することの複雑さのレベルを指してもよい。分類法パラメータ、学習時間は、作業者については、作業者が新しいツールを学習するために費やすことに抵抗がない時間の長さを指してもよく、ツールについては、そのツールを使うことを学習するのに必要とされる時間の長さを指してもよい。分類法パラメータ、使いやすさは、作業者については、その作業者が抵抗がない、ツールを使うことの複雑さのレベルを指してもよく、ツールについては、ひとたびそのツールが学習されたときにそのツールの使用に関わる複雑さのレベルを指してもよい。分類法パラメータ、抽象化レベルは、作業者については、ツールと対話するときにその作業者が扱うことに抵抗がない詳細さのレベルを指してもよく、ツールについては、そのツールと対話するために必要とされる詳細さのレベルを指してもよい（たとえば、コマンドライン対話は、視覚的なドラッグアンドドロップ対話よりも、高いレベルの詳細さを要求しうる）。分類法パラメータ、活用レベルは、作業者については、その作業者が使うツールからその作業者が歓迎する案内のレベルを指してもよく、ツールについては、そのツールが提供する案内のレベルを指してもよい。分類法パラメータ、協働スタイルは、作業者については、その作業者が好む協働のレベルを指してもよく、ツールについては、そのツールが許容する協働のレベルを指してもよい。
【００１７】
部分的に満たされた行列１０２、１０４および１０６は、いくつかの値が欠けているために部分的にしか満たされていないことがある。特に、部分的に満たされた行列１０２の値は、分類法パラメータとツールの間の関係を表わしてもよく、それぞれの欠けている値は、前記ツールのうち、分類法パラメータの値が未知であるものを表わしてもよい。さらに、部分的に満たされた行列１０４の値は、作業者とツールの間の関係を表わしてもよく、それぞれの欠けている値は、前記ツールのうち、作業者のスキルが未知であるものを表わしてもよい。また、部分的に満たされた行列１０６の値は、作業者と分類法パラメータの間の関係を表わしてもよく、それぞれの欠けている値は、前記分類法パラメータのうち、作業者の習熟度（proficiency）が未知であるものを表わしてもよい。
【００１８】
機械学習集団的行列因子分解フレームワーク１０８は、同じ行エンティティを共有するが列エンティティは異なる、あるいは同じ列エンティティを共有するが行エンティティは異なる、部分的に満たされた関係行列に対して用いられてもよい。たとえば、部分的に満たされた行列１０４および１０６は同じ行エンティティ（すなわち作業者）を共有するが、列エンティティ（すなわちツールおよび分類法パラメータ）は異なる。さらに、共有されるエンティティをもつ部分的に満たされた関係行列に対して機械学習集団的行列因子分解フレームワーク１０８が用いられて、ある関係からの情報を活用し別の関係を予測することによって予測精度を改善してもよい。これは、いくつかの行列を同時に因子分解し、エンティティが複数の関係に参加するときは諸因子の間でパラメータを共有することによって達成されてもよい。それぞれの関係は、異なる値型および誤差分布をもつことがあり、パラメータと出力の間に非線形関係が許容される。
【００１９】
さらに、機械学習集団的行列因子分解フレームワーク１０８は、疎な群埋め込み（sparse  group  embedding）を用い、諸因子について群ごとに疎である制約条件を加えることによって行列の任意の部分集合にプライベートな諸因子を許容してもよい。この例示的実施形態において、疎な群埋め込みは、機械学習集団的行列因子分解フレームワーク１０８が、部分的に満たされた行列１０６の作業者‐分類法パラメータ関係のようなある種の関係に固有の（あるいはプライベートな）事実を学習することを許容しうる。この例示的実施形態ではまた、疎な群埋め込みは、すべての関係が等しく重要であることは前提としない。たとえば、部分的に満たされた行列１０６の作業者‐分類法パラメータ関係、部分的に満たされた行列１０４の作業者‐ツール関係および部分的に満たされた行列１０２の分類法パラメータ‐ツール関係に等しい重要性を与えなくてもよい。このことは、欠けている値を予測することにおいて、ある種の関係に他の関係よりも大きく重み付けすることを許容する。この不均等な重み付けは、たとえば、アマゾン・ウェブ・サービスを使ったプログラミングにおける作業者のスキルが作業者がアパッチ・プログラミング言語をより迅速に学習することと相関している、あるいは作業者のC++プログラミング言語におけるスキルが作業者がパイソン・プログラミング言語をより迅速に学習することと相関している状況では、正当化されうる。同様に、この不均等な重み付けは、作業者が複雑なタスクに抵抗がない場合に正当化されうる。それにより、たとえCとパイソンのプログラミング言語の間の相関がそれほど強くなかったとしても、その作業者がパイソン・プログラミング言語のスキルがあるがCプログラミング言語にはスキルがない場合にその作業者がそのタスクに割り当てられるべきよい選択でありうる。
【００２０】
機械学習集団的行列因子分解フレームワーク１０８は、非特許文献１に記載されている集団的行列因子分解フレームワークと同様、あるいは非特許文献２に記載されている集団的行列因子分解フレームワークと同様であってもよい。両文献はここに参照によってその全体において組み込まれる。
【００２１】
機械学習集団的行列因子分解フレームワーク１０８は、部分的に満たされた行列１０２、１０４および１０６の欠けている値を予測して満たされた行列１１０、１１２および１１４を生じるために部分的に満たされた行列１０２、１０４および１０６に対して用いられてもよい。ひとたび欠けている値が予測されたら、満たされた行列１１０のそれぞれの予測された値はツールの分類法パラメータの値を表わしてもよく、満たされた行列１１２のそれぞれの予測された値は作業者がツールのスキルを習得する適性を表わしてもよく、満たされた行列１１４のそれぞれの予測された値は作業者が分類法パラメータに習熟する適性を表わしてもよい。
【００２２】
制約条件１１６はタスクに対する制約条件として定義されてもよい。たとえば、タスクは、タスク・ツール要求１２０およびタスク時間制約条件１２２によって定義されてもよい。加えて、作業者時間利用可能性１１８のような他の制約条件がタスクに関連付けられてもよい。
【００２３】
タスク・ツール要求１２０、タスク時間制約条件１２２および作業者時間利用可能性１１８に基づいてそのタスクを実行するための作業者の最適な部分集合を予測するためおよびそのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測して、作業者選択および作業者毎の時間割り当て１２６を与えるために、満たされた行列１１０、１１２および１１４に対して凸最適化フレームワーク１２４が用いられてもよい。したがって、単に作業者利用可能性およびタスク時間制約条件のみに焦点を当てるのではなく、凸最適化フレームワーク１２４は、タスク・ツール要求１２０によって定義される、タスクによって要求されるスキル・セットを考慮に入れる。凸最適化フレームワーク１２４は、凸最適化のためのMatlabベースのモデル化システムであるCVXバージョン2.1、2016年10月、ビルド1112を使って実装されてもよい。
【００２４】
加えて、凸最適化フレームワーク１２４の予測は、最小時間期間と最大時間期間の間に制約された、タスクを完了するための全時間を含む作業品質制約条件にも基づいていてもよい。追加的または代替的に、凸最適化フレームワーク１２４の予測は、前記作業者のうちの相性がいい二人を作業者の前記最適な部分集合に含ませることを含む、あるいは前記作業者のうちの相性がよくない二人の両方を作業者の前記最適な部分集合に含ませることはしないことを含む作業者協働制約条件にも基づいていてもよい。
【００２５】
このように、システム１００は、機械学習集団的行列因子分解フレームワーク１０８を使って、新しいツールを学習し、使用することについての利用可能な作業者の適性を予測するために用いられてもよい。この予測は、利用可能な作業者のうちの誰が、その新しいツールの使用を必要とするタスクを完遂するために割り当てられるのに最も好適かについての判定を可能にしうる。このように、機械学習集団的行列因子分解フレームワーク１０８は、システム１００において、機械学習なしに人間の管理者が達成するのは不可能であろうことを達成するために、すなわち、タスクを実行するために利用可能な作業者たちの最適な部分集合を予測することを該作業者たちがまだそのタスクを実行するために必要とされるツール（単数または複数）のスキルをもたない場合でさえ行なうために用いられてもよい。それにより、タスクが時間どおりに完了する可能性が高まり、作業者の時間およびスキルが最も効率的な仕方で利用される。
【００２６】
図２は、図１の作業者適性を予測するためのシステム１００の一部２００の実施形態を示している。部分２００は、部分的に満たされた行列１０２、１０４および１０６と、機械学習集団的行列因子分解フレームワーク１０８と、満たされた行列１１０、１１２、１１４とを含む。図２の実施形態では、ツールはソフトウェア開発ツール、すなわちパイソン（Python）、C++およびジャバ（Java(登録商標)）プログラミング言語であり、作業者は作業者１、作業者２おおよび作業者３であり、分類法パラメータは学習複雑さ、使いやすさおよび活用レベルである。
【００２７】
図２に開示されるように、部分的に満たされた行列１０２、１０４および１０６および満たされた行列１１０、１１２、１１４における値は0から1までの間の値であり、0は最低値を示し、1は最高値を示す。たとえば、部分的に満たされた行列１０４の左上のセルにおける0.1の値および右上のセルにおける0.325の値は、作業者１がパイソン・プログラミング言語よりもジャバ・プログラミング言語によりスキルがあることを示している。このコンテキストにおいて、特定のプログラミング言語のスキルは、特定の作業者のそのプログラミング言語への選好に結びつけられていてもよいことは理解される。一般に、作業者が特定のプログラミング言語を好むこととその作業者がその特定のプログラミング言語のスキルをもつこととの間には共生関係がありうるからである。したがって、スキルと選好とは、少なくともいくつかの実施形態では、交換可能であってもよい。図２の開示ではまた、図２の部分的に満たされた行列１０２、１０４および１０６のそれぞれは、疑問符で表わされるところの値を欠いている。具体的には、部分的に満たされた行列１０２の欠けている値は、パイソンの活用レベルが未知であることを示し、部分的に満たされた行列１０４の欠けている値は作業者２のジャバのスキルが未知であることを示し、部分的に満たされた行列１０６の欠けている値は、作業者２の学習複雑さにおける習熟度が未知であることを示している。このコンテキストにおいて、未知とは、部分的に満たされた行列１０４のコンテキストにおけるように、スキルの欠如を示してもよいことは理解される。
【００２８】
部分的に満たされた行列１０２、１０４および１０６における値は、サーベイ、観察および試験を含む多様な仕方で得られてもよい。たとえば、部分的に満たされた行列１０４および１０６における値は、部分的に満たされた行列１０４の列に挙げられたソフトウェア開発ツールに関し、また部分的に満たされた行列１０６の列に挙げられた分類法パラメータに関して作業者１、２、３にアンケートを取ることによって得られてもよい。この例では、部分的に満たされた行列１０４における欠けている値は、作業者２がアンケートにおいて作業者２はまだプログラミング言語、ジャバのスキルがないことを示すことから帰結してもよい。同様に、この例において、部分的に満たされた行列１０６における欠けている値は、作業者２が、その作業者が学習することに抵抗がない新しいツールの複雑さのレベルに関するアンケートの質問への答えを空欄にしたことから帰結してもよい。
【００２９】
図２に開示されるように、機械学習集団的行列因子分解フレームワーク１０８は、プログラミング言語、パイソンの活用レベルの値を予測し、作業者２がプログラミング言語、ジャバのスキルを習得する適性を予測し、作業者２が学習複雑さに習熟する適性を予測するために、用いられてもよい。この予測は、利用可能な作業者１、２、３のうちの誰が、パイソン、C++およびジャバのプログラミング言語のうちの特定のものの使用を要求するタスクを完了するために割り当てられるのに最も好適であるかについての判定を可能にしうる。
【００３０】
ここで図１および図２を参照するに、ある実施形態は、機械学習集団的行列因子分解フレームワーク１０８が、部分的に満たされた行列１０２、１０４および１０６の欠けている値を予測するために部分的に満たされた行列１０２、１０４および１０６に対して用いられるのに先立って、10回の反復工程など特定の逐次反復回数にわたってトレーニングされることを含んでいてもよい。この実施形態では、機械学習集団的行列因子分解フレームワーク１０８についての基本因子の数は、基本因子2つなど、特定の数に設定されてもよい。これは、有効確認誤差に基づいて決められる数であってもよい。最小の誤差を与える因子が選ばれる。また、この実施形態では、部分的に満たされた行列１０２、１０４および１０６を構成するオブジェクト集合のインデックスは(1,2)、(3,2)、(3,1)であってもよい。つまり、部分的に満たされた行列１０２は分類法パラメータを列、ツールを行として形成され、部分的に満たされた行列１０４が作業者を行、ツールを列として形成され、部分的に満たされた行列１０６は作業者を行、分類法パラメータを列として形成される。
【００３１】
この実施形態において、機械学習集団的行列因子分解フレームワーク１０８は、部分的に満たされた行列１０２、１０４および１０６に対して用いられて、満たされた行列１１０、１１２および１１４を与えてもよい。さらに、この実施形態において、作業者時間利用可能性１１８は、作業者１≦100時間、作業者２≦40時間および作業者３≦120時間であってもよく、タスク・ツール要求１２０はパイソンおよびC++プログラミング言語の使用であってもよく、タスク時間制約条件１２２は≦100時間でのタスク完了であってもよい。パイソン・プログラミング言語が満たされた行列１１０の最上行において分類法パラメータ・ベクトル[0.7,0.1,0.5]によって表わされ、C++プログラミング言語は満たされた行列１１０の中央の行において分類法パラメータ・ベクトル[0.8,0.2,0.5]によって表わされていることを注意しておく。これら二つの分類法パラメータ・ベクトルを考えているタスクについての分類法パラメータを特徴付ける一つのベクトルに組み合わせるために、さまざまな集計戦略のうちのいずれかが用いられうる。用いられる集計戦略は、分類法パラメータの意味内容または実装の複雑さに基づいていてもよい。たとえば、集計戦略は、以下の集計戦略のいずれかまたはその何らかの組み合わせであってもよい：最大、最小、多数決、平均、乗算法、ボルダ得点、コープランド法、個別認否投票（approval  voting）、最小忍耐（least  misery）、最大満足（most  pleasure）、忍耐を除いての平均（average  without  misery）、公平（fairness）または最も尊敬される者（most  respected）。この実施形態では、第一の要素（学習複雑さに対応）を組み合わせるためには最大値が使用でき、第二の要素（使いやすさに対応）を組み合わせるためには最小値が使用でき、第三の要素（活用レベル）を組み合わせるためには平均値が使用できる。これらの組み合わせは、考えているタスクに対応する分類法パラメータ・ベクトル[0.8,0.1,0.5]を与える。
【００３２】
この実施形態では、次いで、満たされたベクトル１１０、１１２および１１４に対して凸最適化フレームワーク１２４が用いられて、そのタスクを実行するための作業者の最適な部分集合を予測し、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測してもよい。具体的には、作業者１が分類法パラメータ・ベクトル[0.2,0.1,0.325]によって特徴付けられることができ、作業者２が分類法パラメータ・ベクトル[0.3,0.1,0.4]によって特徴付けられることができ、作業者３が分類法パラメータ・ベクトル[0.4,0.1,0.3]によって特徴付けられることができ、パイソンおよびC++プログラミング言語は組み合わされた分類法パラメータ・ベクトル[0.4,0.1,0.3]によって特徴付けられることができることから、作業者１≦100時間、作業者２≦40時間および作業者３≦120時間という作業者時間利用可能性１１８に基づいて、かつ≦100時間でのタスク完了というタスク時間制約条件に基づいて、凸最適化フレームワーク１２４が次いで用いられて、そのタスクを実行するための作業者の最適な部分集合が作業者１であると予測し、そのタスクに作業者１が割くべき時間の最適な量が100時間であると予測してもよい。
【００３３】
作業者時間利用可能性１１８が作業者１≦60時間、作業者２≦40時間および作業者３≦120時間と変更されるほかは先の実施形態と同様であるもう一つの実施形態では、凸最適化フレームワーク１２４が用いられて、そのタスクを実行するための作業者の最適な部分集合が作業者１および作業者３であると予測し、そのタスクに作業者１および作業者３が割くべき時間の最適な量が作業者１について60時間、作業者３について40時間であると予測してもよい。
【００３４】
もう一つの実施形態では、図１のシステム１００および図２のシステム１００の部分２００によって実行される動作は次のように表わされてもよい：
・Tが、ツール＝[D1,D2,…,Dn]によって定義されるツールの集合によって完了されることのできるタスクであるとする。
・Gが作業者W＝[W1,W2,…,Wd3]からなる群であるとする。
・αがそのタスクについて許容される合計時間であるとする。
・α1,α2,…,αd3が、そのタスクを完了するための個々の作業者の時間制約条件を表わすとする。
・可能な制約条件が、α1＋α2,…＋αd3≦αというものであってもよい。
・各ツールおよび作業者は、分類法ベクトルTP＝[TP1,TP2,…,TPd1]に沿って特徴付けられてもよい。
【００３５】
この実施形態において、これらのベクトルの欠けている値は、機械学習集団的行列因子分解フレームワーク１０８によって得られてもよい。ここで、
・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をもつ三つの関係行列がある。
【００３６】
この実施形態では、ひとたび機械学習集団的行列因子分解フレームワーク１０８を使って欠けている値が得られたら、次の段階は、分類法パラメータに沿ってツール要求によって特徴付けられる単一のタスク・ベクトルを次のようにして得ることである。
・タスクTがD1,D2,…,Dnによって与えられるツールの集合によって完了されることができるとする。
・機械学習集団的行列因子分解フレームワーク１０８が、各ツールがその独自の分類法パラメータ（TP:  taxonomy  parameter）の集合によって特徴付けられることを保証する。
・よって、
D1＝[TP11,TP21,…,TPd11]，  D2＝[TP12,TP22,…,TPd12]，  Dn＝[TP1n,TP2n,…,TPd1n]
・タスクTを、その分類法パラメータを用いた単一のTPベクトルによって特徴付ける。
・これを得る際、当該TPに基づき適切なマージ方式が用いられてもよい：
・たとえば、TPがツールの学習複雑さに関係している場合には、すべてのツールの間での複雑さの最大値が選ばれてもよい（最大満足方式）；
・他方、TPが作業者の学習複雑さに関係している場合には、すべてのツールの間での最小値が選ばれてもよい（最小忍耐方式）；
・曖昧さのない場合には、すべてのツールにわたる平均値が選ばれてもよい（平均方式）。
【００３７】
この実施形態では、今や次のことがある。
・TPに沿って特徴付けられたタスクT＝[TP1T,TP2T,…,TPd1T]
・作業者からなる群W＝[W1,W2,…,Wd3]
・前記群の構成員は、個々のTPおよび時間制約条件によって特徴付けられる。よって、
W1＝時間制約条件α1をもつ作業者１についてのTP値のベクトル、
W2＝時間制約条件α2をもつ作業者２についてのTP値のベクトル、
など。
・こうして、問題は、次を解くことに帰着する：
・アルファに対する時間制約条件のもとでT＝α1W1＋α2W2＋α3W3＋…αd3Wd3  。これは凸最適化フレームワーク１２４を使って解いてもよく、結果として作業者選択および作業者毎の時間割り当て１２６を与える。
【００３８】
この実施形態において、次のような条件を組み込むよう制約条件が選ばれてもよい：
・作業品質――タスクについて完了される仕事がある要件を満たし、よい品質であることを保証するために、タスクαを完了するための合計時間が区間[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）という制約条件は非凸であり、よって解くためには非凸の数値的推定法を必要とすることを注意しておく。これを解くのは、凸最適化問題への解よりも達成するのが難しいことがある。
【００３９】
もう一つの実施形態では図１のシステム１００および図２のシステム１００の一部２００によって実行される動作は、次のように表わされてもよい。
・各関係行列Xmが低い階数の表現によって次のように近似されてもよい：
【数１】
2018101399.tif 000003
ここで、Ue＝[uik(e)]は、エンティティ集合eに関係した低階数の行列であり、bi(m,r)およびbj(m,c)はm番目の行列についてのバイアス項であり、εij(m)は要素ごとの独立ノイズである。
・どのXにも対応しないブロックが未観測（ブランク）のままにされるよう大きな単一の行列YがすべてのXmを含んでいてもよく、対応する一つの大きなエンティティ集合をもって構築される。ここで、d＝EΣdeである。
・モデルは次いで、次のように対称行列因子分解として定式化できる：
Y＝UUT＋ε
ここで、
【数２】
2018101399.tif 000004
はすべてのUe行列の列ごとの連結であり、εは全体的なノイズ項である。
・因子行列Ueのk番目の列が二つのエンティティ型rmおよびcmを除いてみなヌルである場合、そのことは、k番目の因子が関係mについてプライベートな因子であることを含意しうる。これらプライベートな因子の自動生成を許容するために、クラミ論文において開示されているように、Ueの列に対する群疎事前分布（group  sparse  priors）が課されてもよい。
・モデルが投影（projections）についてのガウシアン尤度（Gaussian  likelihood）およびガンマ事前分布（Gamma  priors）を指定することによって
【数３】
2018101399.tif 000005
となるようインスタンス化されうる。ここで、eはエンティティiを含むエンティティ集合である。
・エンティティ集合eの変動をモデル化するためには必要とされないことがありうる因子kについての大きな精度値αekを学習することによって、uについての事前分布は各因子についてそれがアクティブである行列の集合を自動的に選択する。
・クラミ論文に開示されるようにモデル・パラメータを学習するために変分ベイズ近似が使われる。
【００４０】
図３は、本開示に記載される少なくとも一つの実施形態に基づいて構成された、機械学習集団的行列因子分解フレームワークを使って作業者適性を予測するための例示的方法３００のフローチャートである。方法３００は、いかなる好適なシステム、装置またはデバイスによって実行されてもよい。たとえば、図１のシステム１００またはそのコンポーネントの一つまたは複数は、方法３００に関連付けられた動作の一つまたは複数を実行してもよい。これらおよび他の実施形態では、方法３００の動作の一つまたは複数を実行するために、非一時的なコンピュータ可読媒体に記憶されたコンピュータ実行可能命令が実行されてもよい。離散的なブロックとして示されているが、目標実装に依存して、さまざまなブロックが追加的なブロックに分割されたり、より少数のブロックに組み合わされたり、あるいはなくされたりしてもよい。さらに、ブロックは異なる順序で実装されてもよい。たとえば、ブロック３０８〜３１２はなくされてもよい。
【００４１】
ブロック３０２では、複数の作業者、複数のツール、複数の分類法パラメータが同定されてもよい。たとえば、図１および図２との関連で開示されたように、作業者はタスクを実行するために利用可能な作業者であってもよく、ツールはさまざまなタスクを実行するために要求されるツールであってもよく、分類法パラメータは、作業者およびツールをパラメータ化するための共通のベースラインのはたらきをしてもよい。ある例示的実施形態では、ツールはソフトウェア開発ツールであってもよい。
【００４２】
ブロック３０４では、部分的に満たされた第一、第二および第三の行列が同定されてもよい。部分的に満たされた値の第一の行列は、前記分類法パラメータと前記ツールの間の関係を表わしてもよく、部分的に満たされた値の第二の行列は前記作業者と前記ツールの間の関係を表わしてもよく、部分的に満たされた値の第三の行列は前記作業者と前記分類法パラメータの間の関係を表わしてもよい。たとえば、図１および図２との関連で開示されたように、部分的に満たされた行列１０２の値は前記分類法パラメータと前記ツールの間の関係を表わしてもよく、欠けている各値は前記ツールのうち前記分類法パラメータの値が未知であるものを表わしてもよい。さらに、部分的に満たされた行列１０４の値は前記作業者と前記ツールの間の関係を表わしてもよく、欠けている各値は前記ツールのうち前記作業者のスキルが未知であるものを表わしてもよい。また、部分的に満たされた行列１０６の値は前記作業者と前記分類法パラメータとの間の関係を表わしてもよく、欠けている各値は前記分類法パラメータのうち前記作業者の習熟度が未知であるものを表わしてもよい。
【００４３】
ブロック３０６では、部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークが用いられて、前記部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じてもよい。たとえば、図１および図２との関連で開示されたように、部分的に満たされた行列１０２、１０４、１０６に対して機械学習集団的行列因子分解フレームワーク１０８が用いられて、部分的に満たされた行列１０２、１０４、１０６の欠けている値を予測し、満たされた行列１１０、１１２、１１４を生じてもよい。さらに、満たされた行列１１０のそれぞれの予測された値は前記ツールの前記分類法パラメータの値を表わしてもよく、満たされた行列１１２のそれぞれの予測される値は前記作業者が前記ツールのスキルを習得する適性を表わしてもよく、満たされた行列１１４のそれぞれの予測される値は前記作業者の前記分類法パラメータに習熟する適性を表わしてもよい。
【００４４】
ブロック３０８では、ツール要求および時間制約条件を含むタスクが同定されてもよい。たとえば、図１との関連で開示されるように、タスクはタスク・ツール要求１２０およびタスク時間制約条件１２２によって定義されてもよい。ある例示的実施形態では、タスクはソフトウェア開発タスクであってもよい。
【００４５】
ブロック３１０では、各作業者の時間利用可能性が同定されてもよい。たとえば、図１との関連で開示されたように、作業者時間利用可能性１１８が同定され、ブロック３０８で同定されたタスクと関連付けられてもよい。
【００４６】
ブロック３１２では、そのタスクのツール要求、そのタスクの時間制約条件および各作業者の時間利用可能性に基づいて、そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークが用いられてもよい。たとえば、図１との関連で開示されたように、タスク・ツール要求１２０、タスク時間制約条件１２２および作業者時間利用可能性１１８に基づいて、そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた行列１１０、１１２、１１４に対して凸最適化フレームワークが用いられてもよい。これにより、作業者選択および作業者毎の時間割り当て１２６が得られる。加えて、ブロック３１２はさらに、そのタスクに関連するハードウェアおよび／またはソフトウェア資源へのアクセスを、作業者の前記最適な部分集合の各作業者に対して承認することを含んでいてもよい。たとえば、作業者の前記部分集合のみが、そのタスクに関連するコンピュータ・ハードウェアまたはコンピュータ・ソフトウェア、たとえばそのタスクに関連するソフトウェア開発ツールへのアクセスを認められてもよい。一方、利用可能であるが前記作業者の部分集合に含まれない他の作業者は、そのタスクに関連する同じコンピュータ・ハードウェアまたはコンピュータ・ソフトウェアへのアクセスを拒否され、タスクに関連するツールへのアクセス・コントロールが提供される。
【００４７】
したがって、方法３００は、機械学習集団的行列因子分解フレームワークを使って新しいツール（単数または複数）を学習し使用するための、利用可能な作業者の適性を予測するために用いられうる。この予測は、利用可能者のうち誰がその新しいツールの使用を必要とするタスクを完了するために割り当てられるべく最も好適かについての判定を可能にしうる。このように、方法３００では、機械学習なしで人間の管理者が達成するのは不可能であろうことを達成するために、すなわち、タスクを実行するために利用可能な作業者たちの最適な部分集合を予測することを該作業者たちがまだそのタスクを実行するために必要とされるツール（単数または複数）のスキルをもたない場合でさえ行なうために、機械学習集団的行列因子分解フレームワークが使用されうる。それにより、タスクが時間どおりに完了する可能性が高まり、作業者の時間およびスキルが最も効率的な仕方で利用される。
【００４８】
方法３００はソフトウェア開発ツールおよび例示的なソフトウェア開発タスクのコンテキストで論じてきたが、方法３００は作業者が肉体労働者である場合の建設ツールおよびタスクのような身体的な労働ツールおよびタスク、作業者が管理者である場合のプロジェクト管理ツールおよびタスクまたは作業者が医師および看護師のような医療人員である場合の医療ツールおよびタスクまたは肉体労働およびソフトウェア開発の両方を含む復号タスクのコンテキストなどでのツールおよびタスクの任意の組み合わせのコンテキストでも等しく適用可能でありうることは理解される。
【００４９】
図４は、本開示の少なくとも一つの実施形態に基づく、例示的なコンピューティング装置４００のブロック図である。たとえば、図１のシステム１００は、コンピューティング装置４００上に実装されてもよい。コンピューティング装置４００は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、サーバー・コンピュータ、タブレット・コンピュータ、携帯電話、スマートフォン、携帯情報端末（PDA）、電子書籍リーダー装置、ネットワーク・スイッチ、ネットワーク・ルーター、ネットワーク・ハブ、他のネットワーキング装置または他の好適なコンピューティング装置を含んでいてもよい。
【００５０】
コンピューティング装置４００は、プロセッサ４１０、記憶装置４２０、メモリ４３０および通信装置４４０を含んでいてもよい。プロセッサ４１０、記憶装置４２０、メモリ４３０および／または通信装置４４０はみな、各コンポーネントが他のコンポーネントと通信しうるよう、通信上結合されていてもよい。コンピューティング装置４００は、本開示において記述される動作の任意のものを実行しうる。
【００５１】
一般に、プロセッサ４１０は、さまざまなコンピュータ・ハードウェアまたはソフトウェア・モジュールを含むいかなる好適な専用または汎用コンピュータ、コンピューティング・エンティティまたは処理装置を含んでいてもよく、いかなる適用可能なコンピュータ可読記憶媒体上に記憶された命令を実行するよう構成されていてもよい。たとえば、プロセッサ４１０はマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（DSP）、特定用途向け集積回路（ASIC）、フィールドプログラマブルゲートアレイ（FPGA）またはプログラム命令をインタープリットおよび／または実行するおよび／またはデータを処理するよう構成された他の任意のデジタルもしくはアナログ回路を含んでいてもよい。図４では単一のプロセッサとして示されているが、プロセッサ４１０は、本開示に記載される任意の数の動作を個々にまたは集団的に実行するよう構成された任意の数のプロセッサを含んでいてもよい。
【００５２】
いくつかの実施形態では、プロセッサ４１０は、プログラム命令をインタープリットおよび／または実行するおよび／または記憶装置４２０、メモリ４３０または記憶装置４２０とメモリ４３０に記憶されたデータを処理することを行なってもよい。いくつかの実施形態では、プロセッサ４１０は記憶装置４２０からプログラム命令を取ってきて、該プログラム命令をメモリ４３０にロードしてもよい。プログラム命令がメモリ４３０にロードされた後、プロセッサ４１０はプログラム命令を実行してもよい。
【００５３】
たとえば、いくつかの実施形態において、プロセス・チェーンの処理動作の一つまたは複数がデータ記憶４２０にプログラム命令として含められてもよい。プロセッサ４１０は、前記処理動作のうち一つまたは複数の前記プログラム命令を取ってきて、前記処理動作の前記プログラム命令をメモリ４３０にロードしてもよい。前記処理動作のプログラム命令がメモリ４３０にロードされた後、プロセッサ４１０はプログラム命令を実行してもよく、それによりコンピューティング装置４００はプログラム命令によって指令されるように、前記処理動作に関連する動作を実装しうる。
【００５４】
記憶装置４２０およびメモリ４３０は、コンピュータ実行可能な命令またはデータ構造を担持するまたは記憶するコンピュータ可読記憶媒体を含んでいてもよい。そのようなコンピュータ可読記憶媒体は、プロセッサ４１０のような汎用または特殊目的コンピュータによってアクセスされうるいかなる利用可能な媒体を含んでいてもよい。限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスク記憶、磁気ディスク記憶または他の磁気記憶デバイス、フラッシュメモリ・デバイス（たとえば半導体メモリ・デバイス）またはコンピュータ実行可能な命令またはデータ構造の形で所望されるプログラム・コードを担持または記憶するために使用されうる、汎用または特殊目的コンピュータによってアクセスされうる他の任意の記憶媒体を含む、有体または非一時的なコンピュータ可読記憶媒体を含んでいてもよい。上記のものの組み合わせも、コンピュータ可読記憶媒体の範囲内に含まれうる。コンピュータ実行可能な命令はたとえば、プロセッサ４１０に、ある動作または動作群を実行させるよう構成された命令およびデータを含んでいてもよい。
【００５５】
いくつかの実施形態では、記憶装置４２０および／またはメモリ４３０は、深層学習システムに関連するデータを記憶してもよい。たとえば、記憶装置４２０および／またはメモリ４３０はエンコードされた活性化アドレス、エンコードされた重みアドレスおよび／または一つまたは複数の辞書を記憶してもよい。
【００５６】
通信装置４４０は、コンピューティング装置４００と別の電子装置との間の通信を許容するまたは容易にするよう構成された任意の装置、システム、コンポーネントまたはコンポーネントの集まりを含んでいてもよい。たとえば、通信装置４４０は、限定なしに、モデム、ネットワーク・カード（無線または有線）、赤外線通信装置、光通信装置、無線通信装置（たとえばアンテナ）および／またはチップセット（たとえばブルートゥース(登録商標)装置、802.6装置（たとえば都市圏ネットワーク（MAN））、Wi-Fi装置、WiMAX装置、セルラー通信設備など）および／またはその他を含んでいてもよい。通信装置４４０は、若干の例を挙げるとセルラー・ネットワーク、Wi-Fiネットワーク、MAN、光ネットワークなどのような任意のネットワークおよび／またはリモート装置を含め本開示に記載される他の任意の装置と、データが交換されることを許容しうる。
【００５７】
本開示の範囲から外れることなく、図４に修正、追加または省略がなされてもよい。たとえば、コンピューティング装置４００は、本開示において図示され、記述されているより多数または少数の要素を含んでいてもよい。たとえば、コンピューティング装置４００は、タブレットまたは携帯電話の画面のような統合された表示装置を含んでいてもよく、あるいはコンピューティング装置４００とは別個でありコンピューティング装置４００に通信上結合されているのでもよい外部モニター、プロジェクター、テレビジョンまたは他の好適な表示装置を含んでいてもよい。
【００５８】
本開示での用法では、用語「モジュール」または「コンポーネント」は、該モジュールまたはコンポーネントのアクションを実行するよう構成された特定のハードウェア実装および／またはコンピューティング・システムの汎用ハードウェア（たとえばコンピュータ可読媒体、処理装置など）に記憶および／または実行さうれるソフトウェア・オブジェクトまたはソフトウェア・ルーチンを指しうる。いくつかの実施形態では、本開示に記載される種々のコンポーネント、モジュール、エンジンおよびサービスは、（たとえば別個のスレッドとして）コンピューティング・システム上で実行されるオブジェクトまたはプロセスとして実装されてもよい。本開示に記載されるシステムおよび方法のいくつかは、一般に、（汎用ハードウェアに記憶および／または実行される）ソフトウェアで実装されるものとして記述されるが、個別のハードウェア実装またはソフトウェアと個別のハードウェア実装の組み合わせも可能であり、考えられている。本開示において、「コンピューティング・エンティティ」は、本開示で先に定義したような任意のコンピューティング・システムまたはコンピューティング・システム上で走る任意のモジュールもしくはモジュールの組み合わせでありうる。
【００５９】
本開示および特に付属の請求項（たとえば付属の請求項の本文）において使われる用語は一般に「オープン」な用語として意図されている（たとえば、用語「含む」は「含むがそれに限られない」と解釈されるべきであり、用語「もつ」は「少なくとも…をもつ」と解釈されるべきであり、用語「含む」は「含むがそれに限られない」と解釈されるべきであるなど）。
【００６０】
さらに、導入される請求項の記載の特定の数が意図される場合、そのような意図は請求項において明示的に記載される。そのような記載のない場合には、そのような意図はない。たとえば、理解の助けとして、以下の付属の請求項は、請求項の記載を導入するために「少なくとも一つの」および「一つまたは複数の」という導入句の使用を含むことがありうる。しかしながら、たとえ同じ請求項が導入句「一つまたは複数の」または「少なくとも一つの」および「a」または「an」のような不定冠詞を含むときでも、そのような句の使用は、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入された請求項の記載を含む何らかの特定の請求項を、そのような記載を一つだけ含む実施形態に限定することを含意していると解釈されるべきではない（たとえば、「a」および／または「an」は、「少なくとも一つの」または「一つまたは複数の」を意味するものと解釈されるべきである）。同じことは、請求項の記載を導入する定冠詞の使用についても成り立つ。
【００６１】
さらに、たとえ導入される請求項の記載の特定の数が明示的に記載されていたとしても、当業者は、そのような記載が、少なくともその記載された数を意味すると解釈されるべきであることを認識するであろう（たとえば、他の修飾語なしで単に「二つの記載」という記載は、少なくとも二つの記載または二つ以上の記載を意味する）。さらに、「Ａ、ＢおよびＣなどのうちの少なくとも一つ」または「Ａ、ＢおよびＣなどの一つまたは複数」に類似する慣用句が使われる事例においては、一般に、そのような構文はＡだけ、Ｂだけ、Ｃだけ、ＡおよびＢ両方、ＡおよびＣ両方、ＢおよびＣ両方またはＡ、ＢおよびＣ全部などを含むことが意図される。
【００６２】
さらに、明細書であれ請求項であれ図面であれ、二つ以上の代替的な用語を呈示するあらゆる離接的な語句は、該用語の一つを含む、該用語のいずれかを含むまたは該用語の両方を含む可能性を考えているものと理解されるべきである。たとえば、「ＡまたはＢ」という句は、「Ａ」または「Ｂ」または「ＡおよびＢ」の可能性を含むと理解されるべきである。
【００６３】
本開示において記載されるすべての例および条件付きの言辞は、本発明および発明者によって当技術分野の発展のために寄与される概念の理解において読者を助ける教育目的を意図されており、そのような特定的に挙げられる例および条件に限定することなく解釈されるものとする。本開示の実施形態について詳細に述べてきたが、本開示の精神および範囲から外れることなく、これにさまざまな変化、代替および変更をなすことができることは理解しておくべきである。
【００６４】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
作業者適性を予測するための動作をシステムに実行させるよう構成されたコンピュータ実行可能命令を含む非一時的なコンピュータ可読記憶媒体であって、前記動作は：
複数の作業者、複数のツールおよび複数の分類法パラメータを同定する段階と；
前記分類法パラメータと前記ツールの間の関係を表わす値の部分的に満たされた第一の行列であって、欠けている各値は前記ツールのうち前記分類法パラメータの値が未知であるものを表わす、第一の行列と、前記作業者と前記ツールの間の関係を表わす値の部分的に満たされた第二の行列であって、欠けている各値は前記ツールのうち前記作業者のスキルが未知であるものを表わす、第二の行列と、前記作業者と前記分類法パラメータとの間の関係を表わす値の部分的に満たされた第三の行列であって、欠けている各値は前記分類法パラメータのうち前記作業者の習熟度が未知であるものを表わす、第三の行列とを同定する段階と；
前記部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークを用いて前記部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じる段階であって、満たされた第一の行列のそれぞれの予測された値は前記ツールの前記分類法パラメータの値を表わし、満たされた第二の行列のそれぞれの予測された値は前記作業者が前記ツールのスキルを習得する適性を表わし、満たされた第三の行列のそれぞれの予測された値は前記作業者の前記分類法パラメータに習熟する適性を表わす、段階と；
ツール要求および時間制約条件を同定する段階と；
各作業者についての時間利用可能性を同定する段階と；
そのタスクのツール要求、そのタスクの時間制約条件および各作業者についての時間利用可能性に基づいて、そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる段階とを含む、
非一時的なコンピュータ可読記憶媒体。
（付記２）
前記ツールがソフトウェア開発ツールであり、前記タスクがソフトウェア開発タスクである、付記１記載の非一時的なコンピュータ可読記憶媒体。
（付記３）
前記分類法パラメータが、学習の複雑さ、学習時間、使いやすさ、抽象化レベル、活用レベルもしくは協働スタイルまたはそれらの何らかの組み合わせを含む、付記２記載の非一時的なコンピュータ可読記憶媒体。
（付記４）
前記部分的に満たされたおよび前記満たされた第一、第二および第三の行列における値が0から1までの間の値である、付記３記載の非一時的なコンピュータ可読記憶媒体。
（付記５）
そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる前記段階がさらに、最小時間期間から最大時間期間までの間に制約された、そのタスクを完了するための合計時間を含む作業品質制約条件に基づく、付記１記載の非一時的なコンピュータ可読記憶媒体。
（付記６）
そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる前記段階がさらに、前記作業者のうちの相性がいい二人を作業者の前記最適な部分集合に含ませることを含む、あるいは前記作業者のうちの相性がよくない二人の両方は作業者の前記最適な部分集合に含ませないことを含む作業者協働制約条件に基づく、付記１記載の非一時的なコンピュータ可読記憶媒体。
（付記７）
前記動作がさらに、前記タスクに関連するハードウェアおよび／またはソフトウェア資源へのアクセスを、前記作業者の前記最適な部分集合の各作業者に対して承認することを含む、付記１記載の非一時的なコンピュータ可読記憶媒体。
（付記８）
作業者適性を予測するためのコンピュータ実装される方法であって：
複数の作業者、複数のツールおよび複数の分類法パラメータを同定する段階と；
前記分類法パラメータと前記ツールの間の関係を表わす値の部分的に満たされた第一の行列であって、欠けている各値は前記ツールのうち前記分類法パラメータの値が未知であるものを表わす、第一の行列と、前記作業者と前記ツールの間の関係を表わす値の部分的に満たされた第二の行列であって、欠けている各値は前記ツールのうち前記作業者のスキルが未知であるものを表わす、第二の行列と、前記作業者と前記分類法パラメータとの間の関係を表わす値の部分的に満たされた第三の行列であって、欠けている各値は前記分類法パラメータのうち前記作業者の習熟度が未知であるものを表わす、第三の行列とを同定する段階と；
前記部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークを用いて前記部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じる段階であって、満たされた第一の行列のそれぞれの予測された値は前記ツールの前記分類法パラメータの値を表わし、満たされた第二の行列のそれぞれの予測された値は前記作業者が前記ツールのスキルを習得する適性を表わし、満たされた第三の行列のそれぞれの予測された値は前記作業者の前記分類法パラメータに習熟する適性を表わす、段階と；
ツール要求および時間制約条件を同定する段階と；
各作業者についての時間利用可能性を同定する段階と；
そのタスクのツール要求、そのタスクの時間制約条件および各作業者についての時間利用可能性に基づいて、そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる段階とを含む、
コンピュータ実装される方法。
（付記９）
前記ツールがソフトウェア開発ツールであり、前記タスクがソフトウェア開発タスクである、付記８記載のコンピュータ実装される方法。
（付記１０）
前記分類法パラメータが、学習の複雑さ、学習時間、使いやすさ、抽象化レベル、活用レベルもしくは協働スタイルまたはそれらの何らかの組み合わせを含む、付記９記載のコンピュータ実装される方法。
（付記１１）
前記部分的に満たされたおよび前記満たされた第一、第二および第三の行列における値が0から1までの間の値である、付記１０記載のコンピュータ実装される方法。
（付記１２）
そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる前記段階がさらに、最小時間期間から最大時間期間までの間に制約された、そのタスクを完了するための合計時間を含む作業品質制約条件に基づく、付記８記載のコンピュータ実装される方法。
（付記１３）
そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる前記段階がさらに、前記作業者のうちの相性がいい二人を作業者の前記最適な部分集合に含ませることを含む、あるいは前記作業者のうちの相性がよくない二人の両方は作業者の前記最適な部分集合に含ませないことを含む作業者協働制約条件に基づく、付記８記載のコンピュータ実装される方法。
（付記１４）
前記タスクに関連するハードウェアおよび／またはソフトウェア資源へのアクセスを、前記作業者の前記最適な部分集合の各作業者に対して承認する段階をさらに含む、付記８記載のコンピュータ実装される方法。
（付記１５）
前記機械学習集団的行列因子分解フレームワークが疎な群埋め込みを用いる、付記８記載のコンピュータ実装される方法。
（付記１６）
作業者適性を予測するためのコンピュータ実装される方法であって：
複数の作業者、複数のツールおよび複数の分類法パラメータを同定する段階と；
前記分類法パラメータと前記ツールの間の関係を表わす値の部分的に満たされた第一の行列であって、欠けている各値は前記ツールのうち前記分類法パラメータの値が未知であるものを表わす、第一の行列と、前記作業者と前記ツールの間の関係を表わす値の部分的に満たされた第二の行列であって、欠けている各値は前記ツールのうち前記作業者のスキルが未知であるものを表わす、第二の行列と、前記作業者と前記分類法パラメータとの間の関係を表わす値の部分的に満たされた第三の行列であって、欠けている各値は前記分類法パラメータのうち前記作業者の習熟度が未知であるものを表わす、第三の行列とを同定する段階と；
前記部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークを用いて前記部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じる段階であって、満たされた第一の行列のそれぞれの予測された値は前記ツールの前記分類法パラメータの値を表わし、満たされた第二の行列のそれぞれの予測された値は前記作業者が前記ツールのスキルを習得する適性を表わし、満たされた第三の行列のそれぞれの予測された値は前記作業者の前記分類法パラメータに習熟する適性を表わす、段階とを含む、
コンピュータ実装される方法。
（付記１７）
前記ツールがソフトウェア開発ツールである、付記１６記載のコンピュータ実装される方法。
（付記１８）
前記分類法パラメータが、学習の複雑さ、学習時間、使いやすさ、抽象化レベル、活用レベルもしくは協働スタイルまたはそれらの何らかの組み合わせを含む、付記１７記載のコンピュータ実装される方法。
（付記１９）
前記部分的に満たされたおよび前記満たされた第一、第二および第三の行列における値が0から1までの間の値である、付記１８記載のコンピュータ実装される方法。
（付記２０）
前記機械学習集団的行列因子分解フレームワークが疎な群埋め込みを用いる、付記１６記載のコンピュータ実装される方法。
【符号の説明】
【００６５】
１０８  機械学習集団的行列因子分解フレームワーク
１１６  制約条件
１１８  作業者時間利用可能性
１２０  タスク・ツール要求
１２２  タスク時間制約条件
１２４  凸最適化フレームワーク
１２６  作業者選択および作業者毎の時間割り当て
３０２  複数の作業者、複数のツールおよび複数の分類法パラメータを同定
３０４  分類法パラメータとツールの間の関係を表わす値の部分的に満たされた第一の行列、作業者とツールの間の関係を表わす値の部分的に満たされた値の第二の行列および作業者と分類法パラメータの間の関係を表わす値の部分的に満たされた第三の行列を同定
３０６  部分的に満たされた第一、第二および第三の行列に対して機械学習集団的行列因子分解フレームワークを用いて、部分的に満たされた第一、第二および第三の行列の欠けている値を予測し、満たされた第一、第二および第三の行列を生じる
３０８  ツール要求および時間制約条件を含むタスクを同定
３１０  各作業者の時間利用可能性を同定
３１２  そのタスクのツール要求、そのタスクの時間制約条件および各作業者の時間利用可能性に基づいて、そのタスクを実行するための前記作業者の最適な部分集合を予測するとともに、そのタスクに作業者の該最適な部分集合の各作業者が割くべき時間の最適な量を予測するために、満たされた第一、第二および第三の行列に対して凸最適化フレームワークを用いる
【図１】
2018101399.tif 000006
【図２】
2018101399.tif 000007
【図３】
2018101399.tif 000008
【図４】
2018101399.tif 000009