IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ オラクル・インターナショナル・コーポレイションの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-25
(45)【発行日】2024-04-02
(54)【発明の名称】高度な承認制御による構成価格見積もり
(51)【国際特許分類】
   G06Q 30/0202 20230101AFI20240326BHJP
【FI】
G06Q30/0202 318
【請求項の数】 14
(21)【出願番号】P 2020531947
(86)(22)【出願日】2019-06-07
(65)【公表番号】
(43)【公表日】2021-10-21
(86)【国際出願番号】 US2019036013
(87)【国際公開番号】W WO2020005499
(87)【国際公開日】2020-01-02
【審査請求日】2022-03-28
(31)【優先権主張番号】16/021,245
(32)【優先日】2018-06-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ウィルキンズ,ジェフリー
(72)【発明者】
【氏名】ライ,レ
(72)【発明者】
【氏名】ベレス,エレン
【審査官】石坂 博明
(56)【参考文献】
【文献】米国特許出願公開第2005/0010539(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
プロセッサが実施する方法であって、
製品構成またはサービス構成についての見積もりを示す見積もりデータを生成するステップを含み、前記見積もりデータは、少なくとも1つの必要な見積もり承認を含む見積もりワークフローを含み、前記見積もりデータは、前記見積もりを規定する複数の見積もり属性を含み、前記方法はさらに、
前記複数の見積もり属性を第1のニューラルネットワークモデルおよび第2のニューラルネットワークモデルに入力するステップと、
前記第1のニューラルネットワークモデルで、当該第1のニューラルネットワークモデルの損失関数の勾配降下により、前記見積もりが承認されるであろう可能性と、前記第2のニューラルネットワークモデルで、当該第2のニューラルネットワークモデルの損失関数の勾配降下により、前記見積もりが承認されるのに必要な時間とを生成するステップと、
前記見積もりが承認されるであろう前記可能性と、前記見積もりが承認されるのに必要な前記時間とについて前記損失関数の各属性に対する勾配値を導関数により求め、求まる勾配値の最大値のうち最大となる1つ以上の勾配値に対応する属性識別するステップと、
前記識別された属性のうち1つ以上に対する属性値の変更を受取り、前記変更に基づいて、前記見積もりが承認されるであろう前記可能性および/または前記見積もりが承認されるのに必要な前記時間を再生成するステップとを含む、方法。
【請求項2】
記見積もり承認は、複数のノードを含むグラフで示される、請求項1に記載の方法。
【請求項3】
前記見積もり属性は、少なくとも1つのカテゴリ別属性および少なくとも1つの数値属性を含む、請求項1または2に記載の方法。
【請求項4】
前記第1のニューラルネットワークモデルは3つの層を含み、前記3つの層のうちの2つの層は線形ニューロンを含み、残りの層はシグモイド活性化関数を含む、請求項1から3のいずれか1項に記載の方法。
【請求項5】
前記第1のニューラルネットワークモデルの損失関数は、f(x)=1/(1+e^(Mx))であり、当該損失関数の勾配値は、f′(x)=f(x)*(1-f(x))*Mによって計算される、請求項4に記載の方法。
【請求項6】
前記第2のニューラルネットワークモデルは、非線形成分を含む第1の入力層と、線形成分を含む第2の層および第3の層とを有する3つの層を含む、請求項1から5のいずれか1項に記載の方法。
【請求項7】
前記数値属性は0と1との間になるように正規化され、前記カテゴリ別属性はワンホットエンコードベクトルに変換される、請求項3に記載の方法。
【請求項8】
請求項1~7のいずれか1項に記載の方法をプロセッサに実行させるプログラム。
【請求項9】
製品コンフィギュレータであって、
第1のニューラルネットワークモデルと、
第2のニューラルネットワークモデルと、
製品構成またはサービス構成についての見積もりを示す見積もりデータを生成する見積もりジェネレータとを含み、前記見積もりデータは、少なくとも1つの必要な見積もり承認を含む見積もりワークフローを含み、前記見積もりデータは、前記見積もりを規定する複数の見積もり属性を含み、前記製品コンフィギュレータはさらに、
プロセッサを含み、前記プロセッサは、
前記複数の見積もり属性を前記第1のニューラルネットワークモデルおよび前記第2のニューラルネットワークモデルに入力するように構成され、
前記第1のニューラルネットワークモデルで、当該第1のニューラルネットワークモデルの損失関数の勾配降下により、前記見積もりが承認されるであろう可能性と、前記第2のニューラルネットワークモデルで、当該第2のニューラルネットワークモデルの損失関数の勾配降下により、前記見積もりが承認されるのに必要な時間とを生成するように構成され、
前記見積もりが承認されるであろう前記可能性と前記見積もりが承認されるのに必要な前記時間とについて前記損失関数の各属性に対する勾配値を導関数により求め、求まる勾配値の最大値のうち最大となる1つ以上の勾配値に対応する属性を識別するように構成され、
前記識別された属性のうち1つ以上に対する属性値の変更を受取って、前記変更に基づいて、前記見積もりが承認されるであろう前記可能性および/または前記見積もりが承認されるのに必要な前記時間を再生成するように構成される、製品コンフィギュレータ。
【請求項10】
前記見積もり属性は、少なくとも1つのカテゴリ別属性および少なくとも1つの数値属性を含む、請求項9に記載の製品コンフィギュレータ。
【請求項11】
前記第1のニューラルネットワークモデルは3つの層を含み、前記3つの層のうちの2つの層は線形ニューロンを含み、残りの層はシグモイド活性化関数を含む、請求項9または10に記載の製品コンフィギュレータ。
【請求項12】
前記第1のニューラルネットワークモデルの損失関数は、f(x)=1/(1+e^(Mx))であり、当該損失関数の勾配値は、f′(x)=f(x)*(1-f(x))*Mによって計算される、請求項11に記載の製品コンフィギュレータ。
【請求項13】
前記第2のニューラルネットワークモデルは、非線形成分を含む第1の入力層と、線形成分を含む第2の層および第3の層とを有する3つの層を含む、請求項9から12のいずれか1項に記載の製品コンフィギュレータ。
【請求項14】
前記数値属性は0と1との間になるように正規化され、前記カテゴリ別属性はワンホットエンコードベクトルに変換される、請求項10に記載の製品コンフィギュレータ。
【発明の詳細な説明】
【技術分野】
【0001】
分野
一実施形態は、概して、コンピュータシステムに向けられており、特に、コンピュータシステムでの製品構成および製品見積もりの生成に向けられている。
【背景技術】
【0002】
背景情報
構成・価格・見積もり(configure-price-quote:CPQ)システムは、販売構成システムとしても公知であり、ユーザらが任意の数の製品またはサービス(「製品」と総称)(これらのうちいくつかは構成可能であり得る)を含み得る販売見積もりを作成することを可能にする。製品およびサービス(複雑な金融商品など)はともに、製品構成およびサービス構成をともに生成するように構成可能であり得る。
【0003】
既存のCPQシステムは、構成可能な製品またはサービスを販売用に提供する企業、典型的には製造業者またはサービスプロバイダ、が使用できるように設計されている。これらのシステムは、通常、製品を製造する同じ企業実体のエージェントによって管理されるように設計されている。ビジネスにおいて用いられる複雑な構成可能製品は、製造業者から購入企業に対して直接販売されることが多い。これらのタイプの販売は、企業間またはB2B(business-to-business)取引きと称されることもある。
【0004】
CPQシステムは、製品構成を自動化することによって複雑な構成可能製品を販売するプロセスを容易にし得る。ビジネスルール(「構成ルール」および「価格設定ルール」)は、製品がどのように構成および価格設定されるかを決定するものであって、ソフトウェアアプリケーションにおいてコード化されていてもよく、構成された製品についての見積もりをユーザが作成する際に実行されてもよい。ビジネスルールは、製品が正確に構成されること、必要な製品コンポーネントが含まれていること、および、互換性のない製品オプションが好ましくは選択されないこと、を確実にする。価格設定ルールは、抱き合わせ販売での割引きのような複雑な論理を価格に適用し得る。
【0005】
構成可能な製品(特に、B2B取引きで販売されるような製品)は非常に複雑である可能性がある。複雑な製品の構成および価格設定を管理する構成および価格設定ルールの数は何千または何十万にも上る可能性がある。このような非常に複雑な製品の例には、セルラーネットワークベースステーション、大規模倉庫における自動運搬管理システム、および長距離輸送用セミトラクタが含まれる。比較的単純な製品、たとえば、ディーゼル発電機、特別注文の窓およびHVACエアハンドラなどには何百または何千ものビジネスルールがあり得る。
【0006】
製品またはサービスを構成する際に、販売ユーザなどのユーザは、典型的には、構成された製品についての価格見積もりを発行する前に承認を必要とする。承認は、典型的には、CPQシステムにおいて予め定義されたルールに応じて必要となる。たとえば、構成された製品の価格割引が20%を上回り50%未満である場合、ルールは販売責任者の承認を必要とする可能性がある。価格割引が50%を上回る場合、ルールは販売責任者および販売部長の両方の承認を必要とする可能性がある。
【発明の概要】
【課題を解決するための手段】
【0007】
概要
実施形態は、製品構成またはサービス構成についての見積もりを生成するコンフィギュレータを動作させる。見積もりは、少なくとも1つの必要な見積もり承認を含む見積もりワークフローを含み、見積もりは、当該見積もりを規定する複数の見積もり属性を含む。実施形態は、当該複数の見積もり属性を第1のニューラルネットワークモデルおよび第2のニューラルネットワークモデルに入力する。実施形態は、第1のニューラルネットワークモデルで、勾配降下により、見積もりが承認されるであろう可能性と、当該第2のニューラルネットワークモデルで、見積もりが承認されるのに必要な時間とを生成する。実施形態は、見積もりが承認されるであろう可能性と見積もりが承認されるのに必要な時間とについて最大勾配値を有する1つ以上の属性を生成する。実施形態は、当該属性のうち1つ以上に対する変更を受取るとともに、当該変更に基づいて、当該見積もりが承認されるであろう当該可能性および/または当該見積もりが承認されるのに必要な当該時間とを再生成する。
【図面の簡単な説明】
【0008】
図1】本発明の実施形態に従ったコンピュータサーバ/システムを示すブロック図である。
図2A】本発明の実施形態に従ったニューラルネットワークの例を示す図である。
図2B】実施形態に従って学習されるものを例示するプロットである。
図3】属性の各々について実施形態に従った特定のポイントにおける勾配を示す図である。
図4A】本発明の一実施形態に従った、見積もりを承認するための承認時間を予測するのに用いることができるニューラルネットワークの例を示す図である。
図4B】本発明の一実施形態に従った、ニューラルネットワークの出力のモデリングを示すグラフである。
図5A】本発明の一実施形態に従った、ニューラルネットワークの出力のモデリングを示すグラフである。
図5B】本発明の一実施形態に従った、ニューラルネットワークの出力のモデリングを示すグラフである。
図6A】一実施形態に従った、見積もり承認プロセスの一部としてユーザに提示されるグラフィカルユーザインターフェイスを示す図である。
図6B】一実施形態に従った、見積もり承認プロセスの一部としてユーザに提示されるグラフィカルユーザインターフェイスを示す図である。
図6C】一実施形態に従った、見積もり承認プロセスの一部としてユーザに提示されるグラフィカルユーザインターフェイスを示す図である。
図7A】実施形態に従った、承認可能性の出力をユーザに提供するグラフィカルユーザインターフェイスの例を示す図である。
図7B】実施形態に従った、予測された承認時間の出力をユーザに提供するグラフィカルユーザインターフェイスの例を示す図である。
図8】一実施形態に従った、CPQのための高度な見積もり承認機能を提供する際の、図1の見積もり承認モジュールの高レベル機能を示すフロー図である。
【発明を実施するための形態】
【0009】
詳細な説明
一実施形態は、サービスコンフィギュレータまたは製品コンフィギュレータであって、構成された見積もりを承認させるのに必要なワークフロープロセス上で、機械学習を用いてガイダンスを提供する。当該ガイダンスは、見積もりが承認されるであろう確率を高めるために見積もりに変更を加えることについて、または承認に必要な時間を減らす方法についての推奨を含む。
【0010】
一般に、公知のCPQまたはコンフィギュレータシステムでは、承認を求めて見積もりを提出する販売ユーザには、次に何が起こる可能性があるのか、または、このステップにはどれくらいの時間がかかる可能性があるのかについての表示が提供されない。ユーザはまた、一般に、見積もりが承認される可能性がどの程度であるのかについて、または、その承認にかかると予想される時間についても知らされていない。さらに、公知のシステムでは、一般に、承認される可能性を高めるかまたは承認にかかる時間を減らすためにユーザが実行できるであろうことを推奨するガイダンスは存在しない。
【0011】
図1は、本発明の実施形態に従った、コンピュータサーバ/システム10のブロック図である。単一のシステムとして図示されているが、システム10の機能は分散型システムとして実現することができる。さらに、この明細書中に開示される機能は、ネットワークを介して相互に連結され得る別個のサーバまたはデバイス上で実現することができる。さらに、システム10の1つ以上のコンポーネントは含まれていなくてもよい。たとえば、サーバの機能のために、システム10はプロセッサおよびメモリを含む必要があるかもしれないが、キーボードまたはディスプレイなどの図1に示される他のコンポーネントのうち1つ以上を含んでいなくてもよい。
【0012】
システム10は、情報を伝達するためのバス12または他の通信機構と、バス12に連結されて情報を処理するためのプロセッサ22とを含む。プロセッサ22は、如何なるタイプの汎用または特定用途のプロセッサであってもよい。システム10はさらに、情報と、プロセッサ22によって実行される命令とを格納するためのメモリ14を含む。メモリ14は、ランダムアクセスメモリ(random access memory:RAM)、読取専用メモリ(read only memory:ROM)、磁気ディスクもしくは光ディスクなどのスタティックストレージ、または、他の任意のタイプのコンピュータ読取可能媒体のいずれかの組合せで構成することができる。システム10はさらに、ネットワークにアクセスできるようにするためにネットワークインターフェイスカードなどの通信装置20を含む。したがって、ユーザは、ネットワークを介して、または他の任意の方法によって、システム10と直接または遠隔で接続し得る。
【0013】
コンピュータ読取可能媒体は、プロセッサ22がアクセスすることのできる利用可能な任意の媒体であり得るとともに、揮発性媒体、不揮発性媒体、取外し可能な媒体、取外し不可能な媒体、および通信媒体を含む。通信媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュール、または、他のデータを搬送波もしくは他の伝送メカニズムなどの変調されたデータ信号の形で含み得るとともに、任意の情報配信媒体を含む。
【0014】
プロセッサ22は、液晶ディスプレイ(liquid crystal display:LCD)などのディスプレイ24にバス12を介してさらに連結される。キーボード26およびカーソル制御装置28、たとえばコンピュータマウスなどはさらに、バス12に連結されて、ユーザがシステム10と接続することを可能にする。
【0015】
一実施形態においては、メモリ14は、プロセッサ22によって実行されると機能を提供するソフトウェアモジュールを格納している。モジュールは、システム10のためにオペレーティングシステム機能を提供するオペレーティングシステム15を含む。モジュールはさらに、CPQのための高度な見積もり承認機能と、この明細書中に開示される他のすべての機能とを提供する見積もり承認モジュール16を含む。システム10は、CPQシステム(たとえば、オラクル社(Oracle Corp.)による「CPQクラウド」)またはエンタープライズ・リソース・プランニング(enterprise resource planning:ERP)システムなどの、開示された見積もり承認機能を用いるより大規模なシステムの一部であり得る。したがって、システム10は、付加的な機能を含めるように1つ以上の付加的な機能モジュール18を含み得る。プロセッサ22が少なくともソフトウェアモジュール16を実行すると、システム10は、この明細書中に開示されるように高度な見積もり承認機能を提供する専用コンピュータになる。
【0016】
データベース17はバス12に連結されて、モジュール16および18のために集約的なストレージをもたらすとともに、製品属性、財務データ、在庫情報、販売データなど、ならびに、モジュール15、16および/または18にとって必要な他のすべてのデータを格納する。一実施形態においては、データベース17は、構造化照会言語(structured query language:SQL)を用いて格納済みデータを管理することができるリレーショナルデータベース管理システム(relational database management system:RDBMS」)である。データベース17は、図1の他のコンポーネントに対してローカルであってもよく、またはクラウド上などのリモートであってもよい。
【0017】
一実施形態においては、特にサーチすべき構成詳細が多数存在する場合、データベース17がインメモリデータベース(in-memory database:IMDB)として実現される。IMDBは、主としてコンピュータデータストレージのために主メモリに依存するデータベース管理システムであって、ディスクストレージ機構を採用するデータベース管理システムとは異なっている。主メモリデータベースはディスク最適化データベースよりも高速である。なぜなら、ディスクアクセスがメモリアクセスよりも低速であり、内部最適化アルコリズムがより単純であってより少数のCPU命令を実行するからである。メモリ内のデータにアクセスすることで、データに照会する際のシーク時間が省かれて、ディスクと比べてより高速かつより予測可能な性能が提供される。
【0018】
一実施形態においては、データベース17は、IMDBとして実現されると、分散型データグリッドに基づいて実現される。分散型データグリッドは、コンピュータサーバの集合が1つ以上のクラスタにおいて一緒に動作して、分散型環境またはクラスタ化環境内で情報と演算などの関連動作とを管理するシステムである。分散型データグリッドを用いることで、サーバ間で共有されるアプリケーションオブジェクトおよびデータを管理することができる。分散型データグリッドは、低応答時間、高スループット、予測可能なスケーラビリティ、連続的な利用可能性および情報信頼性を提供する。特定の例においては、たとえば、オラクル社による「オラクルコヒーレンス(Oracle Coherence)」データグリッドなどの分散型データグリッドは、より高い性能を達成するためにメモリに情報を格納するとともに、複数のサーバ間で同期された当該情報のコピーの保存に冗長性を採用することで、システムの復元性と、サーバの故障時におけるデータの継続的な利用可能性とを確実にする。
【0019】
一実施形態においては、システム10は、企業組織のための分散型アプリケーションのうちの1アプリケーションまたはそれらの集まりを含むコンピューティング/データ処理システムである。これらのアプリケーションおよびコンピューティングシステム10は、クラウドベースのネットワーキングシステム、ソフトウェア・アズ・ア・サービス(software-as-a-service:SaaS)アーキテクチャ、もしくは他のタイプのコンピューティングソリューションで動作するか、またはクラウドベースのネットワークシステム、SaaSアーキテクチャ、もしくは他のタイプのコンピューティングソリューションとして実現されるように構成され得る。
【0020】
上記に開示されるように、CPQシステムまたは製品/システムコンフィギュレータは、構成と、ユーザに対して見積もりの形で販売のために提供される当該構成についての価格設定とを生成することができる。典型的には、見積もりは、予め定義されたルールに応じて、承認されてから販売用に提示されなければならない。実施形態においては、見積もり承認は、履行サービスへの見積もりの送信が可能になる前にパスしなければならない見積もりワークフローにおける1ステップである。オラクル社による「CPQクラウド」などの公知のシステムは、管理者がツリーベースの承認構造を生成する能力を可能にするものであって、ユーザにツリー上のすべてのノードから承認を得させてからこの承認による見積もりの処理をできるようにすることを強制するものである。
【0021】
公知のCPQシステム内の見積もりは顧客によって定義されたワークフローを経て処理される。これにより、見積もりが占有できるステップ、これらステップ間で進行するであろう動作、および、各ステップにおいて各ユーザが見積もりを閲覧するのを可能にする許可が作成される。このような特化された1ステップは、承認ステップのために提出することである。これが行なわれると、見積もりが承認階層に入る。この階層は、見積もりが保留中の承認状態を終えて、完全に承認されることが可能になる前に特定の順序で実行されなければならない承認のツリーを規定している。ツリーにおけるすべてのノードは、各ノードがいつアクティブになるべきかを特定するように定義されたルールを有する。たとえば、見積もりが20%を超える割引きを含む場合、ルールは見積もりが管理者承認を必要とすることを規定する可能性がある。このノードはその割引きを上回ったときにだけオンにされる。他の場合には、このノードは迂回される。
【0022】
公知のCPQシステムとは対照的に、実施形態は、承認のフローがどのように進む可能性があるかについてのガイダンスを提供するために、機械学習コンポーネントをエンドユーザ承認プロセスに追加する。実施形態はさらに、見積もりのワークフローを変更する(たとえば、承認に必要な時間を短くする)ために見積もりをどのように変更することができるかについてのガイダンスを提供する。実施形態におけるガイダンスは、承認にかかる時間と見積もりが承認される可能性とに関連している。実施形態は、見積もりの状態についてのエンドユーザ知識を増やして向上させるために3つのキー領域における機能を提供する。3つのキー領域とは、すなわち、(1)承認ステータスの表示、(2)承認可能性の表示、および/または、(3)承認時間の表示である。
【0023】
実施形態においては、承認はノードのグラフの形を取る。承認の各レベルは複数のノードを含み得るとともに、レベルは任意の順序で配列され得る。任意の承認ノードが却下されると、結果として、見積もり全体が却下されることになるだろう。承認ノードは順にナビゲートされなければならない。
【0024】
承認データは、実施形態においては、見積もりワークフローにおける1ステップとして維持される。このステップは、2つの結果(すなわち、承認されたかまたは却下された)、および時間値(すなわち、このステップにおいて見積もりが存在していた時間)を有する。見積もりはまた、見積もりが保留中の承認状態に進んだ時の見積もりの属性値を維持する。見積もりの属性は、見積もりの対象または見積もり自体である製品またはサービスに関連する任意の情報である。属性の例は、見積もりの割引き率(すなわち、数値属性)、個別項目合計、購買の状態(すなわち、カテゴリ別属性)、購買する人の名前などを含む。
【0025】
以下は、本発明の実施形態の機能を用いて承認がトリガされて改善され得る場合の見積もりおよび見積もり属性の例である。
【0026】
・ フォークリフトが機材製造業者によって忠実な顧客に販売されていると想定する。販売ユーザには、忠実であるという理由で顧客用の35%の割引きが追加される。これは、20%の割引きの標準限度を上回っているので、管理者の直接の承認が必要である。
【0027】
・ ゲーミングシステムが販売されていると想定する。当該システムに埋込まれている技術のために、輸出法が有効であるかもしれない。見積もりが承認に進むと、「輸出」オプションが真に設定されて、特定の法的/セキュリティ承認がトリガされる。
【0028】
・ 直近に大規模な一括注文を済ませた顧客のために1回限りの見積もりが作成されていると想定する。以前に大規模注文をしていたので、この販売ユーザは「大量購入割引き(Bulk Discount)」オプションを選択する。このオプションが100未満のアイテムの注文で選択されている場合、事業部長(Vice President:VP)からの承認が必要となる。
【0029】
・ 大量注文ジェネレータが、出荷されるべき100トンを超える製品からなるシステムに提示されると想定する。これにより、会社の戦略物流部門からの承認がトリガされて、確実に、要求されたアイテムを企業が出荷することが可能となる。
【0030】
・ 特殊な高張力鋼ケーブルを要求するいくつかのクレーンが注文されると想定する。この鋼ケーブルの供給量は少ない。したがって、見積もりに関する部品リスト中にこのタイプのケーブルが存在していれば、企業の供給部門のVPから承認がトリガーされて、必要な材料が在庫にあることが確実にされる。
【0031】
・ 外国政府に対する採掘サービスのための販売がなされると想定する。見積もりが承認システムにまで進められると、外国政府に販売しているという事実により、フローにおける特定の海外不正行為防止法(Foreign Corrupt Practices Act:FCPA)調査承認ステップがトリガされる。
【0032】
実施形態は、このデータを機械学習システムに供給して当該システムをトレーニングする。具体的には、実施形態は、すべての見積もり属性(または関連するサブセット)と、見積もりが承認されたか否かまたは見積もりが承認されるのにかかった時間とについての過去の履歴セットを供給する。属性と承認可能性(または承認時間)との間の関係を見出すために、任意の機械学習システムを実施形態において用いることができる。一実施形態においては、機械学習システムは線形ニューロンのニューラルネットワークである。機械学習システムをトレーニングした後、実施形態は2つの関数を生成する。2つの関数は、属性「({a})」のセットを承認獲得の可能性に対してマッピングする関数と、属性のセットを承認獲得にかかるであろう時間にマッピングする関数とを含む。これらの関数は以下のとおり規定される。
【0033】
・ 可能性=L({a}):見積もりごとに、すべての見積もり属性値および承認/却下データを含むセットによって生成される。
【0034】
・ 時間=T({a}):見積もりごとに、すべての見積もり属性値および承認ステップ時間長を含むセットによって生成される。
【0035】
これらの関数はともに、機械学習アルゴリズムによって生成され、見積もり属性ベクトルを承認成分の可能性百分率または絶対時間値に関連付けることとなる。
【0036】
実施形態においては、上述の2つの関数を生成する機械学習システムは勾配降下で生成を行う。具体的には、機械学習システムは、各ニューロンごとに損失関数の勾配を繰返し計算し、各入力属性ごとの係数重みをより小さな損失に向かって移動させる。関数f({a})のトレーニング中、({a′})においてパスされた入力データポイントごとに、2つの要素が計算される。
【0037】
1.{a′}(f({a′})についての現在の関数の予測値、および、その値が、トレーニングデータセット中の{a′}に関連付けられた既知の値からどれくらい異なっているか。予測値と実際値との間の差は現在の繰返しに関する関数のエラー(誤差)である。任意の損失関数の変数は、実際には、関数のニューラルネットワークにおける各ノードに関して定義された重みとなるだろう。すなわち、損失関数はすべてのノード係数の関数となるだろう。
【0038】
2.f()が既知の関数である(ネットワークのトポロジーが選択されるときに判断される)ので、損失関数の勾配を計算することができる。この損失関数の最小値(実質的には、入力に対する関数の最適予測一致である)がどこにあるかを見出すために、係数は、勾配の最も負の方向にわずかだけ変更される。すなわち、関数f()は、関数の係数に対して呈する勾配によって決定されるとおりにわずかに変更される。次に、新しい関数fn+1()が決定される。アルゴリズムがエラーをほぼ0にすることができるようになるまで、同じプロセスが何度も繰返される。
【0039】
上述の結果、最適関数が達成される。実施形態は、各々の見積もりの値を承認するための現在の可能性または時間を前提として、可能性を高くするかもしくは低くするかまたは時間を長くするかもしくは短くするために、見積もりをどのような変更することができるかについての質問に回答する。既存の関数の勾配が計算されているので、可能性および時間の従属変数に最適に影響を及ぼす可能性のある属性を計算することができる。
【0040】
したがって、実施形態は、(可能性または時間の予測カーブのn次元傾斜である)実数勾配を計算して、結果に対してどれほど重大な影響を及ぼすかに関するすべての関連属性についての重み付けリストを生成する。この情報を用いて、実施形態は、最適な承認の時間長さとするために見積もりをどのように変更すべきかをユーザに表示して、ユーザに次のステップガイダンスを提供する。概して、属性の重みごとの勾配成分が大きければ大きいほど、値を承認するための可能性または時間の動きに対する影響がより大きくなる。
【0041】
例1
一実施形態の例として、カテゴリ別属性(C1~C4)および数値属性(N5~N10)を含む10個の属性を含む以下のデータセットを想定する。
【0042】
【表1-1】
【0043】
【表1-2】
【0044】
【表1-3】
【0045】
【表1-4】
【0046】
【表1-5】
【0047】
カテゴリ2(C2)および数値7(N7)は、この単純化された例における実データについてのわずかに2つの成分である。残りはこの例におけるランダムに生成されたノイズである。というのも、C2およびN7の変化だけが、出力された可能性値に影響を及ぼすからである。ノイズがあることで、アルゴリズムがどのように判断要因を識別できるかが分かる。上述のデータにおいて基礎をなす関係は以下のとおりである。
【0048】
・ C2が(1,3,5,6)にあり、N7>40であれば、見積もりが承認されるだろう。承認のための時間はN7の値に正比例している。
【0049】
・ C2が(0,2,4,7)にある場合、見積もりは承認されない。
上述の例においては、カテゴリ別属性と数値属性との組合せが機械学習システムに供給される。勾配が最後に測定される限り、モデリングのためにさまざまなタイプのアルゴリズムを用いることができる。一実施形態においては、線形関数は、最後に勾配を計算し易くする何らかの活性化関数でモデリングするために用いられる。上述の例におけるデータセットは比較的単純であるので、学習も迅速かつ正確になる。実世界のデータは、一般に、はるかにより複雑であってより大規模なネットワークを必要とするが、同じ原理が当てはまる。
【0050】
見積もりを承認する時間を判断するための機械学習の後、上記に開示されるように、実施形態は、さらに、見積もりが承認されるであろう可能性を判断するために機械学習を実行する。図2Aは、本発明の実施形態に従ったニューラルネットワークを示す。ネットワーク200は3つの層を含む。層201は4つの線形ニューロンを有し、層202は2つの線形ニューロンを有し、層203は、シグモイド活性化関数が搭載された単一ニューロンを有する。入力220は31個の属性を含み、出力221は単一の数を含む。他の実施形態においては、線形層が入力のための重みを学習するとともにシグモイド最終層が非線形関数を可能にするネットワークを含む、より複雑なネットワークを用いることができる。ネットワークの他の実施形態は、たとえば、ネットワークに非線形ノードを有することができ、最終層は、0~1の値範囲に出力をマッピングするための任意の活性化関数であり得る。
【0051】
図2Bは、実施形態に従って学習されるものを例示するプロットである。図2Bにおいて、x軸は入力データの行番号であり、y軸は出力された可能性の値である。図2Bに示されるように、予測値および実際値は互いにほぼ重なり合っている。
【0052】
実施形態は次に、どの属性を変更するべきかと、これら属性に対して何を行うべきかとを推奨する。これは「完全な学習」とみなされるが、それは、機械学習におけるエラーが0という結果になったからである。それは、トレーニングデータセット中のすべてのデータポイントを完璧に予測することができる。パスされたデータは非常にクリーンである。このポイントでは、実施形態は、入力変数の選択を可能にし、このポイントでどのような勾配になるのかをチェックすることができる。上記に開示されたネットワークは、最終的に以下の関数となる。
【0053】
・ f(x)=1/(1+e^(Mx))
これは、線形関数の線形関数が線形関数となるからである。したがって、線形関数のディープネットワークは単一の線形乗数として表わすことができる。この場合、Mおよびxはともにベクトルであるため、Mと同様に、xは(x1,x2,x3,…,xn)に分解される。したがって、Mxは、実際には(M1,M2,M3,…,Mn)である。この関数についての勾配計算は以下のとおりである。
【0054】
・ f′(x)=f(x)(1-f(x))
これは、シグモイド関数(1/(1-e^x))の定義および連鎖法則に由来する。非線形ネットワークがより複雑であれば勾配がより複雑になるだろう。
【0055】
図3は、各属性ごとに、実施形態にしたがった特定のポイントにおける勾配を示す。カテゴリ別属性および数値属性がある。数値属性(N5~N10)に関して、N7が301において高く急上昇することが示されている。図3から2つのことが導き出される。第一に、N7属性についての勾配値が大きいことである。これは、N7が変化するのに応じて、それらの変化が承認の可能性に大きな影響を及ぼすであろうことを意味している。第二に、値が正であることである。これは、N7が大きくなるのに応じて承認可能性も高くなることを意味している。これは予想と一致している。なぜなら、40未満のN7の値が承認されないことが分かっているからである。カテゴリ別属性はより困難になる能性がある。C2は、302において8個の異なる入力変数に分割されており、これら8個の各々はオンまたはオフにされている(ワンホットエンコードベクトル)。これらのサブカテゴリの各々についての勾配は大きな変化を示す。C2についての勾配成分は、(1,0,0,0,0,0,0,0)において極めて負側の値もしくは0を有しているか、または、その属性のために0を選択する(「0特徴」をオンにする)ことは、承認の可能性が著しく低下するであろうことを意味している。(0,0,0,0,0,0,1,0)というC2上の値6に関しては、勾配成分は正であって、これは、それが承認に肯定的に影響を及ぼすことを意味している。
【0056】
他のカテゴリ別属性は、別個の値同士の間で区別されない。勾配曲線にピークはなく、横ばい状態が存在する。同様に、承認を推進しない数値属性に関して、それらの勾配成分はほぼ0である。したがって、以下のルールで承認の可能性を推進する属性を引出すことができる。
【0057】
・ 数値属性の場合、各属性ごとの勾配値(その属性に対する導関数)が大きければ、承認値に大きな影響を及ぼすだろう。
【0058】
・ カテゴリ別属性の場合、承認の推進力が最も高い属性は、測定された勾配のベクトル成分同士の差が最も大きくなる。
【0059】
図3に示されるように、他のすべての属性が無意味であるので、例1の以下の応用例はC2およびN7の値を用いる。
【0060】
1.C2=0、N7=30。実施形態は、3.48499E-40という非常に低い承認可能性を予測するだろう。N7の分析は、その値を大きくすることを推奨する。C2の分析は、C2を最高の導関数値(すなわち、6)にまで進めることを推奨する。C2が6に変更される場合、承認可能性は0.17%にまで上昇する。これは依然として非常に低いが、その例が好適な承認可能性を得る転換点にあることを示している。N7を0.3から0.4に大きくする場合、承認の可能性は好適な99.86%にまで上昇する。
【0061】
2.C2=1、N7=30。このシナリオについての予測された可能性は5.42179E-08という非常に低いものである。実施形態は、N7の値を大きくすることを推奨するだろう。N7が大きければ大きいほど、承認可能性は高くなる。C2に注目すると、C2の最適化された値が6であると判断されることになるが、それらの個々の勾配成分の差が小さいので、推奨度は低い。代わりに、実施形態は、N7をより大きくするよう推奨するだろう。N7=40であれば、承認の可能性は2.21%となる。N7=45であれば、承認の可能性は93.60%となる。
【0062】
3.C2=6、N7=70。このシナリオに関する予測された可能性は時間の承認については100%である。すべての場合において実際に勾配が0になり得る(上述の勾配式を参照)ので、どの推奨も行うことができなくなる。
【0063】
4.C2=6、N7=50。これは、99.9999997%の承認可能性を予測している。勾配は0ではないが非常に小さくなるだろう。この場合、実施形態は、N7を大きくすることを依然として推奨するだろう。但し大きくしても推奨度は低いだろう。
【0064】
上述の例から、勾配の規模によって形状が変化するのではなく、実際には大きさが変化することが分かる。これは、例において用いられるモデルを単純化した結果である。しかしながら、より複雑なモデルを用いる実施形態においては、このことは当てはまらない可能性もある。概して、実施形態は、承認可能性を学習するだけではなく、承認可能性を高めるために取るべき動作についての推奨を与える。
【0065】
例2
例2において、例1と同じデータセットが用いられるが、分析は見積もりを承認する時間を判断する目的で行なわれる。この実施形態においては、学習アルゴリズムは、カテゴリ別学習アルゴリズムからデータの傾向線の学習に変更される。この実施形態においては、見積もりが承認されなかったせいで承認されないすべてのデータについては、承認時間は意味をもたない。この例においては、いくつかの余分なデータを例1のセットに追加して、N7についてのいくつかのさまざまな値を有するであろうデータについて学習する。
【0066】
【表2-1】
【0067】
【表2-2】
【0068】
これは、上述の例1と同じデータセットであるが、N7が40未満であるいくつかの追加の記録を含む。これらの線が最適ではないので承認の時間は大きい。これを学習するために、ニューラルネットワークは、例1とは対照的により複雑な定義に改訂される。
【0069】
図4Aは、本発明の実施形態に従った、見積もりを承認するための承認時間を予測するために用いることができるニューラルネットワーク400を示す。ネットワーク200と比べて、ネットワーク400はより複雑なネットワークである。出力401は必ずしも線形ではないので、非線形成分がネットワーク400に追加されることとなる。ネットワークの第1の層402においては、tanh(双曲線正接)ノード(すなわち非線形成分)の後に第2の層403における線形ノードが続く。これにより確実に非線形関数をモデリングすることができるとともに、線形ノードにより、確実に、出力に対する全関数マップを実行することができる。結果として、出力401は、図4Bのグラフ441に示されるようにこのネットワークでモデル化される(次第に増加していくグラフとなるように並べ替えられる(すなわち、データがx軸において異なる順序で並べられていた場合、図2Bのグラフと同様に見えるだろう))。
【0070】
図示のとおり、ネットワーク400は傾向を十分に学習した。この関数の勾配は、特定のポイントに応じて著しく異なるような状態である。なぜなら、tanh関数が一定の勾配を有していないからである。個々のポイントにおける値に注目すると、最大勾配を有する属性を、変更が出力に最大限にまで影響を及ぼすであろう属性と見なすことが予想されるだろう。たとえば、図5Aのグラフ501に示されるように20日間までマッピングするテストポイントに注目する。
【0071】
入力:1,1,2,3,1.486538744,71.60306092,36,4.996422959,341.2976196,56.0979154,20
(505における)属性N7にスパイクが現れる。これは、この属性が出力に対して最大の影響を及ぼすであろうことを意味している。これは、入力データにコード化された関係に基づいて予想されるものである。図5Bのグラフ502は別の入力を示す。
【0072】
入力:0,2,3,1,6.505569615,79.42243533,45,56.91429068,128.577184,37.55258624,4
ここで、曲線は極めて類似しているように見えるが、規模はここでは全く異なっている。N7は(515における)他のすべての属性を上回って急上昇するが、すべての属性の大きさは小さくなっている。これはモデリングされているレベルがより小さいからである。
【0073】
図5Aおよび図5Bに示されるように、これは単純な関係である。N7がこのシナリオにおける唯一の推進力であるので、関係を学習するべき他の属性は存在しない。しかしながら、すべてのポイント(2例が含まれている)において分かるように、N7は、勾配グラフ上の他の属性よりも上に位置しており、これは、N7が、承認時間値を変更するために変更を推奨するべく選抜されるであろう属性であることを意味している。したがって、承認タイプの質問に関しては、動作の推奨は全体的な勾配計算から決定され得る。
【0074】
承認ステータスインジケータ
実施形態は、見積もりが承認されるのに必要なルートの視覚的表示を、当該見積もりを見ているユーザに提供する。承認のための提出の準備ができているユーザは、ツリー内のどのノードが承認のためにアクティブになり得るかを確かめるために承認ツリーの目視検査を行なうことで利益を得るだろう。コア成分は、各ノードを示す階層の複雑さを視覚的に表示するものである。ツリーオブジェクトを細部にまで掘り下げることにより、そのノードをアクティブにするために生じた、承認者およびルールについての詳細を表示することができる。
【0075】
図6A図6Cは、一実施形態に従った見積もり承認プロセスの一部としてユーザに提示されるグラフィカルユーザインターフェイスを示す。図6Aに示されるように、アイコンインジケータは承認タブ601上でレンダリングされる。(承認が必要でない場合を含めて)すべての承認要件が満たされた場合、アイコンは緑のチェックマークとなる。1つ以上の承認が必要とされる場合、アイコンは、図6Aに示されるように警告インジケータとなる。
【0076】
承認タブ(図6Bおよび図6C)の内容内において、承認要件のステータスを示すように階層グラフ602または603がレンダリングされる。各々の承認ステップは階層グラフにおけるアイコンに対応している。ステータスのインジケータとしての色に加えて、ユーザは、全情報を備えたツールチップを閲覧するためにアイコンに焦点を合わせたり、クリックしたりマウスポインタを重ね合わせたりすることができる。一例として、灰色は、承認が必要である(理由が正しく評価された)とともにアクションがまだ返されていないことを示し得る。緑色は、承認が満たされた(承認されたかまたはいずれも不要であった)ことを示し得る。赤色は、承認ステップが却下されたことを示し得る。
【0077】
上記に開示されるように、承認可能性の表示は、機械によって学習された値である。承認サーバ/システムは、出力された承認獲得可能性に入力属性がどのように影響し得るかについての傾向を学習するために、履歴データを調べるだろう。見積もり全体に関する承認の可能性についての値を与えることに加えて、実施形態は、承認を得る可能性を高めるために特定の属性値を変更する方法と変更する方向とを示すだろう。
【0078】
同様に、承認時間の表示はまた、機械によって学習された値であるとともに、見積もりの承認を得るのにかかるであろう予期される時間をユーザに表示するだろう。
【0079】
開示されるように、承認可能性および時間インジケータのために、ニューラルネットワークモデルが生成される。このシナリオにおける入力は、承認段階に入っている見積もりに関するすべての適切な属性のリストになるだろう。さらに、実施形態においては、明瞭に判断しない属性は除外される。たとえば、一実施形態においては、以下の属性が見積もりから除去される。
【0080】
・ HTML属性。
・ RTE属性。
【0081】
・ 別個のID属性(見積もりID、文書IDなど)。
・ 一定の属性(すべての見積もりに対して同じである属性)。
【0082】
この除去が完了すると、残りの属性は、ニューラルネットワーク学習システムに供給される準備ができたサブセットになるだろう。実施形態においては、数値属性は0と1との間に正規化される必要があり、カテゴリ別属性はワンホットエンコードベクトルに変換される必要がある。ホットエンコードベクトルの一例として、3つのカテゴリを有するカテゴリ別属性について茶、黒またはブロンドであり得る髪色についての属性を想定する。これは多くの方法で数値により表わされてもよい。たとえば、茶は1に、黒は2に、ブロンドは3にマッピングすることができる。しかしながら、機械は、これら茶、黒およびブロンドがマッピングされた方法の性質により、ブロンド>黒>茶であることを学習するだろう。これは望ましくないことでない。というのも、上記の関係が存在しないからである。代わりに、実施形態は、ワンホットエンコードベクトルにこれらをマッピングして、各属性についての成分を設定することとなり、それは選択されていなければ0となり、選択されていれば1となるだろう。この場合、茶は[1,0,0]であり、黒は[0,1,0]であり、ブロンドは[0,0,1]である。
【0083】
承認可能性に関して、ワンホットエンコードベクトルをカテゴリ別入力のために用いることで、適切に、標準的なロジスティック回帰となる。ネットワークの深さおよび幅は、入力の複雑さに依存するだろう。一実施形態においては、最初のネットワーク層は少なくとも入力と同数のノードを必要とするが、すべての場合で許容可能な学習率を得るために2個以上の層は不要である。
【0084】
開示されているように、承認に対するマッピング時間はより複雑なネットワークとなる可能性がある。これは線形回帰の問題ではない。なぜなら、属性との関係が線形になり得ないからである。真の傾向線は、承認に新しいステップを追加することで属性がルール指定値を上回ると、これら属性が新しい承認ノードをトリガするのに応じて、よりステップ関数と同様に見えるようになるだろう。したがって、モデリングするために非線形ネットワークが用いられる。ネットワークの幅は、属性のリストと同程度に大きくなければならない。
【0085】
実施形態においては、承認の可能性を予測するために、失敗した承認の履歴が最初に格納される必要がある。失敗した見積もりおよび成功した見積もりの履歴から、実施形態は、どのような見積もりが承認される可能性が最も高いかを学習することができ、次いで、承認される可能性がどの程度であるかについての見積もりに対するプレディクタ(予測子)を提供することができる。ユーザはこの値を用いることで、承認の可能性をより高めるために見積もりに対してユーザが何を行うべきかについての見通し得ることができる。
【0086】
実施形態はまた、どのような属性を変更すれば承認獲得の可能性が最も高くなり得るかについて推奨を行なうことができる。
【0087】
承認可能性についての実施形態において、ニューラルネットワークは標準的なバイナリネットワークである。成功または失敗のいずれかに勝率見積もりをマッピングすることができるので、承認動作も承認または却下にマッピングすることができる。実施形態は、承認または却下がなされた時の見積もりについての属性のセットが入力されるロジスティック回帰を用いる。
【0088】
実施形態は、承認された見積もりおよび却下された見積もりの両方についての履歴データを受取ると、それらのデータが準備のプロセスを経てから、それらのデータを学習ネットワークに供給することができる。次に、この入力はロジスティック回帰に供給される。
【0089】
図7Aは、実施形態に従った、承認可能性の出力をユーザに提供するグラフィカルユーザインターフェイスの例を示す。出力は、棒ゲージ701または円形のゲージ702として提供されてもよく、JET UIを用いて実現されてもよい。
【0090】
実施形態はまた、ワークフローからの承認のための時間の長さを維持する。このデータは、承認の提示から承認完了に至るまで、承認された見積もりにかかった時間を測定するために用いることができる。このデータにより、実施形態は、現在の見積もりの属性に基づいて、見積もりが承認されるのにかかると予想される時間を学習する。承認時間は、承認の際にステップ毎に承認するのにかかる時間を示すように分解することができる。
【0091】
時間承認の予測も機械学習システムである。入力された変数は見積もりについての属性であり、出力は、承認にかかるであろう予期時間となるであろう単一の数値となるだろう。トレーニングのために、実施形態は、入力すべき承認された見積もりと、ワークフローテーブルにおける提示ステップから最終承認ステップに至るまでにかかる時間とについての変数を消費する。それまでの却下は無視することができる。見積もりの承認後に見積もりが変更されなかったと想定する。承認時間を示すデータだけが、承認システムの履歴記録から引出されて、予め処理されてから、実施形態における機械学習ネットワークに供給されなければならない。
【0092】
実施形態においては、承認時間を判断するためのデータモデルは線形回帰モデルである。実施形態は、すべての見積もり属性をモデルにマッピングする線形モデルを作成する。これらは上述の照会から承認時間にマッピングされることとなる。
【0093】
図7Bは、実施形態に従った、予測された承認時間の出力をユーザに提供するグラフィカルユーザインターフェイスの例を示す。出力は、棒ゲージ711または円形のゲージ722として提供されてもよく、JET UIを用いて実現されてもよい。
【0094】
図8は、一実施形態に従った、CPQのための高度な見積もり承認機能を提供する際の、図1の見積もり承認モジュール16の高レベル機能を示すフロー図である。一実施形態においては、図3のフロー図の機能は、メモリまたは他のコンピュータ読取可能媒体もしくは有形媒体に格納されたソフトウェアによって実現されて、プロセッサによって実行される。他の実施の形態において、この機能は、ハードウェアによって(たとえば、特定用途向け集積回路(application specific integrated circuit:ASIC)、プログラマブルゲートアレイ(programmable gate array:PGA)、フィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)等)またはハードウェアとソフトウェアとの任意の組合せによって、実行されてもよい。
【0095】
802において、コンフィギュレータが、製品構成またはサービス構成についての見積もりを生成する。見積もりはコンフィギュレータとのユーザのインタラクションを通じて生成され、少なくとも1つの必要な見積もり承認を含む見積もりワークフローを含む。見積もりはまた、当該見積もりを規定する複数の見積もり属性を含む。
【0096】
804において、見積もり属性が、少なくとも2つの異なるトレーニング済みニューラルネットワーク(すなわち、ニューラルネットワークモデル)に入力される。ニューラルネットワークのうちの1つは、過去の見積もりおよび属性を用いてトレーニングされており、見積もりが承認されるであろう可能性を予測するように構成されている。ニューラルネットワークのうちの1つは、過去の見積もりおよび属性を用いてトレーニングされており、見積もりが承認されるのに必要な時間を予測するように構成されている。
【0097】
806において、ニューラルネットワークは、見積もりが承認されるであろう可能性と見積もりが承認されるのに必要な時間とを各々、勾配降下により、生成する。
【0098】
808において、ニューラルネットワークの各々は、見積もりが承認されるであろう可能性または見積もりが承認されるのに必要な時間のいずれかを実質的に変更するために修正することができる属性を識別するために最大勾配値を有する属性を生成する。
【0099】
810において、808における識別された属性のうち1つ以上が変更されるとともに、見積もりが承認されるであろう可能性および/または見積もりが承認されるのに必要な時間が再び計算される。
【0100】
開示されたように、実施形態は、機械学習およびニューラルネットワークに基づいて、見積もりが承認されるであろう可能性と見積もりが承認されるのに必要な時間とについての予測をユーザに提供するために高度化された構成またはCPQシステムを含む。さらに、実施形態は、高い勾配を有する1つ以上の属性の変更が予測に対して大きな影響を及ぼすだろうことをユーザに通知するために、それら1つ以上の属性を提供する。
【0101】
いくつかの実施形態がこの明細書中に具体的に例示および/または記載されてきた。しかしながら、開示された実施形態の変更例および変形例が、本発明の精神および所期の範囲から逸脱することなく、添付の特許請求の範囲内で、上述の教示によって包含されていることが認識されるだろう。
図1
図2A
図2B
図3
図4A
図4B
図5A
図5B
図6A
図6B
図6C
図7A
図7B
図8