(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025009178
(43)【公開日】2025-01-20
(54)【発明の名称】コンテンツラベル付与装置、コンテンツラベル付与方法、コンテンツラベル付与プログラム、モデル学習装置、モデル学習方法、及びモデル学習プログラム
(51)【国際特許分類】
G06N 3/045 20230101AFI20250110BHJP
G06N 20/20 20190101ALI20250110BHJP
G06N 3/09 20230101ALI20250110BHJP
【FI】
G06N3/045
G06N20/20
G06N3/09
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023111996
(22)【出願日】2023-07-07
(71)【出願人】
【識別番号】500257300
【氏名又は名称】LINEヤフー株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】三好 利昇
(72)【発明者】
【氏名】田中 智大
(57)【要約】
【課題】アテンション構造を用いたモデルを適切に学習する。
【解決手段】本願に係るコンテンツラベル付与装置は、コンテンツデータとそのデータに付与された正解ラベルを用いてモデルを学習し、学習済モデルを生成するモデル学習部と、推論対象のデータに対して、前記モデル学習部により学習された前記モデルを用いてコンテンツの予測ラベルを生成する推論部と、を備え、前記モデル学習部は、第1部分モデルと、前記第1部分モデルよりも経時的な変化が大きく、単方向アテンション構造を有する第2部分モデルを含み、前記単方向アテンション構造においては、前記第1部分モデルの隠れ状態と前記第2部分モデルの隠れ状態を用いて、前記第2部分モデルの隠れ状態をエンコードする前記モデルを学習することを特徴とする。
【選択図】
図1
【特許請求の範囲】
【請求項1】
コンテンツデータとそのデータに付与された正解ラベルを用いてモデルを学習し、学習済モデルを生成するモデル学習部と、
推論対象のデータに対して、前記モデル学習部により学習された前記モデルを用いてコンテンツの予測ラベルを生成する推論部と、
を備え、
前記モデル学習部は、
第1部分モデルと、前記第1部分モデルよりも経時的な変化が大きく、単方向アテンション構造を有する第2部分モデルを含み、前記単方向アテンション構造においては、前記第1部分モデルの隠れ状態と前記第2部分モデルの隠れ状態を用いて、前記第2部分モデルの隠れ状態をエンコードする前記モデルを学習する
ことを特徴とするコンテンツラベル付与装置。
【請求項2】
前記モデルは、前記第1部分モデルの隠れ状態の次元数と前記第2部分モデルの次元数が異なるモデルを含み、前記単方向アテンション構造を計算する前に、前記第1部分モデルの隠れ状態を、前記第1部分モデルの隠れ状態の次元数から前記第2部分モデルの次元数に学習可能なパラメータをもつ線形変化を適用することにより、次元変換を行う
ことを特徴とする請求項1に記載のコンテンツラベル付与装置。
【請求項3】
前記モデルは、前記第1部分モデルにおいて、アテンション構造をもつ
ことを特徴とする請求項1に記載のコンテンツラベル付与装置。
【請求項4】
前記モデル学習部は、
前記第2部分モデルにおいて、アテンション構造を計算する複数の層をもち、その層の一部の層を選択し、前記第1部分モデルのいずれかの隠れ状態との対応付けを行い、選択された層について、単方向アテンションを計算し、選択された層以外の層については、前記第2部分モデルの隠れ状態のみを用いたアテンションを計算する
ことを特徴とする請求項1に記載のコンテンツラベル付与装置。
【請求項5】
前記モデル学習部は、
前記第2部分モデルで様々なタイプのデータを扱うために、トークンに、データのパターンの違いを区別する属性タイプを埋め込む
ことを特徴とする請求項1に記載のコンテンツラベル付与装置。
【請求項6】
前記モデルは、前記第2部分モデルにおいてクラストークンのみをもつ
ことを特徴とする請求項1に記載のコンテンツラベル付与装置。
【請求項7】
前記モデル学習部は、
前記第2部分モデルにおけるトークンとして、ユーザIDを用いる
ことを特徴とする請求項1に記載のコンテンツラベル付与装置。
【請求項8】
前記モデル学習部は、
前記第2部分モデルにおいて、ユーザIDを分割して、複数のトークンとして用いる
ことを特徴とする請求項1に記載のコンテンツラベル付与装置。
【請求項9】
コンテンツデータとそのデータに付与された正解ラベルを用いてモデルを学習し、学習済モデルを生成するモデル学習工程と、
推論対象のデータに対して、前記モデル学習工程により学習された前記モデルを用いてコンテンツの予測ラベルを生成する推論工程と、
を含み、
前記モデル学習工程は、
第1部分モデルと、前記第1部分モデルよりも経時的な変化が大きく、単方向アテンション構造を有する第2部分モデルを含み、前記単方向アテンション構造においては、前記第1部分モデルの隠れ状態と前記第2部分モデルの隠れ状態を用いて、前記第2部分モデルの隠れ状態をエンコードする前記モデルを学習する
ことを特徴とするコンテンツラベル付与方法。
【請求項10】
コンテンツデータとそのデータに付与された正解ラベルを用いてモデルを学習し、学習済モデルを生成するモデル学習手順と、
推論対象のデータに対して、前記モデル学習手順により学習された前記モデルを用いてコンテンツの予測ラベルを生成する推論手順と、
をコンピュータに実行させ、
前記モデル学習手順は、
第1部分モデルと、前記第1部分モデルよりも経時的な変化が大きく、単方向アテンション構造を有する第2部分モデルを含み、前記単方向アテンション構造においては、前記第1部分モデルの隠れ状態と前記第2部分モデルの隠れ状態を用いて、前記第2部分モデルの隠れ状態をエンコードする前記モデルを学習する
ことを特徴とするコンテンツラベル付与プログラム。
【請求項11】
コンテンツデータとそのデータに付与された正解ラベルを用いてモデルを学習し、学習済モデルを生成するモデル学習部と、
推論対象のデータに対して、前記モデル学習部により学習された前記モデルを用いてコンテンツの予測ラベルを生成する推論部と、
を備え、
前記モデル学習部は、
第1部分モデルと、前記第1部分モデルよりも経時的な変化が大きく、単方向アテンション構造を有する第2部分モデルを含み、前記単方向アテンション構造においては、前記第1部分モデルの隠れ状態と前記第2部分モデルの隠れ状態を用いて、前記第2部分モデルの隠れ状態をエンコードする前記モデルを学習する
ことを特徴とするモデル学習装置。
【請求項12】
前記モデルは、前記第1部分モデルの隠れ状態の次元数と前記第2部分モデルの次元数が異なるモデルを含み、前記単方向アテンション構造を計算する前に、前記第1部分モデルの隠れ状態を、前記第1部分モデルの隠れ状態の次元数から前記第2部分モデルの次元数に学習可能なパラメータをもつ線形変化を適用することにより、次元変換を行う
ことを特徴とする請求項11に記載のモデル学習装置。
【請求項13】
前記モデルは、前記第1部分モデルにおいて、アテンション構造をもつ
ことを特徴とする請求項11に記載のモデル学習装置。
【請求項14】
前記モデル学習部は、
前記第2部分モデルにおいて、アテンション構造を計算する複数の層をもち、その層の一部の層を選択し、前記第1部分モデルのいずれかの隠れ状態との対応付けを行い、選択された層について、単方向アテンションを計算し、選択された層以外の層については、前記第2部分モデルの隠れ状態のみを用いたアテンションを計算する
ことを特徴とする請求項11に記載のモデル学習装置。
【請求項15】
前記モデル学習部は、
前記第2部分モデルで様々なタイプのデータを扱うために、トークンに、データのパターンの違いを区別する属性タイプを埋め込む
ことを特徴とする請求項11に記載のモデル学習装置。
【請求項16】
前記モデルは、前記第2部分モデルにおいてクラストークンのみをもつ
ことを特徴とする請求項11に記載のモデル学習装置。
【請求項17】
前記モデル学習部は、
前記第2部分モデルにおけるトークンとして、ユーザIDを用いる
ことを特徴とする請求項11に記載のモデル学習装置。
【請求項18】
前記モデル学習部は、
前記第2部分モデルにおいて、ユーザIDを分割して、複数のトークンとして用いる
ことを特徴とする請求項11に記載のモデル学習装置。
【請求項19】
コンテンツデータとそのデータに付与された正解ラベルを用いてモデルを学習し、学習済モデルを生成するモデル学習工程と、
推論対象のデータに対して、前記モデル学習工程により学習された前記モデルを用いてコンテンツの予測ラベルを生成する推論工程と、
を含み、
前記モデル学習工程は、
第1部分モデルと、前記第1部分モデルよりも経時的な変化が大きく、単方向アテンション構造を有する第2部分モデルを含み、前記単方向アテンション構造においては、前記第1部分モデルの隠れ状態と前記第2部分モデルの隠れ状態を用いて、前記第2部分モデルの隠れ状態をエンコードする前記モデルを学習する
ことを特徴とするモデル学習方法。
【請求項20】
コンテンツデータとそのデータに付与された正解ラベルを用いてモデルを学習し、学習済モデルを生成するモデル学習手順と、
推論対象のデータに対して、前記モデル学習手順により学習された前記モデルを用いてコンテンツの予測ラベルを生成する推論手順と、
をコンピュータに実行させ、
前記モデル学習手順は、
第1部分モデルと、前記第1部分モデルよりも経時的な変化が大きく、単方向アテンション構造を有する第2部分モデルを含み、前記単方向アテンション構造においては、前記第1部分モデルの隠れ状態と前記第2部分モデルの隠れ状態を用いて、前記第2部分モデルの隠れ状態をエンコードする前記モデルを学習する
ことを特徴とするモデル学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンテンツラベル付与装置、コンテンツラベル付与方法、コンテンツラベル付与プログラム、モデル学習装置、モデル学習方法、及びモデル学習プログラムに関する。
【背景技術】
【0002】
非特許文献1には、画像と言語のマルチモーダルなTransformerを用いた機械学習方法について記載されている。この方法によって、画像と言語の両方のトークンを用いたセルフアテンション構造によって、画像と言語の間のクロスモーダルの関係を学習できる。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Wonjae Kim, Bokyung Son, and Ildoo Kim. ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision. ICML, pages 5583-5594, 2021.
【発明の概要】
【発明が解決しようとする課題】
【0004】
画像や言語などの他に、ユーザデータやシステムデータなどの属性情報を用いた学習を行う場合に、画像や言語と比べて、属性情報などは時間的な変化が大きく、高頻度で再学習することが望ましい。しかし、画像や言語も含めたセルフアテンション構造を用いたモデルの再学習には大きな計算量が必要となる。
【0005】
また、言語と画像、属性情報が紐づいたマルチモーダルの学習データが必要となるが、このような複数のモーダルのデータが相互に紐づいたデータは、言語のみのデータなど単独モーダルのデータに比べて少ないため、セルフアテンション構造の学習に十分なデータ量が準備できない場合がある。
【0006】
本願は、上記に鑑みてなされたものであって、アテンション構造を用いたモデルを適切に学習することを目的とする。
【課題を解決するための手段】
【0007】
本願に係るコンテンツラベル付与装置は、コンテンツデータとそのデータに付与された正解ラベルを用いてモデルを学習し、学習済モデルを生成するモデル学習部と、推論対象のデータに対して、前記モデル学習部により学習された前記モデルを用いてコンテンツの予測ラベルを生成する推論部と、を備え、前記モデル学習部は、第1部分モデルと、前記第1部分モデルよりも経時的な変化が大きく、単方向アテンション構造を有する第2部分モデルを含み、前記単方向アテンション構造においては、前記第1部分モデルの隠れ状態と前記第2部分モデルの隠れ状態を用いて、前記第2部分モデルの隠れ状態をエンコードする前記モデルを学習することを特徴とする。
【発明の効果】
【0008】
実施形態の一態様によれば、アテンション構造を用いたモデルを適切に学習することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施形態に係るコンテンツラベル付与装置の構成例を示す図である。
【
図2】
図2は、ハードウェア構成の一例を示す図である。
【
図3A】
図3Aは、画像データに対する前処理の流れの一例を示す図である。
【
図3B】
図3Bは、テキストデータに対する学習データ前処理部の処理の流れの一例を示す図である。
【
図3C】
図3Cは、属性データに対する学習データ前処理部の処理の流れの一例を示す図である。
【
図3D】
図3Dは、正解ラベルに対する学習データ前処理部の処理の流れの一例を示す図である。
【
図4】
図4は、順伝播の処理を説明するための図である。
【
図5】
図5は、画像エンコーダー、テキストエンコーダーの処理の例を示す図である。
【
図6】
図6は、MLPの処理の一例を示す図である。
【
図7】
図7は、属性エンコーダーの処理の例を示す図である。
【
図8】
図8は、属性エンコーダーの処理の他の例を示す図である。
【
図9】
図9は、パッチ分割および画像トークン生成の一例を示す図である。
【
図10】
図10は、テキストデータに対する学習データ前処理部の処理の一例を示す図である。
【
図11】
図11は、属性トークンの生成の一例を示す図である。
【
図12】
図12は、画像、テキストの事前学習モデルの処理の例を示す図である。
【発明を実施するための形態】
【0010】
以下に、本願に係るコンテンツラベル付与装置、コンテンツラベル付与方法、コンテンツラベル付与プログラム、モデル学習装置、モデル学習方法、及びモデル学習プログラムを実施するための形態(以下、「実施形態」と記載する)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係るコンテンツラベル付与装置、コンテンツラベル付与方法、コンテンツラベル付与プログラム、モデル学習装置、モデル学習方法、及びモデル学習プログラムが限定されるものではない。また、以下の実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0011】
〔実施形態〕
以下では、広告などのコンテンツにラベルを付与する装置を一例として、本発明の実施形態について説明する。コンテンツに付与されたラベルは、例えば、広告の配信先を制御するための情報として用いることができる。なお、本実施例では、コンテンツにラベルを付与する例で説明するが、学習データを変更して学習のターゲットを変えることにより、予測、分類などの各種機械学習にも適用することができる。
【0012】
図1は、実施形態に係るコンテンツラベル付与装置の構成例を示す図である。具体的には、
図1は、コンテンツラベル付与装置101の構成を示す図である。コンテンツラベル付与装置101は、以下に示す各種の情報処理を実行する情報処理装置(コンピュータ)である。例えば、コンテンツラベル付与装置101は、後述する学習済モデル111等の各種モデルを学習する処理(学習処理)を実行するモデル学習装置である。また、例えば、コンテンツラベル付与装置101は、学習済モデル111等の各種モデルを用いた推論処理を実行する推論処理装置である。
【0013】
なお、以下では、学習処理及び推論処理の両方をコンテンツラベル付与装置101が行う場合を一例として説明するが、学習処理と推論処理とは各々異なる装置で実行されてもよい。すなわち、学習処理を実行するモデル学習装置と、モデルを用いた推論処理を実行する推論処理装置とは別体であってもよい。この場合、モデル学習装置が後述するモデル生成部106の機能を有し、推論処理装置が後述する推論部112の機能を有してもよい。
【0014】
ここから、
図1に示す学習処理及び推論処理の両方を実行するコンテンツラベル付与装置101を一例として各種情報及び処理等について説明する。コンテンツラベル付与装置101は、画像データ102、テキストデータ103、属性データ104、正解ラベル105を有する。画像データ102、テキストデータ103、属性データ104、正解ラベル105(以下、「学習データ」と総称する場合がある。)は、ラベルを付与するモデルを学習するためのデータである。
【0015】
コンテンツラベル付与装置101は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される記憶部を有する。例えば、画像データ102、テキストデータ103、属性データ104、正解ラベル105等の学習データは、記憶部に記憶される。
【0016】
画像データ102は、広告などのコンテンツに含まれる(コンテンツを構成する)画像のデータである。テキストデータ103は、画像データと同様に、コンテンツに含まれるテキストのデータであり、画像データに付随するテキストデータ(すなわち、画像と同一のコンテンツに含まれるテキストデータ)である。例えば、テキストデータ103は、画像内のテキストをOCR(Optical Character Recognition/Reader)で抽出したテキストや、画像とともに表示されるテキスト、広告画像リンク先Webページのテキスト、広告に関する説明文などである。また、属性データ104は、広告依頼主やユーザの属性情報、広告に関する属性データ、特徴量などである。正解ラベル105は、個々のコンテンツに予め付与された正解のラベルである。なお、このような学習データは、同一のコンテンツに含まれるものが対応付けられているものとする。
【0017】
モデル生成部106は、画像データ102、テキストデータ103、属性データ104、正解ラベル105に基づいて、ラベルを付与する学習済モデル111を生成する。また、モデル生成部106は、学習を効率化するために、事前学習済の事前学習済画像モデル109と事前学習済言語モデル110を用いてもよい。例えば、コンテンツラベル付与装置101は、事前学習済画像モデル109及び事前学習済言語モデル110を記憶部に記憶してもよい。
【0018】
モデル生成部106は、学習データ前処理部107とモデル学習部108とを含む。学習データ前処理部107は、学習データをベクトルに変換する。モデル学習部108は、学習データ前処理部107の出力と、事前学習済画像モデル109、事前学習済言語モデル110を用いて、学習済モデル111を生成する。例えば、コンテンツラベル付与装置101は、学習済モデル111を記憶部に記憶してもよい。
【0019】
推論部112は、学習済モデル111を用いて、入力された予測対象のコンテンツのデータにラベルを付与する。推論部112では、推論データ前処理部113と推論処理部114とを含む。推論データ前処理部113は、予測対象のコンテンツのデータをベクトルの形式に変換する。推論処理部114は、推論データ前処理部113の出力と学習済モデル111を用いて、コンテンツの予測ラベルを出力する。
【0020】
入出力部115は、予測対象のデータを入力装置や通信装置を介して受け取り、予測ラベルを出力装置や通信装置を介して出力する。例えば、通信装置は、NIC(Network Interface Card)等によって実現され、ネットワークと有線または無線で接続され、他の情報処理装置との間で情報の送受信を行う。また、入出力部115により入出力される各種データは、上述した記憶部等の各種の記憶装置に記録されてもよい。例えば、コンテンツデータや予測ラベルは、上述した記憶部等の各種の記憶装置に記録されてもよい。入出力部は、例えば、API(Application Programming Interface)の形式で通信を介して、データ送受信を行う形式でもよいし、別システムとの連携や、キーボードやディスプレイなどを介したユーザ入出力でもよい。
【0021】
データ入力部116は、予測対象のデータを入力装置や通信装置を介して受け取り、推論データ前処理部113に送信する。また、ラベル出力部117は、推論処理部114から予測ラベルを受け取り、出力装置や通信装置を介して出力する。
【0022】
例えば、コンテンツラベル付与装置101は、GPU(Graphics Processing Unit)、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等によって、コンテンツラベル付与装置101内部の記憶装置に記憶されている各種プログラム(モデル学習プログラムや推論プログラム等の情報処理プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される制御部を有する。例えば、制御部は、モデル生成部106、推論部112、及び入出力部115を有し、モデル生成部106、推論部112、及び入出力部115の各々に対応する情報処理の機能や作用を実現または実行する。
【0023】
図2に、
図1のコンテンツラベル付与装置101の処理を実現するハードウェア構成の一例を示す。
図2は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力I/F(Interface)1060、入力I/F1070、ネットワークI/F1080がバス1090により接続された形態を有する。
【0024】
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。演算装置1030は、例えばGPU、CPU、MPU等のプロセッサーにより実現される。なお、演算装置1030は、所望の演算処理を実行可能であれば任意の構成が採用可能であり、プロセッサーに限らず、例えばASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
【0025】
一次記憶装置1040は、RAM等、演算装置1030が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等により実現される。二次記憶装置1050は、内蔵ストレージであってもよいし、外付けストレージであってもよい。また、二次記憶装置1050は、USB(Universal Serial Bus)メモリやSD(Secure Digital)メモリカード等の取り外し可能な記憶媒体であってもよい。また、二次記憶装置1050は、クラウドストレージ(オンラインストレージ)やNAS(Network Attached Storage)、ファイルサーバ等であってもよい。
【0026】
出力I/F1060は、ディスプレイ、プロジェクタ、及びプリンタ等といった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインターフェースであり、例えば、USBやDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力I/F1070は、マウス、キーボード、キーパッド、ボタン、及びスキャナ等といった各種の入力装置1020から情報を受信するためのインターフェースであり、例えば、USB等により実現される。
【0027】
また、出力I/F1060及び入力I/F1070はそれぞれ出力装置1010及び入力装置1020と無線で接続してもよい。すなわち、出力装置1010及び入力装置1020は、ワイヤレス機器であってもよい。
【0028】
また、出力装置1010及び入力装置1020は、タッチパネルのように一体化していてもよい。この場合、出力I/F1060及び入力I/F1070も、入出力I/Fとして一体化していてもよい。
【0029】
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、又は半導体メモリ等から情報を読み出す装置であってもよい。
【0030】
ネットワークI/F1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
【0031】
演算装置1030は、出力I/F1060や入力I/F1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
【0032】
例えば、コンピュータ1000がコンテンツラベル付与装置101として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、後述する各種の機能を実現する。
【0033】
なお、
図2の各構成要素は、実施方法によって、任意の構成が採用可能である。また、
図1の各処理は、単一の計算装置ではなく、複数の計算装置で実施してもよい。特にモデルの学習は、複数の計算装置を用いて並列分散処理を行うと短時間で学習を実施することができ、効率的である。また、データなどは、データベースサーバーなどに配置しておき、必要に応じて、通信装置を介して送受信してもよい。
【0034】
続いて、
図1に戻り、コンテンツラベル付与装置101が実行する各処理の詳細について説明する。コンテンツラベル付与装置101は、以下に示す各処理を実行する。
【0035】
学習データ前処理部107は、画像データ102、テキストデータ103、属性データ104、正解ラベル105に前処理を施す。
図3A~
図3Dを用いて、学習データ前処理部107が実行する前処理の流れの一例について説明する。なお、
図3A~
図3Dには、画像、テキスト、属性、正解ラベル、それぞれの処理ステップを示した。以下では、ひとつのコンテンツに対応して、ひとつの画像、ひとつの文章(文または複数の文)、そのコンテンツに対する属性データが、紐づいているとする。
【0036】
図3Aは、画像データに対する前処理の流れの一例を示す図である。画像取得301では、記憶装置等に保存されているデータベースなどから画像データ102を取得する。続いて、画像前処理302では、画像取得301により取得された画像に対して、前処理を実施する。画像前処理302では、画像を複製して並べて1枚の画像とするタイル処理や、学習の頑健性を高めるためのノイズ付加処理や、画像の一部をランダムに切り抜くクロップ処理などを実施してもよい。また、画像前処理302では、必要がなければ、なにもしなくともよい。画像前処理302では、前処理後の画像を出力する。
【0037】
画像正規化303では、画像前処理302で出力された前処理後の画像を、拡大縮小などの方法により、所定の縦横サイズに変形する。以下では、このときに生成される画像のチャネル数をC、縦方向のピクセル数をH、横方向のピクセル数をWとする。例えば、RGBのカラー画像の場合には、C=3となる。このような処理の結果、学習データとして用いられる画像は、(C、H、W)次元のテンソルと見做すことができる。
【0038】
パッチ分割304では、画像正規化303で出力された正規化画像をパッチに分割する。この点について、
図9に一例を示す。
図9は、パッチ分割および画像トークン生成の一例を示す図である。
図9に示す例において、パッチ画像902では、正規化画像901を縦横3分割することで、9個のパッチ画像が生成される。例えば、正規化画像が、縦サイズが224、横サイズが224で、縦横の分割数が14の場合には、縦の長さ16、横の長さ16のパッチ画像が196個生成される。なお、パッチの分割数は、縦と横で異なっていてもよい。また、正規化画像の縦、横のサイズが分割数で割り切れない場合には、一部、重複する形で分割するなどの対応をとってもよい。
【0039】
次に、画像トークン生成305では、パッチ分割304で生成された各パッチ画像からベクトルを生成する。例えば、画像トークン生成305では、パッチ画像ごとにベクトルの生成を行う。ベクトルの生成についての一例を説明する。例えば、パッチ画像の縦の長さが16、横の長さが16、チャネル数が3の場合には、各ピクセル値をベクトルの要素とすると、パッチごとに、768次元のベクトルが生成される。さらに、画像トークン生成305においては、クラストークンとよばれる特殊なトークンを付け加える。クラストークンは、学習可能なパラメータであり、ランダムな値で初期化される。以下では、これらのベクトルおよびクラストークンを画像トークンと称する。パッチ画像が196個の場合には、クラストークンを含めて197個の768次元の画像トークンが生成される。以下ではこの画像トークン個数をNI、次元数をDIとする。画像トークン生成305では、この画像トークン列を出力する。
【0040】
図2に戻り、説明を続ける。学習データ前処理部107では、
図3Aに示した画像取得301~画像トークン生成305の処理を、各画像に対して実施する。ここで生成されるトークン列は、ひとつの画像あたり、(NI、DI)次元のテンソルと見做すことができる。
【0041】
次に、
図3Bを用いて、テキストデータに対する学習データ前処理部107の処理について説明する。
図3Bは、テキストデータに対する学習データ前処理部の処理の流れの一例を示す図である。
【0042】
まず、テキスト取得306では、記憶装置等に保存されているデータベースなどからテキストデータ103を取得する。次に、形態素解析307では、文章に対して、形態素解析を適用し、単語に分割する。例えば、
図10は、テキストデータに対する学習データ前処理部の処理の一例を示す図である。
図10に示すように、単語分割1002は、入力文章1001に対して、形態素解析により、単語分割をする。なお、
図10に示す例では、単分割した分の先頭に、クラストークンとよばれる特殊トークン[CLS]が付加される。また、単語分割1002に示すように、文章の終わりや区切りを示す特殊トークン[SEP]が付加される。なお、学習データ前処理部107は、文章を単語単位ではなく、文字単位で分割してもよい。その場合には、形態素解析をすることなく、単に、文章を文字に分割すればよい。文字に分割した場合には、単語の部分を文字に置き換えることで、以下の処理は、同様に実施できる。また、分割は文法上の単語でなくてもよく、データに基づいて分割の仕方を学習する方法を採用してもよい。
【0043】
図3Bに戻り、説明を続ける。テキストトークン生成308では、分割された単語列の個々の単語をベクトルに変換する。そのために、学習データ前処理部107は、形態素解析307で生成された単語列を予め定めた固定長のID列に変換する。このために、学習データ前処理部107は、あらかじめ準備された用語リストを用いる。
【0044】
例えば、
図10に示すように、用語リスト1003は、用語とIDとを対応付けたエントリーを有する。例えば、用語リスト1003には、[PAD]、[UNK]、[CLS]、[SEP]のような特殊トークンのエントリーが含まれる。このような用語リスト1003を用いて、学習データ前処理部107は、単語列を固定長のID列に変換する。このとき、予め定めた固定長が単語列よりも長い場合には、その不足文を埋める必要がある。[PAD]は、その不足分を埋める特殊トークンである。[UNK]は用語リストに含まれない未知単語を示す特殊トークンである。[CLS]は後の処理で用いるクラストークン、[SEP]は文章の終わりや区切りを示す特殊トークンである。これらの特殊トークンと、単語に対して、それぞれIDが割り当てられる。
【0045】
学習データ前処理部107は、この用語リストを用いて、単語列をID列に変換する。例えば、学習データ前処理部107は、
図10に示す用語リスト1003を用いて、
図10に示す単語分割1002の各単語をIDに変換することで、
図10に示すID列1004を生成する。
図10に示すID列1004に、ID列の形式の一例を示す。ここで、固定長を20とすると、単語分割1002から生成した単語列と対応するID列の長さは14となるため、学習データ前処理部107は、6つの特殊トークン([PAD])に対応するID=0を追加することで、固定長となるID列1004を生成する。すなわち、固定長を20とすると、単語分割1002の例では単語列は14の長さであるため、6つの特殊トークン([PAD])に対応するID=0で補完される。
【0046】
図3Bに戻り、説明を続ける。学習データ前処理部107は、テキストトークン生成308において、ID列を用いて、各IDをベクトルに変換する。かかる処理においては、各IDに対して、1個のベクトルが生成されるため、学習データ前処理部107は、固定長が20の場合には、20個のベクトルを生成する。ここで、ベクトル変換の一例を説明する。例えば、用語リストの全用語数をDTとすると、学習データ前処理部107は、IDに対応する要素が1で、他が0となるDT次元のワンホットベクトルに用語リストを変換する。例えば、IDが2のトークンは、0から数えて3番目となる。このため、学習データ前処理部107は、IDが2のトークンを、3番目の要素が1で、他が0となるDT次元のベクトル(0、0、1、0、…、0)に変換する。
【0047】
学習データ前処理部107は、テキストトークン生成308により生成したテキストトークン列を出力する。例えば、
図10に示すクラストークン1005を含むテキストトークン列が出力される。なお、実際の応用においては、固定長は、例えば、512等、任意の固定長が採用可能である。固定長が512の場合、学習データ前処理部107は、512個のDT次元のトークンを生成する。ここで生成されるトークン列は、固定長をNIとすると、(NI、DI)次元のテンソルと見做すことができる。
【0048】
次に、
図3Cを用いて、属性データに対する学習データ前処理部107の処理について説明する。
図3Cは、属性データに対する学習データ前処理部の処理の流れの一例を示す図である。
【0049】
学習データ前処理部107は、属性トークン生成309において、属性データ104を属性トークン列に変換する。学習データ前処理部107は、トークン列に対し画像やテキストと同様にクラストークン1005(例えば、
図10を参照)を加える。また、学習データ前処理部107は、残りのトークンを属性データ104より生成する。属性データからのトークン列の生成は、通常の機械学習などの方法と同様に、様々な変換方法を用いることができるが、ここでは、いくつかの例を挙げて説明する。
【0050】
例えば、
図11は、属性トークン生成309の処理について、説明するための図である。
図11は、属性トークンの生成の一例を示す図である。
図11に示す属性特徴1101は、例えば、コンテンツの出稿主のIDや、当該出稿主IDのサービスの利用状況に関するデータ、またはコンテンツそのものに関する情報、および、それらから生成された特徴量など、コンテンツに紐づいた各種の情報である。属性特徴1101に含まれる「コンテンツID」は、各コンテンツに振られる連番のIDなどである。属性特徴1101に含まれる「ID」は、例えば、ユーザIDの一例である出稿主のIDで、IDからトークンを生成する方法は、単語と同じようにワンホットベクトルを用いることができる。このとき、IDの総数が多い場合には、ベクトルの次元数が大きくなるので、これを削減するために、出稿主の利用状況などから、出稿主IDをクラスタリングによりいくつかのグループに分けて縮約し、「クラスタID」を生成し、このクラスタIDを代わりに用いてもよい。また、利用頻度の高い上位IDのみを用いて、その他のIDは未知トークン[UNK]としてまとめて扱ってもよい。このように、コンテンツラベル付与装置101は、任意のトークンを採用可能であり、ユーザIDを分割して、複数のトークンとして用いる。また、IDなどは膨大な数となる場合があり、上記のようにクラスタ化してもよいが、コンテンツラベル付与装置101は、IDから生成されるワンホットベクトルを分割して、別々のトークンとして扱う処理をしてもよい。
【0051】
また、属性特徴1101に含まれる「特徴量A」や「特徴量B」は、コンテンツに紐づく情報から生成した特徴量であり、それぞれ別種の特徴量である。学習データ前処理部107は、属性特徴1101の特徴量A、特徴量Bのように、コンテンツに紐づく情報から生成した特徴量を用いて、それらを(特徴量A、特徴量B、…、)のように並べて生成してもよい。このように、別の機械学習の方法やデータ集計などで作成された特徴量をベクトル化して、トークンとして用いてもよい。また、別の機械学習方法で簡単な予測器を作成し、その予測結果を特徴量とみなして、トークンとして利用してもよい。
【0052】
学習データ前処理部107は、このような属性特徴1101の情報をベクトル列に変換することで、ベクトルやクラストークンを生成する。以降、このように生成されたベクトルやクラストークンを属性トークンとする場合がある。トークン数をNA、ベクトルの次元数をDAとすると、ここで生成されるトークン列は、(NA、DA)次元のテンソルと見做すことができる。
【0053】
次に、
図3Dを用いて、正解ラベルに対する学習データ前処理部107の処理について説明する。
図3Dは、正解ラベルに対する学習データ前処理部の処理の流れの一例を示す図である。学習データ前処理部107は、ラベルベクトル生成310でラベルをベクトルに変換する。例えば、ラベルの種類がT種類あるとして、ひとつのコンテンツに1種類のラベルが付与されるとすると、正解ラベルはT次元のワンホットベクトルで表現することができる。すなわち、学習データ前処理部107は、正解ラベルがT種類のうち、I番目のラベルであるとすると、T次元ベクトルのI番目の要素が1、そのほかの要素が0となるように、ベクトルを生成する。なお、ひとつのコンテンツに複数のラベルが付与されるマルチラベルタスクの場合には、ベクトルの対応する複数の要素が1となるようにすればよい。以上の処理により、ラベルベクトル生成310では、正解ラベルをT次元のベクトルに変換する。
【0054】
以上、学習データ前処理部107の処理により、画像からは(NI、DI)次元のテンソル、テキストからは(NT、DT)次元のテンソル、属性からは(NA、DA)次元のテンソル、正解ラベルからはラベルの種類数Tに対応するT次元の正解ベクトルが生成される。なお、これらのうち、クラストークンは学習可能なパラメータであり、次のモデル学習部108においては、クラストークンのパラメータも学習される。
【0055】
次に、モデル学習部108は、これらのテンソルと正解ベクトルから、モデルのパラメータを学習する。モデルの学習は、順伝播と逆伝播のプロセスを含む。逆伝播では、損失関数に基づく逆伝播法により、モデルのパラメータを更新する。損失関数には、交差エントロピー誤差などを用いることができる。逆伝播によるパラメータ更新には、オプティマイザーとして、AdamW、SGD(Stochastic Gradient Descent)などの方法を用いることができる。モデルの更新には順伝播に基づく逆伝播法を用いるため、以下では、入力から出力を得るための順伝播の計算処理について説明する。なお、モデル学習部108は、複数のサンプルを纏めて、バッチで処理を行う。バッチのサイズをBとする。
【0056】
ここから、
図4等を参照して、順伝播の処理の一例を説明する。
図4は、順伝播の処理を説明するための図である。例えば、
図4等中に示す画像トークン埋め込み401~予測ヘッド417に対応する各構成は学習されるモデル(例えば学習済モデル111)に含まれてもよい。例えば、
図4は、コンテンツラベル付与装置101が学習するモデルの構成の一例を示す。
【0057】
まず、画像トークン埋め込み401では、DI次元の各トークンについて、学習可能なパラメータによるDI次元からD次元への線形変換によって、D次元のトークンに変換する。なお、DIとDの値が等しい場合には、この線形変換はしなくてもよい。
【0058】
次に、画像位置埋め込み402では、学習可能なD次元のベクトルをトークンごとに生成する。すなわち、画像位置埋め込み402では、NI個のD次元の学習可能なパラメータをもつ位置ベクトルを生成する。そして、画像位置埋め込み402では、画像トークン列のNI個の各トークンに対して、それぞれ、生成した位置ベクトルを加えて、出力する。
【0059】
また、テキストトークン埋め込み403及びテキスト位置埋め込み404では、画像トークン列に対する画像トークン埋め込み401、画像位置埋め込み402と同様に、テキストトークン列に学習可能なパラメータをもつ線形変換を適用し、学習可能なパラメータをもつ位置ベクトルを加算する。このとき、正弦関数に基づく位置符号化を用いてもよい。その場合には、ノルムの大きさを同程度に合わせる係数を掛けてから加算する。
【0060】
また、属性トークン埋め込み405では、画像トークン列やテキストトークン列に対する処理と同様に、属性トークン列に学習可能なパラメータをもつ線形変換を適用する。ただし、位置ベクトルの加算はなくてもよい。
【0061】
次に、属性タイプ埋め込み407では、属性データのタイプを区別するための情報を埋め込む。属性情報は、元となるデータの新鮮度や、ユーザの利用端末の違い、ユーザへの提供形態の違い、ユーザ集合の違い、システムの違い、その他のイベントなどの外的要因など、データが生成される過程や時期、外的要因などの違いにより、パターンが異なる場合がある。属性トークン列の各トークンが、それぞれ異なるパターンをもつ異種混合データから生成される場合に、それを区別するために、例えば属性タイプ埋め込み407では、そのようなデータのタイプごとに、学習可能なD次元の属性タイプ埋め込みベクトルを生成し、対応する属性トークンに加算する。なお、属性タイプ埋め込みは、しなくともよい。
【0062】
例えば、属性トークンAがある期間HAのIDから生成されたトークンで、属性トークンBがある期間HBのIDから生成されたトークンの場合、データの新鮮度を区別するために、例えば属性タイプ埋め込み407では、それぞれ学習可能なパラメータをもつ異なる属性タイプ埋め込みベクトルTAと属性タイプ埋め込みベクトルTBを加算する。
【0063】
また、例えば、属性トークンAが利用端末DAの利用回数などのデータから生成されたトークンで、属性トークンBが利用端末DBの利用回数などのデータから生成されたトークンの場合には、例えば属性タイプ埋め込み407では、利用端末の違いを区別する情報として、それぞれ学習可能なパラメータをもつ異なる属性タイプ埋め込みベクトルTAと属性タイプ埋め込みベクトルTBを加算する。同様にして、例えば属性タイプ埋め込み407では、利用端末の違い、提供形態の違い、ユーザ集合の違い、システムの違い、その他の外的要因の違い、などの情報を埋め込むことができる。
【0064】
また、属性トークン列の各トークンが、それぞれ異なるパターンをもつ異種混合データから生成される場合に、それを区別するために、例えば属性タイプ埋め込み407では、属性タイプの埋め込みを用いてもよい。
【0065】
例えば、属性トークンAがIDから生成されたトークンで、属性トークンBが利用回数などのデータから生成されたトークンの場合、それぞれ、元となるデータのタイプが異なり、異なるパターンをもつデータとみなすことができるため、例えば属性タイプ埋め込み407では、それぞれ学習可能なパラメータをもつ異なる属性タイプ埋め込みベクトルTAと属性タイプ埋め込みベクトルTBを加算する。
【0066】
ただし、データのパターンが大きく異なる場合には、これらのデータを別のトークンとして扱い、属性タイプ埋め込みによって区別する方法以外の方法を採用してもよい。例えば、データのパターンが大きく異なる場合には、これらのデータをひとつのトークンで扱うこととして、両方のデータが収まるように大きい次元数をとり、それらのデータを、ひとつトークンの異なる次元に割り当てるなどの方法をとってもよい。
【0067】
例えば、属性トークンAがある期間HAの利用回数などのデータから生成されたトークンで、属性トークンBがある期間HBの利用回数などのデータから生成されたトークンの場合には、期間は異なるが同等のパターンをもつデータとみなすことができる。そのため、この場合、例えば属性タイプ埋め込み407では、学習可能なパラメータをもつ同じ属性タイプ埋め込みベクトルTを両方に加算してもよい。
【0068】
属性情報は、データが生成される過程や時期、外的要因などの違いにより、異種混合の様々な種類パターンに違いが生じるデータをもつ場合があり、属性タイプ埋め込み407により、この情報をトークンに埋め込むことで、パターンの違いに関する情報を加えてパターンの異なるデータから生成されるトークンを区別して学習することができる。なお、属性タイプ埋め込み407はなくとも良い。
【0069】
以上の処理により、バッチサイズBの分を含めて、画像トークン列は(B、NI、D)次元のテンソル、テキストトークン列は(B、NT、D)次元のテンソル、属性トークン列は(B、NA、D)次元のテンソルに変換される。
【0070】
次に、エンコード処理開始408から、規定回数実行415までの処理は、エンコード層であり、既定回数分実行される。例えば、12層の場合には、12回実行される。
【0071】
画像隠れ状態入出力409は、初回の実行においては画像位置埋め込み402の出力、2回目以降の実行においては画像エンコーダー410の出力を入力とし、それをそのまま画像エンコーダー410および属性エンコーダー414に出力する。
【0072】
次に、画像エンコーダー410は、(B、NI、D)次元のテンソルを、同じ次元の(B、NI、D)次元のテンソルにエンコードする。なお、このエンコード処理については、後述する。
【0073】
以上のように画像エンコーダー410はテンソルの次元を変えないため、画像隠れ状態入出力409で扱う画像位置埋め込み402の出力と画像エンコーダー410の出力は、同じ(B、NI、D)次元のテンソルとなる。以下では、この画像隠れ状態入出力409で扱う(B、NI、D)次元のテンソルを画像隠れ状態ともいう。
【0074】
以上のように、エンコード層での処理は、例えば、12層の場合には、画像位置埋め込み402で生成される(B、NI、D)次元のテンソルを、同次元のテンソルに12回変換(エンコード)する処理を行う。
【0075】
テキスト隠れ状態入出力411、およびテキストエンコーダー412の処理も、画像隠れ状態入出力409、画像エンコーダー410の処理と同様で、(B、NT、D)次元のテンソルを規定回数、エンコードする処理を行う。以下では、このテキスト隠れ状態入出力411で扱う(B、NT、D)次元のテンソルをテキスト隠れ状態ともいう。
【0076】
属性隠れ状態入出力413、および属性エンコーダー414も、(B、NA、D)次元のテンソルを規定回数、エンコードする処理を行う。以下では、この属性隠れ状態入出力413で扱う(B、NA、D)次元のテンソルを属性隠れ状態ともいう。ただし、属性エンコーダー414において、エンコード処理に、属性隠れ状態だけではなく、画像隠れ状態とテキスト隠れ状態を用いる。このように、属性エンコーダー414でのエンコード処理には、属性隠れ状態の加えて、画像隠れ状態及びテキスト隠れ状態も用いられる。
【0077】
規定回数実行415において、エンコード層の処理が規定回数分実行されたと判定された場合(規定回数実行415での判定結果:YES)には、ベクトル連結416に処理を進める。なお、規定回数実行415において、エンコード層の処理が規定回数分実行されていないと判定された場合(規定回数実行415での判定結果:No)には、エンコード層(画像隠れ状態入出力409~属性エンコーダー414)の処理を繰り返す。
【0078】
ベクトル連結416では、画像、テキスト、属性のそれぞれのクラストークンに対応するテンソルを連結する。すなわち、画像エンコーダー410で出力される(B、NI、D)次元テンソルのNI個の(B、D)次元テンソルのうち、クラストークンに対応するテンソル(B、D)を抽出する。同様に、テキストエンコーダー412、属性エンコーダー414の出力からも、それぞれクラストークンに対応する(B、D)次元のテンソルを抽出する。次に、ベクトル連結416では、3つの(B、D)次元テンソルを、2つ目の次元軸(Dに対応する軸)で連結し、(B、3D)次元のテンソルを生成する。
【0079】
最後に、予測ヘッド417において、ベクトル連結416で生成される(B、3D)次元テンソルを入力として、ラベル数Tに対応するT次元の予測ベクトルを生成する。予測ベクトルの各要素が、対応するラベルの確率値になる。
【0080】
予測ヘッド417は、例えば、学習可能なパラメータをもつ層正規化などの方法を用いてテンソルを正規化し、3D次元をT次元に線形変換し、softmax関数やsigmoid関数などを適用するなどの構成の単純な予測関数を用いることができる。
【0081】
また、モデルの学習時においては、モデル学習部108は、予測ヘッド417が生成したT次元の予測ベクトルとT次元の正解ベクトルから、Cross Entropy LossやBinary Cross Entropy Lossなどの損失関数を用いて、損失値を計算し、その損失値に基づいて、逆伝播法によって、モデルのパラメータを更新する。
【0082】
例えば、モデル学習部108は、上述した順伝播、逆伝播の処理を、学習データから抽出したバッチを変更しながら、既定回数分実施して、学習可能なパラメータを更新し、そのパラメータを学習済モデル111に保存する。
【0083】
なお、学習可能なパラメータの初期値は、ランダムな値を設定するなどで初期化してもよいが、画像、テキストの事前学習済モデルをそれぞれ予め作成しておき、画像、テキストに関するパラメータは、それを用いて初期化することで、精度の良いモデルを効率的に生成することができる。
【0084】
ここで、
図12を用いて画像、テキストの事前学習モデルの処理の一例を説明する。
図12は、画像、テキストの事前学習モデルの処理の例を示す図である。
図12のそれぞれの処理は、画像とテキストのトークンをそれぞれ独立に扱うが、
図4の画像、およびテキスト部分の対応する処理と同様であるため、詳細な説明は省略する。
【0085】
図12に示すような処理によって、コンテンツラベル付与装置101は、画像の事前学習済モデル及びテキストの事前学習済モデルを生成しておき、そこで生成された画像トークン埋め込み1201、画像位置埋め込み1202、画像エンコーダー1210の学習可能なパラメータを、事前学習済画像モデル109に保存しておく。
図4のモデルの学習時には、コンテンツラベル付与装置101は、事前学習済画像モデル109のパラメータを、画像トークン埋め込み401、画像位置埋め込み402、画像エンコーダー410の学習可能なパラメータに、初期値としてロードする。
【0086】
また、コンテンツラベル付与装置101は、テキストについても同様に、テキストトークン埋め込み1203、テキスト位置埋め込み1204、テキストエンコーダー1212の学習可能なパラメータを、事前学習済言語モデル110に保存しておく。
図4のモデルの学習時には、コンテンツラベル付与装置101は、事前学習済言語モデル110のパラメータを、テキストトークン埋め込み403、テキスト位置埋め込み404、テキストエンコーダー412の学習可能なパラメータに、初期値としてロードする。なお、ロードされたパラメータは、モデル学習部108のモデルパラメータの更新処理において、更新対象としてもよいし、これらのパラメータについては、固定して凍結してもよい。
【0087】
なお、事前学習では、
図12の例に限らず、ラベル付与タスクとは異なるタスクで学習してもよいし、異なるデータを用いてもよい。また、正解ラベルのない、教師なしの学習方法を用いることもできる。これらの事前学習の方法は、ViT(Vision Transformer)やBERT(Bidirectional Encoder Representations from Transformers)をはじめとするTransformerの学習で用いられる事前学習の方法や、Contrastive Learningなど、様々な方法が知られており、これらの方法を活用することができる。
【0088】
次に、画像エンコーダー410、テキストエンコーダー412、属性エンコーダー414の処理について
図5、および
図7を用いて説明する。
図5は、画像エンコーダー、テキストエンコーダーの処理の例を示す図である。
図7は、属性エンコーダーの処理の例を示す図である。
【0089】
まず、
図5を用いて画像エンコーダー410について説明する。
図5に示す正規化501~残差加算509は、画像エンコーダー410による処理の一例を示す。例えば、画像エンコーダー410は、正規化501~残差加算509に対応する処理を実行する。なお、ここで説明する方法は、一例として、ViTに基づく方法を用いているが、そのほかの構成でもよい。
【0090】
正規化501では、学習可能なパラメータをもつ層正規化などの方法で、(B、NI、D)次元テンソルである画像隠れ状態の正規化を行う。次のアテンション埋め込み502からアテンション加重505までは、アテンションの計算である。
【0091】
まず、アテンション埋め込み502では、Q(Query)、K(Key)、V(Value)と呼ばれるベクトルを生成する。まず、Q、K、Vのそれぞれに対して、D次元からD次元への学習可能なパラメータをもつ線形変換行列を保持する。これはD×Dの行列となる。これに対して、画像隠れ状態のD次元の各トークンに対して、この線形変換を適用し、同じD次元のトークンを得る。ひとつのトークンに対して、Q、K、Vのそれぞれに線形変換に対応して、3つのD次元のトークンが生成される。以下では、このときに生成される3つのD次元のトークン列をそれぞれQ、K、Vとよぶことにする。
【0092】
上記のQ、K、Vに関するベクトル生成の一例を
図13に示す。
図13は、ベクトル生成の一例を示す図である。画像隠れ状態のNI個のベクトルに対して、Q、K、Vそれぞれに対応する線形変換を施すことで、Q、K、Vそれぞれに対応するNI個のD次元ベクトルが生成される。
【0093】
次に、ヘッド分割503では、予め定めておいたヘッド数Hに基づいて、Q、K、VのそれぞれのトークンをH個に分割する。分割されたトークンの次元数は、D/H次元になる。DはHで割り切れるように、DとHを設定しておくことが望ましい。これによって、Q、K、Vのそれぞれについて、NI個のH/D次元ベクトルがH個生成される。h番目の分割に対応するNI個のH/D次元をQhとおくことにする。ベクトル情報1301、ベクトル情報1302、ベクトル情報1303、ベクトル情報1304にその様子を示す。
図13ではH=3の場合を示した。実際の応用では、例えば、H=12などに設定してもよい。
【0094】
次に、アテンション内積504では、各ヘッドに対応するベクトルQhとベクトルKhの内積を計算する。
図13では、行列情報1305に示すように、各ヘッドに対応するベクトルQhとベクトルKhの内積が計算される。この内積値行列の第ij成分は、Qhのi番目のベクトルとKhのj番目のベクトルの内積値となる。なお、この内積値が大きくなりすぎないように、内積値を次元数Dの平方根で割ったものをaijとしてもよい。
【0095】
次に、アテンション加重505では、内積値に基づいて、Vhの加重をとり、その結果を加重ベクトルとして生成する。
図13では、加重ベクトルデータ1306に示すように、内積値に基づいてVhの加重をとることにより、加重ベクトルが生成される。例えば、内積値行列の各行iに対して、ベクトル(ai1、ai2、…、aiNI)にsoftmax関数を適用する。次に、正規化後のベクトルを重みとして、VhのNI個のベクトルの加重和をとり、第i番目の加重ベクトルとする。この加重ベクトルをShとおくことにする。このS1、S2、…、SHを分割したときとは逆に、結合することで加重ベクトルVを生成する。これはNI個のD次元のトークンよりなる。
【0096】
例えば、コンテンツラベル付与装置101は、上述した処理をバッチの各サンプルについて適用する。これによって、加重ベクトルVは、(B、NI、D)次元のテンソルとなり、加重ベクトルVの次元は、画像隠れ状態の次元と同様である。
【0097】
次に、残差加算506では、この加重ベクトルと画像隠れ状態を加算して、出力する。その後、正規化507では、学習可能なパラメータをもつ層正規化などの方法で正規化する。さらに、MLP508では、フィードフォワードネットワークなどで、同じ次元のテンソルに変換する。最後に、残差加算509では、MLP508で生成されたテンソルに、残差加算506の出力テンソルを加算して、次の処理に出力する。このとき出力される結果も、画像隠れ状態と同じ次元で(B、NI、D)次元のテンソルとなる。
【0098】
ここで、
図6を用いてMLP508の処理の一例について説明する。
図6は、MLPの処理の一例を示す図である。MLP508の処理は、
図6に示す線形変換601~線形変換603の処理を含む。例えば、MLP508は、多層パーセプトロン(MultiLayer Perceptron)である。
【0099】
まず、線形変換601では、学習可能なD×E次元のパラメータをもつ線形変換により、各トークンをD次元から、それより大きいE次元に変換する。次に、活性化関数適用602では、ReLU(Rectified Linear Unit)などの活性化関数を適用する。線形変換603では、学習可能なE×D次元のパラメータをもつ線形変換により、各トークンをE次元からD次元に変換する。
【0100】
以上のエンコード処理によって、画像隠れ状態は、同じ次元(B、NI、D)のテンソルにエンコードされる。
【0101】
次に、
図5を用いてテキストエンコーダー412について説明する。
図5に示すアテンション埋め込み511~正規化522は、テキストエンコーダー412による処理の一例を示す。例えば、テキストエンコーダー412は、アテンション埋め込み511~正規化522に対応する処理を実行する。なお、ここで説明する方法は、一例として、BERTに基づく方法を用いているが、そのほかの構成でもよい。
【0102】
アテンション埋め込み511からアテンション加重514までは、画像エンコーダーのアテンション埋め込み502からアテンション加重505までの処理と同様である。次に、残差加算515では、テキスト隠れ状態とアテンション加重514の出力とを加算して、次の処理に出力する。線形変換516では、学習可能なパラメータをもつD×D次元の線形変換により、各トークンのD次元ベクトルを変換する。
【0103】
次に、正規化517では、学習可能なパラメータをもつ層正規化などの方法で正規化する。線形変換518では、学習可能なパラメータをもつD×D次元の線形変換により、各トークンのD次元ベクトルを変換する。
【0104】
活性化関数適用519では、GELU(Gaussian Error Linear Units)などの活性化関数を適用する。残差加算520では、正規化517の出力と、活性化関数適用519の出力を加算して、次の処理に出力する。線形変換521では、学習可能なパラメータをもつD×D次元の線形変換により、各トークンのD次元ベクトルを変換する。最後に、正規化522では、学習可能なパラメータをもつ層正規化などの方法で正規化する。
【0105】
以上のエンコード処理によって、テキスト隠れ状態は、同じ次元(B、NT、D)のテンソルにエンコードされる。
【0106】
次に、属性エンコーダー414の処理について、
図7を用いて説明する。
図7に示すベクトル結合701~残差加算710は、属性エンコーダー414による処理の一例を示す。例えば、属性エンコーダー414は、ベクトル結合701~残差加算710に対応する処理を実行する。なお、ここで説明する処理の構成は一例であり、単方向アテンション構造(単に「単方向アテンション」ともいう)を用いる別の構成でもよい。
【0107】
まず、ベクトル結合701では、画像隠れ状態入出力409、テキスト隠れ状態入出力411、属性隠れ状態入出力413から出力される(B、NI、D)次元の画像隠れ状態のテンソル、(B、NT、D)次元のテキスト隠れ状態のテンソル、(B、NA、D)次元の属性隠れ状態のテンソル、の3つのテンソルを2つ目の次元(NI、NT、NAに対応する次元)を軸に、結合する。これにより、各サンプルあたりN=NI+NA+NT個のトークンが生成され、(B、N、D)次元のテンソルが生成される。これを結合ベクトルとよぶことにする。この結合ベクトルは、画像トークン、テキストトークン、属性トークンを結合したものとなる。
【0108】
次に、正規化702では、ベクトル結合701で生成された(B、N、D)次元のテンソルを、学習可能なパラメータをもつ層正規化などの方法で正規化する。次に、単方向アテンション埋め込み703では、アテンション埋め込み502と同様に、Q、K、Vと呼ばれるベクトルを生成する。ただし、Qは属性トークンに対応するNA個のトークンに対してのみ生成する。KとVは、N個全てのトークンに対して生成する。その後のヘッド分割704の処理は、ヘッド分割503と同様である。この処理の一例を
図14のベクトル情報1401、ベクトル情報1402に示す。
図14は、ベクトル生成の一例を示す図である。ベクトル情報1402に示すように、Qは属性トークンに対応するNA個であるが、K、VはN個となる。以下、Qh、Kh、Vhは、それぞれh番目の分割されたQ、K、Vのベクトルとする。
【0109】
次に、単方向アテンション内積705では、QhとKhの内積を計算する。ただし、内積は、全てのトークン同士の内積ではなく、属性トークンのみと、画像トークン、テキストトークン、属性トークンとの内積を計算する。すなわち、Qhの属性に対応するトークンと、Khの全トークンとの内積を計算する。この内積値の行列の形式の一例を行列情報1403に示した。
【0110】
次に、単方向アテンション加重706では、内積値行列のi番目の行のベクトル(ai1、ai2、…、aiN)にsoftmax関数を適用する。次に、単方向アテンション加重706では、このベクトルを重みとして、VのN個のトークンの加重和をとり、D次元の加重ベクトルを生成する。これにより、NA個の加重ベクトルが生成される。これを各サンプルに対して適用し、バッチサイズ分の(B、NA、D)次元のテンソルが生成される。
【0111】
次に、残差加算707では、単方向アテンション加重706の出力と属性隠れ状態入出力413の出力を加算し、次の処理に出力する。正規化708から残差加算710までの処理は、画像エンコーダーの正規化507から残差加算509までの処理と同様である。
【0112】
以上のエンコード処理によって、属性隠れ状態は、同じ次元(B、NI、D)のテンソルにエンコードされる。
【0113】
通常のセルフアテンション構造においては、全トークン間の内積を計算し、加重をとることで、全てのトークンをエンコードする。本願の構成(例えばコンテンツラベル付与装置101等)では、画像やテキストのトークンを内積値に基づいて、属性トークンに加重するが、画像トークンやテキストトークンに加重することはしない。この単方向の構成により、画像隠れ状態やテキスト隠れ状態には変更は生じない。すなわち、コンテンツラベル付与装置101は、画像モデルやテキストモデルには変更を生じさせることなく、属性エンコーダーの部分で、画像、テキスト、属性の3種のマルチモーダルの関係を埋め込むことができる。上述した例では、コンテンツラベル付与装置101が学習するモデル(学習済モデル111等)において、画像またはテキストに対応するモデル部分が第1部分モデルに対応し、画像またはテキストよりも経時的な変化が大きい属性に対応するモデル部分が第2部分モデルに対応する。例えば、第1部分モデルは、経時的な変化が少ない恒久的モデル構造を有する。例えば、第2部分モデルは、経時的な変化が大きい非恒久的モデル構造を有する。例えば、
図4に示すモデル例のうち、画像トークン列に対応する部分が第1部分モデルに対応する。また、例えば、
図4に示すモデル例のうち、テキストトークン列に対応する部分が第1部分モデルに対応する。また、例えば、
図4に示すモデル例のうち、属性トークン列に対応する部分が第2部分モデルに対応する。
【0114】
上述した構成により、コンテンツラベル付与装置101は、いくつかの効果を得ることができる。例えば、特に画像やテキストなどのメディア処理では、汎用性の高い事前学習モデルを予め作成しておき、その後、ファインチューニングによってタスクに合わせて学習する方法が広く用いられる。一般に、事前学習には、大量の学習データと大量の計算量を要するため、高コストであるが、ファインチューニングは比較的低コストで学習できる。このような構成で、基盤となるモデルを事前学習により学習しておき、タスクに合わせた学習は比較的低コストで高精度に行うことができる。
【0115】
本願の構成(例えばコンテンツラベル付与装置101等)では、単方向のアテンションにより、画像やテキストのモデルのパラメータや隠れ状態に影響を与えないため、画像単独で作成した事前学習モデルやテキスト単独で作成した事前学習モデルを、用いることができる。アテンションにより、画像やテキストのトークンにも、別モーダルのトークンを加重する場合には、画像のモデルやテキストのモデルの隠れ状態の値を大きく変化させてしまうため、事前学習モデルを用いることが難しい。これにより、本願の構成(例えばコンテンツラベル付与装置101等)では、画像やテキストで予め作成しておいた事前学習モデルを活用しつつ、画像、テキスト、属性のクロスモーダルの関係性を、広域の特徴を学習できる精度の良いアテンション構造で学習することができる。
【0116】
また、画像の事前学習モデルは画像のみのデータ、テキストの事前学習モデルはテキストのみのデータを用いて学習することができる。画像、テキスト、属性など複数のモーダルが紐づいたデータと比較して、画像のみのデータや、テキストのみのデータは、大量に入手できる場合が多い。本願の構成(例えばコンテンツラベル付与装置101等)では、単独モーダルで学習できる事前学習モデルを用いることができるため、マルチモーダルなデータのみから学習するだけではなく、単独モーダルの大量のデータで事前学習することにより、高い精度を期待できる。
【0117】
さらに、属性データなどのようなユーザ由来のデータは、経時で変化しやすく、高頻度でのモデルの再学習が望ましい。一方で、画像やテキストのモデルは、これらのデータと比較して、汎用性が高く、経時的なモデルの劣化も少ないことが考えられる。このような劣化が少ないモーダルと、劣化が大きいモーダルが混在する場合に、画像やテキストのように、劣化が少ないモーダルは事前学習しておくことにより、劣化が少ないモーダルの事前学習モデルを用いることができるため、低コストでモデルの再学習が可能である。
【0118】
また、属性データは高頻度でのモデルの再学習が必要で、画像や言語の部分は低頻度で良い場合には、単方向のアテンションでは、画像やテキストに対応するパラメータに変更を与えないため、画像やテキストのパラメータを固定または学習率を低くして、属性データのみ、再学習することもできる。
【0119】
このように、単方向アテンションの構造によって、属性部分についてモジュール性が高く、学習することができる。なお、モデル学習部108の処理では、学習の頑健性を高めるために、適宜、ドロップアウトの処理を提供してもよい。
【0120】
次に、推論部112では、入出力部115から入力された推論対象のコンテンツに対して、前処理を実施する。前処理の方法は、学習データ前処理部107と同様である。ただし、学習の頑健性を高めるために、学習データ前処理部107にて、ランダムなノイズなどを加えた場合には、推論データ前処理部113では、そのようなノイズ処理は適用しなくてよい。
【0121】
次に、推論処理部114では、モデル学習部108と同様に、順伝播の計算方法にて、入力から、予測ラベルを計算する。ただし、学習の頑健性を高めるためのドロップアウト処理は適用しない。
【0122】
データ入力部116は、システムやユーザから入力装置や通信装置を介して、コンテンツデータを受け取る。ラベル出力部117は、推論処理部114の予測ラベルを出力装置や通信装置を介して、システムやユーザに返す。例えば、ラベル出力部117は、推論処理部114の予測ラベルを出力装置や通信装置を介して、システムに含まれる装置やユーザが利用するユーザ端末に送信する。
【0123】
なお、上記では、画像隠れ状態のベクトルの次元、テキスト隠れ状態のベクトルの次元、属性隠れ状態のベクトルの次元は、それぞれ同じ次元数Dとして説明した。しかし、それぞれのモーダルに適した異なる次元数に設定してもよい。この点の一例について
図8を用いて説明する。
図8は、属性エンコーダーの処理の他の例を示す図である。なお、
図8において、
図7と同様の点については適宜説明を省略する。
図8に示す例では、単方向アテンションの計算において、次元数を合わせるために、次元変換801、次元変換802で属性隠れ状態のベクトルの次元に合わせる処理を実行する。次元変換801及び次元変換802等の次元変換は、学習可能なパラメータをもつ線形変換行列などが用いられてもよい。これにより、コンテンツラベル付与装置101は、モーダルごとに適した次元数を選択することができる。
【0124】
また、上記の説明では、画像、テキスト、属性で、エンコード層の数、すなわち、エンコードの回数は同じとして説明した。しかし、それぞれのモーダルに合わせて層数を調整する場合には、単方向アテンションを計算する層と、独立に計算する層とを、指定して、処理の仕方を分ければよい。独立して計算する層は、画像隠れ状態入出力409およびテキスト隠れ状態入出力411から、属性エンコーダー414への隠れ状態の受け渡しがなく、属性トークン内でのアテンションを計算する。
【0125】
図15にその一例を示した。
図15は、モデルの構成の一例を示す図である。
図15に示す例では、画像には8層、テキストには6層、属性には5層あり、最後の4層のみ単方向アテンションを計算し、そのほかの層はモーダルごとに独立で処理を行う。なお、
図15の例では、最後の4層を対応付けたが、そのほかの対応付けの方法をとってもよい。これにより、モーダルごとに適した総数を選択することができる。
【0126】
また、
図4の例では、画像や言語もアテンション構造を用いるモデルで説明を行ったが、画像や言語のモデルについては、アテンション構造をもたないモデルでもよい。その場合には、画像や言語のモデルの隠れ状態を用いて、属性のトークンをエンコードする。
【0127】
また、属性情報のモデルには、データを用いることなく、クラストークンのみにして用いてもよい。その場合には、属性データ等は用いず、データは画像と言語のみの2つのモーダルとなるが、クラストークンにおいて、属性のクラストークンは、画像や言語の隠れ状態を用いてエンコードするため、このトークンにおいて、画像や言語のクロスモーダルの関係性を学習することができる。
【0128】
また、上記では、画像とテキストと属性データを例に説明したが、画像と属性データ、テキストと属性データや、その他の画像、テキスト、属性以外のモーダルでも同様に用いることができる。その場合には、経時変化が少ない汎用性の高いモーダルの隠れ状態を用いて、経時変化の大きいモーダルの隠れ状態をエンコードする単方向アテンションを計算する、などとすればよい。
【0129】
コンテンツラベル付与装置101では、画像や言語など経時的な変化が少ないモーダルのトークンと、属性情報など、経時的な変化が大きいモーダルのトークンの相互の関係を計算しつつ、属性情報に対応するトークンのみをエンコードする単方向のアテンション構造により、経時的な変化が少ないモーダルのパラメータや状態を崩すことなく、経時的な変化が大きいモーダルのモデルにおいて、クロスモーダルの関係性を取り込んで、学習することができる。
【0130】
これにより、コンテンツラベル付与装置101によれば、経時的な変化が少ないモーダルにおいて、単独モーダルで学習された事前学習済モデルを用いることができる。すなわち、コンテンツラベル付与装置101によれば、単独モーダルの学習データを活用できる。また、コンテンツラベル付与装置101によれば、経時的な変化が少ないモーダルにおいて、学習率を小さくする、または、固定するなどして、経時的な変化が少ないモーダルのパラメータや状態を崩すことなく、経時的な変化が大きい部分のみ、再学習することができる。これにより、コンテンツラベル付与装置101によれば、経時的な変化が少ないモーダルにおいて、単独モーダルの学習データの活用や、モデルの再利用をしつつ、高頻度な再学習が必要なモーダルと組み合わせた、効率的なクロスモーダルの学習ができる。
【0131】
〔その他〕
以上、本願の実施形態を説明したが、これら実施形態の内容により本発明が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述した構成要素は適宜組み合わせることが可能である。さらに、前述した実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換又は変更を行うことができる。
【0132】
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0133】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【0134】
例えば、上述したサーバ装置10は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をAPIやネットワークコンピューティング等で呼び出して実現するなど、構成は柔軟に変更できる。
【0135】
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0136】
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、推論部は、推論手段や推論回路に読み替えることができる。
【符号の説明】
【0137】
101 コンテンツラベル付与装置
106 モデル生成部
107 学習データ前処理部
108 モデル学習部
112 推論部
113 推論データ前処理部
114 推論処理部
115 入出力部
116 データ入力部
117 ラベル出力部