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

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

▶ 富士通株式会社の特許一覧

特開2024-124026情報処理プログラム,情報処理方法および情報処理装置
<>
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図1
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図2
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図3
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図4
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図5
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図6
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図7
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図8
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図9
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図10
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図11
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図12
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図13
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図14
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図15
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図16
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図17
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図18
  • 特開-情報処理プログラム,情報処理方法および情報処理装置 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024124026
(43)【公開日】2024-09-12
(54)【発明の名称】情報処理プログラム,情報処理方法および情報処理装置
(51)【国際特許分類】
   G06F 40/268 20200101AFI20240905BHJP
   G06F 40/216 20200101ALI20240905BHJP
【FI】
G06F40/268
G06F40/216
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023031908
(22)【出願日】2023-03-02
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和4年度、国立研究開発法人科学技術振興機構、戦略的創造研究推進事業「人間とAIの双方に扱いやすいことばの単位の創出」委託研究、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110003649
【氏名又は名称】弁理士法人真田特許事務所
(74)【代理人】
【識別番号】100189201
【弁理士】
【氏名又は名称】横田 功
(72)【発明者】
【氏名】平岡 達也
(72)【発明者】
【氏名】岩倉 友哉
(57)【要約】
【課題】訓練済み機械学習モデルにデータを入力する字句分割器の調整における計算資源の消費量を低減する。
【解決手段】文字列データを第1字句分割器に入力することで、文字列データに対応した異なる複数の分割パターンで文字列データを分割した複数の分割済み文字列データを、データセットに含まれる文字列データごとに取得し、分割済み文字列データを入力データとして、入力データに応じた推論処理を行なう訓練済み機械学習モデルに、各文字列データについての複数の分割済み文字列データを入力した場合の推論結果の良否を示す指標を算出し、各文字列データについて、対応する複数の分割済み文字列データの中から指標が所定の条件を満たす分割済み文字列データを選択し、各文字列データについて選択した分割済み文字列データに基づいて、訓練済み機械学習モデルに入力データを入力する第2字句分割器の調整を行なう、処理をコンピュータに実行させる。
【選択図】図12
【特許請求の範囲】
【請求項1】
文字列データを第1字句分割器に入力することで、前記文字列データに対応した異なる複数の第1分割パターンで前記文字列データを分割した複数の第1分割済み文字列データを、データセットに含まれる複数の前記文字列データのそれぞれについて取得し、
前記第1分割済み文字列データを入力データとして、前記入力データに応じた推論処理を行なう訓練済み機械学習モデルに、前記複数の文字列データのそれぞれについての前記複数の第1分割済み文字列データを入力した場合の推論結果の良否を示す指標を算出し、
前記複数の文字列データのそれぞれについて、対応する前記複数の第1分割済み文字列データの中から前記良否を示す指標が所定の条件を満たす第1分割済み文字列データを選択し、
前記複数の文字列データのそれぞれについて選択した前記第1分割済み文字列データに基づいて、前記訓練済み機械学習モデルに前記入力データを入力する第2字句分割器の調整を行なう、
処理をコンピュータに実行させる、情報処理プログラム。
【請求項2】
前記調整を行なう処理は、
前記訓練済み機械学習モデルの訓練に用いた訓練データセットに含まれない語彙と一致する文字列が前記第2字句分割器から出力されることを抑制するように、前記第2字句分割器を訓練する、処理を含む、
請求項1に記載の情報処理プログラム。
【請求項3】
前記訓練する処理は、
前記複数の文字列データのそれぞれについて、前記文字列データを前記第2字句分割器に入力することで得られる、前記文字列データに対応した異なる複数の第2分割パターンで前記文字列データを分割した複数の第2分割済み文字列データのうち、前記語彙と一致する文字列を分割結果として含む第2分割済み文字列データのスコアを調整する、処理を含む、
請求項2に記載の情報処理プログラム。
【請求項4】
前記スコアを調整する処理は、
前記語彙と一致する文字列を分割結果として含む第2分割済み文字列データのスコアを、前記複数の第2分割済み文字列データのそれぞれのスコアよりも小さくなるように制御する、処理を含み、
前記訓練する処理は、
前記複数の文字列データのそれぞれについて、前記文字列データを前記第2字句分割器に入力することで得られる前記複数の第2分割済み文字列データのうち、前記文字列データについて選択した前記第1分割済み文字列データと一致する第2分割済み文字列データのスコアが最大となるように、前記第2字句分割器のパラメータを最適化する、処理を含む、
請求項3に記載の情報処理プログラム。
【請求項5】
前記第2字句分割器は、BiLSTM(Bidirectional Long Short-Term Memory)を用いた字句分割器である、
請求項1~請求項4のいずれか1項に記載の情報処理プログラム。
【請求項6】
文字列データを第1字句分割器に入力することで、前記文字列データに対応した異なる複数の第1分割パターンで前記文字列データを分割した複数の第1分割済み文字列データを、データセットに含まれる複数の前記文字列データのそれぞれについて取得し、
前記第1分割済み文字列データを入力データとして、前記入力データに応じた推論処理を行なう訓練済み機械学習モデルに、前記複数の文字列データのそれぞれについての前記複数の第1分割済み文字列データを入力した場合の推論結果の良否を示す指標を算出し、
前記複数の文字列データのそれぞれについて、対応する前記複数の第1分割済み文字列データの中から前記良否を示す指標が所定の条件を満たす第1分割済み文字列データを選択し、
前記複数の文字列データのそれぞれについて選択した前記第1分割済み文字列データに基づいて、前記訓練済み機械学習モデルに前記入力データを入力する第2字句分割器の調整を行なう、
処理をコンピュータが実行する、情報処理方法。
【請求項7】
文字列データを第1字句分割器に入力することで、前記文字列データに対応した異なる複数の第1分割パターンで前記文字列データを分割した複数の第1分割済み文字列データを、データセットに含まれる複数の前記文字列データのそれぞれについて取得し、
前記第1分割済み文字列データを入力データとして、前記入力データに応じた推論処理を行なう訓練済み機械学習モデルに、前記複数の文字列データのそれぞれについての前記複数の第1分割済み文字列データを入力した場合の推論結果の良否を示す指標を算出し、
前記複数の文字列データのそれぞれについて、対応する前記複数の第1分割済み文字列データの中から前記良否を示す指標が所定の条件を満たす第1分割済み文字列データを選択し、
前記複数の文字列データのそれぞれについて選択した前記第1分割済み文字列データに基づいて、前記訓練済み機械学習モデルに前記入力データを入力する第2字句分割器の調整を行なう、
制御部を備える、情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム,情報処理方法および情報処理装置に関する。
【背景技術】
【0002】
機械学習モデルを用いた自然言語処理では、機械学習モデルへの入力となるテキスト等の文字列データを、より細かい単位、例えばトークン(Token)に分割する処理が行なわれることがある。トークンは、文字列データをいずれか1箇所以上の位置で区切って得られる1以上の文字列(字句,語)である。
【0003】
例えば、テキストが「外国人参政権」である場合、或る区切り方で分割すると、「外国人」,「参政」,「権」のトークンが得られる。また、例えば、テキストが「award for best actor」である場合、或る区切り方で分割すると、「a」,「ward」,「for」,「b」,「est」,「actor」のトークンが得られる。
【0004】
以下、便宜上、トークンを「単語」と表記する場合がある。「単語」には、例えば、「外国人」,「award」のような一般的な単語(Word)、並びに、「権」,「est」のようなサブワード(Subword)、等のトークン(Token)が含まれてよい。文字列データをトークンに分割する処理は、「単語分割」又は「トークナイゼーション(Tokenization)」と称されてもよい。
【0005】
単語分割におけるテキストの区切り方、換言すれば分割パターンは、機械学習モデルを用いた自然言語処理での性能、例えば機械学習モデルから出力される推論結果の精度に影響を与えることがある。このことは、分割パターンを変えることで、訓練済みの機械学習モデルのパラメータの調整を不要としつつ自然言語処理での性能向上を実現できる可能性があることを意味する。
【0006】
例えば、単語分割を行なう単語分割器(字句分割器)と、単語分割器の後段の機械学習モデル(以下、「後段モデル」と表記する場合がある)とを並列に起動することで、単語分割と後段モデルとを同時に最適化(調整)する手法が知られている。
【0007】
当該手法では、例えば、複数のテキストを含む入力データをそれぞれ単語分割器に入力して得られる分割済みテキストを後段モデルに入力し、後段モデルの訓練結果を単語分割器にフィードバックすることで、単語分割器の最適化が行なわれる。
【先行技術文献】
【非特許文献】
【0008】
【非特許文献1】Tatsuya Hiraoka, Sho Takase, Kei Uchiumi, Atsushi Keyaki, and Naoaki Okazaki, “Joint Optimization of Tokenization and Downstream Model”, In Findings of the Association for Computational Linguistics: ACL 2021, Association for Computational Linguistics, August 2021
【発明の概要】
【発明が解決しようとする課題】
【0009】
上述した手法では、単語分割器と後段モデルとが並列に起動する(動作する)ことになる。従って、単語分割器及び後段モデルを実行するコンピュータでは、単語分割器の最適化を行なうことによって、コンピュータの計算資源の消費量、例えばメモリの使用量やプロセッサの処理能力の消費量が増加し得る。このため、コンピュータの性能によっては、上述した手法を実用化することが難しい場合がある。
【0010】
1つの側面では、本発明は、訓練済み機械学習モデルにデータを入力する字句分割器の調整における計算資源の消費量を低減することを目的の1つとする。
【課題を解決するための手段】
【0011】
1つの側面では、情報処理プログラムは、コンピュータに、以下の処理を実行させてよい。前記処理は、文字列データを第1字句分割器に入力することで、前記文字列データに対応した異なる複数の第1分割パターンで前記文字列データを分割した複数の第1分割済み文字列データを、データセットに含まれる複数の前記文字列データのそれぞれについて取得してよい。前記処理は、前記第1分割済み文字列データを入力データとして、前記入力データに応じた推論処理を行なう訓練済み機械学習モデルに、前記複数の文字列データのそれぞれについての前記複数の第1分割済み文字列データを入力した場合の推論結果の良否を示す指標を算出してよい。前記処理は、前記複数の文字列データのそれぞれについて、対応する前記複数の第1分割済み文字列データの中から前記良否を示す指標が所定の条件を満たす第1分割済み文字列データを選択してよい。前記処理は、前記複数の文字列データのそれぞれについて選択した前記第1分割済み文字列データに基づいて、前記訓練済み機械学習モデルに前記入力データを入力する第2字句分割器の調整を行なってよい。
【発明の効果】
【0012】
1つの側面では、本発明は、訓練済み機械学習モデルにデータを入力する字句分割器の調整における計算資源の消費量を低減することができる。
【図面の簡単な説明】
【0013】
図1】単語分割の分割パターンに応じた後段モデルの推論結果の変化例を示す図である。
図2】単語分割の分割パターンに応じた後段モデルの推論結果の変化の他の例を示す図である。
図3】比較例に係る単語分割の最適化手法を説明するための図である。
図4】一実施形態の一例としてのサーバの機能を実現するコンピュータのハードウェア(HW)構成例を示すブロック図である。
図5】一実施形態の一例としてのサーバのソフトウェア構成例を示すブロック図である。
図6】後段モデル及び単語分割器Bの訓練フェーズの動作例を説明するための図である。
図7】訓練済み単語分割器B及び訓練済み後段モデルを用いた推論フェーズの動作例を説明するための図である。
図8】訓練用データセットの一例を示す図である。
図9】分割済みデータセットの一例を示す図である。
図10】複数パターンの分割済みデータセットの一例を示す図である。
図11】訓練用分割済みデータセットの一例を示す図である。
図12】分割済みデータセットからの分割済みデータの選択手法の一例を説明するための図である。
図13】単語分割器Bにおけるスコア算出処理の一例を説明するための図である。
図14】単語分割器Bによるスコアの算出手法の一例を説明するための図である。
図15】語彙の制約の一例を示す図である。
図16】一実施形態に係る手法による、訓練済み後段モデルの性能への影響の一例を説明するための図である。
図17】一実施形態に係るサーバによる後段モデルの機械学習処理の動作例を説明するためのフローチャートである。
図18】一実施形態に係るサーバによる単語分割器Bの機械学習処理の動作例を説明するためのフローチャートである。
図19】一実施形態に係るサーバによる推論処理の動作例を説明するためのフローチャートである。
【発明を実施するための形態】
【0014】
以下、図面を参照して実施形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【0015】
〔A〕単語分割の調整の説明
まず、単語分割の調整について説明する。一実施形態では、単語分割器(字句分割器)が、入力されるテキストの単語分割を行ない、分割結果である複数の単語を後段モデルに入力する。単語分割器としては、例えば、トークナイザー(Tokenizer)が挙げられる。テキストは、文字列データの一例である。また、単語分割器により複数の単語(トークン)に分割されたテキストは、分割済み文字列データの一例である。
【0016】
後段モデルは、自然言語処理に関する種々のAI(Artificial Intelligence)タスクを実行する機械学習モデルである。一実施形態では、後段モデルは、例えば、入力される複数の単語の全体(文字列データ)のトピック分類を行なうトピック分類器(Topic Classifier)であってよい。トピック分類は、文書分類タスクの一例である。
【0017】
図1は、単語分割の分割パターンに応じた後段モデルの推論結果の変化例を示す図である。図1では、単語分割器110に「外国人参政権」(Non-citizen suffrage)のテキストが入力された場合において、単語分割器110が、以下の2つの分割パターンでテキストを単語分割した例を示す。
・外国(Foreign)/人参(Carrot)/政権(Administration)
・外国人(Foreign citizen)/参政(Participation in government)/権(Rights)
【0018】
以下、上記の単語パターンのように、単語分割によるテキストの区切りをスラッシュ(/)で表記する。また、括弧は、単語分割で得られる単語(トークン)の意味を、便宜上、単語とは別の言語(図1の例では英語)で表記したものである。なお、トークンは必ずしも意味を持つ単位である必要はないが、図1に示す例においては、解釈のため、トークンに対応する訳語を付記している。
【0019】
以下の説明では、単語分割器110によるテキストの単語分割により得られる複数の単語を、「分割済みテキスト」と表記する場合がある。分割済みテキストは、分解済み文字列データの一例である。
【0020】
トピック分類器120は、単語分割器110から入力される分割済みテキストの潜在的な意味を解析し、分割済みテキストを、所定の複数のトピックのうちのいずれかのトピックに分類する。
【0021】
図1の例では、「外国人参政権(Non-citizen suffrage)」のトピックは、「政治トピック」が適切である。例えば、トピック分類器120は、分割済みテキスト「外国人/参政/権」については「政治トピック」に分類する。一方、トピック分類器120は、分割済みテキスト「外国/人参/政権」を、「人参(Carrot)」の単語の影響により「食品トピック」に分類する場合がある。
【0022】
このような不適切なトピック分類の発生は、日本語や中国語のような「分かち書き」の無い言語に限定されるものではない。「分かち書き」の有る言語、例えば英語では、単語分割器110は、Word間のスペースに加えて、1つのWordをSubwordに分割することがある。
【0023】
図2は、単語分割の分割パターンに応じた後段モデルの推論結果の変化の他の例を示す図である。図2では、単語分割器110に「prime contractor(元請業者)」のテキストが入力された場合において、単語分割器110が、以下の2つの分割パターンでテキストを単語分割した例を示す。
・prime(主)/contr(収縮)/actor(俳優)
・prime(主)/contract(契約)/or(又は)
【0024】
図2の例では、「prime contractor(主契約者)」のトピックは、「ビジネス(Business)」トピックが適切である。例えば、トピック分類器120は、分割済みテキスト「prime/contract/or」については「Business」トピックに分類する。一方、トピック分類器120は、分割済みテキスト「prime/contr/actor」を、「actor(俳優)」のSubwordの影響により「Movie」(映画)トピックに分類する場合がある。
【0025】
トピック分類器120の訓練(機械学習)では、訓練データとして、例えば、入力されるテキストに対していずれかの分割パターンに従い単語分割器110が出力した分割済みテキストが用いられる。このため、トピック分類器120は、例えば、訓練データとして、「外国/人参/政権」,「prime/contr/actor」等を用いて訓練されることがある。
【0026】
このような不適切な分割済みテキストにより訓練された訓練済みトピック分類器120であっても、図1及び図2に示すように、分割済みテキストの分割パターンによっては、適切なトピック分類結果(推論結果)を出力することができる可能性がある。換言すれば、トピック分類器120のパラメータを変更しない(固定した)状態で、単語分割器110による分割パターンを変えることで、トピック分類器120の推論精度を向上させることができる可能性がある。
【0027】
そこで、訓練済み後段モデルの処理性能を向上できるような適切な単語分割、例えば、「外国人/参政/権」,「prime/contract/or」等の、後段モデルに入力すると正しい結果が得られる単語分割を行なう単語分割器110を作成することを考える。
【0028】
図3は、比較例に係る単語分割の最適化手法を説明するための図である。図3に示すように、複数の訓練用テキストを含む訓練用データセット201が単語分割器210に入力される。
【0029】
単語分割器210は、訓練用データセット201内の複数の訓練用テキストのそれぞれを単語分割し、複数の分割済み訓練データを含む分割済み訓練データセット202を後段モデル220に入力する。
【0030】
後段モデル220(例えばトピック分類器)は、分割済み訓練データセット202に含まれる複数の分割済み訓練データのそれぞれを用いて推論処理を行ない、フィードバック機構230(最適化機構)により推論結果を単語分割器210にフィードバックする。
【0031】
このように、最適化機構により単語分割器210に後段モデル220を組み込んで単語分割器210を再訓練することで、適切な単語分割を行なうように単語分割器210を最適化することができる。
【0032】
しかしながら、図3に例示する手法では、後段モデル220及び最適化機構を、単語分割器210とともに並列に起動することになる。このため、単語分割器210及び後段モデル220を実行するコンピュータでは、単語分割器210のみを起動する場合と比較して、コンピュータの計算資源、例えばメモリの使用量が増加し得る。従って、コンピュータの処理性能によっては、図3に例示する手法を実用化することが難しい場合がある。
【0033】
また、図3に例示する手法では、構造上、単語分割器210として、ユニグラム言語モデルを用いた手法等の単純な手法が採用される。このため、単語分割器210が学習できる単語分割のバリエーション(分割パターン)に制約が生じる場合がある。
【0034】
このような制約は、例えば、表現力の高い単語分割器を用いることで解消できる可能性がある。表現力の高い単語分割器としては、例えば、ニューラルネットワークを用いたニューラル単語分割器が挙げられる。
【0035】
しかし、ニューラル単語分割器は、単語分割を行なう際に使用する「語彙」に制約がない又は小さいため、ニューラル単語分割器による単語分割により、実際に後段モデル220で利用できる語彙には含まれていない「未知語」が出力されてしまう可能性がある。「語彙」とは、単語分割によりテキストを分割して得られる語であり、例えば上述した「外国人」,「参政」,「権」等の字句(トークン)である。「未知語」は、例えば、後段モデル220の訓練で用いられていない(訓練データセットに含まれない)単語であり、一例として、「人参政権」という語である。
【0036】
このため、後段モデル220で使用可能な語彙の制限により、ニューラル単語分割器のような表現力の高い単語分割器を、図3に例示する手法に単純に適用することが難しい場合がある。
【0037】
そこで、1つの側面では、一実施形態では、訓練済み機械学習モデルにデータを入力する単語分割器の調整における計算資源の消費量を低減する手法の一例を説明する。また、他の側面では、訓練済み機械学習モデルで利用可能な字句の制約を満たしつつ、表現力の高い単語分割器の調整を実現する手法の一例を説明する。
【0038】
〔B〕ハードウェア構成例
一実施形態に係るサーバ1(図5参照)は、仮想サーバ(VM:Virtual Machine)であってもよいし、物理サーバであってもよい。また、サーバ1の機能は、1台のコンピュータにより実現されてもよいし、2台以上のコンピュータにより実現されてもよい。さらに、サーバ1の機能のうちの少なくとも一部は、クラウド環境により提供されるハードウェア(HW)リソース及びネットワーク(NW)リソースを用いて実現されてもよい。
【0039】
図4は、一実施形態の一例としてのサーバ1の機能を実現するコンピュータ10のハードウェア(HW)構成例を示すブロック図である。サーバ1の機能を実現するHWリソースとして、複数のコンピュータが用いられる場合は、各コンピュータが図4に例示するHW構成を備えてよい。
【0040】
図4に示すように、コンピュータ10は、HW構成として、例示的に、プロセッサ10a,グラフィック処理装置10b,メモリ10c,記憶部10d,IF(Interface)部10e,IO(Input / Output)部10f及び読取部10gを備えてよい。
【0041】
プロセッサ10aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ10aは、コンピュータ10内の各ブロックとバス10jで相互に通信可能に接続されてよい。なお、プロセッサ10aは、複数のプロセッサを含むマルチプロセッサであってもよいし、複数のプロセッサコアを有するマルチコアプロセッサであってもよく、或いは、マルチコアプロセッサを複数有する構成であってもよい。
【0042】
プロセッサ10aとしては、例えば、CPU,MPU,APU,DSP,ASIC,FPGA等の集積回路(IC:integrated circuit)が挙げられる。なお、プロセッサ10aとして、これらの集積回路の2以上の組み合わせが用いられてもよい。CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称である。APUはAccelerated Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplication Specific ICの略称であり、FPGAはField-Programmable Gate Arrayの略称である。
【0043】
グラフィック処理装置10bは、IO部10fのうちのモニタ等の出力装置に対する画面表示制御を行なう。また、グラフィック処理装置10bは、機械学習モデルを利用した機械学習処理及び推論処理を実行するアクセラレータとしての構成を有してよい。グラフィック処理装置10bとしては、種々の演算処理装置、例えば、GPU(Graphics Processing Unit),APU,DSP,ASIC又はFPGA等の集積回路(IC)が挙げられる。
【0044】
メモリ10cは、種々のデータやプログラム等の情報を格納するHWの一例である。メモリ10cとしては、例えばDRAM(Dynamic Random Access Memory)等の揮発性メモリ、及び、PM(Persistent Memory)等の不揮発性メモリ、の一方又は双方が挙げられる。
【0045】
記憶部10dは、種々のデータやプログラム等の情報を格納するHWの一例である。記憶部10dとしては、HDD(Hard Disk Drive)等の磁気ディスク装置,SSD(Solid State Drive)等の半導体ドライブ装置,不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ,SCM(Storage Class Memory),ROM(Read Only Memory)等が挙げられる。
【0046】
記憶部10dは、コンピュータ10の各種機能の全部若しくは一部を実現するプログラム10h(データ処理プログラム)を格納してよい。
【0047】
例えば、サーバ1のプロセッサ10aは、記憶部10dに格納されたプログラム10hをメモリ10cに展開して実行することにより、後述する制御部30(図5参照)としての機能を実現できる。
【0048】
IF部10eは、サーバ1と他のコンピュータとの間の接続及び通信の制御等を行なう通信IFの一例である。例えば、IF部10eは、イーサネット(登録商標)等の電気通信(例えばLAN(Local Area Network))、或いは、FC(Fibre Channel)等の光通信等に準拠したアダプタを含んでよい。当該アダプタは、無線及び有線の一方又は双方の通信方式に対応してよい。
【0049】
なお、プログラム10hは、当該通信IFを介して、ネットワークからコンピュータ10にダウンロードされ、記憶部10dに格納されてもよい。
【0050】
IO部10fは、入力装置、及び、出力装置、の一方又は双方を含んでよい。入力装置としては、例えば、キーボード、マウス、タッチパネル等が挙げられる。出力装置としては、例えば、モニタ、プロジェクタ、プリンタ等が挙げられる。また、IO部10fは、入力装置及び表示装置が一体となったタッチパネル等を含んでもよい。出力装置は、グラフィック処理装置10bに接続されてよい。
【0051】
読取部10gは、記録媒体10iに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部10gは、記録媒体10iを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部10gとしては、例えば、USB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体10iにはプログラム10hが格納されてもよく、読取部10gが記録媒体10iからプログラム10hを読み出して記憶部10dに格納してもよい。
【0052】
記録媒体10iとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。
【0053】
上述したコンピュータ10のHW構成は例示である。従って、コンピュータ10内でのHWの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、又は、バスの追加若しくは削除等は適宜行なわれてもよい。
【0054】
〔C〕ソフトウェア構成例
図5は、一実施形態の一例としてのサーバ1のソフトウェア構成例を示すブロック図である。サーバ1は、単語分割器の調整を行なうコンピュータ又は情報処理装置の一例である。
【0055】
図5に示すように、サーバ1は、例示的に、分割制御部31,第1機械学習部32,生成部33,第2機械学習部34及び推論部35を備えてよい。サーバ1が備えるブロック31~35は、制御部30の一例である。制御部30の機能は、例えば、図4に示すコンピュータ10のプロセッサ10aが、メモリ10cに展開されたプログラム10hを実行することにより実現されてよい。
【0056】
また、図5に示すように、サーバ1は、例示的に、訓練用データセット11,分割済みデータセット12,13及び16,訓練用分割済みデータセット14,推論用データセット15並びに推論結果17を記憶可能な記憶領域を備えてよい。
【0057】
さらに、サーバ1は、単語分割器21及び24,後段モデル22,訓練済み後段モデル23並びに訓練済み単語分割器25のデータを記憶可能な記憶領域を備えてよい。なお、訓練済み後段モデル23は、機械学習により訓練済みの後段モデル22であり、後段モデル22のパラメータが変化した機械学習モデルと捉えられてよい。また、訓練済み単語分割器25は、機械学習により訓練済みの単語分割器24であり、単語分割器24のパラメータが変化した機械学習モデルと捉えられてよい。
【0058】
サーバ1が有する記憶領域は、例えば、図4に示すコンピュータ10のメモリ10c及び記憶部10dのうちの一方又は双方の記憶領域により実現されてよい。
【0059】
サーバ1(制御部30)は、例えば、訓練用データセット11及び推論用データセット15のうちの少なくとも1つを、図示しない他のコンピュータからIF部10e及びネットワークを介して受信し、記憶領域に格納してもよい。
【0060】
また、サーバ1(制御部30)は、例えば、記憶領域に格納された訓練済み後段モデル23,訓練済み単語分割器25及び推論結果17のうちの少なくとも1つを、IF部10e及びネットワークを介して、図示しない他のコンピュータに送信してもよい。なお、サーバ1は、中間データ、例えばデータ11~16,21,22,24のうちの少なくとも1つを、IF部10e及びネットワークを介して、図示しない他のコンピュータに送信してもよい。
【0061】
以下、単語分割器21を単語分割器Aと表記し、単語分割器24を単語分割器Bと表記し、訓練済み単語分割器25を訓練済み単語分割器Bと表記する場合がある。
【0062】
単語分割器Aは、第1字句分割器の一例である。単語分割器Aは、図1及び図2に示す単語分割器110又は図3に示す単語分割器210と同様に、ユニグラム言語モデルを用いた手法等の単純な手法を採用した単語分割器であってよい。例えば、単語分割器Aは、単語分割器Aが扱うことのできる語彙が格納された単語リスト21aを参照し、当該単語リスト21aに含まれる語彙を用いた単語分割を行なってよい。
【0063】
単語分割器Bは、表現力の高い単語分割器(字句分割器,トークン分割器)の一例であり、訓練済み後段モデル23に入力データを入力する第2字句分割器の一例である。例えば、単語分割器Bは、ニューラルネットワークを用いたニューラル単語分割器であってよい。一例として、単語分割器Bは、BiLSTM(Bidirectional Long Short-Term Memory)を用いたニューラル単語分割器であってもよい。BiLSTMは、LSTM,RNN(Recurrent Neural Network)の一例である。なお、単語分割器Aは、単語分割器Bと同様のニューラル単語分割器であってもよい。
【0064】
後段モデル22は、トピック分類器,感情分類器等の種々の文書分類タスクを実行する機械学習モデルであってよく、一例として、SVM(Support Vector Machine)等の文書分類器であってもよい。
【0065】
なお、後段モデル22が実行するAIタスクは、文書分類タスクに限定されるものではなく、自然言語処理に関する種々のAIタスクを実行可能であってよい。一例として、後段モデル22は、後段モデル22からの出力結果の良さ(例えば精度)を定量的に測れる機械学習モデル、例えば、教師ラベルに対する損失を計算できる機械学習モデル等であってもよい。
【0066】
図6は、後段モデル22及び単語分割器Bの訓練フェーズの動作例を説明するための図であり、図7は、訓練済み単語分割器B及び訓練済み後段モデル23を用いた推論フェーズの動作例を説明するための図である。
【0067】
図6に例示するように、分割制御部31は、複数の訓練データを含む訓練用データセット11を単語分割器A(単語分割器21)に入力する。
【0068】
図8は、訓練用データセット11の一例を示す図である。図8に示すように、訓練用データセット11は、例示的に、訓練データとして、文字列データの一例であるテキストと、教師ラベルとを含んでよい。教師ラベルとしては、図8に例示するように、トピックが挙げられる。
【0069】
図8には、訓練用データセット11に、以下の訓練データが含まれる場合を想定する。なお、括弧内は訓練データの教師ラベル(トピック)である。
「外国人参政権について議論(Debate about non-citizen suffrage)」(政治)
「人参など価格高騰(Prices of carrots etc. soar)」(経済)
「トルコ災害支援を決定(Decided to provide disaster relief to Turkey)」(外交)
「prime contractor information(元請業者情報)」(Business(ビジネス))
「award for best actor(最優秀男優賞)」(Movie(映画))
【0070】
分割制御部31は、複数の訓練データのそれぞれを単語分割器Aに入力することで、訓練データごとの分割済みデータを含む、分割済みデータセット12を取得してよい。
【0071】
訓練データごとの分割済みデータは、訓練データを単語分割器Aに入力することで、当該訓練データを所定の分割パターンで単語分割して得た分割済み文字列データの一例である。所定の分割パターンは、複数の訓練データのそれぞれについて、単語分割器Aが単語リスト21aに基づき実行可能な複数の第1分割パターンのうちのいずれか1つの分割パターンの一例である。
【0072】
一例として、単語分割器Aは、N-best分割(例えばN=100)等の手法により、各訓練データについてN個(例えば100個)の分割パターンで単語分割が可能であってよい。例えば、所定の分割パターンは、複数の第1分割パターン、例えばN個の分割パターンのうちの、最もスコアが高い分割パターンであってよい。
【0073】
図9は、分割済みデータセット12の一例を示す図である。図9には、図8に示す訓練データのそれぞれが、以下のように所定の分割パターンで分割された例を示す。
「外国/人参/政権/に/ついて/議論」(政治)
「人参/など/価格/高騰」(経済)
「トルコ/災害支援/を/決定」(外交)
「prime/contr/actor/inform/ation」(Business)
「award/for/best/actor」(Movie)
【0074】
第1機械学習部32は、訓練データセットの一例である分割済みデータセット12を後段モデル22に入力し、分割済みデータセット12を用いた後段モデル22の機械学習(訓練)を行なう。
【0075】
一例として、第1機械学習部32は、「外国/人参/政権/に/ついて/議論」を後段モデル22に入力した場合に「政治」トピックの分類結果が出力されるように、後段モデル22のパラメータを最適化してよい。後段モデル22の機械学習は、既知の種々の手法により実現されてよい。
【0076】
分割制御部31及び第1機械学習部32による上述した後段モデル22の機械学習処理(符号A1参照)により、訓練済み後段モデル23が得られる。訓練済み後段モデル23は、入力データに応じた推論処理を行なう訓練済み機械学習モデルの一例である。
【0077】
また、分割制御部31は、訓練用データセット11を単語分割器Aに入力することで、複数パターンの分割済みデータセット13を取得する。例えば、分割制御部31は、複数の訓練データのそれぞれを単語分割器Aに入力することで、訓練データごとの複数の分割済みデータを含む、分割済みデータセット13を取得してよい。
【0078】
訓練データごとの複数の分割済みデータは、訓練データを単語分割器Aに入力することで、当該訓練データに対応した異なる複数の第1分割パターンで当該訓練データを分割して得た複数の第1分割済み文字列データの一例である。
【0079】
例えば、分割制御部31は、単語分割器Aにより様々なバリエーションで訓練データを単語分割することで、1つの訓練データについて複数パターンの単語分割結果を、訓練用データセット11に含まれる複数の訓練データのそれぞれについて取得してよい。
【0080】
図10は、複数パターンの分割済みデータセット13の一例を示す図である。図10には、単語分割器AがN-bestの単語分割を行なう場合を例に挙げる。なお、図10では、簡単のために、N=3である例を示すが、これに限定されるものではなく、例えば、上述したようにN=100等であってもよい。
【0081】
図10は、図8に示す訓練データのそれぞれが複数の分割パターンで分割された例を示す。一例として、「外国人参政権について議論」(政治)の訓練データから、単語分割器Aにより以下の3つの分割済みデータが生成される。
「外国/人参/政権/に/ついて/議論」(政治)
「外国人/参政権/に/ついて/議論」(政治)
「外国人/参政/権/につ/いて/議論」(政治)
【0082】
生成部33は、単語分割器B(単語分割器24)の訓練に用いる訓練用分割済みデータセット14を生成する。
【0083】
例えば、生成部33は、分割済みデータセット13に含まれる複数の分割済みデータを入力データとして、訓練済み後段モデル23による推論処理を行なう。また、生成部33は、複数の訓練データのそれぞれについての複数の分割済みデータを訓練済み後段モデル23に入力した場合の推論結果の良否を示す指標を算出する。
【0084】
推論結果の良否を示す指標としては、例えば、訓練済み後段モデル23からの出力と、訓練データの教師ラベルとに基づく損失が挙げられる。損失は、例えば、交差エントロピー誤差等の種々の損失関数により算出されてよい。
【0085】
また、推論結果の良否を示す指標として、例えば、分割済みデータセット13に含まれる各分割済みデータについての、訓練済み後段モデル23の各ラベルに対する予測確率(予測スコア)が用いられてもよい。各ラベルに対する予測確率とは、訓練済み後段モデル23による分割済みデータのトピック分類により出力される各ラベルが正解であるという確信度合いを示す情報であり、予測確率が大きいほど、当該ラベルが正解である確率が高いことを意味する。なお、上述した損失は、各ラベルに対する予測確率に基づき算出されてもよい。
【0086】
そして、生成部33は、複数の訓練データのそれぞれについて、対応する複数の分割済みデータの中から推論結果の良否を示す指標が所定の条件を満たす分割済みデータを選択することで、複数の訓練データのそれぞれについて選択された分割済みデータを含む訓練用分割済みデータセット14を取得する。所定の条件とは、例えば、推論結果の良否を示す指標が最適であることであってよく、一例として、損失が最小であることであってよい。生成部33による訓練用分割済みデータセット14の選択処理の詳細は後述する。
【0087】
図11は、訓練用分割済みデータセット14の一例を示す図である。図11には、図10に示す複数の分割済みデータのうちの以下の分割済みデータが選択された例を示す。
「外国人/参政権/に/ついて/議論」(政治)
「人参/など/価格/高騰」(経済)
「トルコ/災害/支援/を/決定」(外交)
「prime/contract/or/inform/at/ion」(Business)
「award/for/best/actor」(Movie)
【0088】
例えば、訓練用分割済みデータセット14では、「外国人参政権について議論」の分割済みデータとして、分割済みデータセット12の「外国/人参/政権/に/ついて/議論」とは異なる分割済みデータが選択されている。また、例えば、「prime contract or information」の分割済みデータとして、分割済みデータセット12の「prime/contr/actor/inform/ation」とは異なる分割済みデータが選択されている。
【0089】
なお、一実施形態では、生成部33は、訓練用分割済みデータセット14として、1つの訓練データについて1つの分割済みデータを選択するものとするが、これに限定されるものではない。例えば、生成部33は、1つの訓練データについて、推論結果の良否を示す指標が所定の条件を満たす(例えば損失が所定値以下である)1以上の分割済みデータを選択してもよい。
【0090】
以上のように、分割制御部31及び生成部33により、訓練用分割済みデータセット14の生成処理(符号A21参照)が行なわれる。
【0091】
第2機械学習部34は、取得した訓練用分割済みデータセット14を単語分割器Bに入力し、訓練用分割済みデータセット14に含まれる分割済みデータに基づいて、単語分割器Bの調整、例えば機械学習(訓練又は再訓練)を行なう。例えば、サーバ1は、単語分割器Bの機械学習を行なうことで、単語分割器Bのパラメータの調整(最適化)を行なってよい。
【0092】
一例として、第2機械学習部34は、訓練データの1つである「外国人参政権について議論」(政治)を単語分割器Bに入力した場合に、単語分割器Bの出力が、生成部33により選択された分割済みデータである「外国人/参政権/に/ついて/議論」(政治)となる確率が高くなるように、単語分割器Bのパラメータを最適化してよい。単語分割器Bの機械学習処理の詳細は後述する。
【0093】
以上のように、第2機械学習部34により、訓練用分割済みデータセット14を用いた単語分割器Bの機械学習処理(符号A22参照)が行なわれる。
【0094】
分割制御部31,生成部33及び第2機械学習部34による上述した単語分割器Bの調整(符号A2参照)、例えば訓練により、訓練済み単語分割器B(訓練済み単語分割器25)が得られる。
【0095】
図7に例示するように、推論部35は、訓練済み単語分割器B及び訓練済み後段モデル23の推論処理(符号A3参照)を行なう。
【0096】
例えば、推論部35は、推論用データセット15を訓練済み単語分割器Bに入力し、分割済みデータセット16を取得する。推論用データセット15には、複数の推論用データ、例えば複数のテキストが含まれてよい。推論部35が訓練済み後段モデル23の評価を行なう場合、推論用データセット15は、複数の評価用データを含んでもよい。
【0097】
例えば、推論部35は、複数の推論用データのそれぞれを訓練済み単語分割器Bに入力することで、推論用データごとの分割済みデータを含む、分割済みデータセット16を取得してよい。
【0098】
推論用データごとの分割済みデータは、推論用データを訓練済み単語分割器Bに入力することで、当該推論用データを所定の分割パターンで単語分割して得た分割済み文字列データの一例である。所定の分割パターンは、複数の推論用データのそれぞれについて、訓練済み単語分割器Bが実行可能な複数の第1分割パターンのうちのいずれか1つの分割パターンの一例である。
【0099】
また、例えば、推論部35は、分割済みデータセット16に含まれる複数の分割済みデータを入力データとして用いて、訓練済み後段モデル23による推論処理を実行し、推論結果17を取得してよい。
【0100】
なお、推論部35は、推論用データセット15及び推論結果17に基づき訓練済み後段モデル23の評価を行なってもよい。例えば、推論部35は、訓練済み後段モデル23による推論の良否を示す指標を取得し、当該指標に基づき訓練済み後段モデル23を評価してよい。サーバ1は、評価結果を推論結果17とともに他のコンピュータ等に出力してもよい。
【0101】
以上のように、一実施形態に係る手法によれば、訓練済み後段モデル23を用いた訓練用分割済みデータセット14の作成(図6の符号A21参照)、並びに、訓練用分割済みデータセット14を用いた単語分割器Bの機械学習(符号A22参照)が行なわれる。
【0102】
単語分割の最適化を符号A21及びA22の2段階の処理により実現することで、訓練済み後段モデル23は、2段階の処理のうちの符号A21で示す処理の際に起動されていればよく、符号A22で示す処理では、起動を不要とすることができる。なお、単語分割器Bは、符号A21で示す処理では起動を不要とすることができ、符号A22で示す処理の際に起動されていればよい。
【0103】
これにより、訓練済み後段モデル23と単語分割器Bとの並列起動を抑制する(例えば不要とする)ことができる。従って、コンピュータの計算資源の消費量、例えばメモリの使用量やプロセッサの処理能力の消費量の増加を抑制でき、単語分割器Bを調整する際における計算資源の消費量を低減することができる。
【0104】
また、後段モデル22の訓練に用いる分割済みデータセット12を生成した単語分割器Aとは別に、新たに単語分割器Bが作成されることで、様々な単語分割手法、一例として、ニューラルネットワークを用いた単語分割手法を採用することが可能となる。
【0105】
〔C-1〕訓練用分割済みデータセットの生成処理の一例
次に、生成部33による訓練用分割済みデータセット14の生成処理(図6の符号A21参照)の一例を説明する。
【0106】
図12は、分割済みデータセット13からの分割済みデータの選択手法の一例を説明するための図である。図12には、図10に例示する分割済みデータセット13の各分割済みデータを入力としたときの、訓練済み後段モデル23の各ラベルに対する予測確率(予測スコア)を示す。
【0107】
図12では、訓練データに対応するN個ごと(例えばN=3個ごと)の分割済みデータについて、太字で示す予測確率のラベルが教師ラベル(正解ラベル)であることを示す。
【0108】
図12において、各訓練データに対応するN個ごとの分割済みデータのうち、太字で示す予測確率が最も大きい分割済みデータが、推論結果の良否を示す指標が所定の条件を満たす分割済みデータであるといえる。
【0109】
従って、生成部33は、訓練データごとに、太字で示す予測確率が最も大きい分割済みデータを選択(抽出)して、訓練用分割済みデータセット14に加えてよい。図12において、生成部33により選択される分割済みデータを、「選択」の項目に付加したチェックにより示す。以上により、訓練用分割済みデータセット14(図11参照)が作成されてよい。
【0110】
〔C-2〕単語分割器Bの一例
次に、単語分割器Bの一例を説明する。図13は、単語分割器Bにおけるスコア算出処理の一例を説明するための図である。
【0111】
一実施形態では、単語分割器Bとして、ニューラルネットワーク等を用いた表現力の高い単語分割器を採用している。一方、訓練済み後段モデル23は、単語分割器Bよりも表現力の低い単語分割器Aから出力された、単語リスト21aに含まれる語彙の範囲内で表現された分割済みデータセット12を用いて訓練されている。従って、訓練済み単語分割器Bから出力される分割済みデータには、訓練済み後段モデル23が学習していない単語、換言すれば、「未知語」が含まれる可能性がある。
【0112】
そこで、単語分割器Bは、訓練済み後段モデル23の利用可能な字句の制約を満たすために、スコア算出処理によって、未知語を含む単語分割による分割済みデータセットの出力を抑制するように訓練されてよい。
【0113】
スコア算出処理は、単語分割器Bに語彙制約を設けるための手法の一例である。例えば、単語分割器Bは、スコア算出処理により、入力される訓練データに対応する複数の分割済みデータのそれぞれについて、確率p(s’|s)を算出する。ここで、sは訓練データ(テキスト)であり、s’は分割済みデータである。なお、確率は、スコアの一例である。スコアとしては、確率に限定されるものではなく、種々の指標が用いられてもよい。以下、確率p(s’|s)をスコアp(s’|s)と表記する場合がある。
【0114】
スコアp(s’|s)は、場合分けにより、以下の式(1)又は(2)により算出されてよい。
・s’に含まれる全単語が、訓練済み後段モデル23の訓練に使用された場合(単語リスト21aに存在する場合)、
p(s’|s) = f(s’,s) (1)
・訓練済み後段モデル23の訓練に未使用の単語(単語リスト21aに存在しない単語)がs’に存在する場合、
p(s’|s) = 0.0 (2)
【0115】
一例として、訓練データが「外国人参政権」であり、単語分割器Bから分割済みデータとして「外国人/参政/権」が出力される場合であって、「外国人」,「参政」,「権」の各単語が単語リスト21aに存在する場合を想定する。この場合、スコアp(外国人,参政,権|外国人参政権)は、上記式(1)に従い、所定の関数であるf(“外国人,参政,権”,“外国人参政権”)の結果である“0.5”として算出される。同様に、「参政権」の単語も単語リスト21aに存在する場合、スコアp(外国人,参政権|外国人参政権)は、上記式(1)に従い、所定の関数であるf(“外国人,参政権”,“外国人参政権”)の結果である“0.3”として算出される。
【0116】
一方、訓練データが「外国人参政権」であり、単語分割器Bから分割済みデータとして「外国/人参政権」が出力される場合であって、「外国」の単語が単語リスト21aに存在し、「人参政権」の単語が単語リスト21aに存在しない場合を想定する。この場合、スコアp(外国,人参政権|外国人参政権)は、上記式(2)に従い、“0.0”として算出される。
【0117】
なお、訓練データ或いは推論データを単語分割器Bに入力することで得られる複数の分割済みデータは、訓練データ或いは推論データに対応した異なる複数の第2分割パターンで訓練データ或いは推論データを分割した複数の第2分割済み文字列データの一例である。
【0118】
単語分割器Bは、例えば、複数の分割済みデータ(複数の候補)のうち、スコアが最も高い分割済みデータを出力する。訓練済み後段モデル23が学習していない単語(訓練済み後段モデル23に含まれない語彙)を含む制限対象の分割済みデータは、スコアが最低になる。このため、単語分割器Bは、制限対象の分割済みデータを出力することを抑制できる。
【0119】
なお、上記式(2)において、制限対象の分割済みデータのスコアp(s’|s)の値は、“0.0”に限定されるものではない。例えば、上記式(2)に代えて、単語分割器Bから制限対象の分割済みデータの出力が抑制される仕組みであれば、種々の式又は手法が用いられてもよい。
【0120】
次に、スコアp(s’|s)の算出手法の一例を説明する。なお、以下の説明では、単語分割器BがニューラルネットワークとしてBiLSTMを用いた単語分割器であるものとする。
【0121】
K文字の訓練データ(テキスト)s = c1...cKについて、i文字目で始まりj文字目で終わる単語wi,jの出現確率p(wi,j|s)は、下記式(3)~(7)により算出できる。なお、i,jは、1以上K以下の整数であり、i<jである。
【数1】
【0122】
上記式(3)において、BiLSTM(vc1... vcK)kは、k番目の入力vckに対応するBiLSTMの出力を得る操作である。また、k番目の入力vckは、cKに対応する文字埋め込み表現である。上記式(4)及び(5)において、MLPbegin及びMLPendは、それぞれ異なる多層パーセプトロン(MLP:Multi Layer Perceptron)である。上記式(6)において、σ(hi (begin)Thj (end))は、シグモイド関数である。hi (begin)Thj (end)は、hi (begin)とhj (end)との内積である。なお、Vθは、訓練済み後段モデル23で使用可能な語彙である。
【0123】
上記式(6)及び(7)に示すp(wi,j|s)は、訓練データsごとにまとめて計算することができる。また、分割済みデータのスコアp(s’|s)は、分割済みデータs’の各々の単語wの出現確率の積で表すことができる。
【0124】
従って、例えば、訓練データs=“外国人参政権”である場合、上記式(3)と、上記式(6)及び(7)とに基づき、スコアp(外国人,参政,権|外国人参政権)は、下記式(8)~(11)により表すことができる。なお、下記式(8)において、“外国人参政権”をsと表記している。
【数2】
【0125】
図14は、単語分割器Bによるスコアの算出手法の一例を説明するための図である。図14に例示するように、単語分割器Bは、入力される訓練用データ(テキスト)の文字埋め込み表現を、文字埋め込み部24aにより取得し、文字埋め込み表現をBiLSTM24bに入力する。単語分割器Bは、BiLSTM24bからの出力hk(上記式(3)参照)を、上記式(4)を算出するMLPbegin24cと、上記式(5)を算出するMLPend24dとにそれぞれ入力し、hk (begin)及びhk (end)をそれぞれ取得する。
【0126】
単語分割器Bは、wi,j∈Vθの場合、MLPbegin24cの出力であるhk (begin)と、MLPend24dの出力であるhk (end)とを算出部24eに入力する。そして、単語分割器Bは、算出部24eにより、上記式(6)(式(9)~(11))に従い、各単語についての出現確率p(wi,j|s)をシグモイド関数により算出する。単語分割器Bは、算出部24eにより、単語ごとに算出した出現確率を乗算することで、分割済みデータについてのスコアp(s’|s)を算出することができる。
【0127】
一方、単語分割器Bは、wi,j∈Vθではない場合、すなわち、wi,jが訓練済み後段モデル23に含まれない語彙である場合、当該単語の出現確率を“0.0”に決定してよい。例えば、単語分割器Bは、算出部24eによるシグモイド関数の計算の前に、各単語がwi,j∈Vθであるか否かを判定し、wi,j∈Vθではないと判定したときに、当該単語についてシグモイド関数の計算を省略し、出現確率p(wi,j|s)=0.0を求めてもよい。
【0128】
また、上述のように、スコアp(s’|s)は、分割済みデータs’の各単語の出現確率p(wi,j|s)の積で表すことができる。このため、単語分割器Bは、分割済みデータのうちの少なくとも1つの単語がwi,j∈Vθではないことを検出した時点で、当該分割済みデータのスコアp(s’|s)=0.0を求めてもよい。
【0129】
BiLSTM24bから出力される単語がwi,j∈Vθであるか否かの判定、換言すれば、wi,j∈Vθではないことの検出は、例えば、図15に例示する上三角行列の参照により行なうことができる。
【0130】
図15は、語彙の制約の一例を示す図である。図15に例示するように、テーブル24fは、上記式(6)及び(7)に示す語彙の制約を、訓練データsが“外国人参政権”である場合について、上三角行列により表したテーブルである。テーブル24fの縦軸は、単語(トークン)の始端を示し、テーブル24fの横軸は、単語(トークン)の終端を示す。テーブル24fは、例えば、記憶領域に格納されてもよい。
【0131】
テーブル24fでは、網掛け枠内の単語は、訓練済み後段モデル23に含まれない語彙であり、白抜き枠内の単語は、訓練済み後段モデル23に含まれる語彙である。
【0132】
例えば、単語分割器Bは、図15に示すテーブル24fを参照して、網掛け枠内に存在する単語についての出現確率pを“0.0”に決定してよい。このように、テーブル24fは、網掛け枠内の単語の出現確率p=0.0とするためのマスクの一例である。
【0133】
なお、図13図15では、訓練データsが「外国人参政権」(日本語)である場合を例に挙げたが、例えば、訓練データsが他の言語のテキスト、例えば「prime contractor」(英語)である場合においても同様である。例えば、単語分割器Bは、BiLSTM24bにより「prime contractor」を分割して得られた各トークンについての出現確率p(wi,j|s)を算出し、分割済みデータごとのスコアp(s’|s)を算出してよい。
【0134】
第2機械学習部34(図5参照)は、単語分割器Bの機械学習処理(図6の符号A22参照)において、訓練用分割済みデータセット14に含まれる分割済みデータのスコアが大きくなるように、単語分割器Bのパラメータを最適化してよい。例えば、訓練用分割済みデータセット14に対応する各訓練データs^(sハット)について、下記式(12)に示す損失Ls^を最小化するように、単語分割器Bのパラメータを最適化してよい。単語分割器Bの機械学習の終了判定の手法としては、既知の種々の手法が採用されてよい。
【数3】
【0135】
このように、第2機械学習部34は、訓練済み後段モデル23の訓練に用いた分割済みデータセット12に含まれない語彙と一致する文字列が単語分割器Bから出力されることを抑制するように、単語分割器Bを訓練する。これにより、単語分割器Bが利用できる語彙に制約を与えることができ、訓練済み単語分割器Bから未知語が出力されることを抑制することができる。
【0136】
例えば、単語分割器Bは、第2機械学習部34による単語分割器Bの訓練において、訓練済み後段モデル23に含まれない語彙と一致する文字列を分割結果として含む分割済みデータのスコアを調整、一例として“0.0”に設定する。これにより、単語分割器Bが利用できる語彙に、ハードな(固定的又は半固定的な)制約を与えることができ、訓練済み単語分割器Bから未知語が出力される可能性をより抑制することができる。
【0137】
また、単語分割器Bは、第2機械学習部34による単語分割器Bの訓練において、訓練済み後段モデル23に含まれない語彙と一致する文字列を分割結果として含む分割済みデータのスコアを、複数の分割済みデータのそれぞれのスコアよりも小さくなるように制御する。例えば、第2機械学習部34は、複数の訓練データのそれぞれについて、訓練データを単語分割器Bに入力することで得られる複数の分割済みデータのうち、生成部33が選択した分割済みデータと一致する分割済みデータのスコアが最大となるように、単語分割器Bのパラメータを最適化する。これにより、生成部33により選択された分割済みデータであって、訓練済み後段モデル23の性能(例えば推論精度)の向上に寄与できる単語分割による分割済みデータを出力(再現)するように、単語分割器Bを訓練することができる。
【0138】
訓練済み単語分割器B(図5参照)は、推論処理(図7の符号A3参照)において、下記式(13)が最も大きくなるような分割済みデータs’を出力してよい。一例として、訓練済み単語分割器B(例えば算出部24e)は、ビタビアルゴリズム等の手法によって、下記式(13)が最も大きくなるような分割済みデータs’を出力してよい。
【数4】
【0139】
図16は、一実施形態に係る手法による、訓練済み後段モデル23の性能への影響の一例を説明するための図である。図16に示す表には、項番4の「一実施形態に係る訓練済み単語分割器Bを用いた訓練済み後段モデル」の比較として、項番1の「図1,図2に示す手法」,項番2の「図3に示す比較例」,項番3の「語彙制約を省略した訓練済み単語分割器Bを用いた訓練済み後段モデル」を示す。項番3は、図13図15を参照して説明した語彙制約のための処理を省略した手法である。
【0140】
なお、図16では、訓練済み後段モデル23として、感情分類タスクで訓練を行なった後段モデルを用いた例を示す。
【0141】
図16の「性能(F1値)」に示すように、項番4の手法では、性能が45.41%となり、他の手法と比較して、訓練済み後段モデル23の性能向上に寄与することがわかる。
【0142】
図16の「学習データの再現率」に示すように、項番3及び4の手法では、ニューラルネットワークを用いているため表現力が高く、訓練データの再現率がいずれもほぼ100%となっている。
【0143】
図16の「未知語割合」に示すように、項番4の手法では、語彙制約により、検証データについて、訓練済み後段モデル23が扱えない未知語と一致するトークンを含む分割済みデータの出力を抑制できている。
【0144】
なお、項番3及び4の手法では、単語分割器Bの最適化の際に、訓練済み後段モデル23を単語分割器Bとともに並列に起動することを抑制でき、計算資源の消費量の低減を実現できる。
【0145】
これらのことから、項番3及び4の手法によれば、訓練済み後段モデル23の再訓練,追加学習等の、パラメータ全体を修正する手法よりも低コストで、訓練済み後段モデル23の性能向上を実現することができる。
【0146】
〔D〕動作例
次に、上述の如く構成された一実施形態の一例としてのサーバ1における動作例を、図17図19を参照して説明する。
【0147】
〔D-1〕機械学習処理
図17は、一実施形態に係るサーバ1による後段モデル22の機械学習処理の動作例を説明するためのフローチャートであり、図18は、一実施形態に係るサーバ1による単語分割器Bの機械学習処理の動作例を説明するためのフローチャートである。
【0148】
図17に例示するように、分割制御部31は、訓練用データセット11の複数の訓練データの各々を単語分割器Aに入力して、訓練用データごとの分割済みデータを含む、分割済みデータセット12を取得する(ステップS1)。
【0149】
第1機械学習部32は、分割済みデータセット12を用いて後段モデル22の機械学習を実行して(ステップS2)、訓練済み後段モデル23を取得し、処理が終了する。なお、後段モデル22の機械学習の手法並びに機械学習の終了判定の手法としては、既知の種々の手法が採用されてよい。
【0150】
図18に例示するように、分割制御部31は、訓練用データセット11の複数の訓練データの各々を単語分割器Aに入力して、訓練用データを複数の分割パターンで分割して得た複数の分割済みデータを訓練データごとに含む、複数パターンの分割済みデータセット13を取得する(ステップS11)。
【0151】
生成部33は、分割済みデータセット13の複数の分割済みデータの各々を入力した訓練済み後段モデル23からの推論結果の良否を示す指標が所定の条件を満たす分割済みデータを、訓練データごとに選択することで、訓練用分割済みデータセット14を取得する(ステップS12)。
【0152】
第2機械学習部34は、訓練用分割済みデータセット14を用いて単語分割器Bの機械学習を実行して(ステップS13)、訓練済み単語分割器Bを取得し、処理が終了する。
【0153】
〔D-2〕推論処理
図19は、一実施形態に係るサーバ1による推論処理の動作例を説明するためのフローチャートである。
【0154】
図19に例示するように、推論部35は、推論用データセット15を訓練済み単語分割器Bに入力し、分割済みデータセット16を取得する(ステップS21)。
【0155】
推論部35は、分割済みデータセット16を用いて訓練済み後段モデル23による推論を実行し(ステップS22)、推論結果17を取得する。
【0156】
推論部35は、推論結果17に基づき、訓練済み後段モデル23を評価し(ステップS23)、処理が終了する。
【0157】
なお、評価結果は、推論結果17とともに他のコンピュータ等に出力されてもよい。また、ステップS23の処理は省略されてもよい。
【0158】
〔E〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
【0159】
例えば、図5に示すサーバ1が備えるブロック31~35は、任意の組み合わせで併合してもよく、それぞれ分割してもよい。
【0160】
また、例えば、図5に示すサーバ1は、複数の装置がネットワークを介して互いに連携することにより、各処理機能を実現する構成であってもよい。一例として、各ブロック31~35はアプリケーションサーバ又はWebサーバ、各データ11~17,21~25を格納する記憶領域はDB(Database)サーバ、等であってもよい。この場合、Webサーバ、アプリケーションサーバ及びDBサーバが、ネットワークを介して互いに連携することにより、サーバ1としての処理機能を実現してもよい。
【0161】
〔F〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【0162】
(付記1)
文字列データを第1字句分割器に入力することで、前記文字列データに対応した異なる複数の第1分割パターンで前記文字列データを分割した複数の第1分割済み文字列データを、データセットに含まれる複数の前記文字列データのそれぞれについて取得し、
前記第1分割済み文字列データを入力データとして、前記入力データに応じた推論処理を行なう訓練済み機械学習モデルに、前記複数の文字列データのそれぞれについての前記複数の第1分割済み文字列データを入力した場合の推論結果の良否を示す指標を算出し、
前記複数の文字列データのそれぞれについて、対応する前記複数の第1分割済み文字列データの中から前記良否を示す指標が所定の条件を満たす第1分割済み文字列データを選択し、
前記複数の文字列データのそれぞれについて選択した前記第1分割済み文字列データに基づいて、前記訓練済み機械学習モデルに前記入力データを入力する第2字句分割器の調整を行なう、
処理をコンピュータに実行させる、情報処理プログラム。
【0163】
(付記2)
前記調整を行なう処理は、
前記訓練済み機械学習モデルの訓練に用いた訓練データセットに含まれない語彙と一致する文字列が前記第2字句分割器から出力されることを抑制するように、前記第2字句分割器を訓練する、処理を含む、
付記1に記載の情報処理プログラム。
【0164】
(付記3)
前記訓練する処理は、
前記複数の文字列データのそれぞれについて、前記文字列データを前記第2字句分割器に入力することで得られる、前記文字列データに対応した異なる複数の第2分割パターンで前記文字列データを分割した複数の第2分割済み文字列データのうち、前記語彙と一致する文字列を分割結果として含む第2分割済み文字列データのスコアを調整する、処理を含む、
付記2に記載の情報処理プログラム。
【0165】
(付記4)
前記スコアを調整する処理は、
前記語彙と一致する文字列を分割結果として含む第2分割済み文字列データのスコアを、前記複数の第2分割済み文字列データのそれぞれのスコアよりも小さくなるように制御する、処理を含み、
前記訓練する処理は、
前記複数の文字列データのそれぞれについて、前記文字列データを前記第2字句分割器に入力することで得られる前記複数の第2分割済み文字列データのうち、前記文字列データについて選択した前記第1分割済み文字列データと一致する第2分割済み文字列データのスコアが最大となるように、前記第2字句分割器のパラメータを最適化する、処理を含む、
付記3に記載の情報処理プログラム。
【0166】
(付記5)
前記第2字句分割器は、BiLSTM(Bidirectional Long Short-Term Memory)を用いた字句分割器である、
付記1~付記4のいずれか1項に記載の情報処理プログラム。
【0167】
(付記6)
文字列データを第1字句分割器に入力することで、前記文字列データに対応した異なる複数の第1分割パターンで前記文字列データを分割した複数の第1分割済み文字列データを、データセットに含まれる複数の前記文字列データのそれぞれについて取得し、
前記第1分割済み文字列データを入力データとして、前記入力データに応じた推論処理を行なう訓練済み機械学習モデルに、前記複数の文字列データのそれぞれについての前記複数の第1分割済み文字列データを入力した場合の推論結果の良否を示す指標を算出し、
前記複数の文字列データのそれぞれについて、対応する前記複数の第1分割済み文字列データの中から前記良否を示す指標が所定の条件を満たす第1分割済み文字列データを選択し、
前記複数の文字列データのそれぞれについて選択した前記第1分割済み文字列データに基づいて、前記訓練済み機械学習モデルに前記入力データを入力する第2字句分割器の調整を行なう、
処理をコンピュータが実行する、情報処理方法。
【0168】
(付記7)
前記調整を行なう処理は、
前記訓練済み機械学習モデルの訓練に用いた訓練データセットに含まれない語彙と一致する文字列が前記第2字句分割器から出力されることを抑制するように、前記第2字句分割器を訓練する、処理を含む、
付記6に記載の情報処理方法。
【0169】
(付記8)
前記訓練する処理は、
前記複数の文字列データのそれぞれについて、前記文字列データを前記第2字句分割器に入力することで得られる、前記文字列データに対応した異なる複数の第2分割パターンで前記文字列データを分割した複数の第2分割済み文字列データのうち、前記語彙と一致する文字列を分割結果として含む第2分割済み文字列データのスコアを調整する、処理を含む、
付記7に記載の情報処理方法。
【0170】
(付記9)
前記スコアを調整する処理は、
前記語彙と一致する文字列を分割結果として含む第2分割済み文字列データのスコアを、前記複数の第2分割済み文字列データのそれぞれのスコアよりも小さくなるように制御する、処理を含み、
前記訓練する処理は、
前記複数の文字列データのそれぞれについて、前記文字列データを前記第2字句分割器に入力することで得られる前記複数の第2分割済み文字列データのうち、前記文字列データについて選択した前記第1分割済み文字列データと一致する第2分割済み文字列データのスコアが最大となるように、前記第2字句分割器のパラメータを最適化する、処理を含む、
付記8に記載の情報処理方法。
【0171】
(付記10)
前記第2字句分割器は、BiLSTM(Bidirectional Long Short-Term Memory)を用いた字句分割器である、
付記6~付記9のいずれか1項に記載の情報処理方法。
【0172】
(付記11)
文字列データを第1字句分割器に入力することで、前記文字列データに対応した異なる複数の第1分割パターンで前記文字列データを分割した複数の第1分割済み文字列データを、データセットに含まれる複数の前記文字列データのそれぞれについて取得し、
前記第1分割済み文字列データを入力データとして、前記入力データに応じた推論処理を行なう訓練済み機械学習モデルに、前記複数の文字列データのそれぞれについての前記複数の第1分割済み文字列データを入力した場合の推論結果の良否を示す指標を算出し、
前記複数の文字列データのそれぞれについて、対応する前記複数の第1分割済み文字列データの中から前記良否を示す指標が所定の条件を満たす第1分割済み文字列データを選択し、
前記複数の文字列データのそれぞれについて選択した前記第1分割済み文字列データに基づいて、前記訓練済み機械学習モデルに前記入力データを入力する第2字句分割器の調整を行なう、
制御部を備える、情報処理装置。
【0173】
(付記12)
前記制御部は、前記調整を行なう処理において、
前記訓練済み機械学習モデルの訓練に用いた訓練データセットに含まれない語彙と一致する文字列が前記第2字句分割器から出力されることを抑制するように、前記第2字句分割器を訓練する、
付記11に記載の情報処理装置。
【0174】
(付記13)
前記制御部は、前記訓練する処理において、
前記複数の文字列データのそれぞれについて、前記文字列データを前記第2字句分割器に入力することで得られる、前記文字列データに対応した異なる複数の第2分割パターンで前記文字列データを分割した複数の第2分割済み文字列データのうち、前記語彙と一致する文字列を分割結果として含む第2分割済み文字列データのスコアを調整する、
付記12に記載の情報処理装置。
【0175】
(付記14)
前記制御部は、
前記スコアを調整する処理において、
前記語彙と一致する文字列を分割結果として含む第2分割済み文字列データのスコアを、前記複数の第2分割済み文字列データのそれぞれのスコアよりも小さくなるように制御し、
前記訓練する処理において、
前記複数の文字列データのそれぞれについて、前記文字列データを前記第2字句分割器に入力することで得られる前記複数の第2分割済み文字列データのうち、前記文字列データについて選択した前記第1分割済み文字列データと一致する第2分割済み文字列データのスコアが最大となるように、前記第2字句分割器のパラメータを最適化する、
付記13に記載の情報処理装置。
【0176】
(付記15)
前記第2字句分割器は、BiLSTM(Bidirectional Long Short-Term Memory)を用いた字句分割器である、
付記11~付記14のいずれか1項に記載の情報処理装置。
【符号の説明】
【0177】
1 サーバ
10 コンピュータ
11 訓練用データセット
12,16 分割済みデータセット
13 複数パターンの分割済みデータセット
14 訓練用分割済みデータセット
15 推論用データセット
17 推論結果
21,24,A,B 単語分割器
22 後段モデル
23 訓練済み後段モデル
24a 文字埋め込み部
24b BiLSTM
24c MLPbegin
24d MLPend
24e 算出部
24f テーブル
25,B 訓練済み単語分割器
30 制御部
31 分割制御部
32 第1機械学習部
33 生成部
34 第2機械学習部
35 推論部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19