(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-22
(45)【発行日】2023-05-30
(54)【発明の名称】対話履歴グラフを使用したアクション選択
(51)【国際特許分類】
G06N 3/092 20230101AFI20230523BHJP
G06N 3/045 20230101ALI20230523BHJP
G06N 3/04 20230101ALI20230523BHJP
G06N 3/044 20230101ALI20230523BHJP
G06N 3/088 20230101ALI20230523BHJP
【FI】
G06N3/092
G06N3/045
G06N3/04 100
G06N3/044
G06N3/088
(21)【出願番号】P 2021542496
(86)(22)【出願日】2020-01-23
(86)【国際出願番号】 EP2020051547
(87)【国際公開番号】W WO2020152233
(87)【国際公開日】2020-07-30
【審査請求日】2021-09-21
(32)【優先日】2019-01-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ハンジュン・ダイ
(72)【発明者】
【氏名】チェンロン・ワン
(72)【発明者】
【氏名】リシャブ・シン
(72)【発明者】
【氏名】ポ-セン・フアン
(72)【発明者】
【氏名】プシュミート・コーリ
(72)【発明者】
【氏名】ユジア・リ
【審査官】渡辺 一帆
(56)【参考文献】
【文献】特表2011-505030(JP,A)
【文献】国際公開第2018/153807(WO,A1)
【文献】特表2018-525759(JP,A)
【文献】国際公開第2018/146770(WO,A1)
【文献】米国特許出願公開第2015/0227121(US,A1)
【文献】特開2014-044615(JP,A)
【文献】特開平07-253905(JP,A)
【文献】中島功太 ほか,"深層強化学習を用いた無線LAN最適チャネル制御",電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2019年,第118巻, 第428号,pp. 13-18
【文献】ZAMBALDI, V et al.,“Deep reinforcement learning with relational inductive biases”,ICLR 2019 Conference [online],2018年,pp. 1-18,[retrieved on 2022.09.26], Retrieved fromthe Internet: <URL: https://www.deepmind.com/publications/deep-reinforcement-learning-with-relational-inductive-biases>
【文献】WANG, T et al.,“NerveNet: Learning Structured Policy with Graph Neural Networks”,ICLR 2018 Conference [online],2018年,pp. 1-26,[retrieved on 2022.09.26], Retrieved fromthe Internet: <URL: https://www.semanticscholar.org/paper/NerveNet%3A-Learning-Structured-Policy-with-Graph-Wang-Liao/249408527106d7595d45dd761dd53c83e5a02613>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02- 3/10
G06N 20/00-20/20
(57)【特許請求の範囲】
【請求項1】
環境と対話するエージェントによって実行されるべきアクションを選択するために1つまたは複数のデータ処理装置によって実行される方法であって、
前記エージェントと前記環境との対話履歴を表すノードおよびエッジのグラフを取得するステップであり、
前記グラフ内の各ノードは、前記環境
の状態を表し、
前記グラフ内の各エッジは、前記グラフ内のノードのそれぞれの対を接続し、
前記グラフ内のエッジは、前記環境の前記状態がノードの対の一方のノードから前記ノードの対の他方のノードに移行することができる場合にのみ、前記グラフ内の前記ノードの対を接続する、
取得するステップと、
前記エージェントと前記環境との前記対話履歴を表す前記グラフの符号化表現を生成するステップと、
アクション選択出力を生成するために、アクション選択ニューラルネットワークパラメータの現在の値に従って、アクション選択ニューラルネットワークを使用して、前記グラフの前記符号化表現に基づいて入力を処理するステップと、
前記アクション選択ニューラルネットワークによって生成された前記アクション選択出力を使用して、前記エージェントによって実行されるべき複数の可能なアクションから1つのアクションを選択するステップと
を含
み、
前記環境がソフトウェア環境または現実世界環境であり、
前記ソフトウェア環境の各状態が、前記ソフトウェア環境のインターフェースのそれぞれの状態に対応し、前記エージェントによって実行されるように選択された前記アクションが、前記ソフトウェア環境の前記インターフェースとの特定の対話を定義し、
前記現実世界環境の各状態は、前記現実世界環境におけるそれぞれの空間位置に対応し、前記エージェントは、前記現実世界環境と対話するロボットエージェントであり、前記エージェントによって実行されるように選択された前記アクションは、前記エージェントを前記現実世界環境において移動させる物理的アクションを定義する、
方法。
【請求項2】
前記インターフェースはユーザインターフェースである、請求項1に記載の方法。
【請求項3】
前記環境の1つまたは複数の新しい状態を識別するステップであり、(i)前記エージェントが前記選択されたアクションを実行した結果として、前記環境の前記状態は、前記1つまたは複数の新しい状態に移行し、(ii)前記エージェントと前記環境との前記対話中に以前に選択されたアクションを前記エージェントが実行した結果として、前記環境の前記状態は、以前に前記新しい状態のいずれにも移行しなかった、識別するステップと、
前記環境の前記新しい状態に基づいて報酬を決定するステップと、
強化学習技法を使用して、前記報酬に基づいて前記アクション選択ニューラルネットワークパラメータの前記現在値を調整するステップと
をさらに含む請求項1
または2に記載の方法。
【請求項4】
前記環境の前記新しい状態に基づいて前記報酬を決定するステップは、
前記環境の新しい状態の数に基づいて前記報酬を決定するステップ
を含む、請求項
3に記載の方法。
【請求項5】
前記強化学習技法は、アクタークリティック強化学習技法である、請求項
3または
4に記載の方法。
【請求項6】
前記エージェントと前記環境との前記対話履歴を表す前記グラフ内の各ノードは、前記エージェントと前記環境との前記対話中に以前に選択されたアクションを前記エージェントが実行した結果として、前記環境が以前に移行した前記環境の状態に対応する、請求項1から
5のいずれか一項に記載の方法。
【請求項7】
前記グラフ内の各エッジは、前記エージェントと前記環境との前記対話中に以前に選択されたアクションを前記エージェントが実行した結果として、前記環境の前記状態が、ノードの対の一方のノードから前記ノードの対の他方のノードに以前に移行した場合にのみ、前記グラフ内の前記ノードの対を接続する、請求項
6に記載の方法
。
【請求項8】
前記エージェントと前記環境との前記対話履歴を表す前記グラフ内の前記ノードは、前記環境のあらゆ
る状態を表し、
前記グラフ内の各ノードは、前記エージェントと前記環境との前記対話中に以前に選択されたアクションを前記エージェントが実行した結果として、前記環境が前記ノードによって表される前記状態に以前に移行したかどうかを示すデータに関連付けられる、
請求項1
または2に記載の方法
。
【請求項9】
前記エージェントと前記環境との前記対話履歴を表す前記グラフの符号化表現を生成するステップは、
前記グラフの前記符号化表現を生成するためにグラフニューラルネットワークを使用して前記グラフを処理するステップを含む、
請求項1から
8のいずれか一項に記載の方法。
【請求項10】
前記グラフの前記符号化表現を生成するためにグラフニューラルネットワークを使用して前記グラフを処理するステップは、
前記グラフの各ノードのそれぞれの符号化表現を生成するステップと、
前記グラフの前記符号化表現を生成するために、前記グラフの各ノードの前記それぞれの符号化表現を結合するステップと
を含む、請求項
9に記載の方法。
【請求項11】
前記グラフの各ノードの前記それぞれの符号化表現を結合するステップは、前記グラフの各ノードの前記それぞれの符号化表現を合計するステップを含む、請求項
10に記載の方法。
【請求項12】
前記グラフの各ノードの前記それぞれの符号化表現を合計するステップは、
前記グラフの各ノードの前記符号化表現に対するそれぞれの重み係数を決定するステップと、
前記グラフの各ノードの前記それぞれの符号化表現を合計する前に、前記対応する重み係数を使用して前記グラフの各ノードの前記符号化表現をスケーリングするステップと
を含む、請求項
11に記載の方法。
【請求項13】
前記グラフの各ノードのそれぞれの符号化表現を生成するステップは、
複数の反復の各々において前記グラフの各ノードの符号化表現を更新するステップであり、前記複数の反復の第1の反復の後の各反復において、
前記グラフの所与のノードごとに、グラフニューラルネットワークパラメータの値に従って、前の反復における前記グラフ内の前記所与のノードの隣接ノードのセットの前記符号化表現に基づいて、現在の反復における前記ノードの前記符号化表現を更新するステップを含み、
前記グラフ内の前記所与のノードの前記隣接ノードのセットは、(i)前記所与のノード、および(ii)前記グラフのエッジによって前記所与のノードに接続される前記グラフ内の他の各ノード、を含む、更新するステップと、
前記グラフの各ノードの前記符号化表現を、前記複数の反復の最後の反復の後の前記ノードの前記符号化表現として決定するステップと
を含む、請求項
10から
12のいずれか一項に記載の方法。
【請求項14】
前記ノードによって表される前記環境の前記状態の特性に基づいて、前記複数の反復の前記第1の反復において前記グラフの各ノードの符号化表現を決定するステップ
をさらに含む請求項
13に記載の方法。
【請求項15】
前記グラフニューラルネットワークは、教師なしリンク予測目的を使用してトレーニングされる、請求項
9から
14のいずれか一項に記載の方法。
【請求項16】
前記アクション選択ニューラルネットワークは、リカレントニューラルネットワークである、請求項1から
15のいずれか一項に記載の方法。
【請求項17】
前記アクション選択出力は、前記複数の可能なアクションの各アクションについてのそれぞれの値を定義する、請求項1から
16のいずれか一項に記載の方法。
【請求項18】
前記アクション選択出力を使用して前記エージェントによって実行されるべき前記アクションを選択するステップは、
前記アクション選択出力によって定義された前記アクションの前記それぞれの値である前記アクションの各々の確率に従って、前記アクションをサンプリングするステップ
を含む、請求項
17に記載の方法。
【請求項19】
前記アクション選択出力を使用して前記エージェントによって実行されるべき前記アクションを選択するステップは、
最も高い値を持つ前記アクションを選択するステップ
を含む、請求項
17に記載の方法。
【請求項20】
前記アクション選択ニューラルネットワークパラメータの前記現在の値は、前記エージェントと前の環境との対話中に決定され、前記エージェントと前記環境との前記対話中には調整されない、請求項1から
19のいずれか一項に記載の方法。
【請求項21】
前記アクション選択ニューラルネットワークへの前記入力は、(i)前記グラフの前記符号化表現、および(ii)1つまたは複数の以前のグラフの符号化表現、に基づき、各以前のグラフが、それぞれの以前の時間ステップの時点での前記エージェントと前記環境との対話履歴を表す、請求項1から
20のいずれか一項に記載の方法。
【請求項22】
リカレントニューラルネットワーク出力を生成するために、(i)前記グラフの前記符号化表現、および(ii)前の時間ステップにおける前記リカレントニューラルネットワークの出力、を含む入力を処理するために、リカレントニューラルネットワークを使用するステップをさらに含み、
前記アクション選択ニューラルネットワークへの前記入力は、前記リカレントニューラルネットワーク出力を含む、
請求項
21に記載の方法。
【請求項23】
1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から
22のいずれか一項に記載の前記方法の前記それぞれの動作を実行させる命令を記憶する1つまたは複数の記憶デバイスとを備えるシステム。
【請求項24】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から
22のいずれか一項に記載の前記方法の前記それぞれの動作を実行させる命令を記憶するコンピュータプログラム製品。
【請求項25】
環境と対話するエージェントによって実行されるべきアクションを選択するために1つまたは複数のデータ処理装置によって実行される方法であって、
前記エージェントと前記環境との対話履歴を表すノードおよびエッジのグラフを取得するステップであり、
前記グラフ内の各ノードは、前記環境の状態を表し、
前記グラフ内の各エッジは、前記グラフ内のノードのそれぞれの対を接続し、
前記グラフ内のエッジは、前記環境の前記状態がノードの対の一方のノードから前記ノードの対の他方のノードに移行することができる場合にのみ、前記グラフ内の前記ノードの対を接続する、
取得するステップと、
前記エージェントと前記環境との前記対話履歴を表す前記グラフの符号化表現を生成するステップと、
アクション選択出力を生成するために、アクション選択ニューラルネットワークパラメータの現在の値に従って、アクション選択ニューラルネットワークを使用して、前記グラフの前記符号化表現に基づいて入力を処理するステップと、
前記アクション選択ニューラルネットワークによって生成された前記アクション選択出力を使用して、前記エージェントによって実行されるべき複数の可能なアクションから1つのアクションを選択するステップと
を含み、
前記エージェントと前記環境との前記対話履歴を表す前記グラフの符号化表現を生成するステップは、
前記グラフの前記符号化表現を生成するためにグラフニューラルネットワークを使用して前記グラフを処理するステップを含み、
前記グラフの前記符号化表現を生成するためにグラフニューラルネットワークを使用して前記グラフを処理するステップは、
前記グラフの各ノードのそれぞれの符号化表現を生成するステップと、
前記グラフの前記符号化表現を生成するために、前記グラフの各ノードの前記それぞれの符号化表現を結合するステップと
を含む、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、機械学習モデルを使用してデータを処理することに関する。
【背景技術】
【0002】
機械学習モデルは、入力を受信し、受信した入力に基づいて出力、たとえば予測される出力を生成する。いくつかの機械学習モデルはパラメトリックモデルであり、受信した入力およびモデルのパラメータの値に基づいて出力を生成する。
【0003】
一部の機械学習モデルは、受信した入力に対する出力を生成するために、複数のモデル層を使用するディープモデルである。たとえば、ディープニューラルネットワークは、出力層と、各々受信した入力に非線形変換を適用して出力を生成する1つまたは複数の隠れ層とを含むディープ機械学習モデルである。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本明細書は、エージェントが環境を効率的に探査することを可能にするために、環境と対話するエージェントによって実行されるべきアクションを選択する、1つまたは複数の場所にある1つまたは複数のコンピュータ上のコンピュータプログラムとして実施されるシステムについて説明する。
【課題を解決するための手段】
【0005】
第1の態様によれば、環境と対話するエージェントによって実行されるべきアクションを選択するために1つまたは複数のデータ処理装置によって実行される方法が提供される。この方法は、エージェントと環境との対話履歴を表すノードおよびエッジのグラフを取得するステップを含む。グラフ内の各ノードは、環境の可能な状態を表し、グラフ内の各エッジは、グラフ内のノードのそれぞれの対を接続し、グラフ内のエッジは、環境の状態がノードの対の一方のノードからノードの対の他方のノードに移行することができる場合にのみ、グラフ内のノードの対を接続する。エージェントと環境との対話履歴を表すグラフの符号化表現が生成される。グラフの符号化表現に基づく(および/またはそれを含む)入力は、アクション選択出力を生成するために、アクション選択ニューラルネットワークパラメータの現在の値に従って、アクション選択ニューラルネットワークを使用して処理される。アクションは、アクション選択ニューラルネットワークによって生成されたアクション選択出力を使用して、エージェントによって実行されるべき可能なアクションのセットから選択される。
【0006】
いくつかの実装形態では、方法は、環境の1つまたは複数の新しい状態を識別するステップであり、(i)エージェントが選択されたアクションを実行した結果として、環境の状態は、1つまたは複数の新しい状態に移行し、(ii)エージェントと環境との対話中に以前に選択されたアクションをエージェントが実行した結果として、環境の状態は、以前に新しい状態のいずれにも移行しなかった、識別するステップをさらに含む。報酬は、環境の新しい状態に基づいて決定される。アクション選択ニューラルネットワークパラメータの現在値は、強化学習技法を使用して、報酬に基づいて調整される。
【0007】
いくつかの実装形態では、環境の新しい状態に基づいて報酬を決定するステップは、環境の新しい状態の数に基づいて報酬を決定するステップを含む。
【0008】
いくつかの実装形態では、強化学習技法は、アクタークリティック強化学習技法である。
【0009】
いくつかの実装形態では、エージェントと環境との対話履歴を表すグラフ内の各ノードは、エージェントと環境との対話中に以前に選択されたアクションをエージェントが実行した結果として、環境が以前に移行した環境の状態に対応する。
【0010】
いくつかの実装形態では、グラフ内の各エッジは、エージェントと環境との対話中に以前に選択されたアクションをエージェントが実行した結果として、環境の状態が、ノードの対の一方のノードからノードの対の他方のノードに以前に移行した場合にのみ、グラフ内のノードの対を接続する。
【0011】
いくつかの実装形態では、環境がソフトウェア環境であり、ソフトウェア環境の各状態が、ソフトウェア環境のユーザインターフェースのそれぞれの状態に対応し、エージェントによって実行されるように選択されたアクションが、ソフトウェア環境のユーザインターフェースとの特定の対話を定義する。
【0012】
いくつかの実装形態では、環境は現実世界環境であり、現実世界環境の各状態は、現実世界環境におけるそれぞれの空間位置に対応し、エージェントは、現実世界環境と対話するロボットエージェントであり、エージェントによって実行されるように選択されたアクションは、エージェントを現実世界環境において移動させる物理的アクションを定義する。
【0013】
いくつかの実装形態では、エージェントと環境との対話履歴を表すグラフ内のノードは、環境のあらゆる可能な状態を表し、グラフ内の各ノードは、エージェントと環境との対話中に以前に選択されたアクションをエージェントが実行した結果として、環境がノードによって表される状態に以前に移行したかどうかを示すデータに関連付けられる。
【0014】
いくつかの実装形態では、環境は、プログラムコードのセットによって定義されるソフトウェア環境であり、ソフトウェア環境の各状態は、プログラムコードのセットのそれぞれの要素の実行に対応し、エージェントによって実行されるように選択されたアクションは、ソフトウェア環境に提供されるべき入力を定義する。
【0015】
いくつかの実装形態では、ソフトウェア環境は、ユーザインターフェースを定義する。
【0016】
いくつかの実装形態では、エージェントと環境との対話履歴を表すグラフの符号化表現を生成するステップは、グラフの符号化表現を生成するためにグラフニューラルネットワークを使用してグラフを処理するステップを含む。
【0017】
いくつかの実装形態では、グラフの符号化表現を生成するためにグラフニューラルネットワークを使用してグラフを処理するステップは、グラフの各ノードのそれぞれの符号化表現を生成するステップと、グラフの符号化表現を生成するために、グラフの各ノードのそれぞれの符号化表現を結合するステップとを含む。
【0018】
いくつかの実装形態では、グラフの各ノードのそれぞれの符号化表現を結合するステップは、グラフの各ノードのそれぞれの符号化表現を合計するステップを含む。
【0019】
いくつかの実装形態では、グラフの各ノードのそれぞれの符号化表現を合計するステップは、グラフの各ノードの符号化表現に対するそれぞれの重み係数を決定するステップと、グラフの各ノードのそれぞれの符号化表現を合計する前に、対応する重み係数を使用してグラフの各ノードの符号化表現をスケーリングするステップと、を含む。
【0020】
いくつかの実装形態では、グラフの各ノードのそれぞれの符号化表現を生成するステップは、複数の反復の各々で、グラフの各ノードの符号化表現を更新するステップを含む。複数の反復の第1の反復の後の各反復において、方法は、グラフの所与のノードごとに、グラフニューラルネットワークパラメータの値に従って、前の反復におけるグラフ内の所与のノードの隣接ノードのセットの符号化表現に基づいて、現在の反復におけるノードの符号化表現を更新するステップを含み得る。グラフ内の所与のノードの隣接ノードのセットは、(i)所与のノード、および(ii)グラフのエッジによって所与のノードに接続されるグラフ内の他の各ノード、を含む。グラフの各ノードの符号化表現は、複数の反復の最後の反復の後のノードの符号化表現として決定される。
【0021】
いくつかの実装形態では、方法は、ノードによって表される環境の状態の特性に基づいて、複数の反復の第1の反復においてグラフの各ノードの符号化表現を決定するステップをさらに含む。
【0022】
いくつかの実装形態では、グラフニューラルネットワークは、教師なしリンク予測目的を使用してトレーニングされる。
【0023】
いくつかの実装形態では、アクション選択ニューラルネットワークは、リカレントニューラルネットワークである。
【0024】
いくつかの実装形態では、アクション選択出力は、複数の可能なアクションのアクションごとのそれぞれの値を定義する。
【0025】
いくつかの実装形態では、アクション選択出力を使用してエージェントによって実行されるべきアクションを選択するステップは、アクション選択出力によって定義されたアクションのそれぞれの値であるアクションの各々の確率に従って、アクションをサンプリングするステップを含む。
【0026】
いくつかの実装形態では、アクション選択出力を使用してエージェントによって実行されるべきアクションを選択するステップは、最も高い値を持つアクションを選択するステップを含む。
【0027】
いくつかの実装形態では、アクション選択ニューラルネットワークパラメータの現在の値は、エージェントと前の環境との対話中に決定され、エージェントと環境との対話中には調整されない。
【0028】
いくつかの実装形態では、アクション選択ニューラルネットワークへの入力は、(i)グラフの符号化表現、および(ii)1つまたは複数の以前のグラフの符号化表現、に基づき、各以前のグラフが、それぞれの以前の時間ステップの時点でのエージェントと環境との対話履歴を表す。
【0029】
いくつかの実装形態では、この方法は、リカレントニューラルネットワーク出力を生成するために、(i)グラフの符号化表現、および(ii)前の時間ステップにおけるリカレントニューラルネットワークの出力、を含む入力を処理するために、リカレントニューラルネットワークを使用するステップをさらに含む。アクション選択ニューラルネットワークへの入力は、リカレントニューラルネットワーク出力を含む。
【0030】
第2の態様によれば、1つまたは複数のコンピュータと、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに、第1の態様の方法の動作を含む動作を実行させる命令を記憶する1つまたは複数の記憶デバイスとを含むシステムが提供される。
【0031】
第3の態様によれば、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに、第1の態様の方法の動作を含む動作を実行させる命令を記憶する非一時的コンピュータプログラム製品が提供される。
【0032】
本明細書に記載される主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実施することができる。
【0033】
本明細書で説明する探査システムは、エージェントに環境を効率的に探査させるアクションを選択するために、強化学習技法を使用して、トレーニングすることができる。探査システムは、たとえば、エージェントが環境内ですでに探査した状態を表すことによって、エージェントと環境との対話履歴を表すグラフに基づいて、エージェントによって実行されるべきアクションを選択することができる。探査システムは、より少ない情報(たとえば、環境の現在の状態のみ)に基づいてアクションを選択した場合に可能であるよりも、エージェントと環境との対話履歴を表すグラフに基づいてアクションを選択することによって、より少ないトレーニング反復にわたってより効果的な探査ポリシーを学習することができる。たとえば、探査システムは、環境を「新しい」(すなわち、以前は見たことがない)状態に移行させるアクションの選択を促進する報酬を使用してトレーニングすることができる。特に、探査システムは、環境の状態を所与の状態に最初に移行させたときは、肯定的な報酬を受け取るが、任意のその後の機会に環境が所与の状態に移行したときは、報酬を受け取らない可能性がある。したがって、探査システムが、環境の現在の状態のみに基づいてアクションを選択した場合、探査システムによって受け取られる報酬は、一貫していないように見える。一方、エージェントと環境との対話履歴を表すグラフを処理することによって、探査システムによって受け取られる報酬は一貫しているように見え、したがって、探査システムをより効果的にトレーニングすることが可能になる。
【0034】
探査システムは、(i)現在の時間ステップ、および(ii)1つまたは複数の以前の時間ステップの各々、の時点での、エージェントと環境との対話履歴を表す複数のそれぞれのグラフに基づいて、各時間ステップにおいて、エージェントによって実行されるべきアクションを選択することができる。すなわち、探査システムは、複数の以前の時間ステップにわたるエージェントによる環境の探査の履歴に基づいて、各時間ステップで実行されるべきアクションを選択することができる。これは、すなわち、探査システムが、どのアクションが環境を新しい状態に移行させるかについてより効果的に推論することを可能にすることによって、より効率的な探査を可能にし得る。
【0035】
探査システムは、一般化可能であり、すなわち、トレーニング中にエージェントが環境にさらされていなくても、エージェントに環境を効率的に探査させるアクションを選択するために使用することができる。したがって、探査システムは、エージェントが新しい環境と対話するたびにアクション選択ネットワークを再トレーニングする必要性をなくすことによって、計算リソース(たとえば、メモリおよび計算能力)の消費を低減し得る。
【0036】
本明細書の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0037】
【
図2】複数の時間ステップにわたるエージェントによる環境の探査を特徴付ける対話履歴グラフの例を示す図である。
【
図3】ランダム探査を使用し、探査システムを使用して、ソフトウェアアプリケーションのユーザインターフェースを探査する一例を示す図である。
【
図4】環境を探査するエージェントによって実行されるべきアクションを選択するための例示的なプロセスのフロー図である。
【
図5】グラフの符号化表現を生成するための例示的なプロセスのフロー図である。
【発明を実施するための形態】
【0038】
様々な図面における同様の参照番号および名称は同様の要素を示す。
【0039】
図1は、例示的な探査システム100を示す。探査システム100は、以下に説明するシステム、構成要素、および技法が実装される1つまたは複数の場所にある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの一例である。
【0040】
探査システム100は、複数のステップの各々において環境106と対話するエージェント104によって実行されるべきアクション102を選択する。探査システム100は、エージェント104が環境106を効率的に探査することを可能にするアクション102を選択するようにトレーニングされる。すなわち、探査システム100は、限られた数の時間ステップにわたって環境106によって移行される一意の状態の数を最大にすることを意図したアクション102を選択する。
【0041】
本明細書で説明される探査システム100は、広く適用可能であり、1つの特定の実装形態に限定されない。しかしながら、説明の目的で、探査システム100のいくつかの例示的な実装形態について次に説明する。
【0042】
いくつかの実装形態では、エージェントは、ソフトウェアエージェントであってもよく、環境は、ソフトウェア環境であってもよく、環境の各状態は、たとえば、ソフトウェアアプリケーションのユーザインターフェースのそれぞれの状態に対応してもよい。エージェントによって実行される各アクションは、たとえば、ユーザインターフェース内の対話型要素(たとえば、ボタン)を選択することによって、またはユーザインターフェースに英数字入力を提供することによって(たとえば、キーボードからなど)、ユーザインターフェースと対話するアクションとすることができる。各時間ステップにおいて、探査システムは、ユーザインターフェースとの特定の対話を指定するアクションを選択し、ユーザインターフェースは、ユーザインターフェースの現在の状態およびエージェントによって実行されるアクションに基づいて異なる状態に移行し得る。
【0043】
いくつかの実装形態では、エージェントは、ソフトウェアエージェントでもよく、環境は、たとえば、Python、Java、または任意の他の適切な方法で表される、プログラムコードのセットによって定義されるソフトウェア環境でもよい。プログラムコードのセットは、入力、たとえば、文字列または画像を受信し、処理するように構成されてもよい。プログラムコードが入力を処理するたびに、すなわち、入力に応じて、プログラムコードのいくつかの要素(たとえば、命令または命令群)が実行され、他の要素は実行されない場合がある。ソフトウェア環境の各状態は、プログラムコードのそれぞれの要素の実行に対応し得る。各時間ステップにおいて、探査システムは、プログラムコードに対して処理されるべき入力を指定するアクションを選択し、環境は、入力の処理中にプログラムコードの1つまたは複数の対応する要素が実行されるときに1つまたは複数の状態に移行し得る。
【0044】
可能な限り多くの別個の状態にユーザインターフェースを移行させるアクション、または可能な限り多くのプログラムコードのセットの要素を実行させるアクションを実行することによって、探査システム100は、潜在的な「バグ」をトリガする可能性を高める。バグとは、ソフトウェア環境が不正確に振る舞う原因となる欠陥を指す。このようにして、探査システム100は、たとえば、ユーザインターフェースまたはプログラムコードのセットのソフトウェアテストを実行するために使用され得る。バグが識別されると、ソフトウェアは、(自動的に、および/または人間オペレータによって)修正され、それによって、改善されたユーザインターフェースなど、より良好なソフトウェアを提供することができる。ユーザインターフェースは、バグの影響を受けにくい。代替または追加として、ユーザは、より確実に、および/または、より迅速に、および/または、より少ない労力で、データを入力することができ得る。
【0045】
いくつかの実装形態では、エージェントは、機械的エージェント(たとえば、ロボットまたは自律的もしくは半自律的な車両)であってもよく、環境は、現実世界環境であってもよく、現実世界環境の各状態は、現実世界環境におけるそれぞれの空間位置(場所および/または構成)に対応してもよい。現実世界環境における「空間位置」は、たとえば、現実世界環境をあらかじめ定義されたグリッドに分割することによって(または任意の他の適切な方法で)指定される、現実世界環境のそれぞれの領域に対応し得る。各ステップの開始時の環境の状態は、センサー、たとえばカメラまたはジオロケーションセンサーによって測定される。各時間ステップにおいて、探査システムは、エージェントを環境内で移動させる(すなわち、ある空間位置から別の空間位置に移動させる、および/またはその構成を変更する)アクションを選択してもよく、たとえば、アクションは、ロボットを移動させるためにロボットの関節に適用されるトルクを指定してもよい。エージェントに環境内のできるだけ多くの異なる空間位置を訪問させるアクションを実行することにより、エージェントは、環境のマップを構築し、他のタスクをより効果的に実行するために使用することができる情報を取得することができ得る。このようにして、探査システム100は、現実世界環境を探査するために機械的エージェントによって使用することができる。
【0046】
各時間ステップにおいて、探査システム100は、すなわち、エージェントと環境との以前の対話の結果として環境がどの状態に移行したかを表すことによって、エージェント104と環境との対話履歴を表す、対話履歴グラフ108を生成する。グラフ108は、ノードのセットおよびエッジのセットを含み、各ノードは、環境の可能な状態を表し、各エッジは、グラフ内のノードのそれぞれの対を接続する。グラフ108内のエッジは、環境106が、対の一方のノードによって表される状態から、対の他のノードによって表される状態に移行することができる場合にのみ、ノードの対を接続する。
【0047】
未知の環境における探査に対応する実装形態では、グラフ108は、現在の時間ステップの時点でエージェント104によってすでに探査された環境106の状態のみを表す。特に、グラフ108は、環境が1つまたは複数の以前の時間ステップで移行した状態を表すノードのみ、および1つまたは複数の以前の時間ステップで発生した環境状態間の移行を表すエッジのみを含み得る。一例では、エージェントは、未知の現実世界環境を探査する機械的エージェントでもよく、各ノードは、エージェントが訪問した環境内の空間位置を表し、各エッジは、環境内のある空間位置から別の空間位置へのエージェントの以前の移動を表し得る。
【0048】
既知の環境における探査に対応する実装形態では、グラフは、環境106のあらゆる状態を表すことができ、そうである場合、1つまたは複数の以前の時間ステップで環境がどの状態に移行したかを指定する追加のデータに関連付けられる。特に、グラフ108は、環境のあらゆる可能な状態を表すそれぞれのノードと、1つまたは複数の以前の時間ステップで環境がノードに対応する状態に移行したかどうかを指定する、各ノードに関連付けられたそれぞれの特徴とを含み得る。一例では、エージェントは、プログラムコードの既知のセットをテストするソフトウェアエージェントであってもよく、各ノードは、プログラムコード内の要素(たとえば、命令)を表し、各ノードは、プログラムコードの対応する要素が1つまたは複数の以前の時間ステップで実行されたかどうかを指定する関連する特徴を有し得る。
【0049】
第1の時間ステップにおいて、探査システム100は、エージェントが環境106をまだ探査していないことを反映する初期対話履歴グラフ108を生成し得る。一例では、探査システム100は、第1の時間ステップで「空の」対話履歴グラフ108、すなわち、任意のノードまたはエッジのないグラフを生成し得る。別の例では、探査システム100は、環境のあらゆる状態を表す対話履歴グラフ108を生成することができ、ノードの特徴は、環境がこれらの状態のいずれにもまだ移行していないことを示す。
【0050】
第1の時間ステップの後の各時間ステップで、探査システム100は、前の時間ステップで生成された対話履歴グラフを更新することによって、時間ステップの対話履歴グラフ108を生成し得る。たとえば、探査システム100は、前の時間ステップで環境が移行した1つまたは複数の状態に基づいて、前の時間ステップで生成されたグラフ108に追加のノードおよび/またはエッジを追加することによって、時間ステップの対話履歴グラフ108を生成し得る。
【0051】
現在の時間ステップの対話履歴グラフ108を生成した後、探査システム100は、対話履歴グラフ108の符号化表現112を生成するためにグラフニューラルネットワーク110を使用して対話履歴グラフ108を処理し得る。グラフ108の符号化表現112は、数値の順序付けられた集合、たとえば、数値のベクトルまたは行列として表され得る。グラフニューラルネットワーク110は、たとえば、グラフの各ノードの符号化表現を生成し、ノードの符号化表現を組み合わせる(たとえば、合計する)ことによって、グラフ108の符号化表現112を生成し得る。対話履歴グラフ108の符号化表現112を生成するための例示的なプロセスを、
図5を参照してより詳細に説明する。
【0052】
探査システム100は、現在の時間ステップにおける対話履歴グラフ108の符号化表現112を使用して、アクション選択出力116を生成するためにアクション選択ニューラルネットワーク114によって処理される入力を生成する。探査システム100は、以下でより詳細に説明するように、アクション選択出力116を使用して、時間ステップにおいてエージェントによって実行されるべきアクションを選択する。
【0053】
探査システム100は、現在の時間ステップにおける対話履歴グラフ108の符号化表現112を使用して、様々な方法のいずれかで、アクション選択ニューラルネットワーク114への入力を生成し得る。次に、アクション選択ニューラルネットワーク114への入力を生成するためのいくつかの例示的な技法について、より詳細に説明する。
【0054】
一例では、探査システム100は、以下のように、アクション選択ニューラルネットワーク114への入力を生成し得る。
[fa(at-1), fg(Gt-1)] (1)
式中、fa(at-1)は、前の時間ステップで実行されたアクションの表現であり、fg(Gt-1)は、現在の対話履歴グラフ108の符号化表現112である。探査システム100は、たとえば、アクションのワンホット符号化、またはアクションを処理する埋め込みニューラルネットワークの出力など、前の時間ステップで実行されたアクションの表現を生成し得る。
【0055】
別の例では、探査システム100は、(i)現在の時間ステップ、および(ii)1つまたは複数の先行する時間ステップの各々、に対応する対話履歴グラフの符号化表現112に基づいて、アクション選択ニューラルネットワーク114への入力を生成し得る。すなわち、探査システム100は、複数の時間ステップにわたるエージェントによる環境の探査の履歴を特徴付けるアクション選択ニューラルネットワーク114への入力を生成し得る。一実装形態では、探査システム100は、以下のように、各時間ステップにおいて、アクション選択ニューラルネットワーク114への入力h
tを生成し得る。
h
t=R(h
t-1, f
g(G
t-1)) (2)
式中、R()は、リカレントニューラルネットワーク、たとえば、長短期記憶(LSTM)ニューラルネットワーク(たとえば、
図1には図示されていないが、グラフニューラルネットワーク110とアクション選択ニューラルネットワーク114との間の探査システム100に提供される)であり、h
t-1は、前の時間ステップにおけるアクション選択ニューラルネットワークへの入力であり、f
g(G
t-1)は、現在の対話履歴グラフ108の符号化表現112である。アクション選択ニューラルネットワークへの前の入力が存在しない第1の時間ステップでは、探査システム100は、アクション選択ニューラルネットワーク114への入力として、現在の対話履歴グラフ108の符号化表現112を提供し得る。環境の探査の履歴に基づいて現在の時間ステップで実行されるべきアクションを選択することは、すなわち、アクション選択ニューラルネットワークが、どのアクションが環境を新しい状態に移行させることになるかについてより効果的に推論することを可能にすることによって、より効率的な探査を可能にすることができる。
【0056】
探査システム100は、アクション選択ニューラルネットワーク114によって生成されたアクション選択出力116を使用して、現在の時間ステップにおいてエージェント104によって実行されるべきアクションを選択する。次に、エージェントによって実行されるべきアクションを選択するためにアクション選択出力116を使用するいくつかの例について、より詳細に説明する。
【0057】
一例では、アクション選択出力116は、たとえば、ロボットエージェントの関節に適用されるべき可能なトルクなど、可能なアクションのセットにおける各アクションについてのそれぞれのスコアを含み得る。探査システムは、たとえば、最高スコアを有するアクション、またはアクションスコアによって定義される可能なアクションのセットにわたる確率分布からサンプリングされたアクションなど、エージェントによって実行されるべきアクションを選択し得る。可能なアクションのセットにわたる確率分布は、たとえば、ソフトマックス関数を使用してアクションスコアを処理することによって定義されてもよい。
【0058】
別の例では、アクション選択出力116は、複数の位置のシーケンス内の各位置における可能なトークンのセットにわたるそれぞれの確率分布を含み得る。可能なトークンのセットは、たとえば、英数字のセットであってもよく、各アクションは、複数の位置の各々にそれぞれの文字を含む文字列の形態であってもよい。文字列は、上述したように、ソフトウェアテストの文脈で、プログラムコードのセットへの入力として提供されてもよい。探査システム100は、可能なトークンのセットにわたる対応する確率分布を使用して、第1の位置から開始する各位置でそれぞれのトークンをサンプリングし得る。
【0059】
一般に、アクション選択ニューラルネットワークは、その記載した機能を実行することを可能にする任意の適切なニューラルネットワークアーキテクチャ、たとえば、自動回帰アーキテクチャ、再帰アーキテクチャ、またはフィードフォワードアーキテクチャを有し得る。
【0060】
トレーニングエンジン118は、強化学習技法を使用して、アクション選択ニューラルネットワーク114をトレーニングして、エージェントに環境を効率的に探査させるアクションを選択することができる。特に、トレーニングエンジン118は、アクション選択ニューラルネットワーク114をトレーニングして、環境とのその対話の過程にわたってエージェントによって受け取られた報酬の累積測定値(たとえば、報酬の時間割引合計)を最適化することができる。
【0061】
探査システム100は、時間ステップでエージェントによって実行されたアクションの結果として環境が移行した新しい状態の数120(すなわち、エージェントがその時間ステップでアクションを実行した後、しかし、エージェントが次の時間ステップで次のアクションを実行する前に環境が移行した新しい状態の数)に基づいて、各時間ステップにおける報酬を決定し得る。任意の先行する時間ステップで、環境がその状態に移行しなかった場合、状態は「新しい」と呼ばれる。これらの報酬の累積測定値を最適化するためにアクション選択ニューラルネットワーク114をトレーニングすることは、アクション選択ニューラルネットワークが、環境を可能な限り多くの新しい状態に移行させるアクションを選択することを促進し、それによって、エージェントが環境を効率的に探査することを可能にする。トレーニングエンジン118は、任意の適切な強化学習トレーニング技法、たとえば、アクタークリティック強化学習技法を使用して、アクション選択ニューラルネットワーク114をトレーニングすることができる。
【0062】
いくつかの実装形態では、探査システム100は、有限のあらかじめ定義された数の時間ステップ、たとえば、100時間ステップ、1000時間ステップ、または任意の他の適切な数の時間ステップの間だけ、エージェントが環境と対話することを可能にするアクションを選択するように構成されてもよい。あらかじめ定義された数の時間ステップは、環境を探査することに充てられ得る、たとえば時間または計算リソースの「バジェット」を表し得る。これらの実装形態では、アクション選択ニューラルネットワーク114は、各時間ステップに対応するパラメータ値の異なるセットを維持し、対応するパラメータ値のセットを使用して、各時間ステップでアクション選択出力を生成し得る。トレーニング中、各時間ステップに対応するパラメータ値のセットは、他の時間ステップに対応するパラメータ値のセットから独立して更新されてもよい。
【0063】
トレーニングエンジン118は、たとえば、アクション選択ニューラルネットワークを介してグラフニューラルネットワーク110に勾配を逆伝播することによって、グラフニューラルネットワーク110をトレーニングし得る。代替として、または組み合わせて、トレーニングエンジン118は、
図5を参照してより詳細に説明するように、「教師なしリンク予測」目的を最適化するようにグラフニューラルネットワーク110をトレーニングし得る。
【0064】
トレーニングエンジン118は、エージェントと1つまたは複数の「トレーニング」環境との対話について探査システム100をトレーニングして、1つまたは複数の以前は見たことがない環境において効率的な探査を可能にするアクションを選択することができる一般化可能なアクション選択ポリシーを学習することができる。特に、探査システムは、エージェントと以前は見たことがない環境との対話についてさらにトレーニングされることなく、エージェントが以前は見たことがない環境を効率的に探査することを可能にするアクションを選択し得る。一例では、ソフトウェアアプリケーションのユーザインターフェースを探査することによってソフトウェアテストを実行するために探査システムを使用する設定において、トレーニングエンジン118は、エージェントと限られた数の「トレーニング」ソフトウェアアプリケーションとの対話について探査システム100をトレーニングし得る。その後、探査システム100は、さらなるトレーニングなしに、以前は見たことがないソフトウェアアプリケーションのユーザインターフェースを効率的に探査するために配備され得る。
【0065】
図2は、複数の時間ステップにわたるエージェントによる環境の探査を特徴付ける対話履歴グラフの例を示す。グラフ内の各ノードは、環境の可能な状態を表し、各エッジは、環境のそれぞれの状態間の可能な移行を表す。グラフ202、204、206、および208は、それぞれ、時間ステップT=1、T=2、T=3、およびT=4に対応する。各グラフについて、暗いノードは、その時間ステップにおける環境の現在の状態を表し、斜線の入ったノードは、前の時間ステップにおいて訪問された環境状態を表し、斜線が入っていないノードは、その時間ステップの時点で環境が移行していない環境状態を表す。本明細書で説明される探査システムは、
図1を参照して説明されるように、その時間ステップで、および任意選択で、1つまたは複数の以前の時間ステップで、対話履歴グラフの符号化表現を処理することによって、各時間ステップでエージェントによって実行されるべきアクションを選択する。
【0066】
図3は、ランダム探査(302)を使用し、本明細書に記載の探査システム(304)を使用して、ソフトウェアアプリケーションのユーザインターフェースを探査する一例を示す。グラフ内の各ノードは、ソフトウェアアプリケーションのユーザインターフェース内の別個の「画面」を表し、グラフ内のエッジは、ユーザインターフェース内の画面間の可能な移行を表す。プラス記号(すなわち、「+」)を有するノードは、探査が開始するノードを示し、他のノードについて、ノードの陰影は、グラフィカルユーザインターフェースがノードに対応する状態に移行する回数を表し、陰影が濃いほど移行の回数が多いことを示す。ランダム探査技法は、グラフの局所近傍に留まり、特定のノードを多数回繰り返し再訪するが、本明細書で説明する探査システムは、グラフ内のほとんどのノードを少なくとも1回訪問することに成功することを諒解できよう。
【0067】
図4は、環境を探査するエージェントによって実行されるべきアクションを選択するための例示的なプロセス400のフロー図である。便宜上、プロセス400は、1つまたは複数の場所に位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラムされた探査システム、たとえば
図1の探査システム100は、プロセス400を実行することができる。
【0068】
システムは、エージェントと環境との対話履歴を表すグラフを取得する(402)。
【0069】
システムは、エージェントと環境との対話履歴を表すグラフの符号化表現を生成する(404)。
【0070】
システムは、アクション選択出力を生成するために、アクション選択ニューラルネットワークを使用して、グラフの符号化表現に基づいて入力を処理する(406)。
【0071】
システムは、アクション選択ニューラルネットワークによって生成されたアクション選択出力を使用して、エージェントによって実行されるべき可能なアクションのセットから1つのアクションを選択する(408)。
【0072】
図5は、
図1を参照して説明したように、たとえば対話履歴グラフなど、グラフの符号化表現を生成するための例示的なプロセス500のフロー図である。便宜上、プロセス500は、1つまたは複数の場所に位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラムされた探査システム、たとえば
図1の探査システム100のグラフニューラルネットワーク110は、プロセス500を実行することができる。
【0073】
システムは、グラフの各ノードの初期符号化表現を生成する(502)。グラフ内のノードの符号化表現は、数値の順序付けられた集合、たとえば、数値のベクトルまたは行列としてのノードの表現である。システムは、ノードに対応する環境状態の特性に基づいて、各ノードの初期符号化表現を生成し得る。たとえば、各環境状態が、ソフトウェアアプリケーションのグラフィカルユーザインターフェースのそれぞれの状態に対応する場合、システムは、1つまたは複数の埋め込みニューラルネットワーク層を使用して、グラフィカルユーザインターフェースの状態を示す画像を処理することによって、各状態の初期符号化表現を生成し得る。
【0074】
任意選択で(たとえば、既知の環境のあらゆる状態を表すグラフの場合)、各ノードの初期符号化表現は、環境が前の時間ステップでノードに対応する状態に移行したかどうかを指定するデータ(たとえば、バイナリ変数)を含んでいてもよい。
【0075】
システムは、複数の更新反復にわたってグラフのノードの符号化表現を反復的に更新する(504)。特に、各更新反復において、システムは、グラフ内の所与のノードの近傍ノードのセットの現在の符号化表現に基づいて、グラフの各所与のノードの現在の符号化表現を更新し得る。所与のノードの隣接ノードのセットは、(i)所与のノード、および(ii)エッジによって所与のノードに接続されるグラフ内の他の各ノード、を含み得る。
【0076】
一例では、システムは、反復(l+1)で、符号化表現
【0077】
【0078】
を決定することができ、式中、Vは、ノードのセットであり、各vは、以下のように、それぞれのノードにインデックスを付け、
【0079】
【0080】
式中、MLP()は、完全接続ニューラルネットワーク層を表し、Aggregate()は、たとえば、合計、平均、または最大集約演算を表し得、GRU()は、ゲート付き回帰型ユニットニューラルネットワークブロックを表し、Kは、あらかじめ定義された正の整数値であり、Nk(v)は、グラフ内でk以下の長さの経路によってノードvに接続されたノードのセットを表す。グラフ内の2つのノード間の経路長は、2つのノードを分離するエッジの数を指す。
【0081】
更新反復の数L(l=0,…,L-1)は、あらかじめ定義されていてもよく、たとえば、システムは、5回の更新反復、10回の更新反復、または任意の他の適切な数の更新反復にわたって、ノードの符号化表現を更新してもよい。
【0082】
システムは、最終更新反復後にグラフのノードの符号化表現を結合して、グラフの符号化表現を生成する(506)。一例では、システムは、グラフのノードの符号化表現を合計することによって、グラフfg(G)の符号化表現を生成し得る。別の例では、システムは、たとえば、以下のように、グラフのノードの符号化表現の重み付けされた線形結合として、グラフfg(G)の符号化表現を生成し得る。
【0083】
【0084】
式中、Vは、ノードのセットであり、各vは、それぞれのノードにインデックスを付け、各αvは、それぞれのノードに対応するスカラ重み付け係数であり、各
【0085】
【0086】
は、(ステップ504を参照して説明したように)最終更新反復後の対応するノードの符号化表現である。システムは、以下のように、各スカラ重み付け係数αvを決定し得る。
【0087】
【0088】
式中、Wは、学習された重み行列である。別の例では、システムは、リカレントニューラルネットワークを使用してノードの符号化表現を順次処理し、最後のノードの符号化表現をグラフの符号化表現として処理した後にリカレントニューラルネットワークの出力を識別することによって、グラフの符号化表現を生成し得る。
【0089】
グラフの符号化表現を生成するために使用されるグラフニューラルネットワークのパラメータ(たとえば、式(3)~(4)を参照して説明された完全接続された層MLP()およびゲート付き回帰型ユニットニューラルネットワークブロックGRU()のパラメータ、ならびに式(6)を参照して説明された学習された重み行列Wを含む)は、
図1を参照して説明されたように、アクション選択ニューラルネットワークを介して強化学習目的関数の勾配を逆伝播することによってトレーニングされ得る。代替として、または組み合わせて、グラフニューラルネットワークのパラメータは、以下によって与えられる教師なしリンク予測目的を最適化するようにトレーニングされ得る。
【0090】
【0091】
式中、Vは、グラフのノードのセットであり、iおよびjは、それぞれのノードにインデックスを付け、Ai,jは、ノードiがエッジによってノードjに接続されているかどうかを示し、Xは、学習された重み行列であり、
【0092】
【0093】
は、最終更新反復後のノードiに対応する符号化表現であり、
【0094】
【0095】
は、最終更新反復後のノードjに対応する符号化表現である。一例では、グラフニューラルネットワークは、(たとえば、パラメータ値を効果的に初期化するために)教師なしリンク予測目的を使用して、1つまたは複数の初期トレーニング反復についてトレーニングされ、その後、グラフニューラルネットワークを介して強化学習目的関数の勾配を逆伝播することによってトレーニングされ得る。教師なしリンク予測目的を最適化するためにグラフニューラルネットワークをトレーニングすることは、グラフニューラルネットワークが、グラフから構造情報を捕捉するノードの符号化表現を生成することを促進する。
【0096】
本明細書は、システムおよびコンピュータプログラム構成要素に関して「構成される」という用語を使用する。1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されるとは、システムが、動作中、システムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されるとは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作またはアクションを実行させる命令を含むことを意味する。
【0097】
本明細書に記載された主題および機能的動作の実施形態は、デジタル電子回路、有形に実施されたコンピュータソフトウェアまたはファームウェア、本明細書に開示される構造およびそれらの構造的均等物を含むコンピュータハードウェア、またはそれらの1つもしくは複数の組合せに実装することができる。本明細書に記載される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行される、またはデータ処理装置の動作を制御するための有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、またはそれらの1つもしくは複数の組合せとすることができる。代替的にまたは追加として、プログラム命令は、人工的に生成された伝搬信号、たとえば、データ処理装置によって実行するための適切な受信機装置への送信のために情報を符号化するために生成された機械生成電気、光学、または電磁信号上で符号化することができる。
【0098】
「データ処理装置」という用語は、データ処理ハードウェアを指し、たとえば、プログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイスおよび機械を包含する。装置は、FPGA(フィールドプログラマブルゲートアレイ)もしくはASIC(特定用途向け集積回路)などの専用論理回路でもよく、またはそれをさらに含むことができる。装置は、任意選択で、ハードウェアに加えて、コンピュータプログラムの実行環境を生成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つもしくは複数の組合せを構成するコードを含むことができる。
【0099】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれる、または記載されることもあるコンピュータプログラムは、コンパイルまたはインタープリタ型言語、宣言型言語または手続き型言語を含む、任意の形式のプログラミング言語で記述することができ、それは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境での使用に適した他のユニットとしてなど、あらゆる形式で配備できる。プログラムは、必ずしも必要はないが、ファイルシステム内のファイルに対応し得る。プログラムは、たとえば、マークアップ言語文書に記憶された1つまたは複数のスクリプトなど、他のプログラムまたはデータを保持するファイルの一部、当該のプログラム専用の単一のファイル、または、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルなど、複数のコーディネートされたファイルに記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するか、もしくは複数のサイトに分散され、データ通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように配備することができる。
【0100】
本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実行するようにプログラムされているソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用されている。一般に、エンジンは、1つまたは複数の場所にある1つまたは複数のコンピュータにインストールされた1つまたは複数のソフトウェアモジュールまたは構成要素として実装される。いくつかの場合には、1つまたは複数のコンピュータが特定のエンジンに専用であり、他の場合には、複数のエンジンを、同じ1つまたは複数のコンピュータにインストールし、そこにおいて実行することができる。
【0101】
本明細書に記載されたプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによって機能を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能コンピュータによって実行することができる。プロセスおよび論理フローは、たとえばFPGAまたはASICなどの専用論理回路によって、または専用論理回路と1つまたは複数のプログラムされたコンピュータとの組合せによっても実行することができる。
【0102】
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサ、またはその両方、あるいは任意の他の種類の中央処理ユニットに基づき得る。一般に、中央処理ユニットは、読取り専用メモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実施または実行するための中央処理ユニット、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理ユニットおよびメモリは、専用論理回路によって補う、またはそこに組み込むことができる。一般に、コンピュータは、たとえば磁気、光磁気ディスク、もしくは光ディスクなど、データを記憶するための1つもしくは複数の大容量記憶デバイスも含み、あるいは、1つもしくは複数の大容量記憶デバイスからデータを受信する、それにデータを転送する、またはその両方のために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはユニバーサルシリアルバス(USB)フラッシュドライブなどのポータブル記憶デバイス中に組み込むことができる。
【0103】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、一例として、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、たとえば内部ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含むあらゆる形態の不揮発性メモリ、メディアおよびメモリデバイスを含む。
【0104】
ユーザとの対話を提供するために、本明細書に記載される主題の実施形態は、ユーザに情報を表示するための、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびに、ユーザがコンピュータに入力を提供することができる、キーボード、およびマウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもでき、たとえば、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。さらに、コンピュータは、たとえば、ウェブブラウザから受信された要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送信することによってなど、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージをパーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに送信し、代わりに、ユーザから応答メッセージを受信することによって、ユーザと対話することができる。
【0105】
機械学習モデルを実装するためのデータ処理装置は、たとえば、機械学習のトレーニングまたは製作、すなわち推論、作業負荷の共通部分および計算集約的部分を処理するための専用ハードウェアアクセラレータユニットも含むことができる。
【0106】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装および配備することができる。
【0107】
本明細書に記載される主題の実施形態は、たとえばデータサーバとしてのバックエンド構成要素を含む、またはアプリケーションサーバなどのミドルウェア構成要素を含む、またはたとえば、ユーザが本明細書に記載された主題の実装と対話することができる、グラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有するクライアントコンピュータなどのフロントエンド構成要素を含む、あるいは1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実装することができる。システムの構成要素は、たとえば、通信ネットワークなど、任意の形式または媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、たとえばインターネットがある。
【0108】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバとは、一般に、互いに遠隔であり、典型的には、通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアントサーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、たとえば、クライアントとして動作するデバイスと対話しているユーザにデータを表示し、ユーザからユーザ入力を受信するために、データ、たとえば、HTMLページをユーザデバイスに送信する。たとえば、ユーザ対話の結果など、ユーザデバイスにおいて生成されたデータは、デバイスからサーバにおいて受信することができる。
【0109】
本明細書は、多くの具体的な実施の詳細を含むが、これらは、任意の発明の範囲または特許請求される可能性のある範囲に対する限定ではなく、むしろ特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるものとする。別個の実施形態の文脈において本明細書で説明されるいくつかの特徴は、単一の実施形態において組み合わせて実装することもできる。逆に、単一の実施形態の文脈で記載されている様々な特徴は、複数の実施形態で別々にまたは任意の適切な部分組合せで実装することもできる。さらに、特徴は、いくつかの組合せで作用するものとして上述されており、当初はそのように請求されているが、いくつかの場合、請求された組合せからの1つまたは複数の特徴を、組合せから削除することができ、請求された組合せは、部分組合せ、または部分組合せの変形を対象とし得る。
【0110】
同様に、動作が図面に示され、特許請求の範囲に特定の順序で記載されているが、これは、そのような動作が、望ましい結果を達成するために、示された特定の順序で、もしくは順番に実行されること、または図示されたすべての動作が実行されることを必要とするものとして理解されないものとする。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。さらに、上述した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものと理解されないものとし、記載されたプログラム構成要素およびシステムを、一般に、単一のソフトウェア製品に一緒に組み入れることができ、または複数のソフトウェア製品にパッケージ化することができることを理解されたい。
【0111】
主題の特定の実施形態が記載されている。他の実施形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲に列挙されたアクションは、異なる順序で実行され、依然として望ましい結果を達成することができる。一例として、添付の図面に示されるプロセスは、望ましい結果を達成するために、示された特定の順序または逐次的な順序を必ずしも必要としない。いくつかの場合には、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【0112】
100 探査システム
102 アクション
104 エージェント
106 環境
108 対話履歴グラフ
110 グラフニューラルネットワーク
112 符号化表現
114 アクション選択ニューラルネットワーク
116 アクション選択出力
118 トレーニングエンジン
120 新しい状態の数
302 ランダム探査
304 探査システム
400 プロセス
500 プロセス