(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024067172
(43)【公開日】2024-05-17
(54)【発明の名称】サブワード取得処理装置、サブワード取得処理方法、および、プログラム
(51)【国際特許分類】
G06F 40/279 20200101AFI20240510BHJP
G06F 40/284 20200101ALI20240510BHJP
G06F 40/216 20200101ALI20240510BHJP
【FI】
G06F40/279
G06F40/284
G06F40/216
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022177030
(22)【出願日】2022-11-04
(71)【出願人】
【識別番号】301022471
【氏名又は名称】国立研究開発法人情報通信研究機構
(74)【代理人】
【識別番号】100143498
【弁理士】
【氏名又は名称】中西 健
(74)【代理人】
【識別番号】100136319
【弁理士】
【氏名又は名称】北原 宏修
(72)【発明者】
【氏名】ソウ カイエツ
(72)【発明者】
【氏名】ダブレ ラジ
【テーマコード(参考)】
5B091
【Fターム(参考)】
5B091EA01
(57)【要約】 (修正有)
【課題】大量の対訳データを必要とせず、高品質なサブワードを取得するサブワード取得処理システム、サブワード取得処理装置、サブワード取得処理方法及びプログラムを提供する。
【解決手段】サブワード取得処理システム1000では、単言語データ記憶部DB1から取得した、処理対象の単語を含む文から、当該単語のコンテキストを考慮したコンテキスト考慮隠れ状態データを用いて、処理対象の単語から、当該単語のサブワード列を取得する処理を行うことで、処理対象の単語のコンテキストを考慮した適切なサブワード列を取得する。したがって、サブワード取得処理システムで取得されるサブワード列は、直感的に正しいと判断されるサブワードとなる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
処理対象の単語から当該単語のサブワード列を取得するサブワード取得処理装置であって、
単言語のデータを記憶する単言語データ記憶部から、前記処理対象の単語を含む文のデータを取得し、取得した当該文のデータから、前記処理対象の単語のコンテキストを考慮したデータであるコンテキスト考慮隠れ状態データを取得するコンテキスト考慮隠れ状態データ取得部と、
前記処理対象の単語と、前記コンテキスト考慮隠れ状態データとに基づいて、前記処理対象の単語のサブワードの出現確率分布データであるサブワード確率分布データを出力する予測学習処理部と、
前記サブワード確率分布データに基づいて、前記処理対象の単語のサブワード列の出現確率を取得し、取得した前記処理対象の単語のサブワード列の出現確率のうち、当該出現確率が最も高いサブワード列、あるいは、当該出現確率が最も高いサブワード列から当該出現確率がN番目(N:2以上の自然数)に高いサブワード列のN個のサブワード列を出力する出力部と、
を備えるサブワード取得処理装置。
【請求項2】
前記コンテキスト考慮隠れ状態データ取得部は、
前記単言語データ記憶部から、前記処理対象の単語を含む複数の文のデータを取得し、取得した当該複数の文のデータのそれぞれから、前記処理対象の単語のコンテキストを考慮したデータを取得し、取得した当該データの平均データを前記コンテキスト考慮隠れ状態データとして取得する、
請求項1に記載のサブワード取得処理装置。
【請求項3】
前記予測学習処理部は、学習可能モデルを含んでおり、
前記処理対象の単語は、T個の文字からなる1つの単語であり、当該単語をx
1:Tとし、τ
a個(τ
a:自然数)のサブワードa
i(i:自然数、1≦i≦τ
a)により構成される、前記単語x
1:Tの1つのサブワード列を示すデータであるセグメンテーションデータをa
1:τaとし、単語x
1:Tのとりうる全てのセグメンテーションデータの集合をS(x)とし、サブワードa
iに先行する文字列であるプレフィックスをx
1,・・・,x
jとし、前記コンテキスト考慮隠れ状態データをe
xとすると、前記予測学習処理部は、
p(x):xの出現確率
により取得される損失Lossが最小となるように、前記学習可能モデルを学習させる、
請求項1または2に記載のサブワード取得処理装置。
【請求項4】
前記予測学習処理部は、
予測処理時において、前記コンテキスト考慮隠れ状態データおよび前記処理対象の単語を用いて、前記学習可能モデルを学習させて取得した学習済みモデルによる処理を行うことで、前記処理対象の単語のサブワードの出現確率分布データであるサブワード確率分布データを取得し、
前記出力部は、
に相当する処理を行うことで、前記処理対象の単語のサブワード列の出現確率のうち、当該出現確率が最も高いサブワード列を取得する、
請求項3に記載のサブワード取得処理装置。
【請求項5】
処理対象の単語から当該単語のサブワード列を取得するサブワード取得処理方法であって、
単言語のデータを記憶する単言語データ記憶部から、前記処理対象の単語を含む文のデータを取得し、取得した当該文のデータから、前記処理対象の単語のコンテキストを考慮したデータであるコンテキスト考慮隠れ状態データを取得するコンテキスト考慮隠れ状態データ取得ステップと、
前記処理対象の単語と、前記コンテキスト考慮隠れ状態データとに基づいて、前記処理対象の単語のサブワードの出現確率分布データであるサブワード確率分布データを出力する予測学習処理ステップと、
前記サブワード確率分布データに基づいて、前記処理対象の単語のサブワード列の出現確率を取得し、取得した前記処理対象の単語のサブワード列の出現確率のうち、当該出現確率が最も高いサブワード列、あるいは、当該出現確率が最も高いサブワード列から当該出現確率がN番目(N:2以上の自然数)に高いサブワード列のN個のサブワード列を出力する出力ステップと、
を備えるサブワード取得処理方法。
【請求項6】
請求項5に記載のサブワード取得処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自然言語処理において利用される技術であって、単語をサブワードに分割することでサブワードを取得する処理(サブワードセグメンテーション)についての技術に関する。
【背景技術】
【0002】
近年、自然言語処理において、サブワードと呼ばれる単語をより小さい文字列に分割したデータを取得するサブワードセグメンテーションが利用されている。サブワードセグメンテーションにより単語からサブワードを取得し、取得したサブワードを用いて、自然言語処理を行うことで効率良く処理を行うことができる。例えば、自然言語処理を行うシステム(自然言語処理システム(例えば、機械翻訳システムや音声認識処理システム))において、未定義語(自然言語処理システムにおいて、定義されていない単語(未知な単語))がある場合、未定義語からサブワードセグメンテーションによりサブワードを取得し、取得したサブワードを用いて処理を行うことで、未定義語が発生した場合であっても適切な自然言語処理を行うことができる。つまり、サブワードセグメンテーションを利用することで、OOV問題(OOV:out-of-vocabulary)(未定義語問題)に対処することができる。自然言語処理において、サブワードを用いず、単語を用いて処理を行うと、膨大な量の語彙を記憶保持する必要があり、演算量が多くなり、かつ、使用するメモリ量も多くなり問題である。そのため、高精度なサブワードセグメンテーションが求められている。
【0003】
サブワードセグメンテーションには、(1)出現頻度に基づく手法と、(2)ニューラルネットワークに基づく手法とがある。
【0004】
出現頻度に基づく手法では、貪欲法(Greedy algorithm)を採用し、訓練時において、コーパスにあるサブワードの断片(サブワードを断片化したデータ)を用いて語彙を発生させ(コーパスを参照することで取得される発生頻度に基づいて、語彙を追加し)、推論時において、文字単位に分割した状態から始めて、再帰的に、隣り合う高出現頻度の断片をマージさせることでサブワードを取得する(例えば、非特許文献1を参照)。
【0005】
ニューラルネットワークに基づく手法は、パラレルコーパス(対訳コーパス)を用いて学習させるニューラル機械翻訳モデルを用いる手法であり、動的計画法(DPアルゴリズム(DP:Dynamic programming))を用いて、サブワードを取得する手法である。具体的には、ニューラルネットワークに基づく手法では、目的言語文の分割状態を示すデータを潜在変数とみなし、動的計画法を用いて周辺尤度を計算し(サブワードの出現確率が文字のみによって取得できるので、動的計画法により、周辺尤度が計算可能である)、最大事後確率を有する目的言語文の分割(分割状態)を探索することで、サブワードを取得する(例えば、非特許文献2を参照)。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】Rico Sennrich, Barry Haddow, and Alexandra Birch. 2016. Neural machine translation of rare words with subword units. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pages 1715-1725, Berlin, Germany. Association for Computational Linguistics.
【非特許文献2】Xuanli He, Gholamreza Haffari, and Mohammad Norouzi. 2020. Dynamic programming encoding for subword segmentation in neural machine translation. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, pages 3042-3051, Online. Association for Computational Linguistics.
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、出現頻度に基づく手法によるサブワードセグメンテーションは、統計的手法であり、高速処理が可能であるが、サブワードセグメンテーションの結果(セグメンテーションにより取得されるサブワード)が直感的に正しいと判断される結果(サブワード)とならないことが多々あり、問題である。
【0008】
また、ニューラルネットワークに基づく手法によるサブワードセグメンテーションでは、対訳コーパスを用いて、ニューラルネットワークモデルを学習させる必要があるので、多量の対訳データを含む対訳コーパスが必要となる。このため、多量の対訳データがない、あるいは、少量の対訳データしかない言語を処理対象とする場合、ニューラルネットワークに基づく手法によるサブワードセグメンテーションでは、適切なサブワードを取得することが困難である。
【0009】
また、ニューラルネットワークに基づく手法によるサブワードセグメンテーションでは、目的言語文の分割状態を示すデータを潜在変数とみなし、動的計画法を用いて周辺尤度を計算し、最大事後確率を有する目的言語文の分割(分割状態)を探索することで、サブワードを取得する。このため、ニューラルネットワークに基づく手法によるサブワードセグメンテーションでは、目的言語文の分割(分割状態)として、可能性のある全てのパターンについて、出力確率を求める必要があり、大量の対訳データを用いて処理する場合、演算量が膨大となり、かつ、使用するメモリ量も膨大となり、その結果、高速処理を行うことが困難となる。
【0010】
そこで、本発明は、上記課題に鑑み、大量の対訳データを必要とせず、高品質なサブワード(例えば、直感的に正しいと判断されるサブワード)を取得するサブワード取得処理システム、サブワード取得処理装置、サブワード取得処理方法、および、プログラムを実現することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するための第1の発明は、処理対象の単語から当該単語のサブワード列を取得するサブワード取得処理装置であって、コンテキスト考慮隠れ状態データ取得部と、予測学習処理部と、出力部と、を備える。
【0012】
コンテキスト考慮隠れ状態データ取得部は、単言語のデータを記憶する単言語データ記憶部から、処理対象の単語を含む文のデータを取得し、取得した当該文のデータから、処理対象の単語のコンテキストを考慮したデータであるコンテキスト考慮隠れ状態データを取得する。
【0013】
予測学習処理部は、処理対象の単語と、コンテキスト考慮隠れ状態データとに基づいて、処理対象の単語のサブワードの出現確率分布データであるサブワード確率分布データを出力する。
【0014】
出力部は、サブワード確率分布データに基づいて、処理対象の単語のサブワード列の出現確率を取得し、取得した処理対象の単語のサブワード列の出現確率のうち、当該出現確率が最も高いサブワード列、あるいは、当該出現確率が最も高いサブワード列から当該出現確率がN番目(N:2以上の自然数)に高いサブワード列のN個のサブワード列を出力する。
【0015】
このサブワード取得処理装置では、単言語コーパスである単言語データ記憶部から取得した文であって、処理対象の単語を含む文から取得した、当該単語のコンテキストを考慮したデータであるコンテキスト考慮隠れ状態データを用いて、処理対象の単語から、当該単語のサブワード(サブワード列)を取得する処理を行うことで、当該単語の適切なサブワード(サブワード列)を取得することができる。
【0016】
つまり、このサブワード取得処理装置では、コンテキストを考慮したデータであるコンテキスト考慮隠れ状態データを用いて、サブワード列を取得(予測)する処理を行うので、処理対象の単語のコンテキストを考慮したサブワード列が取得される。したがって、このサブワード取得処理装置で取得されるサブワード(サブワード列)は、直感的に正しいと判断されるサブワードとなる。
【0017】
また、このサブワード取得処理装置では、単言語コーパスのみで処理を行うことができるので、大量の対訳データは、不要である。
【0018】
このように、このサブワード取得処理装置では、大量の対訳データを必要とせず、高品質なサブワード(例えば、直感的に正しいと判断されるサブワード)(サブワード列)を取得することができる。
【0019】
第2の発明は、第1の発明であって、コンテキスト考慮隠れ状態データ取得部は、単言語データ記憶部から、処理対象の単語を含む複数の文のデータを取得し、取得した当該複数の文のデータのそれぞれから、処理対象の単語のコンテキストを考慮したデータを取得し、取得した当該データの平均データをコンテキスト考慮隠れ状態データとして取得する。
【0020】
これにより、このサブワード取得処理装置では、処理対象の単語を含む複数の文から取得したコンテキスト考慮隠れ状態データを用いて、処理対象の単語のサブワード列を取得するので、さらに高品質なサブワード列を取得することができる。
【0021】
第3の発明は、第1または第2の発明であって、予測学習処理部は、学習可能モデルを含んでいる。
【0022】
処理対象の単語は、T個の文字からなる1つの単語であり、当該単語をx
1:Tとし、τ
a個(τ
a:自然数)のサブワードa
i(i:自然数、1≦i≦τ
a)により構成される、単語x
1:Tの1つのサブワード列を示すデータであるセグメンテーションデータをa
1:τaとし、単語x
1:Tのとりうる全てのセグメンテーションデータの集合をS(x)とし、サブワードa
iに先行する文字列であるプレフィックスをx
1,・・・,x
jとし、コンテキスト考慮隠れ状態データをe
xとすると、予測学習処理部は、
【数1】
p(x):xの出現確率
により取得される損失Lossが最小となるように、学習可能モデルを学習させる、
これにより、このサブワード取得処理装置では、上記損失Lossを用いて、予測学習処理部の学習可能モデルを学習させることができる。
【0023】
第4の発明は、第3の発明であって、予測学習処理部は、予測処理時において、コンテキスト考慮隠れ状態データおよび処理対象の単語を用いて、学習可能モデルを学習させて取得した学習済みモデルによる処理を行うことで、処理対象の単語のサブワードの出現確率分布データであるサブワード確率分布データを取得する。
【0024】
出力部は、
【数2】
に相当する処理を行うことで、処理対象の単語のサブワード列の出現確率のうち、当該出現確率が最も高いサブワード列を取得する。
【0025】
これにより、このサブワード取得処理装置では、予測学習処理部の学習済みモデルを用いた予測処理により、高品質なサブワード列を取得することができる。
【0026】
第5の発明は、処理対象の単語から当該単語のサブワード列を取得するサブワード取得処理方法であって、コンテキスト考慮隠れ状態データ取得ステップと、予測学習処理ステップと、出力ステップと、を備える。
【0027】
コンテキスト考慮隠れ状態データ取得ステップは、単言語のデータを記憶する単言語データ記憶部から、処理対象の単語を含む文のデータを取得し、取得した当該文のデータから、処理対象の単語のコンテキストを考慮したデータであるコンテキスト考慮隠れ状態データを取得する。
【0028】
予測学習処理ステップは、処理対象の単語と、コンテキスト考慮隠れ状態データとに基づいて、処理対象の単語のサブワードの出現確率分布データであるサブワード確率分布データを出力する。
【0029】
出力ステップは、サブワード確率分布データに基づいて、処理対象の単語のサブワード列の出現確率を取得し、取得した処理対象の単語のサブワード列の出現確率のうち、当該出現確率が最も高いサブワード列、あるいは、当該出現確率が最も高いサブワード列から当該出現確率がN番目(N:2以上の自然数)に高いサブワード列のN個のサブワード列を出力する。
【0030】
これにより、第1の発明と同様の効果を奏するサブワード取得処理方法を実現することができる。
【0031】
第6の発明は、第5の発明であるサブワード取得処理方法をコンピュータに実行させるためのプログラムである。
【0032】
これにより、第1の発明と同様の効果を奏するサブワード取得処理方法をコンピュータに実行させるためのプログラムを実現することができる。
【発明の効果】
【0033】
本発明によれば、大量の対訳データを必要とせず、高品質なサブワード(例えば、直感的に正しいと判断されるサブワード)を取得するサブワード取得処理システム、サブワード取得処理装置、サブワード取得処理方法、および、プログラムを実現することができる。
【図面の簡単な説明】
【0034】
【
図1】第1実施形態に係るサブワード取得処理システム1000の概略構成図。
【
図2】入力データDinが単語「watching」のデータである場合におけるサブワード取得処理装置100の予測学習処理部3の入力(データDin)と出力(データD25)を示した図。
【
図3】Transformerモデルのデコーダの構成を採用した場合の埋込層31、入力文字間関係用アテンション層32、入力文字-コンテキスト関係用アテンション層33の概略構成図。
【
図4】単語の出現確率p(word)、セグメンテーションの確率p(segmentation)、および、サブワードの出現確率p(segment)の関係について説明するための図。
【
図5】サブワード取得処理システム1000の学習処理時の損失を取得する処理の擬似コードを示す図。
【
図6】入力データDinが単語「watching」のデータである場合におけるサブワード取得処理装置100の予測学習処理部3の入力(データDin)と出力(データD25)を示した図。
【
図7】第1実施形態に係るサブワード取得処理システム1000の予測処理時の最適サブワード列を取得する処理を実現するための擬似コードを示す図。
【
図8】第1実施形態に係るサブワード取得処理システム1000の出力、セグメンテーションの確率p(segmentation)、および、サブワードの出現確率p(segment)の関係について説明するための図。
【
図9】第1実施形態の第1変形例に係るサブワード取得処理システム1000Aの概略構成図。
【
図10】第1実施形態の第1変形例のサブワード取得処理システム1000Aにおいて、処理対象の単語を「represented」とした場合に取得されたN-ベストのデータ(処理対象の単語xのサブワード列のパターン(セグメンテーション))(N=7の場合)を示す図。
【発明を実施するための形態】
【0035】
[第1実施形態]
第1実施形態について、図面を参照しながら、以下説明する。
【0036】
<1.1:サブワード取得処理システムの構成>
図1は、第1実施形態に係るサブワード取得処理システム1000の概略構成図である。
【0037】
サブワード取得処理システム1000は、
図1に示すように、単言語データ記憶部DB1と、サブワード取得処理装置100とを備える。
【0038】
単言語データ記憶部DB1は、単言語コーパスであり、サブワード取得処理の対象とする単語と同一言語の文のデータを記憶保持している機能部である。単言語データ記憶部DB1は、例えば、データベースにより実現される。単言語データ記憶部DB1は、サブワード取得処理装置100の入力文取得部1からの読み出し指令に従い、当該読み出し指令に基づく文(文のデータ)を入力文取得部1に出力する。
【0039】
サブワード取得処理装置100は、入力文取得部1と、コンテキスト考慮隠れ状態データ取得部2と、予測学習処理部3と、損失評価部4と、出力部5と、を備える。
【0040】
入力文取得部1は、サブワード取得処理の対象とする単語を含むデータDinを入力する。入力文取得部1は、単言語データ記憶部DB1に対して読み出し指令を出力し、処理対象の単語(データDinに含まれる単語)を含む文を単言語データ記憶部DB1から読み出す。入力文取得部1は、単言語データ記憶部DB1から読み出した処理対象の単語を含む文を含むデータを、データD_sentence(i)として、コンテキスト考慮隠れ状態データ取得部2に出力する。なお、入力文取得部1は、処理対象の単語を含む複数の文をN回(N:自然数、N≧1)読み出すものとし、i番目(i:自然数、1≦i≦N)に単言語データ記憶部DB1から読み出した処理対象の単語を含む複数の文を含むデータを、データD_sentence(i)と表記する。
【0041】
コンテキスト考慮隠れ状態データ取得部2は、
図1に示すように、隠れ状態データ取得処理部21と、平均化処理部22とを備える。
【0042】
隠れ状態データ取得処理部21は、学習済みモデルを有しており、入力文取得部1から出力されるデータD_sentence(i)を入力する。隠れ状態データ取得処理部21は、隠れ状態データ取得処理部21に含まれる学習済みモデルに、処理対象の単語を含む文を入力し、当該学習済みモデルによる処理を実行させ、当該単語の隠れ状態データvec_emb(i)(例えば、埋め込み表現データ)を当該学習済みモデルから出力させることで、処理対象の単語の隠れ状態データを取得する。そして、隠れ状態データ取得処理部21は、上記学習済みモデルによる処理により取得した処理対象の単語の隠れ状態データvec_emb(i)を含むデータを、データD_emb(i)として、平均化処理部22に出力する。
【0043】
平均化処理部22は、隠れ状態データ取得処理部21から出力されるデータD_emb(i)を入力する。平均化処理部22は、隠れ状態データ取得処理部21から、N回、データD_emb(i)を入力した後(データD_emb(1)~D_emb(N)を入力した後)、当該データに含まれる処理対象の単語の隠れ状態データvec_emb(1)~vec_emb(N)を平均化する処理を行い、平均化隠れ状態データave_vec_embを取得する。そして、平均化処理部22は、取得した平均化隠れ状態データave_vec_embを含むデータを、データD_hsとして、予測学習処理部3に出力する。
【0044】
予測学習処理部3は、例えば、ニューラルネットワークモデルを用いて構成されており、埋込層31と、入力文字間関係用アテンション層32と、入力文字-コンテキスト関係用アテンション層33と、出力マッピング層34と、ソフトマックス層35と、を備える。埋込層31、入力文字間関係用アテンション層32、入力文字-コンテキスト関係用アテンション層33、出力マッピング層34、および、ソフトマックス層35は、それぞれ、ニューラルネットワークモデルを構成する層であり、更新可能なパラメータを有している。つまり、埋込層31、入力文字間関係用アテンション層32、入力文字-コンテキスト関係用アテンション層33、出力マッピング層34、および、ソフトマックス層35は、それぞれ、誤差逆伝播法により、パラメータ更新が可能な層(ニューラルネットワークモデルを構成する層)である。
【0045】
埋込層31は、処理対象の単語のデータDinを入力し、データDinから、埋め込み表現データを取得する。なお、埋込層31には、処理対象の単語を構成する文字が、順次、入力される。埋込層31は、取得した埋め込み表現データを含むデータを、データD21として、入力文字間関係用アテンション層32に出力する。
【0046】
入力文字間関係用アテンション層32は、埋込層31から出力されるデータD21を入力し、データD21に対して、入力文字間関係用アテンション処理を行い、当該処理結果データを、データD22として、入力文字-コンテキスト関係用アテンション層33に出力する。
【0047】
入力文字-コンテキスト関係用アテンション層33は、入力文字間関係用アテンション層32から出力されるデータD22と、コンテキスト考慮隠れ状態データ取得部2の平均化処理部22から出力されるデータD_hsとを入力する。入力文字-コンテキスト関係用アテンション層33は、データD22およびデータD_hsを用いて、入力文字-コンテキスト関係用アテンション処理を行い、当該処理結果データを、データD23として、出力マッピング層34に出力する。
【0048】
出力マッピング層34は、入力文字-コンテキスト関係用アテンション層33から出力されるデータD23を入力する。出力マッピング層34は、入力文字-コンテキスト関係用アテンション層33の各ノードから出力されるデータに対して重み付けを行い、重み付け後のデータを加算し、さらに、当該加算結果に対して、活性化関数による処理(例えば、tanh(x)による処理)を実行し、ソフトマックス層35のノード数と同じ次元のデータを取得する。そして、出力マッピング層34は、取得したデータを、データD24として、ソフトマックス層35に出力する。
【0049】
ソフトマックス層35は、出力マッピング層34から出力されるデータD24を入力する。ソフトマックス層35は、データD24に対して、例えば、活性化関数をSoftmax関数とする処理を行い、m次元(m:自然数)のベクトルを取得する。そして、ソフトマックス層35は、取得したm次元のベクトルを出力データD25として、損失評価部4および出力部5に出力する。
【0050】
損失評価部4は、ソフトマックス層35から出力されるデータD25と、出力部5から出力されるデータD26とを入力し、データD25およびD26を用いて、損失関数により損失を取得する。なお、損失評価部4は、学習処理時において、誤差逆伝播法によりパラメータ更新するために、取得した損失をソフトマックス層35に出力する。そして、損失評価部4により取得された損失は、ソフトマックス層35、出力マッピング層34、入力文字-コンテキスト関係用アテンション層33、入力文字間関係用アテンション層32、埋込層31へと順次伝播され、それぞれの層において、パラメータが更新される。
【0051】
損失評価部4は、取得した損失(損失関数の値)の変動が所定の値以下であるか否かを判定し、(1)取得した損失(損失関数の値)の変動が所定の値以下である場合、学習処理が収束したと判定し、学習処理を終了させ、(2)取得した損失(損失関数の値)の変動が所定の値以下ではない場合、取得した損失を用いて、誤差逆伝播法により、パラメータを更新する処理を継続させる。
【0052】
出力部5は、出力確率保持部51と、最終出力データ取得部52と、を備える。
【0053】
出力確率保持部51は、ソフトマックス層35から出力されるデータD25を入力し、入力したデータD25を記憶保持する。また、出力確率保持部51は、学習処理時において、記憶保持しているデータ(過去にソフトマックス層35から出力されたデータD25)を、データD26として、損失評価部4に出力する。また、出力確率保持部51は、予測処理時において、記憶保持しているデータおよびソフトマックス層35から入力したデータを、データD27として、最終出力データ取得部52の要求に応じて、最終出力データ取得部52に出力する。
【0054】
最終出力データ取得部52は、出力確率保持部51から、最終出力データ取得部52での処理で必要なデータを、データD27として入力(取得)し、データD27に基づいて、最適な出力データ(処理対象の単語の最適なサブワード列)を取得し、取得した最適な出力データを、データDoutとして出力する。
【0055】
<1.2:サブワード取得処理システムの動作>
以上のように構成されたサブワード取得処理システム1000の動作について説明する。
【0056】
図2は、入力データDinが単語「watching」のデータである場合におけるサブワード取得処理装置100の予測学習処理部3の入力(データDin)と出力(データD25)を示した図である。
【0057】
以下では、一例として、単言語データ記憶部DB1に記憶されているデータが英語のデータであり、サブワード取得処理システム1000において、英語の単語を処理対象とし、当該単語のサブワードを取得する場合について説明する。
【0058】
また、以下では、サブワード取得処理システム1000の動作について、(1)学習処理、および、(2)予測処理に分けて、説明する。
【0059】
(1.2.1:学習処理)
まず、サブワード取得処理システム1000で実行される学習処理について、説明する。
【0060】
サブワード取得処理装置100(サブワード取得処理装置100の入力文取得部1および埋込層31)に、処理対象の単語(例えば、「watching」)のデータDinが入力される。
【0061】
入力文取得部1は、単言語データ記憶部DB1に対して読み出し指令を出力し、処理対象の単語(データDinに含まれる単語(例えば、「watching」))を含む文を単言語データ記憶部DB1から読み出す。
【0062】
入力文取得部1は、単言語データ記憶部DB1から読み出した処理対象の単語を含む文を含むデータを、データD_sentence(i)として、コンテキスト考慮隠れ状態データ取得部2に出力する。なお、入力文取得部1は、処理対象の単語を含む複数の文をN回(N:自然数、N≧1)読み出すものとし、i番目(i:自然数、1≦i≦N)に単言語データ記憶部DB1から読み出した処理対象の単語を含む複数の文を含むデータを、データD_sentence(i)と表記する。
【0063】
ここでは、説明便宜のため、処理対象の単語を「watching」とし、N=3とし、入力文取得部1が、単言語データ記憶部DB1から、処理対象の単語「watching」を含む以下の文を読み出したものとする。
D_sentence(1)="She had someone watching him."
D_sentence(2)="He learned closer as well, watching."
D_sentence(3)="Especially watching my son."
入力文取得部1は、単言語データ記憶部DB1から読み出した文のデータD_sentence(1)~D_sentence(3)を、順次、隠れ状態データ取得処理部21に出力する。
【0064】
隠れ状態データ取得処理部21は、学習済みモデルを有しており、入力文取得部1から出力されるデータD_sentence(i)を入力する。そして、隠れ状態データ取得処理部21は、隠れ状態データ取得処理部21に含まれる学習済みモデルに、処理対象の単語を含む文を入力し、当該学習済みモデルによる処理を実行させ、当該単語の隠れ状態データvec_emb(i)(例えば、埋め込み表現データ)を当該学習済みモデルから出力させることで、処理対象の単語の隠れ状態データを取得する。
【0065】
隠れ状態データ取得処理部21の学習済みモデルとして、例えば、下記文献に開示されているモデル(characterBERTモデル)を用いることができる。
(文献A):Hicham El Boukkouri, Olivier Ferret, Thomas Lavergne, Hiroshi Noji, Pierre Zweigenbaum, and Jun ’ ichi Tsujii. 2020. CharacterBERT: Reconciling ELMo and BERT for word-level open-vocabulary representations from characters. In Proceedings of the 28th International Conference on Computational Linguistics, pages 6903-6915, Barcelona, Spain (Online). International Committee on Computational Linguistics.
上記文献に開示されているcharacterBERTモデルは、処理対象の単語を含む文のデータを入力することで、当該文のコンテキストを考慮した処理対象の単語の埋め込み表現データを取得することができる。したがって、隠れ状態データ取得処理部21の学習済みモデルとして、上記文献に開示されているcharacterBERTモデルの学習済みモデルを採用することで、処理対象の単語を含む文のデータD_sentence(i)から、当該文のコンテキストを考慮した処理対象の単語の埋め込み表現データを取得することができる。隠れ状態データ取得処理部21は、データD_sentence(i)に対して上記characterBERTモデルの学習済みモデルによる処理を行うことで取得した処理対象の単語の埋め込み表現データを、処理対象の単語の隠れ状態データvec_emb(i)として、取得する。
【0066】
そして、隠れ状態データ取得処理部21は、上記学習済みモデルによる処理により取得した処理対象の単語の隠れ状態データを含むデータvec_emb(i)を、データD_emb(i)として、平均化処理部22に出力する。
【0067】
隠れ状態データ取得処理部21は、データD_sentences(2)、データD_sentences(3)についても、当該データを入力文取得部1から入力したら、上記と同様の処理を行い、取得した、データD_emb(2)(データvec_emb(2)を含むデータ)、データD_emb(3)(データvec_emb(3)を含むデータ)をそれぞれ平均化処理部22に出力する。
【0068】
平均化処理部22は、隠れ状態データ取得処理部21から出力されるデータD_emb(i)を入力する。平均化処理部22は、隠れ状態データ取得処理部21から、N回、データD_emb(i)を入力した後(データD_emb(1)~D_emb(N)を入力した後)、当該データに含まれる処理対象の単語の隠れ状態データvec_emb(1)~vec_emb(N)を平均化する処理を行い、平均化隠れ状態データave_vec_embを取得する。
【0069】
上記例(N=3とした例)の場合、平均化処理部22は、処理対象の単語の隠れ状態データvec_emb(1)~vec_emb(3)を平均化する処理(処理対象の単語の隠れ状態データvec_emb(i)の各要素の平均値を取得し、取得した平均値を要素とするベクトル(平均ベクトル)を取得する処理)を行い、平均化隠れ状態データave_vec_embを取得する。
【0070】
そして、平均化処理部22は、上記処理により取得した平均化隠れ状態データave_vec_embを含むデータを、データD_hsとして、予測学習処理部3の入力文字-コンテキスト関係用アテンション層33に出力する。
【0071】
予測学習処理部3の埋込層31は、処理対象の単語のデータDin(例えば、「watching」)を入力し、データDinから、埋め込み表現データを取得する。なお、埋込層31には、処理対象の単語を構成する文字が、順次、入力される。例えば、処理対象の単語が「watching」である場合、
図2に示すように、開始を示すコード<s>が埋込層31に入力され、その後、順次、「watching」を構成する文字が1文字ずつ埋込層31に入力される。
【0072】
以下では、説明便宜のため、
図2に示すように、時間ステップt0~t8において、以下のデータ(コードまたは文字)が入力される場合について、説明する。
時間ステップt0:<s>
時間ステップt1:w
時間ステップt2:a
時間ステップt3:t
時間ステップt4:c
時間ステップt5:h
時間ステップt6:i
時間ステップt7:n
時間ステップt8:g
また、説明便宜のため、埋込層31、入力文字間関係用アテンション層32、入力文字-コンテキスト関係用アテンション層33は、下記文献に開示されているTransformerモデルのデコーダの構成を採用した場合について、説明する。また、
図3に、下記文献に開示されているTransformerモデルのデコーダの構成を採用した場合の埋込層31、入力文字間関係用アテンション層32、入力文字-コンテキスト関係用アテンション層33の概略構成図を示す。
(文献B):Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin, "Attention Is All You Need" 31st Conference on Neural Information Processing Systems (NIPS 2017), Long Beach, CA, USA.
埋込層31は、上記入力データに対して、それぞれ、埋め込み表現データを取得し、さらに、取得した埋め込み表現データに位置エンコード結果データ(Transformerモデルのデコーダの位置エンコード処理により取得されたデータ)を加算したデータを、データD21として、入力文字間関係用アテンション層32に出力する。
【0073】
入力文字間関係用アテンション層32は、埋込層31から出力されるデータD21を入力し、データD21に対して、入力文字間関係用アテンション処理を実行する。具体的には、入力文字間関係用アテンション層32では、以下の処理が実行される。
【0074】
データD21に対して、Transformerモデルのデコーダのマスク・マルチヘッドアテンション処理(Masked Multi-Head Attention)が実行される。つまり、データD21(文字ごとの位置エンコード結果データが加算された埋め込み表現データ)を、クエリー取得用行列、キー取得用行列、および、バリュー取得用行列を用いて線形変換することで、クエリーデータQ、キーデータK、および、バリューデータVが取得される。
【0075】
そして、
softmax(QKT/d)
softmax():ソフトマックス関数
d:係数
KT:行列Kの転置行列
に相当する処理を行うことで、アテンションフィルタを取得する。そして、取得したアテンションフィルタをバリューデータVに施すことで、アテンション処理データAttnt(Q,K,V)を取得する。つまり、
Attnt(Q,K,V)=softmax(QKT/d)V
に相当する処理を行うことで、アテンション処理データAttnt(Q,K,V)が取得される。さらに、取得したアテンション処理データAttnt(Q,K,V)に対してマスク処理を行うことで、マスク処理後アテンション処理データAttnt(Q,K,V)を取得する。つまり、処理対象の文字よりも将来に出現する文字についてのアテンションフィルタの重み付け係数が0となるようにマスク処理を行う。
【0076】
上記と同様に、クエリー取得用行列、キー取得用行列、および、バリュー取得用行列を変化させて、複数個のマスク処理後アテンション処理データAttnt(Q,K,V)を取得する(マスク・マルチヘッドアテンション処理)。
【0077】
そして、上記により取得した複数個のマスク処理後アテンション処理データAttnt(Q,K,V)を結合させ(concatenate)、さらに、結合したデータに対して線形変換処理を行うことで、マスク・マルチヘッドアテンション処理データを取得する。
【0078】
そして、上記で取得したマスク・マルチヘッドアテンション処理データと、データD21(文字ごとの位置エンコード結果データが加算された埋め込み表現データ)とを加算し(残差接続(スキップ接続)による処理)、加算して取得したデータに対して、正規化処理(normalization処理(例えば、層(レイヤー)正規化処理、バッチ正規化処理))を施す。
【0079】
そして、入力文字間関係用アテンション層32は、上記処理により取得したデータ(正規化処理後のデータ)を、データD22として、入力文字-コンテキスト関係用アテンション層33に出力する。
【0080】
入力文字-コンテキスト関係用アテンション層33は、入力文字間関係用アテンション層32から出力されるデータD22と、コンテキスト考慮隠れ状態データ取得部2の平均化処理部22から出力されるデータD_hsとを用いて、入力文字-コンテキスト関係用アテンション処理を行う。具体的には、入力文字-コンテキスト関係用アテンション層33では、以下の処理が実行される。
【0081】
データD_hsおよびデータD22に対して、Transformerモデルのデコーダのマルチヘッドアテンション処理(Multi-Head Attention)が実行される。つまり、(1)データD_hsを、バリュー取得用行列、および、キー取得用行列を用いて線形変換することで、バリューデータV、および、キーデータKを取得し、(2)データD22を、クエリー取得用行列を用いて線形変換することで、クエリーデータQを取得する。
【0082】
そして、
softmax(QKT/d)
softmax():ソフトマックス関数
d:係数
KT:行列Kの転置行列
に相当する処理を行うことで、アテンションフィルタを取得する。そして、取得したアテンションフィルタをバリューデータVに施すことで、アテンション処理データAttnt(Q,K,V)を取得する。つまり、
Attnt(Q,K,V)=softmax(QKT/d)V
に相当する処理を行うことで、アテンション処理データAttnt(Q,K,V)が取得される。
【0083】
上記と同様に、クエリー取得用行列、キー取得用行列、および、バリュー取得用行列を変化させて、複数個のアテンション処理データAttnt(Q,K,V)を取得する(マルチヘッドアテンション処理)。
【0084】
そして、上記により取得した複数個のアテンション処理データAttnt(Q,K,V)を結合させ(concatenate)、さらに、結合したデータに対して線形変換処理を行うことで、マルチヘッドアテンション処理データを取得する。
【0085】
そして、上記で取得したマルチヘッドアテンション処理データと、データD22とを加算し(残差接続(スキップ接続)による処理)、加算して取得したデータに対して、正規化処理(normalization処理(例えば、層(レイヤー)正規化処理、バッチ正規化処理))を施す。
【0086】
さらに、上記正規化処理後のデータに対して、フィードフォワード処理(全結合層により処理)を実行し、上記フィードフォワード処理後のデータと、上記正規化処理後のデータとを加算し(残差接続(スキップ接続)による処理)、加算して取得したデータに対して、正規化処理(normalization処理(例えば、層(レイヤー)正規化処理、バッチ正規化処理))を施す。
【0087】
そして、入力文字-コンテキスト関係用アテンション層33は、上記処理により取得したデータ(正規化処理後のデータ)を、データD23として、出力マッピング層34に出力する。
【0088】
なお、入力文字間関係用アテンション層32、および、入力文字-コンテキスト関係用アテンション層33の処理は、複数回繰り返し実行されるものであってもよい。この場合、第k回目の入力文字-コンテキスト関係用アテンション層33の出力を、第k+1回目の入力文字間関係用アテンション層32に入力させるようにして、上記と同様の処理を実行させ、最終段の入力文字-コンテキスト関係用アテンション層33の出力を、データD23として、出力マッピング層34に出力するようにすればよい。
【0089】
出力マッピング層34は、入力文字-コンテキスト関係用アテンション層33から出力されるデータD23を入力する。出力マッピング層34は、入力文字-コンテキスト関係用アテンション層33の各ノードから出力されるデータに対して重み付けを行い、重み付け後のデータを加算し、さらに、当該加算結果に対して、活性化関数による処理(例えば、tanh(x)による処理)を実行し、ソフトマックス層35のノード数と同じ次元のデータを取得する。そして、出力マッピング層34は、取得したデータを、データD24として、ソフトマックス層35に出力する。
【0090】
ソフトマックス層35は、出力マッピング層34から出力されるデータD24を入力する。ソフトマックス層35は、データD24に対して、例えば、活性化関数をSoftmax関数とする処理を行い、m次元(m:自然数)のベクトルを取得する。なお、ソフトマックス層35は、処理対象としている言語の単語のすべてのとりうるサブワードに対応するノード(出力ノード)(ノード数は、m個)を有しており、各ノードは、対応するサブワードの出現確率を出力する。
【0091】
そして、ソフトマックス層35は、取得したm次元のベクトルを出力データD25として、損失評価部4および出力部5に出力する。
【0092】
出力部5の出力確率保持部51は、ソフトマックス層35から出力されるデータD25を入力し、入力したデータD25を記憶保持する。
【0093】
具体的には、出力確率保持部51は、時間ステップt0において、データDinとして、開始コード「<s>」が予測学習処理部3に入力された場合、ソフトマックス層35のノードのうち、開始コード「<s>」に後続するサブワード(サブワードの候補)である「watching」、「watchin」、「watchi」、「watch」、「watc」、「wat」、「wa」、「w」に対応するノードの出力値(サブワードの出現確率)p(watching)、p(watchin)、p(watchi)、p(watch)、p(watc)、p(wat)、p(wa)、p(w)を記憶保持する。
【0094】
そして、予測学習処理部3では、時間ステップt1~t8において、それぞれ、処理対象を構成する文字である「w」、「a」、「t」、「c」、「h」、「i」、「n」、「g」を入力させ、上記と同様の処理を行う(
図2を参照)。
【0095】
そして、出力確率保持部51は、時間ステップt1において(データDinとして、文字「w」が予測学習処理部3に入力された場合)、ソフトマックス層35のノードのうち、文字「w」に後続するサブワード(サブワードの候補)である「atching」、「atchin」、「atchi」、「atch」、「atc」、「at」、「a」に対応するノードの出力値(サブワードの出現確率)p(atching)、p(atchin)、p(atchi)、p(atch)、p(atc)、p(at)、p(a)を記憶保持する。
【0096】
また、出力確率保持部51は、時間ステップt2において(データDinとして、文字「a」が予測学習処理部3に入力された場合)、ソフトマックス層35のノードのうち、文字「a」に後続するサブワード(サブワードの候補)である「tching」、「tchin」、「tchi」、「tch」、「tc」、「t」に対応するノードの出力値(サブワードの出現確率)p(tching)、p(tchin)、p(tchi)、p(tch)、p(tc)、p(t)を記憶保持する。
【0097】
また、出力確率保持部51は、時間ステップt3において(データDinとして、文字「t」が予測学習処理部3に入力された場合)、ソフトマックス層35のノードのうち、文字「t」に後続するサブワード(サブワードの候補)である「ching」、「chin」、「chi」、「ch」、「c」に対応するノードの出力値(サブワードの出現確率)p(ching)、p(chin)、p(chi)、p(ch)、p(c)を記憶保持する。
【0098】
また、出力確率保持部51は、時間ステップt4において(データDinとして、文字「c」が予測学習処理部3に入力された場合)、ソフトマックス層35のノードのうち、文字「c」に後続するサブワード(サブワードの候補)である「hing」、「hin」、「hi」、「h」に対応するノードの出力値(サブワードの出現確率)p(hing)、p(hin)、p(hi)、p(h)を記憶保持する。
【0099】
また、出力確率保持部51は、時間ステップt5において(データDinとして、文字「h」が予測学習処理部3に入力された場合)、ソフトマックス層35のノードのうち、文字「h」に後続するサブワード(サブワードの候補)である「ing」、「in」、「i」に対応するノードの出力値(サブワードの出現確率)p(ing)、p(in)、p(i)を記憶保持する。
【0100】
また、出力確率保持部51は、時間ステップt6において(データDinとして、文字「i」が予測学習処理部3に入力された場合)、ソフトマックス層35のノードのうち、文字「i」に後続するサブワード(サブワードの候補)である「ng」、「n」に対応するノードの出力値(サブワードの出現確率)p(ng)、p(n)を記憶保持する。
【0101】
また、出力確率保持部51は、時間ステップt7において(データDinとして、文字「n」が予測学習処理部3に入力された場合)、ソフトマックス層35のノードのうち、文字「n」に後続するサブワード(サブワードの候補)である「g」に対応するノードの出力値(サブワードの出現確率)p(g)を記憶保持する。
【0102】
そして、出力確率保持部51は、時間ステップt5において、処理対象の単語の最終文字「g」が予測学習処理部3に入力された場合、時間ステップt0~t7において、記憶保持したサブワードの出現確率のデータを、データD26として、損失評価部4に出力する。
【0103】
損失評価部4は、ソフトマックス層35から出力されるデータD25と、出力部5から出力されるデータD26とを入力し、データD25およびD26を用いて、損失関数により損失を取得する。
【0104】
ここで、サブワード取得処理システム1000において採用する損失関数について、説明する。
【0105】
T個の文字からなる1つの単語をx
1:Tとし、τ
a個(τ
a:自然数)のサブワードa
i(i:自然数、1≦i≦τ
a)により構成される、単語xの1つのセグメンテーションデータをa
1:τaとし、単語xのとりうる全てのセグメンテーションデータの集合をS(x)とすると、単語x(単語x
1:T)の出現確率は、単語xのとりうる全てのセグメンテーションデータの出現確率の和(周辺確率の総和)で表すことができる。すなわち、下記数式が成り立つ。
【数3】
p(x):xの出現確率
また、コンテキスト考慮隠れ状態データ取得部2(学習済みモデル)により、すべて単語xを含む文から取得されたコンテキストを考慮した埋め込み表現データの平均データをe
x(データD_hsに相当)とし、サブワードa
iのプレフィックス(接頭辞)(サブワードa
iに先行する文字列(サブワードa
iの前の文字列))をx
1,・・・,x
jとすると、下記数式が成り立つ。
【数4】
そして、学習処理時において、動的計画法(DP:Dynamic Programming)を用いることで(各時間ステップで取得したサブワードの出現確率を記憶しておくことで)、上記数式のlog(x
1:T|e
x)は、多項式時間で計算することができる。
【0106】
例えば、単語x(x
1:T)が「watching」である場合、
図4に示すように、プレフィックスがx
1,・・・,x
jである場合のサブワードa
iの出現確率p(segment)を取得することができ、さらに、当該サブワードに区切った場合のセグメンテーションの確率p(segmentation)を上記確率p(segment)の同時確率を求めることで取得できる(例えば、セグメンテーションの確率p(watch/ing)は、p(watch)とp(ing|watch)の同時確率(確率の積)で求めることができる)(
図4を参照)。そして、損失Lossを下記数式で取得されるデータとすることで、サブワード取得処理システム1000において、学習処理が可能となる。
【数5】
そして、サブワード取得処理システム1000において、コンテキストを考慮した埋め込み表現データの平均データe
xが取得された場合において、最適なセグメンテーション(セグメンテーションデータ)aを、下記数式に相当する処理を行うことで、取得することができる。
【数6】
なお、サブワード取得処理システム1000では、予測学習処理部3のニューラルネットワークモデルのパラメータをθとし、損失関数をLoss(θ)として、下記数式に相当する処理を行うことで、予測学習処理部3のニューラルネットワークモデルの最適パラメータθ
optを取得する。
【数7】
なお、損失評価部4は、学習処理時において、誤差逆伝播法によりパラメータ更新するために、取得した損失をソフトマックス層35に出力する。なお、損失評価部4により取得された損失は、ソフトマックス層35、出力マッピング層34、入力文字-コンテキスト関係用アテンション層33、入力文字間関係用アテンション層32、埋込層31へと順次伝播され、それぞれの層において、パラメータが更新される。
【0107】
損失評価部4は、ソフトマックス層35から出力されるデータD25と、出力部5から出力されるデータD26とを用いて、損失関数Loss(θ)により損失を取得する。
図2に示すように、損失評価部4は、時間ステップt8において、データD25から、単語x(x=「watching」)のとりうる全てのサブワードの出現確率を取得でき、単語x(x=「watching」)について、すべてのとり得るセグメンテーションデータの出現確率を取得できる(
図2を参照)。したがって、損失評価部4は、単語x(x=「watching」)について、すべてのとり得るセグメンテーションデータの出現確率の和(周辺確率の総和)を求めることができ、(数式7)により、損失関数Loss(θ)の値(損失)を取得することができる。
【0108】
損失評価部4は、上記処理により、損失Loss(θ)を取得し、取得した損失(損失関数の値)Loss(θ)の変動が所定の値以下であるか否かを判定する。損失評価部4は、取得した損失(損失関数の値)の変動が所定の値以下ではない場合、取得した損失を用いて、誤差逆伝播法により、パラメータを更新する処理を行う(損失評価部4により取得された損失を、ソフトマックス層35、出力マッピング層34、入力文字-コンテキスト関係用アテンション層33、入力文字間関係用アテンション層32、埋込層31へと順次伝播させ、それぞれの層において、パラメータを更新させる)。
【0109】
一方、損失評価部4は、取得した損失(損失関数の値)の変動が所定の値以下である場合、学習処理が収束したと判定し、学習処理を終了させる。そして、学習終了時において、ソフトマックス層35、出力マッピング層34、入力文字-コンテキスト関係用アテンション層33、入力文字間関係用アテンション層32、埋込層31で設定されたパラメータを最適パラメータとして固定させる。これにより、予測学習処理部3において、学習済みモデルが取得(構築)される。
【0110】
なお、サブワード取得処理システム1000では、単語x=「watching」以外の単語も使用して、学習処理を実行し、損失評価部4が上記のように学習処理(パラメータ更新処理)が収束したと判断した場合、学習処理を終了させ、予測学習処理部3において、学習済みモデルを取得(構築)する。
【0111】
また、
図5に、サブワード取得処理システム1000の学習処理時の損失を取得する処理の擬似コードを示す。サブワード取得処理システム1000において、当該擬似コードに示す処理を実行することで、学習処理時に、損失(損失関数Loss(θ)の値に相当)を取得することができる。
【0112】
サブワード取得処理システム1000では、コンテキストを考慮した埋め込み表現データの平均データex(コンテキスト考慮隠れ状態データD_hsに相当)を条件として、単語xの出現確率を最大とするように予測学習処理部3のモデルを学習させる。単語xの出現確率を直接求めることは難しいが、単語xの出現確率と等しい周辺確率の総和(単語xのとりうる全てのセグメンテーションデータの出現確率の和)を求めることは可能である。
【0113】
そこで、サブワード取得処理システム1000では、動的計画法(DP:Dynamic Programming)を用いて(各時間ステップで取得したサブワードの出現確率を記憶しておくことで)、単語xのとりうる全てのセグメンテーションデータの出現確率の和(単語xの出現確率と等しい周辺確率の総和)を最大化させるように(損失Loss(θ)を最小化させるように)、予測学習処理部3のモデルを学習させる。
【0114】
これにより、サブワード取得処理システム1000では、コンテキストを考慮した埋め込み表現データの平均データex(コンテキスト考慮隠れ状態データD_hsに相当)を条件として、単語xのとりうる全てのセグメンテーションデータの出現確率(=単語xの出現確率)を最大化する学習済みモデルを取得できる。そして、サブワード取得処理システム1000では、予測学習処理部3の当該学習済みモデルにコンテキスト考慮隠れ状態データD_hs(ex)を入力させ、かつ、予測学習処理部3の当該学習済みモデルに単語xを入力することで、当該単語xの各サブワードの出現確率が適切に出力される(最適な出現確率が出力される)。
【0115】
(1.2.2:予測処理)
次に、サブワード取得処理システム1000で実行される予測処理について、説明する。
【0116】
図6は、入力データDinが単語「watching」のデータである場合におけるサブワード取得処理装置100の予測学習処理部3の入力(データDin)と出力(データD25)を示した図である。
【0117】
以下では、サブワード取得処理システム1000の予測学習処理部3において、学習処理により取得された学習済みモデル(学習処理により取得された最適パラメータが設定されたモデル)が設定(構築)されており、入力データDinが単語「watching」のデータであり、当該単語のサブワード列(最適なサブワードのデータ列)を取得(出力)する場合について、説明する。
【0118】
サブワード取得処理装置100(サブワード取得処理装置100の入力文取得部1および埋込層31)に、処理対象の単語(「watching」)のデータDinが入力される。
【0119】
入力文取得部1は、単言語データ記憶部DB1に対して読み出し指令を出力し、処理対象の単語(データDinに含まれる単語(「watching」))を含む文を単言語データ記憶部DB1から読み出す。
【0120】
そして、入力文取得部1は、単言語データ記憶部DB1から読み出した処理対象の単語を含む文を含むデータを、データD_sentence(i)として、コンテキスト考慮隠れ状態データ取得部2に出力する。
【0121】
コンテキスト考慮隠れ状態データ取得部2での処理は、学習処理のときの処理と同様である。
【0122】
予測学習処理部3の埋込層31は、処理対象の単語のデータDin(単語「watching」のデータ)を入力し、データDinから、埋め込み表現データを取得する。なお、埋込層31には、処理対象の単語を構成する文字が、順次、入力される。
【0123】
また、学習処理時と同様に、
図6に示すように、時間ステップt0~t8において、以下のデータ(コードまたは文字)が入力されるものとする。
時間ステップt0:<s>
時間ステップt1:w
時間ステップt2:a
時間ステップt3:t
時間ステップt4:c
時間ステップt5:h
時間ステップt6:i
時間ステップt7:n
時間ステップt8:g
そして、入力文字間関係用アテンション層32、入力文字-コンテキスト関係用アテンション層33、出力マッピング層34、および、ソフトマックス層35において、学習処理のときの処理と同様の処理が実行される。
【0124】
そして、ソフトマックス層35により取得されたデータD25は、出力部5の出力確率保持部51に出力される。
【0125】
出力確率保持部51は、学習処理時と同様に、時間ステップt0~t7において取得されたサブワード(サブワードの候補)の出現確率を記憶保持する。そして、時間ステップt8において、処理対象の単語の最終文字の予測学習処理部3での処理が終了した後、最終出力データ取得部52は、下記数式に相当する処理を行うことで、最適なセグメンテーション(セグメンテーションデータ)aを取得する。なお、最終出力データ取得部52は、処理対象の単語x(=「watching」)のとり得る全てのサブワード列のパターン(セグメンテーション)を把握しており、下記数式に相当する処理を実行するために必要なデータ(各サブワードの出現確率)を、データD27として、適宜、出力確率保持部51から取得する。
【数8】
また、
図7に、上記数式に相当する処理を実現するための擬似コードを示す。サブワード取得処理システム1000において、上記数式に相当する処理(
図7の擬似コードに示す処理)を実行することで、予測処理時に、最適なサブワード列を取得することができる。
【0126】
例えば、
図8に示す場合、最終出力データ取得部52は、処理対象の単語x(=「watching」)のとり得る全てのサブワード列のパターン(セグメンテーション)の出現確率p(segmentation)を取得し、p(watch/ing)の確率が最大であると判定する。なお、
図8の場合、サブワード取得処理装置100により取得されたサブワード列のパタン(セグメンテーション)の出現確率が、
p(watch/ing)=0.72
p(wat/ching)=0.12
p(w/at/ching)=0.02
であり、上記以外のサブワード列のパターン(セグメンテーション)の出現確率は、0.02よりも小さい値として取得されたものとする。
【0127】
最終出力データ取得部52は、上記の場合、出現確率p(segmentation)が最大となるサブワード列のパターン(セグメンテーション)を最終出力データとし、当該データをデータDoutとして出力する。すなわち、サブワード取得処理システム1000において、処理対象の単語を「watching」としたとき、最終出力データとして、サブワード列「watch/ing」が取得される。
図6では、上記(数式8)に相当する処理(
図7の擬似コードに示す処理)を実行することで、最終出力データ取得部52は、「watch」が入力された後(時間ステップt5)に取得された出現確率p(ing)(p(ing|watch)に相当)と、「<s>」入力された後(時間ステップt0)に取得された出現確率p(watch)との組み合わせのパターン(
図6においてグレーにした部分)が、出現確率p(segmentation)を最大とするサブワード列のパターン(セグメンテーション)であると判定されている状態を示している。なお、最終出力データ取得部52は、(1)「watch」が入力された後(時間ステップt5)に取得された出現確率p(ing)(p(ing|watch)に相当)、(2)「<s>」入力された後(時間ステップt0)に取得された出現確率p(watch)をバックトレースする(逆から順に辿る)ことで、出現確率p(segmentation)を最大とするサブワード列のパターン(セグメンテーション)を決定できる(
図7の擬似コードのretrace()に相当する処理)。
【0128】
≪まとめ≫
以上のように、サブワード取得処理システム1000では、単言語コーパスである単言語データ記憶部DB1から取得した文であって、処理対象の単語を含む文から取得した、当該単語のコンテキストを考慮した埋め込み表現データの平均データex(コンテキスト考慮隠れ状態データD_hsに相当)を用いて、処理対象の単語から、当該単語のサブワード(サブワード列)を予測する処理を行うことで、当該単語の適切なサブワード(サブワード列)を取得することができる。
【0129】
つまり、サブワード取得処理システム1000では、コンテキストを考慮した埋め込み表現データの平均データex(コンテキスト考慮隠れ状態データD_hsに相当)を用いて、サブワード列を予測する処理を行うので、処理対象の単語のコンテキストを考慮したサブワード列が取得される。したがって、サブワード取得処理システム1000で取得されるサブワード(サブワード列)は、直感的に正しいと判断されるサブワードとなる。
【0130】
また、サブワード取得処理システム1000では、単言語コーパスのみで処理を行うことができるので、大量の対訳データは、不要である。
【0131】
このように、サブワード取得処理システム1000では、大量の対訳データを必要とせず、高品質なサブワード(例えば、直感的に正しいと判断されるサブワード)(サブワード列)を取得することができる。サブワード取得処理システム1000では、単言語コーパスのみで処理が可能であるため、大量の対訳データが存在しない言語についても高品質のサブワード列を取得することができ、その効果は絶大である。
【0132】
また、サブワード取得処理システム1000で取得された高品質のサブワード列を用いて、自然言語処理(例えば、機械翻訳処理、音声認識処理)を行うことで、その処理性能を向上させることができる。また、サブワード取得処理システム1000を、サブワードあるいはサブワード列を扱う自然言語処理システム(例えば、機械翻訳処理システム、音声認識処理システム)に組み入れるようにしてもよい。
【0133】
≪第1変形例≫
次に、第1実施形態の第1変形例について、説明する。なお、上記実施形態と同様の部分については、同一符号を付し、詳細な説明を省略する。
【0134】
図9は、第1実施形態の第1変形例に係るサブワード取得処理システム1000Aの概略構成図である。
【0135】
本変形例のサブワード取得処理システム1000Aは、第1実施形態のサブワード取得処理システム1000において、サブワード取得処理装置100をサブワード取得処理装置100Aに置換し、出力部5を出力部5Aに置換し、最終出力データ取得部52を最終出力データ取得部52Aに置換した構成を有している。本変形例のサブワード取得処理システム1000Aにおいて、それ以外は、第1実施形態のサブワード取得処理システム1000と同様である。
【0136】
第1実施形態のサブワード取得処理システム1000では、最終出力データ取得部52は、処理対象の単語の最適なサブワード(サブワード列)(セグメンテーション)を出力するものであったが、本変形例のサブワード取得処理システム1000Aでは、最終出力データ取得部52Aは、処理対象の単語について、複数のサブワード(サブワード列)(セグメンテーション)を出力する(N-bestのデータを出力する)。
【0137】
なお、本変形例のサブワード取得処理システム1000Aにおいて、最終出力データ取得部52Aでの処理以外の処理は、第1実施形態のサブワード取得処理システム1000の処理と同様である。
【0138】
最終出力データ取得部52Aは、処理対象の単語xのとり得る全てのサブワード列のパターン(セグメンテーション)を把握しているので、処理対象の単語xのとり得る全てのサブワード列のパターン(セグメンテーション)ai(ai∈S(x))の出現確率p(ai)を取得することができる。
【0139】
なお、最終出力データ取得部52Aは、処理対象の単語xのサブワード列のパターン(セグメンテーション)a
iをサンプルする確率p
sample(a
i)を下記数式に相当する処理を行うことで取得する。
【数9】
t:温度パラメータ(ハイパーパラメータ)
なお、温度パラメータtは、可変であってもよく、例えば、外部から最終出力データ取得部52Aに入力し、その値を設定(調整)できるようにしてもよい。
【0140】
最終出力データ取得部52Aが上記処理を行うことで、処理対象の単語xのサブワード列のパターン(セグメンテーション)aiをサンプルする確率psample(ai)は、そのとり得る範囲が[0:1]に規定される。
【0141】
そして、最終出力データ取得部52Aは、確率psample(ai)が上位N位までの処理対象の単語xのサブワード列のパターン(セグメンテーション)aiを取得し、取得したデータ(N個のデータ)を、データDoutとして出力する。
【0142】
これにより、サブワード取得処理システム1000Aでは、処理対象の単語のN-ベストのデータ(処理対象の単語xのサブワード列のパターン(セグメンテーション))を取得することができる。
【0143】
図10に、本変形例のサブワード取得処理システム1000Aにおいて、処理対象の単語を「represented」とした場合に取得されたN-ベストのデータ(処理対象の単語xのサブワード列のパターン(セグメンテーション))(N=7の場合)を示す。
【0144】
図10から分かるように、本変形例のサブワード取得処理システム1000Aにより、適切なサブワード(サブワード列)が取得されている。
【0145】
以上のように、第1実施形態の第1変形例に係るサブワード取得処理システム1000Aでは、コンテキストを考慮した埋め込み表現データの平均データex(コンテキスト考慮隠れ状態データD_hsに相当)を用いて、サブワード列を予測する処理を行うので、処理対象の単語のコンテキストを考慮したN-ベストのサブワード列を取得することができる。
【0146】
また、本変形例のサブワード取得処理システム1000Aでは、単言語コーパスのみで処理を行うことができるので、大量の対訳データは、不要である。
【0147】
このように、本変形例のサブワード取得処理システム1000では、大量の対訳データを必要とせず、高品質な複数個の(N-ベストの)サブワード(例えば、直感的に正しいと判断されるサブワード)(サブワード列)を取得することができる。
【0148】
本変形例のサブワード取得処理システム1000で取得した高品質な複数個の(N-ベストの)サブワード(例えば、直感的に正しいと判断されるサブワード)(サブワード列)を、例えば、学習可能モデルを含む自然言語処理システム(例えば、機械翻訳システムや音声認識処理システム)の訓練データとして採用し、当該システムの学習可能モデルを学習させることで、ロバスト性(頑健性)が向上した学習済みモデルを取得することができる。
【0149】
[他の実施形態]
上記実施形態(変形例を含む)では、隠れ状態データ取得処理部21の学習済みモデルを単言語の文により学習させて取得したモデル(例えば、characterBERTモデル)とする場合について説明したが、これに限定されることはなく、隠れ状態データ取得処理部21の学習済みモデルとして、他のモデルを採用するようにしてもよい。例えば、隠れ状態データ取得処理部21の学習済みモデルとして、多言語データを用いて学習させて取得されるXLMモデル(例えば、XLMモデルの埋め込み表現データを取得する部分のモデル)(下記文献Cに開示されているモデル)を採用するようにしてもよい。
(文献C):Alexis Conneau and Guillaume Lample (2019). Cross-Lingual Language Model Pretraining. In Proceedings of the 32nd Neural Information Processing Systems Conference (NeurIPS), pp. 7057-7067.
また、類似単語を類似ベクトルに変換するモデル(例えば、word2vecモデル)の学習済みモデルを、隠れ状態データ取得処理部21の学習済みモデルとして、採用するようにしてもよい。
【0150】
また、上記実施形態(変形例を含む)では、サブワード取得処理装置100、100Aの予測学習処理部3において、Transformerモデルの構成を採用した場合について、説明したが、これに限定されることはなく、予測学習処理部3において、他のモデルの構成を採用するようにしてもよい。予測学習処理部3において、例えば、RNN(Recursive Neural Network)モデルや、LSTMモデル(LSTM: Long short-term memory)、GRUモデル(GRU:Gated Recurrent Unit)等の構成を採用するようにしてもよい。つまり、コンテキスト考慮隠れ状態データを入力でき、過去の入力データの少なくとも一部を記憶保持できる構成を有するモデルであれば、予測学習処理部3の構成として当該モデルの構成を採用してもよい。
【0151】
また、文のデータ、単語のデータ、サブワードのデータ、および、埋め込み表現データは、それぞれ、例えば、実数値から構成されるデータ(スカラ、ベクトル、テンソル等)であり、コンピュータやデジタルデータを処理可能な装置で扱える形式のデータである。また、単語のデータ、サブワードのデータを、one-hotベクトルにより、表現するようにしてもよい。
【0152】
また、上記実施形態(変形例を含む)で説明した学習処理を別装置にて行い、当該装置にて最適パラメータを取得し、取得した最適パラメータを、サブワード取得処理装置100、100Aに設定するようにしてもよい。この場合、サブワード取得処理装置100、100Aを、損失評価部4を省略した構成とすることができる。
【0153】
また、コンテキスト考慮隠れ状態データ取得部2で取得されるデータD_hsは、上記実施形態(変形例を含む)で説明したデータに限定されることはなく、例えば、データD_hsを、コンテキスト考慮隠れ状態データ取得部2に入力されるデータに対して、次元圧縮したデータ(例えば、エンコード処理を施したデータ)とするようにしてもよい。
【0154】
また、上記実施形態(変形例を含む)で説明したサブワード取得処理システム1000、1000A、サブワード取得処理装置100、100Aの各機能部は、1つの装置(システム)により実現されてもよいし、複数の装置により実現されてもよい。
【0155】
また、上記実施形態の一部または全部を組み合わせるようにしてもよい。
【0156】
また、上記実施形態(変形例を含む)のサブワード取得処理システム1000、1000A、サブワード取得処理装置100、100Aにおいて、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部または全部を含むように1チップ化されても良い。
【0157】
なおここではLSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0158】
また集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【0159】
また上記各実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして上記各実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置(CPU)により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ROMなどの記憶装置に格納されており、ROMにおいて、あるいはRAMに読み出されて実行される。
【0160】
また上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらにソフトウェアおよびハードウェアの混在処理により実現しても良い。
【0161】
上記実施形態に係るサブワード取得処理システム1000、1000A、サブワード取得処理装置100、100Aをハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
【0162】
例えば上記実施形態の各機能部をソフトウェアにより実現する場合、
図11に示したハードウェア構成(例えばCPU、GPU、ROM、RAM、入力部、出力部、通信部、記憶部(例えば、HDD、SSD等により実現される記憶部)、外部メディア用ドライブ等をバスBusにより接続したハードウェア構成)を用いて各機能部をソフトウェア処理により実現するようにしてもよい。
【0163】
また上記実施形態の各機能部をソフトウェアにより実現する場合、当該ソフトウェアは、
図11に示したハードウェア構成を有する単独のコンピュータを用いて実現されるものであってもよいし、複数のコンピュータを用いて分散処理により実現されるものであってもよい。
【0164】
また上記実施形態における処理方法の実行順序は、必ずしも上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。また、上記実施形態における処理方法において、発明の要旨を逸脱しない範囲で、一部のステップが、他のステップと並列に実行されるものであってもよい。
【0165】
前述した方法をコンピュータに実行させるコンピュータプログラム、及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここでコンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、大容量DVD、次世代DVD、半導体メモリを挙げることができる。
【0166】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限らず、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【0167】
また、本明細書内の記載、特許請求の範囲の記載において、「最適化」(あるいは「最適」)とは、最も良い状態にすることをいい、システム(モデル)を「最適化」するパラメータ(最適パラメータ)とは、当該システムの目的関数の値が最適値となるときのパラメータのことをいう。「最適値」は、システムの目的関数の値が大きくなるほど、システムが良い状態となる場合は、最大値であり、システムの目的関数の値が小さくなるほど、システムが良い状態となる場合は、最小値である。また、「最適値」は、極値であってもよい。また、「最適値」は、所定の誤差(測定誤差、量子化誤差等)を許容するものであってもよく、所定の範囲(十分収束したとみなすことができる範囲)に含まれる値であってもよい。
【0168】
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【符号の説明】
【0169】
1000、1000A サブワード取得処理システム
100、100A サブワード取得処理装置
DB1 単言語データ記憶部
2 コンテキスト考慮隠れ状態データ取得部
3 予測学習処理部
5 出力部