(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-26
(54)【発明の名称】モデル拡張を用いた自己教師あり学習
(51)【国際特許分類】
G06N 3/0455 20230101AFI20240719BHJP
G06N 3/088 20230101ALI20240719BHJP
【FI】
G06N3/0455
G06N3/088
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024506943
(86)(22)【出願日】2022-01-25
(85)【翻訳文提出日】2024-04-03
(86)【国際出願番号】 US2022013743
(87)【国際公開番号】W WO2023014398
(87)【国際公開日】2023-02-09
(32)【優先日】2021-08-06
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-10-05
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-01-19
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】506332063
【氏名又は名称】セールスフォース インコーポレイテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100229448
【氏名又は名称】中槇 利明
(72)【発明者】
【氏名】リウ,ヅゥウェイ
(72)【発明者】
【氏名】シィォン,カイミン
(72)【発明者】
【氏名】リ,ヂィア
(72)【発明者】
【氏名】チェン,ヨンジュン
(57)【要約】
ニューラルネットワークシステムを提供するための方法は、訓練済ニューラルネットワークシステムを生成するためにニューラルネットワークに対して対照学習を実行することを含む。対照学習を実行することは、ニューラルネットワークシステムの第1のエンコーダに対して第1のモデル拡張を実行して、サンプルの第1の埋め込みを生成することと、第1のエンコーダに対して第2のモデル拡張を実行して、サンプルの第2の埋め込みを生成することと、第1の埋め込み及び第2の埋め込み基づくコントラスト損失を使用して、第1のエンコーダを最適化することと、を含む。訓練済ニューラルネットワークシステムが、タスクを実行するために提供される。
【特許請求の範囲】
【請求項1】
ニューラルネットワークシステムを提供するための方法であって、
訓練済ニューラルネットワークシステムを生成するために前記ニューラルネットワークシステムに対して対照学習を実行することを含み、前記対照学習を実行することは、
前記ニューラルネットワークシステムの第1のエンコーダに対して第1のモデル拡張を実行して、サンプルの第1の埋め込みを生成することと、
前記第1のエンコーダに対して第2のモデル拡張を実行して、前記サンプルの第2の埋め込みを生成することと、
前記第1の埋め込み及び前記第2の埋め込み基づくコントラスト損失を使用して、前記第1のエンコーダを最適化することと、
タスクを実行するために前記訓練済ニューラルネットワークシステムを提供することと、を含む、方法。
【請求項2】
前記第1のモデル拡張を実行することは、
前記第1のエンコーダに関連付けられた1つ以上のニューロンをランダムにマスキングすることによって、ニューロンマスキングを実行することか、
前記第1のエンコーダに関連付けられた1つ以上の層をドロッピングすることによって、層ドロッピングを実行することか、又は
第2のエンコーダを使用して、エンコーダ補完を実行することを含む、請求項1に記載の方法。
【請求項3】
前記ニューロンマスキングを実行することは、
マスキング確率に基づいて、前記第1のエンコーダに関連付けられた1つ以上の層の前記1つ以上のニューロンをランダムにマスキングすることを含む、請求項2に記載の方法。
【請求項4】
同じマスキング確率が各層に適用される、請求項3に記載の方法。
【請求項5】
異なるマスキング確率が異なる層に適用される、請求項3に記載の方法。
【請求項6】
前記層ドロッピングを実行することは、
前記第1のエンコーダに複数のアペンド層をアペンドすることと、
前記複数のアペンド層のうちの1つ以上をランダムにドロッピングすることと、を含む、請求項2に記載の方法。
【請求項7】
前記ニューロンマスキングは、前記第1のエンコーダのオリジナル層、又は前記複数のアペンド層のうちの1つに対して実行される、請求項6に記載の方法。
【請求項8】
前記エンコーダ補完を実行することは、
第2のエンコーダを事前訓練することによって、事前訓練済エンコーダを提供することと、
前記第1のエンコーダによって、前記サンプルの第1の中間埋め込みを提供することと、
前記事前訓練済エンコーダによって、前記サンプルの第2の中間埋め込みを提供することと、
対照学習のための前記第1の埋め込みを生成するために、前記第1の中間埋め込みと重み付けされた第2の中間埋め込みとを組み合わせることと、を含む、請求項2に記載の方法。
【請求項9】
前記第1のエンコーダ及び前記第2のエンコーダは、異なるタイプを有する、請求項1に記載の方法。
【請求項10】
前記第1のエンコーダは、トランスフォーマーベースのエンコーダであり、前記第2のエンコーダは、リカレントニューラルネットワーク(RNN)ベースのエンコーダである、請求項6に記載の方法。
【請求項11】
複数の機械可読命令を含む非一時的な機械可読媒体であって、前記複数の機械可読命令は、1つ以上のプロセッサによって実行されるときに、前記1つ以上のプロセッサに方法を実行させるように適応しており、前記方法は、
訓練済ニューラルネットワークシステムを生成するためにニューラルネットワークシステムに対して対照学習を実行することを含み、前記対照学習を実行することは、
前記ニューラルネットワークシステムの第1のエンコーダに対して第1のモデル拡張を実行して、サンプルの第1の埋め込みを生成することと、
前記第1のエンコーダに対して第2のモデル拡張を実行して、前記サンプルの第2の埋め込みを生成することと、
前記第1の埋め込み及び前記第2の埋め込み基づくコントラスト損失を使用して、前記第1のエンコーダを最適化することと、
タスクを実行するために前記訓練済ニューラルネットワークシステムを提供することと、を含む、非一時的な機械可読媒体。
【請求項12】
前記第1のモデル拡張を実行することは、
前記第1のエンコーダに関連付けられた1つ以上のニューロンをランダムにマスキングすることによって、ニューロンマスキングを実行することか、
前記第1のエンコーダに関連付けられた1つ以上の層をドロッピングすることによって、層ドロッピングを実行することか、又は
第2のエンコーダを使用して、エンコーダ補完を実行することを含む、請求項11に記載の非一時的な機械可読媒体。
【請求項13】
前記ニューロンマスキングを実行することは、
マスキング確率に基づいて、前記第1のエンコーダに関連付けられた1つ以上の層の前記1つ以上のニューロンをランダムにマスキングすることを含む、請求項12に記載の非一時的な機械可読媒体。
【請求項14】
前記層ドロッピングを実行することは、
前記第1のエンコーダに複数のアペンド層をアペンドすることと、
前記複数のアペンド層のうちの1つ以上をランダムにドロッピングすることと、を含む、請求項12に記載の非一時的な機械可読媒体。
【請求項15】
前記エンコーダ補完を実行することは、
第2のエンコーダを事前訓練することによって、事前訓練済エンコーダを提供することと、
前記第1のエンコーダによって、前記サンプルの第1の中間埋め込みを提供することと、
前記事前訓練済エンコーダによって、前記サンプルの第2の中間埋め込みを提供することと、
対照学習のための前記第1の埋め込みを生成するために、前記第1の中間埋め込みと重み付けされた第2の中間埋め込みとを組み合わせることと、を含む、請求項12に記載の非一時的な機械可読媒体。
【請求項16】
システムであって、
非一時的なメモリと、
前記非一時的なメモリに結合され、かつ前記非一時的なメモリから命令を読み出して、前記システムに方法を実行させるように構成された1つ以上のハードウェアプロセッサと、を含み、前記方法は、
訓練済ニューラルネットワークシステムを生成するためにニューラルネットワークシステムに対して対照学習を実行することを含み、前記対照学習を実行することは、
前記ニューラルネットワークシステムの第1のエンコーダに対して第1のモデル拡張を実行して、サンプルの第1の埋め込みを生成することと、
前記第1のエンコーダに対して第2のモデル拡張を実行して、前記サンプルの第2の埋め込みを生成することと、
前記第1の埋め込み及び前記第2の埋め込み基づくコントラスト損失を使用して、前記第1のエンコーダを最適化することと、
タスクを実行するために前記訓練済ニューラルネットワークシステムを提供することと、を含む、システム。
【請求項17】
前記第1のモデル拡張を実行することは、
前記第1のエンコーダに関連付けられた1つ以上のニューロンをランダムにマスキングすることによって、ニューロンマスキングを実行することか、
前記第1のエンコーダに関連付けられた1つ以上の層をドロッピングすることによって、層ドロッピングを実行することか、又は
第2のエンコーダを使用して、エンコーダ補完を実行することを含む、請求項16に記載のシステム。
【請求項18】
前記ニューロンマスキングを実行することは、
マスキング確率に基づいて、前記第1のエンコーダに関連付けられた1つ以上の層の前記1つ以上のニューロンをランダムにマスキングすることを含む、請求項17に記載のシステム。
【請求項19】
前記層ドロッピングを実行することは、
前記第1のエンコーダに複数のアペンド層をアペンドすることと、
前記複数のアペンド層のうちの1つ以上をランダムにドロッピングすることと、を含む、請求項17に記載のシステム。
【請求項20】
前記エンコーダ補完を実行することは、
第2のエンコーダを事前訓練することによって、事前訓練済エンコーダを提供することと、
前記第1のエンコーダによって、前記サンプルの第1の中間埋め込みを提供することと、
前記事前訓練済エンコーダによって、前記サンプルの第2の中間埋め込みを提供することと、
対照学習のための前記第1の埋め込みを生成するために、前記第1の中間埋め込みと重み付けされた第2の中間埋め込みとを組み合わせることと、を含む、請求項17に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、2022年1月19日に出願された米国非仮特許出願第17/579,377号、2021年10月5日に出願された米国非仮特許出願第63/252,375号、2021年8月6日に出願された米国仮出願第63/230,474号に対する優先権を主張し、これらは、それらの全体が参照により本明細書に組み込まれる。
【0002】
本開示は、概して、ニューラルネットワークに関し、より具体的には、機械学習システム及びモデル拡張を用いた対照自己教師あり学習(SSL)に関する。
【背景技術】
【0003】
機械学習における逐次的推奨は、シーケンス内の将来のアイテムを予測することを目的とし、重要な部分の1つは、シーケンス内のアイテム関係を特徴付けることである。
機械学習における従来のシーケンスモデリングは、シーケンスにおけるアイテム相関を明らかにする際の変換、例えば自己アテンションメカニズムの優位性を検証するために使用されることがある。例えば、トランスフォーマを使用して、アイテム埋め込みの重み付けされた集約によって、指定された位置に埋め込まれたシーケンスを推測することができ、重みは自己アテンションを介して学習される。
【0004】
しかし、データのスパース性の問題とシーケンス中のノイズは、逐次的推奨におけるニューラルネットワークモデル(モデルとも呼ばれる)の性能を損なう。前者は、逐次的モデルの複雑な構造が適切に訓練されるために密なコーパスを必要とするため、不十分な訓練に起因して性能を妨げる。後者はまた、ノイズの多いアイテムシーケンスが実際のアイテム相関を明らかにすることができないため、モデルの推奨能力を阻害する。
【0005】
したがって、改善された逐次的推奨のためのシステム及び方法を開発することは有利であろう。
【図面の簡単な説明】
【0006】
【
図1】本明細書に記載されるいくつかの実施形態による、コンピューティングデバイスの簡略図である。
【0007】
【
図2】本明細書に記載されるいくつかの実施形態による、モデル拡張を使用して対照学習を実行する方法の簡略図である。
【0008】
【
図3】本明細書に記載されるいくつかの実施形態による、例示的な対照自己教師あり学習システムを示す簡略図である。
【0009】
【
図4】本明細書に記載されるいくつかの実施形態による、対照学習のためのモデル拡張を実行する方法の簡略図である。
【0010】
【
図5A】本明細書に記載されるいくつかの実施形態による、ニューロンマスキングを使用してモデル拡張を実装するための例示的なニューロンマスキングモジュールの簡略図である。
【0011】
【
図5B】本明細書に記載されるいくつかの実施形態による、ニューロンマスキングを使用して、モデル拡張を用いた別の例示的な対照学習システムを例示する。
【0012】
【
図6A】本明細書に記載されるいくつかの実施形態による、層ドロッピングを使用して、モデル拡張を実装するための例示的な層ドロップモジュールを例示する。
【0013】
【
図6B】本明細書に記載されるいくつかの実施形態による、層ドロッピングを使用して、モデル拡張を用いた別の例示的な対照学習モデルを例示する。
【0014】
【
図7】本明細書に記載されるいくつかの実施形態による、ニューロンマスキング及び層ドロッピングを使用して、モデル拡張を用いた別の例示的な対照学習システムを例示する。
【0015】
【
図8】本明細書に記載されるいくつかの実施形態による、エンコーダ補完を使用して、モデル拡張を実装するための例示的なエンコーダ補完モジュールを例示する。
【0016】
【
図9】本明細書に記載されるいくつかの実施形態による、モデル拡張を用いた対照学習を実装するコンピューティングデバイスの簡略図である。
【0017】
図では、同じ符号を有する要素は、同じ又は同様の機能を有する。
【発明を実施するための形態】
【0018】
本明細書で使用される場合、「ネットワーク」という用語は、任意の人工知能ネットワーク又はシステム、ニューラルネットワーク又はシステム、及び/又はそこで実装されるか、又はそれと共に実装される任意の訓練又は学習モデルを含む任意のハードウェア又はソフトウェアベースのフレームワークを含んでもよい。
【0019】
本明細書で使用される場合、「モジュール」という用語は、1つ以上の機能を実行するハードウェア又はソフトウェアベースのフレームワークを含んでもよい。いくつかの実施形態では、モジュールは、1つ以上のニューラルネットワーク上で実装されてもよい。
【0020】
図1は、いくつかの実施形態による、コンピューティングデバイス100の略図である。
図1に示すように、コンピューティングデバイス100は、メモリ120に結合されたプロセッサ110を含む。コンピューティングデバイス100の動作は、プロセッサ110によって制御される。また、コンピューティングデバイス100は、1つのプロセッサ110のみを有して示されているが、プロセッサ110は、コンピューティングデバイス100内の1つ以上の中央処理ユニット、マルチコアプロセッサ、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路、グラフィック処理ユニット(GPU)などを代表するものであってもよいことが理解される。コンピューティングデバイス100は、スタンドアロンのサブシステムとして、コンピューティングデバイスに追加されたボードとして、及び/又は仮想マシンとして実装されてもよい。
【0021】
メモリ120は、コンピューティングデバイス100によって実行されるソフトウェア及び/又はコンピューティングデバイス100の動作中に使用される1つ以上のデータ構造を記憶するために使用されてもよい。メモリ120は、1つ以上のタイプの機械可読媒体を含んでもよい。機械可読媒体のいくつかの一般的な形態は、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD-ROM、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理媒体、RAM、PROM、EPROM、FLASH-EPROM、任意の他のメモリチップ又はカートリッジ、及び/又はプロセッサ又はコンピュータが読むように適応される任意の他の媒体を含んでもよい。
【0022】
プロセッサ110及び/又はメモリ120は、任意の好適な物理的配置に配置されてもよい。いくつかの実施形態では、プロセッサ110及び/又はメモリ120は、同じボード、同じパッケージ(例えば、システムインパッケージ)、同じチップ(例えば、システムオンチップ)などに実装されてもよい。いくつかの実施形態では、プロセッサ110及び/又はメモリ120は、分散、仮想化、及び/又はコンテナ化されたコンピューティングリソースを含んでもよい。そのような実施形態とマッチングして、プロセッサ110及び/又はメモリ120は、1つ以上のデータセンター及び/又はクラウドコンピューティング施設に位置してもよい。
【0023】
図示のように、メモリ120は、本明細書にさらに記載されるニューラルネットワークシステム及びモデルを実装及び/又はエミュレートするため、及び/又は本明細書にさらに記載される方法のうちのいずれかを実装するために使用され得るニューラルネットワークモデル130を含む。いくつかの例では、ニューラルネットワークモジュール130を使用して、構造化テキストを翻訳してもよい。いくつかの例では、ニューラルネットワークモジュール130は、構造化テキストを翻訳するために使用される翻訳システム又はモデルの反復訓練及び/又は評価も処理してもよい。いくつかの例では、メモリ120は、1つ以上のプロセッサ(例えば、プロセッサ110)によって動作するときに、1つ以上のプロセッサに本明細書にさらに詳細に記載される拡張方法を用いた対照学習を実行させ得る実行可能コードを含む非一時的な有形機械可読媒体を含んでもよい。いくつかの例では、ニューラルネットワークモジュール130は、ハードウェア、ソフトウェア、及び/又はハードウェアとソフトウェアの組み合わせを使用して実装されてもよい。図示のように、コンピューティングデバイス100は、ニューラルネットワークモジュール130に提供される入力140を受信し、次いで、ニューラルネットワークモジュール130が、出力150を生成する。
【0024】
上述したように、シーケンシャルレコメンドは、ユーザ行動における次のアイテムを予測することを目的とし、これは、シーケンスにおけるアイテム関係を特徴付けることによって解決され得る。シーケンスにおけるデータのスパース性とノイズの問題に対処するために、自己教師あり学習(SSL)パラダイムを使用して、性能を改善してもよく、これは、シーケンスの正のビューと負のビューの間の対照学習を使用する。様々な方法がデータの観点からの拡張を採用することによってビューを構築することがあるが、そのようなデータ拡張には様々な問題を有する。例えば、最適なデータ拡張方法を考案することが難しいことがある。さらに、データ拡張方法は、シーケンス相関を破壊することがある。さらに、このようなデータ拡張は、包括的な自己教師あり信号を組み込まないことがある。これらの問題に対処するために、モデル拡張を使用する対照SSLのためのシステム及び方法が、以下に記載される。
【0025】
図2及び
図3を参照すると、
図2は、モデル拡張を使用して対照SSLを実行するための方法200の簡略図であり、
図3は、方法200を実行するための例示的なニューラルネットワークシステム300である。方法200のプロセスのうちの1つ以上は、少なくとも部分的に、1つ以上のプロセッサによって実行されるときに、1つ以上のプロセッサに、方法200のプロセスのうちの1つ以上を実行させ得る非一時的な有形機械可読媒体に記憶された実行可能コードの形態で実装されてもよい。いくつかの実施形態では、方法200は、様々なタスクのためにニューラルネットワークモデルを使用して訓練を実行し、及び/又は推論を実行するために、ニューラルネットワークモジュール130によって使用されるニューラルネットワークモデルを決定する方法に対応してもよい。以下に記載される例では、シーケンシャルレコメンドタスクが使用されるが、方法200は、例えばシーケンシャルレコメンド、画像認識、及び言語モデリングを含む様々なタスクに使用されてもよい。
【0026】
様々な実施形態では、方法200は、例えば、データ拡張方法の補完として、対照学習のためのビューペアを構築するためのモデル拡張を実装する。さらに、ビューペアを構築するための単一レベルとマルチレベルの両方のモデル拡張方法が記載される。一例では、マルチレベルモデル拡張方法は、マルチレベルの様々なモデル拡張方法を含んでもよく、これは、例えば、ニューロンマスク方法、層ドロップ方法、及びエンコーダ補完方法を含む。別の例では、単一レベルモデル拡張方法は、単一レベルのモデル拡張を含んでもよく、モデル拡張のタイプは、特定のタスクに基づいて決定されてもよい。モデル拡張を使用することによって、方法200は、モデル拡張を用いて対照SSLのためのビューを構築することによって、(例えば、シーケンシャルレコメンド又は他のタスクのための)性能を改善する。
【0027】
方法200は、ブロック201において開始し、対照訓練が、訓練データの1つ以上のバッチを使用してニューラルネットワークモデル上で実行され、各バッチは、1つ以上のオリジナルサンプルを含んでもよい。以下の説明では、シーケンシャルレコメンドのための例示的なニューラルネットワークモデルが使用され、オリジナルサンプルは、オリジナルシーケンスとも呼ばれる。訓練バッチ内の各オリジナルシーケンスに対して、ブロック202~ブロック212が実行されてもよい。
【0028】
ブロック202において、訓練データからのオリジナルシーケンスが提供される。
図3の例を参照すると、シーケンスs
uとして示されるオリジナルシーケンス302が受信される。ここで、ユーザとアイテムのセットは、それぞれUとVで示される。各ユーザuは、時系列でアイテムのシーケンスs
u=[v
1,…,v
t,…,v
|su|]に関連付けられ、式中、v
tは、ユーザuが時間tで対話したアイテムを示し、|su|は、アイテムの総数である。シーケンシャルレコメンド問題は、以下のように定式化されてもよい。
【数1】
式中、v
|su|+1は、シーケンスにおける次のアイテムを示し、一例では、シーケンシャルレコメンドのためのニューラルネットワークシステムは、レコメンドのための最も高い確率を有する候補アイテムを選択してもよい。
【0029】
方法200は、ブロック204に進んでもよく、第1のデータ拡張が、オリジナルシーケンスに対して実行されて、第1の拡張シーケンスが生成される。いくつかの例では、第1のデータ拡張は任意選択である。例えば、切り取り、マスク、並べ替え、挿入、置換、及び/又はそれらの組み合わせを含む、様々なデータ拡張技術が使用されてもよい。
図3の例を参照すると、オリジナルシーケンス302に対して第1のデータ拡張を実行することによって、拡張シーケンス304が生成される。第1の拡張シーケンス304は、エンコーダ306の入力に提供される。
【0030】
方法200は、ブロック206に進んでもよく、第1のモデル拡張が、エンコーダ(例えば、
図3のエンコーダ306)に対して実行されて、エンコーダを拡張し、第1の拡張シーケンス(例えば、
図3の拡張シーケンス304)の第1の埋め込み(例えば、埋め込み310)が生成される。
図3の例に示すように、モデル拡張モジュール307は、エンコーダに対してモデル拡張を実行して、出力埋め込みを生成する拡張エンコーダを提供する。いくつかの実施形態では、(例えば、連結モジュール308による)連結が、拡張エンコーダの出力に対して実行されて、埋め込み310を生成してもよい。
【0031】
方法200は、ブロック208に進んでもよく、第2のデータ拡張が、オリジナルシーケンスに対して実行されて、第2の拡張シーケンスが生成される。いくつかの例では、第2のデータ拡張は任意選択である。いくつかの例では、第2のデータ拡張は、第1のデータ拡張とは異なり、第2の拡張シーケンスは、第1の拡張シーケンスとは異なる。
図3の例を参照すると、オリジナルシーケンス302に対して第2のデータ拡張を実行することによって、拡張シーケンス312が生成される。第2の拡張シーケンス312は、エンコーダ306の入力に提供される。
【0032】
方法200は、ブロック210に進んでもよく、第2のモデル拡張が、エンコーダ(例えば、
図3のエンコーダ306)に対して実行されて、第2の拡張シーケンス(例えば、
図3の拡張シーケンス312)の第2の埋め込み(例えば、
図3の埋め込み316)が生成される。
図3の例に示すように、モデル拡張モジュール307は、エンコーダ306に対してモデル拡張を実行して、出力埋め込みを生成する拡張エンコーダを提供する。いくつかの実施形態では、(例えば、連結モジュール308による)連結が、拡張エンコーダの出力に対して実行されて、埋め込み316を生成してもよい。
【0033】
方法200は、ブロック212に進んでもよく、第1の埋め込み及び第2の埋め込み(例えば、
図3の埋め込み310及び312)に基づく対照損失を使用して、エンコーダ(例えば、
図3のエンコーダ306)に対して最適化プロセスが実行される。例示的な対照損失は、次のように提供される。
【数2】
式中、
【数3】
及び
【数4】
は、オリジナルシーケンスs
uに対して構築された2つのビュー(例えば、2つの埋め込み)を示し、
【数5】
は、指示関数であり、sim(.,.)は、類似関数、例えば、内積関数である。各オリジナルシーケンスは2つのビューを有するので、N個のオリジナルシーケンスを有するバッチに対して、訓練のために2N個のサンプル/ビューが存在する。対照損失関数の分子(nominator)は正の対の間の一致の最大化を示し、分母は負の対を押しのけるものと解釈される。
【0034】
様々な実施形態では、シーケンシャルレコメンドのために、SSLと次のアイテム予測の両方が、シーケンス内のアイテム関係を特徴付け、これらを組み合わせて、最終的な損失Lを生成して、エンコーダを最適化してもよい。例示的な対照損失は、以下のように提供される。
【数6】
式中、
【数7】
は、次のアイテム予測に関連付けられた損失であり、
【数8】
は、上述のように、対照損失であり、
【数9】
は、対照のために同じオリジナルシーケンスの2つの異なるビューを使用して生成されてもよく、2つの異なるビューは、データ拡張、モデル拡張、及び/又はそれらの組み合わせを使用して生成される。
【0035】
ブロック216において、ブロック201における対照学習によって生成された訓練済ニューラルネットワークを使用して、タスク、例えば、シーケンスレコメンドタスク又は任意の他の好適なタスクを行ってもよい。例えば、訓練されたニューラルネットワークは、入力シーケンスに対する次のアイテム予測を生成するために使用されてもよい。
【0036】
図4、
図5A、
図5B、
図6A、
図6B、
図7、及び
図8を参照して、(例えば、
図2のブロック206及び210を実施するための)例示的なモデル拡張方法が記載される。
図4は、例示的なモデル拡張方法400を例示する。
図5Aは、ニューロンマスキングを使用してモデル拡張を実装するための例示的なニューロンマスキングモジュール(ニューロンドロップアウトモジュール又はドロップアウトモジュールとも呼ばれる)を示す。
図5Bは、モデル拡張のためのニューロンマスキングモジュールを含む例示的な対照学習システムを示す。
図6Aは、層ドロッピングを使用して、モデル拡張を実装するための例示的な層ドロッピングモジュールを示す。
図6Bは、モデル拡張のための層ドロッピングモジュールを含む例示的な対照学習システムを示す。
図7は、ニューロンマスキングと層ドロッピングの両方を有するモデル拡張モジュールを含む例示的な対照学習システムを示す。
図8は、エンコーダ補完を使用して、モデル拡張を実装するための例示的なエンコーダ補完モジュールを示す。
【0037】
図4を参照すると、1つ以上のレベルの異なるモデル拡張方法を使用し得る例示的なモデル拡張方法400が示されている。方法400は、ブロック402に進んでもよく、ニューロンマスキングが実行される。
図5Aを参照すると、エンコーダ(例えば、
図3のエンコーダ306)の例示的なニューロンマスキングモジュール500が示されている。ニューロンマスキングモジュール500は、隠れ埋め込み502(入力埋め込みとも呼ばれる)を受信し、フィードフォワードネットワーク(FFN)506を介して、次の層への出力埋め込み504を生成してもよい。いくつかの実施形態では、訓練中に、ニューロンマスクは、それぞれのマスキング確率pに基づいて、各FFN層506内の部分ニューロンのマスキングをランダムに実行してもよい。pの値が大きいほど、より強い埋め込み摂動が生じる。そのため、エンコーダ306内で異なるマスキング確率を適用することによって(例えば、
図3のデータ拡張シーケンス304及び312を用いるか、又はデータ拡張を用いずに)、1対の異なるビュー(例えば、
図3の埋め込み310及び316)が、モデルの観点から1つの同じオリジナルシーケンスから生成される。いくつかの実施形態では、訓練の各バッチ中に、マスクされたニューロンがランダムに選択され、モデル拡張に関する包括的な対照学習がもたらされる。いくつかの実施形態では、エンコーダの異なるFFN層に対して、異なる確率値が利用されてもよい。いくつかの実施形態では、ニューロンマスキング確率は、エンコーダの異なるFFN層に対して同じである。追加的に又は代替的に、ニューロンマスク方法400は、より多くの摂動を注入するために、ニューラルネットワークシステムのモデル内の任意のニューラル層に適用されてもよい。
【0038】
図5Bを参照すると、例示的な対照学習システム550は、ニューロンマスキングモジュール500を含むモデル拡張モジュールを含む。対照学習システム550は、以下に記載される相違点を除いて、
図3の対照学習システム300と実質的に同様である。
図5Bの例では、訓練中に、ニューロンマスキングモジュール500は、同じオリジナルシーケンス302の2つの異なるビューを生成するために、オリジナルエンコーダ306の1つ以上の層の部分ニューロンをランダムにマスキングすることによってニューロンマスキングを2回実行する。2つの異なるビューを使用して対照学習が実行される。
【0039】
ブロック404において、層ドロッピングが実行される。様々な実施形態では、ニューラルネットワークモデル(例えば、
図3のエンコーダ306)の部分層をドロッピングすることは、ニューラルネットワークモデルの深さを減少させ、複雑さを低減する。いくつかの実施形態では、ユーザ及びアイテムに対する浅い埋め込みのみが必要とされてもよい。いくつかの実施形態では、浅い層及び深い層における埋め込みは、両方とも、データの包括的な情報を反映するために重要である。そのため、訓練中に層の一部をランダムにドロップすることは、正規化の方法として機能してもよい。層ドロッピングを使用したモデル拡張は、層の深さが異なる埋め込み間の対照学習を可能にしてもよい。一例では、浅い埋め込みと深い埋め込みの間で対照学習が達成されるため、例えば、深い特徴の間でのみ対照的なモデルに対して強化が提供される。
【0040】
いくつかの実施形態では、オリジナルエンコーダ内の層はドロッピングされる。これらの実施形態のいくつかでは、層、特にオリジナルエンコーダ内の必要な層をドロッピングすることは、オリジナルのシーケンシャル相関を破壊することがあり、層をドロッピングすることによって生成されるビューは、正のペアではないことがある。代替的には、いくつかの実施形態では、オリジナルエンコーダを操作する代わりに、K個のFFN層がエンコーダの後に積み重ねられ、M個のFFN層が、訓練の各バッチ中にドロッピングされ、M及びKは整数であり、M<Kである。これらの実施形態では、層ドロッピング中に、オリジナルエンコーダの層はドロッピングされない。
【0041】
図6Aを参照すると、層ドロッピングを実装するための例示的な層ドロッピングモジュール600が示されている。層ドロッピングモジュール600は、埋め込み602(埋め込みとも呼ばれる)をオリジナルエンコーダ(例えば、
図3のエンコーダ306)から受信し、出力埋め込み604を生成してもよい。様々な実施形態では、層ドロッピングモジュール600は、エンコーダ306の後にK個の層606-1から606-Kをアペンドし、訓練の各バッチ中にM個の層(例えば、層606-2)をランダムにドロッピングしてもよく、Mは、0~K-1の整数であってよい。いくつかの実施形態では、同じK個のアペンドFFN層及びM個のドロッピングFFN層が、別個のビューのためにエンコーダ306に適用される。他の実施形態では、別々のビューに対して、異なるK個及びM個のものがエンコーダ306に適用される。
【0042】
図6Bを参照すると、例示的な対照学習システム650は、層ドロッピングモジュール600を含むモデル拡張モジュールを含む。層ドロッピングモジュール600は、多数の層(例えば、多層パーセプトロン(MLP)層、自己注意層、残差層、他の好適な層、及び/又はそれらの組み合わせ)をシーケンスエンコーダ306にアペンドすることによって、モデル拡張を実行してもよい。
図6Bの例では、訓練中に、層ドロッピングモジュール600は、同じオリジナルシーケンス302の2つの異なるビューを生成するために、オリジナルエンコーダ306に1つ以上の層をアペンドし、アペンドされた層をランダムにドロッピングすることによって、層ドロッピングを2回実行する。2つの異なるビューを使用して対照学習が実行される。
【0043】
図7を参照すると、例示的な対照学習システム700は、ニューロンマスキングと層ドロッピングの両方を実行するモデル拡張モジュール702を含む。対照学習システム700は、以下に記載される相違点を除いて、
図3の対照学習システム300と実質的に同様である。モデル拡張モジュール702は、いくつかの層(例えば、MLP層又は他の好適な層)をシーケンスエンコーダ306にアペンドし、訓練中に合計K個のアペンド層からM個の層をランダムにドロッピングすることによって、層ドロッピングを実行してもよい。さらに、モデル拡張モジュール702は、ニューロンマスキングを実行して、オリジナルエンコーダ306及び/又はアペンド層における1つ以上の層における部分ニューロンをランダムにマスクしてもよい。
【0044】
方法400は、ブロック406に進んでもよく、ニューロンマスキングが実行される。
【0045】
様々な実施形態では、自己教師あり学習中に、1つのシーケンスの2つのビューの埋め込みを生成するために、1つの単一のエンコーダが用いられてもよい。いくつかの実施形態では、単一のエンコーダを使用することは、複雑なシーケンシャル相関を明らかにするのに効果的であるかもしれないが、単一のエンコーダ上で対比することは、自己教師あり学習のための埋め込み崩壊問題をもたらすことがある。さらに、1つの単一のエンコーダは、単一の観点からのみアイテム関係を反映することがある。例えば、トランスフォーマエンコーダは、シーケンス埋め込みを推測するためにアイテム埋め込みのアテンティブ集約を採用しているが、RNN構造は、直接的なアイテム遷移を符号化するのにより好適である。したがって、いくつかの実施形態では、別個のエンコーダを使用して、対照学習のためのビューを生成してもよく、これにより、モデルが、アイテムの包括的なシーケンシャル関係を学習することが可能となってもよい。しかしながら、いくつかの実施形態では、異なるエンコーダを用いたシーケンスの2つのビューからの埋め込みは、自己教師あり学習のための非シャムパラダイムにつながることがあり、これは、訓練が困難であり、埋め込み崩壊の問題に悩まされることがある。追加的に、2つの別個のエンコーダが著しく多様なシーケンシャル相関を明らかにする例では、埋め込みは互いに非常に離れており、対照学習には悪いビューとなる。さらに、いくつかの実施形態では、2つの別個のエンコーダが、訓練フェーズ中に最適化されてもよいが、リコメンドを行うためのシーケンス埋め込みの推論のためにそれらを組み合わせることは、依然として問題となることがある。
【0046】
本明細書で説明されるエンコーダ補完方法は、対照学習のためのビューを生成するために、単一のエンコーダを使用すること、又は2つの別個のエンコーダを使用することから生じる問題に対処してもよい。様々な実施形態では、単一のエンコーダ又は2つの別個のエンコーダを用いた対照学習の代わりに、エンコーダ補完は、事前訓練済エンコーダを使用して、オリジナルエンコーダのためのモデル拡張を補完する。
図8を参照すると、エンコーダ補完を実行するための例示的なエンコーダ補完モジュール800が示されている。事前訓練段階では、エンコーダ306とは異なるエンコーダ806が、次のアイテム予測ターゲットで事前訓練されて、事前訓練済エンコーダ808が生成される。次いで、対照自己教師あり訓練段階中に、この事前訓練済エンコーダ808は、ビューのための別の埋め込み810を生成するために利用される。組み合わせ器812は、モデルエンコーダ306から生成されたビュー埋め込み814と、事前訓練済エンコーダ808からのビュー埋め込み810とを組み合わせる。いくつかの実施形態では、このモデル拡張は、SSLパラダイムの1つの分岐にある。事前訓練済エンコーダ306からの埋め込み810は、モデルエンコーダ808からの埋め込み814と組み合わせる(例えば、それに加える)前に、ハイパーパラメータγ(重みγとも呼ばれる)によって再スケーリングされてもよい。ハイパーパラメータγの値が小さいほど、別個のエンコーダ806から注入される摂動が少ないことに対応する。組み合わせ器912の出力埋め込みは、フィードフォワードネットワーク(FFN)812を介して次の層に渡されてもよい。事前訓練済エンコーダ808からの出力に異なる重みγを適用することによって、同じシーケンスの2つの異なるビューが対照学習のために提供される。
【0047】
いくつかの実施形態では、この事前訓練済エンコーダ808のパラメータは、対照自己教師あり訓練中に固定される。これらの実施形態では、対照自己教師あり訓練中に、この事前訓練済エンコーダ808に対する最適化が存在しない。さらに、推論段階では、エンコーダ306と808の両方を考慮する必要がなくなり、モデルエンコーダ306のみが使用される。
【0048】
図9を参照すると、本明細書に記載されるいくつかの実施形態による、モデル拡張を用いた対照学習を実装するために使用され得る例示的なコンピューティングデバイス900が例示されている。
図9に示すように、コンピューティングデバイス900は、メモリ920に結合されたプロセッサ910を含む。コンピューティングデバイス900の動作は、プロセッサ910によって制御される。また、コンピューティングデバイス900は、1つのプロセッサ910のみを有して示されているが、プロセッサ910は、コンピューティングデバイス900内の1つ以上の中央処理ユニット、マルチコアプロセッサ、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路、グラフィック処理ユニット(GPU)などを代表するものであり得ると理解される。コンピューティングデバイス900は、スタンドアロンのサブシステムとして、コンピューティングデバイスに追加されたボードとして、及び/又は仮想マシンとして実装されてもよい。
【0049】
メモリ920は、コンピューティングデバイス900によって実行されるソフトウェア及び/又はコンピューティングデバイス900の動作中に使用される1つ以上のデータ構造を記憶するために使用されてもよい。メモリ920は、1つ以上のタイプの機械可読媒体を含んでもよい。機械可読媒体のいくつかの一般的な形態は、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD-ROM、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理媒体、RAM、PROM、EPROM、FLASH-EPROM、任意の他のメモリチップ又はカートリッジ、及び/又はプロセッサ又はコンピュータが読むように適応される任意の他の媒体を含んでもよい。
【0050】
プロセッサ910及び/又はメモリ920は、任意の好適な物理的配置に配置されてもよい。いくつかの実施形態では、プロセッサ910及び/又はメモリ920は、同じボード、同じパッケージ(例えば、システムインパッケージ)、同じチップ(例えば、システムオンチップ)などに実装されてもよい。いくつかの実施形態では、プロセッサ910及び/又はメモリ920は、分散、仮想化、及び/又はコンテナ化されたコンピューティングリソースを含んでもよい。そのような実施形態とマッチングして、プロセッサ910及び/又はメモリ920は、1つ以上のデータセンター及び/又はクラウドコンピューティング施設に位置してもよい。
【0051】
いくつかの例では、メモリ920は、1つ以上のプロセッサ(例えば、プロセッサ910)によって動作するときに、1つ以上のプロセッサに本明細書にさらに詳細に記載される方法を実行させ得る実行可能コードを含む非一時的な有形機械可読媒体を含んでもよい。例えば、図示のように、メモリ920は、システム及びモデルを実装及び/又はエミュレートするため、及び/又は本明細書にさらに記載される方法のうちのいずれかを実装するために使用され得るニューラルネットワークモジュール930(例えば、
図1のニューラルネットワークモジュール130)のための命令を含む。いくつかの例では、ニューラルネットワークモジュール930は、モデル拡張を用いた対照学習を実装し、モデル拡張を用いた対照学習モジュールとも呼ばれてもよい。モデル拡張を用いた対照学習モジュール930は、例えば、オリジナルシーケンスなどの入力940を、データインターフェース915を介して受信してもよい。データインターフェース915は、ユーザがアップロードした入力シーケンスを受信するユーザインターフェース、又は以前に記憶されたシーケンスをデータベースから受信するか、又は取り出し得る通信インターフェースのいずれかであってもよい。モデル拡張を用いた対照学習モジュール930は、入力940に応答して、入力シーケンスに対する次のアイテムの予測などの出力950を生成してもよい。
【0052】
いくつかの実施形態では、モデル拡張を用いた対照学習モジュール930は、エンコーダを提供するためのエンコーダモジュール931と、ニューロンマスキングを実行するためのニューロンマスキングモジュール932と、層ドロッピングを実行するための層ドロッピングモジュール933と、エンコーダ補完を実行するためのエンコーダ補完モジュール934と、をさらに含んでもよい。
【0053】
コンピューティングデバイス100、400などのコンピューティングデバイスのいくつかの例は、1つ以上のプロセッサ(例えば、プロセッサ110)によって動作するときに、1つ以上のプロセッサに、方法200のプロセスを実行させ得る実行可能コードを含む非一時的な有形機械可読媒体を含んでもよい。本明細書で記載される方法/システムのプロセスを含み得る機械可読媒体のいくつかの一般的な形態(例えば、
図2~
図8の方法/システム)は、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD-ROM、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理媒体、RAM、PROM、EPROM、FLASH-EPROM、任意の他のメモリチップ又はカートリッジ、及び/又はプロセッサ又はコンピュータが読むように適応される任意の他の媒体である。
【0054】
発明の態様、実施形態、実装、又は用途を例示するこの説明及び添付の図面は、限定的なものと解釈されるべきではない。様々な機械的、組成的、構造的、電気的、及び動作上の変更は、この説明及び特許請求の範囲の精神及び範囲から逸脱することなく行われてもよい。いくつかの例では、本開示の実施形態を不明瞭にしないために、周知の回路、構造、又は技法が詳細に示されていないか、又は記載されていない。2つ以上の図の類似の数字は、同じ又は同様の要素を表す。
【0055】
この説明では、本開示と矛盾しないいくつかの実施形態を記載する特定の詳細が明記されている。実施形態の完全な理解を提供するために、多数の詳細が明記されている。いくつかの実施形態は、これらの特定の詳細の一部又は全部がなくても実施され得ると当業者に明らかであろう。本明細書に開示される特定の実施形態は、例示的であるが、限定的ではないことを意味する。当業者は、本明細書に具体的に記載されていないが、本開示の範囲及び精神内にある他の要素を認識してもよい。追加的に、不必要な繰り返しを回避するために、1つの実施形態に関連して示され、記載される1つ以上の特徴は、他の方法で具体的に記載されないか、又は1つ以上の特徴が一実施形態を非機能的にする場合を除いて、他の実施形態に組み込まれてもよい。
【0056】
例示的な実施形態が示され記載されたが、広範囲の修正、変更及び置換が、前述の開示において企図され、いくつかの例では、実施形態のいくつかの特徴を、他の特徴の対応する使用なしに採用してもよい。当業者であれば、多くの変形、代替、及び修正を認識するであろう。したがって、本発明の範囲は、以下の特許請求の範囲によってのみ限定されるべきであり、特許請求の範囲は、本明細書に開示された実施形態の範囲と一致する方式で広く解釈されることが適切である。
【国際調査報告】