以下に、図面を参照して、本発明にかかる出力方法、出力プログラム、および出力装置の実施の形態を詳細に説明する。
(実施の形態にかかる出力方法の一実施例)
図1は、実施の形態にかかる出力方法の一実施例を示す説明図である。出力装置100は、複数のモーダルの情報を用いて、問題の解決に有用な情報を得やすくすることにより、問題を解いた際の解の精度の向上を図るためのコンピュータである。
従来、問題を解くための手法として、例えば、BERT(Bidirectional Encoder Representations from Transformers)と呼ばれるものがある。BERTは、具体的には、TransformerのEncoder部を積み重ねて形成される。BERTについては、例えば、下記非特許文献2や下記非特許文献3を参照することができる。ここで、BERTは、文書に関するモーダルの情報を用いて問題を解くような状況に適用することが想定されており、複数のモーダルの情報を用いて問題を解くような状況に適用することができない。
非特許文献2 : Devlin, Jacob et al. “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.” NAACL-HLT (2019).
非特許文献3 : Vaswani, Ashish, et al. “Attention is all you need.” Advances in neural information processing systems. 2017.
また、問題を解くための手法として、例えば、VideoBERTと呼ばれるものがある。VideoBERTは、具体的には、BERTを、文書に関するモーダルの情報と、画像に関するモーダルの情報とを用いて問題を解くような状況に適用可能に拡張したものである。VideoBERTについては、例えば、下記非特許文献4を参照することができる。ここで、VideoBERTは、問題を解くにあたり、文書に関するモーダルの情報と、画像に関するモーダルの情報とを明示的に区別せずに扱うため、問題を解いた際の解の精度が悪い場合がある。
非特許文献4 : Sun, Chen, et al. “Videobert: A joint model for video and language representation learning.” arXiv preprint arXiv:1904.01766 (2019).
また、問題を解くための手法として、例えば、MCAN(Modular Co-Attention Network)と呼ばれるものがある。MCANは、文書に関するモーダルの情報と、文書に関するモーダルの情報で補正した画像に関するモーダルの情報とを参照し、問題を解くものである。MCANについては、例えば、下記非特許文献5を参照することができる。ここで、MCANは、問題を解くにあたり、文書に関するモーダルの情報を、画像に関するモーダルの情報で補正せず、そのまま参照するため、問題を解いた際の解の精度が悪い場合がある。
非特許文献5 : Yu, Zhou, et al. “Deep Modular Co-Attention Networks for Visual Question Answering.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019.
また、上述した通り、問題を解くための手法として、例えば、ViLBERTと呼ばれるものがある。しかしながら、ViLBERTは、画像に関するモーダルの情報で補正した文書に関するモーダルの情報と、文書に関するモーダルの情報で補正した、画像に関するモーダルの情報とをそのまま参照するだけであるため、問題を解いた際の解の精度が悪い場合がある。
そこで、本実施の形態では、複数のモーダルの情報が集約された集約ベクトルを生成することにより、複数のモーダルの情報を用いて問題を解くような状況に適用可能であり、問題を解いた際の解の精度を向上可能にすることができる出力方法について説明する。
図1において、出力装置100は、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとを取得する。モーダルは、情報の様式を意味する。第一のモーダルと、第二のモーダルとは、それぞれ異なるモーダルである。第一のモーダルは、例えば、画像に関するモーダルである。第一のモーダルの情報は、例えば、第一のモーダルに従って表現された、画像である。第二のモーダルは、例えば、文書に関するモーダルである。第二のモーダルの情報は、例えば、第二のモーダルに従って表現された、文書である。
第一のモーダルの情報に基づくベクトルは、例えば、第一のモーダルに従って表現された、第一のモーダルの情報に基づいて生成されたベクトルである。第一のモーダルの情報に基づくベクトルは、具体的には、画像に基づいて生成されたベクトルである。第二のモーダルの情報に基づくベクトルは、例えば、第二のモーダルに従って表現された、第二のモーダルの情報に基づいて生成されたベクトルである。第二のモーダルの情報に基づくベクトルは、具体的には、文書に基づいて生成されたベクトルである。
(1-1)出力装置100は、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとの相関に基づいて、第一のモーダルの情報に基づくベクトルを補正する。出力装置100は、例えば、第一の補正モデル111を用いて、第一のモーダルの情報に基づくベクトルを補正する。第一の補正モデル111は、例えば、第一のモーダルに関するターゲットアテンション層である。
(1-2)出力装置100は、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとの相関に基づいて、第二のモーダルの情報に基づくベクトルを補正する。出力装置100は、例えば、第二の補正モデル112を用いて、第二のモーダルの情報に基づくベクトルを補正する。第二の補正モデル112は、例えば、第二のモーダルに関するターゲットアテンション層である。
(1-3)出力装置100は、補正後の第一のモーダルの情報に基づくベクトルから得た異なる種類の2つのベクトルの相関に基づいて、第一のベクトルを生成する。異なる種類の2つのベクトルは、例えば、クエリとなるベクトルと、キーとなるベクトルとである。出力装置100は、例えば、第一の生成モデル121を用いて、第一のベクトルを生成する。第一の生成モデル121は、例えば、第一のモーダルに関するセルフアテンション層である。
(1-4)出力装置100は、補正後の第二のモーダルの情報に基づくベクトルから得た異なる種類の2つのベクトルの相関に基づいて、第二のベクトルを生成する。異なる種類の2つのベクトルは、例えば、クエリとなるベクトルと、キーとなるベクトルとである。出力装置100は、例えば、第二の生成モデル122を用いて、第二のベクトルを生成する。第二の生成モデル122は、例えば、第二のモーダルに関するセルフアテンション層である。
(1-5)出力装置100は、所定のベクトルと、生成した第一のベクトルと、生成した第二のベクトルとを含む結合ベクトルを生成する。所定のベクトルは、例えば、予めユーザによって設定される。所定のベクトルは、第一のベクトルと、第二のベクトルとを集約するための集約用ベクトルである。所定のベクトルは、例えば、要素がランダムに設定されたベクトルである。所定のベクトルは、例えば、要素が、ユーザによって設定された既定値のベクトルである。結合ベクトルは、例えば、所定のベクトルと、第一のベクトルと、第二のベクトルとを順に結合することにより得られる。
そして、出力装置100は、結合ベクトルから得た異なる種類の2つのベクトルの相関に基づいて、第三のベクトルを生成する。異なる種類の2つのベクトルは、例えば、クエリとなるベクトルと、キーとなるベクトルとである。第三のベクトルは、第一のベクトルと第二のベクトルとを集約したベクトルである。出力装置100は、第三の生成モデル130を用いて、第三のベクトルを生成する。第三の生成モデル130は、例えば、セルフアテンション層である。
これによれば、出力装置100は、第一のベクトルと第二のベクトルとに基づく、キーとなるベクトルに含まれる部分と、所定のベクトルに基づく、クエリとなるベクトルに含まれる部分との相関に基づいて、所定のベクトルを補正することができる。出力装置100は、例えば、当該相関に基づいて、第一のベクトルと第二のベクトルとに基づく、バリューとなるベクトルの部分により、所定のベクトルを補正することができる。このため、出力装置100は、所定のベクトルに対し、第一のベクトルと第二のベクトルとが集約されるような処理を行うことができ、第三のベクトルを得ることができる。
(1-6)出力装置100は、生成した第三のベクトルを出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、他のコンピュータへの送信、または、記憶領域への記憶などである。これにより、出力装置100は、第一のベクトルと第二のベクトルとが集約され、第一のモーダルの情報に基づくベクトルと第二のモーダルの情報に基づくベクトルとのうち問題の解決に有用な情報が反映される傾向がある第三のベクトルを生成し、利用可能にすることができる。出力装置100は、例えば、実世界の画像や文書の特徴のうち、問題の解決に有用な特徴を、コンピュータ上で精度よく表現した第三のベクトルを利用可能にすることができる。
出力装置100は、例えば、第三のベクトルを利用し、第一の補正モデル111と、第二の補正モデル112と、第一の生成モデル121と、第二の生成モデル122と、第三の生成モデル130となどを更新することができる。このため、出力装置100は、第一のモーダルの情報に基づくベクトルと第二のモーダルの情報に基づくベクトルとのうち問題の解決に有用な情報が、第三のベクトルに反映されやすくすることができる。結果として、出力装置100は、以降の、問題を解いた際の解の精度の向上を図ることができる。
出力装置100は、例えば、問題を解くにあたり、第一のモーダルの情報に基づくベクトルと第二のモーダルの情報に基づくベクトルとのうち問題の解決に有用な情報が反映される傾向がある第三のベクトルを利用することができ、問題を解いた際の解の精度を向上させることができる。出力装置100は、具体的には、画像と文書とを基に、対象の状況を判断する問題を解くにあたり、正確に対象の状況を判断することができる。対象の状況を判断する問題は、例えば、対象の状況が、ポジティブな状況であるか、またはネガティブな状況であるかを判断する問題である。
(情報処理システム200の一例)
次に、図2を用いて、図1に示した出力装置100を適用した、情報処理システム200の一例について説明する。
図2は、情報処理システム200の一例を示す説明図である。図2において、情報処理システム200は、出力装置100と、クライアント装置201と、端末装置202とを含む。
情報処理システム200において、出力装置100とクライアント装置201とは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。また、情報処理システム200において、出力装置100と端末装置202とは、有線または無線のネットワーク210を介して接続される。
出力装置100は、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとに基づいて、第三のベクトルを生成するCo-Attention Networkを有する。第一のモーダルは、例えば、画像に関するモーダルである。第二のモーダルは、例えば、文書に関するモーダルである。Co-Attention Networkは、例えば、図1に示した、第一の補正モデル111と、第二の補正モデル112と、第一の生成モデル121と、第二の生成モデル122と、第三の生成モデル130との全体に対応する。
出力装置100は、教師データに基づいて、Co-Attention Networkを更新する。教師データは、例えば、標本となる第一のモーダルの情報に基づくベクトルを生成する元となる第一のモーダルの情報と、標本となる第二のモーダルの情報に基づくベクトルを生成する元となる第二のモーダルの情報と、正解データとを対応付けた対応情報である。教師データは、例えば、出力装置100のユーザにより出力装置100に入力される。正解データは、例えば、第三のベクトルに基づいて、問題を解いた場合についての正解を示す。例えば、第一のモーダルが、画像に関するモーダルであれば、第一のモーダルの情報に基づくベクトルを生成する元となる第一のモーダルの情報は、画像である。例えば、第二のモーダルが、文書に関するモーダルであれば、第二のモーダルの情報に基づくベクトルを生成する元となる第二のモーダルの情報は、文書である。
出力装置100は、例えば、教師データのうち第一のモーダルの情報となる画像から、第一のモーダルの情報に基づくベクトルを生成することにより取得し、教師データのうち第二のモーダルの情報となる文書から、第二のモーダルの情報に基づくベクトルを生成することにより取得する。そして、出力装置100は、取得した第一のモーダルの情報に基づくベクトルと、取得した第二のモーダルの情報に基づくベクトルと、教師データの正解データとに基づいて、誤差逆伝搬などにより、Co-Attention Networkを更新する。出力装置100は、誤差逆伝搬以外の学習方法により、Co-Attention Networkを更新してもよい。
出力装置100は、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとを取得する。そして、出力装置100は、Co-Attention Networkを用いて、取得した第一のモーダルの情報に基づくベクトルと、取得した第二のモーダルの情報に基づくベクトルとに基づいて、第三のベクトルを生成し、生成した第三のベクトルに基づいて、問題を解く。その後、出力装置100は、問題を解いた結果を、クライアント装置201に送信する。
出力装置100は、例えば、出力装置100のユーザにより出力装置100に入力された第一のモーダルの情報に基づくベクトルを取得する。また、出力装置100は、第一のモーダルの情報に基づくベクトルを、クライアント装置201または端末装置202から受信することにより取得してもよい。また、出力装置100は、例えば、第一のモーダルの情報に基づくベクトルを生成する元となる第一のモーダルの情報を、クライアント装置201または端末装置202から受信することにより取得してもよい。例えば、第一のモーダルが、画像に関するモーダルであれば、第一のモーダルの情報に基づくベクトルを生成する元となる第一のモーダルの情報は、画像である。
出力装置100は、例えば、出力装置100のユーザにより出力装置100に入力された第二のモーダルの情報に基づくベクトルを取得する。また、出力装置100は、第二のモーダルの情報に基づくベクトルを、クライアント装置201または端末装置202から受信することにより取得してもよい。また、出力装置100は、例えば、第二のモーダルの情報に基づくベクトルを生成する元となる第二のモーダルの情報を、クライアント装置201または端末装置202から受信することにより取得してもよい。例えば、第二のモーダルが、文書に関するモーダルであれば、第二のモーダルの情報に基づくベクトルを生成する元となる第二のモーダルの情報は、文書である。
そして、出力装置100は、Co-Attention Networkを用いて、取得した第一のモーダルの情報に基づくベクトルと、取得した第二のモーダルの情報に基づくベクトルとに基づいて、第三のベクトルを生成し、生成した第三のベクトルに基づいて、問題を解く。その後、出力装置100は、問題を解いた結果を、クライアント装置201に送信する。出力装置100は、例えば、サーバやPC(Personal Computer)などである。
クライアント装置201は、出力装置100と通信可能なコンピュータである。クライアント装置201は、例えば、第一のモーダルの情報に基づくベクトルを、出力装置100に送信してもよい。また、クライアント装置201は、例えば、第一のモーダルの情報に基づくベクトルを生成する元となる第一のモーダルの情報を、出力装置100に送信してもよい。クライアント装置201は、例えば、第二のモーダルの情報に基づくベクトルを、出力装置100に送信してもよい。また、クライアント装置201は、例えば、第二のモーダルの情報に基づくベクトルを生成する元となる第二のモーダルの情報を、出力装置100に送信してもよい。
クライアント装置201は、出力装置100が問題を解いた結果を受信して出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、他のコンピュータへの送信、または、記憶領域への記憶などである。クライアント装置201は、例えば、PC、タブレット端末、またはスマートフォンなどである。
端末装置202は、出力装置100と通信可能なコンピュータである。端末装置202は、例えば、第一のモーダルの情報に基づくベクトルを、出力装置100に送信してもよい。また、端末装置202は、例えば、第一のモーダルの情報に基づくベクトルを生成する元となる第一のモーダルの情報を、出力装置100に送信してもよい。端末装置202は、例えば、第二のモーダルの情報に基づくベクトルを、出力装置100に送信してもよい。また、端末装置202は、例えば、第二のモーダルの情報に基づくベクトルを生成する元となる第二のモーダルの情報を、出力装置100に送信してもよい。端末装置202は、例えば、PC、タブレット端末、スマートフォン、電子機器、IoT機器、またはセンサ装置などである。端末装置202は、具体的には、監視カメラであってもよい。
ここでは、出力装置100が、Co-Attention Networkを更新し、かつ、Co-Attention Networkを用いて、問題を解く場合について説明したが、これに限らない。例えば、他のコンピュータが、Co-Attention Networkを更新し、出力装置100が、他のコンピュータから受信したCo-Attention Networkを用いて、問題を解く場合があってもよい。また、例えば、出力装置100が、Co-Attention Networkを更新し、他のコンピュータに提供し、他のコンピュータで、Co-Attention Networkを用いて、問題を解く場合があってもよい。
ここでは、教師データが、標本となる第一のモーダルの情報に基づくベクトルを生成する元となる第一のモーダルの情報と、標本となる第二のモーダルの情報に基づくベクトルを生成する元となる第二のモーダルの情報と、正解データとを対応付けた対応情報である場合について説明したが、これに限らない。例えば、教師データが、標本となる第一のモーダルの情報に基づくベクトルと、標本となる第二のモーダルの情報に基づくベクトルと、正解データとを対応付けた対応情報である場合があってもよい。
ここでは、出力装置100が、クライアント装置201や端末装置202とは異なる装置である場合について説明したが、これに限らない。例えば、出力装置100が、クライアント装置201と一体である場合があってもよい。また、例えば、出力装置100が、端末装置202と一体である場合があってもよい。
ここでは、出力装置100が、ソフトウェア的に、Co-Attention Networkを実現する場合について説明したが、これに限らない。例えば、出力装置100が、Co-Attention Networkを、電子回路的に実現する場合があってもよい。
(情報処理システム200の適用例1)
適用例1において、出力装置100は、画像と、画像についての質問文となる文書とを記憶する。質問文は、例えば、「画像内で何を切っているか」である。そして、出力装置100は、画像と文書とに基づいて、質問文に対する回答文を推定する問題を解く。出力装置100は、例えば、画像と文書とに基づいて、画像内で何を切っているかの質問文に対する回答文を推定し、クライアント装置201に送信する。
(情報処理システム200の適用例2)
適用例2において、端末装置202は、監視カメラであり、対象を撮像した画像を、出力装置100に送信する。対象は、具体的には、試着室の外観である。また、出力装置100は、対象についての説明文となる文書を記憶している。説明文は、具体的には、人間が試着室を利用中は、試着室のカーテンが閉まっている傾向があることの説明文である。そして、出力装置100は、画像と文書とに基づいて、危険度を判断する問題を解く。危険度は、例えば、試着室に避難が未完了の人間が残っている可能性の高さを示す指標値である。出力装置100は、例えば、災害時に、試着室に避難が未完了の人間が残っている可能性の高さを示す危険度を判断する。
(情報処理システム200の適用例3)
適用例3において、出力装置100は、動画を形成する画像と、画像についての説明文となる文書を記憶している。動画は、例えば、料理の様子を写した動画である。説明文は、具体的には、料理の手順についての説明文である。そして、出力装置100は、画像と文書とに基づいて、危険度を判断する問題を解く。危険度は、例えば、料理中の危険性の高さを示す指標値である。出力装置100は、例えば、料理中の危険性の高さを示す危険度を判断する。
(出力装置100のハードウェア構成例)
次に、図3を用いて、出力装置100のハードウェア構成例について説明する。
図3は、出力装置100のハードウェア構成例を示すブロック図である。図3において、出力装置100は、CPU(Central Processing Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、出力装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
ネットワークI/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303は、例えば、モデムやLANアダプタなどである。
記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、出力装置100から着脱可能であってもよい。
出力装置100は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、出力装置100は、記録媒体I/F304や記録媒体305を複数有していてもよい。また、出力装置100は、記録媒体I/F304や記録媒体305を有していなくてもよい。
(クライアント装置201のハードウェア構成例)
クライアント装置201のハードウェア構成例は、具体的には、図3に示した出力装置100のハードウェア構成例と同様であるため、説明を省略する。
(端末装置202のハードウェア構成例)
端末装置202のハードウェア構成例は、具体的には、図3に示した出力装置100のハードウェア構成例と同様であるため、説明を省略する。
(出力装置100の機能的構成例)
次に、図4を用いて、出力装置100の機能的構成例について説明する。
図4は、出力装置100の機能的構成例を示すブロック図である。出力装置100は、記憶部400と、取得部401と、第一の補正部402と、第一の生成部403と、第二の補正部404と、第二の生成部405と、第三の生成部406と、解析部407と、出力部408とを含む。
記憶部400は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。以下では、記憶部400が、出力装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部400が、出力装置100とは異なる装置に含まれ、記憶部400の記憶内容が出力装置100から参照可能である場合があってもよい。
取得部401~出力部408は、制御部の一例として機能する。取得部401~出力部408は、具体的には、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
記憶部400は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部400は、Co-Attention Networkを記憶する。Co-Attention Networkは、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとに基づいて、第三のベクトルを生成するモデルである。Co-Attention Networkは、後述する第一のターゲットアテンション層と、第二のターゲットアテンション層と、第一のセルフアテンション層と、第二のセルフアテンション層と、第三のセルフアテンション層との全体に対応する。
第一のターゲットアテンション層は、例えば、第一のモーダルに関する。第一のターゲットアテンション層は、第一のモーダルの情報に基づくベクトルを補正するモデルである。第一のセルフアテンション層は、例えば、第一のモーダルに関する。第一のセルフアテンション層は、補正後の第一のモーダルの情報に基づくベクトルをさらに補正し、第一のベクトルを生成するモデルである。第二のターゲットアテンション層は、例えば、第二のモーダルに関する。第二のターゲットアテンション層は、第二のモーダルの情報に基づくベクトルを補正するモデルである。第二のセルフアテンション層は、例えば、第二のモーダルに関する。第二のセルフアテンション層は、補正後の第二のモーダルの情報に基づくベクトルをさらに補正し、第二のベクトルを生成するモデルである。第三のセルフアテンション層は、第一のベクトルと、第二のベクトルとに基づいて、第三のベクトルを生成するモデルである。
例えば、第一のモーダルは、画像に関するモーダルであり、第二のモーダルは、文書に関するモーダルである。例えば、第一のモーダルは、画像に関するモーダルであり、第二のモーダルは、音声に関するモーダルである。例えば、第一のモーダルは、第一の言語の文書に関するモーダルであり、第二のモーダルは、第二の言語の文書に関するモーダルである。Co-Attention Networkは、解析部407によって更新され、または解析部407によって問題を解く際に利用される。
記憶部400は、例えば、Co-Attention Networkのパラメータを記憶する。記憶部400は、具体的には、第一のターゲットアテンション層と、第二のターゲットアテンション層と、第一のセルフアテンション層と、第二のセルフアテンション層と、第三のセルフアテンション層とのパラメータを記憶する。
記憶部400は、教師データを記憶してもよい。教師データは、例えば、標本となる第一のモーダルの情報に基づくベクトルを生成する元となる第一のモーダルの情報と、標本となる第二のモーダルの情報に基づくベクトルを生成する元となる第二のモーダルの情報と、正解データとを対応付けた対応情報である。教師データは、例えば、ユーザにより入力される。正解データは、例えば、第三のベクトルに基づいて、問題を解いた場合についての正解を示す。
例えば、第一のモーダルが、画像に関するモーダルであれば、第一のモーダルの情報に基づくベクトルを生成する元となる第一のモーダルの情報は、画像である。例えば、第二のモーダルが、文書に関するモーダルであれば、第二のモーダルの情報に基づくベクトルを生成する元となる第二のモーダルの情報は、文書である。教師データは、標本となる第一のモーダルの情報に基づくベクトルと、標本となる第二のモーダルの情報に基づくベクトルと、正解データとを対応付けた対応情報であってもよい。
取得部401は、各機能部の処理に用いられる各種情報を取得する。取得部401は、取得した各種情報を、記憶部400に記憶し、または、各機能部に出力する。また、取得部401は、記憶部400に記憶しておいた各種情報を、各機能部に出力してもよい。取得部401は、例えば、ユーザの操作入力に基づき、各種情報を取得する。取得部401は、例えば、出力装置100とは異なる装置から、各種情報を受信してもよい。
取得部401は、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとを取得する。取得部401は、Co-Attention Networkを更新する際に、教師データを取得し、教師データに基づいて、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとを取得する。
取得部401は、例えば、ユーザによる教師データの入力を受け付け、教師データの中から、第一のモーダルの情報に基づくベクトルを生成する元となる第一のモーダルの情報と、第二のモーダルの情報に基づくベクトルを生成する元となる第二のモーダルの情報とを取得する。そして、取得部401は、取得した各種情報に基づいて、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとを生成する。
取得部401は、具体的には、教師データに含まれる画像を取得し、第一のモーダルの情報に基づくベクトルとして、取得した画像に関する特徴量ベクトルを生成する。画像に関する特徴量ベクトルは、例えば、画像に写る物体ごとの特徴量ベクトルを並べたものである。また、取得部401は、具体的には、教師データに含まれる文書を取得し、第二のモーダルの情報に基づくベクトルとして、取得した文書に関する特徴量ベクトルを生成する。文書に関する特徴量ベクトルは、例えば、文書に含まれる単語ごとの特徴量ベクトルを並べたものである。
取得部401は、例えば、教師データを、クライアント装置201または端末装置202から受信し、受信した教師データの中から、第一のモーダルの情報に基づくベクトルを生成する元となる第一のモーダルの情報と、第二のモーダルの情報に基づくベクトルを生成する元となる第二のモーダルの情報とを取得してもよい。そして、取得部401は、取得した情報に基づいて、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとを生成する。
取得部401は、具体的には、教師データに含まれる画像を取得し、第一のモーダルの情報に基づくベクトルとして、取得した画像に関する特徴量ベクトルを生成する。画像に関する特徴量ベクトルは、例えば、画像に写る物体ごとの特徴量ベクトルを並べたものである。また、取得部401は、具体的には、教師データに含まれる文書を取得し、第二のモーダルの情報に基づくベクトルとして、取得した文書に関する特徴量ベクトルを生成する。文書に関する特徴量ベクトルは、例えば、文書に含まれる単語ごとの特徴量ベクトルを並べたものである。
取得部401は、例えば、ユーザによる教師データの入力を受け付け、教師データの中から、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとを、そのまま取得してもよい。取得部401は、例えば、教師データを、クライアント装置201または端末装置202から受信し、受信した教師データの中から、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとを、そのまま取得してもよい。
取得部401は、Co-Attention Networkを利用し、問題を解く際に、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとを取得する。取得部401は、例えば、ユーザによる、第一のモーダルの情報に基づくベクトルを生成する元となる第一のモーダルの情報と、第二のモーダルの情報に基づくベクトルを生成する元となる第二のモーダルの情報との入力を受け付ける。そして、取得部401は、入力された各種情報に基づいて、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとを生成する。
取得部401は、具体的には、画像を取得し、第一のモーダルの情報に基づくベクトルとして、取得した画像に関する特徴量ベクトルを生成する。画像に関する特徴量ベクトルは、例えば、画像に写る物体ごとの特徴量ベクトルを並べたものである。また、取得部401は、具体的には、文書を取得し、第二のモーダルの情報に基づくベクトルとして、取得した文書に関する特徴量ベクトルを生成する。文書に関する特徴量ベクトルは、例えば、文書に含まれる単語ごとの特徴量ベクトルを並べたものである。
取得部401は、例えば、第一のモーダルの情報に基づくベクトルを生成する元となる第一のモーダルの情報と、第二のモーダルの情報に基づくベクトルを生成する元となる第二のモーダルの情報とを、クライアント装置201または端末装置202から受信してもよい。そして、取得部401は、取得した各種情報に基づいて、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとを生成する。
取得部401は、具体的には、画像を取得し、第一のモーダルの情報に基づくベクトルとして、取得した画像に関する特徴量ベクトルを生成する。画像に関する特徴量ベクトルは、例えば、画像に写る物体ごとの特徴量ベクトルを並べたものである。取得部401は、具体的には、文書を取得し、第二のモーダルの情報に基づくベクトルとして、取得した文書に関する特徴量ベクトルを生成する。文書に関する特徴量ベクトルは、例えば、文書に含まれる単語ごとの特徴量ベクトルを並べたものである。
取得部401は、例えば、ユーザによる、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとの入力を受け付けてもよい。取得部401は、例えば、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとを、クライアント装置201または端末装置202から受信してもよい。
取得部401は、いずれかの機能部の処理を開始する開始トリガーを受け付けてもよい。開始トリガーは、例えば、ユーザによる所定の操作入力があったことである。開始トリガーは、例えば、他のコンピュータから、所定の情報を受信したことであってもよい。開始トリガーは、例えば、いずれかの機能部が所定の情報を出力したことであってもよい。取得部401は、例えば、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとを取得したことを、各機能部の処理を開始する開始トリガーとして受け付ける。
第一の補正部402は、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとの相関に基づいて、第一のモーダルの情報に基づくベクトルを補正する。相関は、例えば、第一のモーダルの情報に基づくベクトルから得たベクトルと、第二のモーダルの情報に基づくベクトルから得たベクトルとの類似度によって表現される。第一のモーダルの情報に基づくベクトルから得たベクトルは、例えば、クエリである。第二のモーダルの情報に基づくベクトルから得たベクトルは、例えば、キーである。類似度は、例えば、内積によって表現される。類似度は、例えば、差分の二乗和などによって表現されてもよい。
第一の補正部402は、例えば、第一のターゲットアテンション層を用いて、第一のモーダルの情報に基づくベクトルから得たベクトルと、第二のモーダルの情報に基づくベクトルから得たベクトルとの内積に基づいて、第一のモーダルの情報に基づくベクトルを補正する。
第一の補正部402は、具体的には、第一のターゲットアテンション層を用いて、第一のモーダルの情報に基づくベクトルから得たクエリと、第二のモーダルの情報に基づくベクトルから得たキーとの内積に基づいて、第一のモーダルの情報に基づくベクトルを補正する。ここで、第一のモーダルの情報に基づくベクトルを補正する一例は、例えば、図5を用いて後述する動作例に示す。これにより、第一の補正部402は、第二のモーダルの情報に基づくベクトルのうち、第一のモーダルの情報に基づくベクトルと相対的に関連深い成分ほど、第一のモーダルの情報に基づくベクトルに強く反映されるように、第一のモーダルの情報に基づくベクトルを補正することができる。
第一の生成部403は、補正後の第一のモーダルの情報に基づくベクトルから得た異なる種類の2つのベクトルの相関に基づいて、第一のベクトルを生成する。相関は、例えば、補正後の第一のモーダルの情報に基づくベクトルから得た異なる種類の2つのベクトルの類似度によって表現される。異なる種類の2つのベクトルは、例えば、クエリとキーとである。類似度は、例えば、内積によって表現される。類似度は、例えば、差分の二乗和などによって表現されてもよい。
第一の生成部403は、例えば、第一のセルフアテンション層を用いて、補正後の第一のモーダルの情報に基づくベクトルから得た異なる種類の2つのベクトルの内積に基づいて、補正後の第一のモーダルの情報に基づくベクトルをさらに補正し、第一のベクトルを生成する。
第一の生成部403は、具体的には、第一のセルフアテンション層を用いて、補正後の第一のモーダルの情報に基づくベクトルから得たクエリとキーとの内積に基づいて、補正後の第一のモーダルの情報に基づくベクトルをさらに補正し、第一のベクトルを生成する。ここで、第一のベクトルを生成する一例は、例えば、図5を用いて後述する動作例に示す。これにより、第一の生成部403は、補正後の第一のモーダルの情報に基づくベクトルのうち、より有用な成分ほど大きくなるように、補正後の第一のモーダルの情報に基づくベクトルをさらに補正することができる。
第二の補正部404は、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとの相関に基づいて、第二のモーダルの情報に基づくベクトルを補正する。相関は、例えば、第一のモーダルの情報に基づくベクトルから得たベクトルと、第二のモーダルの情報に基づくベクトルから得たベクトルとの類似度によって表現される。第一のモーダルの情報に基づくベクトルから得たベクトルは、例えば、キーである。第二のモーダルの情報に基づくベクトルから得たベクトルは、例えば、クエリである。類似度は、例えば、内積によって表現される。類似度は、例えば、差分の二乗和などによって表現されてもよい。
第二の補正部404は、例えば、第二のターゲットアテンション層を用いて、第一のモーダルの情報に基づくベクトルから得たベクトルと、第二のモーダルの情報に基づくベクトルから得たベクトルとの内積に基づいて、第二のモーダルの情報に基づくベクトルを補正する。
第二の補正部404は、具体的には、第二のターゲットアテンション層を用いて、第一のモーダルの情報に基づくベクトルから得たキーと、第二のモーダルの情報に基づくベクトルから得たクエリとの内積に基づいて、第二のモーダルの情報に基づくベクトルを補正する。ここで、第二のモーダルの情報に基づくベクトルを補正する一例は、例えば、図5を用いて後述する動作例に示す。これにより、第二の補正部404は、第一のモーダルの情報に基づくベクトルのうち、第二のモーダルの情報に基づくベクトルと相対的に関連深い成分ほど、第二のモーダルの情報に基づくベクトルに強く反映されるように、第二のモーダルの情報に基づくベクトルを補正することができる。
第二の生成部405は、補正後の第二のモーダルの情報に基づくベクトルから得た異なる種類の2つのベクトルの相関に基づいて、第二のベクトルを生成する。相関は、例えば、補正後の第二のモーダルの情報に基づくベクトルから得た異なる種類の2つのベクトルの類似度によって表現される。異なる種類の2つのベクトルは、例えば、クエリとキーとである。類似度は、例えば、内積によって表現される。類似度は、例えば、差分の二乗和などによって表現されてもよい。
第二の生成部405は、例えば、第二のセルフアテンション層を用いて、補正後の第二のモーダルの情報に基づくベクトルから得た異なる種類の2つのベクトルの内積に基づいて、補正後の第二のモーダルの情報に基づくベクトルをさらに補正し、第二のベクトルを生成する。
第二の生成部405は、具体的には、第二のセルフアテンション層を用いて、補正後の第二のモーダルの情報に基づくベクトルから得たクエリとキーとの内積に基づいて、補正後の第二のモーダルの情報に基づくベクトルをさらに補正し、第二のベクトルを生成する。ここで、第二のベクトルを生成する一例は、例えば、図5を用いて後述する動作例に示す。これにより、第二の生成部405は、補正後の第二のモーダルの情報に基づくベクトルのうち、より有用な成分ほど大きくなるように、補正後の第二のモーダルの情報に基づくベクトルをさらに補正することができる。
ここで、出力装置100は、第一の補正部402~第二の生成部405の動作を、1回以上繰り返してもよい。出力装置100は、例えば、第一の補正部402~第二の生成部405の動作を繰り返す際には、生成した第一のベクトルを、新たな第一のモーダルの情報に基づくベクトルに設定し、生成した第二のベクトルを、新たな第二のモーダルの情報に基づくベクトルに設定する。これにより、出力装置100は、問題を解いた際の解の精度をさらに向上可能にすることができる。出力装置100は、例えば、問題を解いた際の解の精度を向上させる観点で、第三のベクトルをより有用な状態で生成可能にすることができる。
第三の生成部406は、結合ベクトルを生成する。結合ベクトルは、所定のベクトルと、生成した第一のベクトルと、生成した第二のベクトルとを含む。第三の生成部406は、例えば、所定のベクトルと第一のベクトルと第二のベクトルとを結合した結合ベクトルを生成する。第三の生成部406は、例えば、第一の補正部402~第二の生成部405の動作を繰り返した後であれば、所定のベクトルと最後に生成した第一のベクトルと最後に生成した第二のベクトルとを結合した結合ベクトルを生成する。
第三の生成部406は、結合ベクトルから得た異なる種類の2つのベクトルの相関に基づいて、第一のベクトルと第二のベクトルとを集約した第三のベクトルを生成する。相関は、例えば、結合ベクトルから得た異なる種類の2つのベクトルの類似度によって表現される。異なる種類の2つのベクトルは、例えば、クエリとキーとである。類似度は、例えば、内積によって表現される。類似度は、例えば、差分の二乗和などによって表現されてもよい。
第三の生成部406は、例えば、第三のセルフアテンション層を用いて、結合ベクトルから得た異なる種類の2つのベクトルの内積に基づいて、結合ベクトルを補正し、第三のベクトルを生成する。第三のベクトルは、例えば、補正後の結合ベクトルのうち、所定のベクトルに対応する位置に含まれる部分的なベクトルである。
第三の生成部406は、具体的には、第三のセルフアテンション層を用いて、結合ベクトルから得たクエリとキーとの内積に基づいて、結合ベクトルを補正することにより、第三のベクトルを含む補正後の結合ベクトルを生成する。ここで、第三のベクトルを生成する一例は、例えば、図5を用いて後述する動作例に示す。これにより、第三の生成部406は、問題を解いた際の解の精度を向上させる観点で有用な第三のベクトルを生成し、参照可能にすることができる。
解析部407は、生成した第三のベクトルに基づいて、Co-Attention Networkを更新する。解析部407は、例えば、第三のベクトルに基づいて、第一のターゲットアテンション層と、第二のターゲットアテンション層と、第一のセルフアテンション層と、第二のセルフアテンション層と、第三のセルフアテンション層とを更新する。更新は、例えば、誤差逆伝搬によって実施される。
解析部407は、具体的には、生成した第三のベクトルを用いて、試験的に問題を解き、正解データと比較する。問題の一例は、例えば、第一のモーダルと第二のモーダルとに関する状況が、ポジティブな状況であるか、または、ネガティブな状況であるかを判断する問題である。問題の一例は、具体的には、画像が示唆する状況が、人間に危害が及び得る状況であるか、または、人間に危害が及ばない状況であるかを判断する問題である。
そして、解析部407は、比較した結果に基づいて、第一のターゲットアテンション層と、第二のターゲットアテンション層と、第一のセルフアテンション層と、第二のセルフアテンション層と、第三のセルフアテンション層とを更新する。これにより、解析部407は、第三のベクトルをより有用な状態で生成可能に、各種アテンション層を更新し、問題を解いた際の解の精度を向上可能にすることができる。
解析部407は、生成した第三のベクトルを用いて、実際の問題を解く。問題の一例は、例えば、第一のモーダルと第二のモーダルとに関する状況が、ポジティブな状況であるか、または、ネガティブな状況であるかを判断する問題である。問題の一例は、具体的には、画像が示唆する状況が、人間に危害が及び得る状況であるか、または、人間に危害が及ばない状況であるかを判断する問題である。これにより、解析部407は、問題を解いた際の解の精度を向上させることができる。
出力部408は、いずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。これにより、出力部408は、各機能部の処理結果をユーザに通知可能にし、出力装置100の利便性の向上を図ることができる。
出力部408は、例えば、更新済みのCo-Attention Networkを出力する。出力部408は、具体的には、更新済みの第一のターゲットアテンション層と、第二のターゲットアテンション層と、第一のセルフアテンション層と、第二のセルフアテンション層と、第三のセルフアテンション層とを出力する。これにより、出力部408は、更新済みのCo-Attention Networkを参照可能にすることができる。このため、出力部408は、例えば、他のコンピュータで、更新済みのCo-Attention Networkを用いて、問題を解いた際の解の精度を向上可能にすることができる。
出力部408は、例えば、生成した第三のベクトルを出力する。これにより、出力部408は、第三のベクトルを参照可能にし、Co-Attention Networkを更新可能にしたり、または、問題を解いた際の解の精度を向上可能にすることができる。
出力部408は、例えば、第三のベクトルを、実際の問題を解いた結果に対応付けて出力する。出力部408は、具体的には、第三のベクトルを、判断した状況に対応付けて出力する。これにより、出力部408は、問題を解いた結果を、ユーザなどに参照可能にすることができる。
出力部408は、例えば、第三のベクトルを出力せずに、実際の問題を解いた結果を出力してもよい。出力部408は、具体的には、第三のベクトルを出力せずに、判断した状況を出力する。これにより、出力部408は、問題を解いた結果を、ユーザなどに参照可能にすることができる。
(出力装置100の動作例)
次に、図5~図7を用いて、出力装置100の動作例について説明する。まず、図5を用いて、出力装置100によって用いられるCo-Attention Network500の具体例について説明する。
図5は、Co-Attention Network500の具体例を示す説明図である。以下の説明では、Co-Attention Network500を「CAN500」と表記する場合がある。また、ターゲットアテンションを「TA」と表記する場合がある。また、セルフアテンションを「SA」と表記する場合がある。
図5に示すように、CAN500は、画像TA層501と、画像SA層502と、文書TA層503と、文書SA層504と、結合層505と、統合SA層506とを有する。
図5において、CAN500は、文書に関する特徴量ベクトルLと画像に関する特徴量ベクトルIとが入力されたことに応じて、ベクトルZTを出力する。文書に関する特徴量ベクトルLは、例えば、文書に関するM個の特徴量ベクトルを並べたものである。M個の特徴量ベクトルは、例えば、文書に含まれるM個の単語を示す特徴量ベクトルである。画像に関する特徴量ベクトルIは、例えば、画像に関するN個の特徴量ベクトルを並べたものである。N個の特徴量ベクトルは、例えば、画像に写ったN個の物体を示す特徴量ベクトルである。
具体的には、画像TA層501は、画像に関する特徴量ベクトルIと、文書に関する特徴量ベクトルLとの入力を受け付ける。画像TA層501は、画像に関する特徴量ベクトルIから得たクエリと、文書に関する特徴量ベクトルLから得たキーおよびバリューとに基づいて、画像に関する特徴量ベクトルIを補正する。画像TA層501は、補正後の画像に関する特徴量ベクトルIを、画像SA層502に出力する。画像TA層501の具体例については、例えば、図6を用いて後述する。
また、画像SA層502は、補正後の画像に関する特徴量ベクトルIの入力を受け付ける。画像SA層502は、補正後の画像に関する特徴量ベクトルIから得たクエリ、キーおよびバリューに基づいて、補正後の画像に関する特徴量ベクトルIをさらに補正し、新たな特徴量ベクトルZIを生成し、結合層505に出力する。画像SA層502の具体例については、例えば、図6を用いて後述する。
また、文書TA層503は、文書に関する特徴量ベクトルLと、画像に関する特徴量ベクトルIとの入力を受け付ける。文書TA層503は、文書に関する特徴量ベクトルLから得たクエリと、画像に関する特徴量ベクトルIから得たキーおよびバリューとに基づいて、文書に関する特徴量ベクトルLを補正する。文書TA層503は、補正後の文書に関する特徴量ベクトルLを、文書SA層504に出力する。文書TA層503の具体例については、例えば、図6を用いて後述する。
また、文書SA層504は、補正後の文書に関する特徴量ベクトルLの入力を受け付ける。文書SA層504は、補正後の文書に関する特徴量ベクトルLから得たクエリ、キーおよびバリューに基づいて、補正後の文書に関する特徴量ベクトルLをさらに補正し、新たな特徴量ベクトルZLを生成して出力する。文書SA層504の具体例については、例えば、図6を用いて後述する。
また、結合層505は、集約用ベクトルHと、特徴量ベクトルZIと、特徴量ベクトルZLとの入力を受け付ける。結合層505は、集約用ベクトルHと、特徴量ベクトルZIと、特徴量ベクトルZLとを結合し、結合ベクトルCを生成し、統合SA層506に出力する。
また、統合SA層506は、結合ベクトルCの入力を受け付ける。統合SA層506は、結合ベクトルCから得たクエリ、キーおよびバリューに基づいて、結合ベクトルCを補正し、特徴量ベクトルZTを生成して出力する。特徴量ベクトルZTは、集約ベクトルZHと、文書に関する統合特徴量ベクトルZ1~ZMと、画像に関する統合特徴量ベクトルZM+1~ZM+Nとを含む。これにより、出力装置100は、問題を解いた際の解の精度を向上させる観点で有用な集約ベクトルZHを含む特徴量ベクトルZTを生成し、参照可能にすることができる。このため、出力装置100は、問題を解いた際の解の精度を向上可能にすることができる。
ここでは、説明の簡略化のため、画像TA層501と、画像SA層502と、文書TA層503と、文書SA層504とのグループ510が、1段である場合について説明したが、これに限らない。例えば、画像TA層501と、画像SA層502と、文書TA層503と、文書SA層504とのグループ510が、複数段存在する場合があってもよい。これによれば、出力装置100は、問題を解いた際の解の精度のさらなる向上を図ることができる。
次に、図6の説明に移行し、CAN500を形成する画像SA層502と文書SA層504と統合SA層506となどのようなSA層600の具体例について説明する。また、CAN500を形成する画像TA層501と文書TA層503となどのようなTA層610の具体例について説明する。
図6は、SA層600の具体例と、TA層610の具体例とを示す説明図である。以下の説明では、Multi-Head Attentionを「MHA」と表記する場合がある。また、Add&Normを「A&N」と表記する場合がある。また、Feed Forwardを「FF」と表記する場合がある。
図6に示すように、SA層600は、MHA層601と、A&N層602と、FF層603と、A&N層604とを有する。MHA層601は、入力ベクトルXから得たクエリQとキーKとバリューVとに基づいて、入力ベクトルXを補正する補正ベクトルRを生成し、A&N層602に出力する。MHA層601は、具体的には、入力ベクトルXを、Head個のベクトルに分割して処理する。Headは、1以上の自然数である。
A&N層602は、入力ベクトルXと補正ベクトルRとを加算した上で正規化し、正規化後のベクトルを、FF層603とA&N層604とに出力する。FF層603は、正規化後のベクトルを圧縮し、圧縮後のベクトルを、A&N層604に出力する。A&N層604は、正規化後のベクトルと、圧縮後のベクトルとを加算した上で正規化し、出力ベクトルZを生成して出力する。
また、TA層610は、MHA層611と、A&N層612と、FF層613と、A&N層614とを有する。MHA層611は、入力ベクトルXから得たクエリQと、入力ベクトルYから得たキーKとバリューVとに基づいて、入力ベクトルXを補正する補正ベクトルRを生成し、A&N層612に出力する。A&N層612は、入力ベクトルXと補正ベクトルRとを加算した上で正規化し、正規化後のベクトルを、FF層613とA&N層614とに出力する。FF層613は、正規化後のベクトルを圧縮し、圧縮後のベクトルを、A&N層614に出力する。A&N層614は、正規化後のベクトルと、圧縮後のベクトルとを加算した上で正規化し、出力ベクトルZを生成して出力する。
上述したMHA層601やMHA層611は、より具体的には、Head個のAttention層620により形成される。Attention層620は、MatMul層621と、Scale層622と、Mask層623と、SoftMax層624と、MatMul層625とを有する。
MatMul層621は、クエリQとキーKとの内積を算出し、Scoreに設定する。Scale層622は、Score全体を定数aで除算し、更新する。Mask層623は、更新後のScoreをマスク処理してもよい。SoftMax層624は、更新後のScoreを、正規化し、Attに設定する。MatMul層625は、AttとバリューVとの内積を算出し、補正ベクトルRに設定する。
ここで、SA層600の計算例について説明する。具体的には、SA層600の計算例の一つとして、SA層600で画像SA層502を実現する場合における計算例を示す。また、説明の簡略化のため、Head=1であるとする。
ここで、入力ベクトルXは、下記式(1)により表現される画像に関する特徴量ベクトルXであるとする。x1,x2,x3は、d次元のベクトルである。x1,x2,x3は、それぞれ、画像に写った物体に対応する。
クエリQは、下記式(2)により算出される。WQは、変換行列であり、学習により設定される。キーKは、下記式(3)により算出される。WKは、変換行列であり、学習により設定される。バリューVは、下記式(4)により算出される。WVは、変換行列であり、学習により設定される。クエリQと、キーKと、バリューVとは、入力ベクトルXと同じ次元である。
MatMul層621は、下記式(5)に示すように、クエリQとキーKとの内積を算出し、Scoreに設定する。Scale層622は、下記式(6)に示すように、Score全体を定数aで除算し、更新する。ここでは、Mask層623は、マスク処理を省略する。SoftMax層624は、下記式(7)に示すように、更新後のScoreを、正規化し、Attに設定する。MatMul層625は、下記式(8)に示すように、AttとバリューVとの内積を算出し、補正ベクトルRに設定する。
MHA層601は、上述したように、補正ベクトルRを生成する。A&N層602は、下記式(9)および下記式(10)に示すように、入力ベクトルXと補正ベクトルRとを加算した上で正規化し、入力ベクトルXを更新する。μは、下記式(11)により定義される。σは、下記式(12)により定義される。FF層603は、下記式(13)に示すように、更新後の入力ベクトルXを変換し、変換ベクトルX’を設定する。fは、活性化関数である。A&N層604は、更新後の入力ベクトルXと、設定した変換ベクトルX’とを加算した上で正規化し、出力ベクトルZを生成する。
次に、TA層610の計算例について説明する。具体的には、TA層610の計算例の一つとして、TA層610で画像TA層501を実現する場合における計算例を示す。また、説明の簡略化のため、Head=1であるとする。
ここで、入力ベクトルXは、上記式(1)により表現される画像に関する特徴量ベクトルXであるとする。x1,x2,x3は、d次元のベクトルである。x1,x2,x3は、それぞれ、画像に写った物体に対応する。入力ベクトルYは、下記式(14)により表現される文書に関する特徴量ベクトルYであるとする。y1,y2,y3は、d次元のベクトルである。y1,y2,y3は、それぞれ、文書に含まれる単語に対応する。
クエリQは、下記式(15)により算出される。WQは、変換行列であり、学習により設定される。キーKは、下記式(16)により算出される。WKは、変換行列であり、学習により設定される。バリューVは、下記式(17)により算出される。WVは、変換行列であり、学習により設定される。クエリQは、入力ベクトルXと同じ次元である。キーKと、バリューVとは、入力ベクトルYと同じ次元である。
MatMul層621は、上記式(5)に示すように、クエリQとキーKとの内積を算出し、Scoreに設定する。Scale層622は、上記式(6)に示すように、Score全体を定数aで除算し、更新する。ここでは、Mask層623は、マスク処理を省略する。SoftMax層624は、上記式(7)に示すように、更新後のScoreを、正規化し、Attに設定する。MatMul層625は、上記式(8)に示すように、AttとバリューVとの内積を算出し、補正ベクトルRに設定する。
MHA層601は、上述したように、補正ベクトルRを生成する。A&N層602は、上記式(9)および上記式(10)に示すように、入力ベクトルXと補正ベクトルRとを加算した上で正規化し、入力ベクトルXを更新する。FF層603は、上記式(13)に示すように、更新後の入力ベクトルXを変換し、変換ベクトルX’を設定する。A&N層604は、更新後の入力ベクトルXと、設定した変換ベクトルX’とを加算した上で正規化し、出力ベクトルZを生成する。次に、図7を用いて、出力装置100による、CAN500を用いた動作の一例について説明する。
図7は、CAN500を用いた動作の一例を示す説明図である。出力装置100は、文書700を取得し、画像710を取得する。出力装置100は、文書700をトークン化し、トークン集合701をベクトル化し、文書700に関する特徴量ベクトル702を生成し、CAN500に入力する。また、出力装置100は、画像710から物体を検出し、物体ごとの部分画像の集合711をベクトル化し、画像710に関する特徴量ベクトル712を生成し、CAN500に入力する。
出力装置100は、CAN500から、特徴量ベクトルZTを取得し、特徴量ベクトルZTに含まれる集約ベクトルZHを、危険度推定器720に入力する。出力装置100は、危険度推定器720から推定結果Noを取得する。これにより、出力装置100は、画像と文書との特徴が反映された集約ベクトルZHを用いて、危険度推定器720に推定させることができ、精度よく推定可能にすることができる。危険度推定器720は、例えば、銃を持った人物が写っている画像710があるが、ミュージアムの展示物であることを示す文書もあるため、推定結果No=危険ではないと推定することができる。
(出力装置100の利用例)
次に、図8~図11を用いて、出力装置100の利用例について説明する。
図8および図9は、出力装置100の利用例1を示す説明図である。図8において、出力装置100は、学習フェーズを実施し、CAN500を学習する。出力装置100は、例えば、何らかのシーンを写した画像800と、画像800に対応する字幕となる文書810とを取得する。画像800は、例えば、りんごを切るシーンを写す。出力装置100は、画像800を変換器820により特徴量ベクトルに変換し、CAN500に入力する。また、出力装置100は、文書810の単語appleをマスクした上で、変換器830により特徴量ベクトルに変換し、CAN500に入力する。
出力装置100は、CAN500により生成された特徴量ベクトルを、識別器840に入力し、マスクされた単語を予測した結果を取得し、マスクされた単語の正解「apple」との誤差を算出する。出力装置100は、算出した誤差に基づいて、誤差逆伝搬によりCAN500を学習する。さらに、出力装置100は、誤差逆伝搬により、変換器820,830や識別器840を学習してもよい。これにより、出力装置100は、画像800と字幕となる文書810の文脈とを考慮して単語を推定する観点で有用なように、CAN500、および変換器820,830や識別器840を更新することができる。次に、図9の説明に移行する。
図9において、出力装置100は、試験フェーズを実施し、学習した変換器820,830と、学習したCAN500とを用いて、回答を生成して出力する。出力装置100は、例えば、何らかのシーンを写した画像900と、画像900に対応する質問文となる文書910とを取得する。画像900は、例えば、りんごを切るシーンを写す。
出力装置100は、画像900を変換器820により特徴量ベクトルに変換し、CAN500に入力する。また、出力装置100は、文書910を変換器830により特徴量ベクトルに変換し、CAN500に入力する。出力装置100は、CAN500により生成された特徴量ベクトルを、回答生成器920に入力し、回答となる単語を取得して出力する。これにより、出力装置100は、画像900と質問文となる文書910の文脈とを考慮して、精度よく回答となる単語を推定することができる。
図10および図11は、出力装置100の利用例2を示す説明図である。図10において、出力装置100は、学習フェーズを実施し、CAN500を学習する。出力装置100は、例えば、何らかのシーンを写した画像1000と、画像1000に対応する字幕となる文書1010とを取得する。画像1000は、例えば、りんごを切るシーンを写す。出力装置100は、画像1000を変換器1020により特徴量ベクトルに変換し、CAN500に入力する。また、出力装置100は、文書1010の単語appleをマスクした上で、変換器1030により特徴量ベクトルに変換し、CAN500に入力する。
出力装置100は、CAN500により生成された特徴量ベクトルを、識別器1040に入力し、画像に写ったシーンの危険度を予測した結果を取得し、危険度の正解との誤差を算出する。出力装置100は、算出した誤差に基づいて、誤差逆伝搬によりCAN500を学習する。また、出力装置100は、誤差逆伝搬により、変換器1020,1030や識別器1040を学習する。これにより、出力装置100は、画像1000と字幕となる文書1010の文脈とを考慮して危険度を予測する観点で有用なように、CAN500、および変換器1020,1030や識別器1040を更新することができる。次に、図11の説明に移行する。
図11において、出力装置100は、試験フェーズを実施し、学習した変換器1020,1030や識別器1040と、学習したCAN500とを用いて、危険度を予測して出力する。出力装置100は、例えば、何らかのシーンを写した画像1100と、画像に対応する説明文となる文書1110とを取得する。画像1100は、例えば、ももを切るシーンを写す。
出力装置100は、画像1100を変換器1020により特徴量ベクトルに変換し、CAN500に入力する。また、出力装置100は、文書1110を変換器1030により特徴量ベクトルに変換し、CAN500に入力する。出力装置100は、CAN500により生成された特徴量ベクトルを、識別器1040に入力し、危険度を取得して出力する。これにより、出力装置100は、画像1100と説明文となる文書1110の文脈とを考慮して、精度よく危険度を予測することができる。
(学習処理手順)
次に、図12を用いて、出力装置100が実行する、学習処理手順の一例について説明する。学習処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
図12は、学習処理手順の一例を示すフローチャートである。図12において、出力装置100は、画像の特徴量ベクトルと、文書の特徴量ベクトルとを取得する(ステップS1201)。
次に、出力装置100は、取得した画像の特徴量ベクトルから生成したクエリと、取得した文書の特徴量ベクトルから生成したキーおよびバリューとに基づいて、画像TA層501を用いて、画像の特徴量ベクトルを補正する(ステップS1202)。
そして、出力装置100は、補正後の画像の特徴量ベクトルに基づいて、画像SA層502を用いて、補正後の画像の特徴量ベクトルをさらに補正し、新たに画像の特徴量ベクトルを生成する(ステップS1203)。
次に、出力装置100は、取得した文書の特徴量ベクトルから生成したクエリと、取得した画像の特徴量ベクトルから生成したキーおよびバリューとに基づいて、文書TA層503を用いて、文書の特徴量ベクトルを補正する(ステップS1204)。
そして、出力装置100は、補正後の文書の特徴量ベクトルに基づいて、文書SA層504を用いて、補正後の文書の特徴量ベクトルをさらに補正し、新たに文書の特徴量ベクトルを生成する(ステップS1205)。
次に、出力装置100は、集約用ベクトルを初期化する(ステップS1206)。そして、出力装置100は、集約用ベクトルと、生成した画像の特徴量ベクトルと、生成した文書の特徴量ベクトルとを結合し、結合ベクトルを生成する(ステップS1207)。
次に、出力装置100は、結合ベクトルに基づいて、統合SA層506を用いて、結合ベクトルを補正し、集約ベクトルを生成する(ステップS1208)。そして、出力装置100は、集約ベクトルに基づいて、CAN500を学習する(ステップS1209)。
その後、出力装置100は、学習処理を終了する。これにより、出力装置100は、CAN500を用いて問題を解くにあたり、問題を解いた際の解の精度が向上するように、CAN500のパラメータを更新することができる。
ここで、出力装置100は、図12の一部ステップの処理の順序を入れ替えて実行してもよい。例えば、ステップS1202,S1203の処理と、ステップS1204,S1205の処理との順序は入れ替え可能である。また、出力装置100は、ステップS1202~S1205の処理を繰り返し実行してもよい。
(推定処理手順)
次に、図13を用いて、出力装置100が実行する、推定処理手順の一例について説明する。推定処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
図13は、推定処理手順の一例を示すフローチャートである。図13において、出力装置100は、画像の特徴量ベクトルと、文書の特徴量ベクトルとを取得する(ステップS1301)。
次に、出力装置100は、取得した画像の特徴量ベクトルから生成したクエリと、取得した文書の特徴量ベクトルから生成したキーおよびバリューとに基づいて、画像TA層501を用いて、画像の特徴量ベクトルを補正する(ステップS1302)。
そして、出力装置100は、補正後の画像の特徴量ベクトルに基づいて、画像SA層502を用いて、補正後の画像の特徴量ベクトルをさらに補正し、新たに画像の特徴量ベクトルを生成する(ステップS1303)。
次に、出力装置100は、取得した文書の特徴量ベクトルから生成したクエリと、取得した画像の特徴量ベクトルから生成したキーおよびバリューとに基づいて、文書TA層503を用いて、文書の特徴量ベクトルを補正する(ステップS1304)。
そして、出力装置100は、補正後の文書の特徴量ベクトルに基づいて、文書SA層504を用いて、補正後の文書の特徴量ベクトルをさらに補正し、新たに文書の特徴量ベクトルを生成する(ステップS1305)。
次に、出力装置100は、集約用ベクトルを初期化する(ステップS1306)。そして、出力装置100は、集約用ベクトルと、生成した画像の特徴量ベクトルと、生成した文書の特徴量ベクトルとを結合し、結合ベクトルを生成する(ステップS1307)。
次に、出力装置100は、結合ベクトルに基づいて、統合SA層506を用いて、結合ベクトルを補正し、集約ベクトルを生成する(ステップS1308)。そして、出力装置100は、集約ベクトルに基づいて、識別モデルを用いて、状況を推定する(ステップS1309)。
次に、出力装置100は、推定した状況を出力する(ステップS1310)。そして、出力装置100は、推定処理を終了する。これにより、出力装置100は、CAN500を用いて、問題を解いた際の解の精度を向上させることができる。
ここで、出力装置100は、図13の一部ステップの処理の順序を入れ替えて実行してもよい。例えば、ステップS1302,S1303の処理と、ステップS1304,S1305の処理との順序は入れ替え可能である。また、出力装置100は、ステップS1302~S1305の処理を繰り返し実行してもよい。
以上説明したように、出力装置100によれば、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとの相関に基づいて、第一のモーダルの情報に基づくベクトルを補正することができる。出力装置100によれば、第一のモーダルの情報に基づくベクトルと、第二のモーダルの情報に基づくベクトルとの相関に基づいて、第二のモーダルの情報に基づくベクトルを補正することができる。出力装置100によれば、補正後の第一のモーダルの情報に基づくベクトルから得た異なる種類の2つのベクトルの相関に基づいて、第一のベクトルを生成することができる。出力装置100によれば、補正後の第二のモーダルの情報に基づくベクトルから得た異なる種類の2つのベクトルの相関に基づいて、第二のベクトルを生成することができる。出力装置100によれば、所定のベクトルと、生成した第一のベクトルと、生成した第二のベクトルとを含む結合ベクトルから得た異なる種類の2つのベクトルの相関に基づいて、第一のベクトルと第二のベクトルとを集約した第三のベクトルを生成することができる。出力装置100によれば、生成した第三のベクトルを出力することができる。これにより、出力装置100は、第一のベクトルと第二のベクトルとが集約され、第一のモーダルの情報に基づくベクトルと第二のモーダルの情報に基づくベクトルとのうち問題の解決に有用な情報が反映される傾向がある第三のベクトルを生成し、利用可能にすることができる。このため、出力装置100は、第三のベクトルを利用し、問題を解いた際の解の精度を向上可能にすることができる。
出力装置100によれば、第一のターゲットアテンション層を用いて、第一のモーダルの情報に基づくベクトルから得たベクトルと、第二のモーダルの情報に基づくベクトルから得たベクトルとの内積に基づいて、第一のモーダルの情報に基づくベクトルを補正することができる。出力装置100によれば、第二のターゲットアテンション層を用いて、第一のモーダルの情報に基づくベクトルから得たベクトルと、第二のモーダルの情報に基づくベクトルから得たベクトルとの内積に基づいて、第二のモーダルの情報に基づくベクトルを補正することができる。出力装置100によれば、第一のセルフアテンション層を用いて、補正後の第一のモーダルの情報に基づくベクトルから得た異なる種類の2つのベクトルの内積に基づいて、補正後の第一のモーダルの情報に基づくベクトルをさらに補正し、第一のベクトルを生成することができる。出力装置100によれば、第二のセルフアテンション層を用いて、補正後の第二のモーダルの情報に基づくベクトルから得た異なる種類の2つのベクトルの内積に基づいて、補正後の第二のモーダルの情報に基づくベクトルをさらに補正し、第二のベクトルを生成することができる。出力装置100によれば、第三のセルフアテンション層を用いて、所定のベクトルと第一のベクトルと第二のベクトルとを結合した結合ベクトルから得た異なる種類の2つのベクトルの内積に基づいて、第三のベクトルを生成することができる。これにより、出力装置100は、各種アテンション層を用いて、第三のベクトルを生成する処理を、容易に実現することができる。
出力装置100によれば、生成した第三のベクトルに基づいて、第一のモーダルと第二のモーダルとに関する状況を判断して出力することができる。これにより、出力装置100は、状況を判別する問題を解く場合に適用可能にすることができ、問題を解いた結果を参照可能にすることができる。
出力装置100によれば、生成した第一のベクトルを、新たな第一のモーダルの情報に基づくベクトルに設定することができる。出力装置100によれば、生成した第二のベクトルを、新たな第二のモーダルの情報に基づくベクトルに設定することができる。出力装置100によれば、設定した第一のモーダルの情報に基づくベクトルを補正し、設定した第二のモーダルの情報に基づくベクトルを補正し、第一のベクトルを生成し、第二のベクトルを生成する、処理を1回以上繰り返すことができる。出力装置100によれば、所定のベクトルと、生成した第一のベクトルと、生成した第二のベクトルとを含む結合ベクトルから得た異なる種類の2つのベクトルの相関に基づいて、第一のベクトルと第二のベクトルとを集約した第三のベクトルを生成することができる。これにより、出力装置100は、各種ベクトルを多段階に補正し、問題を解いた際の解の精度をさらに向上可能にすることができる。
出力装置100によれば、第一のモーダルとして、画像に関するモーダルを採用することができる。出力装置100によれば、第二のモーダルとして、文書に関するモーダルを採用することができる。これにより、出力装置100は、画像と文書とに基づいて問題を解く場合に適用可能にすることができる。
出力装置100によれば、第一のモーダルとして、画像に関するモーダルを採用することができる。出力装置100によれば、第二のモーダルとして、音声に関するモーダルを採用することができる。これにより、出力装置100は、画像と音声とに基づいて問題を解く場合に適用可能にすることができる。
出力装置100によれば、第一のモーダルとして、第一の言語の文書に関するモーダルを採用することができる。出力装置100によれば、第二のモーダルとして、第二の言語の文書に関するモーダルを採用することができる。これにより、出力装置100は、異なる言語の2つの文書に基づいて問題を解く場合に適用可能にすることができる。
出力装置100によれば、生成した第三のベクトルに基づいて、ポジティブな状況、または、ネガティブな状況を判断して出力することができる。これにより、出力装置100は、ポジティブな状況、または、ネガティブな状況を判別する問題を解く場合に適用可能にすることができ、問題を解いた結果を参照可能にすることができる。
出力装置100によれば、生成した第三のベクトルに基づいて、第一のターゲットアテンション層と、第二のターゲットアテンション層と、第一のセルフアテンション層と、第二のセルフアテンション層と、第三のセルフアテンション層とを更新することができる。これにより、出力装置100は、第三のベクトルをより有用な状態で生成可能に、各種アテンション層を更新し、問題を解いた際の解の精度を向上可能にすることができる。
なお、本実施の形態で説明した出力方法は、予め用意されたプログラムをPCやワークステーションなどのコンピュータで実行することにより実現することができる。本実施の形態で説明した出力プログラムは、コンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。記録媒体は、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、MO、DVD(Digital Versatile Disc)などである。また、本実施の形態で説明した出力プログラムは、インターネットなどのネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)第一のモーダルの情報に基づくベクトルと、前記第一のモーダルとは異なる第二のモーダルの情報に基づくベクトルとの相関に基づいて、前記第一のモーダルの情報に基づくベクトルを補正し、
前記第一のモーダルの情報に基づくベクトルと、前記第二のモーダルの情報に基づくベクトルとの相関に基づいて、前記第二のモーダルの情報に基づくベクトルを補正し、
補正後の前記第一のモーダルの情報に基づくベクトルから得た異なる種類の2つのベクトルの相関に基づいて、第一のベクトルを生成し、
補正後の前記第二のモーダルの情報に基づくベクトルから得た前記異なる種類の2つのベクトルの相関に基づいて、第二のベクトルを生成し、
所定のベクトルと、生成した前記第一のベクトルと、生成した前記第二のベクトルとを含む結合ベクトルから得た前記異なる種類の2つのベクトルの相関に基づいて、前記第一のベクトルと前記第二のベクトルとを集約した第三のベクトルを生成し、
生成した前記第三のベクトルを出力する、
処理をコンピュータが実行することを特徴とする出力方法。
(付記2)前記第一のモーダルの情報に基づくベクトルを補正する処理は、
前記第一のモーダルに関する第一のターゲットアテンション層を用いて、前記第一のモーダルの情報に基づくベクトルから得たベクトルと、前記第二のモーダルの情報に基づくベクトルから得たベクトルとの内積に基づいて、前記第一のモーダルの情報に基づくベクトルを補正し、
前記第二のモーダルの情報に基づくベクトルを補正する処理は、
前記第二のモーダルに関する第二のターゲットアテンション層を用いて、前記第一のモーダルの情報に基づくベクトルから得たベクトルと、前記第二のモーダルの情報に基づくベクトルから得たベクトルとの内積に基づいて、前記第二のモーダルの情報に基づくベクトルを補正し、
前記第一のベクトルを生成する処理は、
前記第一のモーダルに関する第一のセルフアテンション層を用いて、補正後の前記第一のモーダルの情報に基づくベクトルから得た前記異なる種類の2つのベクトルの内積に基づいて、補正後の前記第一のモーダルの情報に基づくベクトルをさらに補正し、前記第一のベクトルを生成し、
前記第二のベクトルを生成する処理は、
前記第二のモーダルに関する第二のセルフアテンション層を用いて、補正後の前記第二のモーダルの情報に基づくベクトルから得た前記異なる種類の2つのベクトルの内積に基づいて、補正後の前記第二のモーダルの情報に基づくベクトルをさらに補正し、前記第二のベクトルを生成し、
前記第三のベクトルを生成する処理は、
第三のセルフアテンション層を用いて、前記所定のベクトルと前記第一のベクトルと前記第二のベクトルとを結合した結合ベクトルから得た前記異なる種類の2つのベクトルの内積に基づいて、前記結合ベクトルを補正し、前記第三のベクトルを生成する、ことを特徴とする付記1に記載の出力方法。
(付記3)生成した前記第三のベクトルに基づいて、前記第一のモーダルと前記第二のモーダルとに関する状況を判断して出力する、
処理を前記コンピュータが実行することを特徴とする付記1または2に記載の出力方法。
(付記4)生成した前記第一のベクトルを、新たな前記第一のモーダルの情報に基づくベクトルに設定し、
生成した前記第二のベクトルを、新たな前記第二のモーダルの情報に基づくベクトルに設定し、
設定した前記第一のモーダルの情報に基づくベクトルと、設定した前記第二のモーダルの情報に基づくベクトルとの相関に基づいて、設定した前記第一のモーダルの情報に基づくベクトルを補正し、
設定した前記第一のモーダルの情報に基づくベクトルと、設定した前記第二のモーダルの情報に基づくベクトルとの相関に基づいて、設定した前記第二のモーダルの情報に基づくベクトルを補正し、
補正後の前記第一のモーダルの情報に基づくベクトルから得た前記異なる種類の2つのベクトルの相関に基づいて、前記第一のベクトルを生成し、
補正後の前記第二のモーダルの情報に基づくベクトルから得た前記異なる種類の2つのベクトルの相関に基づいて、前記第二のベクトルを生成する、
処理を前記コンピュータが1回以上繰り返し、
前記第三のベクトルを生成する処理は、
前記所定のベクトルと、生成した前記第一のベクトルと、生成した前記第二のベクトルとを含む結合ベクトルから得た前記異なる種類の2つのベクトルの相関に基づいて、前記第一のベクトルと前記第二のベクトルとを集約した第三のベクトルを生成する、ことを特徴とする付記1~3のいずれか一つに記載の出力方法。
(付記5)前記第一のモーダルと前記第二のモーダルとの組は、画像に関するモーダルと文書に関するモーダルとの組、画像に関するモーダルと音声に関するモーダルとの組、第一の言語の文書に関するモーダルと第二の言語の文書に関するモーダルとの組のうちいずれかの組である、ことを特徴とする付記1~4のいずれか一つに記載の出力方法。
(付記6)前記状況は、ポジティブな状況、または、ネガティブな状況である、ことを特徴とする付記3に記載の出力方法。
(付記7)生成した前記第三のベクトルに基づいて、前記第一のターゲットアテンション層と、前記第二のターゲットアテンション層と、前記第一のセルフアテンション層と、前記第二のセルフアテンション層と、前記第三のセルフアテンション層とを更新する、
処理を前記コンピュータが実行することを特徴とする付記2に記載の出力方法。
(付記8)第一のモーダルの情報に基づくベクトルと、前記第一のモーダルとは異なる第二のモーダルの情報に基づくベクトルとの相関に基づいて、前記第一のモーダルの情報に基づくベクトルを補正し、
前記第一のモーダルの情報に基づくベクトルと、前記第二のモーダルの情報に基づくベクトルとの相関に基づいて、前記第二のモーダルの情報に基づくベクトルを補正し、
補正後の前記第一のモーダルの情報に基づくベクトルから得た異なる種類の2つのベクトルの相関に基づいて、第一のベクトルを生成し、
補正後の前記第二のモーダルの情報に基づくベクトルから得た前記異なる種類の2つのベクトルの相関に基づいて、第二のベクトルを生成し、
所定のベクトルと、生成した前記第一のベクトルと、生成した前記第二のベクトルとを含む結合ベクトルから得た前記異なる種類の2つのベクトルの相関に基づいて、前記第一のベクトルと前記第二のベクトルとを集約した第三のベクトルを生成し、
生成した前記第三のベクトルを出力する、
処理をコンピュータに実行させることを特徴とする出力プログラム。
(付記9)第一のモーダルの情報に基づくベクトルと、前記第一のモーダルとは異なる第二のモーダルの情報に基づくベクトルとの相関に基づいて、前記第一のモーダルの情報に基づくベクトルを補正し、
前記第一のモーダルの情報に基づくベクトルと、前記第二のモーダルの情報に基づくベクトルとの相関に基づいて、前記第二のモーダルの情報に基づくベクトルを補正し、
補正後の前記第一のモーダルの情報に基づくベクトルから得た異なる種類の2つのベクトルの相関に基づいて、第一のベクトルを生成し、
補正後の前記第二のモーダルの情報に基づくベクトルから得た前記異なる種類の2つのベクトルの相関に基づいて、第二のベクトルを生成し、
所定のベクトルと、生成した前記第一のベクトルと、生成した前記第二のベクトルとを含む結合ベクトルから得た前記異なる種類の2つのベクトルの相関に基づいて、前記第一のベクトルと前記第二のベクトルとを集約した第三のベクトルを生成し、
生成した前記第三のベクトルを出力する、
制御部を有することを特徴とする出力装置。