(57)【要約】【課題】画像と関連付けるべきタグセットを高精度に推定できるモデルを得る。【解決手段】第１モデルは、入力画像から入力画像に関連付けるべきタグセットを表すベクトルを出力するエンコーダと、エンコーダからの出力を入力されるデコーダとを含む。第１モデルを訓練する方法は、エンコーダに第１訓練画像を入力し、デコーダからの第１出力画像を取得し、エンコーダからの第１出力ベクトルを取得し、第１訓練画像と第１出力画像との間の誤差と、第１訓練画像に予め関連付けられている第１タグセットに基づき予め設定された、エンコーダからの前記第１出力ベクトルに対する制約と、に基づいて、第１モデルのパラメータを更新する。【選択図】図１２Ａ
2019144639.tif 000002
【特許請求の範囲】
【請求項１】
入力画像から前記入力画像と関連付けるべきタグセットを表すベクトルを出力する第１モデルを訓練する、ことを含む、計算機に実行される方法であって、
前記計算機は、
記憶装置と、
前記記憶装置に格納されているプログラムに従って動作するプロセッサと、を含み、
前記第１モデルは、入力画像から前記入力画像に関連付けるべきタグセットを表すベクトルを出力するエンコーダと、前記エンコーダからの出力を入力されるデコーダとを含み、
前記方法は、前記プロセッサが、
前記エンコーダに第１訓練画像を入力し、
前記デコーダからの第１出力画像を取得し、
前記エンコーダからの第１出力ベクトルを取得し、
前記第１訓練画像と前記第１出力画像との間の誤差と、前記第１訓練画像に予め関連付けられている第１タグセットに基づき予め設定された、前記エンコーダからの前記第１出力ベクトルに対する制約と、に基づいて、前記第１モデルのパラメータを更新する、ことを含む方法。
【請求項２】
請求項１に記載の方法であって、
前記制約は、前記エンコーダからの前記第１出力ベクトルと前記第１タグセットのベクトルとの誤差を小さくすることである、方法。
【請求項３】
請求項１に記載の方法であって、
前記プロセッサが、
前記第１モデルの訓練に使用する画像と前記画像それぞれに関連付けられているタグセットとを格納するデータベースにおける、タグの出現頻度分布を分析し、
前記出現頻度分布が均一な状態に近づくように、前記データベースに、互いに関連付けられている新規画像と新規タグセットとを追加する、ことをさらに含む方法。
【請求項４】
請求項３に記載の方法であって、
前記プロセッサが、
互いに関連付けられている前記新規画像及びテキストを取得し、
前記テキスト内の単語それぞれのベクトルと前記新規画像の特徴ベクトルとの類似度を決定し、
前記類似度に基づいて前記テキストから前記新規画像に関連付ける前記新規タグセットを選択する、ことをさらに含む方法。
【請求項５】
請求項４に記載の方法であって、
前記プロセッサが、
前記テキスト内の単語それぞれのベクトルと前記画像の特徴ベクトルとの前記類似度を、第２モデルによって決定し、
前記第２モデルの訓練において、
前記第２モデルによって、第２訓練画像の特徴ベクトルと、前記第２訓練画像に予め関連付けられている関連タグセットのベクトルと、の第１類似度を決定し、
前記第２モデルによって、前記第２訓練画像の前記特徴ベクトルと、前記関連タグセットに含まれない単語を含む無関連タグセットのベクトルと、の第２類似度を決定し、
前記第１類似度及び前記第２類似度に基づいて、前記第２モデルを更新する、ことをさらに含む方法。
【請求項６】
請求項４に記載の方法であって、
前記プロセッサが、前記出現頻度分布に基づき、前記データベースにおいて出現頻度を増加させるべき第１タグを選択する、ことをさらに含み、
前記テキストは前記第１タグを含む、方法。
【請求項７】
請求項１に記載の方法であって、
前記プロセッサが、
前記第１モデルに対して第１ユーザ画像を入力し
前記エンコーダからの前記第１ユーザ画像に対する第１ユーザ出力ベクトルを取得し、
前記第１ユーザ出力ベクトルと予め用意されているタグセットそれぞれのベクトルとの類似度を決定し、
前記類似度に基づいて、前記第１ユーザ画像に関連づけるタグセットを決定する、ことをさらに含む、方法。
【請求項８】
請求項７に記載の方法であって、
前記予め用意されているタグセットは、それぞれ、一つのタグで構成されている、方法。
【請求項９】
請求項１に記載の方法であって、
前記プロセッサが、
第１ユーザタグセットを取得し、
予め用意されている画像を順次前記第１モデルに入力して、前記エンコーダから候補出力ベクトルを取得し、
前記候補出力ベクトルそれぞれと前記第１ユーザタグセットのベクトルとの類似度を決定し、
前記類似度に基づいて、前記第１ユーザタグセットに関連する画像を決定する、ことをさらに含む、方法。
【請求項１０】
計算機システムであって、
記憶装置と、
前記記憶装置に格納されているプログラムに従って動作するプロセッサと、を含み、
前記プロセッサは、
入力画像から前記入力画像に関連付けるべきタグセットを表すベクトルを出力するエンコーダと、前記エンコーダからの出力を入力されるデコーダとを含む、第１モデルを訓練し、
前記第１モデルの訓練において、
前記エンコーダに第１訓練画像を入力し、
前記デコーダからの第１出力画像を取得し、
前記エンコーダからの第１出力ベクトルを取得し、
前記第１訓練画像と前記第１出力画像との間の誤差と、前記第１訓練画像に予め関連付けられている第１タグセットに基づき予め設定された、前記エンコーダからの前記第１出力ベクトルに対する制約と、に基づいて、前記第１モデルのパラメータを更新する、計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像に対応するタグセットを表すベクトルを出力するモデルを訓練する方法に関する。
【背景技術】
【０００２】
画像の解析や検索のために、画像に対して画像を表すタグを付与する技術が知られている。例えば、特許文献１又は特許文献２は、画像に関連するタグを推定するシステムを開示している。
【０００３】
特許文献１において、「最初に、訓練中に、特徴データをトレーニングするために畳み込みニューラルネットワーク（ＣＮＮ）に入力されるデータのクラスタ不均衡を低減するためにクラスタリング技術が利用される。実施形態では、クラスタリング技術を利用して、（タグ付けされていない画像をタグ付けするための）タグ伝搬に利用できるデータポイント類似性を計算することもできる。テスト中に、多様性ベースの投票フレームワークがユーザのタグ付けバイアスを克服するために利用される。いくつかの実施形態では、バイグラム再重み付けは、予測タグセットに基づいてバイグラムの一部である可能性が高いキーワードの重みを小さくすることができる。」（要約）と開示されている。
【０００４】
特許文献２において、「システム、方法、および非一時的なコンピュータ可読媒体は、訓練段階において、第１のコンテンツアイテム変換に基づいて第１のコンテンツアイテムの第１のコンテンツアイテム表現を生成することができる。第１のコンテンツアイテムは、１または複数の画像及びビデオを含むことができる。第１のユーザメタデータの第１のユーザメタデータ表現は、第１のユーザメタデータ変換に基づいて作成することができる。第１のコンテンツアイテム表現及び第１のユーザメタデータ表現を組み合わせて、第１の結合表現を生成することができる。第１の組み合わせ表現及び第１のタグの第１のタグ表現は、互いに第１の閾値距離内の埋め込み空間に埋め込むことができる。」（要約）と開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開２０１７／０２３６０５５号
【特許文献２】米国特許出願公開２０１６／０１８８５９２号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
機械学習の技術により、入力された画像に対して、関連する１又は複数タグ（タグセット）を出力するモデルを形成することができる。機械学習によりモデルを適切に訓練するためには、大量の訓練用データが必要とされ、一般に、画像データに関連付けられるタグの出現頻度分布は、ロングテイル属性を有する。つまり、多くのタグの出現頻度（関連づけられる画像の数）は低く、一部のタグのみその出現頻度が高い。
【０００７】
出現頻度が低いタグセットの多くの訓練用データを収集することは困難である。一方、画像に関連付けるべきタグセットを推定するシステムに対して、出現頻度が低いタグセットであっても高精度に推定することができる能力が要求される。
【課題を解決するための手段】
【０００８】
本開示の一態様は、入力画像から前記入力画像と関連付けるべきタグセットを表すベクトルを出力する第１モデルを訓練する、ことを含む、計算機に実行される方法であって、前記計算機は、記憶装置と、前記記憶装置に格納されているプログラムに従って動作するプロセッサと、を含み、前記第１モデルは、入力画像から前記入力画像に関連付けるべきタグセットを表すベクトルを出力するエンコーダと、前記エンコーダからの出力を入力されるデコーダとを含み、前記方法は、前記プロセッサが、前記エンコーダに第１訓練画像を入力し、前記デコーダからの第１出力画像を取得し、前記エンコーダからの第１出力ベクトルを取得し、前記第１訓練画像と前記第１出力画像との間の誤差と、前記第１訓練画像に予め関連付けられている第１タグセットに基づき予め設定された、前記エンコーダからの前記第１出力ベクトルに対する制約と、に基づいて、前記第１モデルのパラメータを更新する。
【発明の効果】
【０００９】
本開示の一態様によれば、画像と関連付けるべきタグセットを高精度に推定できるモデルを得ることができる。
【図面の簡単な説明】
【００１０】
【図１】タグ推定装置を含む計算機システムの構成例を示す。
【図２】画像−テキスト関連データベースの構成例を示す
【図３】画像−タグ関連データベースの構成例を示す。
【図４Ａ】ユーザが、入力画像に対応するタグセットを取得するための、ＧＵＩ画像の例を示す。
【図４Ｂ】ユーザが、入力タグセットに対応する画像を取得するための、ＧＵＩ画像の例を示す。
【図５】運用プログラムによる、入力画像に対する推奨タグセットの決定の処理のフローチャートを示す。
【図６】運用プログラムによる、入力タグセットに関連する画像をする処理のフローチャートを示す。
【図７】画像−タグ関連データ生成プログラムによる処理のフローチャートを示す。
【図８】タグ分布テーブル構成例を示す。
【図９】訓練プログラムによる、マッチングモデルの訓練（学習）の方法を示すフローチャートである。
【図１０】訓練におけるマッチングモデルの処理のフローチャートである。
【図１１】意味表現モデルに構成例を模式的に示す。
【図１２Ａ】意味表現モデルの訓練における入力データ及び出力データを示す。
【図１２Ｂ】訓練プログラムによる、意味表現モデルの訓練のフローチャートである。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
【００１２】
図１は、タグ推定装置１００を含む計算機システムの構成例を示す。タグ推定装置 １００は、プロセッサ１１０、メモリ１２０、補助記憶装置１３０、入出力インタフェース１４０、及びネットワーク（ＮＷ）インタフェース１４５を含む。上記構成要素は、バスによって互いに接続されている。メモリ１２０、補助記憶装置１３０又はこれらの組み合わせは記憶装置の例である。
【００１３】
メモリ１２０は、例えば半導体メモリから構成され、主にプログラムやデータを一時的に保持するために利用される。メモリ１２０が格納しているプログラムは、マッチングモデル１２１、意味表現モデル１２２、訓練プログラム１２３、運用プログラム１２４、データクローラ１２５、及び、画像−タグ関連データ生成プログラム１２６を含む。
【００１４】
メモリ１２０は、さらに、画像−タグ関連データ生成プログラム１２６に作成されるタグ分布テーブル５４７を格納している。タグ分布テーブル５４７は、補助記憶装置１３０にも格納されてもよい。
【００１５】
プロセッサ１１０は、メモリ１２０に格納されているプログラムに従って、様々な処理を実行する。プロセッサ１１０がプログラムに従って動作することで、様々な機能部が実現される。例えば、プロセッサ１１０は、上記プログラムそれぞれに従って、マッチングモデル部、意味表現モデル部、学習部、運用部、データクローラ部、及び、訓練データ生成部として動作する。
【００１６】
補助記憶装置１３０は、画像−テキスト関連データベース（ＤＢ）１３２、及び、画像−タグ関連データベース１３４を格納している。補助記憶装置１３０は、例えばハードディスクドライブやソリッドステートドライブなどの大容量の記憶装置から構成され、プログラムやデータを長期間保持するために利用される。
【００１７】
補助記憶装置１３０に格納されたプログラムが起動時又は必要時にメモリ１２０にロードされ、このプログラムをプロセッサ１１０が実行することにより、タグ推定装置 １００の各種処理が実行される。したがって、以下においてプログラムにより実行される処理は、プロセッサ１１０又はタグ推定装置１００による処理である。
【００１８】
ネットワークインタフェース１４５は、ネットワークとの接続のためのインタフェースである。図１の例において、タグ推定装置１００は、ネットワークインタフェース１４５を介して、インターネットに接続する。
【００１９】
クライアント装置１４４は、ユーザが使用する装置であって、ネットワーク、図１の例においてインターネットを介して、タグ推定装置１００にアクセスする。クライアント装置１４４は、例えば、一般的な計算機構成を有し、入力装置及び表示装置を含む。入力装置は、ユーザがタグ推定装置１００に指示や情報などを入力するためのハードウェアデバイスである。表示装置は、入出力用の各種画像を表示するハードウェアデバイスである。入力デバイス及び表示デバイスは、ネットワークを介することなく、タグ推定装置１００に接続されていてもよい。
【００２０】
マッチングモデル１２１及び意味表現モデル１２２は、機械学習により訓練される（更新される）モデルである。タグ推定装置１００は、マッチングモデル１２１のための、訓練モード（学習モード）とオペレーションモードを有する。また、意味表現モデル１２２のための、訓練モードとオペレーションモードを有する。
【００２１】
マッチングモデル１２１及び意味表現モデル１２２は、それぞれ、訓練モードにおいて、訓練プログラム１２３により訓練される。マッチングモデル１２１及び意味表現モデル１２２の訓練のため、画像−タグ関連データベース１３４が使用される。
【００２２】
マッチングモデル１２１は、オペレーションモードにおいて、画像−タグ関連データ生成プログラム１２６によって使用される。マッチングモデル１２１は、オペレーションモードにおいて、画像−テキスト関連データベース１３２に格納されているデータから画像−タグ関連データベース１３４に格納するデータを生成するために使用される。
【００２３】
意味表現モデル１２２は、オペレーションモードにおいて、運用プログラム１２４によって使用される。意味表現モデル１２２は、オペレーションモードにおいて、ユーザに入力された画像に対応する１又は複数タグからなるタグセットを推定するために使用される。タグセットの推定のため、画像−タグ関連データベース１３４のデータが使用される。
【００２４】
また、意味表現モデル１２２は、ユーザに入力されたタグセットに対応する１又は複数画像を推定するために使用される。画像推定のため、画像−テキスト関連データベース１３２のデータが使用される。画像推定は、意味表現モデル１２２及び画像−テキスト関連データベース１３２を使用することなく、画像−タグ関連データベース１３４のデータを使用してもよい。
【００２５】
データクローラ１２５は、インターネット上のＷｅｂページを定期的に巡回し、互いに関連付けられている画像とテキストからなる組を収集する。データクローラ１２５は、画像−テキスト関連データベース１３２に、収集した画像とテキストの組を格納する。
【００２６】
図２は、画像−テキスト関連データベース１３２の構成例を示す。画像−テキスト関連データベース１３２は、画像と、対応するテキストと関連付ける。画像カラム３２１及びテキストカラム３２２を有する。画像カラム３２１は、収集された画像を格納している。テキストカラム３２２は、画像それぞれに関連付けられているテキストを格納している。各テキストは複数の単語で構成されている。
【００２７】
上述のように、画像−テキスト関連データベース１３２は、画像−タグ関連データベース１３３の生成、及び、ユーザ入力タグセットに対応する画像の推定において、使用される。
【００２８】
図３は、画像−タグ関連データベース１３３の構成例を示す。画像−タグ関連データベース１３３は、画像と、対応するタグセットとを関連付ける。画像−タグ関連データベース１３３は、画像カラム３３１及びタグカラム３３２を有する。画像カラム３２１は、画像を格納している。タグカラム３３２は、画像それぞれに関連付けられているタグセットを格納している。各タグセットは１又は複数のタグ（単語）で構成されている。
【００２９】
上述のように、画像−タグ関連データベース１３３は、マッチングモデル１２１及び意味表現モデル１２２のために使用され、また、ユーザ入力された画像を表す適切なタグセットを推定するために使用される。
【００３０】
以下において、ユーザに入力されたタグセット対応する１又は複数の画像の推定、及び、ユーザに入力された画像に対応するタグセットの推定、を説明する。運用プログラム１２４は、意味表現モデル１２２を使用して、入力タグセットに対応する１又は複数の画像を推定し、また、入力画像に対応するタグセットを推定する。
【００３１】
図４Ａは、ユーザが、入力画像に対応するタグセットを取得するための、ＧＵＩ画像の例を示す。運用プログラム１２４は、クライアント装置１４４に、図４Ａに示す画像データを送信する。ユーザは、クライアント装置１４４において、フィールド４０１に対象画像のパスを入力し、ＵＰＬＯＡＤボタン４０２を押す。
【００３２】
クライアント装置１４４は、フィールド４０１が示すパスから入力画像（データ）を取得し、タグ推定装置１００に送信する。運用プログラム１２４は、クライアント装置１４４から対象画像を受信する。
【００３３】
クライアント装置１４４は、ユーザによる入力装置を介した「推定」ボタン４０３の選択応じて、送信した画像を表すタグセットの要求をタグ推定装置１００に送信する。運用プログラム１２４は、受信した要求に応じて、対象画像に関連するタグセットを推定し、クライアント装置１４４に送信する。クライアント装置１４４は、受信したタグセットを、「推奨タグ」セクション４０４に表示する。
【００３４】
図４Ｂは、ユーザが、入力タグセットに対応する画像を取得するための、ＧＵＩ画像の例を示す。運用プログラム１２４は、クライアント装置１４４に、図４Ｂに示す画像データを送信する。ユーザは、クライアント装置１４４において、フィールド４５１に対象タグセットを入力する。クライアント装置１４４は、ユーザによる入力装置を介した「検索」ボタン４５２の選択応じて、対象タグセットと共に、対象タグセットに関連する画像の検索の要求をタグ推定装置１００に送信する。
【００３５】
運用プログラム１２４は、受信した要求に応じて、対象タグセットに関連すると推定される１又は複数の画像を選択し、クライアント装置１４４に送信する。クライアント装置１４４は、受信した１又は複数の画像を、「関連画像」セクション４５４に表示する。
【００３６】
図５は、運用プログラム１２４による、入力画像に対する推奨タグセットの決定の処理のフローチャートを示す。運用プログラム１２４は、ユーザに入力された画像を取得する（Ｓ１０１）。運用プログラム１２４は、取得した画像から、意味表現モデル１２２によって、意味表現ベクトルを生成する（Ｓ１０２）。意味表現モデル１２２は、入力された画像から、当該画像の意味表現ベクトルを生成する。意味表現モデル１２２の構成及び動作の詳細は後述する。
【００３７】
後述するように、意味表現ベクトルは、入力画像と関連づけるべきタグセットを表すベクトル、つまり、画像を表すタグセットを表すベクトルと見做すことができる。後述する例において、意味表現ベクトルは、ｗｏｒｄ  ｅｍｂｅｄｄｉｎｇ技術を利用して生成されるベクトルに対応する。
【００３８】
運用プログラム１２４は、画像−タグ関連データベース１３４から、タグを順次選択し、それらのベクトル（タグベクトル）を生成する（Ｓ１０３）。本例において、運用プログラム１２４は、ｗｏｒｄ  ｅｍｂｅｄｄｉｎｇ技術により、各タグをタグベクトルに変換する。運用プログラム１２４は、事前に訓練されているｗｏｒｄ  ｅｍｂｅｄｄｉｎｇのモデルを含む。他の実装において、ｗｏｒｄ  ｅｍｂｅｄｄｉｎｇ技術と異なる技術により、タグを含む語をベクトルに変換してもよい。
【００３９】
運用プログラム１２４は、生成したタグベクトルそれぞれと、意味表現ベクトルとを比較して、意味表現ベクトルとの類似度を計算する（Ｓ１０４）。類似度の計算は、例えば、ドット積又はコサイン類似度を使用することができる。
【００４０】
運用プログラム１２４は、類似度に基づいて、対象画像に対応する推奨タグセットに含めるタグを決定する（Ｓ１０５）。運用プログラム１２４は、例えば、類似度が閾値より高いタグにより、推奨タグセットを構成する。推奨タグセットを構成するタグの最大数が、予め設定されていてもよい。類似度が閾値を超えるタグの数が規定数を超える場合、運用プログラム１２４は、類似度の順において、最も類似度が高いタグから規定数のタグを選択してもよい。運用プログラム１２４は、類似度閾値を参照することなく、類似度の順において、最も類似度が高いタグから規定数のタグを選択してもよい。
【００４１】
上述のように、意味表現モデル１２２を使用して高精度に入力画像に対応するタグセットを推定することができる。タグそれぞれのベクトルと意味表現ベクトルと比較することで、画像に関連付けるべきタグをより正確に推定することができる。
【００４２】
運用プログラム１２４は、複数タグからなるタグセットのベクトル、例えば、画像−タグ関連データベース１３４の各レコードのタグセットと、意味表現ベクトルとを比較してもよい。単一のタグは、単一タグからなるタグセットでもある。画像−タグ関連データベース１３４に代えて、タグのみを格納するデータベースが用意され、運用プログラム１２４は、そのデータベース内のタグのベクトルと意味表現ベクトルとを比較してもよい。
【００４３】
図６は、運用プログラム１２４による、入力タグセットに関連する画像をする処理のフローチャートを示す。運用プログラム１２４は、ユーザに入力されたタグセットを取得する（Ｓ１５１）。
【００４４】
運用プログラム１２４は、取得したタグセットから、ｗｏｒｄ  ｅｍｂｅｄｄｉｎｇモデルを使用して、ベクトル（タグセットベクトル）を生成する（Ｓ１５２）。運用プログラム１２４は、タグセットを構成するタグそれぞれのタグベクトルをｗｏｒｄ  ｅｍｂｅｄｄｉｎｇモデルにより生成し、それらを組み合わせることで、当該タグセットのタグセットベクトルを生成する。
【００４５】
例えば、運用プログラム１２４は、タグベクトルの単純平均値をタグセットベクトルと決定してもよく、タグベクトルの重みづけ平均をタグセットベクトルと決定してもよい。タグの重みは、例えば、画像−タグ関連データベース１３４におけるタグの出現頻度に応じて決定される。画像−タグ関連データベース１３４において関連付けられている画像の数が多いタグほど、大きい重みが与えられる。
【００４６】
次に、運用プログラム１２４は、画像−テキスト関連データベース１３２から画像を順次読み出し、意味表現モデル１２２によって、それらの意味表現ベクトルを生成する（Ｓ１５３）。運用プログラム１２４は、生成した意味表現ベクトルそれぞれと、ステップＳ１５２で生成したタグセットベクトルとの間の類似度を計算する（Ｓ１５４）。類似度の計算は、例えば、ドット積又はコサイン類似度を使用することができる。
【００４７】
運用プログラム１２４は、類似度に基づいて、対象タグセットに関連すると推定される画像を決定する（Ｓ１５５）。運用プログラム１２４は、例えば、類似度が閾値より高い画像を、タグセットに関連する画像として提示する画像と決定する。提示する画像の最大数が、予め設定されていてもよい。類似度が閾値を超える画像の数が規定数を超える場合、運用プログラム１２４は、類似度の順において、最も類似度が高い画像から規定数の画像を選択してもよい。運用プログラム１２４は、類似度閾値を参照することなく、類似度の順において、最も類似度が高い画像から規定数の画像を選択してもよい。
【００４８】
上述のように、意味表現モデル１２２を使用して、入力されたタグセットに関連する画像を高精度に推定することができる。ステップＳ１５３において、運用プログラム１２４は、画像−テキスト関連データベース１３２に代えて、画像−タグ関連データベース１３４を参照してもよい。運用プログラム１２４は、画像−タグ関連データベース１３４におけるレコードそれぞれのタグセットのタグセットベクトル生成し、ステップＳ１５２で生成したタグセットベクトルとの間の類似度を計算する。
【００４９】
次に、画像−タグ関連データ生成プログラム１２６により、画像−テキスト関連データベース１３２のデータから、画像−タグ関連データベース１３４に格納するデータを生成する処理を説明する。図７は、画像−タグ関連データ生成プログラム１２６による処理のフローチャートを示す。画像−タグ関連データ生成プログラム１２６は、図７に示す処理を定期的に、例えば、１週間に１回実行する。
【００５０】
画像−タグ関連データ生成プログラム１２６は、画像−タグ関連データベース１３４におけるタグの出現頻度分布を分析し、タグ分布テーブル５４７を生成する（Ｓ２０１）。タグの出現頻度は、画像−タグ関連データベース１３４において、当該タグに関連付けられている画像の数に等しい。
【００５１】
図８は、タグ分布テーブル５４７の構成例を示す。タグ分布テーブル５４７は、タグカラム４７１と画像の数カラム４７２とを含む。タグカラム４７１は、画像−タグ関連データベース１３４に格納されているタグを示す。画像の数カラム４７２は、タグそれぞれが画像−タグ関連データベース１３４において関連付けられている画像の数を示す。
【００５２】
図７に戻って、画像−タグ関連データ生成プログラム１２６は、タグ分布テーブル５４７を参照し、出現頻度が低いタグを選択する（Ｓ２０２）。例えば、画像−タグ関連データ生成プログラム１２６は、出現頻度の順において、出現頻度が最も低いタグから規定数のタグを選択する。画像−タグ関連データ生成プログラム１２６は、出現頻度が規定値より小さい全てのタグを選択してもよい。
【００５３】
画像−タグ関連データ生成プログラム１２６は、選択したいずれかのタグをテキスト内に含む、画像とテキストとの組（レコード）を、画像−テキスト関連データベース１３２から選択する（Ｓ２０３）。
【００５４】
画像−タグ関連データ生成プログラム１２６は、画像とテキストとの選択した各組において、画像と関連づけられているテキスト内の各単語との間の類似度を、マッチングモデル１２１を使用して、計算する（Ｓ２０４）。
【００５５】
具体的には、画像−タグ関連データ生成プログラム１２６は、画像の特徴ベクトルと各単語のベクトルを生成する。画像の特徴ベクトルは、例えば、予め訓練されている深層学習モデル（深層ニューラルネットワーク）によって、生成することができる。単語ベクトルは、上述のように、予め訓練されているｗｏｒｄ  ｅｍｂｅｄｄｉｎｇモデルにより生成される。
【００５６】
画像−タグ関連データ生成プログラム１２６は、生成した画像特徴ベクトルと一つの単語ベクトルをマッチングモデル１２１に入力する。マッチングモデル１２１は、入力された画像特徴ベクトルと単語ベクトルとの間の類似度を出力する。マッチングモデル１２１の処理の詳細は後述する。
【００５７】
画像−タグ関連データ生成プログラム１２６は、画像とテキストの各組において、画像との類似度に基づいて、テキストの単語のうちタグとして登録する単語を選択する（Ｓ２０５）。画像−タグ関連データ生成プログラム１２６は、例えば、類似度が閾値より高い単語を、画像のタグとして選択する。このように、単語は、画像との類似度によりランク付けされる。
【００５８】
選択できるタグの最大数は予め設定されていてもよい。画像−タグ関連データ生成プログラム１２６は、類似度が閾値より高い単語から、類似度の順で、最も類似度が高い単語から１又は複数単語を、規定最大数を限度に選択する。選択できるタグの数は予め設定されていてもよい。画像−タグ関連データ生成プログラム１２６は、類似度の順において、類似度が最も高い単語から規定数の単語を選択する。
【００５９】
タグとして選択した１又は複数の単語が、画像を表す（画像に関連付けられる）タグセットを構成する。画像−タグ関連データ生成プログラム１２６は、画像と選択したタグセットとの組を、画像−タグ関連データベース１３４に追加する（Ｓ２０６）。
【００６０】
上述のように、画像に実際に関連付けられているテキストからタグを選択することで、画像に関連するタグをより高精度に決定することができる。後述するように、画像−タグ関連データベース１３４は、意味表現モデル１２２の訓練に使用され、意味表現モデル１２２を適切に訓練することができる。また、訓練により改善されるマッチングモデル１２１を使用することで、画像−タグ関連データベース１３４に追加するより適切なデータを生成できる。
【００６１】
タグ分布テーブル５４７に基づき画像−タグ関連データベース１３４に追加する画像を決定することで、画像−タグ関連データベース１３４内のタグの出現頻度分布がより均一に近づけることができる。関連付けられているテキストに低頻度のタグを含む画像を選択することで、低頻度タグが関連づけられる画像を選択する可能性を高めることができる。
【００６２】
これにより、関連タグセットが一般にレアな画像（レア画像）のデータを、画像−タグ関連データベース１３４に含め、レア画像についても正確にタグセットの推定をできるように意味表現モデル１２２を訓練できる。レア画像は、関連付けられるタグセットが出現頻度の低いタグを含む、又は、そのタグセットを構成するタグの組み合わせの出現頻度が低い、画像である。
【００６３】
図９は、訓練プログラム１２３による、マッチングモデル１２１の訓練（学習）の方法を示すフローチャートである。図１０は、訓練におけるマッチングモデル１２１の処理のフローチャートである。訓練プログラム１２３は、図９を参照して説明する処理を、画像−タグ関連データベース１３４内の異なる画像について繰り返す。
【００６４】
図９を参照して、訓練プログラム１２３は、画像−タグ関連データベース１３４から、画像を選択し、その画像の特徴ベクトルを生成する（Ｓ２２１）。上述のように、画像の特徴ベクトルは、例えば、予め訓練されている深層学習モデル（深層ニューラルネットワーク）によって、生成することができる。
【００６５】
次に、訓練プログラム１２３は、選択した画像に関連づけられているタグセットを画像−タグ関連データベース１３４から取得し、当該タグセットのベクトル（関連タグセットベクトル）を生成する（Ｓ２２２）。関連タグセットベクトルの生成は、図６を参照して説明したタグセットベクトルの生成（Ｓ１５２）と同様である。
【００６６】
次に、訓練プログラム１２３は、画像−タグ関連データベース１３４から、選択した画像に関連付けられていない複数のタグをサンプリングする（Ｓ２２３）。訓練プログラム１２３は、さらに、サンプリングしたタグそれぞれのベクトル（無関連タグベクトル）を生成する（Ｓ２２４）。無関連タグベクトルは、例えば、上述のように、ｗｏｒｄ  ｅｍｂｅｄｄｉｎｇモデルを使用して生成される。
【００６７】
各タグのベクトルに代えて又は加えて、複数のタグからなるタグセットのベクトルを生成してもよい。例えば、画像−タグ関連データベース１３４の各レコードのタグセットのであって、選択した画像と関連付けられていない１以上のタグを含む、又は、選択した画像と関連付けられていないタグからなる、タグセットのベクトルを生成してもよい。無関連タグのベクトルは、一つのタグからなるタグセットのベクトルでもある。
【００６８】
訓練プログラム１２３は、マッチングモデル１２１に、上記生成した画像特徴ベクトル、関連タグセットベクトル、及び無関連タグベクトルを入力する（Ｓ２２５）。具体的には、訓練プログラム１２３は、画像特徴ベクトル及び関連タグセットベクトルのペア、並びに、画像特徴ベクトル及び無関連タグベクトルそれぞれのペアを、マッチングモデル１２１に順次入力する。
【００６９】
マッチングモデル１２１は、入力された二つのベクトルの間の類似度を出力する。したがって、訓練プログラム１２３は、画像特徴ベクトルと関連タグセットベクトルの間の類似度、及び、画像特徴ベクトルと無関連タグベクトルそれぞれとの間の類似度、を取得する（Ｓ２２６）。
【００７０】
マッチングモデル１２１は、取得した類似度に基づいて、マッチングモデル１２１を更新する（Ｓ２２７）。マッチングモデル１２１は、マッチングモデル１２１の出力の損失が小さくなるように、マッチングモデル１２１を更新（訓練）する。例えば、ヒンジ損失関数が使用される。
【００７１】
例えば、マッチングモデル１２１は、ｍａｘ（０、ｍ＋ｓｉｍ（ｘ、ｙ´）−ｓｉｍ（ｘ、ｙ））を最小化するように、マッチングモデル１２１を訓練する。ここで、ｓｉｍは、類似度を示し、ｍは、予め設定されているマージンである。ｘは、画像特徴ベクトル、ｙは関連タグセットベクトル、ｙ´は、無関連タグベクトルである。
【００７２】
図１０は、訓練におけるマッチングモデル１２１の処理のフローチャートである。マッチングモデル１２１は、入力データとして、画像特徴ベクトルを取得する（Ｓ２５１）。マッチングモデル１２１は、入力データとして、無関連タグベクトル又は関連タグセットベクトルを取得する（Ｓ２５２）。
【００７３】
マッチングモデル１２１は、入力された画像特徴ベクトルを共通空間に写像する（Ｓ２５３）。マッチングモデル１２１は、さらに、入力された無関連タグベクトル又は関連タグセットベクトルを、その共通空間に写像する（Ｓ２５４）。画像特徴ベクトルとタグ又はタグセットベクトルの次元は異なりえる。共通空間への写像において、これらが一致される。入力されたベクトルの共通空間への写像は、深層学習モデル（深層ニューラルネットワーク）により実行され得る。深層学習モデルのパラメータは、訓練プログラム１２３による訓練により更新される。
【００７４】
マッチングモデル１２１は、共通空間内において、画像特徴ベクトルと無関連タグベクトル又は関連タグセットベクトルとの間の類似度を計算する（Ｓ２５５）。類似度は、例えば、ドット積又はコサイン類似度で定義される。なお、正準相関分析（ＣＣＡ：Ｃａｎｏｎｉｃａｌ  Ｃｏｒｒｅｌａｔｉｏｎ  Ａｎａｌｙｓｉｓ）を、マッチングモデル１２１に適用することができる。
【００７５】
図１１は、意味表現モデル１２２に構成例を模式的に示す。意味表現モデル１２２は、オートエンコーダの構成を有する。意味表現モデル１２２は、深層学習モデル（深層ニューラルネットワーク）で構成できる。意味表現モデル１２２は、エンコーダ２２１及びデコーダ２２２を含む。
【００７６】
エンコーダ２２１とデコーダ２２２とは、例えば、それらの出力及び入力（意味表現ベクトル２２５）を中心として、対称の構造を有する。これにより、意味表現モデル１２２を効率的に訓練することができる。エンコーダ２２１とデコーダ２２２とは、例えば、複数層のＣＮＮ（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）及び１又は複数層の全結合層を含む。
【００７７】
エンコーダ２２１は、入力された画像２２７を、意味表現ベクトル２２５にエンコードして、出力する。デコーダ２２２は、入力された意味表現ベクトル２２５を再構築画像２２８にデコードして、出力する。図５及び６を参照して説明したように、エンコーダ２２１から出力された意味表現ベクトル２２５は、運用プログラム１２４に利用される。後述するように、再構築画像２２８と入力画像２２７との差異が小さくなるように、意味表現モデル１２２は訓練される。
【００７８】
図１２Ａ及び１２Ｂを参照して、意味表現モデル１２２の訓練を説明する。図１２Ａは、意味表現モデル１２２の訓練における入力データ及び出力データを示す。画像−タグ関連データベース１３４から選択された画像２２７がエンコーダ２２１に入力される。デコーダ２２２は、エンコーダ２２１から出力された意味表現ベクトル２２５を入力として受け付けて、再構築画像２２８を出力する。
【００７９】
意味表現モデル１２２の訓練は、エンコーダ２２１の出力である、意味表現ベクトル２２５に対して、制約を与える。制約の例は後述する。意味表現ベクトル２２５に対して制約を与えるために、画像−タグ関連データベース１３４において入力画像２２７に関連付けられているタグセットが参照される。
【００８０】
エンコーダ２２１から出力された意味表現ベクトル２２５と、入力画像２２７に関連付けられている関連タグセットベクトルとの間の誤差が、意味表現モデル１２２の訓練において使用される。さらに、再構築画像２２８と入力画像２２７との間の誤差が、意味表現モデル１２２の訓練において使用される。
【００８１】
意味表現ベクトル２２５の訓練において、自己復元性（再構築画像２２８と入力画像２２７との間の誤差）を考慮することで、入力画像２２７を再現するのに十分な情報量を確保しようとする方向に力が働く。これにより、意味表現モデル１２２の訓練における過度の縮退（汎化）が抑制され、出現頻度が小さいレアなタグ又はタグセットであっても、画像の特徴として重要なタグ又はタグセットが、ノイズとして切り捨てられることを防ぐことができる。
【００８２】
図１２Ｂは、訓練プログラム１２３による、意味表現モデル１２２の訓練のフローチャートである。訓練プログラム１２３は、図１２を参照して説明する処理を、画像−タグ関連データベース１３４内の異なる画像について繰り返す。
【００８３】
訓練プログラム１２３は、画像−タグ関連データベース１３４から、画像を選択する（Ｓ３０１）。訓練プログラム１２３は、画像−タグ関連データベース１３４から、選択した画像に関連づけられているタグセットを取得し、そのベクトル（関連タグセットベクトル）を生成する（Ｓ３０２）。関連タグセットベクトルの生成は、図６を参照して説明したタグセットベクトルの生成（Ｓ１５２）と同様である。
【００８４】
訓練プログラム１２３は、選択した画像（入力画像２２７）を意味表現モデル１２２のエンコーダ２２１に入力する（Ｓ３０３）。訓練プログラム１２３は、意味表現モデル１２２から、出力画像（再構築画像）２２８及び意味表現ベクトル２２５を取得する（Ｓ３０４）。
【００８５】
訓練プログラム１２３は、入力画像と出力画像の誤差、及び、意味表現ベクトルと関連タグベクトルとの誤差に基づいて、意味表現モデル１２２を更新する。訓練プログラム１２３は、例えば、｜｜ｘ−ｘ´｜｜＋￥ｌａｍｂｄａ｜｜ｓ−ｗ｜｜が小さくなるように、意味表現モデル１２２のパラメータを更新する。意味表現ベクトル２５５に対する制約は、意味表現ベクトルと関連タグベクトルとの誤差を小さくすることである。
【００８６】
ｘ及びｘ´は、それぞれ、入力画像及び出力画像（再構築画像）である。￥ｌａｍｂｄａはバランシングパラメータであり、ｓは意味表現ベクトル、ｗは関連タグセットベクトルである。エンコーダ２２１をｆ、デコーダをｆ´と表わす。ｓ＝ｆ（ｘ）、ｘ´＝ｆ´（ｆ（ｘ））である。
【００８７】
意味表現モデル１２２の訓練における、意味表現ベクトル２２５に対する制約の他の例を説明する。訓練プログラム１２３は、画像−タグ関連データベース１３４から、選択画像と関連付けられているタグセット、及び、選択画像と関連付けられていないタグを含む又は関連付けられていないタグからなるタグセットを選択し、そのタグセットを表すベクトル（関連タグセットベクトル）を生成する。
【００８８】
入力画像の意味表現ベクトルをｚ、入力画像の関連タグセットベクトルをｙ、入力画像に関連しない無関連タグセットベクトルをｙ´と表わす。関連タグセットベクトルｙと無関連タグセットベクトルをｙ´との類似度は、関連タグセットベクトルｙと関連タグセットベクトルｙ（同一ベクトル）との類似度より小さい。
【００８９】
意味表現モデル１２２の訓練における意味表現ベクトル２２５に対する制約の例は、Ｌ２（ｙ、ｚ）＜Ｌ２（ｙ´、ｚ）である。Ｌ２は、ベクトル空間におけるユークリッド距離である。なお、複数の無関連タグセットベクトルを形成して、複数の不等号式を制約に含めてもよい。
【００９０】
意味表現モデル１２２の訓練における、意味表現ベクトル２２５に対する制約の他の例を説明する。訓練プログラム１２３は、画像−タグ関連データベース１３４から、入力画像のタグセットとの類似度が異なるタグセットの画像を選択する。例えば、訓練プログラム１２３は、入力画像とタグセットが近似する画像（近似画像）として、例えば、一つのタグ以外のタグが入力画像に共通である画像を選択する。
【００９１】
訓練プログラム１２３は、さらに、画像−タグ関連データベース１３４から、入力画像と、タグが完全に異なる画像（非類似画像）を選択する。入力画像に関連付けられているいずれのタグも、非類似画像に関連付けられていない。
【００９２】
入力画像の意味表現ベクトルをｚ１、近似画像の意味表現ベクトルをｚ２、非類似画像の意味表現ベクトルをｚ３とする。意味表現モデル１２２の訓練における意味表現ベクトル２２５に対する制約の例は、Ｌ２（ｚ１、ｚ２）＜Ｌ２（ｚ１、ｚ３）である。なお、複数の近似画像及び／又は複数の非類似画像を選択して、複数の不等号式を制約に含めてもよい。
【００９３】
上述のような意味表現ベクトル２２５に対する制約により、意味表現モデル１２２が入力画像に関連すべきタグセットを表す意味表現ベクトルを生成するように適切に訓練することができる。
【００９４】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００９５】
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード等の記録媒体に置くことができる。
【００９６】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００９７】
１００  タグ推定装置 、１１０  プロセッサ、１２０  メモリ、１２１  マッチングモデル、１２２  意味表現モデル、１２３  訓練プログラム、１２４  運用プログラム、１２５  データクローラプログラム、１２６  、１３０  補助記憶装置、１３２  画像−テキスト関連データベース、１３４  画像−タグ関連データベース、１４４  クライアント装置、１４５  ネットワークインタフェース、２２１  エンコーダ、２２２  デコーダ、２２５  意味表現ベクトル、２２６  制約、２２７  入力画像、２２８  再構築画像、５４７  タグ分布テーブル
【図１】
2019144639.tif 000003
【図２】
2019144639.tif 000004
【図３】
2019144639.tif 000005
【図４Ａ】
2019144639.tif 000006
【図４Ｂ】
2019144639.tif 000007
【図５】
2019144639.tif 000008
【図６】
2019144639.tif 000009
【図７】
2019144639.tif 000010
【図８】
2019144639.tif 000011
【図９】
2019144639.tif 000012
【図１０】
2019144639.tif 000013
【図１１】
2019144639.tif 000014
【図１２Ａ】
2019144639.tif 000015
【図１２Ｂ】
2019144639.tif 000016