(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-31
(54)【発明の名称】人工知能/機械学習モデルを使用したインタラクションのシーケンス決定、プロセス抽出、およびロボット生成
(51)【国際特許分類】
G06N 20/00 20190101AFI20231024BHJP
G06N 3/08 20230101ALI20231024BHJP
【FI】
G06N20/00
G06N3/08
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023518734
(86)(22)【出願日】2021-10-05
(85)【翻訳文提出日】2023-05-16
(86)【国際出願番号】 US2021053489
(87)【国際公開番号】W WO2022081378
(87)【国際公開日】2022-04-21
(32)【優先日】2020-10-14
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】110003487
【氏名又は名称】弁理士法人東海特許事務所
(72)【発明者】
【氏名】シング,プラブディープ
(57)【要約】
人工知能(AI)/機械学習(ML)モデルの使用は、コンピューティングシステムとのユーザーインタラクションのシーケンスを決定し、共通のプロセスを抽出し、そしてロボティックプロセスオートメーション(RPA)ロボットを生成するために開示される。AI/MLモデルは、ユーザーインタラクションの一致するn-gramおよび/または有益な最終状態を認識するように訓練され得る。記録された実際のユーザーインタラクションが分析され得、一致するシーケンスがRPAワークフローにおける対応するアクティビティとして実装され得る。
【特許請求の範囲】
【請求項1】
コンピューティングシステムによって、人工知能(AI)/機械学習(ML)モデルに、複数のユーザーとそれぞれのユーザーコンピューティングシステムとの時間順インタラクションを含むデータを提供することと、
前記コンピューティングシステムによって、前記コンピューティングシステムからの記録データにおけるユーザーインタラクションのシーケンスのn-gramをスライディングウィンドウで比較して関連シーケンスを見つけることにより、ユーザーインタラクションの時間順シーケンスにおけるタスクに関係するユーザーインタラクションの前記関連シーケンスを認識するために、前記AI/MLモデルを訓練することであって、前記n-gramは、2つ以上のnの値を含むことと、
訓練された前記AI/MLモデルを展開することと、を含む、コンピュータ実装方法。
【請求項2】
展開された前記AI/MLモデルは、1または複数のロボティックプロセスオートメーション(RPA)ロボットによって呼び出されるように構成される、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記訓練することは、少なくともサイズnのシーケンスの大半が前記ユーザーによって実行されるタスクに関係するようなnの最低値を決定するように前記AI/MLモデルを訓練することをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記AI/MLモデルが、前記シーケンスがタスクに関係すると決定するために、関連するシーケンスの最小数が必要とされる、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記訓練することは、nの最高値を超えるn-gramが考慮されないようなnの前記最高値を決定するように前記AI/MLモデルを訓練することをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記コンピューティングシステムによって、前記関連シーケンスにおいてタスクが見つかるかどうかを判断する際に、1または複数の重要度メトリックを使用するように前記AI/MLモデルを訓練することをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記1または複数の重要度メトリックは、関連する一連のアクションが、少なくとも一定量の収益を生み出すか、少なくとも一定量の収益を節約するか、少なくとも一定量だけタスクの効率および/もしくは速度を上げるか、顧客獲得プロセスをスピードアップするか、必要となる通信回数を減らすか、またはそれらの組み合わせを含む、請求項6に記載のコンピュータ実装方法。
【請求項8】
前記AI/MLモデルまたはロボティックプロセスオートメーション(RPA)デザイナアプリケーションを訓練して、ユーザーインタラクションとRPAアクティビティを関連付けることをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項9】
前記AI/MLモデルによって、複数のユーザーとそれぞれのコンピューティングシステムとの記録された実際のユーザーインタラクションを分析し、前記記録された実際のユーザーインタラクションにおける一致するシーケンスのセットを決定することと、
決定された前記一致するシーケンスのセットのユーザーインタラクションを実装するアクティビティを含む1または複数のそれぞれのロボティックプロセスオートメーション(RPA)ワークフローを生成することと、をさらに含む、請求項8に記載のコンピュータ実装方法。
【請求項10】
生成された前記1または複数のRPAワークフローを実装するそれぞれのRPAロボットを生成することと、
生成された前記1または複数のRPAロボットを、1または複数のユーザーコンピューティングシステムに展開することと、をさらに含む、請求項9に記載のコンピュータ実装方法。
【請求項11】
生成された前記1または複数のRPAワークフローを1または複数のRPAデザイナアプリケーションにアクセス可能にすることをさらに含む、請求項9に記載のコンピュータ実装方法。
【請求項12】
前記一致するシーケンスのセットの決定は、
前記AI/MLモデルによって、ユーザーインタラクションのシーケンス間の関連性を含む確率グラフを生成することと、
前記AI/MLモデルによって、関連性のないユーザーインタラクションおよびシーケンスを除去するために前記確率グラフを枝刈りすることと、
前記AI/MLモデルによって、枝刈りされた前記確率グラフに基づいて、ユーザーインタラクションのシーケンスが前記一致するシーケンスのセットの一部として一致することを決定することと、を含む、請求項9に記載のコンピュータ実装方法。
【請求項13】
前記シーケンスが一致するかどうかの決定は、レーベンシュタイン距離、ファジーマッチング、またはそれらの組み合わせを用いて実行される、請求項12に記載のコンピュータ実装方法。
【請求項14】
一致するシーケンスのセットのうちの最も効率的なシーケンスを決定することと、
前記最も効率的なシーケンスを用いて、前記それぞれのRPAワークフローを生成することと、をさらに含む、請求項9に記載のコンピュータ実装方法。
【請求項15】
前記最も効率的なシーケンスの決定は、前記シーケンス内のユーザーインタラクションの数、前記シーケンス内のユーザーインタラクションに関連する時間、またはそれらの組み合わせに基づく、請求項14に記載のコンピュータ実装方法。
【請求項16】
コンピュータプログラムを格納した非一時的なコンピュータ読み取り可能な媒体であって、前記コンピュータプログラムは、少なくとも1つのプロセッサが、
人工知能(AI)/機械学習(ML)モデルによって、複数のユーザーとそれぞれのコンピューティングシステムとの記録された実際のユーザーインタラクションを分析し、前記記録された実際のユーザーインタラクションにおける一致するシーケンスのセットを決定し、
決定された前記一致するシーケンスのセットのユーザーインタラクションを実装するアクティビティを含む1または複数のそれぞれのロボティックプロセスオートメーション(RPA)ワークフローを生成するように構成される、非一時的なコンピュータ読み取り可能な媒体。
【請求項17】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
生成された前記1または複数のRPAワークフローを実装するそれぞれのRPAロボットを生成し、
生成された前記1または複数のRPAロボットを、1または複数のユーザーコンピューティングシステムに展開するように構成される、請求項16に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項18】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
生成された前記1または複数のRPAワークフローを1または複数のRPAデザイナアプリケーションにアクセス可能にするように構成される、請求項16に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項19】
前記一致するシーケンスのセットの決定は、
前記AI/MLモデルによって、ユーザーインタラクションのシーケンス間の関連性を含む確率グラフを生成することと、
前記AI/MLモデルによって、関連性のないユーザーインタラクションおよびシーケンスを除去するために前記確率グラフを枝刈りすることと、
前記AI/MLモデルによって、枝刈りされた前記確率グラフに基づいて、ユーザーインタラクションのシーケンスが前記一致するシーケンスのセットの一部として一致することを決定することと、を含む、請求項16に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項20】
前記シーケンスが一致するかどうかの決定は、レーベンシュタイン距離、ファジーマッチング、またはそれらの組み合わせを用いて実行される、請求項19に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項21】
前記コンピュータプログラムはさらに、前記少なくとも1つのプロセッサが、
一致するシーケンスのセットのうちの最も効率的なシーケンスを決定し、
前記最も効率的なシーケンスを用いて、前記それぞれのRPAワークフローを生成するように構成される、請求項16に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項22】
前記最も効率的なシーケンスの決定は、前記シーケンス内のユーザーインタラクションの数、前記シーケンス内のユーザーインタラクションに関連する時間、またはそれらの組み合わせに基づく、請求項21に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項23】
前記記録された実際のユーザーインタラクションにおける前記一致するシーケンスのセットの決定は、1または複数の重要度メトリックを使用することを含み、
前記1または複数の重要度メトリックは、関連する一連のアクションが、少なくとも一定量の収益を生み出すか、少なくとも一定量の収益を節約するか、少なくとも一定量だけタスクの効率および/もしくは速度を上げるか、顧客獲得プロセスをスピードアップするか、必要となる通信回数を減らすか、またはそれらの組み合わせを含む、請求項16に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項24】
それぞれのRPAワークフローの生成には、最小数の一致するシーケンスが必要である、請求項16に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項25】
コンピュータプログラム命令を格納するメモリと、
前記コンピュータプログラム命令を遂行するように構成された少なくとも1つのプロセッサとを含むシステムであって、前記コンピュータプログラム命令は、前記少なくとも1つのプロセッサが、
人工知能(AI)/機械学習(ML)モデルによって、複数のユーザーとそれぞれのコンピューティングシステムとの記録された実際のユーザーインタラクションを分析し、前記記録された実際のユーザーインタラクションにおける一致するシーケンスを決定し、
前記一致するシーケンスのうちの最も効率的なシーケンスを決定し、
決定された前記最も効率的な一致するシーケンスのユーザーインタラクションを実装するアクティビティを含む1または複数のそれぞれのロボティックプロセスオートメーション(RPA)ワークフローを生成するように構成される、システム。
【請求項26】
前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
生成された前記RPAワークフローを実装するRPAロボットを生成し、
生成された前記RPAロボットを、1または複数のコンピューティングシステムに展開するように構成される、請求項25に記載のシステム。
【請求項27】
前記コンピュータプログラム命令はさらに、前記少なくとも1つのプロセッサが、
生成された前記RPAワークフローを1または複数のRPAデザイナアプリケーションにアクセス可能にするように構成される、請求項25に記載のシステム。
【請求項28】
前記最も効率的なシーケンスの決定は、前記シーケンス内のユーザーインタラクションの数、前記シーケンス内のユーザーインタラクションに関連する時間、またはそれらの組み合わせに基づく、請求項25に記載のシステム。
【請求項29】
前記記録された実際のユーザーインタラクションにおける前記一致するシーケンスの決定は、1または複数の重要度メトリックを使用することを含み、
前記1または複数の重要度メトリックは、関連する一連のアクションが、少なくとも一定量の収益を生み出すか、少なくとも一定量の収益を節約するか、少なくとも一定量だけタスクの効率および/もしくは速度を上げるか、顧客獲得プロセスをスピードアップするか、必要となる通信回数を減らすか、またはそれらの組み合わせを含む、請求項25に記載のシステム。
【請求項30】
それぞれのRPAワークフローの生成には、最小数の一致するシーケンスが必要である、請求項25に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願への相互参照)
これは、2020年10月14日に出願された米国特許出願第17/070,168号の利益およびその優先権を主張する国際出願です。先に提出された本出願の主題は、その全体を参照することにより、本明細書に組み込まれる。
【0002】
本発明は概して、ユーザーインターフェース(UI)オートメーションに関し、より具体的には、人工知能(AI)/機械学習(ML)モデルを使用して、コンピューティングシステムとユーザーとのインタラクションのシーケンスを決定し、共通のプロセスを抽出し、そしてロボティックプロセスオートメーション(RPA)ロボットを生成することに関する。
【背景技術】
【0003】
UIオートメーションを実行するために、RPA技術は、ドライバおよび/またはアプリケーションレベルのインタラクションを利用して、ボタンをクリックし、テキストを入力し、UIとの他のインタラクションを実行し得る。しかし、キー押下、マウスクリック、および他のカーネルフック情報は、いくつかの実施形態において、または新しいUIオートメーションプラットフォームを構築する際に、システムレベルで利用できない場合がある。このようなUIオートメーションプラットフォームを実装するためには、広範なドライバレベルおよびアプリケーションレベルの機能性が一般的に必要である。さらに、ユーザーがどのように彼らのコンピューティングシステムとインタラクションしているかわからない場合がある。したがって、UIオートメーションを提供するための代替技術は有益であり得る。
【発明の概要】
【0004】
本発明の特定の実施形態は、現在のUIオートメーション技術によってまだ十分に特定されていない、評価されていない、または解決されていない本分野における問題およびニーズのソリューションを提供し得る。例えば、本発明のいくつかの実施形態は、AI/MLモデルを使用して、コンピューティングシステムとユーザーとのインタラクションシーケンスを決定し、共通のプロセスを抽出し、そしてRPAロボットを生成することに関する。
【0005】
実施形態では、コンピュータ実装方法は、コンピューティングシステムによって、複数のユーザーとそれぞれのユーザーコンピューティングシステムとの時間順インタラクションを含むデータをAI/MLモデルに提供することを含む。コンピュータ実装方法はまた、コンピューティングシステムによって、コンピューティングシステムからの記録データにおけるユーザーインタラクションのシーケンスのn-gramをスライディングウィンドウで比較して関連シーケンスを見つけることにより、ユーザーインタラクションの時間順シーケンスにおけるタスクに関係するユーザーインタラクションの関連シーケンスを認識するために、AI/MLモデルを訓練することを含む。n-gramは、nの2つ以上の値を含む。コンピュータ実装方法は、訓練されたAI/MLモデルを展開することをさらに含む。
【0006】
別の実施形態では、非一時的なコンピュータ読み取り可能な媒体は、コンピュータプログラムを格納する。コンピュータプログラムは、少なくとも1つのプロセッサが、AI/MLモデルによって、複数のユーザーとそれぞれのコンピューティングシステムとの記録された実際のユーザーインタラクションを分析し、記録された実際のユーザーインタラクションにおける一致するシーケンスのセットを決定するように構成される。コンピュータプログラムはまた、少なくとも1つのプロセッサが、決定された一致するシーケンスのセットのユーザーインタラクションを実装するアクティビティを含む1または複数のそれぞれのRPAワークフローを生成するように構成される。
【0007】
さらに別の実施形態では、システムは、コンピュータプログラム命令を格納するメモリと、コンピュータプログラム命令を遂行するように構成された少なくとも1つのプロセッサとを含む。コンピュータプログラム命令は、少なくとも1つのプロセッサが、AI/MLモデルによって、複数のユーザーとそれぞれのコンピューティングシステムとの記録された実際のユーザーインタラクションを分析し、記録された実際のユーザーインタラクションにおける一致するシーケンスを決定するように構成される。コンピュータプログラム命令はまた、少なくとも1つのプロセッサが、一致するシーケンスのうちの最も効率的なシーケンスを決定するように構成される。コンピュータプログラム命令はさらに、少なくとも1つのプロセッサが、決定された最も効率的な一致するシーケンスのユーザーインタラクションを実装するアクティビティを含む1または複数のそれぞれのRPAワークフローを生成するように構成される。
【図面の簡単な説明】
【0008】
本発明の特定の実施形態の利点が容易に理解されるように、上記で簡単に説明した本発明のより特定の説明は、添付の図面に図示されている特定の実施形態を参照して描写される。これらの図面は、本発明の典型的な実施形態のみを描いており、したがって、その範囲を限定するものとは考えられないことが理解されるべきであるが、本発明は、以下の添付の図面を使用することにより、さらなる特定および詳細をもって描写され、説明されるであろう。
【0009】
【
図1】本発明の実施形態による、ロボティックプロセスオートメーション(RPA)システムを示すアーキテクチャ図である。
【0010】
【
図2】本発明の実施形態による、展開したRPAシステムを示すアーキテクチャ図である。
【0011】
【
図3】本発明の実施形態による、デザイナ、アクティビティ、およびドライバの間の関係を示すアーキテクチャ図である。
【0012】
【
図4】本発明の実施形態による、RPAシステムを示すアーキテクチャ図である。
【0013】
【
図5】本発明の実施形態による、AI/MLモデルを使用してコンピューティングシステムとのユーザーインタラクションのシーケンスを決定し、共通プロセスを抽出し、そしてRPAロボットを生成するように構成されたコンピューティングシステムを説明するアーキテクチャ図である。
【0014】
【
図6】本発明の実施形態による、AI/MLモデルを使用してコンピューティングシステムとのユーザーインタラクションのシーケンスを決定し、共通プロセスを抽出し、そしてRPAロボットを生成するように構成されたシステムを説明するアーキテクチャ図である。
【0015】
【
図7】本発明の実施形態による、AI/MLモデルを使用してコンピューティングシステムとのユーザーインタラクションのシーケンスを決定し、共通プロセスを抽出し、そしてRPAロボットを生成するプロセスを説明するフローチャートである。
【0016】
【
図8】本発明の実施形態による、AI/MLモデルを使用して望ましい最終状態に基づくプロセス抽出を実施し、そしてRPAロボットを生成するためのプロセスを説明するフローチャートである。
【0017】
【
図9】本発明の実施形態による、ユーザーインタラクションのシーケンスを表すn-gramの比較を説明する図である。
【発明を実施するための形態】
【0018】
別段の記載がない限り、類似の参照文字は、添付の図面全体で一貫して対応する特徴を示す。
【0019】
(実施形態の詳細な説明)
いくつかの実施形態は、AI/MLモデルを使用して、コンピューティングシステムとユーザーとのインタラクションシーケンスを決定し、共通のプロセスを抽出し、そしてRPAロボットを生成することに関する。ユーザーインタラクションは、コンピュータビジョン(CV)を用いてアプリケーション、画面、およびUI要素を認識し、そしてアプリケーション、画面、およびUI要素とのユーザーインタラクションを認識するように訓練されたAI/MLモデルによって決定され得る。このAI/MLモデルは、その後にシーケンス検索を行う同じAI/MLモデルであってもよいし、異なるAI/MLモデルであってもよい。個々のユーザーインタラクションは、ユーザーがボタンをクリックする、フィールドにテキストを入力する、メニューとインタラクションする、ウィンドウを閉じる、アプリケーションの異なる画面に移動する、などを含むが、これらに限定されない。ユーザーインタラクションのシーケンスの例は、例えば、アプリケーションを開き、複数のテキストフィールドに情報を入力し、そして送信ボタンをクリックすることを含み得る。
【0020】
ユーザーインタラクションは、複数のコンピューティングシステムから収集されたデータから抽出され得る。例えば、収集されたデータは、ビデオ単体および/またはブラウザ履歴、ヒートマップ、ファイル情報、現在実行中のアプリケーションおよび位置、システムレベルおよび/またはアプリケーションレベルの情報など、コンピューティングシステムから収集された他のデータを含み得る。次に、抽出されたユーザーインタラクションは、電子メールを書いて送信する、フォームに情報を入力してそれを送信する、ウェブサイトから取得した情報に基づいてスプレッドシートを修正する、など、より大きなアクティビティまたはタスクに関連するインタラクションのシーケンスに結合され得る。
【0021】
いくつかの実施形態では、複数のサイズのn-gramを使用して、データ内の一致するシーケンスを検索し得る。nの最低値が小さすぎると、一致するシーケンスが多すぎて意味のあるシーケンスを特定することができない場合がある。逆に、nの最低値が大きすぎると、nより小さい意味のある一致するシーケンスが見逃される場合がある。訓練中、人間のレビューアは、ある開始サイズn(例えば、2、3、7など)の特定されたシーケンスをレビューすることができる。このサイズがあまりにも多くの役に立たないシーケンスを生成する場合、一致するシーケンスが有用になる傾向があるまで、最小のシーケンスサイズがn+1、次にn+2、次にn+3などにインクリメントされ得る。最小の有用なnが決定された後(例えば、少なくとも10%の有用なシーケンス、少なくとも30%、少なくとも50%、少なくとも90%などを生成する最小のn)、そのn-gramサイズ以下のシーケンスは、無視されるか、または決定/考慮されないことがある。いくつかの実施形態では、AI/MLモデルは、一致するシーケンスの最大数に基づいて、nの最小値を自動的に選択し得る。特定の実施形態では、あるn-gramサイズのシーケンスが考慮されるために、ある数の一致が必要とされ得る。例えば、大規模な組織では、複数のまたは多くのユーザーがこのプロセスを実行していることを示す傾向があるため、シーケンスを自動化するためには、数十、数百、または数千の一致が存在することが必要な場合がある。
【0022】
リカレントニューラルネットワーク(RNN)は、nの値の有用な範囲を決定することに特に長けている場合がある。RNNは、いくつかの実施形態では、有用なシーケンスについて様々なサイズのn-gramを掃引し、そして潜在的にすべてのシーケンスサイズの掃引を含む試行錯誤プロセスを介して最適なウィンドウ化しきい値(すなわち、n値の有用な範囲)を決定することができる。そして、RNNが最も最適な範囲を決定することで、人間の入力が不要になる可能性がある。このようなシステムは、例えば、ユーザーがクラウドコンピューティングサービスから離れる可能性が高いことを示す傾向のあるユーザーインタラクションの時間窓(time-windowed)のシーケンスを探すことによって、ユーザーがクラウドコンピューティングサービスから離れる可能性があるかどうかを自動的に判断するために使用され得る。その後、顧客を維持するための措置を講じることができる(例えば、人間の担当者が顧客に連絡する、より低いサービス価格を提供するなど)。
【0023】
いくつかの実施形態では、nの上限値も決定され得る。例えば、nの特定の値以上で特定の数よりも少ないシーケンスが見つかった場合、またはシーケンスがまったく見つからない場合、nのサイズはその値未満に制限され得る。また、nが大きすぎると、シーケンスは与えられたタスク超に対応し、複数のユーザーがたまたま行ったものよりも無関係な他のアクションを含み得る。この決定は、人間のレビューアが行うか、または自動的に行われ得る。
【0024】
特定の実施形態では、重要度メトリック(複数可)は、上述したシーケンス制限技術の一部または全部に加えて、またはその代わりに使用され得る。例えば、アクションのシーケンスが少なくとも一定量の収益を生み出すか、少なくとも一定量の収益を節約するか、タスクの効率/速度を少なくとも一定量高めるか、顧客獲得プロセスをスピードアップするか、必要な通信回数を減らすか、それらの組み合わせか、などが考慮され得る。このような重要度メトリック(複数可)は、最初に自動化されるべき、RPAから最も恩恵を受け得るシーケンスおよびプロセスの特定を支援し得る。
【0025】
シーケンスを見つけるには、スライディングウィンドウを使ったn-gramを適用し得る。例えば、
図8を参照。例えば、nの現在の値が5である場合、ユーザーによる最初の5つのインタラクションは、他のユーザーからの5つのインタラクションのすべての時間順シーケンスと比較され得、次にインタラクション2-6、3-7、4-8などが、そのサイズのユーザーのインタラクションのすべての時間順セットが、考慮中の他のユーザーのものと比較されるまで比較され得る。あるいは、考慮されているnのサイズのすべてのユーザーインタラクションが特定され、各ユーザーのインタラクションの時間順シーケンスから検索され、データベースに格納され得る。各nについて、スライディングウィンドウを使用することなく、一致するシーケンスおよび一致する数が特定され得る。また、これらの一致するシーケンスに重要度メトリック(複数可)が適用され得る。
【0026】
いくつかの実施形態では、AI/MLモデルまたはAI/MLモデルを呼び出すプロセスは、特定された一致するシーケンス内のインタラクションをそれぞれのRPAアクティビティに関連付けることができる。例えば、ユーザーが「送信」ボタンをクリックするインタラクションは、画面上のボタンを特定し、ボタンの領域内に入るようにマウスを移動させ、ボタンをクリックする1または複数のRPAアクティビティと関連付けられ得る。したがって、AI/MLモデル、またはAI/MLモデルを使用してシーケンスまたはその出力を特定する他のアプリケーションは、RPA開発者によってレビューされ、必要に応じて修正され、そしてRPAロボットとして実装され得る「スケルトン」RPAワークフローを生成し得る。タスクの連鎖を利用してRPAワークフローのドラフトを作成し、そしてRPAデザイナアプリケーションにエクスポートされ得る。あるいは、RPA開発者は、シーケンスを提供され、シーケンスを実装するワークフローを構築するように指示され得る。時間の経過とともにAI/MLモデルの精度が上がり、人の手を介さずに、シーケンスに対するワークフローが作成され、ワークフローを実装したRPAロボットが生成され、展開され得る。
【0027】
いくつかのインタラクションのシーケンスは、少なくともわずかに異なっていてもよいが、同じタスクを達成し得る。このようなシーケンスが機能的に同じであることを特定するために、いくつかの実施形態では、緩い関連を含む確率グラフを生成する。各可能または観察されたインタラクション、またはそのサブセットは、グラフのノードとして含まれ得る。AI/MLモデルは、ユーザーがあるノードから別のノードに「ホップ」する確率(すなわち、ユーザーがノード間のエッジをたどる確率)を計算し得る。例えば、スプレッドシートが開いている場合、ユーザーの次のインタラクションが列の合計を計算する確率は高いかもしれないが、次のインタラクションが電子メールアプリケーションを開く確率は比較的低いかもしれない。エッジは、ノード間の確率を提供することができ、また、その間の一連のセグメントとして、ノードのシーケンスの確率を提供し得る。このようなシーケンスおよびそのエッジは、あるノードから出発してシーケンスを経由して別のノードに到着する集合的な確率を提供し得る。
【0028】
次いで、確率グラフは、エッジの確率を決定した後、関連するシーケンスを見つけるために「枝刈り」され得る。例えば、50%、25%、10%未満などのエッジ確率は、エッジおよびシーケンスの数を減らすために削除され得る。レーベンシュタイン距離、ファジーマッチング(例えば、一致するパラメータが20%変動以内など、あるファジーネスしきい値内で類似している場合)、および/または他の任意の適切な技術を使用して、本発明の範囲から逸脱せずに関連シーケンスを決定することができる。例えば、2つ、3つ、またはそれより多いシーケンスが、少なくとも一定の確率で特定のエンドノードにつながり得、ユーザーが同じタスクを達成するために、これらの少なくとも多少異なるシーケンスを使用する可能性をもたらす。
【0029】
いくつかの実施形態では、複数の関連シーケンスの間で最も効率的なパスが望まれ得る。これは、インタラクション/ステップの数、各ステップに関連する時間(例えば、ユーザーインタラクションに関する時間順データのタイムスタンプから得られる)などに基づいて決定され得る。その後、RPAワークフローは、そのタスクを達成する最も効率的なシーケンスに基づいて生成され得る。
【0030】
いくつかの実施形態では、より複雑なインタラクションが認識され、予期され得る。例えば、局所的なコントロール情報を使って、視覚的にわかりにくいインタラクションを決定することができる。ユーザーが2つのアプリケーション(例えば、iTunes(登録商標)からSpotify(登録商標)まで)間でプレイリストを同期させたい例を考えてみる。ユーザーは通常、iTunes(登録商標)から曲名をコピーし、その曲名をSpotify(登録商標)の検索ボックスに入れ、曲を検索し、プレイリストがコピーされるまで次の曲のためにこのプロセスを繰り返し得る。いくつかの実施形態のAI/MLモデルは、曲をコピーする細かいタスクがプレイリスト内のすべての曲について繰り返されることを認識し、彼または彼女がプレイリスト内のすべての曲をコピーしたいかどうかに関してユーザーを促し得る。
【0031】
いくつかの実施形態では、AI/MLモデルは、観察例に基づいてフィールドを自動的に完成させることを学習し得る。例えば、ユーザーがデータソースから様々な情報を必要とするアカウントをそのデータソースから作成する場合、AI/MLモデルは、ユーザーがいくつかのフィールドに情報を入力したことを観察し、すべてのフィールドを自動入力するスクリプトを生成し、次いで彼または彼女がフィールドを自動入力することを望むかどうかユーザーに尋ねることができる。AI/MLモデルは、深層学習ニューラルネットワーク(DLNN)訓練済み、浅層学習ニューラルネットワーク(SLNN)訓練済み、RNN訓練済み、敵対的生成ネットワーク(GAN)訓練済み、それらの組み合わせ、決定論的、などであり得る。いくつかのアプリケーションのための決定論的なルールベースのシステムの利点は、通常、訓練に必要な例数が少ないことである。
【0032】
いくつかの実施形態では、AI/MLは、望ましい結果を認識し、望ましい結果につながるプロセス(複数可)を決定するように訓練され得る。例えば、AI/MLモデルは、アカウントが作成されたこと、新規ユーザーが追加されたこと、収益が発生したこと、問題が解決されたことなどを認識するように訓練され得る。その後、AI/MLモデルは、望ましい結果につながるシーケンスを再現するために、ユーザーインタラクションに関するデータまたはユーザーインタラクション自体において見返し得る。そして、AI/MLモデルまたは別のプロセスによって、インタラクションをアクティビティに関連付け、シーケンス/プロセスを実装するRPAワークフローを生成し得る。これは「例によるプログラミング(programming by example)」と呼ばれるもので、AI/MLモデルに例を提供することで、次いで望ましい最終状態を再現できるプログラムを生成することができる。
【0033】
現代のネットワークは、基本的に大きな確率グラフである。望ましい結果が決定されると、AI/MLモデルはプリオールを見返して、望ましい結果を達成するために何が最も重要であったかを評価し得る。収益が結果として増加したと決定された場合、結果につながった信号がサブ信号に分解され、どのサブ信号(複数可)が収益の増加につながったかが決定され得る。
【0034】
いくつかの実施形態では、ニューラルネットワークにバックプロパゲーションが使用され得る。現代の深層学習の多くは、最適化理論に数学的根拠を持つバックプロパゲーションアルゴリズムをベースにしている。最近の深層学習の修正および改良の多くは、人間の脳のアーキテクチャによって情報がどのように処理されるかについて知られていることに、その構造の多くを帰さねばならない。つまり、深層学習では一般的に、視覚野の初期層に似た層状のフィードフォワードネットワークが利用される。各層の非線形性は、通常、ニューロンのインテグレートアンドファイア(integrate-and-fire)モデルの平均場近似に見られるようなしきい値非線形性である。畳み込み型ディープネットワークは、視覚野にも見られる近似的な並進対称性を実装する。ニューラルネットワークの誤差をバックプロパゲートするために、以下を含む様々な技術が使用され得るが、これらに限定されるものではない:(1)エラーをバックプロパゲートするための第2のネットワークを提供すること、(2)フォワードプロパゲートと同じ層を通るバックプロパゲートを正当化するために、スパイク入力に対する基底部および先端部の樹状突起反応の違いを提供すること、(3)グローバル強化学習を使用すること、(4)再帰ネットワークにおける双方向再循環を使用すること、(5)対比ヘブリング学習(Contrastive Hebbian learning)を使用すること。
【0035】
ニューラルネットワークは一般的にパルスゲート方式で、「ニューロン」が発火するかどうかは、パルスの強さおよびニューロンに割り当てられた数学的関数に基づく。情報は、「スパイク」という形で入ってきて、出ていく。スパイクはイベントであり、「シナプス」は下流のニューロンがそのイベントにどれだけ反応するかを支配する。したがって、あるニューロンからのスパイクは、ニューラルネットワークの特定の接続およびロジックによって、他へ伝播し得る。
【0036】
これらの接続およびシナプスの性質は、挙動を制御する。あるニューロンは、スパイクイベントが発生した入ってくるシナプスの重みを取り、それらを合計し、そしてスパイクを発生させるかどうかを決定し得る。スパイクは、いくつかの実施形態では強度が変化しないことがあり、したがって、1ビットが送信されることに多少類似している。典型的な実装は、通信がタイムスタンプとなるバスで接続されたニューロンを含み得る。つまり、スパイクはある時間にあるニューロンからイベントとして放出され、その後、下流のニューロンで受信される。
【0037】
情報が下流のニューロンに届くとき、値がしきい値未満なら何も起こらないが、次いでしきい値超なら関数が線形に反応するしきい値付きアクティビティ関数(つまり、正規化線形単位(ReLU))が使われ得る。ReLU関数は、実際のニューロンがほぼ同様のアクティビティ関数を持つことがあるため、深層学習でよく使用される。線形変換により、情報の引き算、足し算などができる。教師あり学習では、ネットワーク出力で既知の出力を計算し、既知の目標出力からコスト関数を用いて誤差を計算し、それはバックプロパゲーションの誤差とすることができる。誤差は出力で計算され得、この誤差は、誤差を最小化するネットワークの重みの修正に変換され得る。
【0038】
いくつかの実施形態の標準的な学習アルゴリズムは、ヘッブ学習であり、これは、シナプス前ニューロンの発火率と受信ニューロン(すなわち、シナプス後ニューロン)の発火率との積に基づいて個々のシナプスを更新することによって重みを修正する。ヘッブ学習(すなわちシナプスの修正)が行われるためには、シナプス前とシナプス後の発火率が比較的短い時間内にゼロでないことが必要である。そうでなければ、シナプスは修正されない。いくつかの実施形態では、この時間のウィンドウの外では、シナプス重量はその値に比例して減少し得る。
【0039】
パルスゲーティングを介して、発火率は、ヘッブ学習が行われる時間枠内でシナプス前およびシナプス後ニューロンに伝播され得る。このように、パルスゲート学習、ひいてはシナプス修正を用いると、発火率は学習のオンセットとオフセットを制御でき、バックプロパゲーションアルゴリズムを実装するためのシナプス重量の更新に用いられ得る。
【0040】
【0041】
【0042】
バックプロパゲーションを用いて、シナプス重量の更新のための誤差のバックプロパゲーションを行うことができる。これにより、望ましい結果につながる傾向がある「ニューロン」を強化することができる。前述した確率グラフのプロセスと多少似ているが、望ましい結果をもたらすと思われるノードは、望ましい結果が再現できるまで繰り返し強化され得る。ノード間の接続およびそれらの確率的な重みにより、その挙動はほぼアナログ的なものになり得る。
【0043】
上記により、いくつかの実施形態では、決定されたユーザーインタラクションのシーケンスは、様々なメトリックスに基づいて優先順位付けされてもよい。例えば、より一般的である、自動化によってユーザーに大きな時間節約を提供する、などのシーケンスは、RPAワークフロー生成のために優先され得る。シーケンスを実装するRPAロボットは、共通のシーケンスに関連するタスクを達成するために、ユーザーコンピューティングシステムに生成および展開され得る。
【0044】
典型的には、相当数のユーザーインタラクションのシーケンス(例えば、100)を自動化するには、プログラミング言語における相当量のコードが必要となるだろう。しかし、いくつかの実施形態は、はるかに少ないまたは全くコーディングせずにユーザーインタラクションのシーケンスを実装するRPAロボットを生成する。実際、タスクマイニングは、専らAIを介して、またはいくつかの人間の補足を伴うAIを介して実行され得る。
【0045】
いくつかの実施形態では、シーケンスは全く認識される必要がない場合がある。例えば、インタラクションおよび反復の間の関連付けが追跡され得る。ニューラルネットワークは、メモリのオーバーヘッドなしに連想データ(associative data)を記憶し得る。従来、リバースインデックスが使用されるのに対し、ユーザーがアクションを実行すると、リバースインデックスを使用して別のアクションが実行される。しかし、このリバースインデックスは、現実のシステムにおいて、リソースの観点から非常に大きくなり得る。一方、ニューラルネットワークは、このメモリのオーバーヘッド無しに、関連グラフのためのニューラルネットワークのノードを強化することによって、同じまたは類似の結果を達成するように訓練され得る。
【0046】
いくつかの実施形態では、AIを使用して全プロセスをエンドツーエンドで実行し得る。例えば、AI/MLモデル(複数可)は、ユーザーが使用しているアプリケーション、そのグラフィカル要素、およびユーザーインタラクションを決定し、ユーザーインタラクションの共通シーケンスを決定し、そして設計時開発(design time development)無しで実行時にインタラクションのシーケンスを実装するRPAロボットを自動的に構築および展開するために使用され得る。その後、自動開発されたロボットが動作するシナリオまたは異常が発生したシナリオに関する訓練データをユーザーから取得し得、この訓練データを使用してRPAロボットを再訓練しかつそれらを展開し得る。訓練データは、画像において誤認識が発生した領域または要素を見落とした領域、ラベルの修正、入力の修正などを含み得る。このプロセスを繰り返し、ロボットを反復的に改良することができる。
【0047】
特定の実施形態は、ロボティックプロセスオートメーション(RPA)に採用されてもよい。
図1は、本発明の実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者がワークフローを設計して実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合のためのソリューションを提供するとともに、サードパーティアプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化する。デザイナ110は、ビジネスプロセスのグラフィック表現である自動化プロジェクトの開発を容易にし得る。簡単に言えば、デザイナ110は、ワークフローおよびロボットの開発および展開を容易にする。
【0048】
自動化プロジェクトは、本明細書で「アクティビティ」と定義されるワークフローで開発されたステップのカスタムセット間の遂行順序および関係の制御を開発者に与えることにより、ルールベースのプロセスの自動化を可能にする。デザイナ110の実施形態の商業的な一例は、UiPath Studio(商標)である。各アクティビティは、ボタンをクリックする、ファイルを読む、ログパネルに書き込むなどのアクションを含み得る。いくつかの実施形態では、ワークフローは入れ子になっているか、または埋め込まれ得る。
【0049】
ワークフローのタイプには、シーケンス、フローチャート、FSM、および/またはグローバル例外ハンドラなどを含み得るが、これらに限定されない。シーケンスは、ワークフローを乱雑にすることなく、あるアクティビティから別のアクティビティへのフローを可能にする、線形プロセスに特に適し得る。フローチャートは、特により複雑なビジネスロジックに適し得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適し得る。FSMは、条件(すなわち、遷移)またはアクティビティによりトリガされる有限の数の状態をそれらの遂行中に使用し得る。グローバル例外ハンドラは、遂行エラーに遭遇したときのワークフローの挙動を決定したり、プロセスをデバッグしたりするのに特に適し得る。
【0050】
ワークフローがデザイナ110内で開発されると、ビジネスプロセスの遂行は、コンダクタ120によって調整され、デザイナ110内で開発されたワークフローを遂行する1または複数のロボット130を調整する。コンダクタ120の実施形態の商業的な一例は、UiPath Orchestrator(商標)である。コンダクタ120は、環境におけるリソースの生成、監視、および展開の管理を容易にする。コンダクタ120は、サードパーティのソリューションおよびアプリケーションとの統合ポイント、または統合ポイントの1つとして動作し得る。
【0051】
コンダクタ120は、全てのロボット130を管理し得、ロボット130を集中ポイントから接続して遂行する。管理され得るロボット130のタイプには、アテンディッドロボット132、アンアテンディッドロボット134、開発ロボット(アンアテンディッドロボット134と同様であるが、開発およびテストの目的で使用される)、および非生産ロボット(アテンディッドロボット132と同様であるが、開発およびテストの目的で使用される)が含まれるが、これらに限定されない。アテンディッドロボット132は、ユーザーイベントによってトリガされ、同じコンピューティングシステム上で人と並んで動作する。アテンディッドロボット132は、集中プロセスデプロイメントおよびロギング媒体のためのコンダクタ120とともに使用され得る。アテンディッドロボット132は、人のユーザーが様々なタスクを達成するのを支援してもよく、ユーザーイベントによってトリガされてもよい。いくつかの実施形態では、プロセスは、このタイプのロボット上でコンダクタ120から開始することができず、および/またはそれらはロックされた画面の下で実行することができない。特定の実施形態では、アテンディッドロボット132は、ロボットトレイからまたはコマンドプロンプトからのみ起動され得る。アテンディッドロボット132は、いくつかの実施形態では、人の監督下で動作することが好ましい。
【0052】
アンアテンディッドロボット134は、仮想環境で無人で動作し、多くのプロセスを自動化し得る。アンアテンディッドロボット134は、リモート遂行、監視、スケジューリング、および作業キューのサポートの提供を担当し得る。全てのロボットタイプのためのデバッグは、いくつかの実施形態では、デザイナ110で実行され得る。アテンディッドロボットおよびアンアテンディッドロボットの両方は、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などにより生成されたもの)、およびコンピューティングシステムアプリケーション(例えば、デスクトップおよびラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むが、これらに限定されない様々なシステムおよびアプリケーションを自動化し得る。
【0053】
コンダクタ120は、プロビジョニング、展開、バージョニング、構成、キューイング、監視、ロギング、および/または相互接続性の提供を含むがこれらに限定されない様々な能力を有し得る。プロビジョニングは、ロボット130とコンダクタ120(例えば、ウェブアプリケーション)との間の接続を作成し、維持することを含み得る。展開は、遂行のために割り当てられたロボット130へのパッケージバージョンの正しい配信を保証することを含み得る。バージョニングは、いくつかの実施形態では、いくつかのプロセスまたは構成の固有のインスタンスの管理を含んでもよい。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの特定データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標))へのログの保存およびインデックス作成を含み得る。コンダクタ120は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として操作することにより、相互接続性を提供し得る。
【0054】
ロボット130は、デザイナ110で構築されたワークフローを実行する遂行エージェントである。ロボット(複数可)130のいくつかの実施形態の1つの商業的な例は、UiPath Robots(商標)である。いくつかの実施形態では、ロボット130は、デフォルトで、Microsoft Windows(登録商標)Service Control Manager(SCM)管理サービスをインストールする。その結果、このようなロボット130は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を有し得る。
【0055】
いくつかの実施形態では、ロボット130は、ユーザーモードで設置され得る。このようなロボット130については、所定のロボット130が設置されているユーザーと同じ権利を有することを意味する。この特色はまた、各マシンを最大限に全活用することを保証する高密度(HD)ロボットにも利用可能であり得る。いくつかの実施形態では、いずれかのタイプのロボット130は、HD環境で構成され得る。
【0056】
いくつかの実施形態におけるロボット130は、複数のコンポーネントに分割され、それぞれが特定の自動化タスクに特化されている。いくつかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、およびコマンドラインを含むが、これらに限定されない。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と遂行ホスト(すなわち、ロボット130が遂行されるコンピューティングシステム)との間のプロキシとして動作する。これらのサービスは、ロボット130の資格情報を任されて管理する。コンソールアプリケーションは、ローカルシステム下のSCMにより起動される。
【0057】
いくつかの実施形態におけるユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と遂行ホストとの間のプロキシとして動作する。ユーザーモードロボットサービスは、ロボット130の資格情報を任されて管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
【0058】
エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを遂行し得る(つまり、ワークフローを遂行し得る。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を認識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントであり得る。エージェントは、ジョブの開始または停止、設定の変更を依頼し得る。コマンドラインはサービスのクライアントである。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0059】
上で説明したように、ロボット130のコンポーネントが分割されていることは、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントが遂行していることをより容易に実行し、特定し、および追跡するのに役立つ。この方法では、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な挙動を構成し得る。エグゼキュータは常に、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、いずれかのDPIで遂行し得る。また、いくつかの実施形態では、デザイナ110からのプロジェクトは、ブラウザのズームレベルに依存しないようにし得る。DPIを認識していないまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態ではDPIを無効にし得る。
【0060】
図2は、本発明の実施形態による、展開したRPAシステム200を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム200は、
図1のRPAシステム100であってもよく、またはその一部であってもよい。クライアント側、サーバー側、またはその両方が、本発明の範囲から逸脱することなく、いずれかの所望の数のコンピューティングシステムを含むことができることに留意すべきである。クライアント側では、ロボットアプリケーション210は、エグゼキュータ212、エージェント214、およびデザイナ216を含む。しかし、いくつかの実施形態では、デザイナ216は、コンピューティングシステム210上で実行されていなくてもよい。エグゼキュータ212はプロセスを実行している。
図2に示すように、複数のビジネスプロジェクトが同時に実行され得る。エージェント214(例えば、Windows(登録商標)サービス)は、本実施形態では、全てのエグゼキュータ212のための単一の接続ポイントである。この実施形態における全てのメッセージは、コンダクタ230に記録され、それは、データベースサーバー240、インデクササーバー250、またはその両方を介して、それらをさらに処理する。
図1に関して上述したように、エグゼキュータ212は、ロボットコンポーネントであり得る。
【0061】
いくつかの実施形態では、ロボットは、マシン名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理し得る。同時に実行される複数のインタラクティブセッションをサポートするコンピューティングシステム(Windows(登録商標)Server 2012など)では、複数のロボットが同時に実行され得、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで実行され得る。これは、上記のHDロボットと呼ばれる。
【0062】
エージェント214はまた、ロボットの状態を送信し(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)、遂行されるパッケージの要求されるバージョンをダウンロードすることにも責任を負う。エージェント214とコンダクタ230との間の通信は、いくつかの実施形態では、常にエージェント214によって開始される。通知シナリオでは、エージェント214は、後にコンダクタ230によってロボットにコマンド(例えば、開始、停止など)を送信するために使用されるWebSocketチャネルを開いてもよい。
【0063】
サーバー側には、プレゼンテーション層(ウェブアプリケーション232、オープンデータプロトコル(OData)代表状態転送(REST)アプリケーションプログラミングインターフェース(API)エンドポイント234、通知および監視236)、サービス層(API実装/ビジネスロジック238)、永続層(データベースサーバー240、インデクササーバー250)が含まれる。コンダクタ230は、ウェブアプリケーション232、OData REST APIエンドポイント234、通知および監視236、ならびにAPI実装/ビジネスロジック238を含む。いくつかの実施形態では、ユーザーがコンダクタ230のインターフェース(例えば、ブラウザ220を介して)で実行するほとんどのアクションは、様々なAPIを呼び出すことによって実行される。このような動作は、本発明の範囲を逸脱することなく、ロボット上でのジョブの起動、キュー内のデータの追加/削除、無人で実行するジョブのスケジューリングなどを含み得るが、これらに限定されない。ウェブアプリケーション232は、サーバープラットフォームのビジュアル層である。この実施形態では、ウェブアプリケーション232は、ハイパーテキストマークアップ言語(HTML)およびジャバスクリプト(JS)を使用する。しかし、本発明の範囲を逸脱することなく、いずれかの所望のマークアップ言語、スクリプト言語、または他のいずれかのフォーマットを使用し得る。ユーザーは、コンダクタ230を制御するための様々な動作を実行するために、本実施形態ではブラウザ220を介してウェブアプリケーション232からのウェブページとインタラクションする。例えば、ユーザーは、ロボットグループを作成し、ロボットへのパッケージの割り当てを行い、ロボット毎および/またはプロセス毎のログを解析し、ロボットを起動しおよび停止などし得る。
【0064】
ウェブアプリケーション232に加えて、コンダクタ230は、OData REST APIエンドポイント234を公開するサービス層も含む。しかし、本発明の範囲を逸脱することなく、他のエンドポイントが含まれていてもよい。REST APIは、ウェブアプリケーション232とエージェント214の両方により消費される。エージェント214は、本実施形態では、クライアントコンピュータ上の1または複数のロボットのスーパーバイザである。
【0065】
本実施形態のREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成エンドポイントは、いくつかの実施形態では、アプリケーションのユーザー、権限、ロボット、アセット、リリース、および環境を定義し、構成するために使用されてもよい。ロギングRESTエンドポイントは、例えば、エラー、ロボットによって送信された明示的なメッセージ、およびその他の環境固有の情報など、様々な情報をログに記録するために使用され得る。デプロイメントRESTエンドポイントは、コンダクタ230においてジョブ開始コマンドが使用された場合に遂行されるべきパッケージのバージョンを問い合わせるためにロボットにより使用されてもよい。キューイングRESTエンドポイントは、キューへのデータの追加、キューからのトランザクションの取得、トランザクションのステータスの設定など、キューおよびキューアイテムの管理を担ってもよい。
【0066】
RESTエンドポイントの監視は、ウェブアプリケーション232およびエージェント214を監視してもよい。通知および監視API236は、エージェント214の登録、エージェント214への構成設定の配信、ならびにサーバーおよびエージェント214からの通知の送受信に使用されるRESTエンドポイントであってもよい。通知および監視API236は、いくつかの実施形態では、WebSocket通信を使用してもよい。
【0067】
永続層は、本実施形態では、一対のサーバー-データベースサーバー240(例えば、SQLサーバー)およびインデクササーバー250を含む。本実施形態におけるデータベースサーバー240は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態では、ウェブアプリケーション232を介して管理される。データベースサーバー240は、キューおよびキューアイテムを管理してもよい。いくつかの実施形態では、データベースサーバー240は、ロボットにより記録されたメッセージを(インデクササーバー250に加えて、またはそれに代えて)格納してもよい。
【0068】
いくつかの実施形態では任意であるが、インデクササーバー250は、ロボットにより記録された情報を保存し、インデックスを作成する。特定の実施形態では、インデクササーバー250は、構成設定を介して無効化されてもよい。いくつかの実施形態では、インデクササーバー250は、オープンソースプロジェクトの全文検索エンジンであるElasticSearch(登録商標)を使用する。ロボットにより記録されたメッセージ(例えば、ログメッセージまたはライン書き込みのようなアクティビティを使用して)は、ロギングRESTエンドポイント(複数可)を介してインデクササーバー250に送信されてもよく、そこで将来の利用のためにそれらはインデックス化される。
【0069】
図3は、本発明の実施形態による、デザイナ310、アクティビティ320、330、ドライバ340、およびAI/MLモデル350の間の関係300を示すアーキテクチャ図である。以上のように、開発者は、デザイナ310を用いて、ロボットによって遂行されるワークフローを開発する。ワークフローは、ユーザー定義のアクティビティ320およびUIオートメーションアクティビティ330を含んでもよい。ユーザー定義アクティビティ320および/またはUIオートメーションアクティビティ330は、いくつかの実施形態では、ロボットが動作しているコンピューティングシステムに対してローカルに、および/またはそれに対してリモートに位置され得、1または複数のAI/MLモデル350を呼び出し得る。いくつかの実施形態では、画像中の非テキストの視覚的コンポーネントを特定することができ、これは、本明細書ではコンピュータビジョン(CV)と呼ばれる。このようなコンポーネントに関連するいくつかのCVアクティビティは、クリック、タイプ、テキストを取得、ホバー、要素の有無を検出、スコープの更新、ハイライトなどを含み得るが、これらに限定されない。いくつかの実施形態では、クリックは、例えば、CV、光学的文字認識(OCR)、ファジーテキストマッチング、およびマルチアンカーを使用して要素を特定し、それをクリックする。タイプは、上記および要素内のタイプを用いて要素を特定してもよい。テキストの取得は、特定のテキストの場所を特定し、OCRを使用してそれをスキャンし得る。ホバーは、要素を特定し、その上にホバーし得る。要素の有無の検出は、上述した技法を用いて、画面上に要素の有無を検出するかどうかを確認し得る。いくつかの実施形態では、デザイナ310に実装され得る数百または数千もののアクティビティが存在してもよい。しかし、本発明の範囲を逸脱することなく、いずれかの数および/またはアクティビティのタイプを利用することができる。
【0070】
UIオートメーションアクティビティ330は、低レベルのコード(例えば、CVアクティビティ)で記述され、画面とのインタラクションを促進する特別な低レベルのアクティビティのサブセットである。UIオートメーションアクティビティ330は、ロボットが所望のソフトウェアとインタラクションすることを可能にするドライバ340および/またはAI/MLモデル350を介して、これらのインタラクションを促進する。例えば、ドライバ340は、OSドライバ342、ブラウザドライバ344、VMドライバ346、エンタープライズアプリケーションドライバ348などを含み得る。コンピューティングシステムとのインタラクションの実行を決定するために、1または複数のAI/MLモデル350はUIオートメーションアクティビティ330によって使用され得る。いくつかの実施形態では、AI/MLモデル350は、ドライバ340を増強するか、またはそれらを完全に置き換え得る。実際、特定の実施形態では、ドライバ340は含まれない。
【0071】
ドライバ340は、フックを探したり、キーを監視したりするなど、低レベルでOSとインタラクションしてもよい。それらは、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を促進してもよい。例えば、「クリック」アクティビティは、ドライバ340を介して、これらの異なるアプリケーションにおいて同じ役割を果たす。
【0072】
図4は、本発明の実施形態による、RPAシステム400を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム400は、
図1および/または
図2のRPAシステム100および/または200であってもよいし、それを含んでもよい。RPAシステム400は、ロボットを実行する複数のクライアントコンピューティングシステム410を含む。コンピューティングシステム410は、その上で実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム420と通信することができる。コンダクタコンピューティングシステム420は、順番に、データベースサーバー430および任意のインデクササーバー440と通信することができる。
【0073】
図1および
図3に関して、これらの実施形態ではウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、任意の適切なクライアント/サーバーソフトウェアを使用することができることに留意すべきである。例えば、コンダクタは、クライアントコンピューティングシステム上で、非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバーサイドアプリケーションを実行してもよい。
【0074】
図5は、本発明の実施形態による、AI/MLモデルを使用してコンピューティングシステムとのユーザーインタラクションのシーケンスを決定し、共通プロセスを抽出し、そしてRPAロボットを生成するように構成されたコンピューティングシステム500を説明するアーキテクチャ図である。いくつかの実施形態では、コンピューティングシステム500は、本明細書に描かれたおよび/または記載された1または複数のコンピューティングシステムであってもよい。コンピューティングシステム500は、情報を通信するためのバス505または他の通信機構と、情報を処理するためのバス505に結合されたプロセッサ(複数可)510とを含む。プロセッサ(複数可)510は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらのいずれかの組み合わせを含む、いずれかのタイプの一般的または特定用途向けプロセッサであり得る。プロセッサ(複数可)510はまた、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。いくつかの実施形態では、複数並列処理が使用されてもよい。特定の実施形態では、少なくとも1つのプロセッサ(複数可)510は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。いくつかの実施形態では、ニューロモーフィック回路は、フォンノイマンコンピューティングアーキテクチャの典型的なコンポーネントを必要としない場合がある。
【0075】
コンピューティングシステム500は、プロセッサ(複数可)510によって遂行される情報および命令を格納するためのメモリ515をさらに含む。メモリ515は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一時的なコンピュータ読み取り可能な媒体、あるいはそれらのいずれかの組み合わせで構成され得る。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ(複数可)510によりアクセス可能ないずれかの利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体または両方などを含み得る。また、媒体は、取り外し可能なもの、取り外し不可能なもの、または両方であってもよい。
【0076】
さらに、コンピューティングシステム500は、無線および/または有線接続を介して通信ネットワークへのアクセスを提供するために、トランシーバなどの通信デバイス520を含む。いくつかの実施形態では、通信デバイス520は、周波数分割多元接続(FDMA)、シングルキャリアFDMA(SC-FDMA)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、直交周波数分割多重方式(OFDM)、直交周波数分割多元接続(OFDMA)、移動体用グローバルシステム(GSM:Global System for Mobile)通信、汎用パケット無線サービス(GPRS:General Packet Radio Service)、ユニバーサル移動体通信システム(UMTS:Universal Mobile Telecommunications System)、cdma2000、広帯域CDMA(W-CDMA:Wideband CDMA)、高速ダウンリンクパケットアクセス(HSDPA:High-Speed Downlink Packet Access)、高速アップリンクパケットアクセス(HSUPA:High-Speed Uplink Packet Access)、高速パケットアクセス(HSPA:High-Speed Packet Access)、ロングタームエボリューション(LTE:Long Term Evolution)、LTEアドバンスト(LTE-A:LTE Advanced)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB:Ultra-WideBand)、802.16x、802.15、Home Node-B(HnB)、Bluetooth、無線IDタグ(RFID:Radio Frequency Identification)、IrDA(Infrared Data Association)、近距離無線通信(NFC:Near-Field Communications)、第5世代(5G)、New Radio(NR)、それらのいずれかの組み合わせ、および/または本発明の範囲から逸脱することなく、いずれかの他の現在存在するまたは将来実装される通信標準および/またはプロトコルを使用するように構成され得る。いくつかの実施形態では、通信デバイス520は、本発明の範囲から逸脱することなく、単数のアンテナ、アレイ状のアンテナ、フェーズドアンテナ、スイッチドアンテナ、ビームフォーミングアンテナ、ビームステアリングアンテナ、それらの組み合わせ、および/またはいずれかの他のアンテナ構成である1または複数のアンテナを含み得る。
【0077】
プロセッサ(複数可)510は、バス505を介して、プラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、IPS(In-Plane Switching)ディスプレイ、またはユーザーに情報を表示するためのいずれかの他の適切なディスプレイなどのディスプレイ525にさらに結合されている。ディスプレイ525は、抵抗方式、静電容量方式、表面弾性波(SAW)静電容量方式、赤外線方式、光学イメージング方式、分散信号方式、音響パルス認識方式、フラストレート全内部反射方式などを用いて、タッチ(ハプティック)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成されていてもよい。本発明の範囲を逸脱することなく、いずれかの好適な表示デバイスおよびハプティックI/Oを使用することができる。
【0078】
コンピュータマウス、タッチパッドなどのようなキーボード530およびカーソル制御デバイス535は、ユーザーがコンピューティングシステム500とインターフェースすることを可能にするために、バス505にさらに結合されている。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しない場合があり、ユーザーは、ディスプレイ525および/またはタッチパッド(図示せず)のみを介してデバイスとインタラクションすることができる。任意の入力デバイスの種類および組み合わせは、設計の選択の問題として使用され得る。特定の実施形態では、物理的な入力デバイスおよび/またはディスプレイは存在しない。例えば、ユーザーは、コンピューティングシステム500と通信している別のコンピューティングシステムを介してリモートでそれとインタラクションしてもよいし、コンピューティングシステム500は自律的に動作してもよい。
【0079】
メモリ515は、プロセッサ(複数可)510により遂行されたときに機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム500のためのオペレーティングシステム540を含む。モジュールはさらに、本明細書に記載されたプロセスの全部もしくは一部またはその派生物を実行するように構成されたAI/MLモデルベースモジュール545を含む。コンピューティングシステム500は、付加的な機能を含む1または複数の付加的な機能モジュール550を含み得る。
【0080】
当業者であれば、「システム」は、本発明の範囲から逸脱することなく、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、または他のいずれかの適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上述した機能を「システム」により実行されるものとして提示することは、何ら本発明の範囲を限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図するものである。実際、本明細書に開示された方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技法と整合性のあるローカライズされた形態および分配された形態で実装されてもよい。コンピューティングシステムは、ローカルエリアネットワーク(LAN)、モバイル通信ネットワーク、衛星通信ネットワーク、インターネット、パブリッククラウドまたはプライベートクラウド、ハイブリッドクラウド、サーバーファーム、それらのいずれかの組み合わせなどの一部またはその他の方法でアクセス可能であり得る。本発明の範囲から逸脱することなく、任意の局所または分散アーキテクチャが使用され得る。
【0081】
本明細書で説明するシステム特色のいくつかは、実装の独立性をより強調するために、モジュールとして提示されていることに留意すべきである。例えば、モジュールは、カスタムの非常に大規模な集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他の個別部品のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックス処理ユニットなどのプログラマブルハードウェアデバイスに実装され得る。
【0082】
モジュールはまた、様々なタイプのプロセッサにより遂行されるためのソフトウェアに少なくとも部分的に実装され得る。例えば、遂行可能コードの特定された単位は、例えば、オブジェクト、プロシージャ、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。それにもかかわらず、遂行可能な特定されたモジュールは、物理的に一緒に配置されている必要はなく、論理的に結合されたときにモジュールを含み、モジュールのために述べられた目的を達成するために、異なる場所に格納された別々の命令を含んでいてもよい。さらに、モジュールは、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープのような非一時的なコンピュータ読み取り可能な媒体、および/または本発明の範囲から逸脱することなくデータを格納するために使用される他のいずれかの非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。
【0083】
実際、遂行可能コードのモジュールは、単一の命令であってもよいし、多数の命令であってもよいし、さらには、複数の異なるコードセグメント、異なるプログラム間、および複数のメモリデバイス間に分散されていてもよい。同様に、動作データは、モジュール内で特定され、ここで示されてもよく、いずれかの適切なタイプのデータ構造体内でいずれかの適切な形態で具現化され、組織化され得る。動作データは、単一のデータセットとして収集されてもよいし、または異なる記憶デバイスにわたり異なる場所に分散されていてもよく、少なくとも部分的には、単にシステムまたはネットワーク上の電子信号として存在していてもよい。
【0084】
図6は、本発明の実施形態による、AI/MLモデルを使用してコンピューティングシステムとのユーザーインタラクションのシーケンスを決定し、共通プロセスを抽出し、そしてRPAロボットを生成するように構成されたシステム600を説明するアーキテクチャ図である。システム600は、デスクトップコンピュータ602、タブレット604、スマートフォン606などのユーザーコンピューティングシステムを含む。しかしながら、スマートウォッチ、ラップトップコンピュータなどを含むが、これらに限定されない、任意の所望のコンピューティングシステムが本発明の範囲から逸脱せずに使用され得る。また、
図6には3つのユーザーコンピューティングシステムが示されているが、本発明の範囲から逸脱することなく、任意の適切な数のコンピューティングシステムが使用され得る。例えば、いくつかの実施形態では、数十、数百、数千、または数百万のコンピューティングシステムが使用されてもよい。
【0085】
各コンピューティングシステム602、604、606は、その上で実行する、ユーザーの画面またはその一部のスクリーンショットおよび/またはビデオを記録するレコーダープロセス610を有する。例えば、JavaScript(登録商標)のスニペットをレコーダープロセス610としてウェブブラウザに埋め込み、ユーザーがどのコンポーネントとインタラクションしたか、ユーザーが何のテキストを入力したか、ユーザーがどの位置/コンポーネントをマウスでクリックしたか、ユーザーがどのコンテンツをスクロールして通過したか、ユーザーがコンテンツの特定の部分でどのくらい停止したか、などを追跡することができる。コンテンツをスクロールして通過するということは、そのコンテンツがユーザーが求めているものと多少は近かったかもしれないが、それを正確に持っていなかったことを示し得る。クリックが成功を示し得る。
【0086】
レコーダープロセス610は、JavaScript(登録商標)である必要はなく、本発明の範囲から逸脱することなく、任意の適切なタイプのアプリケーションおよび任意の所望のプログラミング言語であってもよい。これにより、レコーダープロセス610の「一般化」が可能になり、複数のアプリケーションまたはユーザーがインタラクションしている任意のアプリケーションとのユーザーインタラクションを追跡できるようになる。ラベル付けされた訓練データをゼロから使用することは、AI/MLモデルがさまざまなコントロールを認識できるようになり得るが、どのコントロールがどのように一般的に使用されているかに関する情報が含まれていないため、難しい場合がある。レコーダープロセス610を使用して、「ヒートマップ」を生成し、AI/MLモデルの訓練プロセスをブートストラップするのに役立て得る。ヒートマップは、ユーザーがアプリケーションを使用した頻度、ユーザーがアプリケーションのコンポーネントとインタラクションした頻度、コンポーネントの位置、アプリケーション/コンポーネントのコンテンツなど、さまざまな情報を含み得る。いくつかの実施形態では、ヒートマップは、タイプされたおよび/またはペーストされたテキストの検出、キャレット追跡、ならびにコンピューティングシステム602、604、606のアクティブ要素検出などの画面分析から導かれ得る。いくつかの実施形態は、コンピューティングシステム602、604、606に関連付けられた画面上のどこでユーザーが、目に見える文字が表示されないホットキーまたはその他のキーを含む可能性があるテキストをタイプまたはペーストしたかを認識し、1もしくは複数の文字が表示された位置、カーソルが点滅していた位置、またはその両方の現在の解像度(例えば、座標における)に基づいて、画面上の物理的な位置を提供する。タイプまたはペーストしたアクティビティおよび/またはキャレットの物理的な位置により、ユーザーがタイプまたはフォーカスしているフィールド(複数可)と、プロセス発見または他のアプリケーション用のアプリケーションが何であるかを決定し得る。
【0087】
上記により、いくつかの実施形態では、レコーダープロセス610は、ウェブブラウザ履歴、ヒートマップ、キー押下、マウスクリック、ユーザーがインタラクションしている画面上のマウスクリックおよび/またはグラフィカル要素の位置、ユーザーが異なる時間に画面を見ていた位置、スクリーンショット/ビデオフレームに関連するタイムスタンプなど、AI/MLモデル(複数可)を訓練するのをさらに支援するための追加のデータを記録し得る。これは、画面変化を引き起こさない可能性のあるキー押下および/または他のユーザーアクションを提供するために有益であり得る。例えば、いくつかのアプリケーションは、ユーザーがファイルを保存するためにCTRL+Sを押したときに、視覚的な変化を提供しない場合がある。しかしながら、特定の実施形態では、AI/MLモデル(複数可)は、取り込まれた画面画像にのみ基づいて訓練され得る。レコーダープロセス610は、RPAデザイナアプリケーションを介して生成されたロボット、オペレーティングシステムの一部、パーソナルコンピュータ(PC)またはスマートフォンのためのダウンロード可能なアプリケーション、本発明の範囲から逸脱しない、あるいは他のいずれかのソフトウェアおよび/またはハードウェアであり得る。実際、いくつかの実施形態では、1または複数のレコーダープロセス610のロジックは、物理的なハードウェアを介して部分的にまたは完全に実装される。
【0088】
いくつかの実施形態は、現在のスクリーンショットを以前のスクリーンショットと連続的または定期的に比較して変化を特定するフィードバックループプロセスで実装される。画面上で視覚的な変化が発生した位置を特定し、変化が発生した位置に対してOCRを実行し得る。次に、OCRの結果をキーボードキューのコンテンツと比較して(例えば、キーフックによって決定される)、一致が存在するかどうかを決定し得る。変化が発生した位置は、現在のスクリーンショットからのピクセルのボックスを、前のスクリーンショットの同じ位置にあるピクセルのボックスと比較することによって決定され得る。
【0089】
レコーダープロセス610で記録される画像および/または他のデータ(例えば、ウェブブラウザの履歴、ヒートマップ、キー押下、マウスクリックなど、ユーザーがインタラクションしている画面上のマウスクリックおよび/またはグラフィカル要素の位置、時間帯でユーザーが画面上で見ていた位置、スクリーンショット/ビデオフレーム、音声入力、ジェスチャー、感情(ユーザーが満足しているか、イライラしているかなど)、バイオメトリクス(指紋、網膜スキャン、ユーザーの脈拍など)に関連付けられたタイムスタンプ、ユーザーアクティビティが無い期間に関連する情報(例えば、「デッドマンスイッチ」)、ハプティックディスプレイまたはタッチパッドからのハプティック情報、マルチタッチ入力によるヒートマップなど)は、ネットワーク620(例えば、ローカルエリアネットワーク(LAN)、モバイル通信ネットワーク、衛星通信ネットワーク、インターネット、それらの任意の組み合わせなど)を介してサーバー630に送られる。いくつかの実施形態では、サーバー630は、パブリッククラウドアーキテクチャ、プライベートクラウドアーキテクチャ、ハイブリッドクラウドアーキテクチャなどの一部であってもよい。特定の実施形態では、サーバー630は、単一のコンピューティングシステム630上で複数のソフトウェアベースのサーバーをホストしてもよい。いくつかの実施形態では、サーバー630は、コンダクタアプリケーションを実行してもよく、およびレコーダープロセス610からのデータは、ハートビートメッセージの一部として定期的に送信されてもよい。特定の実施形態では、データは、所定量のデータが収集されると、所定期間が経過した後、またはその両方で、レコーダープロセス610からサーバー630に送信され得る。サーバー630は、レコーダープロセス610からの受信データをデータベース640に格納する。
【0090】
サーバー630は、AI/MLモデル632を含む。いくつかの実施形態では、AI/MLモデル632は、統計的モデリング(例えば、隠れマルコフモデル(HMM))などのさまざまな機能を実行する複数の層を有し得、深層学習技術(例えば、長短期記憶(LSTM)深層学習、以前の隠れ状態のエンコードなど)を利用してユーザーインタラクションのシーケンスを特定し得る。AI/MLモデル632は、レコーダープロセス610からのユーザーインタラクションの抽出、抽出されたユーザーインタラクションのシーケンスの決定、RPAロボットの生成など、様々なタスクを実行し得る。いくつかの実施形態では、ユーザーインタラクションのシーケンスを決定するためのAI/MLモデルは、ユーザーインタラクションが発生した時間、画面上の位置などと共に、別のAI/MLモデルによって認識されたインタラクションを提供され得る。
【0091】
いくつかの実施形態では、タスクのシーケンスを認識するためのAI/MLモデル632は、別のAI/MLモデルによって既に認識されたユーザーインタラクションを提供され得る。しかし、特定の実施形態では、AI/MLモデル632は、入力としてユーザーインタラクションからのデータを使用して訓練段階を経て、AI/MLモデル632が十分に正確であるが、訓練データに対して過剰適合しないまでAI/MLモデル632が訓練される。許容できる精度は、アプリケーションに依存し得る。特定エラーは、人間のレビューアによって強調され(例えば、誤特定された要素の周りにボックスを描き、正しい特定を含めることによって)、この追加のラベル付きデータを使用してAI/MLモデル632を再訓練し得る。十分に訓練されると、AI/MLモデル632は、画面内にどのようなアプリケーション(複数可)およびグラフィカル要素(複数可)が存在すると認識されるかなどの予測を出力として提供することができる。
【0092】
しかしながら、このレベルの訓練は、何が存在するかに関する情報を提供するが、2つ以上の連続する画面を比較して、タイプされた文字があるものから別のものに現れたこと、ボタンが押されたこと、メニュー選択が発生したことなどを決定するなど、ユーザーインタラクションを決定するためにさらなる情報が必要となり得る。したがって、AI/MLモデル632が画面上のグラフィカル要素およびアプリケーションを認識できた後、いくつかの実施形態では、AI/MLモデル632は、UI内のアプリケーションとのラベル付きユーザーインタラクションを認識するようにさらに訓練されて、ユーザーによって取られるそのようなインクリメンタル(incremental)なアクションを理解する。特定エラーは人間のレビューアによって(例えば、誤認された要素の周りにボックスを描画し、正しい特定を含めることによって)再び強調され得、UIとの詳細なユーザーインタラクションを理解するために展開されるほどその精度が十分に高くなるまで、AI/MLモデル632が訓練され得る。
【0093】
いくつかの実施形態では、ユーザーのインタラクションを認識するように訓練されると、訓練されたAI/MLモデル632を使用して、ビデオ、事前に特定されたユーザーインタラクション、および/またはレコーダープロセス610からの他の情報を分析し得る。この記録された情報は、複数/多数のユーザーが実行する傾向があるインタラクションを含み得る。これらのインタラクションは次いで、その後の自動化のための共通のシーケンスのために分析され得る。
【0094】
AI/MLモデル632(ユーザーインタラクションを特定する同じAI/MLモデルであるか、またはシーケンス認識に利用される別のAI/MLモデルであるかにかかわらず)は、いくつかの実施形態において、タスクとしてインタラクションのシーケンスを認識するように訓練される必要がある。これは、複数のサイズのn-gramを適用して、データ内の一致するシーケンスを検索することによって達成され得る。AI/MLモデル632は、(例えば、頻度、重要度メトリック(複数可)などに基づいて)意味のあるシーケンスを特定する傾向があるnのサイズの範囲を使用するように訓練され得る。いくつかの実施形態では、n-gramは、スライディングウィンドウにわたってユーザーインタラクションのシーケンスに適用され、一致するシーケンスを特定する。
【0095】
AI/MLモデル632はまた、シーケンス内のユーザーインタラクションをRPAアクティビティに関連付けるように訓練され得る。これは、人間のレビューアが、所与のユーザーインタラクションに対するRPAアクティビティを最初に特定することによって達成され得る。AI/MLモデル632は、やや新しいインタラクションに対するアクティビティを予測するために、時間の経過とともに学習し得る。例えば、メニューアイテムに対する以前のアクティビティが、画面上の「送信」ボタン画像を見つけ、ボタンの領域上に位置するようにマウスを動かし、そしてボタンをクリックすることを含む場合、AI/MLモデル632は、「OK」ボタン、「次」ボタンなどに対して同様のプロセスを実行することを学習し得る。
【0096】
AI/MLモデル632がインタラクションをそれぞれのアクティビティに関連付けることができた後、AI/MLモデル632または別のプロセスが、ユーザーインタラクションのシーケンスのタスクを達成するアクティビティのシーケンスを有するRPAワークフローを生成するように訓練され得る。生成されたRPAワークフローは、その後、RPAロボットを生成および展開するために使用されてもよく、またはワークフローは、RPA開発者がRPAワークフローを表示および修正することを可能にするコンピューティングシステム650のアプリケーション652(例えば、RPAデザイナアプリケーション)を介してなど、レビューのためにRPA開発者に送信されてもよい。いくつかの実施形態では、AI/MLモデル632は、最初にRPA開発者にワークフローを送信し、RPA開発者が修正せずに一定数のRPAワークフローを受け入れた後、人間のインタラクション無しにワークフローロジックを実装するRPAロボットを自動的に生成および展開することに切り替えてもよい。
【0097】
いくつかの実施形態では、AI/MLモデル632は、同じタスクを達成するが、少なくともわずかに異なるユーザーインタラクションのシーケンスを認識するように訓練され得る。AI/MLモデル632は、ユーザーインタラクション間の緩やかな関連付けを含む確率グラフを生成し得る。次に、確率グラフは、どのシーケンスが関連しているかを決定するために「枝刈りされる」ことがある。例えば、インタラクションが除去されてもよく、AI/MLモデル632は、同じタスクが達成されるかどうかをチェックし得る。本発明の範囲から逸脱することなく、関連するシーケンスを決定するために、レーベンシュタイン距離、ファジーマッチング、および/または他の任意の適切な技術を使用することができる。
【0098】
いくつかの実施形態では、AI/MLモデル632は、複数の関連するシーケンスの間で最も効率的なパスを決定するように訓練され得る。これは、インタラクション/ステップの数、各ステップに関連する時間(例えば、ユーザーインタラクションに関する時間順データのタイムスタンプから得られる)などに基づいて決定され得る。その後、RPAワークフローは、そのタスクを達成する最も効率的なシーケンスに基づいて生成され得る。
【0099】
いくつかの実施形態では、AI/MLモデル632は、ユーザーインタラクションのシーケンスを最初に分析することなく、望ましい結果を認識するように訓練され得る。例えば、AI/MLモデル632は、アカウントが作成されたこと、新規ユーザーが追加されたこと、収益が発生したこと、問題が解決されたことなどを認識するように訓練され得る。その後、AI/MLモデル632は、望ましい結果につながるシーケンスを再現するために、ユーザーインタラクションに関するデータまたはユーザーインタラクション自体において見返し得る。そして、AI/ML632モデルまたは別のプロセスによって、インタラクションをアクティビティに関連付け、シーケンスを実装するRPAワークフローを生成し得る。
【0100】
現代のネットワークは、基本的に大きな確率グラフである。いくつかの実施形態では、望ましい結果が決定されると、AI/MLモデル632はプリオールを見返して、望ましい結果を達成するために何が最も重要であったかを評価し得る。収益が結果として増加したと決定された場合、結果につながった信号がサブ信号に分解され、どのサブ信号(複数可)が収益の増加につながったかが決定され得る。
【0101】
いくつかの実施形態では、シーケンスは全く認識される必要がない場合がある。例えば、AI/MLモデル632は、インタラクションおよびその繰り返しの間の関連性を認識し、追跡するように訓練され得る。AI/MLモデル632がニューラルネットワークである場合、例えば、関連グラフに基づいて、AI/MLモデル632は、望ましい結果につながるインタラクションを選択する傾向があるように、ニューラルネットワークのノードを強化してもよい。
【0102】
上記により、いくつかの実施形態では、AIを使用して全プロセスをエンドツーエンドで実行し得る。例えば、AI/MLモデル(複数可)632は、ユーザーが使用しているアプリケーション、そのグラフィカル要素、およびユーザーインタラクションを決定し、ユーザーインタラクションの共通シーケンスを決定し、そして設計時開発(design time development)無しで実行時にインタラクションのシーケンスを実装するRPAロボットを自動的に構築および展開するために使用され得る。その後、自動開発されたロボットが作業を行うまたは異常が発生するシナリオに関して、コンピューティングシステム602、604、606のユーザーから訓練データを得ることができ、そしてこの訓練データをサーバー630に提供し、AI/MLモデル632を再訓練するために使用することができる。訓練データは、画像において誤認識が発生した領域または要素を見落とした領域、ラベルの修正、入力の修正などを含み得る。このプロセスを繰り返し、RPAロボットを反復的に改良することができる。
【0103】
AI層
【0104】
いくつかの実施形態では、複数のAI層が使用され得る。各AI層は、データ上で実行されるアルゴリズム(またはモデル)であり、AIモデル自体は、訓練データで訓練された人工「ニューロン」の深層学習ニューラルネットワーク(DLNN)であり得る。層は、直列、並列、またはそれらの組み合わせで実行され得る。
【0105】
Al層は、限定されないが、シーケンス抽出層、クラスタリング検出層、視覚成分検出層、テキスト認識層(例えば、OCR)、音声-テキスト翻訳層、またはそれらのいずれかの組み合わせを含み得る。しかしながら、本発明の範囲を逸脱することなく、いずれかの所望の数およびタイプ(複数可)の層を使用し得る。複数の層を使用することで、システムが画面で何が起こっているのかのグローバルな画像を展開し得る。例えば、あるAI層はOCRを実行し得、別のAI層はボタンを検出し得、別のAI層はシーケンスを比較し得るなど。パターンは、1つのAI層によって個別に決定されてもよいし、複数のAI層によってまとめて決定されてもよい。
【0106】
図7は、本発明の実施形態による、AI/MLモデルを使用してコンピューティングシステムとのユーザーインタラクションのシーケンスを決定し、共通プロセスを抽出し、そしてRPAロボットを生成するプロセス700を説明するフローチャートである。プロセスは、710において、複数のユーザーとそれぞれのユーザーコンピューティングシステムとの時間順インタラクションを含むデータをAI/MLモデルに提供することから始まる。その後、AI/MLモデルは、720でデータ内の関連シーケンスを認識するように訓練される。いくつかの実施形態では、訓練は、コンピューティングシステムからの記録データにおけるユーザーインタラクションのシーケンスのn-gramをスライディングウィンドウで比較して関連シーケンスを見つけることにより、ユーザーインタラクションの時間順シーケンスにおけるタスクに関係するユーザーインタラクションの関連シーケンスを認識するために、AI/MLモデルを訓練することを含む。n-gramは、2つ以上のnの値を含み得る。
【0107】
いくつかの実施形態では、訓練は、関連シーケンスにおいてタスクが見つかるかどうかを判断する際に、1または複数の重要度メトリックを使用するようにAI/MLモデルを訓練することを含む。特定の実施形態では、1または複数の重要度メトリックは、関連する一連のアクションが、少なくとも一定量の収益を生み出すか、少なくとも一定量の収益を節約するか、少なくとも一定量だけタスクの効率および/もしくは速度を上げるか、顧客獲得プロセスをスピードアップするか、必要となる通信回数を減らすか、またはそれらの組み合わせを含む。いくつかの実施形態では、訓練は、少なくともサイズnのシーケンスの大半がユーザーによって実行されるタスクに関係するようなnの最低値を決定するようにAI/MLモデルを訓練すること含む。特定の実施形態では、訓練は、nの最高値を超えるn-gramが考慮されないようなnの最高値を決定するようにAI/MLモデルを訓練することを含む。いくつかの実施形態では、訓練は、ユーザーインタラクションをRPAアクティビティに関連付けるために、AI/MLモデルまたはRPAデザイナアプリケーションを訓練することを含む。特定の実施形態では、AI/MLモデルが、シーケンスがタスクに関係すると決定するために、関連するシーケンスの最小数が必要とされる。
【0108】
次に、訓練されたAI/MLモデルは、730で展開される。いくつかの実施形態では、展開されたAI/MLモデルは、1または複数のRPAロボットによって呼び出されるように構成される。740において、それぞれのコンピューティングシステムを有する複数のユーザーの記録された実際のユーザーインタラクションが分析され、記録された実際のユーザーインタラクションにおける一致するシーケンスのセットが、訓練されたAI/MLモデルによって決定される。いくつかの実施形態では、一致するシーケンスのセットの決定は、AI/MLモデルによって、ユーザーインタラクションのシーケンス間の関連性を含む確率グラフを生成することと、AI/MLモデルによって、無関係なユーザーインタラクションおよびシーケンスを除去するために確率グラフを枝刈りすることと、そしてAI/MLモデルによって、枝刈りされた確率グラフに基づいて一致するシーケンスのセットの一部としてユーザーインタラクションのシーケンスが一致すると決定することと、を含む。特定の実施形態では、シーケンスが一致するかどうかの決定は、レーベンシュタイン距離、ファジーマッチング、またはそれらの組み合わせを用いて実行される。
【0109】
一致するシーケンスの各セットの最も効率的なシーケンスが750で決定される。いくつかの実施形態では、最も効率的なシーケンスの決定は、シーケンス内のユーザーインタラクションの数、シーケンス内のユーザーインタラクションに関連する時間、またはそれらの組み合わせに基づく。次いで、最も効率的なシーケンスを実装するRPAワークフローが、760において生成される。RPAワークフローは、シーケンスのユーザーインタラクションを実装するアクティビティを含む。特定の実施形態では、1または複数の生成されたRPAワークフローは、770において、1または複数のRPAデザイナアプリケーションにアクセス可能にされ、RPA開発者が必要に応じてワークフローを編集できるようにする。さらにまたは代替的に、それぞれのRPAロボットは、780において最も効率的なシーケンスを使用して生成される。1または複数の生成されたRPAロボットはその後、790において1または複数のユーザーコンピューティングシステムに展開され得る。
【0110】
図8は、本発明の実施形態による、AI/MLモデルを使用して望ましい最終状態に基づくプロセス抽出を実施し、そしてRPAロボットを生成するためのプロセス800を説明するフローチャートである。プロセスは、810において、複数のユーザーとそれぞれのユーザーコンピューティングシステムとの時間順インタラクションを含むデータをAI/MLモデルに提供することから始まる。AI/MLモデルは、その後、820で望ましい結果を認識し、830で望ましい結果につながるプロセス(複数可)を決定するように訓練される。例えば、AI/MLモデルは、アカウントが作成されたこと、新規ユーザーが追加されたこと、収益が発生したこと、問題が解決されたことなどのようなさまざまな望ましい状態を認識するように訓練され得る。その後、AI/MLモデルは、望ましい結果につながるシーケンスを再現するために、ユーザーインタラクションに関するデータまたはユーザーインタラクション自体において見返し得る。いくつかの実施形態では、望ましい結果が決定されると、AI/MLモデルはプリオールを見返して、望ましい結果を達成するために何が最も重要であったかを評価し得る。結果につながった信号がサブ信号に分解され、どのサブ信号(複数可)が望ましいものにつながったかが決定され得る。その後、AI/MLモデルが、840で展開される。
【0111】
次に、850で、記録された実際のユーザーインタラクションデータの望ましい結果がAI/MLモデルによって決定される。次いで、AI/MLモデルは、860において、望ましい結果につながるユーザーインタラクションを決定する(例えば、望ましい結果が達成される前に時間順インタラクションを試して望ましい結果の再現を試みることによって)、または望ましい結果が再現できるまでニューラルネットワークプライヤのノードを強化する実験を行う。次いで、望ましい結果につながるRPAワークフローが870で生成される(例えば、ユーザーインタラクションに関連するアクティビティをRPAワークフローに追加すること、バックプロパゲーションを介してタスクを実行するように訓練された1または複数のAI/MLモデルを呼び出す1または複数のアクティビティを追加することなどによって)。1または複数の生成されたRPAワークフローは、880において、1もしくは複数のRPAデザイナアプリケーションにアクセス可能にされる、それぞれのRPAロボットが生成/展開される、またはその両方である。
【0112】
図9は、本発明の実施形態による、ユーザーインタラクションのシーケンスを表すn-gramの比較を説明する図である。この例では、シーケンス900は第1のユーザーの時間順一連のインタラクションを表し、シーケンス910は第2のユーザーの時間順一連のインタラクションを表し、そしてシーケンス920は第3のユーザーの時間順一連のインタラクションを表す。本発明の範囲から逸脱することなく、任意の数のユーザーのインタラクションが比較され得る。ここで、比較のためのn-gramサイズは5である。
【0113】
最初に、第1のユーザーの最初の5つのインタラクション(A1、A2、AA3、A4、A5)の5-gram902が、シーケンス910および920の時間順5-gramと比較される。本発明の範囲から逸脱することなく、任意の数の異なるインタラクションを特定し、比較することができる。この例では、シーケンス910およびシーケンス920の両方が、最初の12つのインタラクションにおいてそれぞれの一致する5-gram912、922を含む。3つの一致する5-gramシーケンス902、912、922が見つかるので、これは、この5-gramがプロセスオートメーションの潜在的な候補であることを示し得る。また、いくつかの実施形態では、一致の数が格納され得る。
【0114】
5-gramの一致するシーケンスが第1のユーザーについて特定された後、第2の使用のための5-gramは、第3のユーザーおよび任意の後続のユーザーと比較して、潜在的に、既に発見された一致するシーケンスが削除された新しい一致を見つけることができる(例えば、インタラクションをキューデータ構造に格納し、一致が見つかったときにキューから削除することによって)。このプロセスは、最後から2番目のユーザーのインタラクションが分析されるまで、すべてのユーザーについて繰り返され得る。n値の範囲を考慮する場合は、nがインクリメントされ得、そしてその範囲内のすべてのn-gramサイズが解析されるまで、このプロセスが繰り返され得る。
【0115】
図7および
図8で実行されるプロセスステップは、本発明の実施形態に従って、
図7および
図8で説明したプロセス(複数可)の少なくとも一部を実行するようにプロセッサ(複数可)への命令をエンコードするコンピュータプログラムによって実行されてもよい。コンピュータプログラムは、非一時的なコンピュータ読み取り可能な媒体に格納されていてもよい。コンピュータ読み取り可能な媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/またはデータを格納するために使用される他のそのような媒体または媒体の組み合わせであってもよいが、これらに限定されるものではない。コンピュータプログラムは、
図7および8に記載されたプロセスステップの全部または一部を実装するために、コンピューティングシステム(例えば、
図5のコンピューティングシステム500のプロセッサ(複数可)510)のプロセッサ(複数可)を制御するためのコード化された命令を含んでもよく、これはまた、コンピュータ読み取り可能な媒体に格納されてもよい。
【0116】
コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で実装され得る。コンピュータプログラムは、互いに動作可能な通信を行うモジュールで構成され得、情報または指示をディスプレイに送るように設計されている。コンピュータプログラムは、汎用コンピュータ、ASIC、またはいずれかの他の好適なデバイスで動作するように構成され得る。
【0117】
本発明の様々な実施形態のコンポーネントは、本明細書に一般的に記載され、図示されているように、様々な異なる構成で配置され、設計されてもよいことが、容易に理解されるであろう。したがって、添付の図に表されるような本発明の実施形態の詳細な説明は、特許請求されるような本発明の範囲を限定することを意図するものではなく、本発明の選択された実施形態を代表するものにすぎない。
【0118】
本明細書を通して記載された本発明の特色、構造、または特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせられ得る。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または類似の言語を参照することは、実施形態に関連して記載された特定の特色、構造、または特徴が、本発明の少なくとも1つの実施形態に含まれていることを意味する。したがって、本明細書全体を通して「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」、または類似の言語の出現は、必ずしも全ての実施形態の同じグループを指すものではなく、記載された特色、構造、または特徴は、1または複数の実施形態ではいずれかの好適な方法で組み合わせられ得る。
【0119】
本明細書全体を通して特色、利点、または類似の言語への参照は、本発明で実現され得る特色および利点の全てが、本発明のいずれかの単一の実施形態にあるべきであること、または本発明のいずれかの実施形態であることを意味するものではないことに留意すべきである。むしろ、特色および利点に言及する言語は、実施形態に関連して記載された特定の特色、利点、または特徴が、本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体での特色および利点の議論、ならびに類似の言語は、同じ実施形態を参照することができるが、必ずしもその必要性はない。
【0120】
さらに、本発明の記載された特色、利点、および特徴は、1または複数の実施形態では、いずれかの好適な方法で組み合わせることができる。関連する技術の当業者は、本発明が、1または複数の特定の実施形態の特定の特徴または利点なしに実施され得ることを認識するであろう。他の例では、追加の特徴および利点は、本発明の全ての実施形態には存在しないかもしれないが特定の実施形態では認識され得る。
【0121】
本分野における通常の技術を有する者は、上述したような本発明を、異なる順序でのステップを用いて、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施することができることを容易に理解するであろう。したがって、本発明は、これらの好ましい実施形態に基づいて説明されてきたが、本発明の精神および範囲内にとどまりながら、特定の変更、変形、および代替的な構成が明らかになることは、当業者には明らかであろう。したがって、本発明の範囲を決定するためには、添付の特許請求の範囲を参照すべきである。
【国際調査報告】