(57)【特許請求の範囲】
【請求項１】
入力に対する正解が既知の複数の正解データを学習して、前記正解データの各々の特徴を表す複数の原素性各々に応じた原素性関数各々を用いて、入力に対する最尤出力を出力するように構築されたベースモデルに、入力に対する正解が未知の複数の未解析データの各々を入力した際に、該未解析データから抽出された複数の原素性各々に応じた前記原素性関数各々を用いて該ベースモデルが選択した最尤出力に対する前記原素性関数各々の値、及び該ベースモデルにより選択されなかった出力に対する前記原素性関数各々の値に基づいて、前記ベースモデルの最尤出力に対して、前記原素性各々が与える影響を示す重要度を、前記原素性の各々について計算する計算手段と、
前記計算手段により計算された複数の原素性各々の重要度に基づいて、前記複数の未解析データから抽出された複数の原素性から、前記ベースモデルの最尤出力に対して影響を与える原素性を選択する選択手段と、
前記原素性各々の重要度に基づいて、前記選択手段により選択された原素性の集合から、１つ以上の原素性をまとめた縮約素性の集合を生成する生成手段と、
を含む縮約素性生成装置。
【請求項２】
前記計算手段は、以下の式により前記重要度を計算する請求項１記載の縮約素性生成装置。
【数１】
0005623344.tif 000019
ここで、ｆｎ（ｘ，ｙ）は、入力ｘと出力ｙとにより値が決定するｎ番目の原素性に対する前記原素性関数、Ｄは、前記未解析データの集合、Ｙ（ｘ）は、ある一つの入力ｘが与えられた際に得られる可能性のある出力の集合、＾ｙは前記ベースモデルが選択した最尤出力、ｒ（ｘ，ｙ）は、ｙ＝＾ｙの場合には１を返し、それ以外の場合には−１を返す関数である。
【請求項３】
前記計算手段は、前記複数の未解析データを、未解析データを少なくとも１つ含む複数の部分集合に分割し、マップリデュースモデルを用いて、分割した複数の部分集合毎に前記原素性各々の重要度に相当する部分重要度を算出し、該部分集合各々から抽出された複数の原素性各々と前記部分重要度とのペアを生成し、前記ペアに基づいて、前記原素性毎に前記部分重要度の値を集計して、前記原素性各々の重要度を計算する請求項１または請求項２記載の縮約素性生成装置。
【請求項４】
前記生成手段は、前記縮約素性各々に含まれる原素性について、前記計算手段により計算された重要度をまとめた縮約素性を生成し、前記縮約素性の集合に追加する請求項１〜請求項３のいずれか１項記載の縮約素性生成装置。
【請求項５】
請求項１〜請求項４のいずれか１項記載の縮約素性生成装置と、
前記正解データから学習して前記ベースモデルを構築する構築手段と、
前記縮約素性生成装置により生成された縮約素性の集合から学習して最終モデルを再構築する再構築手段と、
を含むモデル構築装置。
【請求項６】
計算手段と、選択手段と、生成手段とを含む縮約素性生成装置における縮約素性生成方法であって、
前記計算手段は、入力に対する正解が既知の複数の正解データを学習して、前記正解データの各々の特徴を表す複数の原素性各々に応じた原素性関数各々を用いて、入力に対する最尤出力を出力するように構築されたベースモデルに、入力に対する正解が未知の複数の未解析データの各々を入力した際に、該未解析データから抽出された複数の原素性各々に応じた前記原素性関数各々を用いて該ベースモデルが選択した最尤出力に対する前記原素性関数各々の値、及び該ベースモデルにより選択されなかった出力に対する前記原素性関数各々の値に基づいて、前記ベースモデルの最尤出力に対して、前記原素性各々が与える影響を示す重要度を、前記原素性の各々について計算し、
前記選択手段は、前記計算手段により計算された複数の原素性各々の重要度に基づいて、前記複数の未解析データから抽出された複数の原素性から、前記ベースモデルの最尤出力に対して影響を与える原素性を選択し、
前記生成手段は、前記原素性各々の重要度に基づいて、前記選択手段により選択された原素性の集合から、１つ以上の原素性をまとめた縮約素性の集合を生成する
縮約素性生成方法。
【請求項７】
請求項１〜請求項４のいずれか１項記載の縮約素性生成装置と、構築手段と、再構築手段とを含むモデル構築装置におけるモデル構築方法であって、
前記構築手段は、入力に対する正解が既知の正解データから学習してベースモデルを構築し、
前記縮約素性生成装置は、前記縮約素性の集合を生成し、
前記再構築手段は、前記縮約素性生成装置により生成された縮約素性の集合から学習して最終モデルを再構築する
モデル構築方法。
【請求項８】
コンピュータを、請求項１〜請求項４のいずれか１項記載の縮約素性生成装置を構成する各手段として機能させるための縮約素性生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、縮約素性生成装置、方法、プログラム、モデル構築装置及び方法に係り、特に、教師あり学習に用いるための縮約素性集合を生成するための縮約素性生成装置、方法、及びプログラム、並びに、生成された縮約素性集合を用いてモデルを構築するモデル構築装置及び方法に関する。
【背景技術】
【０００２】
自然言語処理やバイオインフォマティクスの研究分野の分類問題に属する問題は、近年では、正解データから統計的な機械学習を行う手法である教師あり学習により、分類器のモデルを構築する方法が主流であり、多くの研究で良い精度が得られることが知られている。教師あり学習を行う際には、図１６に示すように、対象とする問題に有用と思われる判別規則、または、判別規則を構成する要素と雛形とを人手で事前に定義する方法が一般的である。ここで定義される判別規則を一般的に「素性」と呼ぶ。正解データを用いた学習により構築されたモデルを用いることで、図１７に示すように、正解が分かっていないデータ（未解析データ）を解析し、解析結果を得ることができる。なお、図１６及び１７中の矢印は、定義の依存関係を示す。
【０００３】
素性は、入力されるデータに対して解きたい問題を特徴付けるものであり、人間の持つ知識や直感等に基づいて定義される場合が多い。自然言語処理の問題では、単語や単語の連接等が素性として用いられることが多い。これは、文書を構成する要素が単語であること、及び、それぞれの単語が問題を説明する主要な要因となることが多いためである。また、意味や高次の情報を外部のリソース（例えば辞書）等を参照して利用することも行われている。この素性の設計により、教師あり学習によるモデル学習の精度が大きく影響を受ける。
【０００４】
一般論として、機械学習を行う際に素性数が多いと学習データに過適応してしまい相対的に汎化性能が悪くなる。この問題は、「次元の呪い」といわれる良く知られた問題として説明できる。つまり、機械学習では、素性数がそのまま素性空間の次元数に相当することから、素性を一つ増やす毎に、十分な汎化性能を得るために必要なデータ量は指数関数的に増大し、現実的にデータ量を準備することが不可能となる、という問題である。
【０００５】
ただし、自然言語処理やバイオインフォマティクスの問題を対象とする場合には、解きたい問題をうまく特徴付けるものは、テキスト中の単語であるとか、遺伝子配列の記号系列などといった離散シンボルである。また、解きたい問題に対して、個々の離散シンボルにより説明できる問題の事象の範囲はごく少数のデータに対してのみである場合がほとんどである。それ故に、解きたい問題全体をうまく説明するのに必要な素性数は、非常に多くなることが一般的である。さらに、同一のシンボルであっても状況によって多くの例外が発生する場合が多いため、複数のシンボルの組み合わせなどを考慮して対応する必要が生じる。このような状況では、結果的に、多くの離散シンボルまたはその組み合わせによる素性の集合を用いて問題を特徴付けることが必然となる。すると、個々の素性がデータ上に出現する割合は非常に小さくなる傾向となり、データｘ素性の行列を考えた場合、要素の多くが０となる疎行列となる。要素が０とは、情報が無いことと等価であり、各素性が出現する割合が大きく密行列となる場合と比較して、「次元の呪い」問題が示すように、より多くのデータを必要とすることを意味する。このように、自然言語処理やバイオインフォマティクスの問題では、そもそも「次元の呪い」問題が頻出しやすい問題設定となっているという背景がある。
【０００６】
理論的には、「次元の呪い」問題は、学習データが無限に存在すれば回避できると考えられる。しかし、正解データを用いた教師あり学習の枠組みでは、正解データは人手で作成するのが最も一般的であるため、作成コストが高く、高次元素性空間を統計的に十分満たす量を作成するのは非常に困難である。そのため、正解データ量を増やしてこの問題に対処するという方案は、現実的ではない。結果的に、教師あり学習の枠組みでは、限定された正解データ量で学習すると、十分な汎化性能が得られない可能性がある。
【０００７】
このように、素性設計の観点では、多くの素性を利用する方が解きたい問題をうまく表現できるため適していると考えられるが、機械学習の観点では、素性数は極力少なくするべきであるというジレンマがある。
【０００８】
このような問題を解決するための方法として、例えば、素性空間の次元圧縮や次元削減等と呼ばれる、高次元素性空間を低次元空間に写像する方法が提案されている（例えば、非特許文献１参照）。同様に、任意のクラスタリング法等を用いて素性をクラスタリングして新たな素性とする方法も提案されている（例えば、非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Joseph Turian, Lev-Arie Ratinov, and Yoshua Bengio. 2010. Word representations: A simple and general method for semi-supervised learning. In Proceedings of the 48th Annual Meeting of the Association for Computational Linguistics, pages 384−394.
【非特許文献２】Terry Koo, Xavier Carreras, and Michael Collins. 2008. Simple Semi-supervised Dependency Parsing. In Proceedings of ACL-08: HLT, pages 595−603.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、非特許文献１及び２の方法は、特定の問題では効果を発揮する場合も考えられるが、実際に現在これらの方法が、ほとんど用いられていないことを考慮すると、一般的にはそれほど効果は期待できない。また、自然言語処理やバイオインフォマティクスの問題では、前述のようにデータｘ素性の行列が疎行列になるという観点から、行列分解による方法や、最近傍法に基づくクラスタリング法等は、効果が得られないことが一般的に知られている。つまり、高次元かつ疎な素性空間であるが故に、統計や機械学習の観点でうまく素性を縮約することが困難であり、また、精度向上という効果を得ることが困難である、という問題がある。これは、非特許文献１及び２のような方法の枠組みは、素性数を削減して、全素性を用いる場合と同等の精度を達成するためのものだからである。
【００１１】
前述のクラスタリングや素性の次元削減法以外にも、素性選択という観点で様々な取り組みがなされている。ただし、これらの方法は、本来不要な素性をうまく選択して削除することにより、素性集合を縮小することを目的としている。つまり、仮に、不要な素性が存在しなければ、素性の削減には結びつかない方法と言える。これら素性選択の技術も、基本的には、素性数を減らして元と同じ精度を達成することを目的としているため、精度を向上させることは困難な枠組みである、という問題がある。
【００１２】
本発明は、上記問題を解決するためになされたもので、一般的な教師あり学習に用いられる素性よりも、コンパクトかつ高精度の縮約素性を生成することができる縮約素性生成装置、方法、及びプログラムを提供することを目的とする。また、学習時の過適合を低減することができるモデル構築装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、第１の発明の縮約素性生成装置は、入力に対する正解が既知の複数の正解データを学習して、前記正解データの各々の特徴を表す複数の原素性各々に応じた原素性関数各々を用いて、入力に対する最尤出力を出力するように構築されたベースモデルに、入力に対する正解が未知の複数の未解析データの各々を入力した際に、該未解析データから抽出された複数の原素性各々に応じた前記原素性関数各々を用いて該ベースモデルが選択した最尤出力に対する前記原素性関数各々の値、及び該ベースモデルにより選択されなかった出力に対する前記原素性関数各々の値に基づいて、前記ベースモデルの最尤出力に対して、前記原素性各々が与える影響を示す重要度を、前記原素性の各々について計算する計算手段と、前記計算手段により計算された複数の原素性各々の重要度に基づいて、前記複数の未解析データから抽出された複数の原素性から、前記ベースモデルの最尤出力に対して影響を与える原素性を選択する選択手段と、前記原素性各々の重要度に基づいて、前記選択手段により選択された原素性の集合から、１つ以上の原素性をまとめた縮約素性の集合を生成する生成手段と、を含んで構成されている。
【００１４】
第１の発明の縮約素性生成装置は、計算手段が、入力に対する正解が既知の複数の正解データを学習して、正解データの各々の特徴を表す複数の原素性各々に応じた原素性関数各々を用いて、入力に対する最尤出力を出力するように構築されたベースモデルに、入力に対する正解が未知の複数の未解析データの各々を入力した際に、未解析データから抽出された複数の原素性各々に応じた原素性関数各々を用いてベースモデルが選択した最尤出力に対する原素性関数各々の値、及び該ベースモデルにより選択されなかった出力に対する原素性関数各々の値に基づいて、ベースモデルの最尤出力に対して、原素性各々が与える影響を示す重要度を、原素性の各々について計算する。そして、選択手段が、計算手段により計算された複数の原素性各々の重要度に基づいて、複数の未解析データから抽出された複数の原素性から、ベースモデルの最尤出力に対して影響を与える原素性を選択し、生成手段が、原素性各々の重要度に基づいて、選択手段により選択された原素性の集合から、１つ以上の原素性をまとめた縮約素性の集合を生成する。
【００１５】
このように、原素性がベースモデルの最尤出力に与える影響を示す重要度を原素性毎に計算し、この重要度に基づいて選択された原素性から縮約素性を生成するため、コンパクトかつ精度良く縮約された縮約素性を生成することができる。
【００１６】
また、前記計算手段は、前記複数の未解析データを、未解析データを少なくとも１つ含む複数の部分集合に分割し、マップリデュースモデルを用いて、分割した複数の部分集合毎に前記原素性各々の重要度に相当する部分重要度を算出し、該部分集合各々から抽出された複数の原素性各々と前記部分重要度とのペアを生成し、前記ペアに基づいて、前記原素性毎に前記部分重要度の値を集計して、前記原素性各々の重要度を計算することができる。これにより、未解決データの量が多い場合でも、効率的に重要度を計算することができる。
【００１７】
また、前記生成手段は、前記縮約素性各々に含まれる原素性について、前記計算手段により計算された重要度をまとめた縮約素性を生成し、前記縮約素性の集合に追加することができる。原素性自体のみならず、原素性の重要度に関する情報も非常に有用な情報であるため、縮約素性の集合に追加することで、縮約素性の集合の精度がより向上する。
【００１８】
また、第２の発明のモデル構築装置は、第１の発明の縮約素性生成装置と、前記正解データから学習して前記ベースモデルを構築する構築手段と、前記縮約素性生成装置により生成された縮約素性の集合から学習して最終モデルを再構築する再構築手段と、を含んで構成されている。このように、コンパクトかつ高精度に生成された縮約素性を用いて最終モデルを再構築することにより、学習時の過適合を低減することができる。
【００１９】
また、第３の発明の縮約素性生成方法は、計算手段と、選択手段と、生成手段とを含む縮約素性生成装置における縮約素性生成方法であって、前記計算手段は、入力に対する正解が既知の複数の正解データを学習して、前記正解データの各々の特徴を表す複数の原素性各々に応じた原素性関数各々を用いて、入力に対する最尤出力を出力するように構築されたベースモデルに、入力に対する正解が未知の複数の未解析データの各々を入力した際に、該未解析データから抽出された複数の原素性各々に応じた前記原素性関数各々を用いて該ベースモデルが選択した最尤出力に対する前記原素性関数各々の値、及び該ベースモデルにより選択されなかった出力に対する前記原素性関数各々の値に基づいて、前記ベースモデルの最尤出力に対して、前記原素性各々が与える影響を示す重要度を、前記原素性の各々について計算し、前記選択手段は、前記計算手段により計算された複数の原素性各々の重要度に基づいて、前記複数の未解析データから抽出された複数の原素性から、前記ベースモデルの最尤出力に対して影響を与える原素性を選択し、前記生成手段は、前記原素性各々の重要度に基づいて、前記選択手段により選択された原素性の集合から、１つ以上の原素性をまとめた縮約素性の集合を生成する方法である。
【００２０】
また、第４の発明のモデル構築方法は、第１の発明の縮約素性生成装置と、構築手段と、再構築手段とを含むモデル構築装置におけるモデル構築方法であって、前記構築手段は、入力に対する正解が既知の正解データから学習してベースモデルを構築し、前記縮約素性生成装置は、前記縮約素性の集合を生成し、前記再構築手段は、前記縮約素性生成装置により生成された縮約素性の集合から学習して最終モデルを再構築する方法である。
【００２１】
また、第５の発明の縮約素性生成プログラムは、コンピュータを、第１の発明の縮約素性生成装置を構成する各手段として機能させるためのプログラムである。
【発明の効果】
【００２２】
以上説明したように、本発明の縮約素性生成装置、方法、及びプログラムによれば、原素性がベースモデルの最尤出力に与える影響を示す重要度を原素性毎に計算し、この重要度に基づいて選択された原素性から縮約素性を生成するため、一般的な教師あり学習に用いられる素性よりも、コンパクトかつ高精度の縮約素性を生成することができる、という効果が得られる。
【００２３】
また、本発明のモデル構築装置及び方法によれば、コンパクトかつ高精度に生成された縮約素性を用いて最終モデルを再構築することにより、学習時の過適合を低減することができる、という効果が得られる。
【図面の簡単な説明】
【００２４】
【図１】（ａ）一般的なモデルを示す概念図、及び（ｂ）本実施の形態の概要を示す概念図である。
【図２】原素性集合と縮約素性集合との関係を示すイメージ図である。
【図３】本実施の形態のモデル構築装置の機能的構成を示すブロック図である。
【図４】縮約素性関数集合生成部の機能的構成を示すブロック図である。
【図５】原素性重要度計算部の機能的構成を示すブロック図である。
【図６】本実施の形態のモデル構築装置におけるモデル構築処理ルーチンの内容を示すフローチャートである。
【図７】本実施の形態のモデル構築装置の縮約素性関数集合生成部における縮約素性関数集合生成処理ルーチンの内容を示すフローチャートである。
【図８】縮約素性関数集合生成処理を示す概念図である。
【図９】ＭａｐＲｅｄｕｃｅによる原素性の重要度の計算処理を説明するための図である。
【図１０】本実施の形態のモデル構築装置を固有表現抽出に適用した場合の効果を示す図である。
【図１１】本実施の形態のモデル構築装置を係り受け解析に適用した場合の効果を示す図である。
【図１２】文書分類問題への適用例の概要を示す図である。
【図１３】固有表現抽出問題への適用例の概要を示す図である。
【図１４】文書分類問題へ本発明を適用した実施例の参考例として、原素性関数を用いた場合の処理を示す概略図である。
【図１５】文書分類問題へ本発明を適用した実施例の処理を示す概略図である。
【図１６】従来の教師あり学習でのモデル構築の概要を示す概念図である。
【図１７】従来の教師あり学習で構築されたモデルを用いた未解析データの解析の概要を示す概念図である。
【発明を実施するための形態】
【００２５】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
＜概要＞
まず、本実施の形態の概要について説明する。
【００２６】
ここでは、正解の解析結果が付与されていないデータを、正解の解析結果が付与されている正解データと対比した呼び方で、未解析データと呼ぶ。本実施の形態は、大規模な未解析データを利用することを前提とした技術である。
【００２７】
自然言語処理やバイオインフォマティクスといった分野の問題では、大規模な未解析データを比較的容易に獲得することができる。例えば、自然言語処理の場合は、近年では、電子化された文書をｗｅｂ等から容易に獲得することができる。
【００２８】
本実施の形態の概要としては、まず、大規模未解析データ上で各素性の重要度を計算する。これは、素性の重要度を計算するという観点では、解きたい問題の正解は不要であるため、限定された量の正解データではなく、比較的容易に獲得可能な大規模な未解析データを用いることで、「次元の呪い」の影響が軽減された状態で統計量（重要度）を推定できる。次に、大規模なデータから得られた比較的信頼性の高い統計量（重要度）を用いて素性空間を再構築する。具体的には、重要度に基づいて素性のクラスタリング及び削除を行い、更に、重要度の値自身を素性の値として活用する。このように再構築された素性空間は、大規模なデータから導出されているため、解きたい問題全体をコンパクトにかつ精度良く表現できている可能性が高い。最後に、再構築した素性空間を使って、通常の正解データを使った教師あり学習によりモデルを学習する。これにより、図１（ａ）に示す従来のモデルよりもコンパクトなモデル（同図（ｂ））を構築することができる。
＜本実施の形態の原理＞
次に、本実施の形態の原理について説明する。
【００２９】
まず、以下の説明で用いる記号について、下記のように定義する。
【００３０】
Ｘ：可能な全ての入力の集合
Ｙ：可能な全ての出力の集合
ｘ：任意の一つの入力、つまり、ｘ∈Ｘの関係が成り立つ。
【００３１】
ｙ：任意の一つの出力、つまり、ｙ∈Ｙの関係が成り立つ。
【００３２】
Ｙ（ｘ）：ある一つのｘが与えられた際に得られる可能性のある出力の集合、ただし、Ｙ（ｘ）⊆Ｙの関係が成り立つ。
【００３３】
ｆｎ（ｘ、ｙ）：学習用素性定義で定義されたｎ番目の原素性関数。戻り値は実数（スカラー）である。
【００３４】
Ｎ：学習用素性定義で定義された原素性または原素性関数の総数
ｗｎ：ｎ番目のパラメータ。線形モデルの場合には基本的にｎ番目の素性関数に対する重みに相当する。よってｎ∈｛１，・・・，Ｎ｝である。
【００３５】
ｈｎ（ｘ、ｙ）：ｍ番目の縮約素性関数。戻り値は実数（スカラー）である。
【００３６】
ｈｍ（ｘ、ｙ）＝Σｆｎ∈Ｓｍｆｎ（ｘ、ｙ）
Ｍ：生成される縮約素性または縮約素性関数の総数
なお、本実施の形態では、大規模な未解析データ上で各素性の重要度を計算し、重要度に基づいて素性のクラスタリング及び削除を行うことにより、解きたい問題全体をコンパクトにかつ精度良く表現できる素性空間を再構築する。この再構築された素性空間を構成する素性を縮約素性と呼ぶ。
【００３７】
ここで、本実施の形態で用いる縮約素性を以下のように定義する。まず、説明を簡単にするため、従来一般的に教師あり学習で用いる素性を、原素性と呼ぶ。学習に利用する際には、複数の素性を利用することから、学習に利用する全ての縮約素性をまとめて縮約素性集合と呼び、また、学習に利用する全ての原素性をまとめて原素性集合と呼ぶ。このとき、縮約素性とは、「原素性集合内の一つ以上の原素性で構成される素性」とする。
【００３８】
形式的には以下のような定義となる。縮約素性集合をＨ、原素性集合をＦとする。また、縮約素性集合内の素性数をＭ、原素性集合内の素性数をＮとする。この時、定義からＭ≦Ｎが成り立ち、多くの場合Ｍ≪Ｎとなるように構成する。
【００３９】
次に、縮約素性集合内の任意の一つの縮約素性ｈｍ∈Ｈは、原素性集合Ｆ内の一つ以上の集合で構成されるとする。つまり、ｈｍ＝Ｓｍ、ただし、Ｓｍ⊆Ｆの関係が成り立つ。
【００４０】
ここで、原素性集合内の任意の一つの原素性ｆｎ∈Ｆは、高々一つの縮約素性ｈｍの構成要素にしかならないと仮定する。この仮定は、任意の二つの縮約素性の構成要素に同じ原素性が存在することは決してない事を保証し、かつ、いくつかの原素性はどの縮約素性の構成要素にもならない場合があることを意味している。つまり、任意のｍとｍ’、ただし、ｍ≠ｍ’の時に、Ｓｍ∩Ｓｍ’＝O（空集合）、及び∪ｍ＝１ＭＳｍ⊆Ｆが成り立つことを意味する。図２に原素性と縮約素性との関係を示す。
【００４１】
次に、縮約素性を利用して生成される縮約素性関数を定義する。一般的に素性関数とは、定義した素性に基づいて定義される関数であり、入力ｘと出力ｙとにより値が決定する関数である。素性関数は、一般的にｆ（ｘ，ｙ）のような形で表される。この素性関数ｆ（ｘ，ｙ）の戻り値はスカラー（実数）である。
【００４２】
ここで、原素性に従って定義される素性関数を原素性関数と呼ぶ。また、入力ｘと出力ｙとにより値が決定するｎ番目の原素性に対する原素性関数をｆｎ（ｘ，ｙ）とする。ｆｎ（ｘ，ｙ）は、入力ｘと出力ｙとが与えられたとき、ｎ番目の原素性の値（または、ｎ番目の原素性が成立するか否かを表す値）を返す関数である。ただし、原素性は全部でＮ  個であるので、ｎ∈｛１，・・・，Ｎ｝である。同様に、入力ｘと出力ｙとにより値が決定するｍ番目の縮約素性に対する縮約素性関数をｈｍ（ｘ，ｙ）とする。ただし、縮約素性は全部でＭ個であるので、ｍ∈｛１，・・・，Ｍ｝である。このとき、縮約素性関数の戻り値は、対象となる縮約素性の構成要素となった全ての原素性関数の戻り値の総和と定義する。従って、縮約素性関数ｈｍ（ｘ，ｙ）は、下記（１）式で表すことができる。
【００４３】
【数１】
0005623344.tif 000002
【００４４】
このことから、縮約素性関数の値は、原素性関数の値に従って自動的に定義されることを意味し、縮約素性関数用に新たに計算式を定義する必要はないことを意味する。
【００４５】
次に、ベースモデルについて定義する。本実施の形態では、学習に用いるモデルは（対数）線形モデルであると仮定する。線形モデルの判別関数ｇ（入力ｘに対する出力ｙの尤もらしさを返す関数）は、下記（２）式で定義することができる。
【００４６】
【数２】
0005623344.tif 000003
【００４７】
ここで、ｗｎはｎ番目の原素性関数ｆｎ（ｘ，ｙ）に対するモデルパラメータ（重み）である。つまり、線形モデルでは、入力ｘが与えられた場合に、出力ｙの尤もらしさは、全ての原素性関数ｆｎ（ｘ，ｙ）の重み付き和によって評価されることを意味している。
【００４８】
また、入力ｘが与えられた際の最尤出力＾ｙを決定する方法は、判別関数ｇを用いて、下記（３）式で表される最大化問題を解くことに帰着する。
【００４９】
【数３】
0005623344.tif 000004
【００５０】
線形モデルは、分類問題等で用いられる最も簡潔なモデルである一方、多くの実問題で十分な精度が得られることが多く、多くの場面で利用されているモデルである。また、計算が単純な加算及び乗算で行えることから、速度面でも複雑なモデルに対して優位性がある場合が多い。
【００５１】
本実施の形態では、ある縮約素性関数を自動的に生成するために、後述する原素性の重要度を計算する。この原素性の重要度の計算に際して、事前に通常の教師あり学習により構築されたモデルを利用する。このモデルを、ここではベースモデルと呼ぶ。ここで述べたように、ベースモデルも（対数）線形モデルであると仮定する。
【００５２】
次に、本実施の形態において、ある縮約素性関数を自動構築する際に計算する原素性の重要度の定義を述べる。
【００５３】
まず、関数ｒ（ｘ，ｙ）を定義する。ある入力ｘが与えられたときのベースモデルによる最尤出力を＾ｙとする。このとき、関数ｒ（ｘ，ｙ）は、与られたｙがベースモデルによる最尤出力＾ｙと同じ場合、つまり、ｙ＝＾ｙの場合には１を返し、それ以外の場合には−１を返す関数とする。つまり、関数ｒ（ｘ，ｙ）は、ベースモデルに従って戻り値が決定される関数である。
【００５４】
次に、−ｒ（ｘ）を、関数ｒ（ｘ，ｙ）のｘにおける平均とする（下記（４）式）。
【００５５】
【数４】
0005623344.tif 000005
【００５６】
また、ｒｄ（ｘ，ｙ）を、平均−ｒ（ｘ）からの実際の値ｒ（ｘ，ｙ）の偏りを表すとする（下記（５）式）。
【００５７】
【数５】
0005623344.tif 000006
【００５８】
次に、下記（６）式及び（７）式に示すように、ＶＤ＋（ｆｎ）及びＶＤ−（ｆｎ）を定義する。
【００５９】
【数６】
0005623344.tif 000007
【００６０】
また、Ｄを未解析データの集合とする。このとき、各原素性関数ｆｎの重要度を下記（９）式で定義する。
【００６１】
【数７】
0005623344.tif 000008
【００６２】
ここで、ＶＤ＋（ｆｎ）は、ある入力ｘが与えられた際にベースモデルが選択した最尤出力＾ｙに対し原素性関数ｆｎ（ｘ，ｙ）の値がどの程度貢献しているかを未解析データＤ  内の全ての入力データで評価した値を意味する。同様に、ＶＤ−（ｆｎ）はベースモデルが選択しなかった出力に対して原素性関数ｆｎ（ｘ，ｙ）の値がどの程度貢献しているかを未解析データＤ内の全ての入力データで評価した値を意味する。つまり、原素性重要度ＶＤ（ｆｎ）の意味は、以下のように解釈できる。｜ＶＤ（ｆｎ）｜が相対的に大きい値の場合には、原素性関数ｆｎ（ｘ，ｙ）は、ベースモデルの最尤出力の決定の際に大きな影響を与えているとみなすことができる。よって、原素性ｆｎは、重要な素性であると推定できる。逆に、｜ＶＤ（ｆｎ）｜が相対的に小さい値の場合には、原素性関数ｆｎ（ｘ，ｙ）は、ベースモデルが最尤出力を決定する際にほとんど影響を与えないとみなすことができる。よって、原素性ｆｎは、ほぼ意味のない素性であると推定できる。このような視点から、ＶＤ（ｆｎ）は原素性の重要度を表現していると言える。
【００６３】
次に、精度の良い縮約素性を生成するために、原素性重要度を計算する際に、信頼性の低い値の正則化、及び、重要度の離散化という二つの要素を取り入れる。
【００６４】
まず一つ目の正則化に関しては、下記（１０）式に示すように、ＶＤ（ｆｎ）をＶＤ'（ｆｎ）に変更することで実施する。
【００６５】
【数８】
0005623344.tif 000009
【００６６】
ここで、Ｃは正の実数であり、正則化パラメータとする。この時の注意点として、ＶＤ（ｆｎ）＝ＶＤ＋（ｆｎ）−ＶＤ−（ｆｎ）＝Ｒｎ／Ｆｎが成り立つ点である。つまり、ＶＤ（ｆｎ）との違いは、単にＣを導入しただけであり、Ｃ＝０のときＶＤ（ｆｎ）＝ＶＤ’（ｆｎ）  となる。正則化パラメータにより、Ｒｎが小さいときには大きく値が０方向に圧縮される操作となる。特に、｜Ｒｎ｜≦Ｃの時、ＶＤ’（ｆｎ）＝０となる。
【００６７】
次に、原素性重要度の離散化について述べる。まず、下記（１２）式に示す補助関数を定義する。
【００６８】
【数９】
0005623344.tif 000010
【００６９】
次に、整数空間をＮ（Ｎ＝｛・・・，−２，−１，０，１，２，・・・｝を考える。また、δを正の実数とし、整数空間Ｎに対して、各整数をスケーリングする値として導入する。ここでは、離散空間Ｎ／δを、整数空間の各整数をδによってスケーリングした離散空間として定義する。つまり、Ｎ／δ＝｛・・・，−２／δ，−１／δ，０，１／δ，２／δ，・・・｝である。このとき、実数値ＶＤ’（ｆｎ）の離散空間Ｎ／δ内で最も近い上限及び下限の値を、下記（１４）式に示すように定義する。
【００７０】
【数１０】
0005623344.tif 000011
【００７１】
そして、最終的に下記（１５）式を用いて原素性の重要度を離散化する。
【００７２】
【数１１】
0005623344.tif 000012
【００７３】
つまり、最終的にｕｎ＊がｎ番目の原素性の重要度の値となる。
【００７４】
なお、本実施の形態の原素性重要度計算は、下記（１６）式に示す最適化問題を解くことと等価である。
【００７５】
【数１２】
0005623344.tif 000013
【００７６】
ここで、ｎは、（１６）式に対するｕｎの最適解を表す。また、ｕ＊＝｛ｕｎ＊｝ｎ＝１Ｎとする。
【００７７】
この式から、解空間がＮ／δで定義される離散空間であるという条件下で、各素性毎に、未解析データＤ上でのｒｄとｕｎとの間の最小二乗誤差を最小化する問題と解釈できる。
【００７８】
ここで、制約である各パラメータの制約であるｕｎ∈Ｎ／δを考えない場合は、（１６）式  は、凸最適化問題となる。凸最適化問題では、勾配が０になる点が大域的最適解となることが保証される。ここでは、下記（１７）式に示す最小化したい目的関数に対して、ｕｎ  の偏微分は下記（１８）式となる。
【００７９】
【数１３】
0005623344.tif 000014
【００８０】
ここで、∂Ｕ（ｕ｜Ｄ）／∂ｕｎ＝０とおけば、ＶＤ’（ｆｎ）が解となることがわかる。また、離散化制約を満たす解は、（１０）式により得られる。つまり（１６）式の解は、（１５）式により得ることができる。
＜システム構成＞
次に、本発明の縮約組成生成装置を適用したモデル構築装置を例にして、本実施の形態を説明する。
【００８１】
本実施の形態のモデル構築装置１０は、ＣＰＵ（Central Processing Unit）と、ＲＡＭ（Random Access Memory）と、後述する縮約組成関数集合生成処理ルーチンを含むモデル構築処理ルーチンを実行するためのプログラムを記憶したＲＯＭ（Read Only Memory）とを備えたコンピュータで構成されている。
【００８２】
このコンピュータは、機能的には、図３に示すように、ベースモデル構築部１２と、縮約素性関数集合生成部１４と、モデル再構築部１６とを含んだ構成で表すことができる。
【００８３】
ベースモデル構築部１２は、正解データ２０を入力として、周知の教師あり学習により対象とする問題のベースモデル２２を構築（学習）する。ここで、入力される正解データ２０は、対象とする問題に応じて人手により定義した「モデル定義」及び「原素性関数集合定義」である。
【００８４】
具体的には、ベースモデル構築部１２は、従来の教師あり学習によるモデル構築処理を実施する。教師あり学習の方法としては、解きたい問題に合わせて様々な方法を用いることができる。例えば、スパムフィルタのように、スパムかそうでないかという二つのクラスに分類したいような問題では、Support Vector Machine（参考文献：V.Vapnik. The Nature of Statistical Learning Theory. Spring-Verlag, New York, 1995.参照）等の二クラス分類器用の学習法を用いることができる。また、分類したいクラスの種類が二つ以上の場合は、多クラスロジスティック回帰モデル等を用いて教師あり学習が行われる。自然言語処理分野の係り受け解析等では、条件付確率場（参考文献：J. Lafferty, A. McCallum, and F. Pereira. Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data. In Proc. of ICML-2001, pages 282−289, 2001.）といった構造予測器用のモデルを用いて学習することができる。
【００８５】
ベースモデル構築部１２により学習されたベースモデル２２は、モデル定義及び原素性関数集合定義を含む。
【００８６】
縮約素性関数集合生成部１４は、大量の未解析データ２４と、ベースモデル構築部１２の出力であるベースモデル２２とを用いて、縮約素性関数集合の定義（縮約素性関数集合定義２６）を生成する。この縮約素性関数集合生成部１４が、本発明の縮約素性生成装置の一例である。
【００８７】
モデル再構築部１６は、正解データ２０と、縮約素性関数集合生成部１４で生成した縮約素性関数集合定義２６とを用いて、周知の教師あり学習アルゴリズムを用いた教師あり学習により、対象とする問題のモデルを再構築する。なお、ここで再構築されるモデルを、ベースモデルと区別して、「最終モデル」と呼ぶ。
【００８８】
ここで、縮約素性関数集合生成部１４で得られる縮約素性関数集合定義２６は、原素性関数群定義から無駄を省いた縮約形を自動で生成したものに相当するため、性質としては、原素性関数集合定義と同じとなる。よってモデル再構築部１６の処理は、本質的にベースモデル構築部１２と同様に、従来の教師あり学習によるモデル構築の処理に相当する。つまり、ベースモデル構築部１２及びモデル再構築部１６の処理は、従来技術をそのまま用いることができる。
【００８９】
すなわち、本実施の形態の主要部は、本発明の縮約素性生成装置を適用した縮約素性関数集合生成部１４にある。つまり、縮約素性関数集合生成部１４は、教師あり学習で一般的に用いる原素性集合から、教師あり学習に適した縮約素性関数集合定義２６を生成する。
【００９０】
以下、縮約素性関数集合生成部１４について、より具体的に説明する。図４に示すように、縮約素性関数集合生成部１４は、原素性重要度計算部１４１と、原素性選択部１４２と、原素性融合部１４３と、原素性重要度追加部１４４とを含んだ構成で表すことができる。なお、原素性融合部１４３及び原素性重要度追加部１４４が、本発明の生成手段の一例である。
【００９１】
原素性重要度計算部１４１は、入力されたベースモデル２２に含まれる各原素性関数について、原素性重要度ｕｎ＊を計算する。未解析データ２４の量が少ない場合には、各未解析データ２４毎に（１５）式により、原素性重要度ｕｎ＊を直接計算することができる。ただし、一般的に未解析データ２４の量は非常に多くなることから、本実施の形態では、分散並列計算モデルによる効率的な計算方法について説明する。ここでは、ＭａｐＲｅｄｕｃｅモデル（参考文献：J. Dean and S. Ghemawat. 2008. MapReduce: Simplified Data Processing on Large Clusters. Commun. ACM, 51(1):107−113.）を応用した計算方法を示す。
【００９２】
原素性重要度計算部１４１は、図５に示すように、未解析データ分割部１４１ａと、Ｋｅｙ−ｖａｌｕｅペア生成部１４１ｂ−１〜Ｐと、Ｋｅｙ−ｖａｌｕｅペア集計部１４１ｃ−１〜Ｒと、原素性重要度出力部１４１ｄとを含んだ構成で表すことができる。なお、Ｋｅｙ−ｖａｌｕｅペア生成部１４１ｂ−１〜Ｐの各々、及びＫｅｙ−ｖａｌｕｅペア集計部１４１ｃ−１〜Ｒの各々をそれぞれ区別することなく説明する場合には、単に、Ｋｅｙ−ｖａｌｕｅペア生成部１４１ｂ、及びＫｅｙ−ｖａｌｕｅペア集計部１４１ｃと表記する。
【００９３】
未解析データ分割部１４１ａは、未解析データ２４をＰ個の部分集合に分割し、分割した未解析データ２４の部分集合を、Ｐ個のＫｅｙ−ｖａｌｕｅペア生成部１４１ｂ−１〜Ｐへそれぞれ出力する。
【００９４】
Ｋｅｙ−ｖａｌｕｅペア生成部１４１ｂは、受け取った未解析データ２４の部分集合に対し、ベースモデル２２を用いて、（Ｔｎ，Ｒｎ，Ｆｎ）を計算する。ここで、Ｔｎは（１３）式に示す値であり、（１２）式に用いられている原素性重要度を離散化する際に計算する補助関数の値である。また、Ｒｎは（１１）式、Ｆｎは（８）式に示す値であり、（１０）式で用いられている原素性重要度そのものを計算するための値である。そして、各原素性をｋｅｙ、各未解析データの部分集合により計算された（Ｔｎ，Ｒｎ，Ｆｎ）をｖａｌｕｅとするｋｅｙ−ｖａｌｕｅペアの系列を生成し、生成したｋｅｙ−ｖａｌｕｅペアの系列を、Ｒ個のＫｅｙ−ｖａｌｕｅペア集計部１４１ｃ−１〜Ｒへ出力する。
【００９５】
Ｋｅｙ−ｖａｌｕｅペア集計部１４１ｃは、Ｐ個のＫｅｙ−ｖａｌｕｅペア生成部１４１ｂから取得したｋｅｙ−ｖａｌｕｅペアを用いて、原素性（ｋｅｙ）毎にｖａｌｕｅの値を集計し、原素性毎の（Ｔｎ，Ｒｎ，Ｆｎ）値を求める。そして、（１５）式を用いて、原素性ｆｎに対する離散化かつ正則化された原素性重要度ｕｎ＊を計算する。ここで、Ｃ及びδの値は、予め設定しておくものとする。
【００９６】
原素性重要度出力部１４１ｄは、Ｋｅｙ−ｖａｌｕｅペア集計部１４１ｃで計算された原素性重要度ｕｎ＊を出力する。
【００９７】
原素性選択部１４２は、原素性重要度計算部１４１で計算された原素性重要度ｕｎ＊に基づいて、不必要と考えられる原素性を排除する。具体的には、（１５）式により重要度を離散化した値ｕｎ＊に対して、ｕｎ＊＝０を除いた重要度を離散化した値の集合を出力する。これは、ｕｎ＊＝０となった原素性ｆｎを不必要と判定し、原素性の集合から排除することに相当する。原素性選択部１４２の処理は、原素性の重要度が０ということは、その原素性はモデルの出力決定に影響を与えないであろうと推定されたことを意味するので、これらの素性を縮約素性に含めないための処理である。
【００９８】
原素性融合部１４３は、原素性選択部１４２で求めた不必要な原素性を排除した原素性の重要度を離散化した値ｕｎ＊の集合を用いて、複数の原素性を一つの縮約素性として融合する。簡単な処理の例として、計算した重要度ｕｎ＊に基づき、同じ重要度となった原素性を一つの縮約素性としてまとめ上げることができる。
【００９９】
各ｕｎ＊は離散値であるため、いくつか同じ値である場合が想定される。よって、値の集合の要素数は必ずＮ以下となる。ここでは、値の集合の要素数をＭとする。次に、Ｓｍ  を、ｍ番目の原素性重要度の値となった原素性ｆｎの集合とする。このとき、ｍ番目の縮約素性関数ｈｍ（ｘ，ｙ）を、Ｓｍ内の原素性関数ｆｎ（ｘ，ｙ）の総和、すなわち、（１）式により計算する。
【０１００】
原素性重要度追加部１４４は、原素性融合部１４３で求めた縮約素性に素性重要度ｕｎ＊に関する情報を追加する。計算した素性重要度ｕｎ＊の値自体も非常に有効な情報源であるため、縮約素性に利用するものである。ここでは、Ｍ＋１番目の縮約素性として、下記（２０）式で定義される素性φ（ｘ，ｙ）を追加する。
【０１０１】
ただし、ｕｍは、ｍ番目に対応つけられた原素性重要度である。ここでは、原素性融合部１４３において、原素性重要度が同じ値の原素性を融合して縮約素性としているため、必然的にｍ番目に対応つけられた原素性重要度は一つの値となる。
【０１０２】
【数１４】
0005623344.tif 000015
【０１０３】
これは、全ての縮約素性を重要度の重み付きで総和を取ったものである。よって、縮約素性関数の集合は、｛ｈ１（ｘ，ｙ），・・・，ｈＭ（ｘ，ｙ），φ（ｘ，ｙ）｝となる。
【０１０４】
ただし、φ（ｘ，ｙ）の計算量は無視できる。φ（ｘ，ｙ）を一つの素性として線形モデルで用いる際には、線形モデルの判別関数ｇ（ｘ，ｙ）は、下記（２１）式で計算することができる。
【０１０５】
【数１５】
0005623344.tif 000016
【０１０６】
ここで、学習が終わった後には、｛ｗｍ｝ｍ＝１Ｍ＋１は固定した値となるため、ｗｍ‘は事前に計算することができる。この結果、（２２）式に示すように、φが消えて、ｈｍのみに依存した線形モデルと同じ形式で表現することができる。つまり、φを取り入れても、取り入れなくても、変数の数はＭとして計算できるため、φを導入しても計算時間は増大しない。
＜モデル構築装置の作用＞
次に、本実施の形態に係るモデル構築装置１０の作用について説明する。正解データとして、対象とする問題に応じて人手により定義した「モデル定義」及び「原素性関数集合定義」が所定の記憶領域に記憶され、モデル構築装置１０において、図６に示すモデル学習処理ルーチンが実行される。
【０１０７】
ステップ１００で、正解データ２０を入力として、周知の教師あり学習により対象とする問題のベースモデル２２を構築（学習）する。
【０１０８】
次に、ステップ２００で、後述する縮約素性関数集合生成処理ルーチンを実行して、縮約素性関数集合定義２６を生成する。
【０１０９】
次に、ステップ３００で、正解データ２０と、上記ステップ２００で生成した縮約素性関数集合定義２６とを用いて、周知の教師あり学習アルゴリズムを用いた教師あり学習により、対象とする問題の最終モデル２８を再構築して、処理を終了する。
【０１１０】
次に、図７及び図８を参照して、縮約素性関数生成処理ルーチンについて説明する。
【０１１１】
ステップ２０２で、ＭａｐＲｅｄｕｃｅモデルを用いて、入力されたベースモデル２２に含まれる各原素性関数について、原素性重要度ｕｎ＊を計算する。
具体的には、図９に示すように、未解析データ２４をＰ個の部分集合に分割し、分割した未解析データ２４の部分集合に対し、ベースモデル２２を用いて、（１３）式、（１１）式、及び（８）式により、（Ｔｎ，Ｒｎ，Ｆｎ）を計算する。そして、各原素性をｋｅｙ、各未解析データの部分集合により計算された（Ｔｎ，Ｒｎ，Ｆｎ）をｖａｌｕｅとするｋｅｙ−ｖａｌｕｅペアの系列を生成する。そして、生成したｋｅｙ−ｖａｌｕｅペアを用いて、原素性（ｋｅｙ）毎にｖａｌｕｅの値を集計し、原素性毎の（Ｔｎ，Ｒｎ，Ｆｎ）値を求め、（１５）式を用いて、原素性ｆｎに対する離散化かつ正則化された原素性重要度ｕｎ＊を計算する。
【０１１２】
次に、ステップ２０４で、上記ステップ２０２で計算された原素性重要度ｕｎ＊に基づいて、ｕｎ＊＝０となった原素性ｆｎを不必要と判定し、原素性の集合から排除し、ｕｎ＊≠０となった原素性ｆｎを、縮約素性に含める原素性として選択する。
【０１１３】
次に、ステップ２０６で、上記ステップ２０４で選択した原素性の重要度を離散化した値ｕｎ＊の集合を用いて、計算した重要度ｕｎ＊に基づき、同じ重要度となった原素性を一つの縮約素性として融合し、縮約素性の集合のｍ番目の縮約素性関数ｈｍ（ｘ，ｙ）を（１）式により計算する。
【０１１４】
次に、ステップ２０８で、上記ステップ２０６で計算した縮約素性に、（２０）式に示す原素性重要度ｕｎ＊に関する素性φ（ｘ，ｙ）を、Ｍ＋１番目の縮約素性として追加し、縮約素性関数の集合｛ｈ１（ｘ，ｙ），・・・，ｈＭ（ｘ，ｙ），φ（ｘ，ｙ）｝を出力して、リターンする。
【０１１５】
以上の処理により、原素性の定義から、縮約素性関数の定義が自動的に構築される。縮約素性関数の定義とは、原素性関数の定義からどのようにして縮約素性を構成するかの情報全てを意味し、縮約素性の個数、各縮約素性を構成する原素性集合Ｓｍの定義、及び各縮約素性（対応する原素性）の重要度ｕｍ＊となる。
【０１１６】
以上説明したように、本実施の形態のモデル構築装置によれば、原素性がベースモデルの最尤出力に与える影響に基づいて、原素性毎の重要度を計算し、この重要度に基づいて選択された原素性を融合して縮約素性を生成するため、正解データを用いて教師あり学習する際に一般的に用いる素性集合よりもコンパクトかつ高精度の縮約素性集合を生成することができる。これにより、教師あり学習時に、過適合の起こる可能性を大幅に削減することができる。
【０１１７】
また、構築するモデルとして線形分類器を用いる場合には、パラメータ数は素性数と一致するため、パラメータ数も大幅に削減することができ、結果として必要な主記憶（メモリ）量も大幅に削減することができる。更に、メモリ量が削減できるということは、実行速度も向上可能である。
【０１１８】
また、大規模未解析データ上でしか観測されない素性を間接的に利用することが可能となり、汎化性能も大幅に向上させることができる。
【０１１９】
このように、一般的には、トレードオフの関係にある、速度−精度や、速度−メモリ量といった要素を同時に向上させることができる。
【０１２０】
実際に、自然言語処理分野の固有表現抽出及び係り受け解析に本実施の形態のモデル構築装置を適用した場合の効果を図１０及び図１１に示す。
また、本発明は、自然言語処理やバイオインフォマティクスの研究分野の分類問題に属する問題で教師あり学習を行うような設定で特に高い効果が得られることを意図して考案された発明である。具体的な利用例として、文書を分類する文書分類問題、文（文書）に対して言語的な構造を解析する問題、ＤＮＡ  塩基配列に遺伝子領域とアミノ酸対応を示すラベルを付与する問題、たんぱく質の２次構造予測問題等が考えられる（図１２及び図１３）。
【０１２１】
また、上述のモデル構築装置は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【０１２２】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【実施例】
【０１２３】
本発明を自然言語処理分野での文書分類問題に適用した実施例について説明する。
【０１２４】
まず、計算機による自動文書分類システムを想定する。自動文書分類システムでは、入力が文書、出力が文書に付与すべきクラスとなる。出力である「文書に付与すべきクラス」とは、例えば、カテゴリへの分類問題を想定すると、書籍の体系のように「科学」「経済」「政治」「スポーツ」といったものがクラスとなる。また、スパム分類のような文書分類問題を想定すると、出力クラスは、「スパム文書」か「通常の文書」の二クラスになる。それ以外にも、任意の商品に対するアンケートからの評判分析をするような文書分類問題を想定する場合には、例えば、出力クラスは５  段階の「非常に良い」「良い」「普通」「悪い」「非常に悪い」のようなものになる。図１４に典型的な自動文書分類システムの例を示す。
【０１２５】
次に、このような文書分類システムを構築する方法について述べる。近年では、このような問題は正解データを準備し、そこから教師あり学習により分類モデルを構築する方法が主流である。このとき、正解データとは、構築したい自動文書分類システムの入力と出力とのペアに相当するデータである。教師あり学習とは、この正解データから、演繹的に自動分類モデルを学習する方法である。
【０１２６】
次に、文書分類問題を教師あり学習によりモデル構築する際に用いる素性関数について述べる。文書分類問題の例では、文書中に出現する単語を原素性として用いる方法が一般的である。これは、文書を構成する要素が単語であること、及びそれぞれの単語が問題を説明する大きな要素となるからである。ただし、この場合、原素性の数は、単語数となるため、例えば、数万や数百万といった非常に大きな数となる。ここで、単語が｛Ｆ１，・・・，ＦＮ｝とＮ個存在する場合、ｎ番目の素性関数、例えば、下記（２４）式に示すようなものが考えられる。
【０１２７】
【数１６】
0005623344.tif 000017
【０１２８】
また、下記（２５）式に示すように、単純に単語が出現したか否かを０と１とで表現する二値素性関数としてもよい。
【０１２９】
【数１７】
0005623344.tif 000018
【０１３０】
ここでは、この素性関数を例として以下の説明を述べる。
【０１３１】
文書分類システムとしては、入力としてある文書ｘが与えられた場合に、推定した出力クラスｙを選択する。ここでは、自動文書分類システムのモデルとして、（２）式で示した線形分類モデルを用いる。つまり、定義した素性関数及びその重みの線形和が最も大きくなるクラスが出力として選択される。
【０１３２】
線形モデルを教師あり学習により構築することは、線形モデルのモデルパラメータであるｗｎの値を決定することに相当する。これには、正解データを利用する教師あり学習により値を決定する。また、学習法としては、例えば、確率モデル（対数線形モデル）による尤度最大化や、線形モデルによるマージン最大化に基づくモデルパラメータ推定法を用いる。
【０１３３】
学習が終わり、モデルパラメータが決定したあと、縮約素性関数の定義を生成する。文書分類で、素性に単語を利用している場合には、単語のクラスタリングをすることに近い処理になる。つまり、重要度が同じぐらいになる単語を一つに融合する処理である。図１４及び１５に原素性関数と縮約素性関数とを用いた際の処理の違いを示す。
【０１３４】
最後に、生成された縮約素性関数定義に従って素性関数を生成し、それを用いて通常の教師あり学習アルゴリズムを用いてモデルパラメータを再推定する。
【符号の説明】
【０１３５】
１０   モデル構築装置
１２   ベースモデル構築部
１４   縮約素性関数集合生成部
１６   モデル再構築部
２０   正解データ
２２   ベースモデル
２４   未解析データ
２６   縮約素性関数集合定義
２８   最終モデル
１４１ 原素性重要度計算部
１４２ 原素性選択部
１４３ 原素性融合部
１４４ 原素性重要度追加部
【図１】
0005623344.tif 000020
【図２】
0005623344.tif 000021
【図３】
0005623344.tif 000022
【図４】
0005623344.tif 000023
【図５】
0005623344.tif 000024
【図６】
0005623344.tif 000025
【図７】
0005623344.tif 000026
【図８】
0005623344.tif 000027
【図９】
0005623344.tif 000028
【図１０】
0005623344.tif 000029
【図１１】
0005623344.tif 000030
【図１２】
0005623344.tif 000031
【図１３】
0005623344.tif 000032
【図１４】
0005623344.tif 000033
【図１５】
0005623344.tif 000034
【図１６】
0005623344.tif 000035
【図１７】
0005623344.tif 000036