(57)【要約】【課題】入力に対する尤もらしい上位Ｎ個の変換結果を、任意に設定した複数の素性に基づきスコアリングやリランキングする際に、当該複数の素性の中に疎な素性が含まれていても精度の高いスコアリングやリランキングを行うことを可能とする。【解決手段】複数の学習用データを用い、任意に設定した複数の素性それぞれに対する重みを学習用データごとに別々のタスクとしてマルチタスク学習法により学習し、その重みの値を指標として、当該複数の素性のうち各学習用データに共通して作用している素性を抽出し、この抽出した素性に絞り込んで素性重みを学習してスコアリングやリランキングを実行する。【選択図】図１
2011243147.tif 000002
【特許請求の範囲】
【請求項１】
入力に対する尤もらしい上位Ｎ個の変換結果に、複数の所定の素性に基づきスコアを付与するために用いる前記所定の素性ごとに設定する重みを、複数の学習用データを用いて学習することにより生成する素性重み学習装置であって、
前記学習用データは、学習用の入力に対する尤もらしい上位Ｎ個の変換結果であり、
任意に設定した複数の素性それぞれに対する重みを学習用データごとに別々のタスクとしてマルチタスク学習法により学習し、その重みの値を指標として、当該複数の素性のうち各学習用データに共通して作用している素性を前記所定の素性として抽出し、
その抽出した素性に対応する重みを学習する
ことを特徴とする素性重み学習装置。
【請求項２】
入力に対する尤もらしい上位Ｎ個の変換結果に、複数の所定の素性に基づきスコアを付与するＮ-bestスコアリング装置であって、
各候補にスコアを付与するために用いる前記所定の素性ごとに設定する重みを、請求項１に記載の素性重み学習装置により生成する
ことを特徴とするＮ-bestスコアリング装置。
【請求項３】
入力に対する尤もらしい上位Ｎ個の変換結果を、各候補に付されたスコアにより再順位付けするＮ-bestリランキング装置であって、
前記スコアを、請求項２に記載のＮ-bestスコアリング装置により生成する
ことを特徴とするＮ-bestリランキング装置。
【請求項４】
入力に対する尤もらしい上位Ｎ個の変換結果に、複数の所定の素性に基づきスコアを付与するために用いる前記所定の素性ごとに設定する重みを、複数の学習用データを用いて学習することにより生成する素性重み学習方法であって、
前記学習用データは、学習用の入力に対する尤もらしい上位Ｎ個の変換結果であり、
任意に設定した複数の素性それぞれに対する重みを学習用データごとに別々のタスクとしてマルチタスク学習法により学習し、その重みの値を指標として、当該複数の素性のうち各学習用データに共通して作用している素性を前記所定の素性として抽出し、
その抽出した素性に対する重みを学習する
ことを特徴とする素性重み学習方法。
【請求項５】
入力に対する尤もらしい上位Ｎ個の変換結果に、複数の所定の素性に基づきスコアを付与するＮ-bestスコアリング方法であって、
各候補にスコアを付与するために用いる前記所定の素性ごとに設定する重みを、請求項４に記載の素性重み学習方法により生成する
ことを特徴とするＮ-bestスコアリング方法。
【請求項６】
入力に対する尤もらしい上位Ｎ個の変換結果を、各候補に付されたスコアにより再順位付けするＮ-bestリランキング方法であって、
前記スコアを、請求項５に記載のＮ-bestスコアリング方法により生成する
ことを特徴とするＮ-bestリランキング方法。
【請求項７】
請求項１乃至３のいずれかに記載の装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械翻訳や音声認識の手法により求めた上位Ｎ個の翻訳候補単語列や音声認識単語列候補を所定の素性に基づいて再順位付けする際に用いる素性重み学習装置、Ｎ-bestスコアリング装置、Ｎ-bestリランキング装置、それらの方法およびプログラムに関する。
【背景技術】
【０００２】
機械翻訳や音声認識の手法により求めた、所定の入力単位(典型的には文)に対する最も尤もらしい上位Ｎ個の翻訳単語列候補や音声認識単語列候補 (ここではＮ-bestと呼ぶ)を、所定の素性（特徴量）に基づいて再順位付け（リランキング）し、よりよい候補を選び直す処理が広く行われている(例えば、非特許文献１)。それぞれの候補の各素性に対する該当性は数値（素性値）で表され、候補ごとに各素性値をベクトル化したものを当該候補の素性ベクトルと呼ぶ。素性や素性値の規定の仕方、素性の個数（素性ベクトルの次元数Ｄ）については設計者に裁量がある。素性としては、例えば非特許文献２で使われているものなどが挙げられる。
【０００３】
このように上位Ｎ個の候補を、所定の素性（特徴量）に基づき再順位付けして候補を選び直す処理をＮ-bestリランキングと呼ぶ。また、リランキングする装置やプログラムをリランカと呼ぶ。例えば、入力文ｆを機械翻訳する場合、リランカには次のような定式化が広く用いられている。
【０００４】
【数１】
2011243147.tif 000003
【０００５】
ここで、Ｎ(ｆ)は入力文ｆのＮ個の翻訳単語列候補ｅk（ｋ＝１、２、・・・、Ｎ）の集合、ｈv(ｅk,ｆ)は翻訳単語列候補ｅkのＤ次元の素性ベクトル、ｗvはＤ次元の素性重みベクトルである。つまりリランカは、まず、入力文ｆのＮ個の翻訳単語列候補ｅkについて、それぞれ素性ベクトルｈv(ｅk,ｆ)と素性重みベクトルｗvとの内積（スコア）を求め、このスコアが最大となる翻訳単語列候補ｅcを選ぶものとして定式化される。なお、式(1)において、Ｎ(ｆ)を入力発話ｆのＮ個の音声認識単語列候補ｅkの集合に置き換えると音声認識のリランキングの例となる。
【０００６】
以上説明したリランカを具体化したＮ-bestリランキング装置１００の構成例を図４に示す。Ｎ-bestリランキング装置１００は、素性ベクトル生成部１１０とスコアリング部１２０と最適候補抽出部１３０とを備える。なお、必要に応じ、Ｎ-bestスコアリング装置１０１を素性ベクトル生成部１１０とスコアリング部１２０とから構成してもよい。
【０００７】
素性ベクトル生成部１１０は、入力文（入力発話）ｆとそのＮ個の翻訳単語列候補ｅkとが入力され、各ｅkについて、予め任意に設定されたＤ個の素性と照合して得られた各素性値からＤ次元の素性ベクトルｈv(ｅk,ｆ)を生成する。スコアリング部１２０は、前記予め任意に設定されたＤ個の素性に対応するＤ次元の素性重みベクトルｗvと素性ベクトルｈv(ｅk,ｆ)との内積ｗvT・ｈv(ｅk,ｆ)を求め、これを翻訳単語列候補ｅkのスコアとしてｅkに付して出力する。最適候補抽出部１３０は、スコアが最も大きな翻訳単語列候補ｅkをｅcとして選ぶ。
【０００８】
スコアリング部１２０で用いるＤ次元の素性重みベクトルｗvは、例えば、非特許文献３で示される学習方法によって次式を最小とするｗvとして生成することができる。
【０００９】
【数２】
2011243147.tif 000004
【００１０】
ここで、Ｉは学習に用いる入力文(発話)ｆiの個数（ｉ＝１、２、・・・、Ｉ）である。Ｌ(・)はロス関数である。Ｈiは、入力文(入力発話)ｆiのＮ個の翻訳(音声認識)単語列候補ｅikに対応するＮ個のＤ次元の素性ベクトルｈv(ｅik,ｆi)からなるＤ×Ｎ次元の行列である。ｙviはＮ個のｅikの各翻訳（音声認識）の良さ（正解との類似度）を実数値で表したＮ次元のベクトルであり、翻訳（音声認識）の良さを表すパラメータとしては、例えば１−ＢＬＥＵ値や候補としての順位（１〜Ｎ位）などを用いることができる。また、Ω(ｗv)は正則化項であり、λは正則化項の強さを調整する係数である。
【００１１】
各ｆiに対して正解及びＮ個の候補ｅik（ｋ＝１、２、・・・、Ｎ）が定められている学習用データを用意し、Ｎ個の候補ｅikに対し評価値ベクトルｙviを定義しておくことで、リランカは学習用データから素性ベクトル行列Ｈiを生成し、式(2)を用いて最適な素性重みベクトルｗvを学習することができる。
【００１２】
素性重みベクトルｗvの学習に用いる素性重み学習装置５０の構成例を図５に示す。素性重み学習装置５０は素性ベクトル生成部１１と学習部５５とから構成される。素性ベクトル生成部１１は、Ｉ個の学習用の入力文（入力発話）ｆiとそれらそれぞれのＮ個の翻訳単語列候補ｅikとが入力され、入力文（入力発話）ｆiと各ｅikについて、Ｄ個の素性と照合して得られた各素性値からＤ次元の素性ベクトルｈv(ｅik,ｆ)を生成し、生成されたＮ個のｈv(ｅik,ｆ)から素性ベクトル行列Ｈiを構成する。なお、ここで用いるＤ個の素性（＝Ｎ-bestリランキング装置１００でいう「予め任意に設定されたＤ個の素性」）は、学習用データから抽出してもよいし、その他の方法により設定してもよい。学習部５５は、素性ベクトル行列Ｈiと予め用意した評価値ベクトルｙviとを用い、式(2)により素性重みベクトルｗvを学習して出力する。
【先行技術文献】
【非特許文献】
【００１３】
【非特許文献１】Taro Watanabe, Jun Suzuki, Hajime Tsukada, and Hideki Isozaki, "NTT Statistical Machine Translation for IWSLT 2006", Proc. of the International Workshop on Spoken Language Translation, 2006, p.95-102
【非特許文献２】Taro Watanabe, Jun Suzuki, Hajime Tsukada, and Hideki Isozaki, "Online Large-Margin training for Statistical Machine Translation", Proc. of the 2007 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning, 2007, p.764-773
【非特許文献３】T. Joachims, "Training Linear SVMs in Linear Time", Proc. of the ACM Conference on Knowledge Discovery and Data Mining, 2006, p.217-226
【発明の概要】
【発明が解決しようとする課題】
【００１４】
従来の方法は、リランキングするＮ-bestは均質であり、各学習用データで同じような素性が現れるということを前提としている。しかし、素性が疎である場合は、各学習用データで共通して表れる素性はほとんど無い。例えば、仏英翻訳において
【００１５】
【数３】
2011243147.tif 000005
【００１６】
という素性を考えると、この素性は入力文ｆiがMonsieurを含まない限り、決して１にはならない。このような疎な素性は、すべての学習データに万遍なく現れるわけではなく、非常に偏ったごく一部の学習データにしか現れない。そのため、均質な（素性が万遍なく現れる）学習データを前提とする学習法では、素性重みベクトルｗvを適切に学習することができないという問題があった。
【００１７】
本発明の目的は、任意に設定した複数の素性の中に疎な素性が含まれていても精度の高いスコアリングやリランキングを行うことを可能とする素性重み学習装置、当該素性重み学習装置により得られた素性を用いるＮ-bestスコアリング装置、当該Ｎ-bestスコアリング装置により得られたスコアを用いたＮ-bestリランキング装置、それらの方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１８】
本発明の素性重み学習装置は、入力に対する尤もらしい上位Ｎ個の変換結果に複数の所定の素性に基づきそれぞれスコアを付与するために用いる前記所定の素性ごとに設定する重みを、複数の学習用データから学習することにより生成する素性重み学習装置であって、前記学習用データは、学習用の入力に対する尤もらしい上位Ｎ個の変換結果であり、任意に設定した複数の素性それぞれに対する重みを学習用データごとに別々のタスクとしてマルチタスク学習法により学習し、その重みの値を指標として、当該複数の素性のうち各学習用データに共通して作用している素性を前記所定の素性として抽出し、その抽出した素性に対応する重みを学習する。
【００１９】
また、本発明の素性重み学習方法は、入力に対する尤もらしい上位Ｎ個の変換結果に複数の所定の素性に基づきそれぞれスコアを付与するために用いる前記所定の素性ごとに設定する重みを、複数の学習用データから学習することにより生成する素性重み学習方法であって、前記学習用データは、学習用の入力に対する尤もらしい上位Ｎ個の変換結果であり、任意に設定した複数の素性それぞれに対する重みを学習用データごとに別々のタスクとしてマルチタスク学習法により学習し、その重みの値を指標として、当該複数の素性のうち各学習用データに共通して作用している素性を前記所定の素性として抽出し、その抽出した素性に対応する重みを学習する。
【発明の効果】
【００２０】
本発明の素性重み学習装置、Ｎ-bestスコアリング装置、Ｎ-bestリランキング装置、それらの方法およびプログラムは、複数の学習用データを用い、任意に設定した複数の素性それぞれに対する重みを学習用データごとにマルチタスクで学習する。そして、その重みの値を指標として、当該複数の素性のうち各学習用データに共通して作用している素性を抽出し、この抽出した素性に絞り込んで、素性重みを生成しスコアリングやリランキングを実行する。このように素性を絞り込むことで、予め定められた複数の素性の中に疎な素性が含まれていてもスコアリングやリランキングに有効な素性だけが自動的に抽出されるため、精度の高いスコアリングやリランキングを行うことができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の素性重み学習装置１０の構成例を示すブロック図。
【図２】本発明の素性重み学習装置１０の処理フロー例を示す図。
【図３】本発明の手法と従来手法との効果を比較するシミュレーション結果を示す図。
【図４】Ｎ-bestリランキング装置１００及びＮ-bestスコアリング装置１０１の構成例を示すブロック図。
【図５】従来の素性重み学習装置５０の構成例を示すブロック図。
【発明を実施するための形態】
【００２２】
図１は、本発明の素性重み学習装置１０の構成例をブロック図である。また、図２はその処理フロー例である。素性重み学習装置１０は、素性ベクトル生成部１１とマルチタスク学習部１２と共通素性抽出部１３と素性ベクトル選択部１４と学習部１５とを備える。素性ベクトル生成部１１と学習部１５は、従来の素性重み学習装置５０は同じものである。
【００２３】
従来の素性重み学習装置５０は、Ｉ個の入力ｆiの各Ｎ-best（ｅik）のリランキングを１つのタスクとして考えて１つの素性重みベクトルを学習する。これに対し、本発明の素性重み学習装置１０は、まず各Ｎ-bestのリランキングを別々のタスクとして考えてＩ個の素性重みベクトルを学習し、各素性重みベクトルに共通して作用している素性を抜き出して、新たな１つの素性重みベクトルを学習する。マルチタスク学習部１２と共通素性抽出部１３と素性ベクトル選択部１４はこの従来と異なる処理を行うブロックである。
【００２４】
以下、各構成について説明する。なお、ここでは入力が翻訳対象文（又は音声認識対象発話）、変換結果が翻訳候補（又は音声認識候補）である場合を例にとって説明するが、入力に対して複数の変換結果が得られるものであれば同様に適用可能である。
【００２５】
素性ベクトル生成部１１は、学習用の入力文（入力発話）ｆiに対応するＮ個のＤ次元の素性ベクトルｈv(ｅik,ｆ)からなる素性ベクトル行列Ｈiを生成する（Ｓ１）。
【００２６】
マルチタスク学習部１２は、素性ベクトル生成部１１で生成された素性ベクトル行列Ｈiと予め用意した評価値ベクトルｙviとを用い、学習用の各入力文（入力発話）ｆiに対応するＤ次元の素性重みベクトルｗvi（各素性重みｗi,j）を生成する（Ｓ２）。Ｉ個の素性重みベクトルｗviは、例えば参考文献１に示されるマルチタスク学習方法で次式を最小とするｗviとして生成することができる。
【００２７】
【数４】
2011243147.tif 000006
【００２８】
ここで、ｉ行目がｗvi（＝[ｗi,1,・・・,ｗi,j,・・・,ｗi,D]）であるＩ×Ｄ次元の行列Ｗ（各要素がｗi,j）を観念する。このとき、ｗv1,ｗv2,・・・,ｗvIを求めることとＷを求めることとは等価である。また、Ω(ｗv1,ｗv2,・・・,ｗvI)として、例えばＷのL1/L2正則化を用いる。L1/L2正則化では、まずＷの列に対してL2正則化を行い、生成されるＤ次元ベクトルに対してL1正則化を行う。
【００２９】
[参考文献１] Rie Ando and Tong Zhang, "A Framework for learning Predictive Structures from Multiple Tasks and Unlabeled Data", Journal of Machine Learning Research 6, 2005, p.1817-1853
共通素性抽出部１３は、マルチタスク学習部１２で生成されたＩ個のＤ次元の素性重みベクトルｗviから構成されるＩ×Ｄ次元の行列Ｗが入力され、すべてのｉ行についてｗi,jが０でないｊ列（すなわち、すべてのｆiについて共通して作用する素性）を抽出し、その抽出した列番号（又はそれに対応する素性）の集合ｈcを出力する（Ｓ３）。
【００３０】
素性ベクトル選択部１４は、素性ベクトル生成部１１で生成されたＤ×Ｎ次元の素性ベクトル行列Ｈiについて、集合ｈcに現れる素性だけに行を縮退し、縮退した素性ベクトル行列Ｈicを出力する（Ｓ４）。共通素性抽出部１３で列番号の集合を出力した場合には、Ｈiにおいて対応する行番号の行だけを残し、その他の行を削除するように縮退すればよい。
【００３１】
そして、学習部１５が素性ベクトル選択部１４で得られた素性ベクトル行列Ｈicと予め用意した評価値ベクトルｙviとを用い、式(2)により素性重みベクトルｗvを学習して出力する（Ｓ５）。
【００３２】
なお、素性ベクトル生成部１１からマルチタスク学習部１２及び素性ベクトル選択部１４に提供される素性ベクトル行列Ｈiの次元数（素性数）Ｄが膨大な場合、後続の処理が困難になる場合がある。そこで、Ｈiをマルチタスク学習部１２及び素性ベクトル選択部１４に入力するのに先立ち、図１に点線で示すように次元圧縮部１６を設け、Ｈiの次元圧縮（素性数Ｄを減らす）を行ってもよい。次元圧縮には、例えば参考文献２などに示される方法を利用することができる。
【００３３】
[参考文献２] Kilian Weinberger, Anirban Dasgupta, John Langford Alex Smola, and Josh Attenberg, "Feature Hashing for Large Scale Multitask Learning", Proc. of 26th International Conference on Machine Learning, 2009, p.1113-1120
以上のように本発明の素性重み学習装置１０は、複数の学習用データを用い、任意に設定した複数の素性それぞれに対する重みを学習用データごとにマルチタスクで学習する。そして、その重みの値を指標として、当該複数の素性のうち各学習用データに共通して作用している素性を抽出し、この抽出した素性に絞り込んで素性重みを生成する。このように素性を絞り込んで素性重みを生成し、スコアリングやリランキングを実行することで、予め定められた複数の素性の中に疎な素性が含まれていてもスコアリングやリランキングに有効な素性だけが自動的に抽出されるため、精度の高いスコアリングやリランキングを行うことができる。
【００３４】
上記の各種処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【００３５】
また、上記の各装置をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そのプログラムは、例えば、ハードディスク装置に格納されており、実行時には必要なプログラムやデータがＲＡＭ(Random Access Memory)に読み込まれる。その読み込まれたプログラムがＣＰＵにより実行される。このようにして、コンピュータ上で各処理内容が実現される。なお、処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【００３６】
〔効果の確認〕
統計翻訳手法の一つである階層的な句に基づく手法によって得られたＮ-best翻訳候補（Ｎ＝１００）をリランキングする実験を行った。素性重みベクトルｗvの学習には式(2)を用い、リランカの素性としては非特許文献２で使われているものを用いた。本実験は、医療分野の文章の日本語から英語への翻訳に関するものである。リランキングに用いるＮ-bestデータは、公知の統計的機械翻訳システムにより17,000文の日英対訳データで学習した翻訳モデルを800,000文で学習した言語モデルを用いて生成した。翻訳モデルを学習したデータに含まれない1,500文のうち、500文で素性重みベクトルｗvを学習し、残りの1,000文を２つに分けて、クロスバリデーションを行った。すなわち、一方の500文で学習に用いるλなどのハイパー・パラメータを調整し、もう一方の500文でテストを行うということを交互に行った。翻訳精度はＢＬＥＵで測定した（この値が大きいほど良い翻訳であることを意味する）。
【００３７】
実験結果を図３に示す。(a)リランキングされていない場合、(b)従来の素性重み学習装置５０を用いてリランキングした場合、(c)素性を次元圧縮をして従来の素性重み学習装置５０を用いてリランキングした場合、(d)学習用データに現れる素性を数え上げ１０より多く現れる素性を用いてリランキングした場合、(e)本発明の素性重み学習装置１０を用いてリランキングした場合、(f) 本発明の素性重み学習装置１０で得られた素性と(d)で得られた素性とを併用してリランキングした場合、の６通りを比較した。この実験結果から、本発明の素性重み学習装置１０を用いてリランキングした(e),(f)がＢＬＵＥ値の１位、２位を占め、従来の素性重み学習装置５０等を用いた場合と比較して、優れた翻訳精度が得られることがわかる（bootstrap sampling test, 1,000サンプル、p<0.05）。
【図１】
2011243147.tif 000007
【図２】
2011243147.tif 000008
【図３】
2011243147.tif 000009
【図４】
2011243147.tif 000010
【図５】
2011243147.tif 000011