(57)【要約】【課題】単語の文字列の重要性を考慮した、単語を表すベクトルを生成するようにする。【解決手段】文字Ｎグラムベクトル取得部が、単語に含まれる文字Ｎグラムの各々を表すベクトルを取得する。重み計算部４０が、前記単語に含まれる文字Ｎグラムの各々を表すベクトルに基づいて、前記文字Ｎグラムの各々を表すベクトルに対する重みを計算し、文字Ｎグラムベクトル合成部４２が、前記単語に含まれる文字Ｎグラムの各々を表すベクトル及び前記文字Ｎグラムの各々を表すベクトルに対する重みに基づいて、前記文字Ｎグラムの各々を表すベクトルを合成した合成ベクトルを生成する。【選択図】図２
2020030753.tif 000002
【特許請求の範囲】
【請求項１】
予め学習されたニューラルネットワークを用いて、入力された単語を合成ベクトルに変換する単語符号化部を有する単語符号化装置であって、
前記単語符号化部は、
前記単語に含まれる文字Ｎグラムの各々を表す所定のベクトルを取得する文字Ｎグラムベクトル取得部と、
前記単語に含まれる文字Ｎグラムの各々を表す所定のベクトルに基づいて、前記文字Ｎグラムの各々を表す所定のベクトルに対する重みを計算する重み計算部と、
前記単語に含まれる文字Ｎグラムの各々を表す所定のベクトル及び前記文字Ｎグラムの各々を表す所定のベクトルに対する重みに基づいて、前記文字Ｎグラムの各々を表す所定のベクトルを合成した合成ベクトルを生成する文字Ｎグラムベクトル合成部と、
を含む単語符号化装置。
【請求項２】
予め学習されたニューラルネットワークを用いて、入力されたテキストに対して、所定の目的に応じた出力テキストの予測結果を出力する解析部を有する解析装置であって、
前記解析部は、
入力されたテキストに含まれる各単語を、合成単語ベクトル又は合成ベクトルに変換する単語符号化部と、
前記入力されたテキストの先頭の単語から順に、ｔ−１番目の単語について計算された隠れベクトルと、前記単語符号化部からｔ番目の単語について出力された合成単語ベクトル又は合成ベクトルとを用いて、ｔ番目の単語についての隠れベクトルを計算する系列符号化部と、
前記入力されたテキストに含まれる各単語について計算された前記隠れベクトルから、前記出力テキストの予測結果を生成する系列復号化部と、
を含み、
前記単語符号化部は、
前記入力されたテキストに含まれる各単語について、前記単語に含まれる文字Ｎグラムの各々を表すベクトルを取得する文字Ｎグラムベクトル取得部と、
前記単語に含まれる文字Ｎグラムの各々を表す所定のベクトルに基づいて、前記文字Ｎグラムの各々を表す所定のベクトルに対する重みを計算する重み計算部と、
前記単語に含まれる文字Ｎグラムの各々を表す所定のベクトル及び前記文字Ｎグラムの各々を表す所定のベクトルに対する重みに基づいて、前記文字Ｎグラムの各々を表す所定のベクトルを合成した合成ベクトルを生成する文字Ｎグラムベクトル合成部と、
前記単語を表すベクトルを取得する単語ベクトル取得部と、
前記単語を表すベクトルと、前記文字Ｎグラムベクトル合成部によって生成された前記合成ベクトルとを合成した合成単語ベクトルを生成する単語ベクトル合成部と、
を含む解析装置。
【請求項３】
請求項２記載の解析装置と、
学習用テキストについての、前記解析装置による前記出力テキストの予測結果と、前記学習用テキストに対する前記出力テキストの正解とに基づいて、前記文字Ｎグラムを表す所定のベクトル、前記重みを計算する際に用いられるパラメータ、前記単語を表すベクトル、前記系列符号化部、及び前記系列復号化部の各々のパラメータを学習するパラメータ学習部と、
を含む言語モデル学習装置。
【請求項４】
単語符号化部が、予め学習されたニューラルネットワークを用いて、入力された単語を合成ベクトルに変換する単語符号化方法であって、
前記単語符号化部が変換することでは、
文字Ｎグラムベクトル取得部が、単語に含まれる文字Ｎグラムの各々を表す所定のベクトルを取得し、
重み計算部が、前記単語に含まれる文字Ｎグラムの各々を表す所定のベクトルに基づいて、前記文字Ｎグラムの各々を表すベクトルに対する重みを計算し、
文字Ｎグラムベクトル合成部が、前記単語に含まれる文字Ｎグラムの各々を表す所定のベクトル及び前記文字Ｎグラムの各々を表す所定のベクトルに対する重みに基づいて、前記文字Ｎグラムの各々を表す所定のベクトルを合成した合成ベクトルを生成する
単語符号化方法。
【請求項５】
コンピュータを、請求項１に記載の単語符号化装置、請求項２に記載の解析装置、又は請求項３に記載の言語モデル学習装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、単語符号化装置、解析装置、言語モデル学習装置、方法、及びプログラムに関し、特に、単語を表すベクトルを生成するための単語符号化装置、解析装置、言語モデル学習装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
自然言語で書かれた文書を計算機が翻訳、あるいは要約するためには、自然言語文の解析だけではなく、計算機によって文を生成する技術がなくてはならない。また、機械と人とが対話を行う際にも、自然言語文を自動的に生成する必要がある。
【０００３】
計算機による文の生成は、最初の単語を入力とし、次に出現する単語の確率を計算し、単語を生成する、その後、出力した単語を入力として、さらに次に出現する単語の確率を計算する、という処理を繰り返すことによって行う。
【０００４】
近年、リカレントニューラルネットワーク（ＲＮＮ）を用い、過去の全単語列を元に、単語の出現確率を計算する手法が主流になってきている。この手法では、単語を各次元の要素が実数値の、固定長のベクトルで表現し、単語間の組み合わせをベクトル同士の演算で表現する。
【０００５】
また、単語を表すベクトルを生成する際に、文字の埋め込みベクトルを、単語の埋め込みベクトルに結合する手法が知られている（非特許文献１）。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Lyan Verwimp, Joris Pelemans, Hugo Van hamme, and Patrick Wambacq. 2017. Character-word lstm language models. In Proceedings of the 15th Conference of the European Chapter of the Association for Computational Linguistics (EACL 2017), pages 417-427.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記非特許文献１に記載の手法では、単語埋め込みベクトル構築の際に単語を構成する文字列の重要性が考慮できていなかった。
【０００８】
本発明は、この課題を鑑みてなされたものであり、単語の文字列の重要性を考慮した、単語を表すベクトルを生成することができる単語符号化装置、方法、及びプログラムを提供することを目的とする。
【０００９】
また、本発明は、テキストを精度よく解析することができる解析装置及びプログラムを提供することを目的とする。
【００１０】
また、本発明は、テキストを精度よく解析するための言語モデルを学習することができる言語モデル学習装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明に係る単語符号化装置は、予め学習されたニューラルネットワークを用いて、入力された単語を合成ベクトルに変換する単語符号化部を有する単語符号化装置であって、前記単語符号化部は、前記単語に含まれる文字Ｎグラムの各々を表す所定のベクトルを取得する文字Ｎグラムベクトル取得部と、前記単語に含まれる文字Ｎグラムの各々を表す所定のベクトルに基づいて、前記文字Ｎグラムの各々を表す所定のベクトルに対する重みを計算する重み計算部と、前記単語に含まれる文字Ｎグラムの各々を表す所定のベクトル及び前記文字Ｎグラムの各々を表す所定のベクトルに対する重みに基づいて、前記文字Ｎグラムの各々を表す所定のベクトルを合成した合成ベクトルを生成する文字Ｎグラムベクトル合成部と、を含んで構成されている。
【００１２】
また、本発明に係る単語符号化方法は、単語符号化部が、予め学習されたニューラルネットワークを用いて、入力された単語を合成ベクトルに変換する単語符号化方法であって、前記単語符号化部が変換することでは、文字Ｎグラムベクトル取得部が、単語に含まれる文字Ｎグラムの各々を表す所定のベクトルを取得し、重み計算部が、前記単語に含まれる文字Ｎグラムの各々を表す所定のベクトルに基づいて、前記文字Ｎグラムの各々を表すベクトルに対する重みを計算し、文字Ｎグラムベクトル合成部が、前記単語に含まれる文字Ｎグラムの各々を表す所定のベクトル及び前記文字Ｎグラムの各々を表す所定のベクトルに対する重みに基づいて、前記文字Ｎグラムの各々を表す所定のベクトルを合成した合成ベクトルを生成する。
【００１３】
また、本発明に係る解析装置は、予め学習されたニューラルネットワークを用いて、入力されたテキストに対して、所定の目的に応じた出力テキストの予測結果を出力する解析部を有する解析装置であって、前記解析部は、入力されたテキストに含まれる各単語を、合成単語ベクトル又は合成ベクトルに変換する単語符号化部と、前記入力されたテキストの先頭の単語から順に、ｔ−１番目の単語について計算された隠れベクトルと、前記単語符号化部からｔ番目の単語について出力された合成単語ベクトル又は合成ベクトルとを用いて、ｔ番目の単語についての隠れベクトルを計算する系列符号化部と、前記入力されたテキストに含まれる各単語について計算された前記隠れベクトルから、前記出力テキストの予測結果を生成する系列復号化部と、を含み、前記単語符号化部は、前記入力されたテキストに含まれる各単語について、前記単語に含まれる文字Ｎグラムの各々を表すベクトルを取得する文字Ｎグラムベクトル取得部と、前記単語に含まれる文字Ｎグラムの各々を表す所定のベクトルに基づいて、前記文字Ｎグラムの各々を表す所定のベクトルに対する重みを計算する重み計算部と、前記単語に含まれる文字Ｎグラムの各々を表す所定のベクトル及び前記文字Ｎグラムの各々を表す所定のベクトルに対する重みに基づいて、前記文字Ｎグラムの各々を表す所定のベクトルを合成した合成ベクトルを生成する文字Ｎグラムベクトル合成部と、前記単語を表すベクトルを取得する単語ベクトル取得部と、前記単語を表すベクトルと、前記文字Ｎグラムベクトル合成部によって生成された前記合成ベクトルとを合成した合成単語ベクトルを生成する単語ベクトル合成部と、を含んで構成されている。
【００１４】
また、本発明に係る言語モデル学習装置は、上記の解析装置と、学習用テキストについての、前記解析装置による前記出力テキストの予測結果と、前記学習用テキストに対する前記出力テキストの正解とに基づいて、前記文字Ｎグラムを表す所定のベクトル、前記重みを計算する際に用いられるパラメータ、前記単語を表すベクトル、前記系列符号化部、及び前記系列復号化部の各々のパラメータを学習するパラメータ学習部と、を含んで構成されている。
【００１５】
本発明に係るプログラムは、コンピュータを、上記の単語符号化装置、解析装置、又は言語モデル学習装置の各部として機能させるためのプログラムである。
【発明の効果】
【００１６】
本発明の単語符号化装置、方法、及びプログラムによれば、単語に含まれる文字Ｎグラムの各々を表す所定のベクトルに対する重みを計算し、文字Ｎグラムの各々を表す所定のベクトルを合成した合成ベクトルを生成することにより、単語の文字列の重要性を考慮した、単語を表すベクトルを生成することができる。
【００１７】
本発明の解析装置及びプログラムによれば、単語に含まれる文字Ｎグラムの各々を表す所定のベクトルに対する重みを計算し、文字Ｎグラムの各々を表す所定のベクトルを合成した合成ベクトルを生成し、更に、単語を表すベクトルと合成した合成単語ベクトルを生成して、次の単語を予測することにより、テキストを精度よく解析することができる。
【００１８】
また、本発明の言語モデル学習装置及びプログラムによれば、単語に含まれる文字Ｎグラムの各々を表す所定のベクトルに対する重みを計算し、文字Ｎグラムの各々を表す所定のベクトルを合成した合成ベクトルを生成し、更に、単語を表すベクトルと合成した合成単語ベクトルを生成することにより、テキストを精度よく解析するための言語モデルを学習することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施の形態に係る単語符号化装置の構成の一例を示す概略図である。
【図２】本発明の第１の実施の形態に係る単語符号化装置の文字Ｎグラム符号化部の構成の一例を示す概略図である。
【図３】本発明の第１の実施の形態に係る単語符号化装置の処理の概要を説明するための図である。
【図４】本発明の第１の実施の形態に係る単語符号化装置の単語符号化処理ルーチンを示すフローチャートである。
【図５】本発明の第２の実施の形態に係る言語モデル学習装置の構成の一例を示す概略図である。
【図６】本発明の第２の実施の形態に係る言語モデル学習装置の解析部の構成の一例を示す概略図である。
【図７】本発明の第２の実施の形態に係る言語モデル学習装置の解析部の処理の概要を説明するための図である。
【図８】本発明の第２の実施の形態に係る解析装置の構成の一例を示す概略図である。
【図９】本発明の第２の実施の形態に係る言語モデル学習装置の言語モデル学習処理ルーチンを示すフローチャートである。
【図１０】本発明の第２の実施の形態に係る解析装置の解析処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の実施の形態について図面を用いて説明する。
【００２１】
＜本発明の実施の形態に係る単語符号化装置の概要＞
本発明の実施の形態では、非特許文献１に記載の技術である文字の埋め込みベクトルを利用した手法とは異なり、単語を構成する文字Ｎグラムの埋め込みベクトルに対し、文字Ｎグラムの埋め込みベクトルの各次元に重みを付与する。
【００２２】
すなわち、単語を入力として、ニューラルネットワークを用いた単語符号化部により単語ベクトルへの変換を行う。その際、予め学習済みのパラメータによって、文字Ｎグラムごとにベクトル化とその重みづけを行う。
【００２３】
このように、単語埋め込みベクトル構築の際に単語を構成する文字列の重要性を加味した文字Ｎグラムの埋め込みベクトルの各次元に重みを付与しているので、各文字Ｎグラムの意味を考慮して単語の埋め込みベクトルが計算できる。
【００２４】
［第１の実施の形態］
＜本発明の第１の実施の形態に係る単語符号化装置の構成＞
本発明の第１の実施の形態に係る単語符号化装置の構成について説明する。図１は、本発明の実施の形態に係る単語符号化装置の構成を示す概略図である。
【００２５】
本発明の第１の実施の形態に係る単語符号化装置１０は、入力部１２と、演算部１４と、出力部１６とを備えて構成される。
【００２６】
入力部１２は、テキストに含まれる各単語を、入力として受け付ける。
【００２７】
演算部１４は、ＣＰＵと、ＲＡＭと、後述する単語符号化処理ルーチンを実行するためのプログラムを記憶したＲＯＭとを備えたコンピュータで構成され、機能的には次に示すように構成されている。演算部１４は、パラメータ記憶部２０と、単語符号化部２２とを備えて構成される。
【００２８】
パラメータ記憶部２０は、後述する文字Ｎグラムベクトル取得部３０、文字Ｎグラム符号化部３２、単語ベクトル取得部３４、及び単語ベクトル合成部３６の各々の処理で用いられるパラメータを記憶している。
【００２９】
単語符号化部２２は、入力されたテキストに含まれる各単語を符号化対象として、予め学習されたニューラルネットワークを用いて、単語を表す合成単語ベクトルを生成して、出力部１６により出力する。
【００３０】
単語符号化部２２は、文字Ｎグラムベクトル取得部３０、文字Ｎグラム符号化部３２、単語ベクトル取得部３４、及び単語ベクトル合成部３６を備えている。
【００３１】
文字Ｎグラムベクトル取得部３０は、符号化対象となる単語に含まれる文字Ｎグラムの各々を表す埋め込みベクトルを取得する。
【００３２】
具体的には、入力されたテキストに含まれる単語ｘtの系列を受け付ける。ただし、t=1,…,Tであり、Tはテキストを構成する単語数とする。テキストを任意の単位により分割したものであり、本実施の形態ではテキストをあらかじめ単語に分割したものを入力とする。また、Ｎは、２以上の整数であり、bigramであれば、Ｎ＝２である。
【００３３】
そして、単語を文字Ｎグラムに分割し、各文字Ｎグラムを表す1-hotベクトル（文字Ｎグラムに対応する要素が1、他は0のベクトル）ｑ1, …, ｑＭに対し、埋め込みベクトルへの変換行列Ｃ（コーパス中の文字Ｎグラムの数×埋め込みベクトルの次元数の行列であり、行列の各要素の値は予め学習処理によって得られているものとする）を用いて埋め込みベクトルの系列を得て、文字Ｎグラムの埋め込みベクトル系列Ｓ（Ｓ=[ｓ1,…,ｓＭ]、なお、Ｍは、単語に含まれる文字Ｎグラムの数であり、例えば、単語「cat」であり、Ｎ＝２であれば、文字Ｎグラムは、「*c」「ca」「at」「t*」であるため、Ｍ＝４となる。各ｓ1は文字Ｎグラムの埋め込みベクトルである。）を出力する。
【００３４】
文字Ｎグラム符号化部３２は、文字Ｎグラムの埋め込みベクトル系列Ｓを入力として、文字Ｎグラムから構成された単語の埋め込みベクトルｃtを出力する。文字Ｎグラム符号化部３２は、図２に示すように、重み計算部４０及び単語Ｎグラムベクトル合成部４２を備えている。
【００３５】
重み計算部４０は、単語に含まれる文字Ｎグラムの各々を表す埋め込みベクトルに基づいて、文字Ｎグラムの各々を表す埋め込みベクトルに対する重みを計算する。
【００３６】
具体的に、ｉ番目の文字Ｎグラムを表す埋め込みベクトルに対する重みベクトルｇiは、以下の式に従って計算される（図３参照）。
【００３７】
【数１】
2020030753.tif 000003
【００３８】
ただし、
2020030753.tif 000004
は、予め学習された重み行列であり、Ｄeは、埋め込みベクトルの次元数を表す。また、［ ］jは、行列のｊ番目の列を取り出す操作を表し、｛ ｝jは、ベクトルのｊ番目の要素を取り出す操作を表す。
【００３９】
単語Ｎグラムベクトル合成部４２は、単語に含まれる文字Ｎグラムの各々を表す埋め込みベクトル及び文字Ｎグラムの各々を表す埋め込みベクトルに対する重みに基づいて、文字Ｎグラムの各々を表す埋め込みベクトルを合成した合成ベクトルを生成する。
【００４０】
具体的には、以下の式に従って、合成ベクトルｃtを生成する（図３参照）。
【００４１】
【数２】
2020030753.tif 000005
【００４２】
ただし、
2020030753.tif 000006
は、ベクトルの要素積を表す。
【００４３】
単語ベクトル取得部３４は、単語を表す埋め込みベクトルを取得する。具体的には、単語を表す1-hotベクトルｘtを入力とし、以下の式に従って、単語の埋め込みベクトルｅtを求める。
【００４４】
【数３】
2020030753.tif 000007
【００４５】
ただし、
2020030753.tif 000008
は、予め学習された単語埋め込み行列であり、Ｖは語彙数である。
【００４６】
単語ベクトル合成部３６は、単語を表す埋め込みベクトルと、文字Ｎグラムベクトル合成部４２によって生成された合成ベクトルとを合成した合成単語ベクトルを生成する。
【００４７】
具体的には、単語の埋め込みベクトルｅtと、合成ベクトルｃtとを入力とし、以下の式に従って、合成単語ベクトルｅt'を求める（図３参照）。
【００４８】
【数４】
2020030753.tif 000009
【００４９】
＜本発明の第１の実施の形態に係る単語符号化装置の作用＞
図４は、本発明の第１の実施の形態に係る単語符号化処理ルーチンを示すフローチャートである。
【００５０】
入力部１２に、テキストに含まれる各単語が入力されると、単語符号化装置１０において、各単語に対し、図４に示す単語符号化処理ルーチンが繰り返し実行される。
【００５１】
まず、ステップＳ１００において、単語ベクトル取得部３４は、単語を表す埋め込みベクトルを取得する。
【００５２】
ステップＳ１０２では、文字Ｎグラムベクトル取得部３０は、処理対象となる単語に含まれる文字Ｎグラムの各々を表す埋め込みベクトルを取得する。
【００５３】
ステップＳ１０４では、文字Ｎグラム符号化部３２は、文字Ｎグラムの埋め込みベクトル系列Ｓに基づいて、文字Ｎグラムの各々を表す埋め込みベクトルに対する重みを計算する。
【００５４】
ステップＳ１０６では、単語Ｎグラムベクトル合成部４２は、単語に含まれる文字Ｎグラムの各々を表す埋め込みベクトル及び文字Ｎグラムの各々を表す埋め込みベクトルに対する重みに基づいて、文字Ｎグラムの各々を表す埋め込みベクトルを合成した合成ベクトルを生成する。
【００５５】
そして、ステップＳ１０８では、単語ベクトル合成部３６は、単語を表す埋め込みベクトルと、文字Ｎグラムベクトル合成部４２によって生成された合成ベクトルとを合成した合成単語ベクトルを生成して出力部１６により出力する。
【００５６】
以上説明したように、第１の実施の形態に係る単語符号化装置によれば、単語に含まれる文字Ｎグラムの各々を表す埋め込みベクトルに対する重みを計算し、文字Ｎグラムの各々を表す埋め込みベクトルを合成した合成ベクトルを生成することにより、単語の文字列の重要性を考慮した、単語を表す埋め込みベクトルを生成することができる。
【００５７】
また、具体的には、以下のようなものを考慮できる効果がある。
【００５８】
・複合語の構成要素のうち、所定のタスクにおいて重要な要素に焦点を当てることができる。例えば、言語モデルの獲得においては、「△△△株式会社」は会社であることを示す「株式会社」という部分が次の単語を予測するために重要である。本発明の実施の形態ではこの部分に重みを置いて、単語の埋め込みベクトルを構成することが可能となる。
・上記のような複合語に加え、接頭辞や接尾辞を考慮可能である。
【００５９】
［第２の実施の形態］
次に、本発明を、言語モデル学習装置及び解析装置に適用した第２の実施の形態について説明する。なお、第１の実施の形態と同様の構成となる部分については、同一符号を付して説明を省略する。
【００６０】
＜本発明の第２の実施の形態に係る言語モデル学習装置の構成＞
本発明の第２の実施の形態に係る言語モデル学習装置の構成について説明する。図５は、本発明の第２の実施の形態に係る言語モデル学習装置の構成を示す概略図である。
【００６１】
本発明の第２の実施の形態に係る言語モデル学習装置２１０は、入力部２１２と、演算部２１４と、出力部２１６とを備えて構成される。
【００６２】
入力部２１２は、学習用のテキストを、学習データＤとして受け付ける。
【００６３】
演算部２１４は、ＣＰＵと、ＲＡＭと、後述する言語モデル学習処理ルーチンを実行するためのプログラムを記憶したＲＯＭとを備えたコンピュータで構成され、機能的には次に示すように構成されている。演算部２１４は、パラメータ記憶部２２０と、分割部２２２、解析部２２４、及びパラメータ学習部２２６とを備えて構成される。
【００６４】
パラメータ記憶部２２０は、文字Ｎグラムベクトル取得部３０、文字Ｎグラム符号化部３２、単語ベクトル取得部３４、単語ベクトル合成部３６、系列符号化部２３２、及び系列復号化部２３４の各々の処理で用いられるパラメータを記憶している。
【００６５】
分割部２２２は、入力された学習データＤに含まれるテキストを、言語モデルへの入力と出力（教師信号）に分ける処理を行う。具体的には、テキストに含まれる単語を入力とし、次の単語を出力とすればよい。
【００６６】
解析部２２４は、予め学習されたニューラルネットワークを用いて、入力されたテキストに含まれる各単語に対して、当該単語の次の単語の予測結果を出力する。解析部２２４は、図６に示すように、単語符号化部２３０、系列符号化部２３２、及び系列復号化部２３４を備えている。
【００６７】
単語符号化部２３０は、上記第１の実施の形態で説明した単語符号化部２２と同様の構成であり、入力された単語を符号化対象として、予め学習されたニューラルネットワークを用いて、文字Ｎグラムと単語とを表す合成単語ベクトルを生成して出力する。すなわち、単語符号化部２３０は、文字Ｎグラムベクトル取得部３０、文字Ｎグラム符号化部３２、単語ベクトル取得部３４、及び単語ベクトル合成部３６を備えている。
【００６８】
系列符号化部２３２は、入力されたテキストの先頭の単語から順に、合成単語ベクトルｅt'と、ｔ−１番目の単語について計算された隠れベクトルｈt-1とに基づいて、ｔ番目の単語についての隠れベクトルｈtを計算する。
【００６９】
具体的には、以下の式に従って、ｔ番目の単語についての隠れベクトルｈtを計算する。
【００７０】
【数５】
2020030753.tif 000010
【００７１】
ただし、ｆは、ＲＮＮの抽象関数を表す。
【００７２】
系列復号化部２３４は、系列符号化部２３２によって計算された隠れベクトルｈtに基づいて、ｔ＋１番目の単語を予測する。
【００７３】
具体的には、以下の式に従って、各単語がｔ＋１番目の単語として出現する確率を表す確率ベクトルＰt+1を計算する。
【００７４】
【数６】
2020030753.tif 000011
【００７５】
ただし、
2020030753.tif 000012
は、重み行列であり、Ｄhは、隠れベクトルの次元数である。また、
2020030753.tif 000013
はバイアス項である。
【００７６】
系列符号化部２３２及び系列復号化部２３４は、ＬＳＴＭであるＲＮＮで構成される（図７のＲＮＮ（ＬＳＴＭ）参照）。
【００７７】
パラメータ学習部２２６は、学習用テキストの各単語について、解析部２２４による次の単語の予測結果と、学習用テキストにおける実際の当該単語の次の単語とに基づいて、文字Ｎグラムを表すベクトル、重みを計算する際に用いられるパラメータ、単語を表すベクトル、系列符号化部２３２、及び系列復号化部２３４の各々のパラメータを学習し、パラメータ記憶部２２０に格納する。
【００７８】
具体的には、各単語に対し、実際に次の単語として出現する単語について計算された確率を用いて表される損失関数を最適化するように、文字Ｎグラムを表す埋め込みベクトルへの変換行列Ｃ、重みを計算する際に用いられるパラメータＷｃ、単語を表す埋め込みベクトルへの変換用行列Ｅ、系列符号化部２３２の関数ｆ（）のパラメータ、及び系列復号化部２３４のパラメータＷ、ｂの勾配を求め、各パラメータを更新することにより学習する。
【００７９】
このように、文字Ｎグラムから構成した単語の埋め込みベクトルを用いたＲＮＮ言語モデルを学習することで、同時に、ニューラルネットワークのパラメータである文字Ｎグラムへの変換行列Ｃ、重みパラメータＷc、単語ベクトルへの変換用行列Ｅを学習する。
【００８０】
＜本発明の第２の実施の形態に係る解析装置の構成＞
本発明の第２の実施の形態に係る解析装置の構成について説明する。図８は、本発明の第２の実施の形態に係る解析装置の構成を示す概略図である。
【００８１】
本発明の第２の実施の形態に係る解析装置２５０は、入力部２５２と、演算部２５４と、出力部２５６とを備えて構成される。
【００８２】
入力部２５２は、解析対象となるテキストを入力として受け付ける。ここで入力されるテキストは、単語に分割済みとする。
【００８３】
演算部２５４は、ＣＰＵと、ＲＡＭと、後述する解析処理ルーチンを実行するためのプログラムを記憶したＲＯＭとを備えたコンピュータで構成され、機能的には次に示すように構成されている。演算部２５４は、パラメータ記憶部２６０と、解析部２７０、及び確率集約部２８０とを備えて構成される。
【００８４】
パラメータ記憶部２６０は、言語モデル学習装置２１０のパラメータ記憶部２２０と同じ、文字Ｎグラムベクトル取得部３０、文字Ｎグラム符号化部３２、単語ベクトル取得部３４、単語ベクトル合成部３６、系列符号化部２３２、及び系列復号化部２３４の各々の処理で用いられるパラメータを記憶している。
【００８５】
解析部２７０は、解析部２２４と同様の構成であり、単語符号化部２３０、系列符号化部２３２、及び系列復号化部２３４を備えている。すなわち、解析部２７０は、予め学習されたニューラルネットワークを用いて、解析対象となるテキストに含まれる各単語について、次の単語として出現する確率を表す確率ベクトルＰt+1を計算する。
【００８６】
確率集約部２８０は、解析対象となるテキストに含まれる各単語について、実際に次の単語として出現する単語の確率を足し合わせ、入力されたテキストの自然言語らしさを表す確率として、出力部２５６により出力する。
【００８７】
＜本発明の第２の実施の形態に係る言語モデル学習装置の作用＞
図９は、本発明の第２の実施の形態に係る言語モデル学習処理ルーチンを示すフローチャートである。
【００８８】
入力部２５２に学習データが入力されると、言語モデル学習装置２１０において、図９に示す言語モデル学習処理ルーチンが実行される。
【００８９】
まず、ステップＳ２００において、分割部２２２は、入力された学習データに含まれるテキストを、言語モデルへの入力と出力（教師信号）に分ける処理を行う。
【００９０】
ステップＳ２０２では、解析部２２４は、学習データに含まれるテキストの各単語を処理対象として、後述する図１０のステップＳ２１０〜Ｓ２１６の各処理を行うことにより、処理対象となる単語の次の単語として出現する確率を表す確率ベクトルＰt+1を計算する。
【００９１】
ステップＳ２０４では、パラメータ学習部２２６は、学習用テキストの各単語について、上記ステップＳ２０２による次の単語の予測結果と、学習用テキストにおける実際の当該単語の次の単語とに基づいて、文字Ｎグラムを表すベクトル、重みを計算する際に用いられるパラメータ、単語を表すベクトル、系列符号化部２３２、及び系列復号化部２３４の各々のパラメータを学習し、パラメータ記憶部２２０に格納する。
【００９２】
ステップＳ２０６では、学習が収束したか否かを判定する。具体的には、実際の次の単語の確率が十分高くなったと判断される場合には、学習が収束したと判定し、ステップＳ２０８へ移行し、実際の次の単語の確率が十分高くなっていないと判断される場合には、学習が収束していないと判定し、上記ステップＳ２０２へ移行する。
【００９３】
ステップＳ２０８では、パラメータ記憶部２２０に格納された文字Ｎグラムを表すベクトル、重みを計算する際に用いられるパラメータ、単語を表すベクトル、系列符号化部２３２、及び系列復号化部２３４の各々のパラメータを、出力部２１６により出力して、言語モデル学習処理ルーチンを終了する。
【００９４】
＜本発明の第２の実施の形態に係る解析装置の作用＞
図１０は、本発明の第２の実施の形態に係る解析装置２５０による解析処理ルーチンを示すフローチャートである。
【００９５】
言語モデル学習装置２１０によって学習された各種パラメータが、解析装置２５０のパラメータ記憶部２６０に格納される。そして、入力部２５２に、解析対象となるテキストが入力されると、解析装置２５０において、図１０に示す解析処理ルーチンが実行される。
【００９６】
まず、ステップＳ２１０において、解析対象となるテキスト中の単語を処理対象となる単語として選択する。
【００９７】
ステップＳ２１２では、上記ステップＳ２１０で選択された単語を符号化対象として、上記図４に示す単語符号化処理ルーチンを実行して、文字Ｎグラムと単語を表す合成単語ベクトルｅt'を生成する。
【００９８】
ステップＳ２１４では、系列符号化部２３２は、合成単語ベクトルｅt'と、一つ前の単語について計算された隠れベクトルｈt-1とに基づいて、隠れベクトルｈtを計算する。
【００９９】
ステップＳ２１６では、系列復号化部２３４は、系列符号化部２３２によって計算された隠れベクトルｈtに基づいて、次の単語として出現する確率を表す確率ベクトルＰt+1を計算する。
【０１００】
ステップＳ２１８では、解析対象となるテキスト中の全ての単語について上記ステップＳ２１０〜Ｓ２１６の処理を実行したか否かを判定する。上記ステップＳ２１０〜Ｓ２１６の処理を実行していない単語が存在する場合には、上記ステップＳ２１０へ戻り、当該単語を選択する。一方、解析対象となるテキスト中の全ての単語について上記ステップＳ２１０〜Ｓ２１６の処理を実行した場合には、ステップＳ２２０へ移行する。
【０１０１】
ステップＳ２２０では、解析対象となるテキストに含まれる各単語について、実際に次の単語として出現する単語の確率を足し合わせ、入力されたテキストの自然言語らしさを表す確率として、出力部２５６により出力し、解析処理ルーチンを終了する。
【０１０２】
以上説明したように、本実施形態に係る言語モデル学習装置によれば、単語に含まれる文字Ｎグラムの各々を表す埋め込みベクトルに対する重みを計算し、文字Ｎグラムの各々を表す埋め込みベクトルを合成した合成ベクトルを生成し、更に、単語を表す埋め込みベクトルと合成した合成単語ベクトルを生成することにより、テキストを精度よく解析するための言語モデルを学習することができる。
【０１０３】
また、本実施形態に係る解析装置によれば、単語に含まれる文字Ｎグラムの各々を表す埋め込みベクトルに対する重みを計算し、文字Ｎグラムの各々を表す埋め込みベクトルを合成した合成ベクトルを生成し、更に、単語を表す埋め込みベクトルと合成した合成単語ベクトルを生成して、次の単語を予測することにより、テキストを精度よく解析することができる。
【０１０４】
＜実験例＞
上記第２の実施の形態で説明した手法の有効性を確認するために実験を行った。実験結果について以下に説明する。
【０１０５】
＜実験方法＞
単語単位の言語モデルについて実験を行う。具体的には訓練データで、各種パラメータを学習し、テストデータに自然言語らしいと正しく確率を付与できるか検証する。評価指標であるPerplexityは、ネイピア数について、各単語の負の対数尤度でべき乗したものであり、低い程よい。
【０１０６】
＜データセット＞
標準的なベンチマークデータセットとして、単語レベルの言語モデリングのためのPenn Treebank（PTB）を使用した。文字Ｎグラムについては、Ｎ＝３を用いた。
【０１０７】
＜比較手法＞
比較例として、非特許文献１の手法（Character-Word LSTM）を用い、ベースライン手法として非特許文献２（AWD-LSTM）の手法を用いる。
【０１０８】
［非特許文献２］Stephen Merity, Nitish Shirish Keskar, and Richard Socher. 2018b. Regularizing and Optimizing LSTM Language Models. In Proceedings of the 6th International Conference on Learning Representations (ICLR 2018).
【０１０９】
＜各手法の概要＞
非特許文献２（AWD-LSTM）の手法は、単語単位の埋め込みベクトル用いた3層のＬＳＴＭによる言語モデルである。非特許文献１の手法（Character-Word LSTM）は、単語を構成する文字の埋め込みベクトルを用いた言語モデルである。
【０１１０】
上記第２の実施の形態で説明した提案手法は、ベースライン手法に、上記図１の文字Ｎグラムベクトル取得部３０、文字Ｎグラム符号化部３２、単語ベクトル合成部３６を追加したものである。
【０１１１】
＜結論＞
各手法の実験結果を表１に示す。上記第２の実施の形態で説明した提案手法（Proposed method: AWD-LSTM + char3-MS-vecを参照）では、文字Ｎグラムの重みづけを行うことで、ベースラインから性能が向上し、さらに、非特許文献１の手法（Character-Word LSTM）より高い性能を達成した。
【０１１２】
【表１】
2020030753.tif 000014
【０１１３】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１１４】
例えば、上記の実施の形態では、文字Ｎグラムについて合成した埋め込みベクトルと単語の埋め込みベクトルとを合成する場合を例に説明したが、これに限定されるものではなく、単語の埋め込みベクトルと合成せずに、文字Ｎグラムについて合成した埋め込みベクトルを、当該単語を表すベクトルとして出力してもよい。この場合には、単語ベクトル合成部３６を省略して、文字Ｎグラムについて合成した埋め込みベクトルｃtを、当該単語を表すベクトルｅt'として出力すればよい。
【０１１５】
また、上記第２の実施の形態では、ＲＮＮ言語モデルのパラメータを学習し、解析部が、与えられたテキストの各単語に対し、次の単語を予測することにより、自然言語らしさを計算する場合を例に説明したが、これに限定されるものではなく、解析部が、予め学習されたニューラルネットワークを用いて、入力されたテキストに対して、所定の目的に応じた出力テキストの予測結果を出力するように構成すればよい。例えば、所定の目的に応じた出力テキストの予測結果として、入力されたテキストに対して、翻訳したテキストや要約したテキストを出力するようにしてもよい。また、この場合には、解析部が、ニューラルネットワークを用いたエンコーダ・デコーダを含み、エンコーダやデコーダの入力となる埋め込みベクトルを、本発明の実施の形態で説明した手法を用いて生成したものとしてもよい。
【０１１６】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【０１１７】
１０   単語符号化装置
１２、２１２、２５２ 入力部
１４、２１４、２５４ 演算部
１６、２１６、２５６ 出力部
２０   パラメータ記憶部
２２   単語符号化部
３０   文字Ｎグラムベクトル取得部
３２   文字Ｎグラム符号化部
３４   単語ベクトル取得部
３６   単語ベクトル合成部
４０   重み計算部
４２   文字Ｎグラムベクトル合成部
２１０ 言語モデル学習装置
２２０、２６０       パラメータ記憶部
２２２ 分割部
２２４、２７０       解析部
２２６ パラメータ学習部
２３０ 単語符号化部
２３２ 系列符号化部
２３４ 系列復号化部
２５０ 解析装置
２８０ 確率集約部
【図１】
2020030753.tif 000015
【図２】
2020030753.tif 000016
【図３】
2020030753.tif 000017
【図４】
2020030753.tif 000018
【図５】
2020030753.tif 000019
【図６】
2020030753.tif 000020
【図７】
2020030753.tif 000021
【図８】
2020030753.tif 000022
【図９】
2020030753.tif 000023
【図１０】
2020030753.tif 000024