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

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

▶ コニカ ミノルタ ビジネス ソリューションズ ユー.エス.エー., インコーポレイテッドの特許一覧

特許7502370カスタマイズされたディープラーニングベースのテキスト修正のための方法及び装置
<>
  • 特許-カスタマイズされたディープラーニングベースのテキスト修正のための方法及び装置 図1
  • 特許-カスタマイズされたディープラーニングベースのテキスト修正のための方法及び装置 図2
  • 特許-カスタマイズされたディープラーニングベースのテキスト修正のための方法及び装置 図3
  • 特許-カスタマイズされたディープラーニングベースのテキスト修正のための方法及び装置 図4
  • 特許-カスタマイズされたディープラーニングベースのテキスト修正のための方法及び装置 図5
  • 特許-カスタマイズされたディープラーニングベースのテキスト修正のための方法及び装置 図6
  • 特許-カスタマイズされたディープラーニングベースのテキスト修正のための方法及び装置 図7
  • 特許-カスタマイズされたディープラーニングベースのテキスト修正のための方法及び装置 図8
  • 特許-カスタマイズされたディープラーニングベースのテキスト修正のための方法及び装置 図9
  • 特許-カスタマイズされたディープラーニングベースのテキスト修正のための方法及び装置 図10
  • 特許-カスタマイズされたディープラーニングベースのテキスト修正のための方法及び装置 図11A
  • 特許-カスタマイズされたディープラーニングベースのテキスト修正のための方法及び装置 図11B
  • 特許-カスタマイズされたディープラーニングベースのテキスト修正のための方法及び装置 図12A
  • 特許-カスタマイズされたディープラーニングベースのテキスト修正のための方法及び装置 図12B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-10
(45)【発行日】2024-06-18
(54)【発明の名称】カスタマイズされたディープラーニングベースのテキスト修正のための方法及び装置
(51)【国際特許分類】
   G06V 30/194 20220101AFI20240611BHJP
【FI】
G06V30/194
【請求項の数】 20
【外国語出願】
(21)【出願番号】P 2022092288
(22)【出願日】2022-06-07
(65)【公開番号】P2023051724
(43)【公開日】2023-04-11
【審査請求日】2022-12-22
(31)【優先権主張番号】17/491,122
(32)【優先日】2021-09-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519448326
【氏名又は名称】コニカ ミノルタ ビジネス ソリューションズ ユー.エス.エー., インコーポレイテッド
(74)【代理人】
【識別番号】110001254
【氏名又は名称】弁理士法人光陽国際特許事務所
(72)【発明者】
【氏名】ウェイ, ジュンチャオ
【審査官】松浦 功
(56)【参考文献】
【文献】特開2011-065322(JP,A)
【文献】特開2021-135695(JP,A)
【文献】米国特許出願公開第2009/0281972(US,A1)
【文献】米国特許出願公開第2009/0254819(US,A1)
【文献】中国特許出願公開第113298632(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/00 -30/424
(57)【特許請求の範囲】
【請求項1】
プロセッサで、ベースデータ及びエンドユーザーデータの1つを提供し、ベースディープラーニングモデルまたはエンドユーザーディープラーニングモデルをそれぞれ、事前学習済みベースディープラーニングモデルまたは事前学習済みエンドユーザーディープラーニングモデルとして、前もって学習することと、
プロセッサベースのデータモード分類器を提供し、前記事前学習済みベースディープラーニングモデルまたは事前学習済みエンドユーザーディープラーニングモデルの1つを選択することと、
文字列である入力されたデータセットに応じて、入力されたデータセットが最初の入力データセットである場合は前記入力データセットの供給先として前記事前学習済みベースディープラーニングモデルを選択し、それ以外の場合は前記入力データセットの供給先として前記プロセッサベースのデータモード分類器を選択することと、
前記データモード分類器の出力に応じて、前記ベースディープラーニングモデルまたは前記エンドユーザーディープラーニングモデルの1つに学習を実行することと、
前記データセットの大きさに応じて、前記ベースディープラーニングモデルまたは前記エンドユーザーディープラーニングモデルの1つに再学習を実行することと、
前記ベースディープラーニングモデルまたは前記エンドユーザーディープラーニングモデルの1つの前記学習に応じて、前記学習の信頼度を示す複数の出力を提供することと、
前記学習の前記信頼度に応じて、エンドユーザーに出力テキストとして文脈に基づき修正された前記文字列を提供することと、を含む、コンピュータ実装テキスト修正方法。
【請求項2】
前記テキスト修正が、画像文字認識(ICR)と光学文字認識(OCR)の1つまたは複数を備える、請求項1に記載のコンピュータ実装テキスト修正方法。
【請求項3】
前記エンドユーザーへの前記複数の出力の提供に応じて、前記出力テキストの修正を行うことを更に含む、請求項1又は2に記載のコンピュータ実装テキスト修正方法。
【請求項4】
入力された前記データセットに応じて、前記ベースディープラーニングモデルに学習を実行することと、
前記データセットの大きさに応じて、前記ベースディープラーニングモデルに再学習を実行することと、
を更に含む、請求項1又は2に記載のコンピュータ実装テキスト修正方法。
【請求項5】
前記データモード分類器の出力に応じて、前記ベースディープラーニングモデルに学習を実行することと、
前記データセットの大きさに応じて、前記ベースディープラーニングモデルに再学習を実行することと、
を更に含む、請求項1又は2に記載のコンピュータ実装テキスト修正方法。
【請求項6】
前記データモード分類器の出力に応じて、前記エンドユーザーディープラーニングモデルに学習を実行することと、
前記データセットの大きさに応じて、前記エンドユーザーディープラーニングモデルに再学習を実行することと、
を更に含む、請求項1又は2に記載のコンピュータ実装テキスト修正方法。
【請求項7】
前記エンドユーザーディープラーニングモデルの学習と再学習が、前記ベースディープラーニングモデルに影響しない、請求項6に記載のコンピュータ実装テキスト修正方法。
【請求項8】
前記ベースディープラーニングモデル及び前記エンドユーザーディープラーニングモデルが、Transformerによる双方向のエンコード表現(BERT)双方向長短期記憶(Bi-LSTM)及びニューラル機械翻訳(NMT)から成る群から選択される、請求項1又は2に記載のコンピュータ実装テキスト修正方法。
【請求項9】
前記ベースディープラーニングモデル及び前記エンドユーザーディープラーニングモデルが、コネクショニスト時間的分類(CTC)損失を用いたBi-LSTMとBERTのモデルを備える、請求項7に記載のコンピュータ実装テキスト修正方法。
【請求項10】
前記エンドユーザーディープラーニングモデルが、前記ベースディープラーニングモデルと、前記ベースディープラーニングモデルの出力箇所に位置する出力層とを備える、請求項1又は2に記載のコンピュータ実装テキスト修正方法。
【請求項11】
プロセッサと、
プロセッサによって実行されると、方法の動作を可能にする命令を含む非一時的なメモリと、を備えるコンピュータ実装テキスト修正装置であって、
前記方法が、
ベースデータ及びエンドユーザーデータの1つを提供し、ベースディープラーニングモデルまたはエンドユーザーディープラーニングモデルをそれぞれ、事前学習済みベースディープラーニングモデルまたは事前学習済みエンドユーザーディープラーニングモデルとして、前もって学習することと、
データモード分類器を提供し、前記事前学習済みベースディープラーニングモデルまたは事前学習済みエンドユーザーディープラーニングモデルの1つを選択することと、
文字列である入力されたデータセットに応じて、入力されたデータセットが最初の入力データセットである場合は前記入力データセットの供給先として前記事前学習済みベースディープラーニングモデルを選択し、それ以外の場合は前記入力データセットの供給先として前記プロセッサベースのデータモード分類器を選択することと、
前記データモード分類器の出力に応じて、前記ベースディープラーニングモデルまたは前記エンドユーザーディープラーニングモデルの1つに学習を実行することと、
前記データセットの大きさに応じて、前記ベースディープラーニングモデルまたは前記エンドユーザーディープラーニングモデルの1つに再学習を実行することと、
前記ベースディープラーニングモデルまたは前記エンドユーザーディープラーニングモデルの1つの前記学習に応じて、前記学習の信頼度を示す複数の出力を提供することと、
前記学習の前記信頼度に応じて、エンドユーザーに出力テキストとして文脈に基づき修正された前記文字列を提供することと、
を含む、コンピュータ実装テキスト修正装置。
【請求項12】
前記テキスト修正が、画像文字認識(ICR)と光学文字認識(OCR)の1つまたは複数を備える、請求項11に記載のコンピュータ実装テキスト修正装置。
【請求項13】
前記方法が、前記学習の信頼度に応じて、エンドユーザーに出力テキストを提供することを更に含む、請求項11又は12に記載のコンピュータ実装テキスト修正装置。
【請求項14】
前記方法が、
入力された前記データセットに応じて、前記ベースディープラーニングモデルに学習を実行することと、
前記データセットの大きさに応じて、前記ベースディープラーニングモデルに再学習を実行することと、を更に含む、請求項11又は12に記載のコンピュータ実装テキスト修正装置。
【請求項15】
前記方法が、
前記データモード分類器の出力に応じて、前記ベースディープラーニングモデルに学習を実行することと、
前記データセットの大きさに応じて、前記ベースディープラーニングモデルに再学習を実行することと、を更に含む、請求項11又は12に記載のコンピュータ実装テキスト修正装置。
【請求項16】
前記方法が、
前記データモード分類器の出力に応じて、前記エンドユーザーディープラーニングモデルに学習を実行することと、
前記データセットの大きさに応じて、前記エンドユーザーディープラーニングモデルに再学習を実行することと、を更に含む、請求項11又は12に記載のコンピュータ実装テキスト修正装置。
【請求項17】
前記エンドユーザーディープラーニングモデルの学習と再学習が、前記ベースディープラーニングモデルに影響しない、請求項16に記載のコンピュータ実装テキスト修正装置。
【請求項18】
前記ベースディープラーニングモデル及び前記エンドユーザーディープラーニングモデルが、Transformerによる双方向のエンコード表現(BERT)双方向長短期記憶(Bi-LSTM)及びニューラル機械翻訳(NMT)から成る群から選択される、請求項11又は12に記載のコンピュータ実装テキスト修正装置。
【請求項19】
前記ベースディープラーニングモデル及び前記エンドユーザーディープラーニングモデルが、コネクショニスト時間的分類(CTC)損失を用いたBi-LSTMとBERTのモデルを備える、請求項18に記載のコンピュータ実装テキスト修正装置。
【請求項20】
前記エンドユーザーディープラーニングモデルが、前記ベースディープラーニングモデルと前記ベースディープラーニングモデルの出力箇所に位置する出力層とを備える、請求項11又は12に記載のコンピュータ実装テキスト修正装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カスタマイズされたディープラーニングベースのテキスト修正のための方法及び装置に関する。
【背景技術】
【0002】
画像文字認識(ICR)や光学文字認識(OCR)におけるディープラーニングベースのテキスト修正エンジンの課題の1つは、文脈の重要性に関連する。本明細書で使用されているように、修正とは、文字、一連の文字、または単語または一連の単語を修正することを意味し得る。また、修正とは、例えば、フォームに記入する場合、不足している単語や一連の単語を追加することを意味する。このような修正の場面では、すべて文脈が重要である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
テキスト修正エンジンは、文字列を解釈して修正を行う必要があるが、文脈によって修正内容が異なることがある。例えば、テキスト修正エンジンは、ある入力文字を「boak」という単語として読み取ることがある。その言葉は、ある文脈(例えば、エンドユーザーが図書館や出版社の場合)では「book」(本)と修正され、別の文脈(例えば、エンドユーザーが船舶や船舶部品の製造業者の場合)では「boat」(船)と修正されることがある。この文脈がないと、テキスト修正エンジンのディープラーニングアルゴリズムが、どのような修正を行うべきかを判断することは困難である。ディープラーニングのアルゴリズムに間違った修正を加えると、アルゴリズムが間違った方向に進み、正しい修正からより遠ざかってしまうことがある。
【0004】
また、テキスト修正エンジンは、異なる文脈で、劣化の問題がある類似の文字列に遭遇した場合、適切な修正を行う方法を知らない可能性がある。
【0005】
文脈に応じた適切なデータによって駆動し、異なる文脈の異なる要件に適応できるテキスト修正エンジンがあることが望ましい。その際の課題として、修正を行うディープラーニングシステムは、トレーニングセットに依存することがある。異なるトレーニングセット、異なる文脈を提示することで、ディープラーニングシステムはテキスト列を修正するために異なる方向に進むことができる。したがって、異なる文脈に適した異なるトレーニングセットで、異なるディープラーニングシステムを学習させることができることも望ましい。
【0006】
これらの異なるディープラーニングシステムを適切に学習させるためには、技術的な課題もある。例えば、大量のデータを扱うエンドユーザー側の学習は、非常に時間がかかる。また、学習が完了しても、その学習の結果が他のエンドユーザーのニーズに適用できない場合がある(前述の文脈の問題の一部)。また、データセットにバイアスがかかっている場合もあり得る。例えば、東洋と西洋の文化の違いは、ラベリング及び/又はグラウンドトゥルースが西洋よりも東洋に向けられたデータセット、またはその逆のバイアスにつながる可能性がある。
【0007】
高性能なディープラーニングネットワークには、学習、最適化すべきパラメータが多数存在するのが一般的である。例えば、200クラス以上の対象物を汎用的に画像認識するために開発されたImageNet(https://www.image-net.org/)というデータベースには、約6、000万個のパラメータが登録されている。このサイズのデータセットでディープラーニングネットワークを学習させるには、サーバー級の計算機が必要で、良い性能を得るには長い時間がかかる。また、ネットワークの学習データセットは10万以上のラベル付き画像を含み得る。データセットのサイズが大きいため、ネットワークの再学習のためにエンドユーザーのマシンにデータセットを送ることは現実的ではない。
【0008】
仮にエンドユーザーがこのような大規模なデータセットを扱えたとしても、ベースとなるデータセットサイズとエンドユーザーのデータセットサイズの比率が大きいため、十分な精度が得られない。さらに、エンドユーザーデータセット(エンドユーザー側のディープラーニングモデルの学習データの一部)のラベル付きデータの一部は、ベースデータセット(ホスト側のモデルの学習データの一部)のデータと一貫していない可能性がある、あるいは矛盾している可能性もある。前述のImageNetデータベースを含め、バイアスはこの問題の1つの原因となり得る。このように異なる、あるいは矛盾する学習データを使用すると、ベースディープラーニングモデルとエンドユーザーディープラーニングモデルの一方または両方を意図しない方向に向かわせ、モデルの精度を上げるどころか、むしろ下げてしまう可能性がある。
【課題を解決するための手段】
【0009】
以上のことから、本発明による実施形態は、異なる、変化するエンドユーザーの要求を満たすことができるテキスト修正エンジンを提供する。十分な量のデータを用意し、データの発生源で適切なテキスト修正エンジンを微調整することで、異なる要件に対して所望の出力に変更することができる。ベースディープラーニングモデルをその原点で再学習することで、データの秘匿性を保持することが可能である。このようにベースディープラーニングモデルを改良することで、ベースディープラーニングモデルの性能を向上させ、異なる文脈に対してベースディープラーニングモデルをより精度の高いものにすることができる。
【0010】
また、この手法により、利用可能な文脈データや検証・確認済みデータを用いて、ベースディープラーニングモデルの性能を定期的に向上させることができる。また、出来上がったデータセットを手動でチェックすることで、品質や学習の適合性を向上させることができる。さらに、ベースディープラーニングモデルを残したまま、エンドユーザーモデルを個別に学習することで、エンドユーザーモデルの学習を効率化することができ、また、さらなる学習や再学習のために、ベースディープラーニングモデルの望ましい変化を目立たせる役割を果たすことができる。
【図面の簡単な説明】
【0011】
次に、本発明の実施形態による様々な態様を、以下の図面を参照して詳細に説明するが、これらの図面は、以下のように記載される。
図1図1は、実施形態に係るモデル修正の流れを示す上位図である。
図2図2は、図1が描写するフローのいくつかの追加的な詳細を示すための下位図である。
図3図3は、実施形態に係るネットワークを示す上位図である。
図4図4は、実施形態に係るネットワークを示す上位図である。
図5図5は、実施形態による関連マスキング位置の例を示す図である。
図6図6は、実施形態に係る文字間の関係の強さを示す表である。
図7図7は、実施形態に係る文字間の関係の強さを示す表である。
図8図8は、様々な実施形態による異なるディープラーニングモデルに対するテキスト修正結果を示す表である。
図9図9は、修正するテキストの識別の例を示す図である。
図10図10は、実施形態による、入力データを受け取り、ベースモデル又はエンドユーザーモデルを学習するシステムの上位例を示す図である。
図11図11Aは、実施形態によるベースディープラーニングモデルのノードの上位例を示し、図11Bは、実施形態によるエンドユーザーディープラーニングモデルのノードの上位例を示している。
図12図12Aは、実施形態によるベースモデル学習のためのディープラーニングシステムの上位例を示し、図12Bは、実施形態によるエンドユーザーモデル学習のためのディープラーニングシステムの上位例を示す図である。
【発明を実施するための形態】
【0012】
本発明の態様は、プロセッサで、ベースデータ及びエンドユーザーデータの1つを提供し、ベースディープラーニングモデルまたはエンドユーザーディープラーニングモデルをそれぞれ、事前学習済みベースディープラーニングモデルまたは事前学習済みエンドユーザーディープラーニングモデルとして、前もって学習することと、プロセッサベースのデータモード分類器を提供し、前記事前学習済みベースディープラーニングモデルまたは事前学習済みエンドユーザーディープラーニングモデルの1つを選択することと、入力されたデータセットに応じて、前記事前学習済みベースディープラーニングモデルまたは前記プロセッサベースのデータモード分類器の1つを選択することと、前記データモード分類器の出力に応じて、前記ベースディープラーニングモデルまたは前記エンドユーザーディープラーニングモデルの1つに学習を実行することと、前記データセットの大きさに応じて、前記ベースディープラーニングモデルまたは前記エンドユーザーディープラーニングモデルの1つに再学習を実行することと、前記ベースディープラーニングモデルまたは前記エンドユーザーディープラーニングモデルの1つの前記学習に応じて、前記学習の信頼度を示す複数の出力を提供することと、前記学習の前記信頼度に応じて、エンドユーザーに出力テキストを提供することと、を含む、コンピュータ実装テキスト修正方法を提供する。
【0013】
一実施形態において、テキスト修正が、画像文字認識(ICR)と光学文字認識(OCR)の1つまたは複数を備える。
【0014】
一実施形態において、前記方法が、エンドユーザーへの複数の出力の提供に応じて、出力テキストの修正を行うことを更に備える。
【0015】
一実施形態において、前記方法が、入力されたデータセットに応じて、ベースディープラーニングモデルに学習を実行することと、データセットの大きさに応じて、ベースディープラーニングモデルに再学習を実行することと、を更に含む。
【0016】
一実施形態において、前記方法が、データモード分類器の出力に応じて、ベースディープラーニングモデルに学習を実行することと、データセットの大きさに応じて、ベースディープラーニングモデルに再学習を実行することと、を更に含む。
【0017】
一実施形態において、前記方法が、データモード分類器の出力に応じて、エンドユーザーディープラーニングモデルに学習を実行することと、データセットの大きさに応じて、エンドユーザーディープラーニングモデルに再学習を実行することと、を更に含む。
【0018】
一実施形態において、エンドユーザーディープラーニングモデルの学習と再学習が、ベースディープラーニングモデルに影響しない。
【0019】
一実施形態において、ベースディープラーニングモデル及びエンドユーザーディープラーニングモデルが、Transformerによる双方向のエンコード表現(BERT)双方向長短期記憶(Bi-LSTM)及びニューラル機械翻訳(NMT)から成る群から選択される。特定の実施形態において、ベースディープラーニングモデル及びエンドユーザーディープラーニングモデルが、コネクショニスト時間的分類(CTC)損失を用いたBi-LSTMとBERTのモデルを備える。
【0020】
一実施形態において、エンドユーザーディープラーニングモデルが、ベースディープラーニングモデルと、ベースディープラーニングモデルの出力箇所に出力層とを備える。
【0021】
本発明の態様は、プロセッサと、プロセッサによって実行されると、上記の記載された方法の動作を可能にする命令を含む非一時的なメモリと、を備える、コンピュータ実装テキスト修正装置を提供する。
【0022】
一実施形態において、モデル切り替えシステムにより、入力データの分類と選択を行い、ベースモデルまたはエンドユーザーモデルのいずれかに送信することができる。データパターン分類器は、ベースモデルバックボーンを特徴ベクトルの抽出器として利用することができる。分類器は、エンドユーザーが過去に修正したデータ、または修正したデータのエラーパターンに類似し、一致するデータを識別することができる。エンドユーザーが修正したテキストや類似のテキストは、2回目に分類器を通せば、エンドユーザーモデルによって自動的に修正される。
【0023】
図1は、実施形態による、受信テキストを処理するためのベースモデルまたはエンドユーザーモデルを選択するためのデータパターン分類器を示す図である。図1において、110では、ベースデータとエンドユーザーデータが学習データとして提供され、事前学習済みモデル120が得られる。その事前学習済みモデル、および115での新しい入力データセットは、データモード分類器125に入力され、ブロック130でのベースモデル132またはエンドユーザーモデル134がさらなる推論および学習を受けるモデルになるかどうかを決定するためにデータを使用する。当初、エンドユーザーモデル134を学習する前に、デフォルトで、データモード分類器125は、学習のためにすべてのデータをベースモデル132に送信する。その学習の結果は、エンドユーザーへと行き、検証される。もしエラーがあれば、エンドユーザーが手動で修正し、適切にラベル付けされた修正済みデータセットを作成することができる。そして、その修正されたデータセットを、データモード分類器125とエンドユーザーモデル134の両方を学習するための初期データセットとして使用することができる。全体のプロセスでは、ユーザーが修正し、手動でラベル付けしたデータが、エンドユーザーモデルの学習に使われることになる。そして、修正された推論データを収集し、ベースモデルの学習に使用することで、ベースモデルの精度を向上させる。その後、データセット全体を使用して、データモード分類器125を更新することができる。
【0024】
当業者であれば、ベースモデルのデータセットが増え続けることを理解するであろう。一実施形態において、ベースモデルデータセットがエンドユーザーモデルデータセットの一部又は全部を含まない場合でも、ベースモデルデータセットは、特定のエンドユーザーに固有である可能性があるエンドユーザーモデルデータセットよりもかなり大きくなる。
【0025】
一実施形態において、データモード分類器125に入力されている事前学習済みモデルの識別は、どのモデルがさらなる学習を受けるべきかを決定することができる。一実施形態において、入力データセット115は、何らかの指示を提供することができる。データモード分類器125から来る斜めの矢印は、ベースモデル132またはエンドユーザーモデル134のいずれかを指し示すことになる。
【0026】
どちらのモデルで作業していても、140で最終的な出力が得られる。145で、新しい入力データセット115にかなりの量のデータがある場合、どちらのモデル(ベースモデル132またはエンドユーザーモデル134)が作業されていても、さらなる学習(再学習)を受ける必要がある可能性が少なくとも十分にある。この場合、図1のフローは、再学習動作のために、ベースモデル132またはエンドユーザーモデル134の適切な方に戻る。これは、図1に関して前述したものとは、追加的または異なる学習である。
【0027】
再学習が完了すると、モデルに入れるべき更なるデータが大量にない場合は、150で信頼度が出力され、160でモデル出力がエンドユーザーに提供される。後述するように、ベースモデルは、テキスト理解や翻訳/解釈のための異なる文脈を提供する複数のエンドユーザーモデルのいずれかの基礎を形成する。
【0028】
一実施形態において、ベースモデル132とエンドユーザーモデル134の両方は、同じ構造及び事前学習された重みを共有してもよい。ベースモデルは、エンドユーザーが検証および承認するための推論の最初のバッチを生成することができる。ベースモデルが100%正確であれば、間違った推論をすることはなく、したがって、エンドユーザーによる修正も必要ない。エンドユーザーの要求を満たさない推論がある程度の割合(例えば5%)で存在する場合、エンドユーザーは推論結果をエンドユーザーの目標値に修正することができる。分類器は、エンドユーザーモデルを選択するための二値分類器として学習され、ベースモデルデータに対しては「0」(偽)を、エンドユーザーモデルデータに対しては「1」(真)を出力することができる。エンドユーザーモデルは、修正された入力とグランドトゥルースのペアを用いて学習することができる。そして、それらの入力は次の反復で修正された目標値に修正される。
【0029】
一実施形態において、ベースモデルはホスト側で事前に学習される。ベースモデルは固定されており、エンドユーザーシステム内で変更することはできない。ベースモデルは、異なるエンドユーザーやアプリケーションから収集された十分な量の実データがある場合、ホスト側で再学習され、更新されることになる。再学習や更新を行うためにベースデータセットにデータを追加する前に、最終的に人間によるデータの検証を行う必要がある。
【0030】
一実施形態において、エンドユーザーモデルは、ベースモデル推論からエンドユーザーの関与及び/又は修正がない場合、空となる。エンドユーザーモデルは、エンドユーザーからの事後修正があれば、再学習され、更新される。一実施形態において、データモード分類器125は、エンドユーザーモデルが更新されている間、更新される。一実施形態において、分類器の閾値は、初期デフォルト値として1.0を有することができる。分類器の閾値αは、0.0≦α≦1.0の範囲内であってもよい。一実施形態において、分類器の閾値αは、0.5≦α≦1.0の範囲内であってもよい。分類器の閾値αは、エンドユーザーモデルの能力に応じて更新され、学習されてもよい。一実施形態において、エンドユーザーは、分類器出力に等しいフラグを設定することができ、その結果、必要に応じて、または適切に分類器の閾値αを変更することができる。例えば、モデルを学習するためのエンドユーザーデータが大量にある場合、推論機能は、類似のデータパターンを処理するためにエンドユーザーモデルにデータを渡す信頼度が高い/高くなるとして、閾値を低くするように分類器を動かす。
【0031】
一実施形態において、推論は、エンドユーザーデータの量に対応する割合で、ベース推論とエンドユーザー推論の合計として設定されてもよく、その結果、次の関係が得られる。
【数1】
【0032】
当業者は、本明細書に記載されるようなベースモデルとエンドユーザーモデルとの関係を考慮すると、一実施形態において、分類器の閾値αは、ベースモデル及びエンドユーザーモデルの両方の再学習中に更新及び学習され得ることを理解するであろう。
【0033】
図2は、実施形態に係る適応・自己学習型修正システムのフローの概要を示す図である。図2は、前項で述べたワークフローを示す適応学習・自己学習システムの全体像である。図の下部付近は、エンドユーザーシステムがエンドユーザーデータを蓄積する。エンドユーザーモデルでは、再学習と評価のために利用可能なすべてのデータを使用する。したがって、エンドユーザーモデルは、主に利用可能なデータによって、特定のエンドユーザーの要件に適応することによって、データ駆動型である。
【0034】
図2をより詳しく見ると、205で、図1と同様にテキスト列が入力される。210で、これがエンドユーザー推論の最初のインスタンスである場合、215で、ベースモデルが作業対象として選択される。これが最初のエンドユーザー推論でない場合、フローは220のデータモード分類器に進む。225では、モデル選択(ベースモデルまたはエンドユーザモデル)が行われる。ベースモデルが選択された場合、フローは215、245と進み、ここで推論が考案される。エンドユーザー確認は250で行われる。エンドユーザーによるチェックの結果が良ければ、255で、所望の推論が出力される。260では、テキスト修正の現在の反復に関与するデータ量が決定される。265では、図1と同様に、データ量が多い場合、ベースモデルの再学習を実施してもよい。270では、図1と同様に、データ量が多くない場合は、エンドユーザーの受け入れのための出力が行われる。295では、エンドユーザーが出力を受け入れると、最終的な出力が提供される。280では、エンドユーザーが出力を受け入れない場合、エンドユーザー修正が行われ、285で学習や再学習が行われる。再学習の後、235で再びエンドユーザーモデルが選択される。しかし、この場合、再学習が行われているため、230において、エンドユーザーモデルが評価または再評価され、データモード分類器の閾値(ベースモデルまたはエンドユーザーモデルがさらなる学習のために選択されるかどうかを決定する精度の閾値)が調整されてもよい。この時点でフローは225に戻り、次の反復で取り組むモデル(ベースモデルまたはエンドユーザーモデル)を選択することになる。
【0035】
図3は、モデル構造を構成する2つの主要なモジュール、(1)アテンションエンコーディングネットワークと(2)アテンションマスキングネットワークを示している。アテンションマスキングネットワークは、入力テキストの矛盾やエラーに対処するために、マスクされた位置ベクトルを作成する。アテンションエンコーディングネットワークは、シーケンスデコーダーが解釈して出力するための特徴ベクトルのメモリバンクを作成する。
【0036】
図3は、入力テキスト列モジュール310がマスクエンコーディングモジュールに入力テキスト列を提供するネットワークの上位構造を示す。一実施形態において、エンドユーザーモデルが変更できないマスクエンコーディングモジュール320は、アテンションエンコーディングネットワーク322及びアテンションマスキングネットワーク324を含むことができる。アテンションエンコーディングネットワーク322は、特徴ベクトルのメモリバンクを作成する構造を含んでいてもよい。アテンションマスキングネットワーク324は、入力テキスト列モジュール310から来る入力テキスト内の矛盾やエラーに対処するためにマスクされた位置ベクトルを作成することができる。シーケンスデコーディングモジュール330は、マスクエンコーディングモジュール320の出力を受け取り、それらの出力を解釈し、出力340として、及び/又はエンドユーザーモデルの再学習のための修正として、適切に提供する。
【0037】
マスクエンコーディングモジュール320とシーケンスデコーディングモジュール330の両方は、ベースモデルに対して学習可能である。ベースモデルは、その原点(ここではホスト側と呼ぶ)で学習、維持される。ベースモデルの学習データセットには、エンドユーザーから起こりうるエラーを反映するためにシミュレートまたは補強されたエラーワードまたはシーケンスを含む大量のテキストデータが含まれる。一実施形態において、学習データセットには、前述した種類のバイアスを防ぐのに十分なデータが含まれる。一方、全体の25%は、ベースモデルを評価するためのテストデータセットとして確保されている。ベースモデルは、評価において全体的に85%以上の精度を達成する必要があり、モデルは入力テキストから95%のエラーを修正し、合理的または「正しい」英単語、例えば「book」(本)や「boat」(船)を出力する。例えば、(boak(入力)->boat(GT)->book(推論))や(boak(入力)->book(GT)->boat)のように、入力配列とグラウンドトゥルース(GT)配列の間のラベル競合が評価における大きなエラーとなるはずである。そのようなラベル競合は、エンドユーザーの好みに起因することがある。このようにして、ベースモデルはよく学習され、「boa*」のようなマスクされたアテンションエンコーディングで入力配列パターンを記憶するようになる。「*」はマスクされるか、エンコードベクトルの中で重み付けが少なくなる。
【0038】
一実施形態において、ベースモデルは、複数の層を有するディープラーニング構造として構成されてもよい。ベースモデルの学習データは、それらの層のノードの重み付けに使用される。エンドユーザーモデルの学習をどのように行うかにもよるが、一実施形態において、各エンドユーザーが独自の出力層を学習し、ベースモデルはそのエンドユーザーに対して変更不可(固定)とし、ホスト側でのみ変更可能としてもよい。別の実施形態では、ホスト側には、エンドユーザーごとに1つずつ、複数の出力層が存在する場合がある。エンドユーザーのデータは、そのエンドユーザーのためのそれぞれの出力層の学習に使われる。入力層から出力層までの残りの層は、やはりベースモデルの一部となり、エンドユーザーにとっては固定されたものとなる。ベースモデルの再学習はホスト側でのみ行われ、異なるエンドユーザーモデルの出力層を学習するために使用されたデータを使用することも可能である。
【0039】
エンドユーザーモデルは、ベースモデルを開発する際に使用したのと同じ構造を使用する。一実施形態において、エンドユーザーモデルは、カスタマイズされた出力を提供するために、最後の(出力)層を修正または再学習するだけである。一実施形態において、最終的にエンドユーザーモデルの出力層は、比較的軽い重みが与えられてもよい。これにはいくつかの理由が考えられる。ベースモデルは、多くのデータを使って学習させるが、そのうちのいくつかは、特定のエンドユーザーに固有のものである可能性がある。したがって、そのエンドユーザーに特有のデータに着目した出力層の学習は、そのエンドユーザーのためのモデル全体の改良であり、そのエンドユーザーのためのモデルの根本的な作り直しや再学習を意味するものではない。その出力層を含むエンドユーザーモデルは、エンドユーザー側のコンピューティングシステム(必要なまたは適切なディープラーニングアルゴリズムを含む)のみを使用して、学習および更新することができる。
【0040】
図4は、図3が示す順序と逆の順序で、OCRとICRのネットワークを示している。図4は、マスキングネットワーク(左)と修正ネットワーク(右)の内部モジュールの詳細を示したものである。図4の左側では、アテンションマスキングネットワーク410が、不正確な文字に関連する位置を全てマスキングしている。一実施形態において、アテンションマスキングネットワーク410は、ディープラーニングアルゴリズム412を適用して、最終出力のために修正ネットワークがデコードするための入力ベクトルに組み込まれるようにマスクされた特徴ベクトルを作成する。一実施形態において、ディープラーニングアルゴリズム412は、双方向長短期記憶(Bi-LSTM)である。
【0041】
図4の右側では、修正ネットワーク420が、入力配列に関する最終的な配列を出力する。上記の議論では、データの矛盾を解消し、複数回の修正を行うために、矛盾位置やエラー位置をマスクすることについて述べた。一実施形態において、修正ネットワーク420は、ディープラーニングネットワーク422を含む。一実施形態において、ディープラーニングネットワーク422は、Transformerによる双方向のエンコード表現(BERT)ネットワークであってもよい。別の実施形態では、ネットワーク422は、Bi-LSTMネットワークであってもよい。別の実施形態では、ネットワーク422は、ニューラル機械翻訳(NMT)ネットワークであってもよい。
【0042】
一実施形態において、エラー修正ネットワーク420の出力デコーダー424の出力は、損失ブロック430に渡る。一実施形態において、損失ブロック430は、コネクショニスト時間的分類(CTC)損失を計算する。別の実施形態では、損失ブロック430は、多層パーセプトロン(MLP)損失を計算することができる。別の実施形態では、損失ブロック430は、文脈エンコーダー(CE)損失を計算することができる。
【0043】
ネットワークの推論と精度を高めるために、矛盾や不正確な文字に関する文字位置をマスクするセルフアテンションネットワークを追加で提供してもよい。このような自己学習によるマスキングは、文字間の相関を判断することによるセルフアテンションネットワークの学習で実現できる。図5は、データの矛盾文字とエラー文字の関連マスキング位置の例を示す図である。図5はベクトル合成(エラーマスキング埋め込み)であり、マスキングされた関連位置は黒と灰色のキューブでラベル付けされ(上の配列)、グレーは入力単語の元の埋め込みベクトル(下の配列)を示している。プロットでは、2番目の位置が矛盾や不正確な文字で、関連する位置が4番目と6番目の位置であれば、マスクも学習して関連する位置に適用する必要がある。マスクされた埋め込みベクトルは、図4の右側にあるエラー修正ネットワーク420の入力である。
【0044】
自己学習型アテンション行列とは、個々の文字間の相関を含む行列である。図6は、単語「FIGURE」の文字間の学習済みセルフアテンション行列の一例を示す図である。この例では、暗い色調は関係が弱いことを、明るい色調は関係が強いことを表す。図6では、文字同士の強い関係と弱い関係を数列で表す。このアテンション行列は学習可能であり、モデルに含めることができる。
【0045】
アテンションマスクは教師あり学習によって学習され、入力とグランドトゥルーステキストのエラーモードとパターンによって強く結びついている。学習データセットは、2つの配列間の編集距離(レーベンシュタイン距離)を用いて生成することができる。レーベンシュタイン距離は、関連する2つの配列間のアライメントを測定することができる。編集距離の最小値は、アルゴリズム内の反復処理により算出される。一般にレーベンシュタイン距離で用いられる編集は、(1)置換、(2)挿入、(3)削除がある。例えば、次の図は、エラーワード「Lavenshtien」と正しいワード「Levenshtein(レーベンシュタイン)」の間で、これらの共通の修正を示す。
【0046】
図7は、エラーワード「Lavenshtien」とグラウンドトゥルースワード「Levenshtein」の2つの単語間のレーベンシュタイン距離の一例を示す図である。図7の表は、整列可能な各サブシーケンス間の距離を示している。
【0047】
マスクネットワークを学習させるための学習ペアを生成するために、その結果をレーベンシュタイン距離から変換する。編集した位置はすべてマークされ、正しい位置と正しくない位置を表すバイナリマスクが適用される。したがって、図7の「Lavenshtien」と「Levenshtein」の例では、「aをeに置き換える」、「tの後ろにeを挿入する」、「iの後ろでeを削除する」の3つの修正に対応するラベリングベクトルは、「0100001100」となる。
【0048】
一実施形態において、入力配列とグランドトゥルース配列の長さが異なる場合にも対応することができる。挿入や削除の際、グランドトゥルース配列と整合させるために余分な桁数を追加することはない。例えば、「Lavenshtien」の入力エラーワードの長さが「11」である場合、挿入と削除の操作を行ってもグラウンドトゥルースベクトルの長さは「11」であるべきである。削除と挿入により、入力配列とターゲット配列の長さのマッピングが変更される。一実施形態において、削除および挿入操作の最大数は、グラウンドトゥルースワードの元の文字の半分以下であってはならない。
【0049】
入力テキストは、最大で固定長になり得る。一実施形態において、コネクショニスト時間分類(CTC)が、入力配列と出力配列とのマッピングに適用され得る。入力テキストの長さと出力テキストの長さは同じである必要はない。したがって、修正されたテキストが入力テキストと同じサイズである必要はない。その結果、より少ない文字入力でより多くの文字を推論することができる。この点から、システム全体としては、ベースモデル、エンドユーザーモデルともに、一般的なアプリケーションに適用できる柔軟性を持っている。
【0050】
以下のネットワークを用いて、日本語テキストの修正実験を行った。
BERT+CTC-モデルM1
BERT+CE-モデルM2
NMT+CTC-モデルM3
NMT+CE-モデルM4
Bi-LSTM+MLP-モデルM5
Bi-LSTM+BERT+CE-モデルM6
Bi-LSTM+BERT+CTC-モデルM7
【0051】
図8は、入力テキストを修正するために実験に使用した異なるネットワーク(モデルM1~M7を使用)を示す表である。表では、Bi-LSTMマスキングネットワークとコネクショニスト時間的分類(CTC)損失を伴うBERT修正ネットワークを組み合わせたモデルM7が最も効果的であることを示す。モデルM7は、総合精度91.42%、修正率89.82%を達成し、入力テキストに対する破損率はわずか2.2%であった。
【0052】
さらに、モデルM7では、学習データと似ているが2%しか同じでないデータでテストを行うという実験も行った。最初にテストしたベースモデルは、わずか3.85%の正解率であった。顧客モデルの最初の反復の後、顧客モデルは46.15%の確率で正しく、ベースモデルに対して42%の修正効果を得ることができた。
【0053】
図9は、入力テキスト、修正/予測テキスト、グラウンドトゥルース(GT)テキストの例である。矢印は、正しく予測されなかった入力項目で、グランドトゥルーステキストに該当しないものを指している。本発明の実施形態によるネットワークは、誤字の訂正、欠落した文字の補充、追加文字の結合と修正を行うことができる。
【0054】
図10は、一実施形態によるベースモデルまたはエンドユーザーモデルシステムのいずれかの上位図である。図10において、入力テキスト1010は、スキャナまたは他の入力デバイス1020を介して、実行されるテキスト認識処理に応じてICRモジュール1050またはOCRモジュール1070に提供され得る。処理システム1040は、1つまたは複数の中央処理装置(CPU)またはグラフィック処理装置(GPU)、および関連する非一時的ストレージおよび/または非一時的メモリを介して、適切または必要に応じてICRモジュール1050またはOCRモジュール1070のいずれかと通信し、必要な処理能力を提供し得る、処理モジュール1090を含むことができる。一実施形態において、処理システム1040は、コンピュータ1030又はスキャナ/入力装置1020のいずれかと直接通信できる。処理システム1040は、自己完結型であってもよいし、その様々な要素がネットワーク又はクラウド1060を介して接続されていてもよい。ICRモジュール1050またはOCRモジュール1070の一方または両方は、それぞれが独自のCPUおよび/またはGPUを有していてもよく、ネットワークまたはクラウド1060を介して処理モジュール1090と通信することができる。
【0055】
ディープラーニングシステム1200(1200’)は、図12A及び図12Bを参照して以下に詳細に説明するが、ホストシステムにおけるベースモデルへの変更、又はエンドユーザーシステムにおけるエンドユーザーモデルへの変更を処理する。
【0056】
図11Aは、一実施形態によるベースモデルのディープラーニングシステムの上位図である。ベースモデル1200は、複数のノードからなる入力層1210を有する。システムによっては、1つまたは複数の中間層1220~1240(図11AはP個のそのような層を示し、Pは正の整数である)が存在し、中間層の各々は順番に複数のノードからなる。当業者であれば理解できるように、ベースモデルの学習は、特定のエンドユーザーニーズに特化していない大量のデータを含み得る入力学習データに基づいて、様々な層の様々なノードに重みを割り当てることを含む。その場合、エンドユーザーでの学習が、出力層の学習を行うことになる。
【0057】
一実施形態において、最後の中間層1240は、ベースモデルの出力を提供する。
【0058】
図11Bは、一実施形態によるエンドユーザーモデルのディープラーニングシステムの上位図である。エンドユーザーモデル1200’は、複数のノードからなる入力層1210’を有する。システムによっては、1つまたは複数の中間層1220’~1240’(図11BはP’個のそのような層を示し、P’は正の整数である)が存在し、中間層の各々は順番に複数のノードからなる。当業者であれば理解できるように、エンドユーザーモデルの学習は、特定のエンドユーザーニーズに特化していない大量のデータを含み得る入力学習データに基づいて、様々な層の様々なノードに重みを割り当てることを含む。
【0059】
なお、一実施形態において、エンドユーザー自身がベースモデルを変更することはできない。エンドユーザーの変化は、出力層周辺の特定のエンドユーザーニーズに焦点を当てる。バックプロパゲーションを採用するディープラーニングモデルの実施形態では、エンドユーザーモデルディープラーニングシステムの入力層または中間層の1つまたは複数におけるノードの重み付けが変更されてもよい。このような変更は、異なるエンドユーザーからのデータセットがベースモデルのディープラーニングシステムにどのように提示されるか、また、それらのデータセットがどの程度の大きさであるかなどに応じて、何らかの形式でベースモデルにフィルタバックされてよい。これらとその他の可能性については、上記で詳しく説明されている。しかし、基本的には、エンドユーザーモデルからベースモデルの重み付けを変更するような出力があったとしても、その変更はベースモデルを制御するホスト側で行われる。
【0060】
図12Aは、ベースモデルディープラーニングシステム1200をもう少し詳しく示したものである。ベースモデルデータベース1260は、ベースモデルに対する重みとデータを格納する。ノード重み付けモジュール1270は、特に結果との比較に基づいて様々な層の様々なノードの重みを計算し、それに応じてそれらの重みを層1270-1、1270-2、・・・1270-N-2、1270-N-1に割り当てる。このようにして、ベースモデルは、エンドユーザーモデル1200’(図12B)にエンドユーザー学習を適用するための基礎を提供する。
【0061】
図12Bは、エンドユーザーモデルディープラーニングシステム1200′をもう少し詳しく示したものである。図12Aと同様に、エンドユーザーモデルデータベース1260’は、エンドユーザーモデルに対する重みとデータを格納する。ノード重み付けモジュール1270’は、出力層1270-N’のノードのための重みを計算する。一実施形態において、エンドユーザーモデルディープラーニングシステム1200’は、モデル内の他の層の重みに影響を与えないが、それはそれらの層がベースモデルに属するからである。この実施形態では、ベースモデルの再学習またはベースモデルのいずれかの層のいずれかのノードの重み付けは、エンドユーザーモデルの再学習ではなく、ベースモデルの再学習によって行われる。
【0062】
本発明の態様を様々な図面を参照して詳細に説明したが、当業者であれば、本発明の範囲および精神の範囲内で多数の変更があり得ることを理解するであろう。従って、本発明は以下の特許請求の範囲によってのみ限定される。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11A
図11B
図12A
図12B