IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特開2023-182225埋め込み表現モデル学習システム及び埋め込み表現モデル学習方法
<>
  • 特開-埋め込み表現モデル学習システム及び埋め込み表現モデル学習方法 図1
  • 特開-埋め込み表現モデル学習システム及び埋め込み表現モデル学習方法 図2
  • 特開-埋め込み表現モデル学習システム及び埋め込み表現モデル学習方法 図3
  • 特開-埋め込み表現モデル学習システム及び埋め込み表現モデル学習方法 図4
  • 特開-埋め込み表現モデル学習システム及び埋め込み表現モデル学習方法 図5
  • 特開-埋め込み表現モデル学習システム及び埋め込み表現モデル学習方法 図6
  • 特開-埋め込み表現モデル学習システム及び埋め込み表現モデル学習方法 図7
  • 特開-埋め込み表現モデル学習システム及び埋め込み表現モデル学習方法 図8
  • 特開-埋め込み表現モデル学習システム及び埋め込み表現モデル学習方法 図9
  • 特開-埋め込み表現モデル学習システム及び埋め込み表現モデル学習方法 図10
  • 特開-埋め込み表現モデル学習システム及び埋め込み表現モデル学習方法 図11
  • 特開-埋め込み表現モデル学習システム及び埋め込み表現モデル学習方法 図12
  • 特開-埋め込み表現モデル学習システム及び埋め込み表現モデル学習方法 図13
  • 特開-埋め込み表現モデル学習システム及び埋め込み表現モデル学習方法 図14
  • 特開-埋め込み表現モデル学習システム及び埋め込み表現モデル学習方法 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023182225
(43)【公開日】2023-12-26
(54)【発明の名称】埋め込み表現モデル学習システム及び埋め込み表現モデル学習方法
(51)【国際特許分類】
   G06N 20/00 20190101AFI20231219BHJP
   G06F 40/216 20200101ALI20231219BHJP
   G06F 40/56 20200101ALI20231219BHJP
【FI】
G06N20/00 130
G06F40/216
G06F40/56
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022095705
(22)【出願日】2022-06-14
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】岩山 真
【テーマコード(参考)】
5B091
【Fターム(参考)】
5B091AA11
5B091EA01
(57)【要約】
【課題】埋め込み表現モデル学習システムにおいて、ラベル付きデータが少ない場合でも、効果的に埋め込み表現モデルを学習する。
【解決手段】第1の文と前記第1の文と言い換え関係にある第2の文の対を正解データとして設定して正例対データを生成する正例生成部と、前記第1の文と言い換え関係にないが前記第1の文と類似している第3の文を生成して前記第1の文と前記第3の文の対を不正解データとして設定して負例対データを生成する負例生成部と、前記正解データと前記不正解データを用いて前記埋め込み表現モデルを学習する埋め込み表現モデル学習部とを有する。
【選択図】図1
【特許請求の範囲】
【請求項1】
テキストデータを埋め込み表現に変換する埋め込み表現モデルを学習する埋め込み表現モデル学習システムであって、
第1の文と前記第1の文と言い換え関係にある第2の文の対を正解データとして設定して正例対データを生成する正例生成部と、
前記第1の文と言い換え関係にないが前記第1の文と類似している第3の文を生成して、前記第1の文と前記第3の文の対を不正解データとして設定して負例対データを生成する負例生成部と、
前記正解データと前記不正解データを用いて、前記埋め込み表現モデルを学習する埋め込み表現モデル学習部と、
を有することを特徴とする埋め込み表現モデル学習システム。
【請求項2】
前記正例対データは、同じラベルを持ち、
前記負例対データは、異なるラベルを持ち、
前記負例生成部は、
前記第1の文と異なる前記ラベルを持つ前記テキストデータの中で、前記第1の文との類似度が最大の前記テキストデータを前記第3の文として生成することを特徴とする請求項1に記載の埋め込み表現モデル学習システム。
【請求項3】
テキストデータを埋め込み表現に変換する埋め込み表現モデルを学習する埋め込み表現モデル学習システムであって、
第1の文と前記第1の文と言い換え関係にある第2の文の対を正解データとして設定して正例対データを生成する正例対データ生成部と、
前記第1の文と言い換え関係にないが前記第1の文と類似している第3の文を生成して、前記第1の文と前記第3の文の対を不正解データとして設定して負例対データを生成する負例対データ生成部と、
前記正例対データと前記負例対データを用いて、対データ埋め込み表現モデルを学習する対データ埋め込み表現モデル学習部と、
前記第1の文に対して、前記第1の文が持つラベルを正解データとして設定して正例点データを生成する正例点データ生成部と、
前記正例点データを用いて、点データ埋め込み表現モデルを学習する点データ埋め込み表現モデル学習部と、
前記対データ埋め込み表現モデル学習部と前記点データ埋め込み表現モデル学習部を切り替えて、前記対データ埋め込み表現モデルと前記点データ埋め込み表現モデルのいずれか一方を実行するかを決定して前記埋め込み表現モデルを学習する学習制御部と、
を有することを特徴とする埋め込み表現モデル学習システム。
【請求項4】
前記正例対データは、同じラベルを持ち、
前記負例対データは、異なるラベルを持ち、
前記負例対データ生成部は、
前記第1の文と異なるラベルを持つ前記テキストデータの中で、前記第1の文との類似度が最大の前記テキストデータを前記第3の文として生成することを特徴とする請求項3に記載の埋め込み表現モデル学習システム。
【請求項5】
前記対データ埋め込み表現モデル学習部は、
前記正例対データと前記負例対データを用いて、前記対データ埋め込み表現モデルを繰り返し学習し、
前記点データ埋め込み表現モデル学習部は、
前記正例点データを用いて、前記点データ埋め込み表現モデルを繰り返し学習することを特徴とする請求項3に記載の埋め込み表現モデル学習システム。
【請求項6】
前記対データ埋め込み表現モデルを評価し、学習を継続するか停止するかを決定する対データ埋め込み表現モデル評価部と、
前記点データ埋め込み表現モデルを評価し、学習を継続するか停止するかを決定する点データ埋め込み表現モデル評価部と、
を更に有することを特徴とする請求項3に記載の埋め込み表現モデル学習システム。
【請求項7】
前記対データ埋め込み表現モデル評価部の評価結果に基づいて、前記負例対データを更新する負例対データ更新部を更に有することを特徴とする請求項3に記載の埋め込み表現モデル学習システム。
【請求項8】
前記学習制御部は、
前記対データ埋め込み表現モデル学習部と前記点データ埋め込み表現モデル学習部を交互に切り替えることを特徴とする請求項3に記載の埋め込み表現モデル学習システム。
【請求項9】
前記学習制御部は、
前記対データ埋め込み表現モデル学習部と前記点データ埋め込み表現モデル学習部をユーザが指定した割合で切り替えることを特徴とする請求項3に記載の埋め込み表現モデル学習システム。
【請求項10】
前記割合を前記ユーザが指定可能な表示部を更に有することを特徴とする請求項9に記載の埋め込み表現モデル学習システム。
【請求項11】
テキストデータを埋め込み表現に変換する埋め込み表現モデルを学習する埋め込み表現モデル学習方法であって、
第1の文と前記第1の文と言い換え関係にある第2の文の対を正解データとして設定して正例対データを生成する正例生成ステップと、
前記第1の文と言い換え関係にないが前記第1の文と類似している第3の文を生成して、前記第1の文と前記第3の文の対を不正解データとして設定して負例対データを生成する負例生成ステップと、
前記正解データと前記不正解データを用いて、前記埋め込み表現モデルを学習する埋め込み表現モデル学習ステップと、
を有することを特徴とする埋め込み表現モデル学習方法。
【請求項12】
前記正例対データは、同じラベルを持ち、
前記負例対データは、異なるラベルを持ち、
前記負例生成ステップは、
前記第1の文と異なる前記ラベルを持つ前記テキストデータの中で、前記第1の文との類似度が最大の前記テキストデータを前記第3の文として生成することを特徴とする請求項11に記載の埋め込み表現モデル学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、埋め込み表現モデル学習システム及び埋め込み表現モデル学習方法に関する。
【背景技術】
【0002】
テキスト、音声、画像などのデータを数百次元の実数ベクトルに変換し、変換後のベクトルを検索などのアプリケーションで用いることが多い。この実数ベクトルを埋め込み表現と呼ぶ。また、データを埋め込み表現に変換するためのモデルを埋め込み表現モデルと呼ぶ。
【0003】
テキストに関しては、表現は異なるが同じ意味を持つ2つの文の埋め込み表現が、ベクトル空間内で近い場所に配置されるのが望ましい。例えば、チャットボットにおいて、「税金はどこで支払えばよいのですか」と「納税できる場所を教えて」という2つの質問文を考える。これらは、表現は異なるが質問意図は同じであるため、これらが類似していることが判定できれば、チャットボットの精度向上も可能になる。
【0004】
埋め込み表現モデルは深層学習により学習することが多い。例えば、非特許文献1では、同じ意味を持つ2つの文(正例対)と、異なる意味を持つ2つの文(負例対)を訓練データとして与えて、ベクトル空間上で正例対が近くなるように、かつ、負例対が遠くなるように深層学習モデル(埋め込み表現モデル)を学習する。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】“Sentence-BERT:Sentence Embeddings using Siamese BERT-Networks”,In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing,Association for Computational Linguistics,2019.
【発明の概要】
【発明が解決しようとする課題】
【0006】
非特許文献1では、同じ意味を持つ文対を正例対とみなし、正例対以外の文対からランダムに選択した文対を負例対とみなしている。
【0007】
一般に、深層学習には大量の訓練データが必要である。ところが、訓練データの作成には人手判定を要するため、大量の訓練データを用意するのが難しい。例えば、2つの文が同じ意味を持つかどうかを人手で判定することになる。
【0008】
このように、埋め込み表現モデルの学習においては、大量の訓練データを用意するのは困難であり、訓練データとして少数のラベル付きデータしか用いることができない。
【0009】
本発明の目的は、埋め込み表現モデル学習システムにおいて、ラベル付きデータが少ない場合でも、効果的に埋め込み表現モデルを学習することにある。
【課題を解決するための手段】
【0010】
本発明の一態様の埋め込み表現モデル学習システムは、テキストデータを埋め込み表現に変換する埋め込み表現モデルを学習する埋め込み表現モデル学習システムであって、第1の文と前記第1の文と言い換え関係にある第2の文の対を正解データとして設定して正例対データを生成する正例生成部と、前記第1の文と言い換え関係にないが前記第1の文と類似している第3の文を生成して、前記第1の文と前記第3の文の対を不正解データとして設定して負例対データを生成する負例生成部と、前記正解データと前記不正解データを用いて、前記埋め込み表現モデルを学習する埋め込み表現モデル学習部を有することを特徴とする。
【発明の効果】
【0011】
本発明の一態様によれば、埋め込み表現モデル学習システムにおいて、ラベル付きデータが少ない場合でも、効果的に埋め込み表現モデルを学習することができる。
【図面の簡単な説明】
【0012】
図1】実施例1の埋め込み表現モデル学習システムの構成例を示すブロック図である。
図2】対データ生成処理を示す図である。
図3】点データ生成処理を示す図である。
図4】対データからの埋め込み表現モデル学習処理を示す図である。
図5】点データからの埋め込み表現モデル学習処理を示す図である。
図6】対データおよび点データからの埋め込み表現学習処理を示す図である。
図7】ラベル付きデータの例を示す図である。
図8】対データの例を示す図である。
図9】正例対およびランダム負例対及びニアミス負例対の例を示す図である。
図10】点データの例を示す図である。
図11】対データからの埋め込み表現モデル学習におけるモデル構成を示す図である。
図12】点データからの埋め込み表現モデル学習におけるモデル構成を示す図である。
図13】ニアミス負例生成処理を示す図である。
図14】ニアミス負例更新処理を示す図である。
図15】埋め込み表現学習のユーザインターフェイスの例を示す図である。
【発明を実施するための形態】
【0013】
以下では、図面を参照して本発明の実施の態様を説明する。
【実施例0014】
本実施例1では、テキストデータを埋め込み表現に変換する埋め込み表現モデルを学習するシステムの例について説明する。
【0015】
図1は、本実施例1の埋め込み表現モデル学習システム101の構成例を示すブロック図である。
本実施例1の埋め込み表現モデル学習システム101は、入力装置102、出力装置103、通信装置104、演算装置105、メモリ106、及び補助記憶装置107を含む計算機によって構成される。
【0016】
入力装置102は、ユーザからのコマンドやテキスト、音声等のセンサデータなどの入力を受け付ける。例えば、キーボードや、マウスや、タッチパネル、マイクなどのデバイス等である。
【0017】
出力装置103は、液晶表示装置やCRTなどで構成されるディスプレイ装置である。なお、入力装置102及び出力装置103を設けず、ネットワークを介して接続された他の計算機を入力装置102及び出力装置103として機能させてもよい。
【0018】
通信装置104は、例えば、所定のプロトコルに従って、対話システム101による処理内容を外部機器に送信したり、外部機器から情報を受信したりする。
【0019】
演算装置105は、プロセッサを含み、メモリ106に格納されたプログラムを実行する。メモリ106は、不揮発性の記憶素子であるROM及び不揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、演算装置105が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【0020】
補助記憶装置107は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等で構成される大容量かつ不揮発性の記憶装置であり、演算装置105が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置107から読み出されて、メモリ106にロードされて、演算装置105によって実行される。
【0021】
演算装置105が実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワークを介して埋め込み表現モデル学習システム101に提供され、非一時的記憶媒体である不揮発性の補助記憶装置107に格納される。このため、埋め込み表現モデル学習システム101は、リムーバブルメディアからデータを読み込むインタフェースを有するとよい。
【0022】
埋め込み表現モデル学習システム101は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで処理してもよく、複数の物理的計算機資源上に構築された仮想計算機上で処理してもよい。
【0023】
演算装置105は、メモリ106にロードされたプログラムに従って処理を実行することで、埋め込み表現モデル学習システム101として機能する。
【0024】
埋め込み表現モデル学習システム101は、対データからの埋め込みモデル学習と、点データ(単一データ)からの埋め込み表現モデル学習により、一つの埋め込み表現モデルを並行に学習する。
【0025】
まずは、ラベル付きテキストデータ117から2種類の学習のための訓練データを生成する。正例生成(対データ)108は正例(対データ)118を生成し、負例生成(対データ)110は、負例(対データ)120を生成する。また、正例生成(点データ)109は、正例(点データ)119を生成する。
【0026】
埋め込み表現モデル学習(対データ)111は、上記で生成した、正例(対データ)118、負例(対データ)120を用いて、埋め込み表現モデル121を繰り返し学習する。埋め込み表現モデル評価(対データ)113は、学習中の埋め込み表現モデル121を評価し、学習を継続するか停止するかを決定する。
【0027】
埋め込み表現モデル学習(点データ)112は、上記で生成した正例(点データ)119を用いて、上記と同じ埋め込み表現モデル121を繰り返し学習する。埋め込み表現モデル評価(点データ)114は、学習中の埋め込み表現モデル121を評価し、学習を継続するか停止するかを決定する。
【0028】
学習制御116は、各繰り返し学習時に、上記の2種類の学習のどちらを実行するかを決定する。
【0029】
ここで、例えば、正例生成(対データ)108は、「正例対データ生成部」と表現可能である。他の構成要素も同様に「~部」と表現可能である。例えば、実施例1の埋め込み表現モデル学習システム101は、正例対データ生成部108、負例対データ生成部110、対データ埋め込み表現モデル学習部111、正例点データ生成部109、点データ埋め込み表現モデル学習部112、学習制御部116を有する。
【0030】
以降、埋め込み表現モデル学習法の詳細を説明する。まずは、対データからの埋め込み表現モデル学習法を説明し、次に、点データからの埋め込み表現モデル学習法を説明し、最後に、両者の並行学習法(マルチタスク学習法)を説明する。
【0031】
いずれも学習法も、ラベル付きテキストデータ117が訓練データとなる。ラベル付きテキストデータは人手で作成することが多い。
【0032】
図7に、チャットボットを対象とした、ラベル付きテキストデータの例を示す。
ラベル付きテキストデータ701は、テキスト702とラベル703の対の集合である。テキスト702は、処理対象のテキストである。チャットボットの場合は、チャットボットが対象とする想定質問である。ラベル703は、各テキストが持っているラベルである。チャットボットの場合は、想定質問に対する回答である。図7の例の場合は、「タグが付いていないメールをフィルタリングしたい。」という想定質問(テキスト)に対する回答(ラベル)が「アドバンス検索で行えます。」になる。
【0033】
説明の都合上、各テキストにはIDを付与する。例の場合、「タグが付いていないメールをフィルタリングしたい。」というテキストのIDをq_1,1とする。これは、1番目のラベルに対する1番目のテキストという意味である。回答にもIDを付与する。例の場合、「アドバンス検索で行えます。」というラベルのIDをa_1とする。これは、1番目のラベルという意味である。同じラベルに対して複数のテキストが存在することに注意されたい。
【0034】
例えば、「アドバンス検索で行えます。」というラベルa_1に対しては、q_1,1、q_1,2、q_1,3という3つのテキストが存在する。
【0035】
ラベル付きテキストの対象はチャットボットに限定されない。例えば、ニュース記事文のトピック分類であれば、ニュース記事文がテキストになり、「スポーツ」「政治」などのトピックがラベルとなる。文の極性判定であれば、任意の文がテキストになり、「肯定」「否定」のいずれかがラベルになる。
【0036】
図2は、対データからの埋め込み表現モデル学習で用いる対データの生成法の概略である。上記で説明したラベル付きテキストデータ115から、正例対、負例対の2種類の対データを生成する。正例対は、同じラベルを持つテキストの対である。負例対は、異なるラベルを持つテキストの対である。
【0037】
図8は、生成後の対データの例である。図中のキーデータ802はキーとなるテキストであり、データ803はキーデータの対になるデータである。ラベル804は、正例対の場合は1となり、負例対の場合は0となる新たなラベルである。対データからの学習では、これらのラベルが学習における正解ラベルとなる。
【0038】
図2の正例生成(対データ)108で、正例対を生成する。具体的には、ラベル付きテキストデータ115の全データをキーデータとし、各キーデータに対し、キーデータと同じラベルを持つ他のデータを抽出して正例データとする。キーデータと正例データの対が正例対となる。
【0039】
図2の負例生成(対データ)110で、負例対を生成する。公知の方法(非特許文献1参照)では、キーデータと同じラベルを持たないデータをランダムに抽出して負例データとする。この負例データをランダム負例データと呼ぶ。キーデータとランダム負例データの対が負例対となる。この負例対のことをランダム負例対と呼ぶ。
【0040】
本発明では、キーデータと類似しているが、キーデータと同じラベルを持たないデータを負例データとして抽出する。この負例データをニアミス負例データと呼ぶ。キーデータとニアミス負例データの対が負例対となる。この負例対のことをニアミス負例対と呼ぶ。
【0041】
図9に、あるキーデータ「タグが付いていないメールをフィルタリングしたい。」に対する正例データ、ランダム負例データ、ニアミス負例データの例を示す。ランダム負例データ「アカウントを削除したい」はキーデータとは全く異なる意味の文であるのに対し、ニアミス負例データ「キーワードでメールをフィルタリングしたい」は、キーデータとは似ているが、キーデータのラベル(回答)とは異なるラベル(回答)を持つテキストデータとなっている。
【0042】
ニアミス負例データは、ラベルの境界に近い負例データであるため、ニアミス負例データを用いることで、効率の良い埋め込み表現モデル学習が可能になる。この効果は、訓練データの数が少ない場合に顕著になる。
【0043】
図13は、ニアミス負例データ生成のフロー図である。各キーデータq(1301)に対し、ニアミス負例データq(n)(1305)を生成する。
まず、類似データ検索1302において、ラベル付きテキストデータ115の中から、キーデータq(1301)に類似するテキストデータを抽出する。具体的には、公知の文書検索の技術を用いて、キーデータq(1301)とラベル付きテキストデータ115の各テキストデータとの類似度を計算し、類似度順にソートする。ソート結果が1303の{q(1),q(2),…,q(k),…}である。q(k)はqとの類似度がk番目のテキストデータである。また、このテキストデータq(k)のラベルはa(k)であるとする。
【0044】
次に、ラベル比較1304で、キーデータq(1301)のラベルaと、検索結果のテキストデータq(k)のラベルa(k)を、検索結果の上位から比較する。aとa(k)が等しくない最上位のテキストデータq(n)(1305)をニアミス負例データとする。
【0045】
本実施例1では、キーデータと異なるラベルを持つテキストデータの中で、キーデータとの類似度が最大のテキストデータをニアミス負例データとしているが、類似度が上位数個までのテキストデータ(キーデータと異なるラベルを持つ)をニアミス負例としてもよい。この場合、一つのキーデータに対し、複数のニアミス負例データが生成されることになる。
【0046】
図4は、生成した正例(対データ)118と負例(対データ)120を用いて、埋め込み表現モデル121を繰り返し学習するフロー図である。
図4の埋め込み表現モデル学習(対データ)111で埋め込み表現モデル121を学習する。埋め込み表現モデル評価113で、学習した埋め込み表現モデル121を評価する。十分な学習が行われた場合、ここで学習が終了する。そうでない場合、負例更新(対データ)115で負例(対データ)120を更新して、同じ学習サイクルを繰り返す。以降、それぞれの処理について説明する。
【0047】
埋め込み表現モデル学習(対データ)111には、公知の埋め込み表現モデル学習法(例えば、非特許文献1参照)を用いる。図11は、公知の埋め込み表現モデル学習法の詳細である。
【0048】
訓練データは、キーデータq(1101)、正例データq+(1102)、負例データq-(1103)の3つ組みからなる。公知の方法では、負例データとしてランダム負例データを与えるが、本発明ではニアミス負例データを与える。
【0049】
各データは、まず、トークン分割によりトークンの列に分割され、各トークンが数百次元の実数ベクトルに変換される。つまり、各データは、長さがトークン数の実数ベクトルリストになる。この実数ベクトルリストを、埋め込み表現モデル1104に入力すると、同じ次元数の実数ベクトルリストが出力される。
【0050】
埋め込み表現モデル1104の初期モデルとして、既存の事前学習モデルを用いてもよい。埋め込み表現モデル1104の出力である実数ベクトルリストをプーリング層1105に入力すると、実数ベクトルリストが単一の実数ベクトルに縮約される。様々な縮約方法があるが、本実施例では、実数ベクトルリスト内の各トークンベクトルに渡り同じ次元の値を平均する方法を用いる。プーリング層1105の出力がデータの埋め込み表現となる。
【0051】
以上により、キーデータq(1101)、正例データq+(1102)、負例データq-(1103)に対して、キー埋め込み表現u(1106)、正例埋め込み表現u+(1107)、負例埋め込み表現u-(1108)が得られる。
【0052】
次に、正例(対データ)および負例(対データ)の類似度を余弦で計算する。正例(対データ)の類似度はcos(u,u+)となり、負例(対データ)の類似度はcos(u,u-)となる。
【0053】
学習の目的は、正例(対データ)が近く、負例(対データ)が遠くなるように埋め込み表現モデルのパラメータを調整することである。よって、正例(対データ)の類似度cos(u,u+)が最大値の1.0になり、負例(対データ)の類似度cos(u,u-)が最小値の0.0になるように学習すればよい。実際は、これらの値を目標値として、対応する現状の類似度との差をクロスエントロピーで計算し、この差を誤差(損失値)とみなし、誤差逆伝播法で埋め込み表現モデルのパラメータを更新する。
【0054】
パラメータを更新した後は、図4の埋め込み表現モデル評価(対データ)113により、前回評価時との誤差変化を計算し、学習を継続するか終了するかを決定する。一般には、直近の数回の学習で誤差が減少しなかった場合に学習を終了する場合が多い。また、評価用のデータは、あらかじめ、正例(対データ)118と負例(対データ)120から分けておくことが多い。
【0055】
学習を継続する場合、図4の負例更新(対データ)115で、必要であれば負例(対データ)120を更新する。更新のタイミングは、あらかじめ決めておいた学習サイクル毎でもよいし、埋め込み表現モデル評価(対データ)113で計算した評価値(評価データの誤差)から決定してもよい。後者の場合、例えば、誤差の減少の幅がある値を超えた場合、学習が大きく進んだとみなして、負例更新を行うという方針が考えられる。
【0056】
図14は、負例更新(対データ)の詳細フローである。基本的な流れは、図13の負例生成(対データ)と同じである。
【0057】
各キーデータq(1401)に対し、類似データ検索1402により、キーデータq(1401)と各データとの類似度を計算し、類似度リスト1303を得る。ラベル比較1404において、キーデータq(1401)のラベルと、類似度リスト内の各データのラベルを比較して、両者が異なり類似度が最も高いデータをニアミス負例データq(n)(1405)とする。負例生成と同じく、ラベルが異なり類似度が高い複数のデータをニアミス負例データとしてもよい。
【0058】
類似度を検索するために、まず、現在学習中の埋め込み表現モデル121を用いて、埋め込み1406により、ラベル付きテキストデータ115内の全データを埋め込み表現に変換し、ラベル付き埋め込み表現1407に格納しておく。次に、類似データ検索1402が、キーデータq(1401)の埋め込み表現と、他のデータの埋め込み表現との類似度を余弦で計算して、類似度でソートし類似度リスト1303を得る。
【0059】
以上が、対データからの埋め込み表現モデル学習の処理である。本発明では、対データからの埋め込み表現モデル学習に加え、点データからの埋め込み表現モデル学習を併用する。学習対象の埋め込み表現モデルは同一である。
【0060】
図3は、点データからの埋め込み表現モデル学習で用いる点データの生成法の概略である。ラベル付きテキストデータ115から、正例生成(点データ)109により正例(点データ)119を生成する。点データからの学習で必要なのは正例のみである。
【0061】
図10は、生成後の点データの例である。図中のキーデータ1002はキーとなるテキストであり、ラベル1103は、キーデータ1002が持つラベルそのものである。よって、図3の正例生成(点データ)109の処理は、単純にラベル付きテキストデータ115からデータを抽出するだけの処理となる。
【0062】
図5は、点データからの埋め込み表現モデル学習の概略である。既に図3の方法で生成してある正例(点データ)を用いて、埋め込み表現モデル学習(点データ)112で埋め込み表現モデル121のパラメータを更新する。埋め込み表現モデル評価(点データ)で学習したモデルを評価して、学習を継続するかどうかを決定する。
【0063】
埋め込み表現モデル学習(点データ)112には、公知の学習法を用いる。図12は公知の学習法の詳細である。
【0064】
訓練データは、キーデータq(1101)とそのラベルである。図12の例では、ラベルがa_2であると仮定する。
【0065】
キーデータは、まず、トークン分割によりトークンの列に分割され、各トークンが数百次元の実数ベクトルに変換される。つまり、各データは、長さがトークン数の実数ベクトルリストになる。この実数ベクトルリストを、埋め込み表現モデル1202に入力すると、同じ次元数の実数ベクトルリストが出力される。埋め込み表現モデル1202の初期モデルとして、既存の事前学習モデルを用いてもよい。
【0066】
埋め込み表現モデル1104の出力である実数ベクトルリストをプーリング層1203に入力すると、実数ベクトルリストが単一の実数ベクトルに縮約される。様々な縮約方法があるが、本実施例では、実数ベクトルリスト内の各ベクトルに渡り同じ次元の値を平均する方法を用いる。プーリング層1203の出力がデータのキーデータの埋め込み表現であるキー埋め込み表現u(1204)となる。
【0067】
キー埋め込み表現u(1204)を分類層1205に入力して、キー埋め込みu(1204)が属するラベルの確率分布[P(a_1|q),P(a_2|q),P(a_3|q),…](1205)を得る。分類層1205は、全結合層とsoftmax層で構成する。
【0068】
得られた確率分布1205と正解の確率分布(例の場合、正解ラベルがa_2であるため[0.0,1.0,0.0,…]となる)との差をクロスエントロピーで計算し、この差を誤差(損失値)とみなし、誤差逆伝播法で埋め込み表現モデルのパラメータを更新する。
【0069】
パラメータを更新した後は、図5の埋め込み表現モデル評価(点データ)114により、前回評価時との誤差変化を計算し、学習を継続するか終了するかを決定する。一般には、直近の数回の学習で誤差が減少しなかった場合に学習を終了する場合が多い。また、評価用のデータは、あらかじめ、正例(点データ)119からより分けておくことが多い。
【0070】
次に、図6で、対データからの埋め込み表現モデル学習と、点データからの埋め込み表現モデル学習の並行学習について説明する。
【0071】
図6の右半分が、対データからの埋め込み表現モデル学習(図4と同じ)であり、図6の左半分が、点データからの埋め込み表現モデル学習(図5と同じ)である。それぞれの学習対象となるのは、同一の埋め込み表現モデル121である。また、それぞれの学習法については、既に説明した方法と同じである。
【0072】
繰り返し学習において、対データからの埋め込み表現モデル学習(右のパス)と点データからの埋め込み表現モデル学習(左のパス)のどちらを実行するかを決定するのが、学習制御116である。学習制御の方法にはいくつかのバリエーションが考えられる。
【0073】
最も単純な方法は、交互に実行する方法である。また、ユーザが指定した割合で選択してもよい。埋め込み表現モデルを検索やクラスタリングで使う際は、対データからの学習が効果的であり、分類で使う際は、点データからの学習が効果的である。そのため、どちらの用途を重視するかによって、学習回数の割合を制御するのが好ましい。
【0074】
例えば、対データからの学習と点データからの学習を2対1の割合で実行すると指定した場合、対データからの学習を2回実行した後に、点データからの学習を1回実行し、このサイクルを繰り返す方法が考えられる。他にも、指定された割合を反映した確率分布に基づきランダムに学習法を選択する方法が考えられる。例の場合は、2/3の確率で、対データからの学習を選択し、1/3の確率で点データからの学習を選択することになる。
【0075】
図15の1501に、埋め込み表現モデル学習システムのユーザインターフェイス例を示す。
【0076】
ユーザは、ラベル付きデータ選択1502ボタンをクリックして、ラベル付きテキストデータを選択できる。訓練データ生成1504ボタンをクリックすると、ラベル付きテキストデータから訓練データを生成する。具体的には、対データからの埋め込み表現モデル学習のための訓練データである正例(対データ)および負例(対データ)、点データからの埋め込み表現モデル学習のための正例(点データ)である。
【0077】
スライドバー1503では、対データと点データの割合が指定できる。この割合になるように、多い方のデータをランダムサンプリングする。
【0078】
1505に生成したニアミス負例をリストアップする。各キーデータに対して、生成したニアミス負例が表示される。表示したニアミス負例が適切でなければ、削除1506ボタンを押して、この対データを無効にすることができる。また、表示されているニアミス負例を直接編集して修正1507ボタンを押し、登録することもできる。
【0079】
学習開始1511ボタンを押すと学習を開始する。学習の際に、対データからの学習と点データからの学習の割合をスライドバー1508で指定することができる。上記で説明したように、この割合に応じて、繰り返し学習時の各繰り返しで、どちらの学習を実行するかの選択を行う。
【0080】
また、ニアミス負例の更新頻度も明示的に選択・指定できる。回数指定を選んだ場合は、1509で指定した繰り返し回数毎にニアミス負例を更新する。誤差減少率指定を選んだ場合は、繰り返し前後の誤差の減少率が、1510で指定した値よりも大きい場合に、ニアミス負例を更新する。
【0081】
学習された埋め込み表現モデルは、モデルダウンロード1512ボタンをクリックすることで任意の記憶媒体に保存することができる。
【実施例0082】
実施例1はテキストデータを対象とした埋め込み表現モデル学習システムに関するものだが、本発明は画像データや音声データを対象とすることも可能である。テキストデータの場合は、学習対象の埋め込み表現モデルとして、Transformersという公知のモデルを対象としていたが、画像データや音声データの場合も、埋め込み表現モデル自体は公知のモデルを使い、学習法として実施例1と同じ方法を適用することになる。
【0083】
上記実施例では、同じラベルを持つ対データ(正例対)と異なるラベルを持つ対データ(負例対)から埋め込み表現モデルを学習する際に、類似しているが異なるラベルを持つ対データを負例対として用いる。また、対データからの埋め込み表現モデル学習法に加え、単一のデータが対応する正解ラベルに属するように学習を進める埋め込み表現モデル学習法を併用する。
【0084】
このように、上記実施例では、類似しているがラベルが異なる文対を用いることで、少ないデータでもラベルの境界が効率良く学習できる。また、対データからの学習と点データからの学習を併用することで、少ない訓練データを効率良く利用することができる。
【符号の説明】
【0085】
101 埋め込み表現モデル学習システム
102 入力装置
103 出力装置
104 通信装置
105 演算装置
106 メモリ
107 補助記憶装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15