説明

素性重み学習装置、N−bestスコアリング装置、N−bestリランキング装置、それらの方法およびプログラム

【課題】入力に対する尤もらしい上位N個の変換結果を、任意に設定した複数の素性に基づきスコアリングやリランキングする際に、当該複数の素性の中に疎な素性が含まれていても精度の高いスコアリングやリランキングを行うことを可能とする。
【解決手段】複数の学習用データを用い、任意に設定した複数の素性それぞれに対する重みを学習用データごとに別々のタスクとしてマルチタスク学習法により学習し、その重みの値を指標として、当該複数の素性のうち各学習用データに共通して作用している素性を抽出し、この抽出した素性に絞り込んで素性重みを学習してスコアリングやリランキングを実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械翻訳や音声認識の手法により求めた上位N個の翻訳候補単語列や音声認識単語列候補を所定の素性に基づいて再順位付けする際に用いる素性重み学習装置、N-bestスコアリング装置、N-bestリランキング装置、それらの方法およびプログラムに関する。
【背景技術】
【0002】
機械翻訳や音声認識の手法により求めた、所定の入力単位(典型的には文)に対する最も尤もらしい上位N個の翻訳単語列候補や音声認識単語列候補 (ここではN-bestと呼ぶ)を、所定の素性(特徴量)に基づいて再順位付け(リランキング)し、よりよい候補を選び直す処理が広く行われている(例えば、非特許文献1)。それぞれの候補の各素性に対する該当性は数値(素性値)で表され、候補ごとに各素性値をベクトル化したものを当該候補の素性ベクトルと呼ぶ。素性や素性値の規定の仕方、素性の個数(素性ベクトルの次元数D)については設計者に裁量がある。素性としては、例えば非特許文献2で使われているものなどが挙げられる。
【0003】
このように上位N個の候補を、所定の素性(特徴量)に基づき再順位付けして候補を選び直す処理をN-bestリランキングと呼ぶ。また、リランキングする装置やプログラムをリランカと呼ぶ。例えば、入力文fを機械翻訳する場合、リランカには次のような定式化が広く用いられている。
【0004】
【数1】

【0005】
ここで、N(f)は入力文fのN個の翻訳単語列候補ek(k=1、2、・・・、N)の集合、hv(ek,f)は翻訳単語列候補ekのD次元の素性ベクトル、wvはD次元の素性重みベクトルである。つまりリランカは、まず、入力文fのN個の翻訳単語列候補ekについて、それぞれ素性ベクトルhv(ek,f)と素性重みベクトルwvとの内積(スコア)を求め、このスコアが最大となる翻訳単語列候補ecを選ぶものとして定式化される。なお、式(1)において、N(f)を入力発話fのN個の音声認識単語列候補ekの集合に置き換えると音声認識のリランキングの例となる。
【0006】
以上説明したリランカを具体化したN-bestリランキング装置100の構成例を図4に示す。N-bestリランキング装置100は、素性ベクトル生成部110とスコアリング部120と最適候補抽出部130とを備える。なお、必要に応じ、N-bestスコアリング装置101を素性ベクトル生成部110とスコアリング部120とから構成してもよい。
【0007】
素性ベクトル生成部110は、入力文(入力発話)fとそのN個の翻訳単語列候補ekとが入力され、各ekについて、予め任意に設定されたD個の素性と照合して得られた各素性値からD次元の素性ベクトルhv(ek,f)を生成する。スコアリング部120は、前記予め任意に設定されたD個の素性に対応するD次元の素性重みベクトルwvと素性ベクトルhv(ek,f)との内積wvT・hv(ek,f)を求め、これを翻訳単語列候補ekのスコアとしてekに付して出力する。最適候補抽出部130は、スコアが最も大きな翻訳単語列候補ekをecとして選ぶ。
【0008】
スコアリング部120で用いるD次元の素性重みベクトルwvは、例えば、非特許文献3で示される学習方法によって次式を最小とするwvとして生成することができる。
【0009】
【数2】

【0010】
ここで、Iは学習に用いる入力文(発話)fiの個数(i=1、2、・・・、I)である。L(・)はロス関数である。Hiは、入力文(入力発話)fiのN個の翻訳(音声認識)単語列候補eikに対応するN個のD次元の素性ベクトルhv(eik,fi)からなるD×N次元の行列である。yviはN個のeikの各翻訳(音声認識)の良さ(正解との類似度)を実数値で表したN次元のベクトルであり、翻訳(音声認識)の良さを表すパラメータとしては、例えば1−BLEU値や候補としての順位(1〜N位)などを用いることができる。また、Ω(wv)は正則化項であり、λは正則化項の強さを調整する係数である。
【0011】
各fiに対して正解及びN個の候補eik(k=1、2、・・・、N)が定められている学習用データを用意し、N個の候補eikに対し評価値ベクトルyviを定義しておくことで、リランカは学習用データから素性ベクトル行列Hiを生成し、式(2)を用いて最適な素性重みベクトルwvを学習することができる。
【0012】
素性重みベクトルwvの学習に用いる素性重み学習装置50の構成例を図5に示す。素性重み学習装置50は素性ベクトル生成部11と学習部55とから構成される。素性ベクトル生成部11は、I個の学習用の入力文(入力発話)fiとそれらそれぞれのN個の翻訳単語列候補eikとが入力され、入力文(入力発話)fiと各eikについて、D個の素性と照合して得られた各素性値からD次元の素性ベクトルhv(eik,f)を生成し、生成されたN個のhv(eik,f)から素性ベクトル行列Hiを構成する。なお、ここで用いるD個の素性(=N-bestリランキング装置100でいう「予め任意に設定されたD個の素性」)は、学習用データから抽出してもよいし、その他の方法により設定してもよい。学習部55は、素性ベクトル行列Hiと予め用意した評価値ベクトルyviとを用い、式(2)により素性重みベクトルwvを学習して出力する。
【先行技術文献】
【非特許文献】
【0013】
【非特許文献1】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
【非特許文献2】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
【非特許文献3】T. Joachims, "Training Linear SVMs in Linear Time", Proc. of the ACM Conference on Knowledge Discovery and Data Mining, 2006, p.217-226
【発明の概要】
【発明が解決しようとする課題】
【0014】
従来の方法は、リランキングするN-bestは均質であり、各学習用データで同じような素性が現れるということを前提としている。しかし、素性が疎である場合は、各学習用データで共通して表れる素性はほとんど無い。例えば、仏英翻訳において
【0015】
【数3】

【0016】
という素性を考えると、この素性は入力文fiがMonsieurを含まない限り、決して1にはならない。このような疎な素性は、すべての学習データに万遍なく現れるわけではなく、非常に偏ったごく一部の学習データにしか現れない。そのため、均質な(素性が万遍なく現れる)学習データを前提とする学習法では、素性重みベクトルwvを適切に学習することができないという問題があった。
【0017】
本発明の目的は、任意に設定した複数の素性の中に疎な素性が含まれていても精度の高いスコアリングやリランキングを行うことを可能とする素性重み学習装置、当該素性重み学習装置により得られた素性を用いるN-bestスコアリング装置、当該N-bestスコアリング装置により得られたスコアを用いたN-bestリランキング装置、それらの方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0018】
本発明の素性重み学習装置は、入力に対する尤もらしい上位N個の変換結果に複数の所定の素性に基づきそれぞれスコアを付与するために用いる前記所定の素性ごとに設定する重みを、複数の学習用データから学習することにより生成する素性重み学習装置であって、前記学習用データは、学習用の入力に対する尤もらしい上位N個の変換結果であり、任意に設定した複数の素性それぞれに対する重みを学習用データごとに別々のタスクとしてマルチタスク学習法により学習し、その重みの値を指標として、当該複数の素性のうち各学習用データに共通して作用している素性を前記所定の素性として抽出し、その抽出した素性に対応する重みを学習する。
【0019】
また、本発明の素性重み学習方法は、入力に対する尤もらしい上位N個の変換結果に複数の所定の素性に基づきそれぞれスコアを付与するために用いる前記所定の素性ごとに設定する重みを、複数の学習用データから学習することにより生成する素性重み学習方法であって、前記学習用データは、学習用の入力に対する尤もらしい上位N個の変換結果であり、任意に設定した複数の素性それぞれに対する重みを学習用データごとに別々のタスクとしてマルチタスク学習法により学習し、その重みの値を指標として、当該複数の素性のうち各学習用データに共通して作用している素性を前記所定の素性として抽出し、その抽出した素性に対応する重みを学習する。
【発明の効果】
【0020】
本発明の素性重み学習装置、N-bestスコアリング装置、N-bestリランキング装置、それらの方法およびプログラムは、複数の学習用データを用い、任意に設定した複数の素性それぞれに対する重みを学習用データごとにマルチタスクで学習する。そして、その重みの値を指標として、当該複数の素性のうち各学習用データに共通して作用している素性を抽出し、この抽出した素性に絞り込んで、素性重みを生成しスコアリングやリランキングを実行する。このように素性を絞り込むことで、予め定められた複数の素性の中に疎な素性が含まれていてもスコアリングやリランキングに有効な素性だけが自動的に抽出されるため、精度の高いスコアリングやリランキングを行うことができる。
【図面の簡単な説明】
【0021】
【図1】本発明の素性重み学習装置10の構成例を示すブロック図。
【図2】本発明の素性重み学習装置10の処理フロー例を示す図。
【図3】本発明の手法と従来手法との効果を比較するシミュレーション結果を示す図。
【図4】N-bestリランキング装置100及びN-bestスコアリング装置101の構成例を示すブロック図。
【図5】従来の素性重み学習装置50の構成例を示すブロック図。
【発明を実施するための形態】
【0022】
図1は、本発明の素性重み学習装置10の構成例をブロック図である。また、図2はその処理フロー例である。素性重み学習装置10は、素性ベクトル生成部11とマルチタスク学習部12と共通素性抽出部13と素性ベクトル選択部14と学習部15とを備える。素性ベクトル生成部11と学習部15は、従来の素性重み学習装置50は同じものである。
【0023】
従来の素性重み学習装置50は、I個の入力fiの各N-best(eik)のリランキングを1つのタスクとして考えて1つの素性重みベクトルを学習する。これに対し、本発明の素性重み学習装置10は、まず各N-bestのリランキングを別々のタスクとして考えてI個の素性重みベクトルを学習し、各素性重みベクトルに共通して作用している素性を抜き出して、新たな1つの素性重みベクトルを学習する。マルチタスク学習部12と共通素性抽出部13と素性ベクトル選択部14はこの従来と異なる処理を行うブロックである。
【0024】
以下、各構成について説明する。なお、ここでは入力が翻訳対象文(又は音声認識対象発話)、変換結果が翻訳候補(又は音声認識候補)である場合を例にとって説明するが、入力に対して複数の変換結果が得られるものであれば同様に適用可能である。
【0025】
素性ベクトル生成部11は、学習用の入力文(入力発話)fiに対応するN個のD次元の素性ベクトルhv(eik,f)からなる素性ベクトル行列Hiを生成する(S1)。
【0026】
マルチタスク学習部12は、素性ベクトル生成部11で生成された素性ベクトル行列Hiと予め用意した評価値ベクトルyviとを用い、学習用の各入力文(入力発話)fiに対応するD次元の素性重みベクトルwvi(各素性重みwi,j)を生成する(S2)。I個の素性重みベクトルwviは、例えば参考文献1に示されるマルチタスク学習方法で次式を最小とするwviとして生成することができる。
【0027】
【数4】

【0028】
ここで、i行目がwvi(=[wi,1,・・・,wi,j,・・・,wi,D])であるI×D次元の行列W(各要素がwi,j)を観念する。このとき、wv1,wv2,・・・,wvIを求めることとWを求めることとは等価である。また、Ω(wv1,wv2,・・・,wvI)として、例えばWのL1/L2正則化を用いる。L1/L2正則化では、まずWの列に対してL2正則化を行い、生成されるD次元ベクトルに対してL1正則化を行う。
【0029】
[参考文献1] 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
共通素性抽出部13は、マルチタスク学習部12で生成されたI個のD次元の素性重みベクトルwviから構成されるI×D次元の行列Wが入力され、すべてのi行についてwi,jが0でないj列(すなわち、すべてのfiについて共通して作用する素性)を抽出し、その抽出した列番号(又はそれに対応する素性)の集合hcを出力する(S3)。
【0030】
素性ベクトル選択部14は、素性ベクトル生成部11で生成されたD×N次元の素性ベクトル行列Hiについて、集合hcに現れる素性だけに行を縮退し、縮退した素性ベクトル行列Hicを出力する(S4)。共通素性抽出部13で列番号の集合を出力した場合には、Hiにおいて対応する行番号の行だけを残し、その他の行を削除するように縮退すればよい。
【0031】
そして、学習部15が素性ベクトル選択部14で得られた素性ベクトル行列Hicと予め用意した評価値ベクトルyviとを用い、式(2)により素性重みベクトルwvを学習して出力する(S5)。
【0032】
なお、素性ベクトル生成部11からマルチタスク学習部12及び素性ベクトル選択部14に提供される素性ベクトル行列Hiの次元数(素性数)Dが膨大な場合、後続の処理が困難になる場合がある。そこで、Hiをマルチタスク学習部12及び素性ベクトル選択部14に入力するのに先立ち、図1に点線で示すように次元圧縮部16を設け、Hiの次元圧縮(素性数Dを減らす)を行ってもよい。次元圧縮には、例えば参考文献2などに示される方法を利用することができる。
【0033】
[参考文献2] 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
以上のように本発明の素性重み学習装置10は、複数の学習用データを用い、任意に設定した複数の素性それぞれに対する重みを学習用データごとにマルチタスクで学習する。そして、その重みの値を指標として、当該複数の素性のうち各学習用データに共通して作用している素性を抽出し、この抽出した素性に絞り込んで素性重みを生成する。このように素性を絞り込んで素性重みを生成し、スコアリングやリランキングを実行することで、予め定められた複数の素性の中に疎な素性が含まれていてもスコアリングやリランキングに有効な素性だけが自動的に抽出されるため、精度の高いスコアリングやリランキングを行うことができる。
【0034】
上記の各種処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【0035】
また、上記の各装置をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そのプログラムは、例えば、ハードディスク装置に格納されており、実行時には必要なプログラムやデータがRAM(Random Access Memory)に読み込まれる。その読み込まれたプログラムがCPUにより実行される。このようにして、コンピュータ上で各処理内容が実現される。なお、処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【0036】
〔効果の確認〕
統計翻訳手法の一つである階層的な句に基づく手法によって得られたN-best翻訳候補(N=100)をリランキングする実験を行った。素性重みベクトルwvの学習には式(2)を用い、リランカの素性としては非特許文献2で使われているものを用いた。本実験は、医療分野の文章の日本語から英語への翻訳に関するものである。リランキングに用いるN-bestデータは、公知の統計的機械翻訳システムにより17,000文の日英対訳データで学習した翻訳モデルを800,000文で学習した言語モデルを用いて生成した。翻訳モデルを学習したデータに含まれない1,500文のうち、500文で素性重みベクトルwvを学習し、残りの1,000文を2つに分けて、クロスバリデーションを行った。すなわち、一方の500文で学習に用いるλなどのハイパー・パラメータを調整し、もう一方の500文でテストを行うということを交互に行った。翻訳精度はBLEUで測定した(この値が大きいほど良い翻訳であることを意味する)。
【0037】
実験結果を図3に示す。(a)リランキングされていない場合、(b)従来の素性重み学習装置50を用いてリランキングした場合、(c)素性を次元圧縮をして従来の素性重み学習装置50を用いてリランキングした場合、(d)学習用データに現れる素性を数え上げ10より多く現れる素性を用いてリランキングした場合、(e)本発明の素性重み学習装置10を用いてリランキングした場合、(f) 本発明の素性重み学習装置10で得られた素性と(d)で得られた素性とを併用してリランキングした場合、の6通りを比較した。この実験結果から、本発明の素性重み学習装置10を用いてリランキングした(e),(f)がBLUE値の1位、2位を占め、従来の素性重み学習装置50等を用いた場合と比較して、優れた翻訳精度が得られることがわかる(bootstrap sampling test, 1,000サンプル、p<0.05)。

【特許請求の範囲】
【請求項1】
入力に対する尤もらしい上位N個の変換結果に、複数の所定の素性に基づきスコアを付与するために用いる前記所定の素性ごとに設定する重みを、複数の学習用データを用いて学習することにより生成する素性重み学習装置であって、
前記学習用データは、学習用の入力に対する尤もらしい上位N個の変換結果であり、
任意に設定した複数の素性それぞれに対する重みを学習用データごとに別々のタスクとしてマルチタスク学習法により学習し、その重みの値を指標として、当該複数の素性のうち各学習用データに共通して作用している素性を前記所定の素性として抽出し、
その抽出した素性に対応する重みを学習する
ことを特徴とする素性重み学習装置。
【請求項2】
入力に対する尤もらしい上位N個の変換結果に、複数の所定の素性に基づきスコアを付与するN-bestスコアリング装置であって、
各候補にスコアを付与するために用いる前記所定の素性ごとに設定する重みを、請求項1に記載の素性重み学習装置により生成する
ことを特徴とするN-bestスコアリング装置。
【請求項3】
入力に対する尤もらしい上位N個の変換結果を、各候補に付されたスコアにより再順位付けするN-bestリランキング装置であって、
前記スコアを、請求項2に記載のN-bestスコアリング装置により生成する
ことを特徴とするN-bestリランキング装置。
【請求項4】
入力に対する尤もらしい上位N個の変換結果に、複数の所定の素性に基づきスコアを付与するために用いる前記所定の素性ごとに設定する重みを、複数の学習用データを用いて学習することにより生成する素性重み学習方法であって、
前記学習用データは、学習用の入力に対する尤もらしい上位N個の変換結果であり、
任意に設定した複数の素性それぞれに対する重みを学習用データごとに別々のタスクとしてマルチタスク学習法により学習し、その重みの値を指標として、当該複数の素性のうち各学習用データに共通して作用している素性を前記所定の素性として抽出し、
その抽出した素性に対する重みを学習する
ことを特徴とする素性重み学習方法。
【請求項5】
入力に対する尤もらしい上位N個の変換結果に、複数の所定の素性に基づきスコアを付与するN-bestスコアリング方法であって、
各候補にスコアを付与するために用いる前記所定の素性ごとに設定する重みを、請求項4に記載の素性重み学習方法により生成する
ことを特徴とするN-bestスコアリング方法。
【請求項6】
入力に対する尤もらしい上位N個の変換結果を、各候補に付されたスコアにより再順位付けするN-bestリランキング方法であって、
前記スコアを、請求項5に記載のN-bestスコアリング方法により生成する
ことを特徴とするN-bestリランキング方法。
【請求項7】
請求項1乃至3のいずれかに記載の装置としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−243147(P2011−243147A)
【公開日】平成23年12月1日(2011.12.1)
【国際特許分類】
【出願番号】特願2010−117237(P2010−117237)
【出願日】平成22年5月21日(2010.5.21)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】