(57)【要約】      （修正有）【課題】混合生起確率の正確性を向上させる混合係数パラメータ学習装置を提供する。【解決手段】混合係数パラメータ学習装置３０は、ニューラルネットワーク言語モデル演算装置１０に隠れ層ベクトル及び生起確率を要求する第１生起確率要求手段３１２と、他言語モデル演算装置２０に生起確率を要求する第２生起確率入力手段３１３と、隠れ層ベクトルから混合係数を算出する第１混合係数算出手段３１４と、確率的勾配降下法により、写像ベクトルを更新する写像ベクトル更新手段３１５と、更新率を減少させる更新率減少手段３１７と、終了条件を満たすまで、写像ベクトル更新手段３１５に写像ベクトルを更新させる終了条件判定手段３１６とを備える。【選択図】図２
2017016384.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワーク確率モデルと前記ニューラルネットワーク確率モデル以外の他の確率モデルとのそれぞれで求めた前要素系列に対する次要素の生起確率を混合するときの混合係数の算出に必要なパラメータを学習する混合係数パラメータ学習装置であって、
前記ニューラルネットワーク確率モデルの隠れ層ベクトルと、前記ニューラルネットワーク確率モデルで求めた生起確率とが入力される第１生起確率入力手段と、
前記他の確率モデルで求めた生起確率が入力される第２生起確率入力手段と、
予め設定された写像ベクトルにより前記隠れ層ベクトルを実数値のスカラに線形写像し、前記実数値のスカラをシグモイド関数で非線形変換することで、前記混合係数を算出する第１混合係数算出手段と、
前記ニューラルネットワーク確率モデルと前記他の確率モデルとのそれぞれで求めた生起確率、前記混合係数、及び、予め設定された更新率を用いた確率的勾配降下法により、前記パラメータとしての前記写像ベクトルを更新する写像ベクトル更新手段と、
予め設定された更新率減少規則に従って前記更新率を減少させる更新率減少手段と、
予め設定された終了条件を満たすか否かを判定し、前記終了条件を満たすまで、減少させた前記更新率で前記写像ベクトル更新手段に前記写像ベクトルを更新させる終了条件判定手段と、
を備えることを特徴とする混合係数パラメータ学習装置。
【請求項２】
前記写像ベクトル更新手段は、前記写像ベクトルを更新するときに正則化を行うことを特徴とする請求項１に記載の混合係数パラメータ学習装置。
【請求項３】
ニューラルネットワーク確率モデルと前記ニューラルネットワーク確率モデル以外の他の確率モデルとのそれぞれで求めた前要素系列に対する次要素の生起確率を混合した混合生起確率を算出する混合生起確率算出装置であって、
前記ニューラルネットワークの隠れ層ベクトルと、前記ニューラルネットワーク確率モデルで求めた生起確率とが入力される第３生起確率入力手段と、
前記他の確率モデルで求めた生起確率が入力される第４生起確率入力手段と、
請求項１に記載の混合係数パラメータ学習装置が学習した写像ベクトルで前記隠れ層ベクトルを実数値のスカラに線形写像し、前記実数値のスカラをシグモイド関数で非線形変換することで、混合係数を算出する第２混合係数算出手段と、
前記混合係数を用いて、前記ニューラルネットワーク確率モデルと前記他の確率モデルとで求めた前記次要素の生起確率を混合することで、前記混合生起確率を算出する混合生起確率算出手段と、
を備えることを特徴とする混合生起確率算出装置。
【請求項４】
コンピュータを、請求項１又は請求項２に記載の混合係数パラメータ学習装置として機能させるための混合係数パラメータ学習プログラム。
【請求項５】
コンピュータを、請求項３に記載の混合生起確率算出装置として機能させるための混合生起確率算出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、混合係数の算出に必要なパラメータを学習する混合係数パラメータ学習装置、ニューラルネットワーク確率モデルと他の確率モデルとの混合生起確率を算出する混合生起確率算出装置、及び、これらのプログラムに関する。
【背景技術】
【０００２】
統計的言語モデル（以後、「言語モデル」）とは、ある言語又はドメインにおいて、単語系列ｗ１ｗ２…ｗｎが生起する確率ｐ（ｗ１ｗ２…ｗｎ）を計算する手段、及び、その手段によって計算するのに必要な各種統計量の一覧として定義される。言語モデルによって言語の生起を確率モデル化することは、統計的自然言語処理の最も基本的な技術の一つであり、音声認識、機械翻訳をはじめとする各種自然言語処理技術に用いられている。
【０００３】
なお、言語モデルとは、ある言語、又は、その言語の特定分野における表現（単語系列）生起の確率モデルのことであり、一般的には予め与えられた当該言語又はその言語の当該分野のコーパスから学習する。
また、コーパスとは、ある言語又はその言語の特定分野で観測された単語系列の実例である。
また、ｗ１，ｗ２，ｗｎは、単語を表す。
【０００４】
単語系列の生起確率ｐ（ｗ１ｗ２…ｗｎ）は、一般的には、系列の各単語がそれ以前の単語系を前文脈として生起する確率の積、すなわち、ｐ（ｗ１）×ｐ（ｗ２｜ｗ１）×ｐ（ｗ３｜ｗ１ｗ２）×…×ｐ（ｗｎ｜ｗ１ｗ２…ｗｎ−１）としてモデル化される。つまり、言語モデルは、前文脈が与えられた条件下での次単語生起の予測モデルであると言える。
【０００５】
言語モデルの最も一般的な実現手法は、ｎ−ｇｒａｍ言語モデルである。このｎ−ｇｒａｍ言語モデルは、前記条件となる前文脈を直近のｎ−１単語に制限し（但し、ｎは１以上の整数）、学習コーパスから、ｎ−１単語の列である前文脈の異なり毎に次単語生起頻度を収集した結果に基づき、各前文脈条件下の次単語生起確率を推定するものである。
【０００６】
ｎ−ｇｒａｍ言語モデルでは、精度よく次単語の生起確率を推定するために長い前文脈を参照する（大きな値のｎを用いる）必要がある。また、ｎ−ｇｒａｍ言語モデルでは、各前文脈に対して十分な実例を集める必要があるが、長い前文脈を用いるほど前文脈の異なりが増加するため、正確性を向上させるために非常に大きな学習コーパスを用意する必要がある。
【０００７】
近年、このｎ−ｇｒａｍ言語モデルに対して、ニューラルネットワークを用いた言語モデル実現手法が提案されている。この手法は、ニューラルネットワークを用いて、各単語を表すものとして、固定次元で各次元が実数値である単語表現ベクトルへの写像を学習し、前文脈として単語列の各単語に対応する単語表現ベクトルの組み合わせを用いるものである。
【０００８】
例えば、非特許文献１に記載のＮＮＬＭ（Neural Network Language Model）は、図５のようなニューラルネットワークを構築する。以後、言語モデルについて、有限個｜Ｖ｜種類の単語のみを扱うものとし、各単語は１〜｜Ｖ｜の数値として表すことにする。このとき、｜Ｖ｜種類の単語の中には、必ず文頭を表す特殊な単語を含むものとする。ここで、各単語ｗに対応する予め定めた固定次元数ｍの単語表現ベクトルをＣ（ｗ）とする。また、単語系列ｗ１ｗ２…ｗｔの生起に関して、単語ｗｔのｎ−１個の前文脈を表すｎ−１個の単語表現ベクトルを連結したｎ×ｍ次元の入力ベクトルｘ（ｔ）＝［Ｃ（ｗｔ−ｎ＋１），…，Ｃ（ｗｔ−２），Ｃ（ｗｔ−１）]から予め定めた固有次元数ｈのベクトルへの線形写像をＨｘ（ｔ）とする。
なお、前文脈の長さがｎ−１未満である（すなわちｔ＜ｎである）場合には、単語ｗ１の前にｎ−ｔ個の文頭を表す単語を補うことで入力ベクトルｘ（ｔ）を作成するものとする。
【０００９】
また、線形写像Ｈｘ（ｔ）の各次元を非線形関数ｆ（例えば、双曲線正接関数ｔａｎｈ）で変換した隠れ層ベクトルｚ（ｔ）から｜Ｖ｜次元ベクトルｙ（ｔ）への線形写像をＵｚ（ｔ）とする。
また、ｙ（ｔ）の各次元を式（１）に示す関数で変換した｜Ｖ｜次元ベクトルを出力ベクトルｐ（ｔ）とする。この場合、次単語がｗｔである確率を以下の式（１）〜式（３）のように定義する（但し、ｙｉはｙのｉ次元の値）。
また、入力ベクトルｘ（ｔ）の（ｔ）は、前文脈ｗ１ｗ２…ｗｔ−１に後続する次単語ｗｔの生起確率に関わる入力ベクトルｘを意味する（他のベクトルも同様）。
また、図５の‘○’はベクトルの要素を表す。
【００１０】
【数１】
2017016384.tif 000003
【００１１】
【数２】
2017016384.tif 000004
【００１２】
【数３】
2017016384.tif 000005
【００１３】
ｎ，ｍ，ｈを予め設定し、学習コーパスの各単語ｗｔに対して、前文脈ｗｔ−ｎ＋１，…，ｗｔ−２，ｗｔ−１をニューラルネットワークに入力して次単語生起の確率分布を出力(順方向伝搬)し、出力ベクトルと正解ベクトルとの交差エントロピー誤差をニューラルネットワークに逆方向伝搬させながら、以下の式（４）〜式（６）のように単語表現ベクトルＣ、入力層から隠れ層への重みＨ、隠れ層から出力層への重みＵを確率的勾配降下法により更新する（但し、εは更新率）。これを学習コーパス全体で何回か繰り返すことによって学習を実現する。
なお、正解ベクトルとは、単語ｗｔの生起確率を１とし、それ以外の単語の生起確率を０としたベクトルである。
【００１４】
【数４】
2017016384.tif 000006
【００１５】
【数５】
2017016384.tif 000007
【００１６】
【数６】
2017016384.tif 000008
【００１７】
単語表現ベクトルＣの学習の結果、類似した単語が近い単語表現ベクトルに写像され、Ｈの学習の結果、類似した単語が近い隠れ層ベクトルに写像されるので、小規模な学習コーパスから学習した場合でも高い正確性を得ることができる。
【００１８】
また、ＮＮＬＭとは異なる手法として、非特許文献２に記載のＲＮＮＬＭ（Recurrent Neural Network Language Model）が提案されている。前記したように、ＮＮＬＭでは、単語ｗｔに対して予め定めたｎ−１個の単語ｗｔ−ｎ＋１，…，ｗｔ−２，ｗｔ−１から前文脈を表す隠れ層ベクトルｚ（ｔ）を計算する。一方、このＲＮＮＬＭは、図６のように、隠れ層ベクトルｚ（ｔ）を、１つ前の単語ｗｔ−１及びこの単語ｗｔ−１に対する前文脈を表す隠れ層ベクトルｚ（ｔ−１）から計算する。これにより、ＲＮＮＬＭは、明示的な前文脈長ｎを与えることなく、長い前文脈を反映した次単語生起の予測を行うことを可能にする。
【００１９】
一般的には、これらニューラルネットワーク言語モデルは、他の言語モデル（例えば、ｎ−ｇｒａｍ言語モデル）と組み合わせて用いられる。具体的には、ニューラルネットワーク言語モデルによる生起確率をｐＮ、他の言語モデルによる生起確率をｐＯ、混合比率をλとする。この場合、以下の式（７）のように、λ：１−λの比率で両言語モデルの生起確率ｐＮ，ｐＯを混合したものを混合生起確率ｐとして算出する。
【００２０】
【数７】
2017016384.tif 000009
【００２１】
なお、式（７）では、λが混合係数を表す。通常、混合係数λは、学習済みの両言語モデルを用意した上で、別途用意したテストコーパスに対して最も正確性が高くなる値を決定し、決定した値を固定的に用いる。
【００２２】
このように生起確率を混合するには、以下のような理由がある。
１）ニューラルネットワーク言語モデルでは学習コーパスに表れなかった単語（未知語）の生起確率を推定する一般的手法がないが、ｎ−ｇｒａｍ言語モデルでは未知語に適切な生起確率を割り当てることができる。
２）ニューラルネットワーク言語モデルは学習のための計算量がｎ−ｇｒａｍ言語モデルと比較して非常に大きいため、ニューラルネットワーク言語モデルで小規模のドメインに特化した学習コーパスを用いて学習し、より広範囲の大規模な学習コーパスから学習したｎ−ｇｒａｍ言語モデルと組み合わせることが現実的である。
【先行技術文献】
【非特許文献】
【００２３】
【非特許文献１】A Neural Probabilistic Language Model,Yoshua Bengio et.al,Journal of Machine Learning Research 3,(2003),1137-1155
【非特許文献２】Static Language Model based on Neural Network,Tomas Mikolov
【発明の概要】
【発明が解決しようとする課題】
【００２４】
しかし、ニューラルネットワーク言語モデルでは、前文脈に関係なく固定的な混合係数を用いているため、混合生起確率の正確性が低くなるという問題がある。例えば、前文脈「私は」の次に表れる単語を正確に予測するためには巨大な学習コーパスで学習する必要がある。一方、前文脈「私は山にいきまし」の次に表れる単語は「た」「て」くらいしかあり得ず、小規模な学習コーパスで学習しても正確に予測可能である。すなわち、ニューラルネットワーク言語モデルでは、前文脈に応じて異なる混合係数を用いることで、混合生起確率の正確性を向上させることができる。
【００２５】
本願発明は、前記した課題に鑑みて、混合生起確率の正確性を向上させる混合係数パラメータ学習装置、混合生起確率算出装置、及び、これらのプログラムを提供することを課題とする。
【課題を解決するための手段】
【００２６】
前記した課題に鑑みて、本願発明に係る混合係数パラメータ学習装置は、ニューラルネットワーク確率モデルと前記ニューラルネットワーク確率モデル以外の他の確率モデルとのそれぞれで求めた前要素系列に対する次要素の生起確率を混合するときの混合係数の算出に必要なパラメータを学習する混合係数パラメータ学習装置であって、第１生起確率入力手段と、第２生起確率入力手段と、第１混合係数算出手段と、写像ベクトル更新手段と、更新率減少手段と、終了条件判定手段とを備える構成とした。
【００２７】
かかる構成によれば、混合係数パラメータ学習装置は、第１生起確率入力手段によって、前記ニューラルネットワーク確率モデルの隠れ層ベクトルと、前記ニューラルネットワーク確率モデルで求めた生起確率とが入力される。
【００２８】
すなわち、学習済みのニューラルネットワーク確率モデルに前要素系列を入力すると、ニューラルネットワーク確率モデルの隠れ層ベクトルとして、汎化された前要素の表現が得られる。従って、学習済みのニューラルネットワーク確率モデルの隠れ層ベクトルから混合係数への写像ベクトルを学習すれば、前要素系列に応じた混合係数を求めることが可能となる。
【００２９】
混合係数パラメータ学習装置は、第２生起確率入力手段によって、前記他の確率モデルで求めた生起確率が入力される。
混合係数パラメータ学習装置は、第１混合係数算出手段によって、予め設定された写像ベクトルにより前記隠れ層ベクトルを実数値のスカラに線形写像し、前記実数値のスカラをシグモイド関数で非線形変換することで、前記混合係数を算出する。
【００３０】
混合係数パラメータ学習装置は、写像ベクトル更新手段によって、前記ニューラルネットワーク確率モデルと前記他の確率モデルとのそれぞれで求めた生起確率、前記混合係数、及び、予め設定された更新率を用いた確率的勾配降下法により、前記パラメータとしての前記写像ベクトルを更新する。
【００３１】
混合係数パラメータ学習装置は、更新率減少手段によって、予め設定された更新率減少規則に従って前記更新率を減少させる。
混合係数パラメータ学習装置は、終了条件判定手段によって、予め設定された終了条件を満たすか否かを判定し、前記終了条件を満たすまで、減少させた前記更新率で前記写像ベクトル更新手段に前記写像ベクトルを更新させる。例えば、この終了条件は、更新率を減少させても、生起確率が変化しないという条件である。
【００３２】
また、前記した課題に鑑みて、本願発明に係る混合生起確率算出装置は、ニューラルネットワーク確率モデルと前記ニューラルネットワーク確率モデル以外の他の確率モデルとのそれぞれで求めた前要素系列に対する次要素の生起確率を混合した混合生起確率を算出する混合生起確率算出装置であって、第３生起確率入力手段と、第４生起確率入力手段と、第２混合係数算出手段と、混合生起確率算出手段とを備える構成とした。
【００３３】
かかる構成によれば、混合生起確率算出装置は、第３生起確率入力手段によって、前記ニューラルネットワークの隠れ層ベクトルと、前記ニューラルネットワーク確率モデルで求めた生起確率とが入力される。
混合生起確率算出装置は、第４生起確率入力手段によって、前記他の確率モデルで求めた生起確率が入力される。
【００３４】
混合生起確率算出装置は、第２混合係数算出手段によって、本願発明に係る混合係数パラメータ学習装置が学習した写像ベクトルで前記隠れ層ベクトルを実数値のスカラに線形写像し、前記実数値のスカラをシグモイド関数で非線形変換することで、前要素系列に応じた混合係数を算出する。
【００３５】
混合生起確率算出装置は、混合生起確率算出手段によって、前要素系列に応じた前記混合係数を用いて、前記ニューラルネットワーク確率モデルと前記他の確率モデルとで求めた前記次要素の生起確率を混合することで、前記混合生起確率を算出する。
【発明の効果】
【００３６】
本願発明は、以下のような優れた効果を奏する。
本願発明によれば、学習済みのニューラルネットワーク確率モデルの隠れ層ベクトルから混合係数への写像ベクトルを学習する。これにより、前要素系列に応じた混合係数が求められるので、混合生起確率の正確性を向上させることができる。
【図面の簡単な説明】
【００３７】
【図１】本願発明における写像ベクトルの学習手順を説明する説明図である。
【図２】本願発明の実施形態に係る混合生起確率算出システムの構成を示すブロック図である。
【図３】図２の混合係数パラメータ算出装置の動作を示すフローチャートである。
【図４】図２の混合生起確率算出装置の動作を示すフローチャートである。
【図５】従来のＮＮＬＭの処理概要を説明する説明図である。
【図６】従来のＲＮＮＬＭの処理概要を説明する説明図である。
【発明を実施するための形態】
【００３８】
以下、本願発明の実施形態に係る混合生起確率算出システム１について説明する。
最初に、図１を参照し、写像ベクトルの学習手順と、混合生起確率の算出手順とを説明する。その後、混合生起確率算出システム１の構成について説明する。
【００３９】
ここで、前文脈（前要素系列）を表現したｈ次元の隠れ層ベクトルを持ち、この隠れ層ベクトルからの写像として次単語の生起確率を演算するニューラルネットワーク言語モデル演算装置１０があることとする。このニューラルネットワーク言語モデル演算装置１０は、生起確率の計算に必要な各統計量が学習コーパス等により学習済みであることとする。
【００４０】
また、ｎ−ｇｒａｍ言語モデル等の他の言語モデルで次単語の生起確率を推定する他言語モデル演算装置２０（図２）があることとする。この他言語モデル演算装置２０では、生起確率の計算に必要な各統計量が学習コーパス等により学習済みであることとする。
なお、他言語モデル演算装置２０の各統計量を学習するために用いる学習コーパス等は、前記のニューラルネットワーク言語モデル演算装置１０の各統計量を学習するために用いた学習コーパスと同一である必要はない。
【００４１】
＜写像ベクトルの学習手順＞
ニューラルネットワーク言語モデル演算装置１０に前文脈を入力すると、隠れ層ベクトルとして、汎化された前文脈の表現が得られる。そこで、本願発明は、図１のように、ニューラルネットワーク言語モデル演算装置１０に、隠れ層ベクトルｚから混合係数λへの写像を行う処理を追加し、この写像ベクトルＳを学習することとする。
【００４２】
具体的には、ニューラルネットワーク言語モデルによる処理に以下の式（８）及び式（９）の処理を加えることで、前文脈…ｗｔ−１が与えられたときの次単語ｗｔの生起確率の算出に必要な混合係数λ（ｔ）を計算するようにする。
【００４３】
【数８】
2017016384.tif 000010
【００４４】
【数９】
2017016384.tif 000011
【００４５】
なお、式（８）は、実数値のスカラｓ（ｔ）から混合係数λ（ｔ）へのシグモイド関数による非線形変換を表している。
また、式（９）は、隠れ層ベクトルｚ（ｔ）から実数値のスカラｓ（ｔ）への線形写像Ｓｚ（t）を表している。また、式（９）では、ｂがバイアス値を表している。
【００４６】
写像ベクトルＳ及びバイアス値ｂの学習は、何らかの学習コーパス中の各単語ｗｔについて、生起確率ｐＮ（ｗｔ｜…ｗｔ−１）と生起確率ｐＯ（ｗｔ｜…ｗｔ−１）とを式（８）で定義される混合係数λ（ｔ）を用いて、以下の式（１０）に従って混合した混合生起確率ｐ（ｗｔ｜…ｗｔ−１）が最大となるように、以下の手順１〜手順３で行う。
【００４７】
【数１０】
2017016384.tif 000012
【００４８】
なお、学習コーパスは、ニューラルネットワーク言語モデルや別の言語モデルの学習に用いたコーパスと同じもの、又は、そのコーパスと異なるものでもよい。
また、生起確率ｐＮ（ｗｔ｜…ｗｔ−１）は、前文脈…ｗｔ−１をニューラルネットワーク言語モデルに与えて得られる次単語ｗｔの生起確率である。
また、生起確率ｐＯ（ｗｔ｜…ｗｔ−１）は、前文脈…ｗｔ−１を他の言語モデルに与えて得られる次単語ｗｔの生起確率である。
【００４９】
手順１．更新率εを予め設定する。
手順２．学習コーパス中の各単語ｗｔに対して以下の（ａ）〜（ｃ）の処理を実行する。
（ａ）ニューラルネットワーク言語モデル演算装置１０に適宜（ＮＮＭＬのように前文脈が固定されている場合、その長さで区切った）前文脈…ｗｔ−１を入力して順方向伝搬を行うことで、隠れ層ベクトルｚ（ｔ）及び次単語ｗｔの生起確率ｐＮ（ｗｔ｜…ｗｔ−１）を求める。同様に、他の言語モデルの生起確率ｐＯ（ｗｔ｜…ｗｔ−１）を求める。
【００５０】
（ｂ）隠れ層から順方向伝搬を行うことで、混合係数λ（ｔ）を求める。すなわち、式（８）及び式（９）を用いて、混合係数λ（ｔ）を求める。
【００５１】
（ｃ）確率的勾配降下法により写像ベクトルＳを更新する。すなわち、ｈ次元の写像ベクトルＳの各次元Ｓｉを、以下の式（１１）及び式（１２）のように混合係数λ（ｔ）が反映された確率的勾配降下法により更新する。
【００５２】
【数１１】
2017016384.tif 000013
【００５３】
【数１２】
2017016384.tif 000014
【００５４】
さらに、式（９）のバイアス値ｂも学習の対象となる。このため、以下の式（１３）及び式（１４）のようにバイアス値ｂも更新する。
【００５５】
【数１３】
2017016384.tif 000015
【００５６】
【数１４】
2017016384.tif 000016
【００５７】
手順２（ｃ）において、写像ベクトルＳを更新する際、ニューラルネットワーク言語モデルによる過学習を防止するため、一例として式（１５）のように、正則化を行ってもよい。さらに、バイアス値ｂについても、写像ベクトルＳと同様、正則化を行ってもよい。
なお、式（１５）では、βが正則化係数を表す。例えば、正則化係数βは、更新率εより小さな値とする。
【００５８】
【数１５】
2017016384.tif 000017
【００５９】
手順３．所定の終了条件に合致するまで、手順２に戻って処理を繰り返す。このとき、所定の更新率減少規則に従って、更新率εを減少させる。
なお、終了条件及び更新率減少規則の詳細は、後記する。
【００６０】
＜混合生起確率の算出手順＞
次単語ｗｔの生起確率の計算は、前記した学習結果を用いて、以下の手順４〜手順６で行う。
【００６１】
手順４．ニューラルネットワーク言語モデル演算装置に適宜（ＮＮＭＬのように前文脈が固定されている場合、その長さで区切った）前文脈…ｗｔ−１を入力して順方向伝搬を行うことで、隠れ層ベクトルｚ（ｔ）及び次単語ｗｔの生起確率ｐＮ（ｗｔ｜…ｗｔ−１）を求める。同様に、他の言語モデルの生起確率ｐＯ（ｗｔ｜…ｗｔ−１）を求める。
なお、この手順４は、写像ベクトルＳの学習手順２（ａ）と同じ処理である。
【００６２】
手順５．隠れ層から順方向伝搬を行うことで、混合係数λ（ｔ）を求める。すなわち、学習した写像ベクトルＳ及びバイアス値ｂを式（９）に代入して、混合係数λ（ｔ）を求める。なお、この手順５は、写像ベクトルＳの学習手順２（ｂ）と同じ処理である。
手順６．式（１６）を用いて、混合生起確率ｐ（ｗｔ｜…ｗｔ−１）を求める。
【００６３】
【数１６】
2017016384.tif 000018
【００６４】
図２を参照し、本願発明の実施形態に係る混合生起確率算出システム１の構成について説明する。
【００６５】
混合生起確率算出システム１は、ニューラルネットワーク言語モデルで求めた生起確率ｐＮと、他の言語モデルで求めた生起確率ｐＯとを混合した混合生起確率Ｐを算出するものである。図２のように、混合生起確率算出システム１は、ニューラルネットワーク言語モデル演算装置１０と、他言語モデル演算装置２０と、混合係数パラメータ学習装置３０と、混合生起確率算出装置４０とを備える。
【００６６】
［ニューラルネットワーク言語モデル演算装置の構成］
ニューラルネットワーク言語モデル演算装置１０は、ニューラルネットワーク言語モデルにより、生起確率ｐＮを演算するものである。例えば、ニューラルネットワーク言語モデル演算装置１０は、隠れ層を用いるニューラルネットワーク（例えば、ＮＮＬＭ、ＲＮＮＬＭ）を用いることができる。
【００６７】
具体的には、ニューラルネットワーク言語モデル演算装置１０は、前文脈ｗ１，ｗ２，…，ｗｔ−１が入力されると、当該前文脈に後続する単語ｗｔの生起確率ｐＮ（ｗｔ｜…ｗｔ−１）を演算する。また、ニューラルネットワーク言語モデル演算装置１０は、ニューラルネットワークの出力層ベクトルｐ（ｔ）を演算する際、ニューラルネットワークの入力層ベクトルｘ（ｔ）から算出した隠れ層ベクトルｚ（ｔ）を記憶し、記憶した隠れ層ベクトルｚ（ｔ）を混合係数パラメータ学習装置３０又は混合生起確率算出装置４０に出力する。
【００６８】
ＮＮＬＭの場合、ニューラルネットワーク言語モデル演算装置１０は、参照可能な前文脈の長さが、前文脈の末尾から所定の単語数ｎ−１までに限定される（ｎは１以上の整数）。
例えば、前文脈がｗ１，ｗ２，…，ｗｔ−１の場合、参照可能な前文脈がｗｔ−ｎ＋１，ｗｔ-ｎ＋１，…，ｗｔ−１となる。
ニューラルネットワーク言語モデル演算装置１０は、入力された前文脈の各単語に対応した単語表現ベクトルＣ（ｗ）を記憶し、長さｎ−１の前文脈ｗｔ−ｎ＋１，ｗｔ-ｎ＋１，…，ｗｔ−１が入力されると、その各単語に応じた単語表現ベクトルＣ（ｗ）を連結してニューラルネットワークの入力層ベクトルｘ（ｔ）に設定する。そして、ニューラルネットワーク言語モデル演算装置１０は、順方向伝搬を行い、ニューラルネットワークの隠れ層ベクトルｚ（ｔ）及び出力層ベクトルｐ（ｔ）を算出する。
出力層ベクトルｐ（ｔ）は、単語の異なり数の次元を持つベクトルであり、ベクトルの各次元の値がその次元に対応した単語の生起確率を表す。なお、隠れ層ベクトルｚ（ｔ）を「前文脈ｗ１，ｗ２，…，ｗｔ−１の隠れ層表現」と呼ぶ。
【００６９】
ＲＮＮＬＭの場合、ニューラルネットワーク言語モデル演算装置１０は、内部にこれまで順に入力された単語系列ｗ１，ｗ２，…を前文脈とする隠れ層ベクトルｚを記憶している。初期状態において、隠れ層ベクトルｚは、ニューラルネットワーク言語モデル演算装置１０に固有の初期値に設定される。
ニューラルネットワーク言語モデル演算装置１０は、ｉ番目の単語ｗｉを入力すると、当該単語ｗｉに対応した次元のみが１で、他のすべての次元が０であるベクトルを入力層ｘ（ｉ）に設定する。そして、ニューラルネットワーク言語モデル演算装置１０は、入力層ｘ（ｉ）及び記憶している前入力の隠れ層ベクトルｚ（ｉ）から順方向伝搬を行い、ニューラルネットワークの隠れ層ベクトルｚ（ｉ＋１）及び出力層ベクトルｐ（ｉ＋１）を算出する。単語ｗ１，ｗ２，…，ｗｔ−１までの入力及び順方向伝搬が終了したとき、隠れ層ベクトルｚ（ｔ）は、前記したＮＮＬＭを用いた場合の「前文脈ｗ１，ｗ２，…，ｗｔ−１の隠れ層表現」と同様のものになる。すなわち、ニューラルネットワーク言語モデル演算装置１０は、隠れ層ベクトルｚ（ｔ）を用いた順方向伝搬により出力層ベクトルｐ（ｔ）を算出し、次単語の生起確率ｐＮを求める。
【００７０】
なお、ニューラルネットワーク言語モデル演算装置１０は、学習済みであり（学習データにより順方向伝搬のための写像行列が適切な値に設定済みであり）、その学習結果が記憶されていることとする。
また、ニューラルネットワーク言語モデル演算装置１０は、一般的な構成のため、これ以上の説明を省略する。
【００７１】
［他言語モデル演算装置の構成］
他言語モデル演算装置２０は、ニューラルネットワーク言語モデル以外の他の言語モデル（例えば、ｎ−ｇｒａｍ言語モデル）により、生起確率ｐＯを演算するものである。具体的には、他言語モデル演算装置２０は、前文脈ｗ１，ｗ２，…，ｗｔ−１が入力されると、当該前文脈に後続する任意の単語ｗｔの生起確率ｐＯ（ｗｔ｜…ｗｔ−１）を演算して出力する。
【００７２】
なお、他言語モデル演算装置２０は、確率値の計算に必要な各種パラメータが予め設定されていることとする。
また、他言語モデル演算装置２０は、一般的な構成のため、これ以上の説明を省略する。
【００７３】
［混合係数パラメータ学習装置の構成］
混合係数パラメータ学習装置３０は、ニューラルネットワーク言語モデルと他の言語モデルとのそれぞれで求めた生起確率ｐＮ，ｐＯを混合するときの混合係数λの算出に必要なパラメータを学習するものである。
【００７４】
図２のように、混合係数パラメータ学習装置３０は、混合係数パラメータ記憶手段３０１と、学習パラメータ記憶手段３０２と、学習データ記憶手段３０３と、混合係数記憶手段３０４と、初期化手段３１１と、第１生起確率要求手段（第１生起確率入力手段）３１２と、第２生起確率要求手段（第２生起確率入力手段）３１３と、第１混合係数算出手段３１４と、写像ベクトル更新手段３１５と、終了条件判定手段３１６と、更新率減少手段３１７とを備える。
【００７５】
混合係数パラメータ記憶手段３０１は、混合係数λの算出に必要な混合係数パラメータを記憶するメモリ、ハードディスク等の記憶手段である。具体的には、混合係数パラメータ記憶手段３０１は、写像ベクトルＳ、バイアス値ｂ等の混合係数パラメータを記憶する。この写像ベクトルＳは、ニューラルネットワークの隠れ層ベクトルｚの次元数ｈと同一次元数である。
【００７６】
学習パラメータ記憶手段３０２は、写像ベクトルＳの学習に必要なパラメータを記憶するメモリ、ハードディスク等の記憶手段である。具体的には、学習パラメータ記憶手段３０２は、更新率ε、正則化係数β等の学習パラメータを記憶する。
【００７７】
学習データ記憶手段３０３は、写像ベクトルＳの学習に必要な学習データである単語列を記憶するメモリ、ハードディスク等の記憶手段である。この学習データは、ニューラルネットワーク言語モデル演算装置１０及び他言語モデル演算装置２０で学習に用いたものと同一でなくともよい。
混合係数記憶手段３０４は、混合係数λを記憶するメモリ、ハードディスク等の記憶手段である。
【００７８】
初期化手段３１１は、混合係数パラメータ及び学習パラメータの初期化を行うものである。具体的には、初期化手段３１１は、混合係数パラメータ記憶手段３０１の写像ベクトルＳの各次元の値、および、バイアス値ｂを乱数で初期化する。また、初期化手段３１１は、学習パラメータ記憶手段３０２の更新率ε及び正則化係数βを予め設定した値で初期化する。
【００７９】
第１生起確率要求手段３１２は、学習データ記憶手段３０３の前文脈をニューラルネットワーク言語モデル演算装置１０に出力することで、隠れ層ベクトルｚ及び生起確率ｐＮを要求するものである。この要求に応じて、第１生起確率要求手段３１２は、ニューラルネットワーク言語モデル演算装置１０から、隠れ層ベクトルｚ及び生起確率ｐＮが入力される。そして、第１生起確率要求手段３１２は、入力された隠れ層ベクトルｚ及び生起確率ｐＮを第１混合係数算出手段３１４及び写像ベクトル更新手段３１５に出力する。
【００８０】
第２生起確率要求手段３１３は、学習データ記憶手段３０３の前文脈を他言語モデル演算装置２０に出力することで、生起確率ｐＯを要求するものである。ここで、第２生起確率要求手段３１３は、第１生起確率要求手段３１２と同一の前文脈を他言語モデル演算装置２０に出力する。この要求に応じて、第２生起確率要求手段３１３は、他言語モデル演算装置２０から、生起確率ｐＯが入力される。そして、第２生起確率要求手段３１３は、入力された生起確率ｐＯを写像ベクトル更新手段３１５に出力する。
【００８１】
第１混合係数算出手段３１４は、式（９）を用いて、混合係数パラメータ記憶手段３０１の写像ベクトルＳにより、第１生起確率要求手段３１２から入力された隠れ層ベクトルｚを実数値のスカラｓに線形写像するものである。また、第１混合係数算出手段３１４は、式（８）を用いて、実数値のスカラｓをシグモイド関数で非線形変換することで、混合係数λを算出する。そして、第１混合係数算出手段３１４は、算出した混合係数λを混合係数記憶手段３０４に記憶する。
【００８２】
写像ベクトル更新手段３１５は、第１生起確率要求手段３１２からの生起確率ｐＮ、第２生起確率要求手段３１３からの生起確率ｐＯ、混合係数記憶手段３０４の混合係数λ、及び、学習パラメータ記憶手段３０２の更新率εを用いた確率的勾配降下法により、混合係数記憶手段３０４の写像ベクトルＳを更新するものである。つまり、写像ベクトル更新手段３１５は、式（１１）及び式（１２）で表される確率的勾配降下法を用いて、写像ベクトルＳを更新する。
【００８３】
終了条件判定手段３１６は、予め設定された終了条件を満たすか否かを判定し、この終了条件を満たすまで、後記する更新率減少手段３１７が減少させた更新率εで写像ベクトル更新手段３１５に写像ベクトルＳを更新させるものである。例えば、終了条件判定手段３１６は、予め設定した回数だけ更新率εを減少させて混合生起確率ｐの値が変化しなかった場合、終了条件を満たすと判定する。
【００８４】
ここで、終了条件を満たしていない場合、終了条件判定手段３１６は、更新率減少手段３１７に更新率εの減少を指令する。その後、終了条件判定手段３１６は、第１生起確率要求手段３１２、第２生起確率要求手段３１３、第１混合係数算出手段３１４、及び、写像ベクトル更新手段３１５に処理の再実行を指令する。
一方、終了条件を満たしている場合、終了条件判定手段３１６は、処理を終了する。
なお、図２では、終了条件判定手段３１６からの指令信号を破線で図示した。
【００８５】
更新率減少手段３１７は、予め設定された更新率減少規則に従って、必要に応じて学習パラメータ記憶手段３０２の更新率εを減少させるものである。例えば、更新率減少規則としては、更新率εの値から予め設定した値を減算するという規則があげられる。
【００８６】
［混合生起確率算出装置の構成］
混合生起確率算出装置４０は、ニューラルネットワーク言語モデルと他の確率モデルとのそれぞれで求めた生起確率ｐＮ，ｐＯを混合した混合生起確率ｐを算出するものである。図２のように、混合生起確率算出装置４０は、対象データ記憶手段４０１と、混合生起確率記憶手段４０２と、第３生起確率要求手段（第３生起確率入力手段）４１１と、第４生起確率要求手段（第４生起確率入力手段）４１２と、第２混合係数算出手段４１３と、混合生起確率算出手段４１４とを備える。
【００８７】
対象データ記憶手段４０１は、混合生起確率ｐの算出対象となる前文脈及び次単語を表す単語列を記憶するメモリ、ハードディスク等の記憶手段である。この対象データ記憶手段４０１の単語列は、学習データ記憶手段３０３の単語列と異なるものである。
混合生起確率記憶手段４０２は、混合生起確率ｐを記憶するメモリ、ハードディスク等の記憶手段である。
【００８８】
第３生起確率要求手段４１１は、対象データ記憶手段４０１の前文脈をニューラルネットワーク言語モデル演算装置１０に出力することで、隠れ層ベクトルｚ及び生起確率ｐＮを要求するものである。この要求に応じて、第３生起確率要求手段４１１は、ニューラルネットワーク言語モデル演算装置１０から、隠れ層ベクトルｚ及び生起確率ｐＮが入力される。そして、第３生起確率要求手段４１１は、入力された隠れ層ベクトルｚ及び生起確率ｐＮを第２混合係数算出手段４１３及び混合生起確率算出手段４１４に出力する。
【００８９】
第４生起確率要求手段４１２は、対象データ記憶手段４０１の前文脈を他言語モデル演算装置２０に出力することで、生起確率ｐＯを要求するものである。ここで、第４生起確率要求手段４１２は、第３生起確率要求手段４１１と同一の前文脈を他言語モデル演算装置２０に出力する。この要求に応じて、第４生起確率要求手段４１２は、他言語モデル演算装置２０から、生起確率ｐＯが入力される。そして、第４生起確率要求手段４１２は、入力された生起確率ｐＯを混合生起確率算出手段４１４に出力する。
【００９０】
第２混合係数算出手段４１３は、式（９）を用いて、混合係数パラメータ記憶手段３０１の写像ベクトルＳにより、第３生起確率要求手段４１１から入力された隠れ層ベクトルｚを実数値のスカラｓに線形写像するものである。また、第２混合係数算出手段４１３は、式（８）を用いて、実数値のスカラｓをシグモイド関数で非線形変換することで、混合係数λを算出する。そして、第２混合係数算出手段４１３は、算出した混合係数を混合係数記憶手段３０４に記憶する。
【００９１】
混合生起確率算出手段４１４は、混合係数記憶手段３０４の混合係数λを用いて、第３生起確率要求手段４１１から入力された生起確率ｐＮと、第４生起確率要求手段４１２から入力された生起確率ｐＯとを混合することで、混合生起確率ｐを算出するものである。そして、混合生起確率算出手段４１４は、算出した混合生起確率ｐを混合生起確率記憶手段４０２に記憶する。
【００９２】
［混合係数パラメータ学習装置の動作］
図３を参照し、混合係数パラメータ学習装置３０の動作について説明する（適宜図２参照）。
【００９３】
混合係数パラメータ学習装置３０は、初期化手段３１１によって、写像ベクトルＳ、バイアス値ｂ等の混合係数パラメータを初期化する（ステップＳ１）。
混合係数パラメータ学習装置３０は、初期化手段３１１によって、更新率ε、正則化係数β等の学習パラメータを初期化する（ステップＳ２）。
混合係数パラメータ学習装置３０は、カウンタｉの値を１に初期化する（ステップＳ３）。
【００９４】
混合係数パラメータ学習装置３０は、第１生起確率要求手段３１２によって、学習データ記憶手段３０３の単語列ｗ１，ｗ２，…，ｗＮのうち、先頭からｉ−１個の単語列ｗ１，ｗ２，…，ｗｉ−１を前文脈としてニューラルネットワーク言語モデル演算装置１０に出力する。
混合係数パラメータ学習装置３０は、第１生起確率要求手段３１２によって、ニューラルネットワーク言語モデル演算装置１０から、隠れ層ベクトルｚ（ｉ）及び次単語ｗｉの生起確率ｐＮ（ｗｉ｜ｗ１ｗ２…ｗｉ−１）が入力される（ステップＳ４）。
【００９５】
混合係数パラメータ学習装置３０は、第２生起確率要求手段３１３によって、ステップＳ４と同一の前文脈ｗ１，ｗ２，…，ｗｉ−１を他言語モデル演算装置２０に出力する。
混合係数パラメータ学習装置３０は、第２生起確率要求手段３１３によって、他言語モデル演算装置２０から、次単語ｗｉの生起確率ｐＯ（ｗｉ｜ｗ１ｗ２…ｗｉ−１）が入力される（ステップＳ５）。
【００９６】
混合係数パラメータ学習装置３０は、第１混合係数算出手段３１４によって、ステップＳ４で入力された隠れ層のベクトルｚ（ｉ）及び写像ベクトルＳを用いて、式（８）及び式（９）に従って混合係数λ（ｉ)を算出する（ステップＳ６）
【００９７】
混合係数パラメータ学習装置３０は、写像ベクトル更新手段３１５によって、ステップＳ４で入力された生起確率ｐＮ（ｗｉ｜ｗ１ｗ２…ｗｉ−１）と、ステップＳ５で入力された生起確率ｐＯ（ｗｉ｜ｗ１ｗ２…ｗｉ−１）と、ステップＳ６で算出した混合係数λ（ｉ）と、更新率εとを用いて、式（１１）及び式（１２）で写像ベクトルＳを更新する（ステップＳ７）。
【００９８】
混合係数パラメータ学習装置３０は、カウンタｉをインクリメントする（ステップＳ８）。
混合係数パラメータ学習装置３０は、カウンタｉが単語最大数Ｎ以下であるか否かを判定する(ステップＳ９)。
カウンタｉが単語最大数Ｎ以下の場合（ステップＳ９でＹｅｓ）、混合係数パラメータ学習装置３０は、ステップＳ４の処理に戻る。
【００９９】
カウンタｉが単語最大数Ｎ以下でない場合（ステップＳ９でＮｏ）、混合係数パラメータ学習装置３０は、終了条件判定手段３１６によって、終了条件を満たすか否かを判定する（ステップＳ１０）。
終了条件を満たす場合（ステップＳ１０でＹｅｓ）、混合係数パラメータ学習装置３０は、処理を終了する。
【０１００】
終了条件を満たさない場合（ステップＳ１０でＮｏ）、混合係数パラメータ学習装置３０は、更新率減少手段３１７によって、更新率減少規則に従って、必要に応じて更新率εを減少させ（ステップＳ１１）、ステップＳ３の処理に戻る。
【０１０１】
［混合生起確率算出装置の動作］
図４を参照し、混合生起確率算出装置４０の動作について説明する（適宜図１参照）。
【０１０２】
混合生起確率算出装置４０は、第３生起確率要求手段４１１によって、対象データ記憶手段４０１の単語列ｗ１，ｗ２，…，ｗｔ−１を前文脈としてニューラルネットワーク言語モデル演算装置１０に出力する。
混合生起確率算出装置４０は、第３生起確率要求手段４１１によって、ニューラルネットワーク言語モデル演算装置１０から、隠れ層ベクトルｚ及び次単語ｗｔの生起確率ｐＮ（ｗｔ｜ｗ１ｗ２…ｗｔ−１）が入力される（ステップＳ２１）。
【０１０３】
混合生起確率算出装置４０は、第４生起確率要求手段４１２によって、ステップＳ２１と同一の前文脈ｗ１，ｗ２，…，ｗｔ−１を他言語モデル演算装置２０に出力する。
混合生起確率算出装置４０は、第４生起確率要求手段４１２によって、他言語モデル演算装置２０から、次単語ｗｉの生起確率ｐＯ（ｗｔ｜ｗ１ｗ２…ｗｔ−１）が入力される（ステップＳ２２）。
【０１０４】
混合生起確率算出装置４０は、第２混合係数算出手段４１３によって、ステップＳ２１で入力された隠れ層のベクトルｚ及び写像ベクトルＳを用いて、式（８）及び式（９）に従って混合係数λ（ｔ)を算出する（ステップＳ２３）
【０１０５】
混合生起確率算出装置４０は、混合生起確率算出手段４１４によって、ステップ２１で入力された生起確率ｐＮ（ｗｔ｜ｗ１ｗ２…ｗｔ−１）とステップ２２で入力された生起確率ｐＯ（ｗｔ｜ｗ１，ｗ２，…，ｗｔ−１）との混合生起確率ｐ（ｗｔ｜ｗ１ｗ２…ｗｔ−１）を、式（１６）で算出する（ステップＳ２４）。
【０１０６】
［作用・効果］
以上のように、混合生起確率算出システム１は、ニューラルネットワーク言語モデルにより写像ベクトルＳを学習し、学習した写像ベクトルＳにより前文脈に応じた混合係数を求めている。これにより、混合生起確率算出システム１は、ｎ−ｇｒａｍ言語モデル等の他の言語モデルと混合して混合生起確率ｐを算出する際、従来よりも混合生起確率ｐの正確性を向上させることができる。
【０１０７】
（変形例）
以上、本願発明の各実施形態を詳述してきたが、本願発明は前記した実施形態に限られるものではなく、本願発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【０１０８】
前記した実施形態では、混合係数パラメータ学習装置が混合係数パラメータ記憶手段及び混合係数記憶手段を備えることとして説明したが、本願発明は、これに限定されない。つまり、混合生起確率算出装置が混合係数パラメータ記憶手段及び混合係数記憶手段を備えてもよい。
【０１０９】
前記した実施形態では、本願発明を言語モデルに適用する例を説明したが、本願発明が適用可能な確率モデルはこれに限定されず、何らかの記号系列に後続して生起する記号の生起確率モデル一般に適用することができる。
【０１１０】
前記した実施形態では、正則化を行うこととして説明したが、本願発明は、正則化を行わなくともよい。
前記した実施形態では、バイアス値ｂを用いることとして説明したが、本願発明は、バイアス値ｂを用いなくともよい。この場合、前記した式（９）の代わりに以下の式（１７）を用いることになる。
【０１１１】
【数１７】
2017016384.tif 000019
【０１１２】
前記した実施形態では、混合係数パラメータ学習装置を独立したハードウェアとして説明したが、本願発明は、これに限定されない。例えば、混合係数パラメータ学習装置は、コンピュータが備えるＣＰＵ、メモリ、ハードディスク等のハードウェア資源を協調動作させる混合係数パラメータ学習プログラムで実現することもできる。このプログラムは、通信回線を介して配布してもよく、ＣＤ−ＲＯＭやフラッシュメモリ等の記録媒体に書き込んで配布してもよい。
また、混合生起確率算出装置は、混合係数パラメータ学習装置と同様、混合生起確率算出プログラムで実現することもできる。
【符号の説明】
【０１１３】
１  混合生起確率算出システム
１０  ニューラルネットワーク言語モデル演算装置
２０  他言語モデル演算装置
３０  混合係数パラメータ学習装置
３０１  混合係数パラメータ記憶手段
３０２  学習パラメータ記憶手段
３０３  学習データ記憶手段
３０４  混合係数記憶手段
３１１  初期化手段
３１２  第１生起確率要求手段（第１生起確率入力手段）
３１３  第２生起確率要求手段（第２生起確率入力手段）
３１４  第１混合係数算出手段
３１５  写像ベクトル更新手段
３１６  終了条件判定手段
３１７  更新率減少手段
４０  混合生起確率算出装置
４０１  対象データ記憶手段
４０２  混合生起確率記憶手段
４１１  第３生起確率要求手段（第３生起確率入力手段）
４１２  第４生起確率要求手段（第４生起確率入力手段）
４１３  第２混合係数算出手段
４１４  混合生起確率算出手段
【図１】
2017016384.tif 000020
【図２】
2017016384.tif 000021
【図３】
2017016384.tif 000022
【図４】
2017016384.tif 000023
【図５】
2017016384.tif 000024
【図６】
2017016384.tif 000025