(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023135777
(43)【公開日】2023-09-29
(54)【発明の名称】情報処理装置、情報処理方法及び情報処理プログラム
(51)【国際特許分類】
G06N 3/08 20230101AFI20230922BHJP
G06N 3/045 20230101ALI20230922BHJP
【FI】
G06N3/08
G06N3/04 154
【審査請求】有
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022041040
(22)【出願日】2022-03-16
(11)【特許番号】
(45)【特許公報発行日】2023-07-19
(71)【出願人】
【識別番号】501440684
【氏名又は名称】ソフトバンク株式会社
(71)【出願人】
【識別番号】500132214
【氏名又は名称】学校法人明星学苑
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】堀 隆之
(72)【発明者】
【氏名】鈴木 裕真
(72)【発明者】
【氏名】岡本 秀明
(72)【発明者】
【氏名】植木 一也
(57)【要約】
【課題】異なる複数の種類の情報を共通の潜在空間に埋め込むことができる複数の種類のエンコーダの精度をそれぞれ向上させることができる。
【解決手段】本願に係る情報処理装置は、異なる複数の種類の情報それぞれに対応するそれぞれの特徴情報を共通の潜在空間にマッピングするようそれぞれ学習させた複数の種類のエンコーダを取得する取得部と、複数の種類のエンコーダそれぞれに対応する複数の種類のデコーダそれぞれを生成するデコーダ生成部と、異なる複数の種類の情報のうち、一の種類の情報と、複数の種類のデコーダのうち、一の種類の情報とは異なる他の種類の情報に対応するデコーダである他のデコーダを用いて生成された他の種類の情報とに基づいて、複数の種類のエンコーダをそれぞれ再学習させるエンコーダ生成部と、を備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
異なる複数の種類の情報それぞれに対応するそれぞれの特徴情報を共通の潜在空間にマッピングするようそれぞれ学習させた複数の種類のエンコーダを取得する取得部と、
前記複数の種類のエンコーダそれぞれに対応する複数の種類のデコーダそれぞれを生成するデコーダ生成部と、
前記異なる複数の種類の情報のうち、一の種類の情報と、前記複数の種類のデコーダのうち、前記一の種類の情報とは異なる他の種類の情報に対応するデコーダである他のデコーダを用いて生成された前記他の種類の情報とに基づいて、前記複数の種類のエンコーダをそれぞれ再学習させるエンコーダ生成部と、
を備える情報処理装置。
【請求項2】
前記取得部は、
異なる2種類の情報それぞれに対応するそれぞれの特徴情報を共通の潜在空間にマッピングするようそれぞれ学習させた2種類のエンコーダを取得し、
前記デコーダ生成部は、
前記2種類のエンコーダそれぞれに対応する2種類のデコーダそれぞれを生成し、
前記エンコーダ生成部は、
前記異なる2種類の情報のうち、一方の種類の情報と、前記2種類のデコーダのうち、前記一方の種類の情報とは異なる他方の種類の情報に対応するデコーダである他方のデコーダを用いて生成された前記他方の種類の情報とに基づいて、前記2種類のエンコーダをそれぞれ再学習させる、
請求項1に記載の情報処理装置。
【請求項3】
前記エンコーダ生成部は、
前記2種類のエンコーダのうち、前記一方の種類の情報に対応するエンコーダである一方のエンコーダを用いて、前記一方の種類の情報から、前記一方の種類の情報に対応する特徴情報である一方の特徴情報を生成し、前記2種類のエンコーダのうち、前記他方の種類の情報に対応するエンコーダである他方のエンコーダを用いて、前記他方のデコーダを用いて生成された前記他方の種類の情報から、前記他方の種類の情報に対応する特徴情報である他方の特徴情報を生成し、生成された前記一方の特徴情報および前記他方の特徴情報をそれぞれ前記共通の潜在空間にマッピングするよう前記2種類のエンコーダをそれぞれ再学習させる、
請求項2に記載の情報処理装置。
【請求項4】
前記エンコーダ生成部は、
前記他方のデコーダを用いて、前記一方のエンコーダを用いて生成された前記一方の特徴情報から、前記他方の種類の情報を生成する、
請求項3に記載の情報処理装置。
【請求項5】
前記エンコーダ生成部は、
前記2種類のデコーダのうち、前記一方の種類の情報に対応するデコーダである一方のデコーダを用いて、前記他方のエンコーダを用いて生成された前記他方の特徴情報から、前記一方の種類の情報を生成し、前記一方のデコーダを用いて生成された前記一方の種類の情報と、前記一方のエンコーダに入力された前記一方の種類の情報とに基づいて、前記2種類のエンコーダをそれぞれ再学習させる、
請求項3または4に記載の情報処理装置。
【請求項6】
前記デコーダ生成部は、
前記一方の種類の情報と、前記2種類のデコーダのうち、前記一方の種類の情報に対応するデコーダである一方のデコーダを用いて生成された前記一方の種類の情報とに基づいて学習させた前記一方のデコーダである学習済み第1デコーダ、および、前記他方の種類の情報と、前記他方のデコーダを用いて生成された前記他方の種類の情報とに基づいて学習させた前記他方のデコーダである学習済み第2デコーダを生成し、
前記エンコーダ生成部は、
前記一方の種類の情報と、前記学習済み第2デコーダを用いて生成された前記他方の種類の情報とに基づいて、前記2種類のエンコーダをそれぞれ再学習させる、
請求項2~5のいずれか1つに記載の情報処理装置。
【請求項7】
前記デコーダ生成部は、
前記2種類のエンコーダのうち、前記一方の種類の情報に対応するエンコーダである一方のエンコーダを用いて、前記一方の種類の情報から、前記一方の種類の情報に対応する特徴情報である一方の特徴情報を生成し、前記一方のデコーダを用いて、前記一方のエンコーダを用いて生成された前記一方の特徴情報から、前記一方の種類の情報を生成し、
前記2種類のエンコーダのうち、前記他方の種類の情報に対応するエンコーダである他方のエンコーダを用いて、前記他方の種類の情報から、前記他方の種類の情報に対応する特徴情報である他方の特徴情報を生成し、前記他方のデコーダを用いて、前記他方のエンコーダを用いて生成された前記他方の特徴情報から、前記他方の種類の情報を生成する、
請求項6に記載の情報処理装置。
【請求項8】
前記取得部は、
前記一方の種類の情報と、前記一方の種類の情報に対応する前記他方の種類の情報との組に基づいてそれぞれ学習させた前記2種類のエンコーダを取得する、
請求項2~7のいずれか1つに記載の情報処理装置。
【請求項9】
前記異なる2種類の情報は、画像およびテキストである、
請求項2~8のいずれか1つに記載の情報処理装置。
【請求項10】
前記デコーダ生成部は、
機械学習により学習させた機械学習モデルである前記2種類のデコーダそれぞれを生成し、
前記エンコーダ生成部は、
機械学習により学習させた機械学習モデルである前記2種類のエンコーダをそれぞれ再学習させる、
請求項2~9のいずれか1つに記載の情報処理装置。
【請求項11】
情報処理装置が実行するプログラムにより実現される情報処理方法であって、
異なる複数の種類の情報それぞれに対応するそれぞれの特徴情報を共通の潜在空間にマッピングするようそれぞれ学習させた複数の種類のエンコーダを取得する取得工程と、
前記複数の種類のエンコーダそれぞれに対応する複数の種類のデコーダそれぞれを生成するデコーダ生成工程と、
前記異なる複数の種類の情報のうち、一の種類の情報と、前記複数の種類のデコーダのうち、前記一の種類の情報とは異なる他の種類の情報に対応するデコーダである他のデコーダを用いて生成された前記他の種類の情報とに基づいて、前記複数の種類のエンコーダをそれぞれ再学習させるエンコーダ生成工程と、
を含む情報処理方法。
【請求項12】
異なる複数の種類の情報それぞれに対応するそれぞれの特徴情報を共通の潜在空間にマッピングするようそれぞれ学習させた複数の種類のエンコーダを取得する取得手順と、
前記複数の種類のエンコーダそれぞれに対応する複数の種類のデコーダそれぞれを生成するデコーダ生成手順と、
前記異なる複数の種類の情報のうち、一の種類の情報と、前記複数の種類のデコーダのうち、前記一の種類の情報とは異なる他の種類の情報に対応するデコーダである他のデコーダを用いて生成された前記他の種類の情報とに基づいて、前記複数の種類のエンコーダをそれぞれ再学習させるエンコーダ生成手順と、
をコンピュータに実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【0002】
近年、言語と画像など異なる種類の情報(異なるモダリティに属する情報ともいう)を組み合わせたマルチモーダル技術の研究が盛んに行われている。例えば、言語と画像を組み合わせたマルチモーダル技術として、画像から画像の説明文(キャプション)を生成する技術や、画像と文章の相互検索が可能な技術などが知られている。
【0003】
また、上記のようなマルチモーダル技術を実現するために、画像と言語(以下、テキストともいう)など異なる2種類の情報を共通の潜在空間(マルチモーダル空間ともいう)に埋め込む技術が用いられる。例えば、画像の内容を示すテキストと画像の組を含むデータセットを用いて、画像とテキストを共通の潜在空間に埋め込むよう画像エンコーダおよびテキストエンコーダをそれぞれ学習させる技術が知られている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Alec Radford、他11名、“Learning Transferable Visual Models From Natural Language Supervision”、[online]、February 2021、[令和4年2月28日検索]、インターネット<URL:https://arxiv.org/abs/2103.00020>
【発明の概要】
【発明が解決しようとする課題】
【0005】
異なる複数の種類の情報を共通の潜在空間に埋め込むことができる複数の種類のエンコーダの精度をそれぞれ向上させることを可能とする技術が求められている。
【0006】
本願は、異なる複数の種類の情報を共通の潜在空間に埋め込むことができる複数の種類のエンコーダの精度をそれぞれ向上させることができる情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本願に係る情報処理装置は、異なる複数の種類の情報それぞれに対応するそれぞれの特徴情報を共通の潜在空間にマッピングするようそれぞれ学習させた複数の種類のエンコーダを取得する取得部と、前記複数の種類のエンコーダそれぞれに対応する複数の種類のデコーダそれぞれを生成するデコーダ生成部と、前記異なる複数の種類の情報のうち、一の種類の情報と、前記複数の種類のデコーダのうち、前記一の種類の情報とは異なる他の種類の情報に対応するデコーダである他のデコーダを用いて生成された前記他の種類の情報とに基づいて、前記複数の種類のエンコーダをそれぞれ再学習させるエンコーダ生成部と、を備える。
【0008】
また、前記取得部は、異なる2種類の情報それぞれに対応するそれぞれの特徴情報を共通の潜在空間にマッピングするようそれぞれ学習させた2種類のエンコーダを取得し、前記デコーダ生成部は、前記2種類のエンコーダそれぞれに対応する2種類のデコーダそれぞれを生成し、前記エンコーダ生成部は、前記異なる2種類の情報のうち、一方の種類の情報と、前記2種類のデコーダのうち、前記一方の種類の情報とは異なる他方の種類の情報に対応するデコーダである他方のデコーダを用いて生成された前記他方の種類の情報とに基づいて、前記2種類のエンコーダをそれぞれ再学習させる。
【0009】
また、前記エンコーダ生成部は、前記2種類のエンコーダのうち、前記一方の種類の情報に対応するエンコーダである一方のエンコーダを用いて、前記一方の種類の情報から、前記一方の種類の情報に対応する特徴情報である一方の特徴情報を生成し、前記2種類のエンコーダのうち、前記他方の種類の情報に対応するエンコーダである他方のエンコーダを用いて、前記他方のデコーダを用いて生成された前記他方の種類の情報から、前記他方の種類の情報に対応する特徴情報である他方の特徴情報を生成し、生成された前記一方の特徴情報および前記他方の特徴情報をそれぞれ前記共通の潜在空間にマッピングするよう前記2種類のエンコーダをそれぞれ再学習させる。
【0010】
また、前記エンコーダ生成部は、前記他方のデコーダを用いて、前記一方のエンコーダを用いて生成された前記一方の特徴情報から、前記他方の種類の情報を生成する。
【0011】
また、前記エンコーダ生成部は、前記2種類のデコーダのうち、前記一方の種類の情報に対応するデコーダである一方のデコーダを用いて、前記他方のエンコーダを用いて生成された前記他方の特徴情報から、前記一方の種類の情報を生成し、前記一方のデコーダを用いて生成された前記一方の種類の情報と、前記一方のエンコーダに入力された前記一方の種類の情報とに基づいて、前記2種類のエンコーダをそれぞれ再学習させる。
【0012】
また、前記デコーダ生成部は、前記一方の種類の情報と、前記2種類のデコーダのうち、前記一方の種類の情報に対応するデコーダである一方のデコーダを用いて生成された前記一方の種類の情報とに基づいて学習させた前記一方のデコーダである学習済み第1デコーダ、および、前記他方の種類の情報と、前記他方のデコーダを用いて生成された前記他方の種類の情報とに基づいて学習させた前記他方のデコーダである学習済み第2デコーダを生成し、前記エンコーダ生成部は、前記一方の種類の情報と、前記学習済み第2デコーダを用いて生成された前記他方の種類の情報とに基づいて、前記2種類のエンコーダをそれぞれ再学習させる。
【0013】
また、前記デコーダ生成部は、前記2種類のエンコーダのうち、前記一方の種類の情報に対応するエンコーダである一方のエンコーダを用いて、前記一方の種類の情報から、前記一方の種類の情報に対応する特徴情報である一方の特徴情報を生成し、前記一方のデコーダを用いて、前記一方のエンコーダを用いて生成された前記一方の特徴情報から、前記一方の種類の情報を生成し、前記2種類のエンコーダのうち、前記他方の種類の情報に対応するエンコーダである他方のエンコーダを用いて、前記他方の種類の情報から、前記他方の種類の情報に対応する特徴情報である他方の特徴情報を生成し、前記他方のデコーダを用いて、前記他方のエンコーダを用いて生成された前記他方の特徴情報から、前記他方の種類の情報を生成する。
【0014】
また、前記取得部は、前記一方の種類の情報と、前記一方の種類の情報に対応する前記他方の種類の情報との組に基づいてそれぞれ学習させた前記2種類のエンコーダを取得する。
【0015】
また、前記異なる2種類の情報は、画像およびテキストである。
【0016】
また、前記デコーダ生成部は、機械学習により学習させた機械学習モデルである前記2種類のデコーダそれぞれを生成し、前記エンコーダ生成部は、機械学習により学習させた機械学習モデルである前記2種類のエンコーダをそれぞれ再学習させる。
【0017】
本願に係る情報処理方法は、情報処理装置が実行するプログラムにより実現される情報処理方法であって、異なる複数の種類の情報それぞれに対応するそれぞれの特徴情報を共通の潜在空間にマッピングするようそれぞれ学習させた複数の種類のエンコーダを取得する取得工程と、前記複数の種類のエンコーダそれぞれに対応する複数の種類のデコーダそれぞれを生成するデコーダ生成工程と、前記異なる複数の種類の情報のうち、一の種類の情報と、前記複数の種類のデコーダのうち、前記一の種類の情報とは異なる他の種類の情報に対応するデコーダである他のデコーダを用いて生成された前記他の種類の情報とに基づいて、前記複数の種類のエンコーダをそれぞれ再学習させるエンコーダ生成工程と、を含む。
【0018】
本願に係る情報処理プログラムは、異なる複数の種類の情報それぞれに対応するそれぞれの特徴情報を共通の潜在空間にマッピングするようそれぞれ学習させた複数の種類のエンコーダを取得する取得手順と、前記複数の種類のエンコーダそれぞれに対応する複数の種類のデコーダそれぞれを生成するデコーダ生成手順と、前記異なる複数の種類の情報のうち、一の種類の情報と、前記複数の種類のデコーダのうち、前記一の種類の情報とは異なる他の種類の情報に対応するデコーダである他のデコーダを用いて生成された前記他の種類の情報とに基づいて、前記複数の種類のエンコーダをそれぞれ再学習させるエンコーダ生成手順と、をコンピュータに実行させる。
【発明の効果】
【0019】
実施形態の一態様によれば、異なる複数の種類の情報を共通の潜在空間に埋め込むことができる複数の種類のエンコーダの精度をそれぞれ向上させることができる。
【図面の簡単な説明】
【0020】
【
図1】
図1は、従来技術に係る画像とテキストを共通の潜在空間に埋め込むことができる2種類のエンコーダの学習処理の一例について説明するための図である。
【
図2】
図2は、実施形態に係る情報処理装置の構成例を示す図である。
【
図3】
図3は、実施形態に係る第1の学習段階に係る学習処理の一例について説明するための図である。
【
図4】
図4は、実施形態に係る第2の学習段階に係る学習処理の一例について説明するための図である。
【
図5】
図5は、実施形態に係る第3の学習段階に係る学習処理の一例について説明するための図である。
【
図6】
図6は、実施形態に係る第3の学習段階に係る学習処理の一例について説明するための図である。
【
図7】
図7は、実施形態に係る情報処理手順を示すフローチャートである。
【
図8】
図8は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【0021】
以下に、本願に係る情報処理装置、情報処理方法及び情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0022】
(実施形態)
〔1.はじめに〕
本明細書における「画像」とは、カメラ(撮像装置)によって撮像された映像などの動画であってもよいし、映像に含まれる各シーン(静止画像)であってもよい。また、本明細書における「言語表現」とは、文章、フレーズ、またはキーワード等の文字情報(以下、テキスト)であってよい。
【0023】
近年、画像の特徴を示す画像特徴量と、画像の内容を言語で表現した言語表現の特徴を示す言語特徴量を対応付けて共通の潜在空間(共通空間ともいう)に埋め込む技術は、VSE(Visual-Semantic Embedding)と呼ばれている。また、VSEの技術を用いて生成された機械学習モデル(以下、VSEモデルともいう)を用いて、クエリ画像とマッチするテキストを検索する技術やクエリ文とマッチする画像を検索する技術(以下、「画像-テキスト間検索」と記載する)が知られている。以下では、言語表現のことをテキストと記載する。また、画像やテキスト等の「データから抽出された特徴量を潜在空間にマッピングする」ことを、画像やテキスト等の「データを潜在空間に埋め込む」と呼んでいる。
【0024】
具体的には、VSEモデルは、画像から画像の特徴を示す画像特徴量を抽出する画像エンコーダ、および、テキストからテキストの特徴を示すテキスト特徴量を抽出するテキストエンコーダを備える。例えば、VSEモデルを用いて画像からテキストを検索する場合、VSEモデルの画像エンコーダに画像を入力して、画像特徴量に対応する特徴ベクトル(以下、画像の特徴ベクトルともいう)を生成する。続いて、VSEモデルは、生成した画像の特徴ベクトルを、テキスト特徴量に対応する特徴ベクトル(以下、テキストの特徴ベクトルともいう)との共通の潜在空間にマッピングしたのち、画像の特徴ベクトルと類似するテキストの特徴ベクトルに対応するテキストを検索結果として出力する。例えば、VSEモデルは、画像の特徴ベクトルとテキストの特徴ベクトルとの類似度が所定の閾値を超えるようなテキストの特徴ベクトルに対応するテキストを検索結果として出力する。
【0025】
また、VSEモデルを用いてテキストから画像を検索する場合、テキストをVSEモデルのテキストエンコーダに入力して、テキストの特徴ベクトルを生成する。続いて、VSEモデルは、生成したテキストの特徴ベクトルを、画像の特徴ベクトルとの共通の潜在空間にマッピングしたのち、テキストの特徴ベクトルと類似する画像の特徴ベクトルに対応する画像を検索結果として出力する。例えば、VSEモデルは、テキストの特徴ベクトルと画像の特徴ベクトルとの類似度が所定の閾値を超えるような画像の特徴ベクトルに対応する画像を検索結果として出力する。
【0026】
例えば、上述したような画像-テキスト間検索の検索精度を向上させるために、画像およびテキストを共通の潜在空間に埋め込むことができる画像エンコーダおよびテキストエンコーダの精度をそれぞれ向上させることを可能とする技術が求められている。
【0027】
図1は、従来技術に係る画像とテキストを共通の潜在空間に埋め込むことができる2種類のエンコーダの学習処理の一例について説明するための図である。
図1の左上に示す画像エンコーダは、画像を入力した場合に、画像の特徴を示す画像特徴量を出力する。例えば、画像特徴量は、画像エンコーダに入力される画像よりも次元数の低いベクトル等で表現される。以下では、画像特徴量のことを、画像の特徴ベクトルまたは画像の特徴情報と記載する場合がある。また、
図1の左下に示すテキストエンコーダは、テキストを入力した場合に、テキストの特徴を示すテキスト特徴量を出力する。例えば、テキスト特徴量は、テキストエンコーダに入力されるテキストよりも次元数の低いベクトル等で表現される。以下では、テキスト特徴量のことを、テキストの特徴ベクトルまたはテキストの特徴情報と記載する場合がある。
【0028】
図1に示す学習処理は、CLIP(Contrastive Language-Image Pre-training;対照的言語画像事前トレーニング)と呼ばれる。CLIPでは、画像とその画像の内容を示すテキストの組(ペアデータともいう)を用意する。そして、ペアデータに対応する画像の特徴ベクトルとテキストの特徴ベクトルとの類似度が大きくなるように画像エンコーダおよびテキストエンコーダをそれぞれ学習させる。一方、ペアデータではない画像の特徴ベクトルとテキストの特徴ベクトルとの類似度が小さくなるように画像エンコーダおよびテキストエンコーダをそれぞれ学習させる。このようにして、CLIPでは、画像の特徴情報とテキストの特徴情報を共通の潜在空間に埋め込むよう画像エンコーダおよびテキストエンコーダをそれぞれ学習させる。
【0029】
上述したように、従来技術に係る学習方法(CLIP)では、画像とその画像の内容を示すテキストのペアデータを用いて、画像とテキストの対応関係を画像エンコーダおよびテキストエンコーダにそれぞれ学習させる。しかしながら、画像とその画像の内容を示すテキストのペアデータの数は少ない。そのため、従来技術に係る学習方法では、画像エンコーダおよびテキストエンコーダにそれぞれ十分な量の学習をさせることができるとは限らない。したがって、従来技術に係る学習方法により生成される画像エンコーダおよびテキストエンコーダの精度を向上させるには、改善の余地がある。
【0030】
これに対し、本願の一実施形態に係る情報処理装置は、ペアデータではないデータに基づいて画像およびテキストを共通の潜在空間に埋め込むことができる画像エンコーダおよびテキストエンコーダをそれぞれ学習させる。具体的には、本願の一実施形態に係る情報処理装置は、以下の第1の学習段階~第3の学習段階の3つの学習段階により、画像エンコーダおよびテキストエンコーダをそれぞれ学習させる。
【0031】
より具体的には、情報処理装置は、従来技術に係る学習方法(CLIP)により、画像およびテキストそれぞれに対応する特徴情報を共通の潜在空間にマッピングするようそれぞれ学習させた画像エンコーダおよびテキストエンコーダを取得する(第1の学習段階)。続いて、情報処理装置は、変分オートエンコーダ(Variational Auto-Encoder;VAE)などの一般的なエンコーダとデコーダの学習のうち、エンコーダを固定し、デコーダの学習のみを行わせることで、画像エンコーダに対応する画像デコーダ、および、テキストエンコーダに対応するテキストデコーダをそれぞれ生成する(第2の学習段階)。
【0032】
続いて、情報処理装置は、第1の学習段階で取得された画像エンコーダ(または、テキストエンコーダ)を用いて、画像(または、テキスト)から、画像の特徴ベクトル(または、テキストの特徴ベクトル)を生成する。続いて、情報処理装置は、第2の学習段階で生成されたテキストデコーダ(または、画像デコーダ)を用いて、生成された画像の特徴ベクトル(または、テキストの特徴ベクトル)から、テキスト(または、画像)を生成する。続いて、情報処理装置は、第1の学習段階で取得されたテキストエンコーダ(または、画像エンコーダ)を用いて、生成されたテキスト(または、画像)からテキストの特徴ベクトル(または、画像の特徴ベクトル)を生成する。続いて、情報処理装置は、第2の学習段階で生成された画像デコーダ(または、テキストデコーダ)を用いて、生成されたテキストの特徴ベクトル(または、画像の特徴ベクトル)から、画像(または、テキスト)を生成する。続いて、情報処理装置は、画像デコーダ(または、テキストデコーダ)を用いて生成された画像(または、テキスト)と、画像エンコーダ(または、テキストエンコーダ)に入力された画像(または、テキスト)とに基づいて、画像デコーダおよびテキストエンコーダをそれぞれ再学習させる(第3の学習段階)。
【0033】
これにより、本願の一実施形態に係る情報処理装置は、画像およびテキストのうち、一方の種類の情報しか存在しない(画像とテキストのペアデータが存在しない)場合であっても、あらかじめ生成された2種類のデコーダを用いて、一方のエンコーダ(例えば、テキストエンコーダ)に入力された一方の種類の情報(例えば、テキスト)に対応する一方の種類の情報(例えば、テキスト)を生成することができる。これにより、本願の一実施形態に係る情報処理装置は、一方の種類の情報しか存在しない(画像とテキストのペアデータが存在しない)場合であっても、一方のエンコーダ(例えば、テキストエンコーダ)に入力された一方の種類の情報(例えば、テキスト)と、一方のデコーダ(例えば、テキストデコーダ)を用いて生成された一方の種類の情報(例えば、テキスト)とに基づいて、画像デコーダおよびテキストエンコーダをそれぞれ再学習させることができる。また、上述したように、画像とテキストの組であるペアデータの数と比べると、ペアデータではない画像だけのデータやテキストだけのデータの数は多い。したがって、本願の一実施形態に係る情報処理装置は、より多くの学習データに基づいて画像エンコーダおよびテキストエンコーダをそれぞれ再学習させることができるので、画像およびテキストを共通の潜在空間に埋め込むことができる画像エンコーダおよびテキストエンコーダの精度をそれぞれ向上させることを可能とすることができる。
【0034】
なお、
図1に示す画像エンコーダは、画像から画像特徴量を抽出することができる任意の公知技術により実現されてよい。例えば、画像エンコーダは、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)を備えてよい。そして、画像エンコーダは、CNNを用いて、画像から画像特徴量を抽出してよい。また、例えば、画像エンコーダは、物体認識用に開発されたResNet(Residual Network)(Kaiming He et al., 2015)、AlexNet(Krizhevsky et al., 2012)、VGGNet(Simonyan et al., 2014)、GoogLeNet(Szegedy et al., 2014)、SENet(Squeeze-and-Excitation Networks)(Jie Hu et al., 2018))、EfficientNet(Tan et al., 2019)、またはZFNet(Matthew et al., 2013)を備えてよい。そして、画像エンコーダは、ResNet、AlexNet、VGGNet、GoogLeNet、SENet、EfficientNet、またはZFNetを用いて、画像から画像特徴量を抽出してよい。また、例えば、画像エンコーダは、物体検出用に開発されたFaster R-CNN(Shaoqing Ren et al., 2015)、YOLO(You Look Only Onse)(Joseph Redmon et al., 2015)、またはSSD(Single Shot MultiBox Detector)(Wei Liu., 2015)を備えてよい。そして、画像エンコーダは、Faster R-CNN、YOLO、またはSSDを用いて、画像から画像特徴量を抽出してよい。
【0035】
また、
図1に示すテキストエンコーダは、テキストからテキスト特徴量を抽出することができる任意の公知技術により実現されてよい。例えば、テキストエンコーダは、再帰型ニューラルネットワーク(RNN:Recurrent Neural Network)を備えてよい。そして、テキストエンコーダは、RNNを用いて、テキストからテキスト特徴量を抽出してよい。また、例えば、テキストエンコーダは、GRU(Gated Recurrent Unit)またはLSTM(Long Short Term Memory)を備えてよい。そして、テキストエンコーダは、GRUまたはLSTMを用いて、テキストからテキスト特徴量を抽出してよい。また、例えば、テキストエンコーダは、Transformer(Ashish Vaswani et al., 2017)、TransformerをベースとしたBERT(Bidirectional Encoder Representations from Transformers)、GPT-3(Generative Pre-Training3)またはT5(Text-to-Text Transfer Transformer)を備えてよい。そして、テキストエンコーダは、Transformer、BERT、GPT-3またはT5を用いて、テキストからテキスト特徴量を抽出してよい。
【0036】
〔2.情報処理装置の構成〕
図2は、実施形態に係る情報処理装置100の構成例を示す図である。情報処理装置100は、通信部110と、記憶部120と、制御部130とを有する。
【0037】
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワークと有線または無線で接続され、例えば、画像データセットを保持する外部のデータベースとの間で情報の送受信を行う。
【0038】
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。具体的には、記憶部120は、各種プログラム(情報処理プログラムの一例)を記憶する。また、記憶部120は、画像とその画像の内容を示すテキストのペアデータを記憶する。また、記憶部120は、取得部131によって学習された画像エンコーダおよびテキストエンコーダに関する情報を記憶する。また、記憶部120は、デコーダ生成部132によって生成された学習済み画像デコーダおよび学習済みテキストデコーダに関する情報を記憶する。また、記憶部120は、エンコーダ生成部133によって生成された学習済み画像エンコーダおよび学習済みテキストエンコーダに関する情報を記憶する。
【0039】
(制御部130)
制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報処理装置100内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
【0040】
制御部130は、取得部131と、デコーダ生成部132と、エンコーダ生成部133を機能部として有し、以下に説明する情報処理の作用を実現または実行してよい。なお、制御部130の内部構成は、
図2に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、各機能部は、制御部130の機能を示したものであり、必ずしも物理的に区別されるものでなくともよい。
【0041】
(取得部131)
取得部131は、異なる2種類の情報それぞれに対応する特徴情報を共通の潜在空間にマッピングするようそれぞれ学習させた2種類のエンコーダを取得する。例えば、取得部131は、2種類のエンコーダとして、従来技術に係る学習方法(CLIP)により、テキストおよび画像それぞれに対応する特徴情報を共通の潜在空間にマッピングするようそれぞれ学習させたテキストエンコーダM1および画像エンコーダM2を取得する(第1の学習段階)。
【0042】
なお、テキストエンコーダM1および画像エンコーダM2は、機械学習により学習させた機械学習モデルであってよい。例えば、テキストエンコーダM1および画像エンコーダM2は、
図1の説明においてなお書きに記載した機械学習モデルのいずれであってもよい。例えば、テキストエンコーダM1は、再帰型ニューラルネットワークであってよい。また、画像エンコーダM2は、畳み込みニューラルネットワークであってよい。
【0043】
図3は、実施形態に係る第1の学習段階に係る学習処理の一例について説明するための図である。
図3では、取得部131は、画像とその画像の内容を示すテキストのペアデータに基づいて、テキストに対応する特徴情報(例えば、テキストの特徴ベクトル)および画像に対応する特徴情報(例えば、画像の特徴ベクトル)を共通の潜在空間にマッピングするようテキストエンコーダM1および画像エンコーダM2を学習させる。
【0044】
より具体的には、取得部131は、記憶部120を参照して、画像とその画像の内容を示すテキストのペアデータをN個(Nは2以上の自然数)取得する。続いて、取得部131は、N個のペアデータに含まれるN個のテキストをテキストエンコーダM1にそれぞれ入力する。テキストエンコーダM1は、N個のテキストからN個のテキストそれぞれのテキストの特徴ベクトル(T1~TNと記載する)を生成する。また、取得部131は、N個のペアデータに含まれるN個の画像を画像エンコーダM2にそれぞれ入力する。画像エンコーダM2は、N個の画像からN個の画像それぞれの画像の特徴ベクトル(I1~INと記載する)を生成する。
【0045】
続いて、取得部131は、ペアである画像の特徴ベクトルとテキストの特徴ベクトルの内積(I1・T1、I2・T2、…、IN・TN)を最大化し、ペアではない画像の特徴ベクトルとテキストの特徴ベクトルの内積を最小化するように、テキストエンコーダM1および画像エンコーダM2のパラメータをそれぞれ学習させる。より具体的には、取得部131は、テキストエンコーダM1および画像エンコーダM2それぞれの目的関数(損失関数ともいう)の値がそれぞれの条件を満たすまでテキストエンコーダM1および画像エンコーダM2のパラメータをそれぞれ学習させる。例えば、取得部131は、テキストエンコーダM1の目的関数(損失関数ともいう)の値が第1閾値以下となるまでテキストエンコーダM1を学習させる。また、取得部131は、画像エンコーダM2の目的関数(損失関数ともいう)の値が第2閾値以下となるまで画像エンコーダM2を学習させる。取得部131は、テキストエンコーダM1および画像エンコーダM2それぞれの目的関数(損失関数ともいう)の値がそれぞれの条件を満たしたと判定した場合、第1の学習段階に係る学習処理を終了する。また、取得部131は、第1の学習段階に係る学習処理を完了した時点におけるテキストエンコーダM1および画像エンコーダM2を取得する。
【0046】
(デコーダ生成部132)
デコーダ生成部132は、取得部131によって取得された2種類のエンコーダそれぞれに対応する2種類のデコーダそれぞれを生成する。例えば、デコーダ生成部132は、変分オートエンコーダ(Variational Auto-Encoder;VAE)などの一般的なエンコーダとデコーダの学習のうち、エンコーダを固定し、デコーダの学習のみを行わせることで、取得部131によって取得されたテキストエンコーダM1に対応するテキストデコーダM3、および、画像エンコーダM2に対応する画像デコーダM4をそれぞれ生成する(第2の学習段階)。
【0047】
なお、テキストデコーダM3および画像デコーダM4は、機械学習により学習させた機械学習モデルであってよい。例えば、テキストデコーダM3および画像デコーダM4は、
図1の説明においてなお書きに記載した機械学習モデルのいずれであってもよい。例えば、テキストデコーダM3は、再帰型ニューラルネットワークであってよい。また、画像デコーダM4は、畳み込みニューラルネットワークであってよい。
【0048】
図4は、実施形態に係る第2の学習段階に係る学習処理の一例について説明するための図である。
図4の上段では、デコーダ生成部132は、取得部131によって取得されたテキストエンコーダM1を固定し、テキストエンコーダM1に対応するテキストデコーダM3を学習させる。具体的には、デコーダ生成部132は、取得部131によって取得されたテキストエンコーダM1を用いて、テキスト#2から、テキスト#2に対応するテキストの特徴ベクトルV21を生成する。例えば、デコーダ生成部132は、取得部131によって取得されたテキストエンコーダM1にテキスト#2を入力することで、テキストエンコーダM1から出力されるテキストの特徴ベクトルV21を取得する。
【0049】
続いて、デコーダ生成部132は、テキストデコーダM3を用いて、テキストエンコーダM1を用いて生成されたテキストの特徴ベクトルV21から、テキスト#2´を生成する。例えば、デコーダ生成部132は、テキストエンコーダM1を用いて生成されたテキストの特徴ベクトルV21をテキストデコーダM3に入力することで、テキストデコーダM3から出力されるテキスト#2´を取得する。
【0050】
続いて、デコーダ生成部132は、テキストエンコーダM1に入力されたテキスト#2と、テキストデコーダM3から出力されるテキスト#2´とに基づいて、テキストデコーダM3を学習させる。より具体的には、デコーダ生成部132は、テキストエンコーダM1に入力されたテキスト#2と、テキストデコーダM3から出力されるテキスト#2´との類似度が所定の閾値以上となるようにテキストデコーダM3を学習させる。例えば、デコーダ生成部132は、テキストデコーダM3の目的関数(損失関数ともいう)の値が第3閾値以下となるまでテキストデコーダM3を学習させる。デコーダ生成部132は、テキストデコーダM3の目的関数(損失関数ともいう)の値が第3閾値以下となったと判定した場合、第2の学習段階に係るテキストデコーダM3の学習処理を終了する。また、デコーダ生成部132は、第2の学習段階に係る学習処理を完了した時点におけるテキストデコーダM3を学習済みテキストデコーダM3として取得する。
【0051】
図4の下段では、デコーダ生成部132は、取得部131によって取得された画像エンコーダM2を固定し、画像エンコーダM2に対応する画像デコーダM4を学習させる。具体的には、デコーダ生成部132は、取得部131によって取得された画像エンコーダM2を用いて、画像#2から、画像#2に対応する画像の特徴ベクトルV22を生成する。例えば、デコーダ生成部132は、取得部131によって取得された画像エンコーダM2に画像#2を入力することで、画像エンコーダM2から出力される画像の特徴ベクトルV22を取得する。
【0052】
続いて、デコーダ生成部132は、画像デコーダM4を用いて、画像エンコーダM2を用いて生成された画像の特徴ベクトルV22から、画像#2´を生成する。例えば、デコーダ生成部132は、画像エンコーダM2を用いて生成された画像の特徴ベクトルV22を画像デコーダM4に入力することで、画像デコーダM4から出力される画像#2´を取得する。
【0053】
続いて、デコーダ生成部132は、画像エンコーダM2に入力された画像#2と、画像デコーダM4から出力される画像#2´とに基づいて、画像デコーダM4を学習させる。より具体的には、デコーダ生成部132は、画像エンコーダM2に入力された画像#2と、画像デコーダM4から出力される画像#2´との類似度が所定の閾値以上となるように画像デコーダM4を学習させる。例えば、デコーダ生成部132は、画像デコーダM4の目的関数(損失関数ともいう)の値が第4閾値以下となるまで画像デコーダM4を学習させる。デコーダ生成部132は、画像デコーダM4の目的関数(損失関数ともいう)の値が第4閾値以下となったと判定した場合、第2の学習段階に係る画像デコーダM4の学習処理を終了する。また、デコーダ生成部132は、第2の学習段階に係る学習処理を完了した時点における画像デコーダM4を学習済み画像デコーダM4として取得する。
【0054】
(エンコーダ生成部133)
エンコーダ生成部133は、デコーダ生成部132によって生成された2種類のデコーダのうち、一方の種類の情報に対応するデコーダである一方のデコーダを用いて、取得部131によって取得された他方のエンコーダを用いて生成された他方の特徴情報から、一方の種類の情報を生成する。また、エンコーダ生成部133は、デコーダ生成部132によって生成された一方のデコーダを用いて生成された一方の種類の情報と、取得部131によって取得された一方のエンコーダに入力された一方の種類の情報とに基づいて、取得部131によって取得された2種類のエンコーダをそれぞれ再学習させる(第3の学習段階)。
【0055】
図5は、実施形態に係る第3の学習段階に係る学習処理の一例について説明するための図である。
図5では、画像とテキストのうち、テキストに基づく学習処理について説明する。
図5では、エンコーダ生成部133は、デコーダ生成部132によって生成された学習済みテキストデコーダM3および学習済み画像デコーダM4を固定し、取得部131によって取得されたテキストエンコーダM1および画像エンコーダM2を再学習させる。
【0056】
具体的には、エンコーダ生成部133は、取得部131によって取得されたテキストエンコーダM1を用いて、テキスト#31から、テキスト#31に対応するテキストの特徴ベクトルV31を生成する。例えば、エンコーダ生成部133は、取得部131によって取得されたテキストエンコーダM1にテキスト#31を入力することで、テキストエンコーダM1から出力されるテキストの特徴ベクトルV31を取得する。
【0057】
続いて、エンコーダ生成部133は、デコーダ生成部132によって生成された学習済み画像デコーダM4を用いて、テキストエンコーダM1を用いて生成されたテキストの特徴ベクトルV31から、画像#31´を生成する。例えば、エンコーダ生成部133は、テキストエンコーダM1を用いて生成されたテキストの特徴ベクトルV31を学習済み画像デコーダM4に入力することで、学習済み画像デコーダM4から出力される画像#31´を取得する。
【0058】
続いて、エンコーダ生成部133は、取得部131によって取得された画像エンコーダM2を用いて、画像#31´から、画像#31´に対応する画像の特徴ベクトルV31´を生成する。例えば、エンコーダ生成部133は、取得部131によって取得された画像エンコーダM2に画像#31´を入力することで、画像エンコーダM2から出力される画像の特徴ベクトルV31´を取得する。
【0059】
続いて、エンコーダ生成部133は、デコーダ生成部132によって生成された学習済みテキストデコーダM3を用いて、画像エンコーダM2を用いて生成された画像の特徴ベクトルV31´から、テキスト#31´を生成する。例えば、エンコーダ生成部133は、画像エンコーダM2を用いて生成された画像の特徴ベクトルV31´を学習済みテキストデコーダM3に入力することで、学習済みテキストデコーダM3から出力されるテキスト#31´を取得する。
【0060】
続いて、エンコーダ生成部133は、テキストエンコーダM1に入力されたテキスト#31と、学習済みテキストデコーダM3から出力されるテキスト#31´とに基づいて、テキストエンコーダM1および画像エンコーダM2を再学習させる。より具体的には、エンコーダ生成部133は、テキストエンコーダM1に入力されたテキスト#31と、学習済みテキストデコーダM3から出力されるテキスト#31´との類似度が所定の閾値以上となるようにテキストエンコーダM1および画像エンコーダM2を再学習させる。例えば、エンコーダ生成部133は、テキストエンコーダM1および画像エンコーダM2それぞれの目的関数(損失関数ともいう)の値がそれぞれの条件を満たすまでテキストエンコーダM1および画像エンコーダM2のパラメータをそれぞれ学習させる。例えば、エンコーダ生成部133は、テキストエンコーダM1の目的関数(損失関数ともいう)の値が第5閾値以下となるまでテキストエンコーダM1を学習させる。また、エンコーダ生成部133は、画像エンコーダM2の目的関数(損失関数ともいう)の値が第6閾値以下となるまで画像エンコーダM2を学習させる。エンコーダ生成部133は、テキストエンコーダM1および画像エンコーダM2それぞれの目的関数(損失関数ともいう)の値がそれぞれの条件を満たしたと判定した場合、第3の学習段階に係る学習処理を終了する。また、エンコーダ生成部133は、第3の学習段階に係る学習処理を完了した時点におけるテキストエンコーダM1および画像エンコーダM2を学習済みテキストエンコーダM1および学習済み画像エンコーダM2として取得してよい。
【0061】
図6は、実施形態に係る第3の学習段階に係る学習処理の一例について説明するための図である。
図6では、画像とテキストのうち、画像に基づく学習処理について説明する点が
図5と異なる。
図6では、
図5と同様に、エンコーダ生成部133は、デコーダ生成部132によって生成された学習済みテキストデコーダM3および学習済み画像デコーダM4を固定し、取得部131によって取得されたテキストエンコーダM1および画像エンコーダM2を再学習させる。
【0062】
具体的には、エンコーダ生成部133は、取得部131によって取得された画像エンコーダM2を用いて、画像#32から、画像#32に対応する画像の特徴ベクトルV32を生成する。例えば、エンコーダ生成部133は、取得部131によって取得された画像エンコーダM2に画像#32を入力することで、画像エンコーダM2から出力される画像の特徴ベクトルV32を取得する。
【0063】
続いて、エンコーダ生成部133は、デコーダ生成部132によって生成された学習済みテキストデコーダM3を用いて、画像エンコーダM2を用いて生成された画像の特徴ベクトルV32から、テキスト#32´を生成する。例えば、エンコーダ生成部133は、画像エンコーダM2を用いて生成された画像の特徴ベクトルV32を学習済みテキストデコーダM3に入力することで、学習済みテキストデコーダM3から出力されるテキスト#32´を取得する。
【0064】
続いて、エンコーダ生成部133は、取得部131によって取得されたテキストエンコーダM1を用いて、テキスト#32´から、テキスト#32´に対応するテキストの特徴ベクトルV32´を生成する。例えば、エンコーダ生成部133は、取得部131によって取得されたテキストエンコーダM1にテキスト#32´を入力することで、テキストエンコーダM1から出力されるテキストの特徴ベクトルV32´を取得する。
【0065】
続いて、エンコーダ生成部133は、デコーダ生成部132によって生成された学習済み画像デコーダM4を用いて、テキストエンコーダM1を用いて生成されたテキストの特徴ベクトルV32´から、画像#32´を生成する。例えば、エンコーダ生成部133は、テキストエンコーダM1を用いて生成されたテキストの特徴ベクトルV32´を学習済み画像デコーダM4に入力することで、学習済み画像デコーダM4から出力される画像#32´を取得してよい。
【0066】
続いて、エンコーダ生成部133は、画像エンコーダM2に入力された画像#32と、学習済み画像デコーダM4から出力される画像#32´とに基づいて、テキストエンコーダM1および画像エンコーダM2を再学習させる。より具体的には、エンコーダ生成部133は、画像エンコーダM2に入力された画像#32と、学習済み画像デコーダM4から出力される画像#32´との類似度が所定の閾値以上となるようにテキストエンコーダM1および画像エンコーダM2を再学習させる。例えば、エンコーダ生成部133は、テキストエンコーダM1および画像エンコーダM2それぞれの目的関数(損失関数ともいう)の値がそれぞれの条件を満たすまでテキストエンコーダM1および画像エンコーダM2のパラメータをそれぞれ学習させる。例えば、エンコーダ生成部133は、テキストエンコーダM1の目的関数(損失関数ともいう)の値が第7閾値以下となるまでテキストエンコーダM1を学習させる。また、エンコーダ生成部133は、画像エンコーダM2の目的関数(損失関数ともいう)の値が第8閾値以下となるまで画像エンコーダM2を学習させる。エンコーダ生成部133は、テキストエンコーダM1および画像エンコーダM2それぞれの目的関数(損失関数ともいう)の値がそれぞれの条件を満たしたと判定した場合、第3の学習段階に係る学習処理を終了する。また、エンコーダ生成部133は、第3の学習段階に係る学習処理を完了した時点におけるテキストエンコーダM1および画像エンコーダM2を学習済みテキストエンコーダM1および学習済み画像エンコーダM2として取得してよい。
【0067】
〔3.情報処理の手順〕
図7は、実施形態に係る情報処理手順を示すフローチャートである。
図7に示す例では、情報処理装置100の取得部131は、画像の特徴情報およびテキストの特徴情報を共通の潜在空間にマッピングするように画像エンコーダおよびテキストエンコーダをそれぞれ学習させる(ステップS1)。取得部131は、画像エンコーダおよびテキストエンコーダそれぞれの目的関数の値がそれぞれの条件を満たすか否かを判定する(ステップS2)。
【0068】
取得部131は、画像エンコーダおよびテキストエンコーダそれぞれの目的関数の値がそれぞれの条件を満たさないと判定した場合(ステップS2;No)、ステップS1の学習を繰り返す。一方、取得部131によって画像エンコーダおよびテキストエンコーダそれぞれの目的関数の値がそれぞれの条件を満たすと判定された場合(ステップS2;Yes)、情報処理装置100のデコーダ生成部132は、画像エンコーダに対応する画像デコーダ、および、テキストエンコーダに対応するテキストデコーダをそれぞれ学習させる(ステップS3)。デコーダ生成部132は、画像デコーダおよびテキストデコーダそれぞれの目的関数の値がそれぞれの条件を満たすか否かを判定する(ステップS4)。
【0069】
デコーダ生成部132は、画像デコーダおよびテキストデコーダそれぞれの目的関数の値がそれぞれの条件を満たさないと判定した場合(ステップS4;No)、ステップS3の学習を繰り返す。一方、デコーダ生成部132によって画像デコーダおよびテキストデコーダそれぞれの目的関数の値がそれぞれの条件を満たすと判定された場合(ステップS4;Yes)、情報処理装置100のエンコーダ生成部133は、画像の特徴情報およびテキストの特徴情報を共通の潜在空間にマッピングするように画像エンコーダおよびテキストエンコーダをそれぞれ再学習させる(ステップS5)。エンコーダ生成部133は、画像エンコーダおよびテキストエンコーダそれぞれの目的関数の値がそれぞれの条件を満たすか否かを判定する(ステップS6)。
【0070】
エンコーダ生成部133は、画像エンコーダおよびテキストエンコーダそれぞれの目的関数の値がそれぞれの条件を満たさないと判定した場合(ステップS6;No)、ステップS5の学習を繰り返す。一方、エンコーダ生成部133によって画像エンコーダおよびテキストエンコーダそれぞれの目的関数の値がそれぞれの条件を満たすと判定された場合(ステップS6;Yes)、エンコーダ生成部133は、学習処理を終了する。
【0071】
〔4.変形例〕
上述した実施形態に係る処理は、上記実施形態以外にも種々の異なる形態にて実施されてよい。
【0072】
〔4-1.第3の学習段階に係る学習処理の変形例〕
上述した実施形態では、エンコーダ生成部133が、第3の学習段階に係る学習処理の一例として、一方のデコーダを用いて生成された一方の種類の情報と、一方のエンコーダに入力された一方の種類の情報とに基づいて、2種類のエンコーダをそれぞれ再学習させる場合について説明したが、これに限られない。具体的には、エンコーダ生成部133は、第3の学習段階に係る学習処理の変形例として、画像とテキストのうち、一方の種類の情報と、デコーダ生成部132によって生成された2つの学習済みデコーダのうち、一方の種類の情報とは異なる他方の種類の情報に対応する学習済みデコーダを用いて生成された他方の種類の情報とに基づいて、画像エンコーダおよびテキストエンコーダをそれぞれ再学習させてもよい。なお、
図5および
図6の説明と重複する内容については記載を省略する。
【0073】
より具体的には、上述した
図5において、エンコーダ生成部133は、テキスト#31と、デコーダ生成部132によって生成された学習済み画像デコーダM4を用いて生成された画像#31´とに基づいて、テキストエンコーダM1および画像エンコーダM2をそれぞれ再学習させてもよい。例えば、エンコーダ生成部133は、取得部131によって取得されたテキストエンコーダM1を用いて、テキスト#31から、テキスト#31に対応するテキストの特徴ベクトルV31を生成する。続いて、エンコーダ生成部133は、デコーダ生成部132によって生成された学習済み画像デコーダM4を用いて、テキストエンコーダM1を用いて生成されたテキストの特徴ベクトルV31から、画像#31´を生成する。続いて、エンコーダ生成部133は、取得部131によって取得された画像エンコーダM2を用いて、画像#31´から、画像#31´に対応する画像の特徴ベクトルV31´を生成する。
【0074】
続いて、エンコーダ生成部133は、テキストエンコーダM1を用いて生成されたテキストの特徴ベクトルV31、および、画像エンコーダM2を用いて生成された画像の特徴ベクトルV31´をそれぞれ共通の潜在空間にマッピングするようテキストエンコーダM1および画像エンコーダM2をそれぞれ再学習させる。より具体的には、エンコーダ生成部133は、テキストの特徴ベクトルV31と、画像の特徴ベクトルV31´との類似度が所定の閾値以上となるようにテキストエンコーダM1および画像エンコーダM2を再学習させる。
【0075】
また、上述した
図6において、エンコーダ生成部133は、画像#32と、デコーダ生成部132によって生成された学習済みテキストデコーダM3を用いて生成されたテキスト#32´とに基づいて、テキストエンコーダM1および画像エンコーダM2をそれぞれ再学習させてもよい。例えば、エンコーダ生成部133は、取得部131によって取得された画像エンコーダM2を用いて、画像#32から、画像#32に対応する画像の特徴ベクトルV32を生成する。続いて、エンコーダ生成部133は、デコーダ生成部132によって生成された学習済みテキストデコーダM3を用いて、画像エンコーダM2を用いて生成された画像の特徴ベクトルV32から、テキスト#32´を生成する。続いて、エンコーダ生成部133は、取得部131によって取得されたテキストエンコーダM1を用いて、テキスト#32´から、テキスト#32´に対応するテキストの特徴ベクトルV32´を生成する。
【0076】
続いて、エンコーダ生成部133は、画像エンコーダM2を用いて生成された画像の特徴ベクトルV32、および、テキストエンコーダM1を用いて生成されたテキストの特徴ベクトルV32´をそれぞれ共通の潜在空間にマッピングするようテキストエンコーダM1および画像エンコーダM2をそれぞれ再学習させる。より具体的には、エンコーダ生成部133は、画像の特徴ベクトルV32と、テキストの特徴ベクトルV32´との類似度が所定の閾値以上となるようにテキストエンコーダM1および画像エンコーダM2を再学習させる。
【0077】
〔4-2.異なる2種類の情報のその他の組み合わせ〕
上述した実施形態では、異なる2種類の情報が、画像およびテキストである場合について説明したが、異なる2種類の情報は、対応関係を有し得るデータであればいかなるデータの組み合わせであってもよい。例えば、異なる2種類の情報は、テキストおよび音声データの組み合わせであってもよい。また、異なる2種類の情報は、画像および音声データの組み合わせであってもよい。また、異なる2種類の情報は、画像および電波信号の組み合わせであってもよい。また、異なる2種類の情報は、RGB画像およびサーマル画像の組み合わせであってもよい。また、異なる2種類の情報は、音楽、画像、もしくは映像、および、音楽、画像、もしくは映像に対応するテキスト(音楽、画像、もしくは映像の内容を示す説明文、または、音楽もしくは映像に含まれる音声データの書き起こし)の組み合わせであってもよい。
【0078】
〔4-3.異なる2種類以上の情報の組み合わせ〕
上述した実施形態では、情報処理装置100が、異なる2種類の情報それぞれに対応する特徴情報を共通の潜在空間にマッピングするようそれぞれ学習させた2種類のエンコーダを再学習させる場合について説明したが、異なる情報の種類は2種類以上であってもよい。
【0079】
具体的には、取得部131は、異なるM種類(Mは2以上の自然数)の情報それぞれに対応するそれぞれの特徴情報を共通の潜在空間にマッピングするようそれぞれ学習させたM種類のエンコーダを取得してよい。例えば、取得部131は、相互に対応する異なるM種類の情報の組データに基づいてそれぞれ学習させたM種類のエンコーダを取得してよい。また、デコーダ生成部132は、M種類のエンコーダそれぞれに対応するM種類のデコーダそれぞれを生成してよい。また、エンコーダ生成部133は、異なるM種類の情報のうち、一の種類の情報と、M種類のデコーダのうち、一の種類の情報とは異なる他の種類の情報に対応するデコーダである他のデコーダを用いて生成された他の種類の情報とに基づいて、M種類のエンコーダをそれぞれ再学習させてよい。例えば、エンコーダ生成部133は、M種類のエンコーダのうち、一の種類の情報に対応するエンコーダである一のエンコーダを用いて、一の種類の情報から、一の種類の情報に対応する特徴情報である一の特徴情報を生成し、M種類のエンコーダのうち、他の種類の情報に対応するエンコーダである他のエンコーダを用いて、他のデコーダを用いて生成された他の種類の情報から、他の種類の情報に対応する特徴情報である他の特徴情報を生成し、生成された一の特徴情報および他の特徴情報をそれぞれ共通の潜在空間にマッピングするようM種類のエンコーダをそれぞれ再学習させてよい。
【0080】
また、エンコーダ生成部133は、M種類のデコーダのうち、一の種類の情報に対応するデコーダである一のデコーダを用いて、一の種類の情報とは異なる他の種類の情報に対応するエンコーダである他のエンコーダを用いて生成された他の特徴情報から、一の種類の情報を生成し、一のデコーダを用いて生成された一の種類の情報と、一のエンコーダに入力された一の種類の情報とに基づいて、M種類のエンコーダをそれぞれ再学習させてよい。
【0081】
〔5.効果〕
上述したように、実施形態に係る情報処理装置100は、取得部131とデコーダ生成部132とエンコーダ生成部133を備える。取得部131は、異なる複数の種類の情報それぞれに対応するそれぞれの特徴情報を共通の潜在空間にマッピングするようそれぞれ学習させた複数の種類のエンコーダを取得する。デコーダ生成部132は、複数の種類のエンコーダそれぞれに対応する複数の種類のデコーダそれぞれを生成する。エンコーダ生成部133は、異なる複数の種類の情報のうち、一の種類の情報と、複数の種類のデコーダのうち、一の種類の情報とは異なる他の種類の情報に対応するデコーダである他のデコーダを用いて生成された他の種類の情報とに基づいて、複数の種類のエンコーダをそれぞれ再学習させる。
【0082】
これにより、情報処理装置100は、異なるM種類(Mは2以上の自然数)の情報のうち、例えば、(M-1)種類の情報が欠けており、M種類の情報の組データが存在しない場合であっても、少なくとも1種類の情報が存在すれば、存在する1種類の情報とは異なる他の(M-1)種類の情報に対応するデコーダを用いて、存在する1種類の情報に対応する他の(M-1)種類の情報を生成することができる。これにより、情報処理装置100は、異なるM種類の情報の組データが存在しない場合であっても、少なくとも1種類の情報と、デコーダを用いて生成された他の種類の情報との組に基づいて、M種類のエンコーダをそれぞれ再学習させることができる。また、複数の種類の情報の組データの数と比べると、組データではない1種類の情報の数は多い。したがって、情報処理装置100は、より多くの学習データに基づいて複数の種類のエンコーダをそれぞれ再学習させることができるので、異なる複数の種類の情報を共通の潜在空間に埋め込むことができる複数の種類のエンコーダの精度をそれぞれ向上させることができる。また、情報処理装置100は、異なる複数の種類の情報を共通の潜在空間に埋め込むことができる複数の種類のエンコーダの精度をそれぞれ向上させることができるため、持続可能な開発目標(SDGs)の目標9「産業と技術革新の基盤をつくろう」の達成に貢献できる。
【0083】
また、取得部131は、異なる2種類の情報それぞれに対応する特徴情報を共通の潜在空間にマッピングするようそれぞれ学習させた2種類のエンコーダを取得する。デコーダ生成部132は、2種類のエンコーダそれぞれに対応する2種類のデコーダそれぞれを生成する。エンコーダ生成部133は、異なる2種類の情報のうち、一方の種類の情報と、2種類のデコーダのうち、一方の種類の情報とは異なる他方の種類の情報に対応するデコーダである他方のデコーダを用いて生成された他方の種類の情報とに基づいて、2種類のエンコーダをそれぞれ再学習させる。
【0084】
このように、情報処理装置100は、一方の種類の情報しか存在しない(異なる2種類の情報のペアデータが存在しない)場合であっても、一方の種類の情報とは異なる他方の種類の情報に対応するデコーダを用いて、一方の種類の情報に対応する他方の種類の情報を生成することができる。これにより、情報処理装置100は、一方の種類の情報しか存在しない(異なる2種類の情報のペアデータが存在しない)場合であっても、一方の種類の情報と、デコーダを用いて生成された他方の種類の情報との組に基づいて、2種類のエンコーダをそれぞれ再学習させることができる。また、上述したように、異なる2種類の情報のペアデータの数と比べると、ペアデータではない一方の種類の情報の数は多い。したがって、情報処理装置100は、より多くの学習データに基づいて2種類のエンコーダをそれぞれ再学習させることができるので、異なる2種類の情報を共通の潜在空間に埋め込むことができる2種類のエンコーダの精度をそれぞれ向上させることができる。
【0085】
また、エンコーダ生成部133は、2種類のエンコーダのうち、一方の種類の情報に対応するエンコーダである一方のエンコーダを用いて、一方の種類の情報から、一方の種類の情報に対応する特徴情報である一方の特徴情報を生成し、2種類のエンコーダのうち、他方の種類の情報に対応するエンコーダである他方のエンコーダを用いて、他方のデコーダを用いて生成された他方の種類の情報から、他方の種類の情報に対応する特徴情報である他方の特徴情報を生成し、生成された一方の特徴情報および他方の特徴情報をそれぞれ共通の潜在空間にマッピングするよう2種類のエンコーダをそれぞれ再学習させる。
【0086】
これにより、情報処理装置100は、一方の種類の情報しか存在しない(異なる2種類の情報のペアデータが存在しない)場合であっても、一方の種類の情報に対応する特徴情報と、デコーダを用いて生成された他方の種類の情報に対応する特徴情報との組に基づいて、2種類のエンコーダをそれぞれ再学習させることができる。
【0087】
また、エンコーダ生成部133は、他方のデコーダを用いて、一方のエンコーダを用いて生成された一方の特徴情報から、他方の種類の情報を生成する。
【0088】
これにより、情報処理装置100は、一方の種類の情報しか存在しない(異なる2種類の情報のペアデータが存在しない)場合であっても、一方の種類の情報に対応する他方の種類の情報を生成することができる。
【0089】
また、エンコーダ生成部133は、2種類のデコーダのうち、一方の種類の情報に対応するデコーダである一方のデコーダを用いて、他方のエンコーダを用いて生成された他方の特徴情報から、一方の種類の情報を生成し、一方のデコーダを用いて生成された一方の種類の情報と、一方のエンコーダに入力された一方の種類の情報とに基づいて、2種類のエンコーダをそれぞれ再学習させる。
【0090】
これにより、情報処理装置100は、一方の種類の情報しか存在しない(異なる2種類の情報のペアデータが存在しない)場合であっても、2種類のデコーダを用いて、一方のエンコーダに入力された一方の種類の情報に対応する一方の種類の情報を生成することができる。これにより、情報処理装置100は、一方の種類の情報しか存在しない(異なる2種類の情報のペアデータが存在しない)場合であっても、一方のデコーダを用いて生成された一方の種類の情報と、一方のエンコーダに入力された一方の種類の情報とに基づいて、2種類のエンコーダをそれぞれ再学習させることができる。また、上述したように、異なる2種類の情報のペアデータの数と比べると、ペアデータではない一方の種類の情報の数は多い。したがって、情報処理装置100は、より多くの学習データに基づいて2種類のエンコーダをそれぞれ再学習させることができるので、異なる2種類の情報を共通の潜在空間に埋め込むことができる2種類のエンコーダの精度をそれぞれ向上させることができる。
【0091】
また、デコーダ生成部132は、一方の種類の情報と、2種類のデコーダのうち、一方の種類の情報に対応するデコーダである一方のデコーダを用いて生成された一方の種類の情報とに基づいて学習させた一方のデコーダである学習済み第1デコーダ、および、他方の種類の情報と、他方のデコーダを用いて生成された他方の種類の情報とに基づいて学習させた他方のデコーダである学習済み第2デコーダを生成する。エンコーダ生成部133は、一方の種類の情報と、学習済み第2デコーダを用いて生成された他方の種類の情報とに基づいて、2種類のエンコーダをそれぞれ再学習させる。
【0092】
これにより、情報処理装置100は、一方の種類の情報しか存在しない(異なる2種類の情報のペアデータが存在しない)場合であっても、2種類のエンコーダそれぞれに対応する2種類のデコーダそれぞれを生成ことができる。
【0093】
また、デコーダ生成部132は、2種類のエンコーダのうち、一方の種類の情報に対応するエンコーダである一方のエンコーダを用いて、一方の種類の情報から、一方の種類の情報に対応する特徴情報である一方の特徴情報を生成し、一方のデコーダを用いて、一方のエンコーダを用いて生成された一方の特徴情報から、一方の種類の情報を生成し、2種類のエンコーダのうち、他方の種類の情報に対応するエンコーダである他方のエンコーダを用いて、他方の種類の情報から、他方の種類の情報に対応する特徴情報である他方の特徴情報を生成し、他方のデコーダを用いて、他方のエンコーダを用いて生成された他方の特徴情報から、他方の種類の情報を生成する。
【0094】
これにより、情報処理装置100は、一方の種類の情報しか存在しない(異なる2種類の情報のペアデータが存在しない)場合であっても、2種類のエンコーダそれぞれに対応する一方の種類の情報に基づいて、精度の高い2種類のデコーダそれぞれを生成することができる。
【0095】
また、取得部131は、一方の種類の情報と、一方の種類の情報に対応する他方の種類の情報との組に基づいてそれぞれ学習させた2種類のエンコーダを取得する。
【0096】
これにより、情報処理装置100は、異なる2種類の情報それぞれに対応する特徴情報を共通の潜在空間にマッピングするようそれぞれ学習させた2種類のエンコーダを取得することができる。
【0097】
また、異なる2種類の情報は、画像およびテキストである。
【0098】
このように、情報処理装置100は、画像およびテキストのうち、一方の種類の情報しか存在しない(画像とテキストのペアデータが存在しない)場合であっても、一方の種類のデータ(例えば、画像(またはテキスト))とは異なる他方の種類の情報(例えば、テキスト(または画像))に対応するデコーダを用いて、一方の種類の情報(例えば、画像(またはテキスト))に対応する他方の種類の情報(例えば、テキスト(または画像))を生成することができる。これにより、情報処理装置100は、一方の種類の情報しか存在しない(画像とテキストのペアデータが存在しない)場合であっても、一方の種類の情報(例えば、画像(またはテキスト))と、デコーダを用いて生成された他方の種類の情報(例えば、テキスト(または画像))との組に基づいて、画像エンコーダおよびテキストエンコーダをそれぞれ再学習させることができる。また、上述したように、画像とテキストの組であるペアデータの数と比べると、ペアデータではない画像だけのデータやテキストだけのデータの数は多い。したがって、情報処理装置100は、より多くの学習データに基づいて画像エンコーダおよびテキストエンコーダをそれぞれ再学習させることができるので、画像およびテキストを共通の潜在空間に埋め込むことができる画像エンコーダおよびテキストエンコーダの精度をそれぞれ向上させることができる。
【0099】
また、デコーダ生成部132は、機械学習により学習させた機械学習モデルである2種類のデコーダそれぞれを生成する。エンコーダ生成部133は、機械学習により学習させた機械学習モデルである前記2種類のエンコーダをそれぞれ再学習させる。
【0100】
これにより、情報処理装置100は、2種類のデコーダおよび2種類のエンコーダを機械学習により学習させることで、より精度の高い2種類のデコーダおよび2種類のエンコーダを生成することができる。
【0101】
〔6.ハードウェア構成〕
また、上述してきた実施形態に係る情報処理装置100は、例えば
図8に示すような構成のコンピュータ1000によって実現される。
図8は、情報処理装置100の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を備える。
【0102】
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
【0103】
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、所定の通信網を介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータを所定の通信網を介して他の機器へ送信する。
【0104】
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
【0105】
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0106】
例えば、コンピュータ1000が実施形態に係る情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から所定の通信網を介してこれらのプログラムを取得してもよい。
【0107】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0108】
〔7.その他〕
また、上記実施形態及び変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0109】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0110】
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0111】
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。
【符号の説明】
【0112】
100 情報処理装置
110 通信部
120 記憶部
130 制御部
131 取得部
132 デコーダ生成部
133 エンコーダ生成部