(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022146915
(43)【公開日】2022-10-05
(54)【発明の名称】マルチタスクレコメンドシステムのための少数ショット学習
(51)【国際特許分類】
G06Q 30/06 20120101AFI20220928BHJP
【FI】
G06Q30/06 330
【審査請求】未請求
【請求項の数】30
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022042296
(22)【出願日】2022-03-17
(31)【優先権主張番号】63/164,152
(32)【優先日】2021-03-22
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】516172237
【氏名又は名称】アクセンチュア グローバル ソリューションズ リミテッド
(74)【代理人】
【識別番号】100102406
【弁理士】
【氏名又は名称】黒田 健二
(74)【代理人】
【識別番号】100100240
【弁理士】
【氏名又は名称】松本 孝
(72)【発明者】
【氏名】グアン,ラン
(72)【発明者】
【氏名】ション,グアンレイ
(72)【発明者】
【氏名】チャン,クリストファー イェンチュー
(72)【発明者】
【氏名】サブラモニア,ジャヤシュリー
(72)【発明者】
【氏名】サンダー,アーロン ジェームズ
(72)【発明者】
【氏名】カン,スクリヨール
(72)【発明者】
【氏名】ツァン,ウェンシャン
(72)【発明者】
【氏名】パルチュリ,アンウィタ
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049BB24
(57)【要約】 (修正有)
【課題】レコメンドソリューションの迅速な統合を可能にする。
【解決手段】方法は、エンティティと、製品のセットからの製品とを含むタプルのセットを受信し、各タプルについて、埋め込みモジュールにより、レコメンダネットワークへの入力として、個別の製品の製品プロファイル及びエンティティのエンティティプロファイルに基づき夫々生成される構造ベクトル、テキストベクトル及びカテゴリベクトルに基づき生成される総潜在ベクトルを生成し、エンティティのコンテキストを表すコンテキストベクトルに基づき、コンテキスト統合モジュールにより潜在コンテキストベクトルを生成し、マルチタスク損失関数を使用して少数ショット学習により訓練されているレコメンダネットワークに、総潜在ベクトル及び潜在コンテキストベクトルを入力し、エンティティに特有のレコメンドのセットを含む予測をレコメンダネットワークにより生成する。
【選択図】
図7
【特許請求の範囲】
【請求項1】
コンピュータに実装されたレコメンダシステムからレコメンドを提供する、コンピュータに実装された方法であって、前記方法は、
タプルのセットを受信するステップであって、各タプルは、エンティティと、製品のセットからの製品とを含む、前記受信するステップと、
各タプルについて、
埋め込みモジュールにより、レコメンダネットワークへの入力として総潜在ベクトルを生成するステップであって、前記総潜在ベクトルは、個別の製品の製品プロファイルおよび前記エンティティのエンティティプロファイルに基づきそれぞれ生成される構造ベクトル、テキストベクトル、およびカテゴリベクトルに基づき生成される、前記総潜在ベクトルを生成するステップ、
前記エンティティのコンテキストを表すコンテキストベクトルに基づき、コンテキスト統合モジュールにより潜在コンテキストベクトルを生成するステップ、および
前記レコメンダネットワークに前記総潜在ベクトルおよび前記潜在コンテキストベクトルを入力するステップであって、前記レコメンダネットワークは、マルチタスク損失関数を使用して少数ショット学習により訓練されている、前記入力するステップと、
前記エンティティに特有のレコメンドのセットを含む予測を前記レコメンダネットワークにより生成するステップと
を含む、方法。
【請求項2】
前記レコメンダネットワークは、複数の出力層を含み、各出力層は、個別のタスクに対応し、少数ショット学習の間に前記個別のタスクのために最適化されるパラメータを含む、請求項1に記載の方法。
【請求項3】
前記マルチタスク損失関数は、損失関数のセットを含み、各損失関数は、タスクのセット内の個別のタスクに対応する、請求項1に記載の方法。
【請求項4】
前記レコメンダネットワークは、中間層のセットを通して処理される連結ベクトルを提供するために前記総潜在ベクトルおよび前記潜在コンテキストベクトルを連結する連結層を含む、請求項1に記載の方法。
【請求項5】
前記埋め込みモジュールは、前記製品プロファイルおよび前記エンティティプロファイルの構造データを処理することにより個別のタプルに対する構造ベクトルを生成する構造埋め込みモジュールを含む、請求項1に記載の方法。
【請求項6】
前記埋め込みモジュールは、前記製品プロファイルおよび前記エンティティプロファイルのテキストデータを処理することにより個別のタプルに対するテキストベクトルを生成するテキスト埋め込みモジュールを含む、請求項1に記載の方法。
【請求項7】
前記埋め込みモジュールは、前記製品プロファイルおよび前記エンティティプロファイルのカテゴリデータを処理することにより個別のタプルに対するカテゴリベクトルを生成するエンコーディングモジュールを含む、請求項1に記載の方法。
【請求項8】
潜在コンテキストベクトルを生成するステップは、
前記コンテキストベクトルをオートエンコーダに入力するステップと、
前記オートエンコーダの中間層から前記潜在コンテキストベクトルを出力するステップと
を含む、請求項1に記載の方法。
【請求項9】
前記潜在コンテキストベクトルは、前記コンテキストベクトルよりも少ない次元を有する、請求項8に記載の方法。
【請求項10】
前記総潜在ベクトルは、前記エンティティのベースライン表現として提供されるオフセットベクトルにさらに基づく、請求項1に記載の方法。
【請求項11】
1つ以上のプロセッサに結合され、命令が格納されている1つ以上の非一時的コンピュータ可読ストレージ媒体であって、前記命令は、前記1つ以上のプロセッサにより実行されると、コンピュータに実装されたレコメンダシステムからレコメンドを提供するための動作を前記1つ以上のプロセッサに実行させ、前記動作は、
タプルのセットを受信することであって、各タプルは、エンティティと、製品のセットからの製品とを含む、前記受信することと、
各タプルについて、
埋め込みモジュールにより、レコメンダネットワークへの入力として総潜在ベクトルを生成することであって、前記総潜在ベクトルは、個別の製品の製品プロファイルおよび前記エンティティのエンティティプロファイルに基づきそれぞれ生成される構造ベクトル、テキストベクトル、およびカテゴリベクトルに基づき生成される、前記総潜在ベクトルを生成すること、
前記エンティティのコンテキストを表すコンテキストベクトルに基づき、コンテキスト統合モジュールにより潜在コンテキストベクトルを生成すること、および
前記レコメンダネットワークに前記総潜在ベクトルおよび前記潜在コンテキストベクトルを入力することであって、前記レコメンダネットワークは、マルチタスク損失関数を使用して少数ショット学習により訓練されている、前記入力することと、
前記エンティティに特有のレコメンドのセットを含む予測を前記レコメンダネットワークにより生成することと
を含む、1つ以上の非一時的コンピュータ可読ストレージ媒体。
【請求項12】
前記レコメンダネットワークは、複数の出力層を含み、各出力層は、個別のタスクに対応し、少数ショット学習の間に前記個別のタスクのために最適化されるパラメータを含む、請求項11に記載の1つ以上の非一時的コンピュータ可読ストレージ媒体。
【請求項13】
前記マルチタスク損失関数は、損失関数のセットを含み、各損失関数は、タスクのセット内の個別のタスクに対応する、請求項11に記載の1つ以上の非一時的コンピュータ可読ストレージ媒体。
【請求項14】
前記レコメンダネットワークは、中間層のセットを通して処理される連結ベクトルを提供するために前記総潜在ベクトルおよび前記潜在コンテキストベクトルを連結する連結層を含む、請求項11に記載の1つ以上の非一時的コンピュータ可読ストレージ媒体。
【請求項15】
前記埋め込みモジュールは、前記製品プロファイルおよび前記エンティティプロファイルの構造データを処理することにより個別のタプルに対する構造ベクトルを生成する構造埋め込みモジュールを含む、請求項11に記載の1つ以上の非一時的コンピュータ可読ストレージ媒体。
【請求項16】
前記埋め込みモジュールは、前記製品プロファイルおよび前記エンティティプロファイルのテキストデータを処理することにより個別のタプルに対するテキストベクトルを生成するテキスト埋め込みモジュールを含む、請求項11に記載の1つ以上の非一時的コンピュータ可読ストレージ媒体。
【請求項17】
前記埋め込みモジュールは、前記製品プロファイルおよび前記エンティティプロファイルのカテゴリデータを処理することにより個別のタプルに対するカテゴリベクトルを生成するエンコーディングモジュールを含む、請求項11に記載の1つ以上の非一時的コンピュータ可読ストレージ媒体。
【請求項18】
潜在コンテキストベクトルを生成することは、
前記コンテキストベクトルをオートエンコーダに入力することと、
前記オートエンコーダの中間層から前記潜在コンテキストベクトルを出力することと
を含む、請求項11に記載の1つ以上の非一時的コンピュータ可読ストレージ媒体。
【請求項19】
前記潜在コンテキストベクトルは、前記コンテキストベクトルよりも少ない次元を有する、請求項18に記載の1つ以上の非一時的コンピュータ可読ストレージ媒体。
【請求項20】
前記総潜在ベクトルは、前記エンティティのベースライン表現として提供されるオフセットベクトルにさらに基づく、請求項11に記載の1つ以上の非一時的コンピュータ可読ストレージ媒体。
【請求項21】
1つ以上のプロセッサと、
前記1つ以上のプロセッサに結合され、命令が格納されているコンピュータ可読ストレージデバイスと
を含むシステムであって、前記命令は、前記1つ以上のプロセッサにより実行されると、コンピュータに実装されたレコメンダシステムからレコメンドを提供するための動作を前記1つ以上のプロセッサに実行させ、前記動作は、
タプルのセットを受信することであって、各タプルは、エンティティと、製品のセットからの製品とを含む、前記受信することと、
各タプルについて、
埋め込みモジュールにより、レコメンダネットワークへの入力として総潜在ベクトルを生成することであって、前記総潜在ベクトルは、個別の製品の製品プロファイルおよび前記エンティティのエンティティプロファイルに基づきそれぞれ生成される構造ベクトル、テキストベクトル、およびカテゴリベクトルに基づき生成される、前記総潜在ベクトルを生成すること、
前記エンティティのコンテキストを表すコンテキストベクトルに基づき、コンテキスト統合モジュールにより潜在コンテキストベクトルを生成すること、および
前記レコメンダネットワークに前記総潜在ベクトルおよび前記潜在コンテキストベクトルを入力することであって、前記レコメンダネットワークは、マルチタスク損失関数を使用して少数ショット学習により訓練されている、前記入力することと、
前記エンティティに特有のレコメンドのセットを含む予測を前記レコメンダネットワークにより生成することと
を含む、システム。
【請求項22】
前記レコメンダネットワークは、複数の出力層を含み、各出力層は、個別のタスクに対応し、少数ショット学習の間に前記個別のタスクのために最適化されるパラメータを含む、請求項21に記載のシステム。
【請求項23】
前記マルチタスク損失関数は、損失関数のセットを含み、各損失関数は、タスクのセット内の個別のタスクに対応する、請求項21に記載のシステム。
【請求項24】
前記レコメンダネットワークは、中間層のセットを通して処理される連結ベクトルを提供するために前記総潜在ベクトルおよび前記潜在コンテキストベクトルを連結する連結層を含む、請求項21に記載のシステム。
【請求項25】
前記埋め込みモジュールは、前記製品プロファイルおよび前記エンティティプロファイルの構造データを処理することにより個別のタプルに対する構造ベクトルを生成する構造埋め込みモジュールを含む、請求項21に記載のシステム。
【請求項26】
前記埋め込みモジュールは、前記製品プロファイルおよび前記エンティティプロファイルのテキストデータを処理することにより個別のタプルに対するテキストベクトルを生成するテキスト埋め込みモジュールを含む、請求項21に記載のシステム。
【請求項27】
前記埋め込みモジュールは、前記製品プロファイルおよび前記エンティティプロファイルのカテゴリデータを処理することにより個別のタプルに対するカテゴリベクトルを生成するエンコーディングモジュールを含む、請求項21に記載のシステム。
【請求項28】
潜在コンテキストベクトルを生成することは、
前記コンテキストベクトルをオートエンコーダに入力することと、
前記オートエンコーダの中間層から前記潜在コンテキストベクトルを出力することと
を含む、請求項21に記載のシステム。
【請求項29】
前記潜在コンテキストベクトルは、前記コンテキストベクトルよりも少ない次元を有する、請求項28に記載のシステム。
【請求項30】
前記総潜在ベクトルは、前記エンティティのベースライン表現として提供されるオフセットベクトルにさらに基づく、請求項21に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野
本願は、全般的に、レコメンドソリューションの迅速な統合を可能にするレコメンダシステムと、コンピュータに実装されたレコメンダシステムからレコメンドを提供する、コンピュータに実装された方法とに関する。
【0002】
関連出願の相互参照
本願は、2021年3月22日出願の米国特許仮出願第63/164,152号の優先権を主張し、その開示全体が、参照により本願明細書に明示的に援用される。
【背景技術】
【0003】
企業は、複数の企業および顧客のネットワークを含み得る接続された環境の中で事業を遂行する。例として企業は、数あるコンテキストの中でも特に、企業が他の企業に商品および/またはサービスを提供するビジネス間(B2B:business-to-business)のコンテキストで運営する場合がある。企業は、企業の継続的な事業をサポートする技術を活用する。例示の技術としては、入力データを取り込み1つ以上のレコメンドを表す出力データを提供する、コンピュータに実装されたレコメンダシステム(レコメンドシステムとも呼ばれる)が挙げられる。例として企業は、レコメンダシステムを活用して、その事業に関連性があるであろう製品および/またはサービス(例えばB2Bのコンテキストでは企業が他の企業から調達できる製品/サービス)を特定することができる。従来、レコメンダシステムは、入力データを1つ以上の機械学習(ML:machine learning)モデルを通して処理し、1つ以上のレコメンドを表す出力データを提供する、MLシステムとして提供されている。しかしながら、従来のレコメンダシステムには技術的な欠点がある。
【0004】
例としてレコメンダシステムは、企業に関する自動的なプロファイル作成をサポートしておらず、それどころか、静的且つ非包括的なサードパーティデータソースに依存している。その結果、MLモデルの性能の精度が低下し、準最適なレコメンドがもたらされる。別の例として、データが疎であることによる問題が存在する。例として、従来のレコメンダシステムは、製品と顧客との間の相互作用の履歴(つまり顧客により購入された製品)を表す大量の訓練データに依存するが、そのような訓練データは不足し、不完全であり、且つ/またはノイズが多い場合もある。従来のMLモデルは、訓練データの不完全さおよびノイズの多さが原因で過剰適合しやすい場合があり、結果として生じる予測が準最適となる。これにより浮き彫りになるのが、いわゆるコールドスタート問題であり、つまりレコメンダシステムは、十分な訓練データがまだ集まっていない顧客または製品については、いかなる推論結果も導き出すことができない。さらに、B2Bでのレコメンドのシナリオでは、予測に大きな影響を与え得る技術面、組織面、および市場面の影響要因に関するコンテキストの変化が生じることが多い。従来のレコメンダシステムのMLモデルは、このような動的なコンテキストを組み入れておらず、MLモデルを準最適なものにしている。さらに別の例として、B2Bのコンテキストでは要件が非常に動的であり(例えばブランドプロモーション、製品のクロスセリング/アップセリングなど)、従来のレコメンダシステムは、異なる最適化目標およびシナリオ(例えば貢献マージン、カバレッジ、収益など)ならびに/またはその組み合わせに基づくレコメンドを提供できないか、またはその能力が限定的である。
【発明の概要】
【課題を解決するための手段】
【0005】
本開示の実装は、全般的に、レコメンドソリューションの迅速な統合を可能にするレコメンダシステムを対象とする。特に、本開示の実装は、ビジネス間(B2B)のコンテキストにおける様々なレコメンドユースケースのため、ウェブクロールとサードパーティデータコネクタの利用とを可能にし、機械学習(ML)モデルの訓練を実行し、MLまたは深層学習(DL:deep learning)モデルを構築する、レコメンダシステムを対象とする。
【0006】
一部の実装において、アクションは、タプルのセットを受信することであって、各タプルは、エンティティと、製品のセットからの製品とを含む、受信することと、各タプルについて、埋め込みモジュールにより、レコメンダネットワークへの入力として総潜在ベクトルを生成することであって、総潜在ベクトルは、個別の製品の製品プロファイルおよびエンティティのエンティティプロファイルに基づきそれぞれ生成される構造ベクトル、テキストベクトル、およびカテゴリベクトルに基づき生成される、総潜在ベクトルを生成すること、エンティティのコンテキストを表すコンテキストベクトルに基づき、コンテキスト統合モジュールにより潜在コンテキストベクトルを生成すること、およびレコメンダネットワークに総潜在ベクトルおよび潜在コンテキストベクトルを入力することであって、レコメンダネットワークは、マルチタスク損失関数を使用して少数ショット学習により訓練されている、入力することと、エンティティに特有のレコメンドのセットを含む予測をレコメンダネットワークにより生成することとを含む。この側面の他の実装は、対応するシステムと、装置と、方法のアクションを実行するように構成されコンピュータストレージデバイス上にエンコーディングされたコンピュータプログラムとを含む。
【0007】
これらおよび他の実装はそれぞれ、次の特徴のうちの1つ以上を任意選択で含むことができる:レコメンダネットワークが、複数の出力層を含み、各出力層が、個別のタスクに対応し、少数ショット学習の間に個別のタスクのために最適化されるパラメータを含むこと、マルチタスク損失関数が、損失関数のセットを含み、各損失関数が、タスクのセット内の個別のタスクに対応すること、レコメンダネットワークが、中間層のセットを通して処理される連結ベクトルを提供するために総潜在ベクトルおよび潜在コンテキストベクトルを連結する連結層を含むこと、埋め込みモジュールが、製品プロファイルおよびエンティティプロファイルの構造データを処理することにより個別のタプルに対する構造ベクトルを生成する構造埋め込みモジュールを含むこと、埋め込みモジュールが、製品プロファイルおよびエンティティプロファイルのテキストデータを処理することにより個別のタプルに対するテキストベクトルを生成するテキスト埋め込みモジュールを含むこと、埋め込みモジュールが、製品プロファイルおよびエンティティプロファイルのカテゴリデータを処理することにより個別のタプルに対するカテゴリベクトルを生成するエンコーディングモジュールを含むこと、潜在コンテキストベクトルを生成することが、コンテキストベクトルをオートエンコーダに入力することおよびオートエンコーダの中間層から潜在コンテキストベクトルを出力することを含むこと、潜在コンテキストベクトルが、コンテキストベクトルよりも少ない次元を有すること、ならびに総潜在ベクトルが、エンティティのベースライン表現として提供されるオフセットベクトルにさらに基づくこと。
【0008】
当然のことながら、本開示による方法は、本願明細書に記載される側面および特徴の任意の組み合わせを含むことができる。つまり、例として、本開示による装置および方法は、本願明細書に具体的に記載される側面および特徴の組み合わせに限定されず、示される側面および特徴の任意の組み合わせも含み得る。
【0009】
本開示の1つ以上の実装の詳細が、添付の図面および以下の説明に記載される。本開示の他の特徴および利点が、本記載、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0010】
【
図1】本開示の実装を実行することができる例示のシステムを示す。
【
図2A】本開示の実装によるレコメンダシステムを含む例示の概念アーキテクチャを示す。
【
図2B】本開示の実装による少数ショット学習の概念表現を示す。
【
図3】本開示の実装によるマルチモーダル埋め込みを表す例示の概念アーキテクチャを示す。
【
図4】本開示の実装によるコンテキスト統合のための潜在コンテキストベクトルの選択の例示の表現を示す。
【
図5】本開示の実装によるマルチタスクレコメンダネットワークの概念表現を示す。
【
図6】本開示の実装によるレコメンドワークフローの表現を示す。
【発明を実施するための形態】
【0011】
個々の図面内の同じ参照番号および名称は、同様の構成要素を示す。
【0012】
本開示の実装は、全般的に、レコメンドソリューションの迅速な統合を可能にするレコメンダシステムを対象とする。特に、本開示の実装は、ビジネス間(B2B)のコンテキストにおける様々なレコメンドユースケースのため、ウェブクロールとサードパーティデータコネクタの利用とを可能にし、機械学習(ML)モデルの訓練を実行し、MLまたは深層学習(DL)モデルを構築する、レコメンダシステムを対象とする。
【0013】
一部の実装において、アクションは、タプルのセットを受信することであって、各タプルは、エンティティと、製品のセットからの製品とを含む、受信することと、各タプルについて、埋め込みモジュールにより、レコメンダネットワークへの入力として総潜在ベクトルを生成することであって、総潜在ベクトルは、個別の製品の製品プロファイルおよびエンティティのエンティティプロファイルに基づきそれぞれ生成される構造ベクトル、テキストベクトル、およびカテゴリベクトルに基づき生成される、総潜在ベクトルを生成すること、エンティティのコンテキストを表すコンテキストベクトルに基づき、コンテキスト統合モジュールにより潜在コンテキストベクトルを生成すること、およびレコメンダネットワークに総潜在ベクトルおよび潜在コンテキストベクトルを入力することであって、レコメンダネットワークは、マルチタスク損失関数を使用して少数ショット学習により訓練されている、入力することと、エンティティに特有のレコメンドのセットを含む予測をレコメンダネットワークにより生成することとを含む。
【0014】
本開示の実装に関するコンテキストを提供すると、上記で提示されたように、企業は、複数の企業および顧客のネットワークを含み得る接続された環境の中で事業を遂行する。例として企業は、数あるコンテキストの中でも特に、企業が他の企業に商品および/またはサービスを提供するB2Bのコンテキストで運営する場合がある。企業は、企業の継続的な事業をサポートする技術を活用する。例示の技術としては、入力データを取り込み1つ以上のレコメンドを表す出力データを提供する、コンピュータに実装されたレコメンダシステム(レコメンドシステムとも呼ばれる)が挙げられる。例として企業は、レコメンダシステムを活用して、その事業に関連性があるであろう製品および/またはサービス(例えばB2Bのコンテキストでは企業が他の企業から調達できる製品/サービス)を特定することができる。従来、レコメンダシステムは、入力データを1つ以上のMLモデルを通して処理し、1つ以上のレコメンドを表す出力データを提供する、MLシステムとして提供されている。しかしながら、従来のレコメンダシステムには技術的な欠点がある。
【0015】
例としてレコメンダシステムは、企業に関する自動的なプロファイル作成をサポートしておらず、それどころか、静的且つ非包括的なサードパーティデータソースに依存している。その結果、MLモデルの性能の精度が低下し、準最適なレコメンドがもたらされる。別の例として、データが疎であることによる問題が存在する。例として、従来のレコメンダシステムは、製品と顧客との間の相互作用の履歴(つまり顧客により購入された製品)を表す大量の訓練データに依存するが、そのような訓練データは不足し、不完全であり、且つ/またはノイズが多い場合もある。従来のMLモデルは、訓練データの不完全さおよびノイズの多さが原因で過剰適合しやすい場合があり、結果として生じる予測が準最適となる。これにより浮き彫りになるのが、いわゆるコールドスタート問題であり、つまりレコメンダシステムは、十分な訓練データがまだ集まっていない顧客または製品については、いかなる推論結果も導き出すことができない。さらに、B2Bでのレコメンドのシナリオでは、予測に大きな影響を与え得る技術面、組織面、および市場面の影響要因に関するコンテキストの変化が生じることが多い。従来のレコメンダシステムのMLモデルは、このような動的なコンテキストを組み入れておらず、MLモデルを準最適なものにしている。さらに別の例として、B2Bのコンテキストでは要件が非常に動的であり(例えばブランドプロモーション、製品のクロスセリング/アップセリングなど)、従来のレコメンダシステムは、異なる最適化目標およびシナリオ(例えば貢献マージン、カバレッジ、収益など)ならびに/またはその組み合わせに基づくレコメンドを提供できないか、またはその能力が限定的である。
【0016】
これを考慮して、本開示の実装は、B2Bのコンテキストにおける様々なレコメンドユースケースのため、ウェブクロールとサードパーティデータコネクタの利用とを可能にし、MLモデルの訓練を実行し、ML/DLモデルを構築する、レコメンダシステムを対象とする。本願明細書にさらに詳細に記載されるように、本開示のレコメンダシステムは、インテリジェントデータエンリッチメント、少数ショット学習、マルチモーダル埋め込み、コンテキスト統合、およびマルチタスク評価を含む。一部の例においてインテリジェントデータエンリッチメントは、業界データ、ユニフォームリソースロケータ(URL:uniform resource locator)フィルレート、外部辞書、クロールデータ、および同様のものを用いてファーストパーティデータのエンリッチメントを行うデータエンリッチメントモジュールの集合を使用して提供される。一部の例において、レコメンダネットワークのグローバルパラメータの学習にメタ学習アルゴリズムを適用することにより少数ショット学習が使用され、(学習された)グローバルパラメータは、過去の相互作用が少ない(例えば疎なデータ、コールドスタート)企業向けの構成をガイドするために使用される。一部の例において、埋め込みのマルチモーダル学習が、(例えば、特に、利用可能な取引履歴データがほとんどまたはまったくない企業のケースにおいて)製品および顧客のプロファイルのリッチセマンティクスを捕捉してレコメンドの質を上げる。一部の例において、コンテキスト統合のために、オートエンコーダが使用されて、レコメンダネットワークへの入力として提供されるコンテキスト要因間の非線形相関が学習される。一部の例において、マルチタスク評価のために、レコメンダネットワークにおける損失関数が重み付き多目的コスト関数として定式化され、複数の方針(例えば貢献マージン、収益など)に対して最適化される。
【0017】
図1は、本開示の実装を実行することができる例示のシステム100を示す。例示のシステム100は、コンピューティングデバイス102、バックエンドシステム108、およびネットワーク106を含む。一部の例においてネットワーク106は、ローカルエリアネットワーク(LAN:local area network)、ワイドエリアネットワーク(WAN:wide area network)、インターネット、またはそれらの組み合わせを含み、ウェブサイト、デバイス(例えばコンピューティングデバイス102)、およびバックエンドシステム(例えばバックエンドシステム108)を接続する。一部の例において、ネットワーク106には、有線および/またはワイヤレスの通信リンク上でアクセス可能である。
【0018】
一部の例においてコンピューティングデバイス102は、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、携帯情報端末(PDA:personal digital assistant)、携帯電話、ネットワークアプライアンス、カメラ、スマートフォン、拡張汎用パケット無線サービス(EGPRS:enhanced general packet radio service)モバイル電話、メディアプレーヤ、ナビゲーションデバイス、電子メールデバイス、ゲーム機、またはこれらのデバイスもしくは他のデータ処理デバイスの任意の2つ以上の適切な組み合わせなど、任意の適切なタイプのコンピューティングデバイスを含むことができる。
【0019】
示されている例においてバックエンドシステム108は、少なくとも1つのサーバシステム112およびデータストア114(例えばデータベースおよびナレッジグラフ構造)を含む。一部の例において少なくとも1つのサーバシステム112は、ユーザがコンピューティングデバイスを使用して相互作用できる、コンピュータに実装された1つ以上のサービスをホストする。例としてサーバシステム112は、本開示の実装によるレコメンダシステムをホストすることができる。
【0020】
本開示の各実装が、B2Bを含む例示のユースケースを参照して、本願明細書にさらに詳細に記載される。特に、本開示の実装は、1つの会社(ビジネス)の製品(例えば商品および/またはサービス)を別の会社(ビジネス)による購入のためにレコメンドすることを参照して記載される。例として、本開示のマルチタスクレコメンダネットワークは、買主に対して購入するようレコメンドされる1つ以上の製品を決定するために、サプライヤにより使用可能である。ただし、本開示の実装は、任意の適切なユースケースにおいて適用可能であると考えられる。
【0021】
図2Aは、本開示の実装によるレコメンダシステムを含む例示の概念アーキテクチャ200を示す。
図2において、例示の概念アーキテクチャ200は、データエンリッチメントモジュール202および少数ショット学習モジュール204を含む。少数ショット学習モジュール204は、埋め込みモジュール206、コンテキスト統合モジュール208、およびマルチタスクレコメンダネットワーク210を含む。一部の例においてレコメンダシステムは、データエンリッチメントモジュール202および少数ショット学習モジュール204を含む。
図2の例には、1つ以上の非公開データソース220a、1つ以上の公開データソース220b、および1つ以上のエンティティデータソース220cが示されている。一部の例においてレコメンダシステムは、データエンリッチメントモジュール202と、少数ショット学習モジュール204と、データソース220a、220b、220cのうちの少なくとも1つとを含む。
【0022】
本開示の実装によると、データがデータソース220a、220b、220cから取得される。取得されたデータは、顧客(例えば企業、会社)を表現する種々の属性と、製品を表現する種々の属性と、コンテキストを表す属性とを表す。顧客を表現する例示の属性としては、ファーモグラフィックデータ(例えば設立年、本社所在地、拠点所在地(単数または複数)、従業員数、売上収益、時価総額、会計年度、購買サイクル)、および財務健全性(例えばクレジットスコア、財務上のランウェイ、最終資金調達日、支出)などを挙げることができるが、限定はされない。製品を表現する例示の属性としては、製品階層、製品カテゴリ、および同様のものを挙げることができるが、限定はされない。概して、コンテキストは、製品のレコメンドが発生する諸条件を記述する。コンテキストは、経済、技術、組織、および同様のものにおける変化により動的である。そのような変化は、会社の売上および購買予測に影響する。コンテキストを表現する例示の属性としては、雇用、レイオフ、方針転換、および同様のものを挙げることができるが、限定はされない。
【0023】
一部の例において、各非公開データソース220aは、1つ以上のエンティティ(例えば顧客)に関する非公開のデータを記録することができる。例として、サプライヤの観点からすると、非公開データソースは、特定の企業により供給される製品に関する内部情報および/または特定の企業の顧客に関する内部情報を表すデータを記録することができる。別の例として、買主の観点からすると、非公開データソースは、特定の企業による製品購入を表すデータおよび/または特定の企業のサプライヤを表すデータを記録することができる。一部の例において、非公開データソースに対するアクセスは制限される(例えば、買主は自らの非公開データソースにのみアクセスでき、サプライヤは自らの非公開データソースにのみアクセスできる)。一部の例において、各公開データソース220bは、公開データソースから提供されるデータを記録することができる。公開データソースの例としては、顧客のウェブサイトおよびニュースのウェブサイトが挙げられる。例として、顧客は、一般に閲覧可能なウェブサイトを保持している場合があり、それがウェブクローラを使用してクロールされることで、顧客に関するデータの収集が可能である。別の例として、報道機関は、一般に閲覧可能なウェブサイトを保持している場合があり、それがウェブクローラを使用してクロールされることで、顧客に関するデータの収集が可能である。別の例として、政府機関は、一般に閲覧可能なウェブサイトを保持している場合があり、それがウェブクローラを使用してクロールされることで、顧客に関するデータの収集が可能である(例えば、顧客により所有されている特許を掲載している米国特許商標庁(USPTO:United States Patent & Trademark Office)、米国証券取引委員会(SEC:Securities and Exchange Commission)へのファイリング、裁判所のウェブサイト)。一部の例において、各エンティティデータソース220cは、エンティティデータソースを管理するエンティティが専有しているデータを記録することができる。例として、サードパーティプロバイドが、顧客に関するデータをまとめることができ、そのデータを有料で利用可能にすることができる(例えばV12データプラットフォーム(V12 Data Platform))。
【0024】
一部の例において、データエンリッチメントモジュール202は、データソース220a、220b、220cのそれぞれから提供されたデータに基づき顧客データセットおよび製品データセットを生成する。例として、上記で提示されたように、データは、ファーストパーティデータを含むことができ、ファーストパーティデータは、顧客を表し、ウェブサイト(例えば顧客の製品ページ、USPTOのページ)をクロールすることにより取得される。一部の例において、データエンリッチメントモジュール202は、ファーストパーティデータをクリーニングし、(例えばV12データプラットフォームからの)業界データ、URLフィルレート、外部辞書、クロールデータ、および同様のものを用いてファーストパーティデータのエンリッチメントを行う。例として、本願明細書にさらに詳細に記載されるように、(例えば顧客データセットおよび製品データセットの)データセット記述が提供され、1つ以上のナレッジグラフ(KG:knowledge graph)が構築される。一部の例において、本願明細書にさらに詳細に記載されるように、埋め込みモジュール206は、(例えば、特に、利用可能な取引履歴データがほとんどまたはまったくない企業のケースにおいて)製品および顧客のプロファイルのリッチセマンティクスを捕捉してレコメンドの質を上げる埋め込み(例えば構造的、テキスト的、カテゴリ的)のマルチモーダル学習を実行する。
【0025】
さらに詳細には、データソース220a、220b、220cのそれぞれからのデータが処理されることで、構造データ、テキストデータ、およびカテゴリデータを提供可能である。一部の例において構造データは、データソース220a、220b、220cのうちの1つ以上に記録されたエンティティと、エンティティ間の関係とを表す。構造データは、本願明細書にさらに詳細に記載される1つ以上のKGに記録可能である。一部の実装において、会社、会社間の関係、会社と所在地との間の関係、会社と業界との間の関係、会社と製品との間の関係、製品と記述(例えば、)および/またはコード名との間の関係、その他可能な関係を表現するKGを、生成および保持(例えば定期的に更新)可能である。一部の例においてテキストデータは、データソース220a、220b、220cのうちの1つ以上のデータに記録されたテキスト(例えば文字列)を含む。一部の例においてカテゴリデータは、データソース220a、220b、220cのうちの1つ以上のデータの中で表現されるカテゴリを含む。
【0026】
KGは、データの集合として記述可能であり、エンティティと、エンティティ間の関係とを表現するスキーマに基づき関係付け可能である。データは(表形式でも提供されるとしても)グラフとして論理的に記述可能であり、別個のエンティティそれぞれが個別のノードにより表現され、エンティティのペア間の関係それぞれがノード間のエッジにより表現される。各エッジは関係に関連付けられ、エッジの存在は、そのエッジにより接続されたノード間に、その関連付けられた関係が存在することを表現する。例として、ノードAがアルファという会社を表現し、ノードBがベータという製品を表現し、エッジEが関係「製造者(is manufactured by)」に関連付けられている場合、グラフ内でエッジEに、ノードAからノードBに向かう方向にノードを接続させることは、アルファがベータを製造している会社であることを表現する。一部の例において、ナレッジグラフはスキーマに関係するナレッジを用いて拡張可能である(例えば、アルファは会社という概念であり、チャーリーは会社という概念であり、「供給先(supplies to)」は2つのエンティティ間/会社という概念のインスタンス間のプロパティまたは関係である)。スキーマに関係する情報の追加は、論証結果の評価をサポートする。ナレッジグラフは、多様な物理データ構造のいずれかにより表現可能である。例としてナレッジグラフは、トリプルにより表現可能であり、それぞれが2つのエンティティを順に、さらに第1のエンティティから第2のエンティティへの関係を表現する。例として、[アルファ,ベータ,製造者]または[アルファ,製造者,ベータ]は、同じ事実を表現する選択可能な形である。各エンティティおよび各関係は、複数のトリプルに含まれることが、可能であるとともに、一般的には含まれることになる。
【0027】
一部の例において各エンティティは、例としてレコードまたはオブジェクトとしてなど、ノードとしていったん格納されると、そのエンティティが有するすべての関係と、そのエンティティが関係する他のすべてのエンティティとに、リンクリストデータ構造を通してリンクされることが可能である。より具体的には、ナレッジグラフは、隣接情報が関係情報を含む隣接リストとして格納可能である。一部の例において、それぞれの別個のエンティティおよびそれぞれの別個の関係は、個別の一意の識別子を用いて表現される。ナレッジグラフにより表現されるエンティティは、有形の物または具体的な人である必要はない。エンティティは、特定の人、場所、物、芸術作品、概念、イベント、またはその他のタイプのエンティティを含むことができる。したがって、ナレッジグラフは、会社(例えばサプライチェーンの中のサプライヤ)間の関係を定義するデータ、会社と物との間の関係(例えば特定の製品が特定の会社により生産されていること)を定義するデータ、場所と物との間の関係(例えば特定の製品が特定の地理的位置から来ていること)を定義するデータ、会社と場所との間の関係(例えば会社の本社が特定の都市にあること)を定義するデータ、およびエンティティ間の他の種類の関係を含むことができる。
【0028】
一部の実装において各ノードは、ノードが表現するエンティティの種類に基づくタイプを有し、タイプはそれぞれ、そのタイプのノードによって表現されるエンティティについて保持可能なデータの種類と、データがどのように格納されるべきかとを規定する、スキーマを有することができる。例として、会社を表現するタイプのノードは、所在地、業界などの情報のためのフィールドを定義するスキーマを有することができるであろう。そのような情報は、タイプ特有のデータ構造のフィールドにより、またはノード-関係-ノードのトリプルのようなトリプルにより(例えば[会社の識別子,所在する,業界内(company identifier,is located,in industry)])、またはその他任意のあらかじめ定義された都合の良い形で、表現可能である。一部の例において、或るタイプのスキーマにより規定される情報の一部または全部が、ナレッジグラフ内のノードへのリンクにより表現可能である。例として、[1つの会社の識別子,その子会社,別の会社の識別子(one company identifier,subsidiary of,another company identifier)]では、別の会社の識別子はグラフ内のノードである。
【0029】
一部の例において、コンテキスト統合モジュール208は、オートエンコーダを使用して、レコメンダネットワークへの入力として提供されるコンテキスト要因間の非線形相関を学習する。例として、オートエンコーダニューラルネットワークが、例として平均二乗誤差(MSE:mean squared error)損失関数を用いる逆伝播および勾配降下アルゴリズムを使用して(例えばオフライン)訓練され、オートエンコーダへの入力の低次元表現である潜在コンテキストベクトルが、オートエンコーダの中間層から抽出される。一部の例において、マルチタスクレコメンダネットワーク210が、少数ショット学習を使用して訓練される。例として、本願明細書にさらに詳細に記載されるように、レコメンダネットワークのグローバルパラメータの学習にメタ学習アルゴリズムを適用することにより少数ショット学習が使用され、(学習された)グローバルパラメータは、過去の相互作用が少ない(例えば疎なデータ、コールドスタート)企業向けの構成をガイドするために使用される。一部の例において、マルチタスク評価のために、レコメンダネットワークにおける損失関数が重み付き多目的コスト関数として定式化され、複数の方針(例えば貢献マージン、収益など)に対して最適化される。
【0030】
図2Bは、本開示の実装による少数ショット学習の概念表現を示す。
図2の例では、
図2Aの少数ショット学習モジュール204は、タスクごとの訓練232およびタスク特有の学習234を含むグローバル訓練230を実行する。
図2Bの例において、訓練データセット(D
S
train)250(サポートセットとも呼ばれる)は、レコメンダネットワーク210を訓練するために使用され、テストデータセット(D
S
test)252(クエリセットとも呼ばれる)は、訓練(少数ショット学習)の反復ごとに(訓練済みの)レコメンダネットワーク210をテストするために使用される。
図2Bの例では、タスク特有損失モジュール240、ローカル重み更新モジュール242、共有タスク損失モジュール244、およびグローバル重み更新モジュール246が提供されている。
【0031】
訓練のために、データのセット(Datatotal)が訓練タスクのセット(Tmeta-train)に分割される。一部の例において、各訓練タスク(Tsi)は、特定の製品もしくはユーザを中心としたもの、またはより上位のカテゴリなどの特定のシナリオなど、個別のシナリオに対応する。例として、次の通りである。
Ts∈Tmeta-train,Ts={DS
train,DS
test}
【0032】
少数ショット学習では、特定のタスク(T
si)に対して勾配ステップがとられる場合にパラメータθ
3がそのタスク(T
si)に対して最適なパラメータに近くなるように、パラメータのセットが最適化される。ここで、タスクとは特定のシナリオ(例えば会社対製品)である。パラメータθ
3は、訓練中のマルチタスクレコメンダネットワークのタスク特有の出力層に対応する。したがって、少数ショット学習の目的は、単一のタスクではなくすべてのタスクに広く適用可能な内部特徴を学習することである。ローカル更新の間、マルチタスクレコメンダネットワークのパラメータθ
3はサポートセット(訓練データのセット)ごとに調整される。グローバル更新の間、マルチタスクレコメンダネットワークのパラメータθ
1は損失を最小化する。
図2Bに示されているように、太枠のコンポーネントはグローバル更新を表現し、太枠でないコンポーネントはローカル更新を表現する。したがって、
図2Bは、二重逆伝播(勾配降下法)を使用してマルチタスクレコメンダネットワークを訓練し、その結果、マルチタスクレコメンダネットワークがローカルおよびグローバル両方で最適化される概念を示す。
図2Bに示されているように、サポートセット(D
S
train)を使用してローカル更新のための損失が算出され、次に、それらの重みを使用して、クエリセット(D
S
test)を使用してグローバル更新のための損失が計算され、これらの重みのさらなる最適化/更新が行われる。
【0033】
図3は、本開示の実装によるマルチモーダル埋め込みを表す例示の概念アーキテクチャ300を示す。
図3の例は、製品プロファイルおよび会社プロファイルから提供されるテキストコンテンツ、構造コンテンツ、およびカテゴリコンテンツに加えて、異種情報ネットワーク(例えばデータソース220a、220b、220c)からの異なるセマンティック表現と、協調フィルタリングを統合する、
図2の埋め込みモジュール206の動作を示す。
【0034】
図3の例示の概念アーキテクチャ300は、構造ナレッジモジュール302、テキストナレッジモジュール304、カテゴリナレッジモジュール306、構造埋め込みモジュール308、テキスト埋め込みモジュール310、エンコーディングモジュール312、および総潜在ベクトル(TLV:total latent vector)モジュール314を含む。
【0035】
一部の例において構造ナレッジモジュール302は、製品プロファイル320および顧客プロファイル322から構造データを抽出し、構造データを構造埋め込みモジュール308に提供する。例として構造データは、本願明細書に記載されているように、ノードおよびエッジによりエンティティとエンティティ間の関係とを表現するKGから提供可能である。一部の例において構造埋め込みモジュール308は、構造データを処理して、構造ベクトル(SV:structural vector)330として提供される構造埋め込みを生成する。例として、限定はされないが、構造埋め込みモジュール308は、グラフ畳み込みネットワーク(GCN:graph convolution network)などの埋め込み手法を使用して構造データを処理することができる。概して、GCNは、KGなどのグラフを入力として受信し、グラフの構造の表現としての埋め込みを生成する。ここで、埋め込みは、多次元ベクトルであるSV330として提供される。
【0036】
一部の例においてテキストナレッジモジュール304は、製品プロファイル320および会社プロファイル322からテキストデータを抽出し、テキストデータをテキスト埋め込みモジュール310に提供する。一部の例においてテキスト埋め込みモジュール310は、テキストデータを処理して、テキストベクトル(TV:textual vector)332として提供されるテキスト埋め込みを生成する。例として、限定はされないが、テキスト埋め込みモジュール310は、トランスフォーマからの双方向エンコーダ表現(BERT:Bidirectional Encoder Representations from Transformers)などの埋め込み手法を使用して構造データを処理することができる。概して、BERTモデルは、テキストデータを入力として受信し、テキストデータの表現としての埋め込みを生成する。ここで、埋め込みは、多次元ベクトルであるTV332として提供される。
【0037】
一部の例においてカテゴリナレッジモジュール306は、製品プロファイル320および会社プロファイル322からカテゴリデータを抽出し、カテゴリデータをエンコーディングモジュール312に提供する。一部の例においてエンコーディングモジュール312は、カテゴリデータを処理して、カテゴリベクトル(CV:categorical vector)334として提供されるカテゴリ埋め込みを生成する。例として、限定はされないが、エンコーディングモジュール312は、ワンホットエンコーディングなどのエンコーディング手法を使用してカテゴリデータを処理することができる。概して、ワンホットエンコーダは、カテゴリデータを入力として受信し、カテゴリデータの表現としてのエンコーディングを生成する。ここで、エンコーディングは、多次元ベクトルであるCV334として提供される。
【0038】
本願明細書では、GCN、BERT、およびワンホットエンコーディングについて説明されているが、ベクトルを提供するために任意の適切な埋め込み手法および/またはエンコーディング手法が使用可能であると考えられる。
【0039】
一部の例においてTLVモジュール314は、SV330、TV332、およびCV334を処理して総潜在ベクトル(TLV)340を提供する。一部の例において、SV330、TV332、およびCV334の処理は、SV330、TV332、およびCV334を連結することを含む。一部の事例において、SV330、TV332、およびCV334は、異なる次元数のものであり得る。したがって、連結する前に、それぞれを共通次元数の密な形式に圧縮可能である。
【0040】
一部の実装において、オフセットベクトル(OV:offset vector)336がTLV340に寄与する(例えば、同じく連結に含められる)。一部の例においてOV336は、協調行列分解から提供される。例としてレコメンドシステムは、顧客および製品を表す履歴データを含むことができ、各顧客は1つ以上の製品を購入している。履歴データは、顧客および製品の行列として表現可能である。行列は、損失関数を考慮した各顧客に関するロジスティック回帰問題として処理可能であり、入力は製品の記述ベクトルである。損失関数を最小化することにより、各顧客に関する顧客埋め込みを提供可能である。結果として生じる、特定の顧客に関する顧客埋め込みは、顧客プロファイル322において表現された顧客に関するOV336として提供可能である。ここで、OV336は、履歴データに基づく個別の顧客のベースライン表現として機能し、OV336は、TLV340においてSV330、TV332、およびCV334により拡張される。
【0041】
図4は、本開示の実装によるコンテキスト統合のための潜在コンテキストベクトルの選択の例示の表現を示す。より具体的には、
図4は、潜在コンテキストベクトル(ベクトルLC
t)を提供する中間層402を含むオートエンコーダ400の少なくとも一部を示す。
図4の例は、マルチタスクレコメンダネットワーク210により出力されるレコメンドに影響を与える際に、(上記で提示された)動的コンテキストを表現する潜在コンテキストベクトル(ベクトルLC
t)を提供する、
図2のコンテキスト統合モジュール208の動作を示す。
【0042】
さらに詳細には、上述のように、製品レコメンドは、限定することなく例として、変化する技術インフラストラクチャ、財務健全性、政府のサポート、競争圧力、ベンダーサポート、経済的な変化、および同様のものなど、追加のコンテキスト上の根拠に依存することができる。そのようなコンテキスト上の要因は相関していることが多く、最終目的変数yとの関係を直接学習することは困難である。これを考慮して、本開示の実装は、(例えば
図4に示されている)オートエンコーダを使用して、異なるコンテキスト特徴間の相関を発見し、相対的に低い次元の表現、すなわち潜在コンテキストベクトル(ベクトルLC
t)における相関を抽出する。
【0043】
概して、オートエンコーダは、入力と等しいものとしてターゲット値を設定して逆伝播を適用する教師なし学習アルゴリズムとして説明可能な、ニューラルネットワークである。
図4の例において、コンテキストベクトル(ベクトルC
t)が、X
Nのコンテキスト特徴を含み、オートエンコーダ400への入力として提供される。概して、コンテキストベクトルは、次元の点で相対的に大きいものとすることができる(つまり、Nは相対的に大きな数、N≧100である)。オートエンコーダを使用することにより、深層が、相関およびパターンを明らかにし、潜在コンテキストベクトル(ベクトルLC
t)において表現される潜在コンテキストに変換される。一部の例において、オートエンコーダは、逆伝播および勾配降下アルゴリズムならびにMSE損失関数を使用してオフラインで別個に訓練される。潜在コンテキストベクトル(ベクトルLC
t)は、中間層から抽出されるものであり、入力の低次元表現である(例えば入力よりも低次元)。
【0044】
図5は、本開示の実装によるマルチタスクレコメンダネットワーク502(例えば
図2のレコメンダネットワーク210)の訓練の概念表現500を示す。
図5の例において概念表現500は、埋め込みモジュール504(例えば
図2の埋め込みモジュール206)およびコンテキスト統合モジュール506(例えば
図2のコンテキスト統合モジュール206)も含む。一部の実装において埋め込みモジュール504は、データエンリッチメントモジュール(例えば
図2Aのデータエンリッチメントモジュール202)からそれぞれ提供される製品プロファイル508および顧客プロファイル510を処理する。一部の例において埋め込みモジュール504は、マルチタスクレコメンダネットワーク502への入力として(例えば
図3を参照して本願明細書に記載された)TLVを提供する。一部の例においてコンテキスト統合モジュール506は、マルチタスクレコメンダネットワーク502への入力として(例えば
図4を参照して本願明細書に記載された)潜在コンテキストベクトルを提供する。
【0045】
概して、MLモデルは反復して訓練され、反復の間にMLモデルの1つ以上のパラメータが調整され、訓練データに基づき出力が生成される。各反復について、損失値が損失関数に基づき判断される。本願明細書にさらに詳細に記載されるように、本開示の実装は、複数の損失関数(例えばマルチタスク損失関数において具現化される)を使用する。損失値は、MLモデルの出力の精度の程度を表現する。損失値は、MLモデルの出力とMLモデルの期待される出力(期待される出力は訓練データから提供される)との間の差の程度の表現として説明可能である。一部の例において、損失値が期待値を満たさない(例えばゼロと等しくない)場合、MLモデルのパラメータは、訓練のさらなる反復において調整される。一部の事例においてこのプロセスは、損失値が期待値を満たすまで繰り返される。概して、訓練中、訓練データ内の顧客プロファイルと製品プロファイルとの間に多対多の関係がある。つまり、複数の顧客プロファイルおよび複数の製品プロファイルが訓練に使用される。
【0046】
本開示の実装のコンテキストにおいて、訓練は、埋め込みモジュールの埋め込み器の訓練およびレコメンダネットワークの訓練を含む。本開示の実装によれば、少数ショット学習は、埋め込みモジュールのネットワークパラメータ(例えばf(θ
1))の訓練およびレコメンダネットワークのネットワークパラメータ(例えばf(θ
3))の訓練を同時に含む。一部の例において、
図2Bに表現されているように、ローカル更新の間にネットワークパラメータθ
3が更新され、グローバル更新の間にネットワークパラメータθ
1およびネットワークパラメータθ
3が更新される。
【0047】
さらに詳細には、マルチタスクレコメンダネットワーク502は、複数のタスク、すなわち最適化を考慮するように訓練される。例示の最適化としては、製品の関連性、利益マージンの最大化、量の最大化、貢献マージン、収益の最大化、および多様性(例えば顧客にレコメンドされる製品の多様性)の最小化を挙げることができるが、限定はされない。したがって、マルチタスクレコメンダネットワーク502は、複数のタスク(最適化目標)を最適化する目的で訓練される。これを達成するために、マルチタスク損失関数528内に、複数の損失関数、つまり各最適化タスクのための損失関数が実装される。一部の例において損失関数は、ランキング損失および類似度に基づく損失を含むことができる。例示の損失関数としては、マージンランキング損失(例えば製品の関連性)、トリプレット損失(例えば類似度)、およびMSE(例えば利益マージン)を挙げることができるが、限定はされない。本願明細書には例示の損失関数が記載されているが、当然のことながら、本開示の実装は任意の適切な損失関数を使用して実現可能である。例示のマルチタスク損失関数は、次のように規定可能である。
Ln=minimize(L1(θshared,θtask1),L2(θshared,θtask2),L3(θshared,θtask3))
式中Lnはタスク特有の(つまり、最適化目標に特有の)損失関数(例えばペアワイズランキング損失関数、トリプレット損失、MSE)とすることができ、θsharedはすべての損失に共通のネットワークであり、θtaskは個々の損失に特有である。
【0048】
図5の例において、マルチタスクレコメンダネットワーク502は、連結層520、層のセット522(例えば、3つの層が示されているが、より多くの層が含まれることが可能である)、出力層524、526、およびマルチタスク損失関数528を含む。連結層520は、埋め込みモジュール504からTLV(
図3を参照して本願明細書に記載されたマルチモーダル埋め込み)を、(
図4を参照して本願明細書に記載された)コンテキスト統合モジュール506から潜在コンテキストベクトル(ベクトルLC
t)を受信する。連結モジュール520は、TLVおよびベクトルLC
tを連結して、層のセット522に入力される連結ベクトルを提供する。一部の例において、TLVおよびベクトルLC
tを連結する前に、一方または両方が処理されて、その個別の値が、適切な次元を有する一定の範囲にされる。一部の例において、前処理は、任意の適切な正規化手法(例えばMinMaxScaler)を含むことができる。
【0049】
本開示の実装によれば、マルチタスクレコメンダネットワーク502は、複数の出力層(例えば
図5に示されている出力層524、526)を含み、各出力層は、個別の最適化目標に対応する。例として出力層524は、第1の最適化目標(例えば利益マージンの最大化)に対応することができ、出力層526は、第2の最適化目標(例えば製品レコメンドの多様性の最小化)に対応することができる。
図5には2つの出力層が示されているが、最適化目標の数に応じて任意の適切な数の出力層を提供可能であると考えられる。
図5に示されているように、各出力層524、526は、層のセット522の出力を共有する。つまり、層のセット522の中の最後の層の出力は、出力層524、526のそれぞれへの入力として提供される。一部の例において各出力層524、526は、個別の最適化目標に応じて、任意の適切なタイプの出力層とすることができる。例示のタイプの出力層としては、シグモイド関数および線形層を挙げることができるが、限定はされない。
【0050】
一部の実装において、出力層524、526の出力は、重み付き和として合計される。つまり、各出力層524、526の出力に重みが適用され、重み付き和が提供される。一部の例において、重みは、個別の出力が訓練において有する影響力を調整する。つまり、例として、すべての最適化タスクが同等とはみなされず、一部がほかよりも重要とみなされることもある。よって、重みは、より重要な最適化目標が、より重要でない最適化目標よりも、結果として生じる損失値により強く影響することを可能にする。例として、利益の多様性の最大化は、利益マージンの最小化よりも重要な場合がある。よって、利益マージンに対応する出力層に適用される重みを、製品の多様性に対応する出力層に適用される重みよりも大きくすることができる。一部の例においてマルチタスク損失関数528は、マルチタスクレコメンダネットワーク502の全体的損失値を判断し、全体的損失値に基づき選択的に訓練を継続する(例えば、訓練の次の反復を実行して全体的損失値をさらに最小化する)。
【0051】
上記で提示されたように、本開示の実装は、少数ショット学習を使用してマルチタスクレコメンダネットワーク502を訓練する。概して、少数ショット学習は、MLモデル、このケースではマルチタスクレコメンダネットワーク502を、比較的少量の訓練データを使用して訓練する手法として説明可能である。少数ショット学習は、MLモデルがメタ訓練フェーズ中に関係するいくつかのタスクに対して訓練される、メタ学習の一種としても説明可能である。例として、少数ショット学習の間、MLモデルは、様々なタスクに共通する表現を学習するように訓練され、その共通の表現に加えてタスク特有の分類器が訓練される。MLモデルは、少数ショット学習を使用した訓練の後、新たなデータ(例えば訓練データにおいて表現されていないデータ)を認識し、分類することができる。したがって、本開示の実装は、少数ショット学習を活用して、データの疎性(つまり利用可能な訓練データが比較的少ないこと)ならびにコールドスタート(つまり訓練データに含まれていない新たなデータ)に対処する。
【0052】
図6は、本開示の実装によるレコメンドワークフロー600の表現を示す。より具体的には、
図6の例は、レコメンドを提供するための(訓練済みの)マルチタスクレコメンダネットワークの、訓練後の使用(つまり推論フェーズ)を表現している。
図6の例において、この表現は、マルチタスクレコメンダモジュール602、タスクのセット604、およびランキングモジュール606を含む。
【0053】
マルチタスクレコメンダモジュール602は、(訓練済みの)マルチタスクレコメンダネットワーク(例えば訓練の後の
図5のマルチタスクレコメンダネットワーク502)を実行する。一部の例においてマルチタスクレコメンダモジュール602は、入力のセット610を受信し、各入力は、顧客と製品とのペア(例えば顧客C
1と製品のセット{P
1,…,P
n}内の製品P
iとを表現するタプル[C
1,P
i])を含む。一部の例において製品のセットは、顧客C
1に提案するために利用できるであろう製品データベース内の全製品を含む。マルチタスクレコメンダモジュール602は、スコアのセット{y
task1,…,y
taskn}を出力し、各スコアy
taskiは個別のタプル[C
1,P
i]に関連し、マルチタスク損失関数により決定される。一部の例において、各スコアは個別の最適化目標を表現する。個々の損失関数のスコアが合計されて、ランキングモジュール606に提供される各タプルの総スコアが出力される。合計が行われる間に重み(w)が導入されることで、総スコアに対して異なる損失が異なる影響を与えることを可能にすることができる。したがって、各タプルは、マルチタスクレコメンダモジュール602によって別々に処理され、個別の総スコアがランキングモジュール606に提供される。ランキングモジュール606は、総スコアに基づきタプルをソートし、ランキングして、ランキングされたレコメンドのセット620を出力として提供する。ランキングされたレコメンドのセットは、顧客C
1にレコメンド可能であろう製品を表現する。
【0054】
図7は、本開示の実装において実行可能な例示のプロセス700を示す。一部の例において例示のプロセス700は、1つ以上のコンピューティングデバイスにより実行される1つ以上のコンピュータ実行可能プログラムを使用して提供される。
【0055】
複数のデータソースからのデータが受信される(702)。例として、本願明細書に詳細に記載されているように、データは、
図2Aのデータソース220a、220b、220cから受信され、顧客(例えば企業、会社)を表現する種々の属性と、製品を表現する種々の属性と、コンテキストを表す属性とを表す。一部の例において、各非公開データソース220aは、1つ以上のエンティティ(例えば顧客)に関する非公開のデータを記録でき、各公開データソース220bは、公開データソースから提供されるデータを記録でき、各エンティティデータソース220cは、エンティティデータソースを管理するエンティティが専有しているデータを記録できる。データエンリッチメントおよびKGの生成(または更新)が実行される(704)。例として、本願明細書に詳細に記載されているように、データエンリッチメントモジュール202は、データソース220a、220b、220cのそれぞれから提供されたデータに基づき顧客データセットおよび製品データセットを生成する。一部の例において、データエンリッチメントモジュール202は、ファーストパーティデータをクリーニングし、(例えばV12データプラットフォームからの)業界データ、URLフィルレート、外部辞書、クロールデータ、および同様のものを用いてファーストパーティデータのエンリッチメントを行う。例として、(例えば顧客データセットおよび製品データセットの)データセット記述が提供され、1つ以上のKGの構築および/または更新(例えば最近受信されたデータに基づく既存のKGの更新)が行われる。
【0056】
マルチタスクレコメンダネットワークを訓練するために、少数ショット学習が実行される(706)。例として、本願明細書に詳細に記載されているように、訓練は、埋め込みモジュールの埋め込み器の訓練およびレコメンダネットワークの訓練を含む。本開示の実装によれば、少数ショット学習は、埋め込みモジュールのネットワークパラメータ(例えばf(θ
1))の訓練およびレコメンダネットワークのネットワークパラメータ(例えばf(θ
3))の訓練を同時に含む。一部の例において、
図2Bに表現されているように、ローカル更新の間にネットワークパラメータθ
3が更新され、グローバル更新の間にネットワークパラメータθ
1およびネットワークパラメータθ
3が更新される。本願明細書に記載されているように、マルチタスクレコメンダネットワークは、複数のタスク、すなわち最適化を考慮するように訓練される。例示の最適化としては、製品の関連性、利益マージンの最大化、量の最大化、貢献マージン、収益の最大化、および多様性(例えば顧客にレコメンドされる製品の多様性)の最小化を挙げることができるが、限定はされない。したがって、マルチタスクレコメンダネットワークは、複数のタスク(最適化目標)を最適化する目的で訓練される。これを達成するために、マルチタスク損失関数内に、複数の損失関数、つまり各最適化タスクのための損失関数が実装される。
【0057】
(訓練済みの)マルチタスクレコメンダネットワークが、本番での使用のために展開される(708)。例として、本願明細書に詳細に記載されているように、マルチタスクレコメンダモジュール602は、(訓練済みの)マルチタスクレコメンダネットワーク(例えば訓練の後の
図5のマルチタスクレコメンダネットワーク502)を実行する。一部の例においてマルチタスクレコメンダモジュール602は、入力のセット610を受信し、各入力は、顧客と製品とのペア(例えば顧客C
1と製品のセット{P
1,…,P
n}内の製品P
iとを表現するタプル[C
1,P
i])を含む。一部の例において各タプルは、マルチタスクレコメンダモジュール602によって別々に処理され、ランキングモジュール606に対して個別の総スコアが提供される。ランキングモジュール606は、総スコアに基づきタプルをソートし、ランキングして、ランキングされたレコメンドのセット620を出力として提供する。ランキングされたレコメンドのセットは、顧客C
1にレコメンド可能であろう製品を表現する。
【0058】
本明細書に記載された実装およびすべての機能動作は、デジタル電子回路構成において、または本明細書で開示された構造およびその構造上の等価物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらのうちの1つ以上の組み合わせにおいて実現され得る。実装は、1つ以上のコンピュータプログラム製品(つまりデータ処理装置により実行されまたはデータ処理装置の動作を制御するようコンピュータ可読媒体上にエンコーディングされたコンピュータプログラム命令の1つ以上のモジュール)として実現されてもよい。コンピュータ可読媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、メモリデバイス、機械可読伝播信号をもたらす物質の構成、またはそれらのうちの1つ以上の組み合わせとされてもよい。「コンピューティングシステム」という用語は、データを処理するすべての装置、デバイス、および機械を含み、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む。装置は、ハードウェアに加えて、対象のコンピュータプログラム(例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つ以上の任意の適切な組み合わせを構成するコード)の実行環境を作り出すコードを含んでもよい。伝播信号とは、適切な受信機装置に送信される情報をエンコーディングするために生成される人工的に生成された信号(例えば機械生成された電気信号、光信号、または電磁信号)である。
【0059】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイル型またはインタープリタ型言語を含む任意の適切な形態のプログラミング言語で書かれてもよく、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境での使用に適した他のユニットとしてを含め、任意の適切な形態で展開されてもよい。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するとは限らない。プログラムは、他のプログラムもしくはデータを保有するファイルの一部(例えば、マークアップ言語ドキュメントに格納される1つ以上のスクリプト)、対象のプログラム専用の単一ファイル、または複数の連携ファイル(例えば1つ以上のモジュール、サブプログラム、またはコードの各部分を格納する複数ファイル)に格納されてもよい。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に位置するかもしくは複数の場所に分散され通信ネットワークにより相互接続された複数のコンピュータ上で実行されるよう展開されてもよい。
【0060】
本明細書に記載されたプロセスおよび論理フローは、入力データに作用し出力を生成することにより機能を実行する1つ以上のコンピュータプログラムを実行する、1つ以上のプログラマブルプロセッサにより実行されてもよい。プロセスおよび論理フローは、専用論理回路構成(例えばFPGA(field programmable gate array:フィールドプログラマブルゲートアレイ)またはASIC(application specific integrated circuit:特定用途向け集積回路))によっても実行でき、装置は専用論理回路構成としても実装できる。
【0061】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用および専用両方のマイクロプロセッサと、任意の適切な種類のデジタルコンピュータの任意の1つ以上のプロセッサとを含む。一般に、プロセッサは、読み取り専用メモリもしくはランダムアクセスメモリまたは両方から、命令およびデータを受信する。コンピュータの構成要素は、命令を実行するプロセッサと、命令およびデータを格納する1つ以上のメモリデバイスとを含むことができる。一般に、コンピュータはさらに、データを格納する1つ以上の大容量ストレージデバイス(例えば磁気、光磁気ディスク、または光ディスク)を含むか、またはそれからデータを受信するよう、もしくはそれにデータを転送するよう動作可能に結合されるか、またはその両方である。なお、コンピュータはそのようなデバイスを有しなくてもよい。さらにコンピュータは、別のデバイス(例えばモバイル電話、携帯情報端末(PDA)、モバイルオーディオプレーヤ、グローバルポジショニングシステム(GPS:Global Positioning System)受信機)に組み込まれてもよい。コンピュータプログラム命令およびデータを格納するのに適したコンピュータ可読媒体は、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含み、例としては半導体メモリデバイス(例えばEPROM、EEPROM、およびフラッシュメモリデバイス)、磁気ディスク(例えば内蔵ハードディスクまたはリムーバブルディスク)、光磁気ディスク、ならびにCD ROMおよびDVD-ROMディスクが挙げられる。プロセッサおよびメモリは、専用論理回路構成により補完されてもよく、またはそれに組み込まれてもよい。
【0062】
ユーザとの相互作用を提供するために、情報をユーザに表示するディスプレイデバイス(例えばCRT(cathode ray tube:陰極線管)、LCD(liquid crystal display:液晶ディスプレイ)モニタ)ならびにユーザがコンピュータに入力を提供してもよいキーボードおよびポインティングデバイス(例えばマウス、トラックボール、タッチパッド)を有するコンピュータ上で、各実装が実現されてもよい。他の種類のデバイスが、同じくユーザとの相互作用を提供するために使用されてもよい。例として、ユーザに提供されるフィードバックは、任意の適切な形態の感覚フィードバック(例えば視覚フィードバック、聴覚フィードバック、触覚フィードバック)であってもよく、ユーザからの入力は、音響、発話、または触覚入力を含め、任意の適切な形態で受信されてもよい。
【0063】
実装は、バックエンドコンポーネントを含むコンピューティングシステム(例えばデータサーバとして)、ミドルウェアコンポーネントを含むコンピューティングシステム(例えばアプリケーションサーバ)、および/もしくはフロントエンドコンポーネントを含むコンピューティングシステム(例えばユーザが実装と相互作用するのに用いることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータ)、またはそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネント1つ以上の任意の適切な組み合わせにおいて実現されてもよい。システムのコンポーネントは、任意の適切な形態または媒体のデジタルデータ通信(例えば通信ネットワーク)により相互接続されてもよい。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)、および例えばインターネットなどのワイドエリアネットワーク(「WAN」)を含む。
【0064】
コンピューティングシステムは、クライアントおよびサーバを含んでもよい。クライアントおよびサーバは、一般に、互いに遠隔にあり、典型的には通信ネットワークを通して相互作用する。クライアントおよびサーバの関係は、個別のコンピュータ上で実行され相互にクライアント-サーバ関係を有するコンピュータプログラムにより生じる。
【0065】
本明細書は多数の詳述を含むが、これらは、本開示の範囲または特許請求の範囲に対する限定として解釈されるべきではなく、むしろ特定の実装に特有の特徴の記載として解釈されるべきである。別々の実装のコンテキストにおいて本明細書に記載されている特定の特徴は、単一の実装に組み合わせても実装可能である。逆に、単一の実装のコンテキストにおいて記載されている様々な特徴は、複数の実装において別々に、または任意の適切な一部組み合わせにおいて実装されることも可能である。さらに、各特徴は、特定の組み合わせで動作するよう上述されていることもあり、当初そのように請求されていることもあるが、一部のケースでは、請求されている組み合わせの特徴1つ以上が、その組み合わせから削除されることが可能であり、請求されている組み合わせは、一部組み合わせまたは一部組み合わせの変形物を対象とし得る。
【0066】
同じく、各動作は図面内に特定の順序で示されているが、これは、望ましい結果を達成するために、当該の動作が示されている特定の順序もしくは順番で実行されること、または示されているすべての動作が実行されることを要求するものと理解されてはならない。特定の状況では、マルチタスクおよび並列処理が有利なこともある。さらに、上述の実装における様々なシステムコンポーネントの分離は、すべての実装においてそのような分離を要求するものと理解されてはならず、当然のことながら、記載されているプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品に統合されても、または複数のソフトウェア製品にパッケージ化されてもよい。
【0067】
いくつかの実装が記載された。しかし、当然のことながら、本開示の意図および範囲から逸脱することなく、様々な変更が加えられ得る。例として、ステップが並べ替え、追加、または除去された、上記で示されたフローの様々な形態が使用されてもよい。よって、他の実装は、添付の特許請求の範囲に記載の範囲内にある。
【外国語明細書】