(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-27
(45)【発行日】2024-03-06
(54)【発明の名称】訓練データ生成プログラム、訓練データ生成方法および訓練データ生成装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20240228BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2022543256
(86)(22)【出願日】2020-08-21
(86)【国際出願番号】 JP2020031713
(87)【国際公開番号】W WO2022038785
(87)【国際公開日】2022-02-24
【審査請求日】2022-11-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】鄭 育昌
【審査官】牛丸 太希
(56)【参考文献】
【文献】特許第6513314(JP,B1)
【文献】@yolo_kiyoshi,コロナ禍による概念ドリフト(Concept Drift)が機械学習タスクに与える影響,キヨシの命題 [online],2020年05月28日,[検索日 2020.10.23], インターネット:<URL:https://yolo-kiyoshi.com/2020/05/28/post-1850/>
【文献】Jan Lukes et al.,Sentiment analysis under temporal shift,ACL Anthology [オンライン],2018年,頁65-71,[検索日 2024.01.12] インターネット<URL: https://aclanthology.org/W18-6210>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
第1の複数の訓練データ
を機械学習させた第1のモデルに、前記第1の複数の訓練データ
を入力することによって、前記第1の複数の訓練データそれぞれに対応する第1の値を取得し、
前記第1の複数の訓練データと第2の複数の訓練データと
を機械学習させた第2のモデルに、
前記第1の複数の訓練データと前記第2の複数の訓練データとを入力することによって、
前記第1の複数の訓練データと前記第2の複数の訓練データそれぞれに対応する第2の値を取得し、
前記第1の値と前記第2の値とを比較し、
前記第2のモデルに入力された訓練データのうち、前記比較において、前記第2の値が前記第1の値より小さい訓練データを除外した第3の複数の訓練データを生成する、
処理をコンピュータに実行させることを特徴とする訓練データ生成プログラム。
【請求項2】
前記比較する処理は、前記第1の値の平均に対する第1の偏差と、前記第2の値の平均に対する第2の偏差とを比較する処理を含み、
前記第2のモデルに入力された訓練データのうち、前記第1の偏差と前記第2の偏差との差が特定の条件を満たす
訓練データを除外した前記第3の複数の訓練データを生成する、
ことを特徴とする請求項1に記載の訓練データ生成プログラム。
【請求項3】
前記第1の複数の訓練データ
に対応する各事象と、前記第2の複数の訓練データに
対応する各事象との統計情報を取得する処理をさらに前記コンピュータに実行させ、
前記第2のモデルに入力された訓練データのうち、取得した前記統計情報が特定の条件を満たす
訓練データを除外した前記第3の複数の訓練データを生成する、
ことを特徴とする請求項1に記載の訓練データ生成プログラム。
【請求項4】
前記第2のモデルに入力された訓練データ同士の類似度を計算する処理をさらに前記コンピュータに実行させ、
前記第2のモデルに入力された訓練データのうち、計算された前記類似度が特定の条件を満たす
訓練データを除外した前記第3の複数の訓練データを生成する、
ことを特徴とする請求項1に記載の訓練データ生成プログラム。
【請求項5】
生成した前記第3の複数の訓練データ
を機械学習させた第3のモデルに、前記第3の複数の訓練データ
を入力することによって、第3の値を取得し、
前記第3の値と前記第2の値とを比較し、
前記比較の結果に応じて、前記第3の
複数の訓練データが訓練データとして適性であるか否かを判定する、
処理をさらに前記コンピュータに実行させることを特徴とする請求項1に記載の訓練データ生成プログラム。
【請求項6】
生成した前記第3の複数の訓練データを前記第2の複数の訓練データとしたうえで、前記第2の値を取得する処理と、前記比較する処理と、前記生成する処理とを再実行させる、
処理をさらに前記コンピュータに実行させることを特徴とする請求項1に記載の訓練データ生成プログラム。
【請求項7】
生成した前記第3の複数の訓練データに基づいた機械学習により生成したモデルをシステムで運用するモデルに適用する、
処理をさらに前記コンピュータに実行させることを特徴とする請求項1に記載の訓練データ生成プログラム。
【請求項8】
第1の複数の訓練データ
を機械学習させた第1のモデルに、前記第1の複数の訓練データ
を入力することによって、前記第1の複数の訓練データそれぞれに対応する第1の値を取得し、
前記第1の複数の訓練データと第2の複数の訓練データと
を機械学習させた第2のモデルに、
前記第1の複数の訓練データと前記第2の複数の訓練データとを入力することによって、
前記第1の複数の訓練データと前記第2の複数の訓練データそれぞれに対応する第2の値を取得し、
前記第1の値と前記第2の値とを比較し、
前記第2のモデルに入力された訓練データのうち、前記比較において、前記第2の値が前記第1の値より小さい訓練データを除外した第3の複数の訓練データを生成する、
処理をコンピュータに実行させることを特徴とする訓練データ生成方法。
【請求項9】
第1の複数の訓練データ
を機械学習させた第1のモデルに、前記第1の複数の訓練データ
を入力することによって、前記第1の複数の訓練データそれぞれに対応する第1の値を取得し、
前記第1の複数の訓練データと第2の複数の訓練データと
を機械学習させた第2のモデルに、
前記第1の複数の訓練データと前記第2の複数の訓練データとを入力することによって、
前記第1の複数の訓練データと前記第2の複数の訓練データそれぞれに対応する第2の値を取得し、
前記第1の値と前記第2の値とを比較し、
前記第2のモデルに入力された訓練データのうち、前記比較において、前記第2の値が前記第1の値より小さい訓練データを除外した第3の複数の訓練データを生成する、
処理をコンピュータに実行させることを特徴とする訓練データ生成装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、訓練データ生成プログラム、訓練データ生成方法および訓練データ生成装置に関する。
【背景技術】
【0002】
従来、自動翻訳システムなどにおける自然言語処理では、離散系列(元言語)から別の離散系列(翻訳先言語)への変換処理に機械学習技術による機械学習モデルが活用されている。自然言語処理では、言葉の変化(concept drift)により、新語や既存語の新しい意味が増加し、入力データの傾向、入力に対する出力の傾向が変化する。したがって、出力の品質を維持するために機械学習モデルの再訓練が行われる。
【0003】
この再訓練において、再訓練用の訓練データに古い訓練データが含まれる場合、再訓練効果が低下する。例えば、同じ言葉の意味(訳語)が変化した場合に、再訓練データに古い意味の事例と新しい意味の事例とが併存した状態で再訓練を行うと、用語の翻訳をうまく訓練することが困難となる。したがって、再訓練用の訓練データからは、再訓練の効果が低下する訓練事例を取り除くことが求められる。
【0004】
この訓練事例を取り除く従来技術としては、対応関係に誤りを含んでいる可能性のある離散系列の入力及び出力からなる訓練用ペアについて、順方向学習済みモデルを用いて品質スコアを計算し、自然言語処理等の機械学習に用いる訓練用データ中の誤ったデータを取り除くことができる学習品質推定装置が知られている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記の従来技術では、再訓練データに含まれる旧データの中から不適切な訓練事例を検出することが困難な場合があるという問題がある。例えば、再訓練において言葉の変化などに伴う新たな追加データが少ない場合、一機械学習モデルの品質スコアでは不適切な訓練事例を見極めることが困難である。このため、再訓練用の訓練データに不適切な訓練事例が混入することがあり、訓練効果の向上が見込めない場合がある。
【0007】
1つの側面では、機械学習の効果の向上を支援できる訓練データ生成プログラム、訓練データ生成方法および訓練データ生成装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
1つの案では、訓練データ生成プログラムは、第1の値を取得する処理と、第2の値を取得する処理と、比較する処理と、生成する処理とをコンピュータに実行させる。第1の値を取得する処理は、第1の複数の訓練データに基づいた機械学習により生成された第1のモデルに、第1の複数の訓練データに含まれる第1のデータを入力することによって、第1の値を取得する。第2の値を取得する処理は、第1の複数の訓練データと第2の複数の訓練データとに基づいた機械学習により生成された第2のモデルに、第1のデータと、第2の複数の訓練データに含まれる第2のデータとを入力することによって、第2の値を取得する。比較する処理は、第1の値と第2の値とを比較する。生成する処理は、比較の結果に応じて、第1の複数の訓練データと第2の複数の訓練データとに基づいて、第1のデータの少なくとも一部を含まない第3の複数の訓練データを生成する。
【発明の効果】
【0009】
機械学習の効果の向上を支援できる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施形態の概要を説明する説明図である。
【
図2】
図2は、第1の実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
【
図3】
図3は、第1の実施形態にかかる情報処理装置の動作例を示すフローチャートである。
【
図4】
図4は、第1の実施形態にかかる情報処理装置の処理の概要を説明する説明図である。
【
図5】
図5は、スコア計算の一例を説明する説明図である。
【
図6A】
図6Aは、第1の実施形態にかかる情報処理装置の処理の概要を説明する説明図である。
【
図6B】
図6Bは、第1の実施形態にかかる情報処理装置の処理の概要を説明する説明図である。
【
図7】
図7は、第2の実施形態にかかる情報処理装置の動作例を示すフローチャートである。
【
図8】
図8は、第2の実施形態にかかる情報処理装置の処理の概要を説明する説明図である。
【
図9】
図9は、第3の実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
【
図10】
図10は、第3の実施形態にかかる情報処理装置の動作例を示すフローチャートである。
【
図11】
図11は、第2訓練データの一例を説明する説明図である。
【
図12】
図12は、第4の実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
【
図13】
図13は、第4の実施形態にかかる情報処理装置の動作例を示すフローチャートである。
【
図14】
図14は、第5の実施形態にかかる情報処理装置の動作例を示すフローチャートである。
【
図15】
図15は、第5の実施形態にかかる情報処理装置の処理の概要を説明する説明図である。
【
図16】
図16は、第6の実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
【
図17】
図17は、第6の実施形態にかかる情報処理装置の動作例を示すフローチャートである。
【
図18】
図18は、第7の実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
【
図19】
図19は、第7の実施形態にかかる情報処理装置の動作例を示すフローチャートである。
【
図20】
図20は、コンピュータ構成の一例を示すブロック図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して、実施形態にかかる訓練データ生成プログラム、訓練データ生成方法および訓練データ生成装置を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する訓練データ生成プログラム、訓練データ生成方法および訓練データ生成装置は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【0012】
(概要)
図1は、実施形態の概要を説明する説明図である。
図1に示すように、本実施形態は、concept driftなどに対応し、出力の品質を維持するために、機械学習によるモデルの再訓練用データを生成するものであり、再訓練の効果が低下する事例を取り除き、最終結果として再訓練用の訓練データを生成する。
【0013】
なお、本実施形態では、再訓練を行うモデルとして、離散系列(元言語)から別の離散系列(翻訳先言語)への変換処理に用いるモデルを例示する。しかしながら、本実施形態を適用するモデルは、変化に対応して再訓練を行うモデルであればよく、このような自然言語処理に用いるモデルに限定しない。例えば、顧客の特徴量を入力とし、顧客に対する推薦商品(商品カテゴリ)を出力するモデルを用いるレコメンドシステムにおけるモデルの再訓練に適用してもよい。
【0014】
図1に示すように、第1訓練データD1は、変化前の旧事例に関する訓練データである。第2訓練データD2は、concept driftなどによる変化後の新事例(言葉の意味や言い方の変化、新語(新製品名などの未登録語))に関する訓練データである。各事例には、モデルに対する入力と、正解とする出力とが含まれる。
【0015】
例えば、第1訓練データD1には、入力が「I like AAAA(果物名)!」および出力が「AAAAは私の大好物です。」の事例001と、入力が「I love BBBB(社名)!」および出力が「私はBBBB信者です。」の事例002とが含まれる。また、第2訓練データD2には、入力が「I like AAAA(社名)!」および出力が「私はAAAA社の製品に目がない」の事例003と、入力が「I love CCCC(新製品名)!」および出力が「CCCC大好き!」の事例004とが含まれる。
【0016】
ここで、第2訓練データD2において、事例003は、事例001に対する意味の変化(「AAAA(果実)→「AAAA(社名)」」)を示す事例である。すなわち、入力はともに「I like AAAA」であるが、出力は事例001が「AAAAは私の大好物です。」に対し、事例003が「私はAAAA社の製品に目がない」となっている。また、事例004は、「CCCC(新製品名)」という新たに登場した言葉(未登録語)を示す事例である。
【0017】
再訓練の際に、上記の新旧事例(事例001~事例004)で訓練を行う場合、事例002については、旧事例のみであるので新旧事例が混在しても訓練できる。同様に、事例004について、新事例のみであるので新旧事例が混在しても訓練できる。これに対し、事例001と、事例003とは、入力が同一(若しくはほぼ同じ)に対して出力が異なることから、混在した場合に互いに矛盾した事例となる。したがって、事例001と、事例003とが混在する場合には、両方ともに訓練することはできない。すなわち、事例001と、事例003とが混在する場合は、再訓練効果が低下する。
【0018】
そこで、本実施形態では、第1訓練データD1で機械学習して第1モデルM1を生成する(S1)。次いで、本実施形態では、生成した第1モデルM1に第1訓練データD1を入力し、第1訓練データD1における事例001、事例002の生成スコア(第1モデルM1の出力に関するスコア)を計算する(S2)。
【0019】
次いで、本実施形態では、第1訓練データD1と、第2訓練データD2と機械学習して第2モデルM2を生成する(S3)。次いで、本実施形態では、生成した第2モデルM2に第1訓練データD1と、第2訓練データD2とを入力し、事例001~事例004の生成スコア(第2モデルM2の出力に関するスコア)を計算する(S4)。
【0020】
新旧事例で訓練した第2モデルM2を用いてその新旧事例の生成スコアを計算する場合、新旧事例の中に矛盾した事例が存在すると、その矛盾した事例の出力に関する生成スコアが低くなる。また、矛盾にならない事例の出力に関する生成スコアは、高い水準を維持できる。
【0021】
そこで、本実施形態では、S2の生成スコアと、S4の生成スコアとを比較し、第1訓練データD1に第2訓練データD2を加えた訓練データをもとに、第1訓練データD1の旧事例の中の矛盾と判定した事例を含まない訓練データを生成する。具体的には、本実施形態では、S4での事例002、004の生成スコアが高く、事例001の生成スコアがS2より低いことで、旧事例の中の事例001が矛盾と判定する(S5)。これにより、第1訓練データD1に第2訓練データD2を加えた訓練データをもとに、旧事例の中の事例001を含まない訓練データを生成する。
【0022】
次いで、本実施形態では、削除した事例001が出力の品質を低下させる事例(ノイズ)であることを確認するため、第1訓練データD1に第2訓練データD2を加えた訓練データから事例001を削除して機械学習を行い、第3モデルM3を生成する(S6)。次いで、本実施形態では、生成した第3モデルM3に事例002、003、004を入力し、事例002、003、004の生成スコア(第3モデルM3の出力に関するスコア)を計算する(S7)。ここで、矛盾にならない事例の生成スコアは、ほぼ変わらず、変動があったとしても微減(訓練データ規模が減少の影響)であると推測できる。
【0023】
次いで、本実施形態では、S7での事例003の生成スコアがS4での生成スコアより高い、かつ、S7での事例002、004の生成スコアがほぼ変わらない場合、削除した事例001が出力の品質を低下させる事例(ノイズ)であると確認する。この確認により、本実施形態では、事例001が削除すべきと判定する(S8)。
【0024】
よって、本実施形態では、第1訓練データD1に第2訓練データD2を加えた訓練データにおいて事例001を削除した再訓練データが確定(事例002、003、004)する。このように、本実施形態では、第1モデルM1、第2モデルM2の生成スコアを用いることで、出力の品質を低下させる事例(ノイズ)を精度よく取り除き、再訓練効果の向上が見込める訓練データを生成することができる。また、本実施形態では、第3モデルM3の生成スコアを用いることで、取り除く事例が出力の品質を低下させる事例であることを見極めた上で再訓練用の訓練データを生成することができる。
【0025】
(第1の実施形態)
図2は、第1の実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
図2に示すように、情報処理装置1は、処理制御部10、モデル学習部11、スコア計算部12、スコア評価計算部13、スコア一時保存部14および訓練データ生成部15を有する。この情報処理装置1には、例えばPC(Personal Computer)などを適用できる。
【0026】
処理制御部10は、再訓練データを生成する処理の実行を制御する処理部である。
【0027】
モデル学習部11は、公知の機械学習に関する処理を行うことでモデルを生成する処理部である。具体的には、モデル学習部11は、入力と出力がペアとなる訓練データの入力系列から出力系列を生成できるように、モデルの機械学習(パラメータの最適化)を行う。
【0028】
例えば、モデル学習部11は、第1訓練データD1を用いた訓練を行うことで第1モデルM1を生成する。また、モデル学習部11は、第1訓練データD1を含む、第2訓練データD2を用いた訓練を行うことで第2モデルM2を生成する。また、モデル学習部11は、第3訓練データD3を用いた訓練を行うことで第3モデルM3を生成する。
【0029】
ここで、第1訓練データD1は、自然言語の離散系列の入力(例えば元言語)と出力(例えば翻訳先言語)がペアとなり、自動翻訳システムが運用している翻訳に関するモデルを生成するための訓練用データである。第2訓練データD2は、第1訓練データD1に加えて、concept driftなどによる変化後の新事例を含む訓練用データである。第3訓練データD3は、第1訓練データD1と、第2訓練データD2とをもとに、旧事例の中の矛盾と判定した事例を含まない訓練データとして新たに作成した訓練用データである。
【0030】
スコア計算部12は、機械学習により生成したモデルを訓練データの各入力に適用し、対応する各出力を生成する際に、その出力に関するスコアを計算する処理部である。このスコアの計算には、例えば特開2019-149030号公報などの公知の計算手法を用いる。スコア計算部12は、計算したスコアを、訓練データ(事例)ごとに識別情報(例えばID)を付与した上でスコア一時保存部14に保存する。
【0031】
例えば、スコア計算部12は、第1モデルM1に第1訓練データD1を入力し、入力した各事例の生成スコアを計算してスコア一時保存部14に保存する。また、スコア計算部12は、第2モデルM2に第2訓練データD2を入力し、入力した各事例の生成スコアを計算してスコア一時保存部14に保存する。また、スコア計算部12は、第3モデルM3に第3訓練データD3を入力し、入力した各事例の生成スコアを計算してスコア一時保存部14に保存する。
【0032】
スコア評価計算部13は、スコア一時保存部14に保存された生成スコアを比較して生成スコアの変化を評価し、訓練データから削除する事例を検出する処理部である。例えば、スコア評価計算部13は、第2モデルM2の生成スコアと第1モデルM1の生成スコアとを比較し、旧事例の中で矛盾する事例を検出する。
【0033】
スコア一時保存部14は、スコア計算部12が計算した生成スコアを一時的にメモリ等に保存する処理部である。具体的には、スコア一時保存部14は、生成もとのモデルと、訓練データ(事例)とを対応付けて生成スコアを保存する。
【0034】
訓練データ生成部15は、第1訓練データD1を含む第2訓練データD2の訓練データにおいて、スコア評価計算部13の検出結果をもとに、削除する事例として指定された事例を削除して第3訓練データD3を生成する処理部である。また、訓練データ生成部15は、第3モデルM3の生成スコアを用いることで、削除した事例がモデルの出力の品質させる事例であることを確認した上で、最終結果として再訓練用の訓練データ(修正後第1訓練データD11、修正後第2訓練データD21)を生成する。
【0035】
修正後第2訓練データD21は、確認後の第3訓練データD3を処理結果として出力したものである。修正後第1訓練データD11は、第3訓練データD3から第1訓練データD1に含まれる訓練データのみを抽出したものである。
【0036】
図3は、第1の実施形態にかかる情報処理装置1の動作例を示すフローチャートである。
図3に示すように、処理が開始されると、処理制御部10は、第1訓練データD1、第2訓練データD2の入力を受け付ける(S10)。
【0037】
次いで、モデル学習部11は、第1訓練データD1と、第2訓練データD2とでそれぞれ訓練を行い、第1モデルM1と、第2モデルM2とを生成する(S11)。具体的には、モデル学習部11は、第1訓練データD1を用いた訓練を行うことで第1モデルM1を生成する。また、モデル学習部11は、第2訓練データD2を用いた訓練を行うことで第2モデルM2を生成する。
【0038】
次いで、スコア計算部12は、第1モデルM1を第1訓練データD1へ適用し、第1訓練データD1に含まれる各事例の出力の生成スコアを計算し、スコア一時保存部14へ保存する(S12)。
【0039】
図4は、第1の実施形態にかかる情報処理装置の処理の概要を説明する説明図である。
図4に示すように、スコア計算部12は、S12において、第1モデルM1で第1訓練データD1に含まれる各事例の生成スコアを計算する。これにより、例えば、番号001の事例001については、生成スコア0.99が得られる。また、番号002の事例002については、生成スコア0.96が得られる。
【0040】
次いで、スコア計算部12は、第2モデルM2を第2訓練データD2へ適用し、第2訓練データD2に含まれる各事例の出力の生成スコアを計算し、スコア一時保存部14へ保存する(S13)。例えば、
図4に示すように、S13では、第2訓練データD2に含まれる各事例(事例001~事例004)の生成スコアが得られる。例えば、番号001の事例001については、生成スコア0.60が得られる。また、番号002の事例002については、生成スコア0.91が得られる。また、番号003の事例003については、生成スコア0.56が得られる。また、番号004の事例004については、生成スコア0.88が得られる。
【0041】
図5は、スコア計算の一例を説明する説明図である。
図5に示すように、スコア計算部12における生成スコアのスコア計算については、各事例を第1モデルM1、第2モデルM2、第3モデルM3などに入力した結果(出力)に対するスコアをそのまま用いてもよい。また、スコア計算部12におけるスコア計算の別手法としては、N=全出力可能数、n=正解出力の順位としてScore=-log(n/N)のように正解出力の全体順位で計算してもよい。さらに、スコア計算部12は、Score=-log(n/N・s)、s=正解出力のスコアとして正解出力のスコアに全体順位で重み付けをおこなってもよい。
【0042】
図3に戻り、S13に次いで、スコア評価計算部13は、スコア一時保存部14にあるS12とS13の生成スコアを比較し、S13でスコアが減少した第1訓練データD1の入出力ペア(事例)を検出する(S14)。これにより、
図4に示すように、スコア評価計算部13は、第1訓練データD1の中の事例001の生成スコアが0.89→0.60と改悪したことを検知する(S14)。
【0043】
次いで、訓練データ生成部15は、第1訓練データD1と第2訓練データD2から、S14で検出した入出力ペア(事例)を削除し、削除した新しい訓練データを合成して第3訓練データD3を生成する(S15)。具体的には、
図4に示すように、訓練データ生成部15は、第2訓練データD2からS14で生成スコアの改悪を検知した事例001を削除して第3訓練データD3を作成する。すなわち、第3訓練データD3は、第2訓練データD2より事例001を削除したものとなる。
【0044】
次いで、モデル学習部11は、第3訓練データD3を用いた訓練を行うことで第3モデルM3を生成する(S16)。
図6A、
図6Bは、第1の実施形態にかかる情報処理装置の処理の概要を説明する説明図である。
図6Aに示すように、モデル学習部11は、S16において、第3訓練データD3に含まれる事例002~004を用いた機械学習により第3モデルM3を生成する。
【0045】
次いで、スコア計算部12は、第3モデルM3を第3訓練データD3の各入力へ適用し、入力に対応する各出力の生成スコアを計算してスコア一時保存部14へ保存する(S17)。具体的には、
図6Aに示すように、スコア計算部12は、S17において、第3モデルM3で第3訓練データD3に含まれる各事例(事例002~004)の生成スコアを計算する。これにより、例えば、番号002の事例002については、生成スコア0.89が得られる。また、番号003の事例003については、生成スコア0.82が得られる。また。番号004の事例004については、生成スコア0.87が得られる。
【0046】
次いで、スコア評価計算部13は、スコア一時保存部14にあるS17とS13の生成スコアを比較し、S13で生成スコアが低い事例のスコアがS17で向上した場合、次のS19へ処理を進める(S18)。
【0047】
具体的には、
図6Bに示すように、スコア評価計算部13は、S18において、S17とS13の生成スコアを比較し、S17の結果における生成スコアの改悪があるかどうかの適切性検証を行う。
【0048】
S19において、訓練データ生成部15は、第3訓練データD3をそのまま修正後第2訓練データD21として出力し、第3訓練データD3から第1訓練データD1にある部分のみを抽出して修正後第1訓練データD11として出力する。次いで、訓練データ生成部15は、再訓練用の訓練データの最終結果としての修正後第2訓練データD21、修正後第1訓練データD11を出力し(S20)、処理を終了する。
【0049】
例えば、
図6Bに示すように、スコア評価計算部13は、S18において、S17の事例003の生成スコアがS13より高い、かつ事例002、004の生成スコアに大きく変化がない場合、S17の改悪なし、事例001が削除すべきと判定する。この判定結果をもとに、訓練データ生成部15は、事例001が削除された修正後第2訓練データD21、修正後第1訓練データD11を出力する(S19a)。
【0050】
また、
図6Bに示すように、スコア評価計算部13は、S18において、S17の事例002、004の生成スコアが大きく下がる場合、S17の改悪あり、事例001の削除を取り消しと判定する。この判定結果をもとに、訓練データ生成部15は、入力時と同様の第1訓練データD1、第2訓練データD2に戻した修正後第1訓練データD11、修正後第2訓練データD21を出力する(S19b)。
【0051】
このように、第1の実施形態では、再訓練効果の向上が見込める訓練データ(第3訓練データD3)を生成することができる。また、第1の実施形態では、第3訓練データD3について、取り除く事例が出力の品質を低下させる事例であることを見極めた上で再訓練用の訓練データ(修正後第1訓練データD11、D21)を生成することができる。
【0052】
(第2の実施形態)
第2の実施形態では、スコア一時保存部14にあるS12とS13の生成スコアについて統計量(スコアの偏差、平均値)での比較を行って削除対象の訓練データ(事例)を得る点が第1の実施形態とは異なる。
【0053】
図7は、第2の実施形態にかかる情報処理装置1の動作例を示すフローチャートである。
図7に示すように、処理が開始されると、スコア評価計算部13は、第1モデルM1での第1訓練データD1の生成スコアと(S12)、第2モデルM2での第2訓練データD2の生成スコアと(S13)の入力を受け付ける(S30)。
【0054】
次いで、スコア評価計算部13は、第1訓練データD1と第2訓練データD2の生成スコアの旧訓練データ部分(新規の訓練データを除いた部分)のみの統計量を取得する(S31)。ここで取得する統計量は、第1訓練データD1または第2訓練データD2の生成スコアの平均値と、各訓練データの生成スコアの偏差(生成スコアと平均値との差)である。
【0055】
次いで、スコア評価計算部13は、生成スコアが改悪した場合、その偏差の差が負数になることから、そのような条件を満たす訓練データを削除対象とする。具体的には、スコア評価計算部13は、S13の偏差と、S12の偏差を比較し、訓練データ(事例)の偏差の差が負数である特定のしきい値よりさらに絶対値が大きい場合、その訓練データ(事例)を削除対象とする(S32)。次いで、スコア評価計算部13は、第2訓練データD2における削除対象の事例を訓練データ生成部15に出力する(S33)。これにより、訓練データ生成部15では、スコア評価計算部13からの出力に基づいて第2訓練データD2より事例を削除し、第3訓練データD3を生成する。
【0056】
図8は、第2の実施形態にかかる情報処理装置1の処理の概要を説明する説明図である。
図8において、事例IDの001~007は、旧訓練データ(第1訓練データD1)に対応する。また、事例IDの008、009は、新訓練データ(第2訓練データD2における第1訓練データD1に対する追加部分)に対応する。
【0057】
図8に示すように、スコア評価計算部13は、第1訓練データD1と第2訓練データD2の生成スコアの旧訓練データ部分(事例ID001~007)について統計量(スコアの偏差、スコア平均)を取得する。次いで、スコア評価計算部13は、偏差の差と、負数であるしきい値(例えば-0.1)とを比較し、条件を満たす事例ID001を削除対象と判定する。
【0058】
なお、このしきい値については、事前にユーザが指定してもよい。また、しきい値は、S13のスコアの標準偏差の負数値、または、S13の平均とS12のスコア差の負数値により自動設定してもよい。
【0059】
このように、第2の実施形態では、統計量を用いて生成スコアの比較を行うことで、生成スコアに含まれるノイズに対して頑健に削除対象の事例を判定できる。
【0060】
(第3の実施形態)
図9は、第3の実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
図9に示すように、情報処理装置1aは、前述した情報処理装置1に対して統計情報取得部16を有する点が異なる。
【0061】
統計情報取得部16は、第1訓練データD1に含まれる複数の事例と、第2訓練データD2に含まれる複数の事例の統計情報(本実施形態では単語の統計情報)を取得する処理部である。具体的には、統計情報取得部16は、第1訓練データD1、第2訓練データD2に含まれる各事例(単語)について、事例の出現頻度、互いの事例が生じる共起頻度を取得する。
【0062】
スコア評価計算部13は、統計情報取得部16が取得した統計情報に基づいて、その統計情報が特定の条件を満たす事例(第1訓練データD1に含まれる旧事例)に対応する訓練データを除外(削除)対象と判定する。このように、統計情報をもとに言葉の変化(concept drift)などの事例を特定し、削除対象としてもよい。
【0063】
例えば、スコア評価計算部13は、新・旧訓練データにおける入力または出力における単語の出現頻度が大きく変化する場合、言葉の変化(concept drift)があるものとしてその単語を含む訓練データの事例を除外対象とする。同様に、スコア評価計算部13は、新・旧訓練データにおける事例の入力または出力における単語の共起頻度が変化する場合、言葉の変化(concept drift)があるものとしてその単語を含む事例を除外対象とする。
【0064】
図10は、第3の実施形態にかかる情報処理装置1aの動作例を示すフローチャートである。
図10に示すように、処理が開始されると、統計情報取得部16は第2訓練データD2の入力を受け付ける(S40)。次いで、統計情報取得部16は、第2訓練データD2の統計情報(単語の出現頻度、単語の共起頻度)を新・旧の訓練データ別で取得する(S41)。
【0065】
次いで、スコア評価計算部13は、統計情報取得部16が取得した統計情報をもとに、前述した条件に当てはまる、第2訓練データD2における削除事例を選定する(S42)。なお、スコア評価計算部13は、第1訓練データD1にも存在する削除事例も同様に選定する。
【0066】
次いで、スコア評価計算部13は、第2訓練データD2における削除事例を訓練データ生成部15に出力する(S43)。これにより、訓練データ生成部15では、スコア評価計算部13からの出力に基づいて第2訓練データD2より事例を削除し、第3訓練データD3を生成する。
【0067】
図11は、第2訓練データD2の一例を説明する説明図である。
図11に示すように、旧データにおいて、入力の「AAAA(果物名)」と、出力の「大好物」との共起頻度は高いが、新データでは「AAAA(社名)」と「大好物」との共起頻度は低くなる。したがって、旧データにおけるID001の事例が削除事例となる。なお、共起頻度の変化は、例えば、事前に設定した共起頻度しきい値(SD)との比較により判定する。
【0068】
(第4の実施形態)
図12は、第4の実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
図12に示すように、情報処理装置1bは、前述した情報処理装置1に対して類似度計算部17を有する点が異なる。
【0069】
類似度計算部17は、第2訓練データD2に含まれる複数の事例(入力または出力)同士を比較してその類似度を取得する処理部である。この類似度については、データ(文)の構造木の類似度を計算する手法や、word2vecの拡張である文の構成単語のベクトル合成による文の類似度を計算する手法など、公知の手法を適用して取得する。
【0070】
スコア評価計算部13は、類似度計算部17が取得した類似度に基づいて、その類似度が特定の条件を満たす事例(第1訓練データD1に含まれる旧事例)に対応する訓練データを除外(削除)対象と判定する。例えば、スコア評価計算部13は、入力(または出力)が類似する(特定の類似度以上)が、出力(または入力)が類似していない事例(第1訓練データD1に含まれる旧事例)を削除事例と判定する。このように、類似度をもとに言葉の変化(concept drift)があった事例を特定し、削除対象としてもよい。
【0071】
図13は、第4の実施形態にかかる情報処理装置1bの動作例を示すフローチャートである。
図13に示すように、処理が開始されると、類似度計算部17は第2訓練データD2の入力を受け付ける(S50)。次いで、類似度計算部17は、第2訓練データD2の新旧データ別で、新(旧)の入力同士の類似度を計算する。また、類似度計算部17は、新旧の出力同士の類似度を計算する(S51)。
【0072】
次いで、スコア評価計算部13は、類似度計算部17が計算した類似度情報をもとに、前述した条件に当てはまる、第2訓練データD2における削除事例を選定する(S52)。なお、スコア評価計算部13は、第1訓練データD1にも存在する削除事例も同様に選定する。
【0073】
次いで、スコア評価計算部13は、第2訓練データD2における削除事例を訓練データ生成部15に出力する(S53)。これにより、訓練データ生成部15では、スコア評価計算部13からの出力に基づいて第2訓練データD2より事例を削除し、第3訓練データD3を生成する。
【0074】
例えば、
図11の第2訓練データD2の例では、旧データにおけるID001の事例と、新データにおけるID003の事例とは、入力がともに「I like AAAA」であることから、入力の類似度が特定値以上となる。これに対し、ID001の事例の出力は「AAAAは私の大好物です」であり、ID003の事例の出力は「私はAAAA社の製品に目がない」であることから、出力の類似度は低くなる(特定値以下)。したがって、ID001の事例が削除対象となる。
【0075】
なお、類似度の判定は、事前に設定したしきい値との比較により判定する。例えば、入力・出力の類似度が類似しきい値(SS)以上、かつ、もう一方の類似度が相違しきい値(SI)以下の場合に削除事例とする。
【0076】
(第5の実施形態)
第5の実施形態では、スコア一時保存部14にあるS13とS17の生成スコアについて統計量(スコアの偏差、平均値)での比較を行って第3訓練データD3の適性性を確認する点が第1の実施形態とは異なる。
【0077】
図14は、第5の実施形態にかかる情報処理装置1の動作例を示すフローチャートである。
図14に示すように、処理が開始されると、スコア評価計算部13は、第2モデルM2での第2訓練データD2の生成スコアと(S13)、第3モデルM3での第3訓練データD3の生成スコアと(S17)との入力を受け付ける(S60)。
【0078】
次いで、スコア評価計算部13は、第2訓練データD2と第3訓練データD3の両方に存在するデータのみスコアの統計量を取得する(S61)。ここで取得する統計量は、第2訓練データD2または第3訓練データD3の生成スコアの平均値と、各訓練データの生成スコアの偏差(生成スコアと平均値との差)である。
【0079】
次いで、スコア評価計算部13は、生成スコアが改悪した場合、その偏差の差が負数になることから、そのような条件を満たす訓練データが第3訓練データD3に存在しないことで第3訓練データD3の適性性を認める。具体的には、スコア評価計算部13は、S17の偏差と、S13の偏差を比較し、訓練データ(事例)の偏差の差が負数である特定のしきい値よりさらに絶対値が大きいデータが存在しない場合、第3訓練データD3の適性性を認める(S62)。
【0080】
次いで、スコア評価計算部13は、第3訓練データD3の適性性の判定結果を訓練データ生成部15へ出力する(S63)。これにより、訓練データ生成部15は、適性性があるものと認められた第3訓練データD3をもとに、修正後第1訓練データD11、修正後第2訓練データD21を出力する。なお、適性性がない場合、訓練データ生成部15は、入力同様の修正後第1訓練データD11、修正後第2訓練データD21を出力する。
【0081】
図15は、第5の実施形態にかかる情報処理装置1の処理の概要を説明する説明図である。
図15において、事例IDの002~009は、第2訓練データD2と第3訓練データD3の両方に存在するデータに対応する。
【0082】
図15に示すように、スコア評価計算部13は、第2訓練データD2と第3訓練データD3の両方に存在する、事例IDの002~009の統計量(スコアの偏差、スコア平均)を取得する。次いで、スコア評価計算部13は、偏差の差と、負数であるしきい値(例えば-0.1)とを比較し、条件を満たす事例の有無を確認する。図示例では、-0.1のしきい値を超えるデータ(事例)がないため、S17のデータ(第3訓練データD3)の適性性が認められることとなる。
【0083】
このように、第5の実施形態では、統計量を用いて生成スコアの比較を行うことで、生成スコアに含まれるノイズに対して頑健に第3訓練データD3の適性性を判定することができる。
【0084】
(第6の実施形態)
図16は、第6の実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
図16に示すように、情報処理装置1cは、前述した情報処理装置1に対して再実行処理部18を有する点が異なる。
【0085】
再実行処理部18は、訓練データ生成部15が生成した修正後第1訓練データD11を第1訓練データD1、修正後第2訓練データD21を第2訓練データD2とした上で、再度修正後第1訓練データD11、修正後第2訓練データD21の生成を再実行させる処理部である。
【0086】
図17は、第6の実施形態にかかる情報処理装置1cの動作例を示すフローチャートである。
図17に示すように、処理が開始されると、処理制御部10は、第1訓練データD1、第2訓練データD2の入力を受け付ける(S70)。次いで、処理制御部10は、受け付けた第1訓練データD1、第2訓練データD2をもとに、前述したS11~S19の処理を実行させる(S71)。これにより、処理制御部10は、修正後第2訓練データD21、修正後第1訓練データD11の出力を得る(S72)。
【0087】
次いで、再実行処理部18は、修正後第2訓練データD21と、修正後第1訓練データD11が出力され、かつ、両データは第1訓練データD1と第2訓練データD2と同一であるか否かを判定する(S73)。
【0088】
両データが第1訓練データD1と第2訓練データD2と同一でない場合(S73:Yes)、再実行処理部18は、修正後第2訓練データD21を第2訓練データD2に、修正後第1訓練データD11を第1訓練データD1にそれぞれ置換し(S74)、S70へ処理を戻す。なお、両データが第1訓練データD1と第2訓練データD2と同一である場合(S73:No)、再実行処理部18は処理を終了する。
【0089】
このように、第6の実施形態では、訓練データ生成部15が生成した修正後第1訓練データD11が第1訓練データD1と同一でなく、修正後第2訓練データD21が第2訓練データD2と同一でない場合、修正後第1訓練データD11を第1訓練データD1に、修正後第2訓練データD21を第2訓練データD2に置換する。次いで、置換した第1訓練データD1、第2訓練データD2をもとに、再度修正後第1訓練データD11、修正後第2訓練データD21の生成を再実行する。このように、修正後第1訓練データD11、修正後第2訓練データD21の生成を繰り返すことで、精度よく収束した再訓練用の訓練データを得ることができる。
【0090】
(第7の実施形態)
図18は、第7の実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
図18に示すように、情報処理装置1dは、前述した情報処理装置1に対してAIシステム再学習制御部20と、第2訓練データ生成部21と、AIシステム実行部22と、AIシステム実行モデル23とを有する点が異なる。
【0091】
AIシステム再学習制御部20は、自動翻訳システムなどのAIシステムの再学習を制御する処理部である。具体的には、AIシステム再学習制御部20は、特定のタイミング(予め設定されたシステムの更新タイミング)で第1訓練データD1、第2訓練データD2を処理制御部10に対して入力し、修正後第2訓練データD21、修正後第1訓練データD11を得る。次いで、AIシステム再学習制御部20は、得られた修正後第2訓練データD21を用いてAIシステム実行モデル23の再訓練を行う。
【0092】
第2訓練データ生成部21は、第2訓練データD2の生成を行う処理部である。具体的には、第2訓練データ生成部21は、AIシステムの運用時における入力・出力データを収集し、第1訓練データD1と比較して新たに収集したデータ(新事例)を得る。次いで、第2訓練データ生成部21は、新たに収集したデータ(入力・出力)を第1訓練データD1に合成して第2訓練データD2を生成する。
【0093】
AIシステム実行部22は、AIシステムの運用部であり、AIシステムに対して入力されたデータをAIシステム実行モデル23に適用し、AIシステム実行モデル23より得られた出力を提供する。
【0094】
AIシステム実行モデル23は、AIシステムの入力に対して出力を提供するための、機械学習技術による機械学習モデルである。
【0095】
図19は、第7の実施形態にかかる情報処理装置の動作例を示すフローチャートである。
図19に示すように、処理が開始されると、第2訓練データ生成部21で蓄積・取得した新データを、第1訓練データD1と接合して第2訓練データD2を生成する(S80)。
【0096】
次いで、AIシステム再学習制御部20は、生成した第2訓練データD2を第1訓練データD1とともに処理制御部10に入力し、S10~S20の処理を行わせる(S81)。次いで、AIシステム再学習制御部20は、S81の処理により得られた修正後第2訓練データD21を用いて機械学習を行い、生成したモデルをAIシステム実行モデル23に配置する(S82)。
【0097】
このように、第7の実施形態では、特定のタイミングで修正後第2訓練データD21を生成し、生成した修正後第2訓練データD21に基づく再訓練によりAIシステム実行モデル23を更新してもよい。これにより、例えば自動翻訳システムにおけるモデルを言葉の変化(concept drift)に対応したモデルに自動更新することができる。
【0098】
(その他)
なお、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0099】
また、情報処理装置1の処理制御部10で行われるモデル学習部11、スコア計算部12、スコア評価計算部13、スコア一時保存部14、訓練データ生成部15および統計情報取得部16の各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウエア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、情報処理装置1で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
【0100】
(コンピュータ構成例)
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施形態と同様の機能を有するプログラムを実行するコンピュータ構成(ハードウエア)の一例を説明する。
図20は、コンピュータ構成の一例を示すブロック図である。
【0101】
図20に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、データ入力を受け付ける入力装置202と、モニタ203と、スピーカー204とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る媒体読取装置205と、各種装置と接続するためのインタフェース装置206と、有線または無線により外部機器と通信接続するための通信装置207とを有する。また、情報処理装置1は、各種情報を一時記憶するRAM208と、ハードディスク装置209とを有する。また、コンピュータ200内の各部(201~209)は、バス210に接続される。
【0102】
ハードディスク装置209には、上記の実施形態で説明した機能構成(例えば処理制御部10、モデル学習部11、スコア計算部12、スコア評価計算部13、スコア一時保存部14、訓練データ生成部15、統計情報取得部16、類似度計算部17、再実行処理部18、AIシステム再学習制御部20、第2訓練データ生成部21およびAIシステム実行部22)における各種の処理を実行するためのプログラム211が記憶される。また、ハードディスク装置209には、プログラム211が参照する各種データ212が記憶される。入力装置202は、例えば、操作者から操作情報の入力を受け付ける。モニタ203は、例えば、操作者が操作する各種画面を表示する。インタフェース装置206は、例えば印刷装置等が接続される。通信装置207は、LAN(Local Area Network)等の通信ネットワークと接続され、通信ネットワークを介した外部機器との間で各種情報をやりとりする。
【0103】
CPU201は、ハードディスク装置209に記憶されたプログラム211を読み出して、RAM208に展開して実行することで、上記の機能構成(例えば処理制御部10、モデル学習部11、スコア計算部12、スコア評価計算部13、スコア一時保存部14、訓練データ生成部15、統計情報取得部16、類似度計算部17、再実行処理部18、AIシステム再学習制御部20、第2訓練データ生成部21およびAIシステム実行部22)に関する各種の処理を行う。すなわち、CPU201は制御部の一例である。なお、プログラム211は、ハードディスク装置209に記憶されていなくてもよい。例えば、コンピュータ200が読み取り可能な記憶媒体に記憶されたプログラム211を読み出して実行するようにしてもよい。コンピュータ200が読み取り可能な記憶媒体は、例えば、CD-ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこのプログラム211を記憶させておき、コンピュータ200がこれらからプログラム211を読み出して実行するようにしてもよい。
【符号の説明】
【0104】
1、1a~1d…情報処理装置
10…処理制御部
11…モデル学習部
12…スコア計算部
13…スコア評価計算部
14…スコア一時保存部
15…訓練データ生成部
16…統計情報取得部
17…類似度計算部
18…再実行処理部
20…AIシステム再学習制御部
21…第2訓練データ生成部
22…AIシステム実行部
23…AIシステム実行モデル
200…コンピュータ
201…CPU
202…入力装置
203…モニタ
204…スピーカー
205…媒体読取装置
206…インタフェース装置
207…通信装置
208…RAM
209…ハードディスク装置
210…バス
211…プログラム
212…各種データ
D1…第1訓練データ
D2…第2訓練データ
D3…第3訓練データ
D11…修正後第1訓練データ
D21…修正後第2訓練データ
M1…第1モデル
M2…第2モデル
M3…第3モデル