(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-09
(45)【発行日】2024-09-18
(54)【発明の名称】マルチモーダル表現モデルのトレーニング方法、クロスモーダル検索方法及び装置
(51)【国際特許分類】
G06F 16/903 20190101AFI20240910BHJP
【FI】
G06F16/903
【外国語出願】
(21)【出願番号】P 2023038523
(22)【出願日】2023-03-13
【審査請求日】2023-03-13
(31)【優先権主張番号】202210476076.6
(32)【優先日】2022-04-29
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】Beijing Baidu Netcom Science Technology Co., Ltd.
【住所又は居所原語表記】2/F Baidu Campus, No.10, Shangdi 10th Street, Haidian District, Beijing 100085, China
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ビン シャン
(72)【発明者】
【氏名】ウエイチョーン イン
(72)【発明者】
【氏名】ユイ スゥン
【審査官】早川 学
(56)【参考文献】
【文献】中国特許出願公開第113239214(CN,A)
【文献】中国特許出願公開第113779361(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
マルチモーダル表現モデルの
ためにコンピュータにより実装されるトレーニング方法であって、前記マルチモーダル表現モデルは、第1のデータモーダルに対応する第1の表現モジュールと、第2のデータモーダルに対応する第2の表現モジュール
と、を含み、
当該トレーニング方法は、
サンプルタプルを取得し、前記サンプルタプルは、前記第1のデータモーダルの第1のサンプルと第2のサンプル、及び前記第2のデータモーダルの第3のサンプルと第4のサンプルを含み、前記サンプルタプルに含まれる各サンプルの意味は
一致することと、
前記第1のサンプルと前記第2のサンプルをそれぞれ前記第1の表現モジュールに入力することで、前記第1のサンプルの第1の表現と前記第2のサンプルの第2の表現を取得することと、
前記第3のサンプルと前記第4のサンプルをそれぞれ前記第2の表現モジュールに入力することで、前記第3のサンプルの第3の表現と前記第4のサンプルの第4の表現を取得することと、
前記第1の表現と前記第2の表現
の第1の類似度、及び前記第1の表現と他のサンプルタプルの第2の表現の第2の類似度に基づき、前記第1のデータモーダルの第1のシングルモーダル損失を決定
し、前記第1のシングルモーダル損失は、前記第1の類似度と負の相関を有し、且つ、前記第2の類似度と正の相関を有することと、
前記第3の表現と前記第4の表現
の第6の類似度、及び前記第3の表現と他のサンプルタプルの第4の表現の第7の類似度に基づき、前記第2のデータモーダルの第2のシングルモーダル損失を決定
し、前記第2のシングルモーダル損失は、前記第6の類似度と負の相関を有し、且つ、前記第7の類似度と正の相関を有することと、
第1のターゲット表現と第2のターゲット表現に基づき、前記第1のデータモーダルから前記第2のデータモーダルへの第1のクロスモーダル損失と、前記第2のデータモーダルから前記第1のデータモーダルへの第2のクロスモーダル損失を決定し、前記第1のターゲット表現は前記第1の表現と前記第2の表現のうちのいずれか1つであり、前記第2のターゲット表現は前記第3の表現と前記第4の表現のうちのいずれか1つであ
り、前記第1のターゲット表現と前記第2のターゲット表現の第3の類似度、及び前記第1のターゲット表現と他のサンプルタプルの第2のターゲット表現の第4の類似度に基づき、前記第1のクロスモーダル損失を決定し、前記第1のクロスモーダル損失は、前記第3の類似度と負の相関を有し、且つ、前記第4の類似度と正の相関を有し、前記第1のターゲット表現と前記第2のターゲット表現の第3の類似度、及び前記第2のターゲット表現と他のサンプルタプルの第1のターゲット表現の第5の類似度に基づき、前記第2のクロスモーダル損失を決定し、前記第2のクロスモーダル損失は、前記第3の類似度と負の相関を有し、且つ、前記第5の類似度と正の相関を有することと、
前記第1のシングルモーダル損失と、前記第2のシングルモーダル損失と、前記第1のクロスモーダル損失と、前記第2のクロスモーダル損失に基づき、前記マルチモーダル表現モデルの全体の損失を決定することと、
前記全体の損失
を減少させるために、前記マルチモーダル表現モデルのパラメータを調整することと、を含む、
方法。
【請求項2】
生データペアを取得し、前記生データペアは、前記第1のデータモーダルの第1の生データと前記第2のデータモーダルの第2の生データを含み、前記第1の生データと前記第2の生データの意味は
一致することと、
前記第1の生データに基づき、前記第1のサンプルと前記第2のサンプルを生成することと、
前記第2の生データに基づき、前記第3のサンプルと前記第4のサンプルを生成することと、を更に含む、請求項1に記載の方法。
【請求項3】
前記第1の生データに基づき、前記第1のサンプルと前記第2のサンプルを生成することは、
前記第1の生データに対する第1のデータ拡張処理を行うことで、前記第1のサンプルを生成することと、
前記第1の生データに対する第2のデータ拡張処理を行うことで、前記第1のサンプルと異なる前記第2のサンプルを生成することと、を含む、請求項2に記載の方法。
【請求項4】
前記第1のサンプルと前記第2のサンプルは前記第1の生データと同じであり、前記第1の表現モジュールはランダムノイズを添加することで、前記第1の表現を前記第2の表現から異ならせるように構成される、請求項2に記載の方法。
【請求項5】
前記第1のデータモーダルはテキストモーダルであり、前記第1の表現モジュールは
ドロップアウト処理層を含むテキストエンコーダであり、前記
ドロップアウト処理層のドロップ確率は予め設定された閾値より小さい、請求項4に記載の方法。
【請求項6】
前記全体の損失は、前記第1のシングルモーダル損失と、前記第2のシングルモーダル損失と、前記第1のクロスモーダル損失と、前記第2のクロスモーダル損失の加重和である、請求項1に記載の方法。
【請求項7】
予め設定された適用場面におけるマッチングデータペアに基づき、前記マルチモーダル表現モデルに対する微調整を行うことを更に含む、請求項1に記載の方法。
【請求項8】
前記マッチングデータペアはターゲットデータモーダルの第1のデータと第2のデータを含み、前記第1のデータと前記第2のデータの意味は
一致し、予め設定された適用場面におけるマッチングデータペアに基づき、前記マルチモーダル表現モデルに対する微調整を行うことは、
前記マッチングデータペアに基づき、前記ターゲットデータモーダルに対応する表現モジュールに対する微調整を行うことを含む、請求項
7に記載の方法。
【請求項9】
前記マッチングデータペアは、第1のデータモーダルの第1のデータと第2のデータモーダルの第2のデータを含み、前記第1のデータと前記第2のデータの意味は
一致し、予め設定された適用場面におけるマッチングデータペアに基づき、前記マルチモーダル表現モデルに対する微調整を行うことは、
前記第1のデータに基づき、前記第1のデータモーダルの第1のデータサンプルと第2のデータサンプルを生成することと、
前記第2のデータに基づき、前記第2のデータモーダルの第3のデータサンプルと第4のデータサンプルを生成することと、
前記第1のデータサンプルと、前記第2のデータサンプルと、前記第3のデータサンプルと、前記第4のデータサンプルに基づき、データサンプルタプルを構築することと、
前記データサンプルタプルに基づき、前記マルチモーダル表現モデルに対する微調整を行うこととを含む、請求項
7に記載の方法。
【請求項10】
前記第1のデータモーダルと前記第2のデータモーダルは、テキストモーダル、画像モーダル、ビデオモーダル、オーディオモーダルのいずれか2つである、請求項1に記載の方法。
【請求項11】
コンピュータによるクロスモーダル検索方法であって、
第1のデータモーダルの検索対象を取得することと、
前記検索対象をマルチモーダル表現モデルに入力することで、前記検索対象に対応する第1の表現を取得することと、
第2のデータモーダルの複数の候補対象のそれぞれの第2の表現を取得し、前記第2の表現は、対応する候補対象を前記マルチモーダル表現モデルに入力することにより得られたことと、
前記第1の表現と各第2の表現の類似度に基づき、前記複数の候補対象から前記検索対象に
適合するターゲット対象を決定することと、を含み、
前記マルチモーダル表現モデルは、請求項1に記載の方法でトレーニングすることで得られたものである、クロスモーダル検索方法。
【請求項12】
マルチモーダル表現モデルのトレーニング装置であって、前記マルチモーダル表現モデルは、第1のデータモーダルに対応する第1の表現ユニットと、第2のデータモーダルに対応する第2の表現ユニットを含み、
当該トレーニング装置は、
第1の取得ユニットであって、サンプルタプルを取得するように構成され、前記サンプルタプルは、前記第1のデータモーダルの第1のサンプルと第2のサンプル、及び前記第2のデータモーダルの第3のサンプルと第4のサンプルを含み、前記サンプルタプルに含まれる各サンプルの意味は
一致するものと、
第1の入力ユニットであって、前記第1のサンプルと前記第2のサンプルをそれぞれ前記第1の表現ユニットに入力することで、前記第1のサンプルの第1の表現と前記第2のサンプルの第2の表現を取得するように構成されるものと、
第2の入力ユニットであって、前記第3のサンプルと前記第4のサンプルをそれぞれ前記第2の表現ユニットに入力することで、前記第3のサンプルの第3の表現と前記第4のサンプルの第4の表現を取得するように構成されるものと、
第1の損失ユニットであって、前記第1の表現と前記第2の表現
の第1の類似度、及び前記第1の表現と他のサンプルタプルの第2の表現の第2の類似度に基づき、前記第1のデータモーダルの第1のシングルモーダル損失を決定
し、前記第1のシングルモーダル損失は、前記第1の類似度と負の相関を有し、且つ、前記第2の類似度と正の相関を有するように構成されるものと、
第2の損失ユニットであって、前記第3の表現と前記第4の表現
の第6の類似度、及び前記第3の表現と他のサンプルタプルの第4の表現の第7の類似度に基づき、前記第2のデータモーダルの第2のシングルモーダル損失を決定
し、前記第2のシングルモーダル損失は、前記第6の類似度と負の相関を有し、且つ、前記第7の類似度と正の相関を有するように構成されるものと、
第3の損失ユニットであって、第1のターゲット表現と第2のターゲット表現に基づき、前記第1のデータモーダルから前記第2のデータモーダルへの第1のクロスモーダル損失と、前記第2のデータモーダルから前記第1のデータモーダルへの第2のクロスモーダル損失を決定するように構成され、前記第1のターゲット表現は前記第1の表現と前記第2の表現のうちのいずれか1つであり、前記第2のターゲット表現は前記第3の表現と前記第4の表現のうちのいずれか1つであ
り、前記第1のターゲット表現と前記第2のターゲット表現の第3の類似度、及び前記第1のターゲット表現と他のサンプルタプルの第2のターゲット表現の第4の類似度に基づき、前記第1のクロスモーダル損失を決定し、前記第1のクロスモーダル損失は、前記第3の類似度と負の相関を有し、且つ、前記第4の類似度と正の相関を有し、前記第1のターゲット表現と前記第2のターゲット表現の第3の類似度、及び前記第2のターゲット表現と他のサンプルタプルの第1のターゲット表現の第5の類似度に基づき、前記第2のクロスモーダル損失を決定し、前記第2のクロスモーダル損失は、前記第3の類似度と負の相関を有し、且つ、前記第5の類似度と正の相関を有するものと、
第4の損失ユニットであって、前記第1のシングルモーダル損失と、前記第2のシングルモーダル損失と、前記第1のクロスモーダル損失と、前記第2のクロスモーダル損失に基づき、前記マルチモーダル表現モデルの全体の損失を決定するように構成されるものと、
調整ユニットであって、前記全体の損失
を減少させるために、前記マルチモーダル表現モデルのパラメータを調整するように構成されるものと、を含む、
装置。
【請求項13】
第2の取得ユニットであって、生データペアを取得するように構成され、前記生データペアは、前記第1のデータモーダルの第1の生データと前記第2のデータモーダルの第2の生データを含み、前記第1の生データと前記第2の生データの意味は
一致するものと、
第1の生成ユニットであって、前記第1の生データに基づき、前記第1のサンプルと前記第2のサンプルを生成するように構成されるものと、
第2の生成ユニットであって、前記第2の生データに基づき、前記第3のサンプルと前記第4のサンプルを生成するように構成されるものと、を更に含む、請求項
12に記載の装置。
【請求項14】
前記第1の生成ユニットは、
第1の拡張サブユニットであって、前記第1の生データに対する第1のデータ拡張処理を行うことで、前記第1のサンプルを生成するように構成されるものと、
第2の拡張サブユニットであって、前記第1の生データに対する第2のデータ拡張処理を行うことで、前記第1のサンプルと異なる前記第2のサンプルを生成するように構成されるものと、を含む、請求項
13に記載の装置。
【請求項15】
前記第1のサンプルと前記第2のサンプルは前記第1の生データと同じであり、前記第1の表現ユニットは、ランダムノイズを添加することで、前記第1の表現を前記第2の表現から異ならせるように構成される、請求項
13に記載の装置。
【請求項16】
前記第1のデータモーダルはテキストモーダルであり、前記第1の表現ユニットは
ドロップアウト処理層を含むテキストエンコーダであり、前記
ドロップアウト処理層のドロップ確率は予め設定された閾値より小さい、請求項
15に記載の装置。
【請求項17】
前記全体の損失は、前記第1のシングルモーダル損失と、前記第2のシングルモーダル損失と、前記第1のクロスモーダル損失と、前記第2のクロスモーダル損失の加重和である、請求項
12に記載の装置。
【請求項18】
予め設定された適用場面におけるマッチングデータペアに基づき、前記マルチモーダル表現モデルに対する微調整を行うように構成される微調整ユニットを更に含む、請求項
12に記載の装置。
【請求項19】
前記マッチングデータペアはターゲットデータモーダルの第1のデータと第2のデータを含み、前記第1のデータと前記第2のデータの意味は
一致し、前記微調整ユニットは更に、
前記マッチングデータペアに基づき、前記ターゲットデータモーダルに対応する表現ユニットに対する微調整を行うように構成される、請求項
18に記載の装置。
【請求項20】
前記マッチングデータペアは、第1のデータモーダルの第1のデータと第2のデータモーダルの第2のデータを含み、前記第1のデータと前記第2のデータの意味は
一致し、前記微調整ユニットは、
前記第1のデータに基づき、前記第1のデータモーダルの第1のデータサンプルと第2のデータサンプルを生成するように構成される第1の生成サブユニットと、
前記第2のデータに基づき、前記第2のデータモーダルの第3のデータサンプルと第4のデータサンプルを生成するように構成される第2の生成サブユニットと、
前記第1のデータサンプルと、前記第2のデータサンプルと、前記第3のデータサンプルと、前記第4のデータサンプルに基づき、データサンプルタプルを構築するように構成される第3の生成サブユニットと、
データサンプルタプルに基づき、前記マルチモーダル表現モデルに対する微調整を行うように構成される微調整サブユニットと、を含む、請求項
18に記載の装置。
【請求項21】
前記第1のデータモーダルと前記第2のデータモーダルは、テキストモーダル、画像モーダル、ビデオモーダル、オーディオモーダルのいずれか2つである、請求項
12に記載の装置。
【請求項22】
クロスモーダル検索装置であって、
第1の取得ユニットであって、第1のデータモーダルの検索対象を取得するように構成されるものと、
表現ユニットであって、前記検索対象をマルチモーダル表現モデルに入力することで、前記検索対象に対応する第1の表現を取得するように構成されるものと、
第2の取得ユニットであって、第2のデータモーダルの複数の候補対象のそれぞれの第2の表現を取得するように構成され、前記第2の表現は、対応する候補対象を前記マルチモーダル表現モデルに入力することにより得られたものと、
決定ユニットであって、前記第1の表現と各第2の表現の類似度に基づき、前記複数の候補対象から前記検索対象に
適合するターゲット対象を決定するように構成されるものと、を含み、
前記マルチモーダル表現モデルは、請求項
12に記載の装置でトレーニングすることで得られたものである、クロスモーダル検索装置。
【請求項23】
電子機器であって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信接続されたメモリとを含み、
前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶されており、前記命令は、前記少なくとも1つのプロセッサによって実行されることにより、前記少なくとも1つのプロセッサに請求項1
乃至10のうちのいずれか一項に記載の方法を実行させる、電子機器。
【請求項24】
電子機器であって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信接続されたメモリとを含み、
前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶されており、前記命令は、前記少なくとも1つのプロセッサによって実行されることにより、前記少なくとも1つのプロセッサに請求項11に記載の方法を実行させる、電子機器。
【請求項25】
コンピュータに請求項1
乃至10のうちのいずれか一項に記載の方法を実行させるためのコンピュータ命令が記憶された非一時的コンピュータ可読記憶媒体。
【請求項26】
コンピュータに請求項11に記載の方法を実行させるためのコンピュータ命令が記憶された非一時的コンピュータ可読記憶媒体。
【請求項27】
プロセッサによって実行されると、請求項1
乃至10のうちのいずれか一項に記載の方法を前記プロセッサに実行させるコンピュータプログラム。
【請求項28】
プロセッサによって実行されると、請求項11に記載の方法を前記プロセッサに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、人工知能技術分野に関し、特に、深層学習やスマート検索技術分野に関し、具体的には、マルチモーダル表現モデルのトレーニング方法及び装置、クロスモーダル検索方法及び装置、電子機器、コンピュータ可読記憶媒体、及びコンピュータプログラム製品に関する。
【背景技術】
【0002】
データモーダルとは、データの存在形態、例えば、テキスト、画像、ビデオ、オーディオなどである。同じ対象又はイベントは、異なるモーダルのデータで示すことができる。換言すると、異なるモーダルのデータは同一又は類似の意味を有してもよい。
【0003】
この部分で説明される方法は、必ずしも以前に想定される方法又は採用される方法ではない。特に断りのない限り、この部分に記載されているいずれの方法は、この部分に含まれるだけで従来技術であると考えられるべきではない。同様に、特に断りのない限り、この部分で言及されている課題は、従来の技術で承認されたものであると考えるべきではない。
【発明の概要】
【0004】
本開示は、マルチモーダル表現モデルのトレーニング方法及び装置、クロスモーダル検索方法と装置、電子機器、コンピュータ可読記憶媒体、及びコンピュータプログラム製品を提供する。
【0005】
本開示の一態様によれば、マルチモーダル表現モデルのトレーニング方法を提供し、前記マルチモーダル表現モデルは、第1のデータモーダルに対応する第1の表現モジュールと、第2のデータモーダルに対応する第2の表現モジュールを含み、前記方法は、サンプルタプルを取得し、前記サンプルタプルは、前記第1のデータモーダルの第1のサンプルと第2のサンプル、及び前記第2のデータモーダルの第3のサンプルと第4のサンプルを含み、前記サンプルタプルに含まれる各サンプルの意味はマッチングすることと、前記第1のサンプルと前記第2のサンプルをそれぞれ前記第1の表現モジュールに入力することで、前記第1のサンプルの第1の表現と前記第2のサンプルの第2の表現を取得することと、前記第3のサンプルと前記第4のサンプルをそれぞれ前記第2の表現モジュールに入力することで、前記第3のサンプルの第3の表現と前記第4のサンプルの第4の表現を取得することと、前記第1の表現と前記第2の表現に基づき、前記第1のデータモーダルの第1のシングルモーダル損失を決定することと、前記第3の表現と前記第4の表現に基づき、前記第2のデータモーダルの第2のシングルモーダル損失を決定することと、第1のターゲット表現と第2のターゲット表現に基づき、前記第1のデータモーダルから前記第2のデータモーダルへの第1のクロスモーダル損失と、前記第2のデータモーダルから前記第1のデータモーダルへの第2のクロスモーダル損失を決定し、前記第1のターゲット表現は前記第1の表現と前記第2の表現のうちのいずれか1つであり、前記第2のターゲット表現は前記第3の表現と前記第4の表現のうちのいずれか1つであることと、前記第1のシングルモーダル損失と、前記第2のシングルモーダル損失と、前記第1のクロスモーダル損失と、前記第2のクロスモーダル損失に基づき、前記マルチモーダル表現モデルの全体の損失を決定することと、前記全体の損失に基づき、前記マルチモーダル表現モデルのパラメータを調整することと、を含む。
【0006】
本開示の一態様によれば、クロスモーダル検索方法を提供し、第1のデータモーダルの検索対象を取得することと、前記検索対象をマルチモーダル表現モデルに入力することで、前記検索対象に対応する第1の表現を取得することと、第2のデータモーダルの複数の候補対象のそれぞれの第2の表現を取得し、前記第2の表現は、対応する候補対象を前記マルチモーダル表現モデルに入力することにより得られたことと、前記第1の表現と各第2の表現の類似度に基づき、前記複数の候補対象から前記検索対象にマッチングするターゲット対象を決定し、前記マルチモーダル表現モデルは、上記マルチモーダル表現モデルに基づくトレーニング方法でトレーニングすることで得られたことと、を含む。
【0007】
本開示の一態様によれば、マルチモーダル表現モデルのトレーニング装置を提供し、前記マルチモーダル表現モデルは、第1のデータモーダルに対応する第1の表現ユニットと、第2のデータモーダルに対応する第2の表現ユニットを含み、前記装置は、第1の取得ユニットであって、サンプルタプルを取得するように構成され、前記サンプルタプルは、前記第1のデータモーダルの第1のサンプルと第2のサンプル、及び前記第2のデータモーダルの第3のサンプルと第4のサンプルを含み、前記サンプルタプルに含まれる各サンプルの意味はマッチングするものと、第1の入力ユニットであって、前記第1のサンプルと前記第2のサンプルをそれぞれ前記第1の表現ユニットに入力することで、前記第1のサンプルの第1の表現と前記第2のサンプルの第2の表現を取得するように構成されるものと、第2の入力ユニットであって、前記第3のサンプルと前記第4のサンプルをそれぞれ前記第2の表現ユニットに入力することで、前記第3のサンプルの第3の表現と前記第4のサンプルの第4の表現を取得するように構成されるものと、第1の損失ユニットであって、前記第1の表現と前記第2の表現に基づき、前記第1のデータモーダルの第1のシングルモーダル損失を決定するように構成されるものと、第2の損失ユニットであって、前記第3の表現と前記第4の表現に基づき、前記第2のデータモーダルの第2のシングルモーダル損失を決定するように構成されるものと、第3の損失ユニットであって、第1のターゲット表現と第2のターゲット表現に基づき、前記第1のデータモーダルから前記第2のデータモーダルへの第1のクロスモーダル損失と、前記第2のデータモーダルから前記第1のデータモーダルへの第2のクロスモーダル損失を決定するように構成され、前記第1のターゲット表現は前記第1の表現と前記第2の表現のうちのいずれか1つであり、前記第2のターゲット表現は前記第3の表現と前記第4の表現のうちのいずれか1つであるものと、第4の損失ユニットであって、前記第1のシングルモーダル損失と、前記第2のシングルモーダル損失と、前記第1のクロスモーダル損失と、前記第2のクロスモーダル損失に基づき、前記マルチモーダル表現モデルの全体の損失を決定するように構成されるものと、調整ユニットであって、前記全体の損失に基づき、前記マルチモーダル表現モデルのパラメータを調整するように構成されるものと、を含む。
【0008】
本開示の一態様によれば、クロスモーダル検索装置を提供し、前記装置は、第1の取得ユニットであって、第1のデータモーダルの検索対象を取得するように構成されるものと、表現ユニットであって、前記検索対象をマルチモーダル表現モデルに入力することで、前記検索対象に対応する第1の表現を取得するように構成されるものと、第2の取得ユニットであって、第2のデータモーダルの複数の候補対象のそれぞれの第2の表現を取得するように構成され、前記第2の表現は、対応する候補対象を前記マルチモーダル表現モデルに入力することにより得られたものと、決定ユニットであって、前記第1の表現と各第2の表現の類似度に基づき、前記複数の候補対象から前記検索対象にマッチングするターゲット対象を決定するように構成され、前記マルチモーダル表現モデルは、上記マルチモーダル表現モデルに基づくトレーニング装置でトレーニングすることで得られたものと、を含む。
【0009】
本開示の一態様によれば、電子機器を提供する。該電子機器は、少なくとも1つのプロセッサと、上記少なくとも1つのプロセッサに通信接続されたメモリとを含み、該メモリには、上記少なくとも1つのプロセッサによって実行可能な命令が記憶されており、該命令は、上記少なくとも1つのプロセッサによって実行されることにより、上記少なくとも1つのプロセッサに上記のいずれか1つの方法を実行させる。
【0010】
本開示の一態様によれば、上記のいずれか1つの方法をコンピュータに実行させるためのコンピュータ命令が記憶された非一時的コンピュータ可読記憶媒体を提供する。
【0011】
本開示の一態様によれば、プロセッサによって実行されると、上記のいずれか1つの方法を実現するコンピュータプログラムを含むコンピュータプログラム製品を提供する。
【0012】
本開示の一又は複数の実施例によれば、マルチモーダル表現モデルがモーダル内とモーダル間の意味関連性を同時に学習するようにガイドすることができ、マルチモーダル表現モデルの汎化性とロバスト性を向上させ、これによって、マルチモーダル表現モデルは異なるモーダルデータの統一の意味表現を生成することができる。
【0013】
理解すべきこととして、この部分に説明される内容は、本開示の実施例の要点又は重要な特徴を識別することを意図しておらず、本開示の保護範囲を限定するためのものではない。本開示の他の特徴は、以下の明細書によって容易に理解されるであろう。
【図面の簡単な説明】
【0014】
図面は、実施例を例示的に示し、明細書の一部を構成し、明細書の文字による説明とともに、実施例の例示的な実施形態を説明するために用いられる。図示の実施例は例示的目的のみであり、特許請求の範囲を限定するものではない。全ての図面において、同一の符号は、類似しているが、必ずしも同じとは限らない要素を指す。
【
図1】本開示のいくつかの実施例によるマルチモーダル表現モデルのトレーニング方法を示すフローチャートである。
【
図2】本開示のいくつかの実施例によるマルチモーダル表現モデルを示す構成ブロック図である。
【
図3】本開示のいくつかの実施例によるマルチモーダル表現モデルのトレーニング過程を示す概略図である。
【
図4】本開示のいくつかの実施例によるクロスモーダル検索方法を示すフローチャートである。
【
図5】本開示の実施例によるマルチモーダル表現モデルの画像やテキストに関するクロスモーダル検索効果を示す概略図である。
【
図6】本開示のいくつかの実施例によるクロスモーダル推論方法を示すフローチャートである。
【
図7】本開示のいくつかの実施例によるマルチモーダル表現モデルのトレーニング装置を示す構成ブロック図である。
【
図8】本開示のいくつかの実施例によるクロスモーダル検索装置を示す構成ブロック図である。
【
図9】本開示のいくつかの実施例によるクロスモーダル推論装置を示す構成ブロック図である。
【
図10】本開示のいくつかの実施例を実現できる例示的な電子機器を示す構成ブロック図である。
【発明を実施するための形態】
【0015】
以下、図面に合わせて本開示の例示的な実施例を説明して、それに含まれる本開示の実施例における様々な詳細が理解を助けるため、それらは単なる例示的なものと考えられるべきである。従って、当業者であれば、本開示の範囲及び精神から逸脱することなく、本明細書で説明された実施例に対して様々な変更及び修正を行うことができることを認識すべきである。同様に、明瞭と簡潔のために、以下の説明では公知の機能及び構造についての説明を省略している。
【0016】
本開示では、特に明記しない限り、様々な要素を説明するための「第1」、「第2」などの用語の使用は、これらの要素の位置関係、タイミング関係、又は重要性関係を限定することを意図していない。このような用語は、ある要素を別の要素と区別するためにのみ使用される。いくつかの例では、第一要素と第二要素は、要素の同じ例を指してもよく、場合によっては、コンテキストの説明に基づいて、異なる例を指してもよい。
【0017】
本開示の様々な例の説明で使用される用語は、特定の例を説明することのみを目的としており、限定することを意図していない。コンテキストで別途に明確に示されていない限り、特に要素の数を限定しないなら、要素は一つであってもよいし、複数であってもよい。なお、本開示で使用される用語「及び/又は」は、リストされた項目のいずれか及び可能な全ての組み合わせをカバーする。
【0018】
いくつかの場面において、ユーザはクロスモーダルデータ処理のニーズを有する可能性がある。例えば、ユーザはクロスモーダル検索を実行するニーズを有する可能性がある。クロスモーダル検索とは、入力データのモーダルは取得されたデータのモーダルと異なる検索場面である。例えば、画像やテキストに関するクロスモーダル検索場面において、ユーザは検索テキスト「犬」を入力し、画面に犬を含む画像を取得することが望まれている。
【0019】
関連技術において、マルチモーダル意味表現モデル(下記内容では「マルチモーダル表現モデル」と略称する)を用いてもよく、異なるモーダルのデータを同一の意味空間中の意味表現に変換して(下記内容では「表現」と略称する)、その後、当該表現に基づいてクロスモーダル検索、クロスモーダル推論(例えば、視覚推論、Visual Entailment)などのクロスモーダルデータ処理タスクを実行する。しかし、関連技術におけるマルチモーダル表現モデルの汎化性とロバスト性が低く、マルチモーダルデータの統一表現が生成しにくい。
【0020】
上記問題に対し、本開示の実施例は、マルチモーダル表現モデルのトレーニング方法を提供し、マルチモーダル表現モデルの汎化性とロバスト性を向上させ、これによって、マルチモーダル表現モデルは、マルチモーダルデータの統一表現を生成することができる。
【0021】
以下、図面を参照して本開示の実施例について詳細に説明する。
【0022】
図1は、本開示の実施例によるマルチモーダル表現モデルのトレーニング方法100を示すフローチャートである。方法100は、サーバで実行されてもよいし、クライアントデバイスで実行されてもよい。すなわち、方法100の各ステップの実行主体はサーバであってもよく、クライアントデバイスであってもよい。
【0023】
本開示の実施例では、マルチモーダル表現モデルは、第1のデータモーダルに対応する第1の表現モジュールと、第2のデータモーダルに対応する第2の表現モジュールを含む。
【0024】
図1に示すように、方法100は、ステップS110~ステップS180を含む。
【0025】
ステップS110において、サンプルタプルを取得し、サンプルタプルは、第1のデータモーダルの第1のサンプルと第2のサンプル、及び第2のデータモーダルの第3のサンプルと第4のサンプルを含み、ここで、サンプルタプルに含まれる各サンプルの意味はマッチングする。
【0026】
ステップS120において、第1のサンプルと第2のサンプルをそれぞれ第1の表現モジュールに入力することで、第1のサンプルの第1の表現と第2のサンプルの第2の表現を取得する。
【0027】
ステップS130において、第3のサンプルと第4のサンプルをそれぞれ第2の表現モジュールに入力することで、第3のサンプルの第3の表現と第4のサンプルの第4の表現を取得する。
【0028】
ステップS140において、第1の表現と第2の表現に基づき、第1のデータモーダルの第1のシングルモーダル損失を決定する。
【0029】
ステップS150において、第3の表現と第4の表現に基づき、第2のデータモーダルの第2のシングルモーダル損失を決定する。
【0030】
ステップS160において、第1のターゲット表現と第2のターゲット表現に基づき、第1のデータモーダルから第2のデータモーダルへの第1のクロスモーダル損失と、第2のデータモーダルから第1のデータモーダルへの第2のクロスモーダル損失を決定し、ここで、第1のターゲット表現は第1の表現と第2の表現のうちのいずれか1つであり、第2のターゲット表現は第3の表現と第4の表現のうちのいずれか1つである。
【0031】
ステップS170において、第1のシングルモーダル損失と、第2のシングルモーダル損失と、第1のクロスモーダル損失と、第2のクロスモーダル損失に基づき、マルチモーダル表現モデルの全体の損失を決定する。
【0032】
ステップS180において、全体の損失に基づき、マルチモーダル表現モデルのパラメータを調整する。
【0033】
本開示の実施例によれば、サンプルタプルを用いてマルチモーダル表現モデルをトレーニングし、サンプルタプルは各種データモーダルの2つのサンプルを含み、サンプルタプルにおける各サンプルの意味はマッチングする。上記サンプルタプルに基づき、トレーニング過程において、各データモーダルのシングルモーダル損失を算出するのみならず、また異なるモーダルの間のクロスモーダル損失を算出することによって、マルチモーダル表現モデルがモーダル内とモーダル間の意味関連性を同時に学習するようにガイドすることができ、モデルの汎化性とロバスト性を向上させ、これによって、モデルはマルチモーダルデータの統一表現を生成することができる。
【0034】
一般的には、様々な適用場面における大量のサンプルタプルに基づき、マルチモーダル表現モデルをトレーニングすることができ、従って、トレーニングされたマルチモーダル表現モデルは複数の適用場面に適用可能であるが、特定の下流側タスクに対応しない予備トレーニングモデルである。
【0035】
データモーダルとは、データの物理的な存在形態、例えば、テキスト、画像、ビデオ、オーディオなどである。本開示の実施例のマルチモーダル表現モデルは、複数の(2種類及び2種類以上)データモーダルに関し、そのトレーニングサンプル(すなわち、サンプルタプル)は複数のデータモーダルのデータを含む。本開示の実施例では、マルチモーダルデータを含むサンプルタプルを処理することによって、複数のデータモーダルの間の意味関連性を学習し、予備トレーニングされたマルチモーダル表現モデルを生成することができる。従って、本開示の実施例のマルチモーダル表現モデルのトレーニング方法はマルチモーダルデータを処理するために用いられるデータ処理方法である。
【0036】
例えば、マルチモーダル表現モデルは、画像モーダルとテキストモーダルに関する場合、そのサンプルタプルは画像データとテキストデータを含み、マルチモーダル表現モデルのトレーニング方法は画像処理方法であるのみならず、また自然言語処理方法である。マルチモーダル表現モデルは、画像モーダルとオーディオモーダルに関する場合、そのサンプルタプルは画像データとオーディオデータを含み、マルチモーダル表現モデルのトレーニング方法は画像処理方法であるのみならず、またオーディオ処理方法である。
【0037】
本開示の実施例では、マルチモーダル表現モデルは、第1のデータモーダルに対応する第1の表現モジュールと、第2のデータモーダルに対応する第2の表現モジュールを含む。
【0038】
説明すべきことは、本明細書において、2種類のデータモーダルの表現モジュールのみを含むマルチモーダル表現モデルを例として、本開示の実施例のマルチモーダル表現モデルのトレーニング方法を説明することである。当業者が理解すべきことは、本開示の実施例のマルチモーダル表現モデルのトレーニング方法はマルチモーダル表現モデルが3種類及びその以上のデータモーダルの表現モジュールを含む状況にも適用されることである。
【0039】
本開示の実施例では、第1のデータモーダルと第2のデータモーダルはいずれか2つの異なるデータモーダルである。
【0040】
いくつかの実施例によれば、第1のデータモーダルと第2のデータモーダルはテキストモーダル、画像モーダル、ビデオモーダル、オーディオモーダルのうちのいずれか2つであってもよい。例えば、第1のデータモーダルはテキストモーダル(又は画像モーダル)であってもよく、第2のデータモーダルは画像モーダル(又はテキストモーダル)であってもよい。
【0041】
別の実施例では、第1のデータモーダル又は第2のデータモーダルは工業シーンにおけるデータモーダル、例えば、電気信号、赤外線信号、センサデータなどであってもよい。
【0042】
第1の表現モジュールは第1のデータモーダルのデータを符号化する(又は符号化と復号化を行う)ことで、当該データの表現を生成するために用いられる。第2の表現モジュールは第2のデータモーダルのデータを符号化する(又は符号化と復号化を行う)ことで、当該データの表現を生成するために用いられる。本開示の実施例では、データの表現はベクトル、行列、バイナリコードなどの任意の形態であってもよい。
【0043】
いくつかの実施例によれば、第1の表現モジュールと第2の表現モジュールは、相互に独立した2つのモジュールであってもよく、対応するデータモーダルのデータの表現を生成する時、相手からの影響を受けない。例えば、
図2に示すような実施例では、マルチモーダル表現モデル200は第1の表現モジュール210と第2の表現モジュール220を含み、第1の表現モジュール210と第2の表現モジュール220は相互に独立する。
【0044】
別の実施例によれば、第1の表現モジュールと第2の表現モジュールはインタラクション関係を有する2つのモジュールであってもよく、対応するデータモーダルのデータの表現を生成する時、相手からの影響を受ける。例えば、第1の表現モジュールと第2の表現モジュールはクロスアテンションメカニズムを介してインタラクションを実現することができる。
【0045】
第1の表現モジュールと第2の表現モジュールはあらゆる構造で実現してもよく、第1の表現モジュールと第2の表現モジュールの構造は異なってもよい。例えば、第1の表現モジュールと第2の表現モジュールは構造が異なるニューラルネットワーク、例えば、畳み込みニューラルネットワーク(Convolutional Neural Networks、CNN)、変換器(Transformer)、エンコーダ(Encoder)、エンコーダ-デコーダ(Encoder-decoder)などで実現してもよい。
【0046】
いくつかの実施例によれば、マルチモーダル表現モデルのトレーニング効率を向上させるために、第1の表現モジュールと第2の表現モジュールは対応するデータモーダルの予備トレーニングモデルを用いてもよい。例えば、第1のデータモーダルはテキストであってもよく、従って、第1の表現モジュールは予備トレーニングされたテキスト表現モデル、例えば、ERNIE(文心モデル)、BERT(Bidirectional Encoder Representations from Transformers)などを用いてもよい。第2のデータモーダルは画像であってもよく、従って、第2の表現モジュールは予備トレーニングされた視覚表現モデル、例えば、ViT(Vision Transformer)、DeiT(Data-efficient image Transformers)などを用いてもよい。
【0047】
本開示の実施例では、サンプルタプルを用いてマルチモーダル表現モデルをトレーニングする。各サンプルタプルは、第1のデータモーダルの第1のサンプルと第2のサンプル、及び第2のデータモーダルの第3のサンプルと第4のサンプルを含む。第1のサンプルと、第2のサンプルと、第3のサンプルと、第4のサンプルの意味はマッチングする。
【0048】
いくつかの実施例によれば、サンプルタプルは意味がマッチングする生データペアに基づいて生成されたものであってもよい。すなわち、本開示の実施例のトレーニング方法100は更に、以下のサンプルタプルを生成するためのステップを含んでもよい。生データペアを取得し、生データペアは、第1のデータモーダルの第1の生データと第2のデータモーダルの第2の生データを含み、第1の生データと第2の生データの意味はマッチングする。例えば、第1の生データは画像であってもよく、第2の生データは当該画像を説明するテキストであってもよい。その後、第1の生データに基づき、第1のサンプルと第2のサンプルを生成することができる。第2の生データに基づき、第3のサンプルと第4のサンプルを生成する。
【0049】
上記実施例によれば、クロスモーダルの意味がマッチングする生データペアに基づき、サンプルタプルを自動的に生成することができ、追加のデータアノテーション処理を行う必要はなく、これによって、トレーニングサンプル(すなわち、サンプルタプル)を取得する効率を向上させる。
【0050】
理解すべきことは、上記実施例に基づいてサンプルタプルを生成する過程に、生データに対する処理は生データの意味を変えることがなく(又は僅かに変える)、すなわち、生成された第1のサンプルと第2のサンプルの意味は第1の生データとほぼ同じであり、生成された第3のサンプルと第4のサンプルの意味は第2の生データとほぼ同じであることである。第1の生データと第2の生データの意味はマッチングするため、生成された第1のサンプルと、第2のサンプルと、第3のサンプルと第4のサンプルという四つのものの意味も相互にマッチングする。
【0051】
いくつかの実施例によれば、上記「第1の生データに基づき、第1のサンプルと第2のサンプルを生成する」というステップは、第1の生データに対する第1のデータ拡張処理を行うことで、第1のサンプルを生成することと、第1の生データに対する第2のデータ拡張処理を行うことで、第1のサンプルと異なる第2のサンプルを生成することと、を含む。
【0052】
データ拡張(Data Augmentation)処理とは、生データ(例えば、第1の生データ)の意味が変化しないように保証するという前提で、生データを処理することで、生データの意味と同様な新しいデータ(例えば、第1のサンプルと第2のサンプル)を生成することである。
【0053】
第1のデータ拡張処理と第2のデータ拡張処理の具体的な処理方式は、第1の生データのモーダル、すなわち、第1のデータモーダルに基づいて決定されるものである。例えば、第1のデータモーダルは画像である場合、第1のデータ拡張処理と第2のデータ拡張処理はランダムノイズの添加、回転、トリミング、遮蔽、変色などの処理であってもよい。第1のデータモーダルはテキストである場合、第1のデータ拡張処理と第2のデータ拡張処理は同義語の入れ替え、ランダム挿入、ランダム交換、ランダム削除、逆翻訳(back-translation、機械翻訳モデルを用いて原文を他の言語のテキストに翻訳した後、更に、機械翻訳モデルを用いて元の言語に逆翻訳する)などの処理であってもよい。第1のデータモーダルはオーディオである場合、第1のデータ拡張処理と第2のデータ拡張処理はランダムノイズ添加、音速変更、音量変更などの処理であってもよい。
【0054】
第1のデータ拡張処理は、第2のデータ拡張処理と同様なデータ拡張方式であってもよく、異なるデータ拡張方式であってもよいが、第1のデータ拡張処理と第2のデータ拡張処理は、生成された第1のサンプルを第2のサンプルから異ならせるべきであり、これによって、後続に生成された第1の表現を第2の表現から異ならせ、よってマルチモーダル表現モデルの学習効果を向上させる。
【0055】
別の実施例によれば、第1のサンプルと第2のサンプルはいずれも第1の生データと同じで、第1の表現モジュールはランダムノイズを添加することで、生成された第1の表現を第2の表現から異ならせるように構成される。第1の表現モジュールは、例えば、ランダムノイズを添加するニューラルネットワークモデルであることを実現することができる。
【0056】
例えば、第1のデータモーダルはテキストモーダルであってもよく、第1の表現モジュールはdropout処理層を含むテキストエンコーダであってもよい。当該dropout処理層のドロップ確率は予め設定された閾値(例えば、20%)より小さく、これによって、第1の表現モジュールはその入力データの意味を変えることがないように保証する。
【0057】
「第2の生データに基づき、第3のサンプルと第4のサンプルを生成する」の実行ステップは上記「第1の生データに基づき、第1のサンプルと第2のサンプルを生成する」の実行ステップに類似する。
【0058】
具体的には、いくつかの実施例によれば、「第2の生データに基づき、第3のサンプルと第4のサンプルを生成する」ことは、第2の生データに対する第3のデータ拡張処理を行うことで、第3のサンプルを生成することと、第2の生データに対する第4のデータ拡張処理を行うことで、第4のサンプルを生成することと、を含んでもよい。第3のサンプルは第4のサンプルと異なることによって、後続に生成された第3の表現と第4の表現は異なり、よってマルチモーダル表現モデルの学習効果を向上させる。
【0059】
別の実施例によれば、第3のサンプルと第4のサンプルは第2の生データと同じで、第2の表現モジュールはランダムノイズを添加することで、第3の表現を第4の表現から異ならせるように構成される。第2のデータモーダルは例えば、テキストモーダルであってもよく、第2の表現モジュールはdropout処理層を含むテキストエンコーダであってもよい。当該dropout処理層のドロップ確率は予め設定された閾値(例えば、20%)より小さく、これによって、第1の表現モジュールはその入力データの意味を変えることがないように保証する。
【0060】
「第2の生データに基づき、第3のサンプルと第4のサンプルを生成する」の他の詳細は上記内容「第1の生データに基づき、第1のサンプルと第2のサンプルを生成する」に関する説明を参照してもよく、ここで詳細な説明を省略する。
【0061】
第1のサンプルと第2のサンプルをそれぞれ第1の表現モジュールに入力し、第3のサンプルと第4のサンプルをそれぞれ第2の表現モジュールに入力し、対応する第1の表現、第2の表現、第3の表現、第4の表現という4つの表現を取得することができる。
【0062】
第1の表現と第2の表現に基づき、第1のデータモーダルの第1のシングルモーダル損失を算出することができる。第3の表現と第4の表現に基づき、第2のデータモーダルの第2のシングルモーダル損失を算出することができる。第1のターゲット表現と第2のターゲット表現に基づき、第1のデータモーダルから第2のデータモーダルへの第1のクロスモーダル損失と、第2のデータモーダルから第1のデータモーダルへの第2のクロスモーダル損失を算出することができる。ここで、第1のターゲット表現は第1の表現と第2の表現のうちのいずれか1つであり、第2のターゲット表現は第3の表現と第4の表現のうちのいずれか1つである。
【0063】
いくつかの実施例によれば、第1のシングルモーダル損失は以下のステップによって決定することができる。第1の表現と第2の表現の第1の類似度、及び第1の表現と他のサンプルタプルの第2の表現の第2の類似度に基づき、第1のシングルモーダル損失を決定し、ここで、第1のシングルモーダル損失は、第1の類似度と負の相関を有し、且つ、第2の類似度と正の相関を有する。第1の類似度、第2の類似度は例えば、2つの表現のドット積であってもよい。
【0064】
上記実施例によれば、第1のシングルモーダル損失は、意味がマッチングする2つのデータ(すなわち、第1のサンプルと第2のサンプル)の表現(すなわち、第1の表現と第2の表現)を類似させることができ、意味が合致しない2つのデータ(すなわち、第1のサンプルと他のサンプルタプルの第2のサンプル)の表現(すなわち、第1の表現と他のサンプルタプルの第2の表現)を類似させないことによって、マルチモーダル表現モデルが第1のデータモーダルにおける意味関連性を学習するようにガイドする。
【0065】
具体的には、第1のシングルモーダル損失は下記式(1)によって算出することができる。
【数1】
【0066】
式(1)において、L1は第1のシングルモーダル損失を示し、Nは、バッチ毎に、トレーニングに参与するサンプルタプルの数を示し(すなわち、batchsize)、h1
i、h2
iは第iの個のサンプルタプルの第1の表現、第2の表現をそれぞれ示し、h2
jは第jの個のサンプルタプルの第2の表現を示し、τはトレーニング可能なパラメータである。
【0067】
いくつかの実施例によれば、第2のシングルモーダル損失は以下のステップによって決定することができる。第3の表現と第4の表現の第6の類似度、及び第3の表現と他のサンプルタプルの第4の表現の第7の類似度に基づき、第2のシングルモーダル損失を決定し、ここで、第2のシングルモーダル損失は、第6の類似度と負の相関を有し、且つ、第7の類似度と正の相関を有する。第6の類似度、第7の類似度は例えば、2つの表現のドット積であってもよい。
【0068】
上記実施例によれば、第2のシングルモーダル損失は、意味がマッチングする2つのデータ(すなわち、第3のサンプルと第4のサンプル)の表現(すなわち、第3の表現と第4の表現)を類似させることができ、意味が合致しない2つのデータ(すなわち、第3のサンプルと他のサンプルタプルの第4のサンプル)の表現(すなわち、第3の表現と他のサンプルタプルの第4の表現)を類似させないことによって、マルチモーダル表現モデルが第2のデータモーダルにおける意味関連性を学習するようにガイドする。
【0069】
具体的には、第2のシングルモーダル損失は下記式(2)によって算出することができる。
【数2】
【0070】
式(2)において、L2は第2のシングルモーダル損失を示し、Nは、バッチ毎に、トレーニングに参与するサンプルタプルの数を示し(すなわち、batchsize)、h3
i、h4
iは第iの個のサンプルタプルの第3の表現、第4の表現をそれぞれ示し、h4
jは第jの個のサンプルタプルの第4の表現を示し、τはトレーニング可能なパラメータである。
【0071】
いくつかの実施例によれば、第1のクロスモーダル損失は以下のステップによって決定することができる。第1のターゲット表現と第2のターゲット表現の第3の類似度、及び第1のターゲット表現と他のサンプルタプルの第2のターゲット表現の第4の類似度に基づき、第1のクロスモーダル損失を決定し、ここで、第1のクロスモーダル損失は、第3の類似度と負の相関を有し、且つ、第4の類似度と正の相関を有する。第3の類似度、第4の類似度は例えば、2つの表現のドット積であってもよい。
【0072】
上記実施例によれば、第1のクロスモーダル損失は、意味がマッチングする2つのデータの表現(すなわち、第1のターゲット表現と第2のターゲット表現)を類似させることができ、意味が合致しない2つのデータの表現(すなわち、第1のターゲット表現と他のサンプルタプルの第2のターゲット表現)を類似させないことによって、マルチモーダル表現モデルが第1のデータモーダルから第2のデータモーダルに至るクロスモーダルの意味関連性を学習するようにガイドする。
【0073】
具体的には、第1のターゲット表現は第2の表現で、第2のターゲット表現は第3の表現であることを例とし、第1のクロスモーダル損失は下記式(3)によって算出することができる。
【数3】
【0074】
式(3)において、L3は第1のクロスモーダル損失を示し、Nは、バッチ毎に、トレーニングに参与するサンプルタプルの数を示し(すなわち、batchsize)、h2
i、h3
iは第iの個のサンプルタプルの第2の表現(すなわち、第1のターゲット表現)、第3の表現(すなわち、第2のターゲット表現)をそれぞれ示し、h3
jは第jの個のサンプルタプルの第3の表現(すなわち、第2のターゲット表現)を示し、τはトレーニング可能なパラメータである。
【0075】
いくつかの実施例によれば、第2のクロスモーダル損失は以下のステップによって決定することができる。第1のターゲット表現と第2のターゲット表現の第3の類似度、及び第2のターゲット表現と他のサンプルタプルの第1のターゲット表現の第5の類似度に基づき、第2のクロスモーダル損失を決定し、ここで、第2のクロスモーダル損失は、第3の類似度と負の相関を有し、且つ、第5の類似度と正の相関を有する。第3の類似度、第5の類似度は例えば、2つの表現のドット積であってもよい。
【0076】
上記実施例によれば、第2のクロスモーダル損失は、意味がマッチングする2つのデータの表現(すなわち、第1のターゲット表現と第2のターゲット表現)を類似させることができ、意味が合致しない2つのデータの表現(すなわち、第2のターゲット表現と他のサンプルタプルの第1のターゲット表現)を類似させないことによって、マルチモーダル表現モデルが第2のデータモーダルから第1のデータモーダルへのクロスモーダルの意味関連性を学習するようにガイドする。
【0077】
具体的には、第1のターゲット表現は第2の表現で、第2のターゲット表現は第3の表現であることを例とし、第2のクロスモーダル損失は下記式(4)によって算出することができる。
【数4】
【0078】
式(4)において、L4は第2のクロスモーダル損失を示し、Nは、バッチ毎に、トレーニングに参与するサンプルタプルの数を示し(すなわち、batchsize)、h2
i、h3
iは第iの個のサンプルタプルの第2の表現(すなわち、第1のターゲット表現)、第3の表現(すなわち、第2のターゲット表現)をそれぞれ示し、h2
jは第jの個のサンプルタプルの第2の表現(すなわち、第1のターゲット表現)を示し、τはトレーニング可能なパラメータである。
【0079】
第1のシングルモーダル損失L1と、第2のシングルモーダル損失L2と、第1のクロスモーダル損失L3と、第2のクロスモーダル損失L4に基づき、マルチモーダル表現モデルの全体の損失Lを決定することができる。
【0080】
いくつかの実施例によれば、マルチモーダル表現モデルの全体の損失Lは、第1のシングルモーダル損失L
1と、第2のシングルモーダル損失L
2と、第1のクロスモーダル損失L
3と、第2のクロスモーダル損失L
4の加重和であり、すなわち、
【数5】
【0081】
式(5)において、wiは第iの個の損失Liの比重である。wiの値を柔軟に設定することによって、マルチモーダル表現モデルの学習方向を柔軟に調整することができ、マルチモーダル表現モデルと実際的応用場面の適合性を向上させる。
【0082】
マルチモーダル表現モデルの全体の損失を決定した後、当該全体の損失に基づき、マルチモーダル表現モデルのパラメータを調整することができる。
【0083】
理解すべきことは、上記ステップS110~ステップS180は、所定の終了条件(例えば、全体の損失は予定値より小さく、繰り返し回数は所定の最大繰り返し回数に達するなど)を満たす時まで繰り返して複数回実行してもよく、モデルのトレーニング過程を終了して、予備トレーニングされたマルチモーダル表現モデルを取得することである。
【0084】
前記のように、第1のデータモーダルと第2のデータモーダルはテキストモーダル、画像モーダル、ビデオモーダル、オーディオモーダルのうちのいずれか2つであってもよい。
【0085】
例えば、第1のデータモーダルは画像モーダルであってもよく、第2のデータモーダルはテキストモーダルであってもよい。従って、マルチモーダル表現モデルは画像やテキストのマルチモーダル表現モデルであり、当該画像やテキストのマルチモーダル表現モデルは画像モーダルに対応する画像表現モジュール(すなわち、第1の表現モジュール)とテキストモーダルに対応するテキスト表現モジュール(すなわち、第2の表現モジュール)を含み、画像やテキストのマルチモーダル表現モデルのトレーニング方法は以下のステップS110’~ステップS180’を含む。
【0086】
ステップS110’において、画像やテキストのサンプルタプルを取得し、画像やテキストのサンプルタプルは、画像モーダルの第1の画像サンプル(すなわち、第1のサンプル)と第2の画像サンプル(すなわち、第2のサンプル)、及びテキストモーダルの第1のテキストサンプル(すなわち、第3のサンプル)と第2のテキストサンプル(すなわち、第4のサンプル)を含む。画像やテキストのサンプルタプルに含まれる各サンプルの意味はマッチングする。
【0087】
ステップS120’において、第1の画像サンプルと第2の画像サンプルをそれぞれ画像表現モジュールに入力することで、第1の画像サンプルの第1の画像表現(すなわち、第1の表現)と第2の画像サンプルの第2の画像表現(すなわち、第2の表現)を取得する。
【0088】
ステップS130’において、第1のテキストサンプルと第2のテキストサンプルをそれぞれテキスト表現モジュールに入力することで、第1のテキストサンプルの第1のテキスト表現(すなわち、第3の表現)と第2のテキストサンプルの第2のテキスト表現(すなわち、第4の表現)を取得する。
【0089】
ステップS140’において、第1の画像表現と第2の画像表現に基づき、画像モーダルの第1のシングルモーダル損失を決定する。
【0090】
ステップS150’において、第1のテキスト表現と第2のテキスト表現に基づき、テキストモーダルの第2のシングルモーダル損失を決定する。
【0091】
ステップS160’において、ターゲット画像表現(すなわち、第1のターゲット表現)とターゲットテキスト表現(すなわち、第2のターゲット表現)に基づき、画像モーダルからテキストモーダルに至る第1のクロスモーダル損失とテキストモーダルから画像モーダルへの第2のクロスモーダル損失を決定し、ここで、ターゲット画像表現は第1の画像表現と第2の画像表現のうちのいずれか1つであり、ターゲットテキスト表現は第1のテキスト表現と第2のテキスト表現のうちのいずれか1つである。
【0092】
ステップS170’において、第1のシングルモーダル損失と、第2のシングルモーダル損失と、第1のクロスモーダル損失と、第2のクロスモーダル損失に基づき、マルチモーダル表現モデルの全体の損失を決定する。
【0093】
ステップS180’において、全体の損失に基づき、マルチモーダル表現モデルのパラメータを調整する。
【0094】
上記実施例によれば、画像やテキストのサンプルタプルを用いて画像やテキストのマルチモーダル表現モデルをトレーニングし、画像やテキストのサンプルタプルは、画像モーダルの2つの画像サンプルとテキストモーダルの2つのテキストサンプルを含み、画像やテキストのサンプルタプルにおける各サンプルの意味はマッチングする。モデルトレーニング過程において、画像モーダル、テキストモーダルのそれぞれのシングルモーダル損失を算出するのみならず、また画像、テキストモーダルの間のクロスモーダル損失を算出することによって、画像やテキストのマルチモーダル表現モデルがモーダル内とモーダル間の意味関連性を同時に学習するようにガイドすることができ、モデルの汎化性とロバスト性を向上させ、これによって、モデルは画像やテキストのマルチモーダルデータの統一表現を生成することができる。当該統一表現に基づき、下流側の画像やテキストに関するクロスモーダルタスク(例えば、画像やテキストに関するクロスモーダル検索、画像やテキストの意味マッチングなど)の正確性を向上させることができる。
【0095】
理解すべきことは、ステップS110’~ステップS180’は上記説明したステップS110~ステップS180に対応することである。ステップS110’~ステップS180’の実施形態は上記内容ステップS110~ステップS180に関する説明を参照してもよく、ここで詳細な説明を省略する。
【0096】
図3は、本開示のいくつかの実施例による画像やテキストのマルチモーダル表現モデルのトレーニング過程を示す概略図である。
図3に示すように、まず画像331とテキスト332を取得し、画像331とテキスト332の意味はマッチングする。
【0097】
画像331に対する2回の意味を変えないデータ拡張処理を行い、画像341、画像342を取得する。テキスト332に対する2回の意味を変えないデータ拡張処理を行い、テキスト343、テキスト344を取得する。
【0098】
画像341、画像342を画像表現モジュール310に入力し、画像表現351、画像表現352を取得する。テキスト343、テキスト344をテキスト表現モジュール320に入力し、テキスト表現353、テキスト表現354を取得する。
【0099】
画像表現351と画像表現352に基づき、画像モーダルのシングルモーダル損失361を算出することができる。テキスト表現353とテキスト表現354に基づき、テキストモーダルのシングルモーダル損失362を算出することができる。画像表現352とテキスト表現353に基づき、画像モーダルからテキストモーダルに至るクロスモーダル損失363とテキストモーダルから画像モーダルへのクロスモーダル損失364を算出することができる。
【0100】
シングルモーダル損失361、シングルモーダル損失362、クロスモーダル損失363、クロスモーダル損失364に対する加重合計を行うことで、全体の損失370を取得する。全体の損失370に基づき、例えば、誤差逆伝播などのアルゴリズムを用いて画像表現モジュール310とテキスト表現モジュール320のパラメータを調整する。
【0101】
いくつかの実施例によれば、ステップS110~ステップS180に基づいて予備トレーニングされたマルチモーダル表現モデルを取得し、更に予め設定された適用場面におけるマッチングデータペア(例えば、画像やテキスト検索場面における画像やテキストマッチングペア)に基づき、マルチモーダル表現モデルに対する微調整(fine-tune)を行うことで、マルチモーダル表現モデルの具体的な応用場面における表現効果を向上させることができる。
【0102】
具体的には、いくつかの実施例によれば、マッチングデータペアはターゲットデータモーダルの第1のデータと第2のデータを含み、第1のデータと第2のデータの意味はマッチングし、「予め設定された適用場面におけるマッチングデータペアに基づき、マルチモーダル表現モデルに対する微調整を行う」ことは、当該マッチングデータペアに基づき、ターゲットデータモーダルに対応する表現モジュールに対する微調整を行うことを含む。
【0103】
別の実施例によれば、マッチングデータペアは、第1のデータモーダルの第1のデータと第2のデータモーダルの第2のデータを含み、第1のデータと第2のデータの意味はマッチングし、「予め設定された適用場面におけるマッチングデータペアに基づき、マルチモーダル表現モデルに対する微調整を行う」ことは、第1のデータに基づき、第1のデータモーダルの第1のデータサンプルと第2のデータサンプルを生成することと、第2のデータに基づき、第2のデータモーダルの第3のデータサンプルと第4のデータサンプルを生成することと、第1のデータサンプルと、第2のデータサンプルと、第3のデータサンプルと、第4のデータサンプルに基づき、データサンプルタプルを構築することと、データサンプルタプルに基づき、マルチモーダル表現モデルに対する微調整を行うことと、を含む。
【0104】
データサンプルタプルに基づいてマルチモーダル表現モデルに対する微調整を行う実施形態は、ステップS110~ステップS180のサンプルタプルに基づいてマルチモーダル表現モデルをトレーニングする実施形態に類似し、ここで詳細な説明を省略する。
【0105】
本開示の実施例によるマルチモーダル表現モデルのトレーニング方法100は、予備トレーニングされた(又は予備トレーニングされて微調整された)マルチモーダル表現モデルを取得することができる。予備トレーニングされた(又は予備トレーニングされて微調整された)マルチモーダル表現モデルは複数のクロスモーダルデータ処理タスク、例えば、クロスモーダル検索タスク、クロスモーダル推論タスクなどに応用されてよい。理解すべきことは、予備トレーニングされた(又は予備トレーニングされて微調整された)マルチモーダル表現モデルはシングルモーダルのデータ処理タスクに応用されてもよいことである。
【0106】
本開示の実施例によれば、クロスモーダル検索方法を更に提供する。
図4は、本開示の実施例によるクロスモーダル検索方法400を示すフローチャートである。方法400はサーバで実行されてもよいし、クライアントデバイスで実行されてもよい。すなわち、方法400の各ステップの実行主体はサーバであってもよく、クライアントデバイスであってもよい。
【0107】
図4に示すように、方法400は、ステップS410~ステップS440を含む。
【0108】
ステップS410において、第1のデータモーダルの検索対象を取得する。
【0109】
ステップS420において、検索対象をマルチモーダル表現モデルに入力することで、検索対象に対応する第1の表現を取得する。マルチモーダル表現モデルは上記実施例によるマルチモーダル表現モデルのトレーニング方法でトレーニングすることで得られたものである。
【0110】
ステップS430において、第2のデータモーダルの複数の候補対象のそれぞれの第2の表現を取得し、ここで、第2の表現は、対応する候補対象をマルチモーダル表現モデルに入力することにより得られたものである。
【0111】
ステップ440において、第1の表現と各第2の表現の類似度に基づき、複数の候補対象から検索対象にマッチングするターゲット対象を決定する。
【0112】
本開示の実施例によれば、正確なクロスモーダル検索を実現することができる。
【0113】
いくつかの実施例によれば、第1のデータモーダル、第2のデータモーダルは画像モーダルとテキストモーダルであってもよく、従って、方法400は正確な画像やテキストに関するクロスモーダル検索を実現することができる。
【0114】
第1の表現と第2の表現の類似度は例えば、コサイン類似度であってもよい。
【0115】
いくつかの実施例によれば、ターゲット対象は例えば、類似度が最も大きな1つ又は複数の候補対象であってもよい。別の実施例によれば、ターゲット対象は類似度が閾値より大きい1つ又は複数の候補対象であってもよい。
【0116】
図5は、本開示の実施例のマルチモーダル表現モデル(すなわち、本モデル)と従来技術のマルチモーダル表現モデルは、公開データセットFlickr30KとMSCOCOにおける画像やテキストに関するクロスモーダル検索効果の比較図である。ここで、R@Kは、正解が前のK個のリターン結果に出るサンプル例の全サンプル例を占める割合を示し、
*はモデルがMSCOCOデータセットで微調整を行うことを示す。
【0117】
本開示の実施例によれば、クロスモーダル推論方法を更に提供する。
図6は、本開示の実施例によるクロスモーダル推論方法600を示すフローチャートである。方法600は、例えばサーバで実行されてもよいし、クライアントデバイスで実行されてもよい。すなわち、方法600の各ステップの実行主体はサーバであってもよく、クライアントデバイスであってもよい。
【0118】
図6に示すように、方法600は、ステップS610~ステップS630を含む。
【0119】
ステップS610において、第1のデータモーダルの第1の対象と第2のデータモーダルの第2の対象を取得する。
【0120】
ステップS620において、第1の対象と第2の対象をそれぞれマルチモーダル表現モデルに入力することで、第1の対象に対応する第1の表現と第2の対象に対応する第2の表現を取得する。マルチモーダル表現モデルは上記実施例によるマルチモーダル表現モデルのトレーニング方法でトレーニングすることで得られたものである。
【0121】
ステップS630において、第1の表現と第2の表現の類似度に基づき、第1の対象と第2の対象の推論タグを決定する。
【0122】
本開示の実施例によれば、正確なクロスモーダル推論を実現することができる。
【0123】
いくつかの実施例によれば、推論タグは、例えば導出(Entailment)、中立(Neutral)と矛盾(Contradiction)を含む。
【0124】
本開示の実施例によれば、マルチモーダル表現モデルのトレーニング装置を更に提供する。
図7は、本開示の実施例によるマルチモーダル表現モデルのトレーニング装置700を示す構成ブロック図である。
図7に示すように、装置700は、
第1の取得ユニット710であって、サンプルタプルを取得するように構成され、前記サンプルタプルは、前記第1のデータモーダルの第1のサンプルと第2のサンプル、及び前記第2のデータモーダルの第3のサンプルと第4のサンプルを含み、ここで、前記サンプルタプルに含まれる各サンプルの意味はマッチングするものと、
第1の入力ユニット720であって、前記第1のサンプルと前記第2のサンプルをそれぞれ前記第1の表現ユニットに入力することで、前記第1のサンプルの第1の表現と前記第2のサンプルの第2の表現を取得するように構成されるものと、
第2の入力ユニット730であって、前記第3のサンプルと前記第4のサンプルをそれぞれ前記第2の表現ユニットに入力することで、前記第3のサンプルの第3の表現と前記第4のサンプルの第4の表現を取得するように構成されるものと、
第1の損失ユニット740であって、前記第1の表現と前記第2の表現に基づき、前記第1のデータモーダルの第1のシングルモーダル損失を決定するように構成されるものと、
第2の損失ユニット750であって、前記第3の表現と前記第4の表現に基づき、前記第2のデータモーダルの第2のシングルモーダル損失を決定するように構成されるものと、
第3の損失ユニット760であって、第1のターゲット表現と第2のターゲット表現に基づき、前記第1のデータモーダルから前記第2のデータモーダルへの第1のクロスモーダル損失と、前記第2のデータモーダルから前記第1のデータモーダルへの第2のクロスモーダル損失を決定するように構成され、ここで、前記第1のターゲット表現は前記第1の表現と前記第2の表現のうちのいずれか1つであり、前記第2のターゲット表現は前記第3の表現と前記第4の表現のうちのいずれか1つであるものと、
第4の損失ユニット770であって、前記第1のシングルモーダル損失と、前記第2のシングルモーダル損失と、前記第1のクロスモーダル損失と、前記第2のクロスモーダル損失に基づき、前記マルチモーダル表現モデルの全体の損失を決定するように構成されるものと、
調整ユニット780であって、前記全体の損失に基づき、前記マルチモーダル表現モデルのパラメータを調整するように構成されるものと、を含む。
【0125】
本開示の実施例によれば、サンプルタプルを用いてマルチモーダル表現モデルをトレーニングし、サンプルタプルは各種データモーダルの2つのサンプルを含み、サンプルタプルにおける各サンプルの意味はマッチングする。上記サンプルタプルに基づき、トレーニング過程に、各データモーダルのシングルモーダル損失を算出するのみならず、また異なるモーダルの間のクロスモーダル損失を算出することによって、マルチモーダル表現モデルがモーダル内とモーダル間の意味関連性を同時に学習するようにガイドすることができ、モデルの汎化性とロバスト性を向上させ、これによって、モデルはマルチモーダルデータの統一表現を生成することができる。
【0126】
いくつかの実施例によれば、装置700は、第2の取得ユニットであって、生データペアを取得するように構成され、前記生データペアは、前記第1のデータモーダルの第1の生データと前記第2のデータモーダルの第2の生データを含み、前記第1の生データと前記第2の生データの意味はマッチングするものと、第1の生成ユニットであって、前記第1の生データに基づき、前記第1のサンプルと前記第2のサンプルを生成するように構成されるものと、第2の生成ユニットであって、前記第2の生データに基づき、前記第3のサンプルと前記第4のサンプルを生成するように構成されるものと、を更に含む。
【0127】
いくつかの実施例によれば、前記第1の生成ユニットは、第1の拡張サブユニットであって、前記第1の生データに対する第1のデータ拡張処理を行うことで、前記第1のサンプルを生成するように構成されるものと、第2の拡張サブユニットであって、前記第1の生データに対する第2のデータ拡張処理を行うことで、前記第1のサンプルと異なる前記第2のサンプルを生成するように構成されるものと、を含む。
【0128】
いくつかの実施例によれば、前記第1のサンプルと前記第2のサンプルは前記第1の生データと同じで、前記第1の表現ユニットは、ランダムノイズを添加することで、前記第1の表現を前記第2の表現から異ならせるように構成される。
【0129】
いくつかの実施例によれば、前記第1のデータモーダルはテキストモーダルであり、前記第1の表現ユニットはdropout処理層を含むテキストエンコーダであり、前記dropout処理層のドロップ確率は予め設定された閾値より小さい。
【0130】
いくつかの実施例によれば、前記第1の損失ユニット740は更に、前記第1の表現と前記第2の表現の第1の類似度、及び前記第1の表現と他のサンプルタプルの第2の表現の第2の類似度に基づき、前記第1のシングルモーダル損失を決定するように構成され、ここで、前記第1のシングルモーダル損失は、前記第1の類似度と負の相関を有し、且つ、前記第2の類似度と正の相関を有する。
【0131】
いくつかの実施例によれば、前記第3の損失ユニット760は更に、前記第1のターゲット表現と前記第2のターゲット表現の第3の類似度、及び前記第1のターゲット表現と他のサンプルタプルの第2のターゲット表現の第4の類似度に基づき、前記第1のクロスモーダル損失を決定するように構成され、ここで、前記第1のクロスモーダル損失は、前記第3の類似度と負の相関を有し、且つ、前記第4の類似度と正の相関を有する。
【0132】
いくつかの実施例によれば、前記第3の損失ユニット760は更に、前記第1のターゲット表現と前記第2のターゲット表現の第3の類似度、及び前記第2のターゲット表現と他のサンプルタプルの第1のターゲット表現の第5の類似度に基づき、前記第2のクロスモーダル損失を決定するように構成され、ここで、前記第2のクロスモーダル損失は、前記第3の類似度と負の相関を有し、且つ、前記第5の類似度と正の相関を有する。
【0133】
いくつかの実施例によれば、前記全体の損失は、前記第1のシングルモーダル損失と、前記第2のシングルモーダル損失と、前記第1のクロスモーダル損失と、前記第2のクロスモーダル損失の加重和である。
【0134】
いくつかの実施例によれば、装置700は、予め設定された適用場面におけるマッチングデータペアに基づき、前記マルチモーダル表現モデルに対する微調整を行うように構成される微調整ユニットを更に含む。
【0135】
いくつかの実施例によれば、前記マッチングデータペアはターゲットデータモーダルの第1のデータと第2のデータを含み、前記第1のデータと前記第2のデータの意味はマッチングし、ここで、前記微調整ユニットは更に、前記マッチングデータペアに基づき、前記ターゲットデータモーダルに対応する表現ユニットに対する微調整を行うように構成される。
【0136】
いくつかの実施例によれば、前記マッチングデータペアは、第1のデータモーダルの第1のデータと第2のデータモーダルの第2のデータを含み、前記第1のデータと前記第2のデータの意味はマッチングし、ここで、前記微調整ユニットは、前記第1のデータに基づき、前記第1のデータモーダルの第1のデータサンプルと第2のデータサンプルを生成するように構成される第1の生成サブユニットと、前記第2のデータに基づき、前記第2のデータモーダルの第3のデータサンプルと第4のデータサンプルを生成するように構成される第2の生成サブユニットと、前記第1のデータサンプルと、前記第2のデータサンプルと、前記第3のデータサンプルと、前記第4のデータサンプルに基づき、データサンプルタプルを構築するように構成される第3の生成サブユニットと、データサンプルタプルに基づき、前記マルチモーダル表現モデルに対する微調整を行うように構成される微調整サブユニットと、を含む。
【0137】
いくつかの実施例によれば、前記第1のデータモーダルと前記第2のデータモーダルは、テキストモーダル、画像モーダル、ビデオモーダル、オーディオモーダルのいずれか2つである。
【0138】
本開示の実施例によれば、クロスモーダル検索装置を更に提供する。
図8は、本開示の実施例によるクロスモーダル検索装置800を示す構成ブロック図である。
図8に示すように、装置800は、
第1の取得ユニット810であって、第1のデータモーダルの検索対象を取得するように構成されるものと、
表現ユニット820であって、前記検索対象をマルチモーダル表現モデルに入力することで、前記検索対象に対応する第1の表現を取得するように構成されるものと、
第2の取得ユニット830であって、第2のデータモーダルの複数の候補対象のそれぞれの第2の表現を取得するように構成され、ここで、前記第2の表現は、対応する候補対象を前記マルチモーダル表現モデルに入力することにより得られたものと、
決定ユニット840であって、前記第1の表現と各第2の表現の類似度に基づき、前記複数の候補対象から前記検索対象にマッチングするターゲット対象を決定するように構成され、ここで、前記マルチモーダル表現モデルは、上記マルチモーダル表現モデルに基づくトレーニング装置でトレーニングすることで得られたものと、を含む。
【0139】
本開示の実施例によれば、正確なクロスモーダル検索を実現することができる。
【0140】
本開示の実施例によれば、クロスモーダル推論装置を更に提供する。
図9は、本開示の実施例によるクロスモーダル推論装置900を示す構成ブロック図である。
図9に示すように、装置900は、
取得ユニット910であって、第1のデータモーダルの第1の対象と第2のデータモーダルの第2の対象を取得するように構成されるものと、
表現ユニット920であって、前記第1の対象と前記第2の対象をそれぞれマルチモーダル表現モデルに入力することで、前記第1の対象に対応する第1の表現と前記第2の対象に対応する第2の表現を取得するように構成されるものと、
決定ユニット930であって、前記第1の表現と前記第2の表現の類似度に基づき、前記第1の対象と前記第2の対象の推論タグを決定するように構成され、ここで、前記マルチモーダル表現モデルは、上記マルチモーダル表現モデルに基づくトレーニング装置でトレーニングすることで得られたものと、を含む。
【0141】
本開示の実施例によれば、正確なクロスモーダル推論を実現することができる。
【0142】
理解すべきことは、
図7に示すように装置700の各ユニットは
図1に記載の方法100における各ステップに対応してもよく、
図8に示すように装置800の各ユニットは
図4に記載の方法400における各ステップに対応してもよく、
図9に示すように装置900の各ユニットは
図6に記載の方法600における各ステップに対応してもよいことである。これにより、上記方法100について説明する操作、特徴と利点は装置700及びそれに含まれるユニットにも適用され、上記方法400について説明する操作、特徴と利点は装置800及びそれに含まれるユニットにも適用され、上記方法600について説明する操作、特徴と利点同じは装置900及びそれに含まれるユニットにも適用される。簡潔のために、いくつかの操作、特徴及び利点はここでは説明を省略する。
【0143】
特定の機能は上記で特定のユニットを参照して論じられているが、本明細書で論じた各ユニットの機能は複数のユニットに分割されてもよく、及び/又は複数のユニットの少なくともいくつかの機能は単一のユニットに組み合わせてもよいことに留意されたい。例えば、以上で説明した第1の入力ユニット720と第2の入力ユニット730は、いくつかの実施例では、単一のユニットに組み合わせてもよい。
【0144】
本明細書では、ソフトウェアハードウェア要素又はプログラムユニットの一般的なコンテキストで様々な技術を説明することができることも理解されたい。上記の
図7~
図9で説明された各ユニットに関しては、ハードウェアにおいて、又はソフトウェア及び/又はファームウェアと組み合わされたハードウェアにおいて実装することができる。例えば、これらのユニットは、1つ又は複数のプロセッサにおいて実行され、コンピュータ可読記憶媒体に記憶されるように構成されたコンピュータプログラムコード/命令として実装することができる。選択的に、これらのユニットはハードウェアロジック/回路として実装することができる。例えば、いくつかの実施例では、ユニット710~930のうちの1つ又は複数は、チップシステム(System on Chip、SoC)に一緒に実装されてもよい。SoCは、集積回路チップ(例えば、プロセッサ(例えば、中央処理ユニット(Central Processing Unit、CPU)、マイクロコントローラ、マイクロプロセッサ、デジタル信号プロセッサ(Digital Signal Processor、DSP)などを含む)、メモリ、1つ又は複数の通信インターフェース、及び/又は他の回路中の1つ又は複数のコンポーネント)を含んでもよく、オプションで受信したプログラムコードの実行、及び/又は埋め込みファームウェアを含むことで機能を実行することができる。
【0145】
本開示の実施例によれば、電子機器を提供し、前記電子機器は、少なくとも1つのプロセッサと、上記少なくとも1つのプロセッサに通信接続されたメモリを含み、このメモリには、上記少なくとも1つのプロセッサによって実行可能な命令を記憶し、この命令は、上記少なくとも1つのプロセッサによって実行されることにより、上記少なくとも1つのプロセッサに本開示の実施例によるマルチモーダル表現モデルのトレーニング方法、クロスモーダル検索方法、クロスモーダル推論方法のうちの少なくとも1つを実行させる。
【0146】
本開示の一態様によれば、本開示の実施例によるマルチモーダル表現モデルのトレーニング方法、クロスモーダル検索方法、クロスモーダル推論方法のうちの少なくとも1つをコンピュータに実行させるためのコンピュータ命令が記憶された非一時的コンピュータ可読記憶媒体を提供する。
【0147】
本開示の一態様によれば、プロセッサによって実行されると、本開示の実施例によるマルチモーダル表現モデルのトレーニング方法、クロスモーダル検索方法、クロスモーダル推論方法のうちの少なくとも1つを実現するコンピュータプログラムを含むコンピュータプログラム製品を提供する。
【0148】
図10に示すように、ここでは、本開示の様々な態様に適用可能なハードウェア装置の一例である、本開示のサーバ又はクライアントとして利用可能な電子機器1000の構成ブロック図について説明する。電子機器は、様々な形態のデジタル電子コンピュータ、例えば、ラップトップ型コンピュータ、デスクトップ型コンピュータ、ステージ、個人用デジタル補助装置、サーバ、ブレードサーバ、大型コンピュータ、その他の適切なコンピュータを示す。電子機器は更に、様々な形態の移動装置、例えば、個人用デジタル補助装置、セルラー電話、スマートフォン、着用可能な装置とその他の類似する計算装置を示してよい。本明細書に示される部品、これらの接続関係及びこれらの機能は例示的なものに過ぎず、本明細書に説明した及び/又は請求した本開示の実現を制限しない。
【0149】
図10に示すように、電子機器1000は、計算ユニット1001を含み、それはリードオンリーメモリ(ROM)1002に記憶されたコンピュータプログラム又は記憶ユニット1008からランダムアクセスメモリ(RAM)1003にロードされるコンピュータプログラムによって、種々の適当な動作と処理を実行することができる。RAM 1003において、更に機器1000を操作するために必要な様々なプログラムとデータを記憶してもよい。計算ユニット1001、ROM 1002及びRAM 1003は、バス1004を介して互いに接続される。入力/出力(I/O)インターフェース1005も、バス1004に接続される。
【0150】
電子機器1000における複数の部品はI/Oインターフェース1005に接続され、入力ユニット1006、出力ユニット1007、記憶ユニット1008及び通信ユニット1009を含む。入力ユニット1006は、機器1000に情報を入力することが可能ないずれかのタイプの装置であってもよく、入力ユニット1006は、入力された数字又は文字情報を受信することができ、電子機器のユーザ設定及び/又は機能制御に関するキー信号入力を生成することができ、マウス、キーボード、タッチスクリーン、トラックボード、トラックボール、操作レバー、マイク及び/又はリモコンを含んでもよいが、これらに限定されない。出力ユニット1007は、情報を提示することが可能ないずれかのタイプの装置であってもよく、ディスプレイ、スピーカ、ビデオ/オーディオ出力端末、バイブレータ、及び/又はプリンタを含んでもよいが、これらに限定されない。記憶ユニット1008は磁気ディスク、光ディスクを含んでもよいが、これらに限定されない。通信ユニット1009は、機器1000が例えば、インターネットであるコンピュータネットワーク及び/又は様々な電気通信ネットワークを介して他の装置と情報/データのやりとりをすることを可能にし、モデム、ネットワークカード、赤外線通信装置、無線通信送受信機、及び/又はチップセット、例えば、ブルートゥース(登録商標)TM装置、802.11装置、Wi-Fi装置、WiMAX装置、セルラー通信装置及び/又は類似物を含んでもよいが、これらに限定されない。
【0151】
計算ユニット1001は処理及びコンピューティング能力を有する様々な汎用及び/又は専用の処理コンポーネントであってもよい。計算ユニット1001のいくつかの例として、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、様々な専用人工知能(AI)計算チップ、機械学習モデルアルゴリズムを実行する様々な計算ユニット、デジタル信号プロセッサ(DSP)、及び任意の適当なプロセッサ、コントローラ、マイクロコントローラなどを含んでもよいが、これらに限定されない。計算ユニット1001は上記内容で説明した各方法と処理、例えば、方法100、400と600を実行する。例えば、いくつかの実施例では、方法100、400と600は記憶ユニット1008のような機械可読媒体に有形に組み込まれたコンピュータソフトウェアプログラムとして実装されてもよい。いくつかの実施例では、コンピュータプログラムの一部又は全部は、ROM 1002及び/又は通信ユニット1009を介して機器1000にロード及び/又はインストールされてもよい。コンピュータプログラムがRAM 1003にロードされて計算ユニット1001によって実行されると、上記で説明した方法100、400又は600の1つ又は複数のステップを実行することができる。代替的に、他の実施例では、計算ユニット1001は、他のいずれかの適当な方法で(例えば、ファームウェアを用いて)、方法100、400、600のうち少なくとも1つを実行するように構成される。
【0152】
本明細書で上述したシステム及び技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、複雑なプログラマブル論理デバイス(CPLD)、ソフトウェア・ハードウェア、ファームウェア、ソフトウェア、及び/又はこれらの組み合わせにおいて実装することができる。これらの様々な実施形態は、一つ又は複数のコンピュータプログラムに実施され、この一つ又は複数のコンピュータプログラムは少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステムで実行し及び/又は解釈してもよく、このプログラマブルプロセッサは専用又は汎用プログラマブルプロセッサであってもよく、記憶システム、少なくとも1つの入力装置、少なくとも1つの出力装置からデータと命令を受信し、データと命令をこの記憶システム、この少なくとも1つの入力装置、この少なくとも1つの出力装置に送信してよいこと、を含んでもよい。
【0153】
本開示の方法を実施するプログラムコードは一つ又は複数のプログラミング言語のいかなる組み合わせで書かれてよい。これらのプログラムコードを汎用コンピュータ、特殊目的のコンピュータ又は他のプログラマブルデータ処理装置のプロセッサ又はコントローラに提供してよく、よってプログラムコードはプロセッサ又はコントローラにより実行される時にフローチャート及び/又はブロック図に規定の機能/操作を実施する。プログラムコードは完全に機械で実行してよく、部分的に機械で実行してよく、独立ソフトウェアパッケージとして部分的に機械で実行し且つ部分的に遠隔機械で実行してよく、又は完全に遠隔機械又はサーバで実行してよい。
【0154】
本開示のコンテキストにおいて、機械可読媒体は有形の媒体であってもよく、命令実行システム、装置又はデバイスに使用される又は命令実行システム、装置又はデバイスに結合されて使用されるプログラムを具備又は記憶してよい。機械可読媒体は機械可読信号媒体又は機械可読記憶媒体であってもよい。機械可読媒体は、電子、磁気、光学、電磁、赤外線、又は半導体システム、装置又はデバイス、又は上記内容のいかなる適切な組み合わせを含んでもよいが、これらに限定されない。機械可読記憶媒体のより具体的な例は、ポータブルコンピュータディスク、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラマブル読み出し専用メモリ(EPROM又はフラッシュメモリ)、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM)、光記憶装置、磁気記憶装置、又は上記内容のいかなる適切な組み合わせを含む。
【0155】
ユーザとのインタラクションを提供するために、コンピュータにはここで説明したシステムと技術を実施してよく、このコンピュータは、ユーザに情報を表示するための表示装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)監視モニタ)、及びキーボードとポインティング装置(例えば、マウスやトラックボール)を備え、ユーザはこのキーボードとこのポインティング装置を介してコンピュータに入力してよい。その他の種類の装置は更に、ユーザとのインタラクションを提供するためのものであってもよい。例えば、ユーザに提供するフィードバックはいかなる形態の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、いかなる形態(音入力、音声入力、又は触覚入力を含む)でユーザからの入力を受信してよい。
【0156】
ここで述べたシステムや技術は、バックステージ部材を含む計算システム(例えば、データサーバとして)や、ミドルウェア部材を含む計算システム(例えば、アプリケーションサーバ)や、フロントエンド部材を含む計算システム(例えば、グラフィカルユーザインターフェースやウェブブラウザを有するユーザコンピュータ、ユーザが、そのグラフィカルユーザインターフェースやウェブブラウザを通じて、それらのシステムや技術の実施形態とのインタラクションを実現できる)、あるいは、それらのバックステージ部材、ミドルウェア部材、あるいはフロントエンド部材の任意の組み合わせからなる計算システムには実施されてもよい。システムの部材は、任意の形式や媒体のデジタルデータ通信(例えば、通信ネットワーク)により相互に接続されてもよい。通信ネットワークの一例は、ローカルネットワーク(LAN)、広域ネットワーク(WAN)とインターネットを含む。
【0157】
コンピュータシステムは、クライアント側とサーバを含んでもよい。クライアント側とサーバは、一般的に相互に遠く離れ、通常、通信ネットワークを介してインタラクションを行う。互いにクライアント側-サーバという関係を有するコンピュータプログラムを対応するコンピュータで運転することによってクライアント側とサーバとの関係を生成する。サーバは、クラウドサーバであってもよく、分散型システムのサーバでも、又はブロックチェーンと組み合わされたサーバであってもよい。
【0158】
理解すべきこととして、前述した様々な形態のフローを用いて、ステップを改めて順位付け、増加又は削除してよい。例えば、本開示に記載された各ステップは、並列的に実行してもよいし、順次実行してもよいし、異なる順序で実行させてもよいし、本開示に開示された技術案が所望する結果を実現できれば、本文はこれに限定されないことである。
【0159】
本開示の実施例又は例は図面を参照して説明されたが、上記の方法、システム、及び装置は単なる例示的な実施例又は例であり、本発明の範囲はこれらの実施例又は例によって制限されるものではなく、授権後の特許請求の範囲及びその均等範囲のみによって限定されることを理解されたい。実施例又は例の様々な要素は省略されてもよく、又はそれらの均等要素によって代替されてもよい。なお、各ステップは、本開示で説明した順序とは異なる順序で実行されてもよい。更に、実施例又は例の様々な要素は、様々な方法で組み合わせられてもよい。重要なのは、技術の進化に伴い、ここで説明される多くの要素は、本開示の後に現れる同等の要素に置き換えることができるということである。