JP6597250B2 - 学習プログラム、学習方法及び学習装置 - Google Patents

学習プログラム、学習方法及び学習装置 Download PDF

Info

Publication number
JP6597250B2
JP6597250B2 JP2015238064A JP2015238064A JP6597250B2 JP 6597250 B2 JP6597250 B2 JP 6597250B2 JP 2015238064 A JP2015238064 A JP 2015238064A JP 2015238064 A JP2015238064 A JP 2015238064A JP 6597250 B2 JP6597250 B2 JP 6597250B2
Authority
JP
Japan
Prior art keywords
learning
model
combination
features
partial structure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015238064A
Other languages
English (en)
Other versions
JP2017102871A (ja
Inventor
友哉 岩倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015238064A priority Critical patent/JP6597250B2/ja
Publication of JP2017102871A publication Critical patent/JP2017102871A/ja
Application granted granted Critical
Publication of JP6597250B2 publication Critical patent/JP6597250B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、学習プログラム、学習方法及び学習装置に関する。
自然言語処理には、一例として、perceptron、SVMs(Support Vector Machines)、PA(Passive-Aggressive)やAROW(Adaptive Regularization of Weight Vectors)などいった各種の機械学習が用いられる。
例えば、テキストデータを扱かう場合、テキストから単語を切り出して、単語をベクトルの各次元に対応付けて、テキスト内での各単語の出現頻度を対応する次元の値とすることにより、ベクトルが作成されることがある。この例であれば、単語は素性と呼ばれ、ベクトルは素性ベクトルと呼ばれる。
自然言語処理では、素性の組合せが精度に影響を与える場合がある。しかし、自然言語処理の素性の種類は数万規模になることもあり、素性の組合せを考慮するとその種類数はさらに膨大なものとなる。また、自然言語処理でテキストが処理される場合、文字列は配列で表現できる。また、係り受け解析されたテキストは解析木として表現されるため、ベクトルで表現されたデータを扱かう学習手法に加えて、String(配列)、Tree(木)、Graph(グラフ)など、構造化データを扱う学習手法がある。
素性の組合せの学習並びにString、Tree、Graphを対象とする学習手法の一つとして、Kernel法という手法がある。Kernel法では、データ間の類似度を計算した後に、学習が行われる。
Kernal法では、暗黙的に素性を展開しながら、学習事例間の内積を計算することで、素性の組合せの学習やString、Tree、Graphなどの半構造データの扱いにおいて、効率的な計算を実現することができる。
Koby Crammer, Ofer Dekel, Joseph Keshet, Shai Shalev-Shwartz, and Yoram Singer著 「Online passive-aggressive algorithms. Journal of Machine Learning Research」 7:551{585, 2006. Jun Suzuki, Hideki Isozaki, and Eisaku Maeda著 「Convolution kernels with feature selection for natural language processing tasks. In Proceedings of the 42nd Annual Meeting of the Association for Computational Linguistics」 21-26 July, 2004, Barcelona, Spain., pages 119{126, 2004. X.Yan and J.Han著 「gspan:Graph-based substructure pattern mining」 2002. Naoki Yoshinaga and Masaru Kitsuregawa著 「Kernel slicing: Scalable online training with conjunctive features. In COLING 2010, 23rd International Conference on Computational Linguistics, Proceedings of the Conference」 23-27 August 2010, Beijing, China, pages 1245{1253, 2010. Mohammed Zaki著 「Efficiently mining frequent trees in a forest」 In Proc. of SIGKDD'02, pages 71{80, 2002.
しかしながら、上記の技術では、処理速度の低下やメモリの使用量が増大につながる場合がある。
Kernal法を利用する場合は、学習事例との内積を取る必要があり、学習データ数が増えると処理速度が問題となる。また、AROWを始めとするConfidence-Weighted-Learningでは、各素性の確信度も学習する必要があるので、perceptronやPAのように、カーネル関数を用いて各学習事例との内積を取る方法で暗黙的に素性を拡張する手法を用いることができない。
これらの問題を解決するために、素性の組合せを事前に陽に展開することが考えられる。しかし、組合せ数が増大し、メモリ消費量が増大する。例えば、素性の確信度を学習するConfidence-Weighted-Learningに、内積計算に基づくKernel法を組み込む代わりに、事前に、全ての素性を陽に展開する対応も方法論の一つとして考えられる。ところが、事前に全ての素性を陽に展開すると、下記の通り、膨大な数の素性の展開が発生するので、メモリの使用量が増大する。例えば、n種類の素性のd種類の素性の組合せまで考慮する場合、下記の式(1)に示す通りの素性が事前に展開される必要がある。また、上記の半構造データのうちStringの場合を例に挙げると、長さnのStringで連続するk文字までを全て列挙するとなると、下記の式(2)に示す数の部分文字列の列挙が必要となる。
Figure 0006597250
Figure 0006597250
1つの側面では、本発明は、メモリの使用量を抑制することができる学習プログラム、学習方法及び学習装置を提供することを目的とする。
一態様では、正例または負例のラベル付きのテキストを取得する処理と、前記取得する処理で取得されたテキストに含まれる素性を展開する処理と、テキストに含まれる素性の組合せまたは複数のテキストの間で生成される部分構造データと確信度とが対応付けられたモデルを参照して、前記展開する処理で展開された素性ごとに前記モデル内の前記素性の組合せまたは前記部分構造データと照合する処理と、前記照合する処理の結果が前記ラベルに反する場合、前記展開する処理で展開された素性の組合せまたは部分構造データのうち前記モデルと一致しない素性の組合せまたは部分構造データをモデルに追加する更新を行う処理とをコンピュータに実行させる。
メモリの使用量を抑制することができる。
図1は、実施例1に係る学習装置の機能的構成を示すブロック図である。 図2は、素性の動的展開に基づくperceptron擬似アルゴリズムの一例を示す図である。 図3は、学習データの一例を示す図である。 図4は、素性の展開の一例を示す図である。 図5は、素性の動的展開およびモデルの更新の一例を示す図である。 図6は、素性の動的展開およびモデルの更新の一例を示す図である。 図7は、素性の動的展開およびモデルの更新の一例を示す図である。 図8は、実施例1に係る学習処理の手順を示すフローチャートである。 図9は、素性の動的展開に基づくAROWの擬似アルゴリズムの一例を示す図である。 図10は、モデル内の部分構造を用いる照合の一例を示す図である。 図11は、実施例1及び実施例2に係る学習プログラムを実行するコンピュータのハードウェア構成例を示す図である。
以下に添付図面を参照して本願に係る学習プログラム、学習方法及び学習装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
図1は、実施例1に係る学習装置の機能的構成を示すブロック図である。図1に示す学習装置10は、自然言語処理における素性を学習する学習処理を行うものであり、一側面として、各素性の確信度を学習に用いるperceptronにおいて、Kernel法を使わずに、素性の組合せを考慮する場合にメモリの使用量が増大するのを抑制する。
すなわち、学習装置10は、事前に素性を展開するのではなく、動的に展開しながら、学習する方法を用いる。図2は、素性の動的展開に基づくperceptronの擬似アルゴリズムの一例を示す図である。図2に示す「x」は、文字列を指し、φ(x)は、文字列xに含まれる素性の組合せまたは文字列xの部分文字列、例えば2つの構造データ間で共通する部分文字列を取り出してベクトルにマッピングする関数を指す。図2に示す「w」は、重みベクトルを指し、例えば、d次元のベクトル空間が対象である場合、tラウンド目のd次元の重みベクトルは「w」で表される。なお、ここでは、書面の制約上、「w」の表記に斜体でない表記を用いたが、実際には、重みベクトルに関する「w」は斜体で表記される。
図2に示すように、学習装置10は、(1)分類時は、モデルに含まれる素性だけが必要である点、(2)更新時は、誤った事例から生成される素性だけが必要である点の2点に着目し、動的に素性を展開しながら、学習データから重みベクトルを学習する。すなわち、学習装置10は、学習時には、入力のうちモデルに含まれる素性だけを展開し、モデルとのスコアを計算し、分類が誤っている場合には、誤った事例から生成される素性だけを展開し、モデルを更新する。これにより、全ての素性の組合せや全ての部分構造ではなく、分類に必要な素性の組合せや部分構造だけを展開するだけで学習が可能となり、事前に素性の組合せや全ての部分素性を展開する場合と比較し、メモリの使用量の削減を実現できる。
図1に示す学習装置10は、上記の学習処理を実現するコンピュータである。
一実施形態として、学習装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の学習処理を実行する学習プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の学習プログラムを情報処理装置に実行させることにより、情報処理装置を学習装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータの他、スマートフォン、携帯電話機やPHS(Personal Handyphone System)などの移動体通信端末、さらには、PDA(Personal Digital Assistants)などのスレート端末などがその範疇に含まれる。また、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の学習処理に関するサービスを提供するサーバ装置として実装することもできる。例えば、学習装置10は、正例または負例のラベル付きの学習データ、または、学習データをネットワークもしくは記憶メディアを介して呼び出すことができる識別情報を入力とし、当該学習データに対する上記の学習処理の実行結果、すなわち分類器が用いるモデルを出力する学習サービスを提供するサーバ装置として実装される。この場合、学習装置10は、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記の学習処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
図1に示すように、学習装置10は、取得部11と、展開部12と、モデル記憶部13と、照合部14と、更新部15とを有する。なお、学習装置10は、図1に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
取得部11は、正例または負例のラベル付きの学習データを取得する処理部である。
一実施形態として、取得部11は、ハードディスクや光ディスクなどの補助記憶装置またはメモリカードやUSB(Universal Serial Bus)メモリなどのリムーバブルメディアに保存された学習データを読み出すことにより取得することもできる。この他、取得部11は、外部装置からネットワークを介して受信することによって学習データを取得することもできる。
ここで、以下では、一例として、図3に示す学習データが取得される場合を想定し、入力されるテキストをスパムまたは通常のいずれかのクラスに分類するのに用いるモデルをperceptronという手法にしたがって学習する場合を想定する。なお、ここでは、あくまで一例として、素性の組合せを学習する場合を例示するが、後述する通り、String、Tree、Graphなどの半構造データの学習を行う場合にも上記の学習処理を適用できる旨をここで予め付言しておく。
図3は、学習データの一例を示す図である。図3の上段に示す通り、取得部11は、「スパム」または「通常」のラベルが付与されたテキストを学習データとして取得する。このように学習データが取得されると、取得部11は、一例として、テキストに形態素解析を実行することにより形態素に分解し、テキストに含まれる名詞を抽出する。これにより、図3の下段に示す通り、ラベルと素性の対応関係が抽出される。例えば、1行目のテキスト「簡単な速度改善を考えてください」の場合、素性として「簡単」、「速度」、「改善」が抽出される。また、2行目のテキスト「売り上げは100万円以上」の場合、素性として「売り上げ」、「100万円」、「以上」が抽出される。また、3行目のテキスト「簡単な売り上げ100万円改善」の場合、素性として「簡単」、「売り上げ」、「100万円」、「改善」が抽出される。
この図3の下段に示す例では、ラベル「スパム」が付与されたテキストに含まれる単語は、全てラベル「通常」が付与されたテキストに含まれる単語にも含まれるので、両者の分類が困難である。
これに対し、既存の技術の場合、図4に示すように、素性の組合せを事前に展開して学習する対応が取られる。図4は、素性の展開の一例を示す図である。図4には、図3に示された単語のうち2つを組み合わせる場合が示されている。図4に示す通り、ラベルごとに2つの単語が組み合わせられた場合、素性の組合せの総数は、図3に示した10個の素性から22個まで増加する。このように、素性の組合せを事前に展開すると、メモリの使用量は増大する。以下では、メモリの使用量の増大を抑制するために、いかにして動的な素性の展開を実現するかについて説明を行う。
展開部12は、学習データに含まれる素性を動的に展開する処理部である。
一実施形態として、展開部12は、取得部11により取得された学習データTのうち未処理の学習データを1つ選択する。続いて、展開部12は、先に選択された学習データtの素性を指定のアルゴリズムにしたがって動的に展開する。例えば、展開部12は、2単語の組合せまでを抽出する場合、学習データtに含まれる単語と展開する共に、各単語が2つ組み合わせられた組合せを展開する。
図5〜図7は、素性の動的展開およびモデルの更新の一例を示す図である。図5には、図3に示した3つの学習データのうち1行目の学習データが処理される場合を示し、図6には、2行目の学習データが処理される場合を示し、図7には、3行目の学習データが処理される場合を示し、1行目の学習データ、2行目の学習データ、3行目の学習データの順に処理が実行される場合を想定する。また、図5〜図7には、各学習データに付与されたラベルにしがって学習データにスパム「1」または通常「−1」のスコアが付与される。
例えば、図5のS51に示す通り、図3に示した学習データの素性「簡単」、「速度」、「改善」が展開される場合、「簡単」、「速度」、「改善」、「簡単&速度」、「簡単&改善」、「速度&改善」の6つの素性の組合せが展開される。また、図6のS61に示す通り、図3に示した学習データの素性「売り上げ」、「100万円」、「以上」が展開される場合、「売り上げ」、「100万円」、「以上」、「売り上げ&100万円」、「売り上げ&以上」、「100万円&以上」の6つの素性の組合せが展開される。また、図7のS71に示す通り、図3に示した学習データの素性「簡単」、「売り上げ」、「100万円」、「改善」が展開される場合、「簡単」、「売り上げ」、「100万円」、「改善」、「簡単&売り上げ」、「簡単&100万円」、「簡単&改善」、「売り上げ&100万円」、「売り上げ&改善」、「100万円&改善」の10通りの素性の組合せが展開される。
照合部14は、モデル記憶部13に記憶されたモデルを参照して、展開部12により展開された素性ごとにモデル内の素性の組合せと照合する処理部である。
ここで、モデル記憶部13には、テキストに含まれる素性の組合せと確信度とが対応付けられたモデルが記憶される。このモデルは、学習処理が開始された段階ではエンプティであり、後述の更新部15により素性の組合せやその確信度が新規登録されたり、あるいは素性の組合せに対応付けられた確信度が更新される。ここで言う「確信度」は、スパムである確からしさを指すので、以下では、あくまで一側面として「スパムスコア」と記載する。
一実施形態として、照合部14は、展開部12により展開された学習データtの素性の組合せと、モデル記憶部13に記憶されたモデルに含まれる素性の組合せとを照合する。例えば、照合部14は、展開部12により展開された素性の組合せのうち1つ選択する。その上で、照合部14は、上記のモデルに含まれる素性の組合せの中に、先に選択された学習データtの素性の組合せと一致するものが存在するか否かを判定する。このとき、照合部14は、互いが一致する素性の組合せが存在する場合、当該モデルの素性の組合せに対応付けられたスパムスコアを、図示しない内部メモリのワークエリアに保存されたスパムスコアの累積値にさらに加算する。このように、照合部14は、展開部12により展開された全ての素性の組合せに関し、スパムスコアが合計されるまで、上記の照合を繰り返し実行する。
更新部15は、モデル記憶部13に記憶されたモデルを更新する処理部である。
一実施形態として、更新部15は、照合部14による処理の結果がラベルに反する場合、すなわち内部メモリに保存されたスパムスコアの累積値がゼロ以下である場合、展開部12により展開された素性の組合せのうちモデルと一致しない素性の組合せを追加する更新を行うと共に、モデルと一致する素性の組合せに対応付ける確信度をラベルに基づいて更新する。
例えば、図5に示す例の場合、S51で展開された6つの素性の組合せ、すなわち「簡単」、「速度」、「改善」、「簡単&速度」、「簡単&改善」及び「速度&改善」がモデルと照合される(S52)。この段階では、モデルには素性の組合せの登録がないので、展開部12により展開された素性の組合せと一致する素性の組合せもモデルに存在せず、スパムスコアの合計もゼロになる。この場合、S51で展開された6つの素性の組合せ、すなわち「簡単」、「速度」、「改善」、「簡単&速度」、「簡単&改善」及び「速度&改善」がモデル記憶部13へ追加される。このとき、素性の各組合せには、当該学習データtのラベル「負例」に付与されたスパムスコア「−1」が対応付けられる(S53)。
さらに、図6に示す例の場合、S61で展開された6つの素性の組合せ、すなわち「売り上げ」、「100万円」、「以上」、「売り上げ&100万円」、「売り上げ&以上」、「100万円&以上」がモデルと照合される(S62)。この段階では、モデルには素性の組合せの登録があるものの、S61で展開された素性の組合せと一致するものがないので、スパムスコアの合計もゼロになる。この場合、S61で展開された6つの素性の組合せ、すなわち「売り上げ」、「100万円」、「以上」、「売り上げ&100万円」、「売り上げ&以上」、「100万円&以上」がモデル記憶部13へ追加される。このとき、素性の各組合せには、当該学習データtのラベル「負例」に付与されたスパムスコア「−1」が対応付けられる(S63)。
さらに、図7に示す例の場合、S71で展開された10通りの素性の組合せ、すなわち「簡単」、「売り上げ」、「100万円」、「改善」、「簡単&売り上げ」、「簡単&100万円」、「簡単&改善」、「売り上げ&100万円」、「売り上げ&改善」、「100万円&改善」がモデルと照合される(S72)。この段階では、図7に示す反転表示のハッチングに対応するモデルの素性の組合せと、S71で展開された学習データtの素性の組合せとが一致する。すなわち、素性の組合せ「簡単」、「改善」、「簡単&改善」、「売り上げ」、「100万円」及び「売り上げ&100万円」が学習データ及びモデルの間で一致する。
この場合、S71で展開された学習データtの素性の組合せと一致するモデルの素性の組合せに対応付けられたスパムスコアの合計値は「−6」となるので、下記の通り、モデルの更新が実行される(S73)。具体的には、モデルに含まれる素性の組合せのうちS71で展開された学習データtの素性の組合せと一致するものを対象に、モデルに含まれる素性の組合せに対応付けられた現在のスパムスコアに学習データtのラベル「正例」に付与されたスパムスコア「+1」が加算される。すなわち、モデル内の素性の組合せ「簡単」、「改善」、「簡単&改善」、「売り上げ」、「100万円」及び「売り上げ&100万円」にスパムスコア「+1」が加算される。この結果、素性の組合せ「簡単」、「改善」、「簡単&改善」、「売り上げ」、「100万円」及び「売り上げ&100万円」に対応付けられたスパムスコアは「0」になる。さらに、S71で展開された学習データtの素性の組合せモデルに含まれる素性の組合せのうちとモデルに含まれる素性の組合せと一致しない素性の組合せがモデルに追加される。すなわち、S71で展開された10通りの素性の組合せのうち学習データtの素性の組合せと一致しない素性の組合せ、すなわち「簡単&売り上げ」、「簡単&100万円」、「売り上げ&改善」、「100万円&改善」がモデル記憶部13へ追加される。このとき、素性の各組合せには、当該学習データtのラベル「正例」に付与されたスパムスコア「+1」が対応付けられる。
以上の展開および更新により、図7に示したモデル13eが得られる。この図7に示したモデル13eと図3に示す1行目の学習データと照合した場合、スパムスコアの合計は「−3」となる。また、図7に示したモデル13eと図3に示す2行目の学習データと照合した場合、スパムスコアの合計は「−3」となる。さらに、図7に示したモデル13eと図3に示す3行目の学習データと照合した場合、スパムスコアの合計は「4」となる。このように、図7に示したモデル13eにしたがえば、ラベル通りの分類結果を導出することが可能になる。さらに、図3に示した3つの学習データにおいて2単語の全ての組合せを展開する場合には、22通りの素性の組合せが求められるのに対し、図5〜図7に示した通り、展開および更新を行うことにより、16通りの素性の組合せにまでその数を低減できる。したがって、メモリの使用量も抑制できる。
図8は、実施例1に係る学習処理の手順を示すフローチャートである。この学習処理では、入力部等の指示入力により学習が指示された場合に処理を起動したり、あるいは学習データが取得された場合に処理を自動的に起動することができる。
図8に示すように、取得部11は、学習データTを取得すると共に、学習の繰り返し回数Lの設定を取得する(ステップS101及びステップS102)。この繰り返し回数Lには、モデルに求める精度に応じて任意の回数を予め設定しておくことができる。なお、ステップS101及び102の処理は、実行される順序が順不同であってよく、並列して実行されることも妨げない。
続いて、取得部11は、ステップS101で取得された学習データTの全てのサンプルに関するステータス、例えばフラグ等を未処理に設定する(ステップS103)。そして、学習データTの中に未処理の学習データのサンプルが存在する限り(ステップS104Yes)、ステップS105以降の処理を実行する。
すなわち、展開部12は、ステップ101で取得された学習データTのうち未処理の学習データtを1つ選択する(ステップS105)。続いて、展開部12は、ステップS105で選択された学習データtの素性を指定のアルゴリズムにしたがって動的に展開する(ステップS106)。例えば、2単語の組合せまでを抽出する場合、学習データtに含まれる単語と展開されると共に、各単語が2つ組み合わせられた組合せが展開される。その上で、照合部14は、展開部12により展開された学習データtの素性の組合せと、モデル記憶部13に記憶されたモデルに含まれる素性の組合せとを照合する(ステップS107)。
そして、ステップS107の照合により得られたスパムスコアの合計が所定の閾値、例えばゼロ以下である場合(ステップS108Yes)、更新部15は、ステップS106で展開された素性の組合せと一致する素性の組合せがモデルの中に存在するか否かを判定する(ステップS109)。なお、スパムスコアの合計が所定の閾値以下ではない場合(ステップS108No)、モデルの更新は実行されず、ステップS104の処理へ移行する。
ここで、ステップS106で展開された素性の組合せと一致する素性の組合せがモデルの中に存在する場合(ステップS109Yes)、更新部15は、モデルに含まれる素性の組合せのうちステップS106で展開された学習データtの素性の組合せと一致するものを対象に、モデルに含まれる素性の組合せに対応付けられた現在のスパムスコアに学習データtのラベルに付与されたスパムスコアを加算する更新を行う(ステップS110)。なお、ステップS109Noの場合、ステップS110の処理はスキップされる。
また、ステップS106で展開された素性の組合せの中にモデルに含まれる素性の組合せと一致しない素性の組合せが存在する場合(ステップS111Yes)、更新部15は、モデルに含まれる素性の組合せと一致しない素性の組合せをモデル記憶部13へ追加する(ステップS112)。なお、ステップS111Noである場合、ステップS112の処理はスキップされる。その後、処理ステップは、ステップS104へ移行する。
その後、学習データTの中に未処理の学習データのサンプルが存在しない場合(ステップS104No)、図示しないレジスタ等に保持される繰り返し試行回数iをインクリメントする(ステップS113)。
そして、繰り返し試行回数iがステップS102で取得された繰り返し回数L未満である場合(ステップS114Yes)、処理ステップは、上記のステップS103へ移行し、ステップS103〜ステップS113までの処理が繰り返し実行される。
一方、繰り返し試行回数iがステップS102で取得された繰り返し回数Lになった場合(ステップS114No)、更新部15は、モデル記憶部13に記憶されたモデルを所定の出力先へ出力し(ステップS115)、処理を終了する。なお、モデルの出力先には、一例として、メールのフィルタリング処理を実行するアプリケーションプログラムなどが挙げられる。また、外部の装置からモデルの生成を依頼された場合には、その依頼元へ返信することができる。
[効果の一側面]
上述してきたように、本実施例に係る学習装置10は、学習時には、入力のうちモデルに含まれる素性だけを展開し、モデルとのスコアを計算し、分類が誤っている場合には、誤った事例から生成される素性だけを展開し、モデルを更新する。これにより、全ての素性の組合せではなく、分類に必要な素性の組合せを展開するだけで学習が可能となり、事前に素性の組合せを陽に展開せずともよくなる。したがって、本実施例に係る学習装置10によれば、メモリの使用量を抑制できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[部分構造データへの適用]
上記の実施例1では、perceptronの素性の組合せを学習する場合を例示したが、String、Tree、Graphなどの半構造データの学習を行う場合や、AROWといったConfidence-Weighted-Learningにも上記の学習処理を適用できる。図9は、素性の動的展開に基づくAROWの擬似アルゴリズムの一例を示す図である。図9に示す「x」は、単語列を指し、φ(x)は、単語列xに含まれる素性の組合せまたは単語列xの部分文字列、例えば2つの構造データ間で共通する部分文字列を取り出してベクトルにマッピングする関数を指す。図9に示す「μ」は、重みベクトルを指し、例えば、d次元のベクトル空間が対象である場合、tラウンド目のd次元の重みベクトルは「μ」で表される。また、図9に示す「Σ」は、素性の確信度を指し、例えば、tラウンド目の素性の確信度を保持するd×d行列が「Σ」で表される。この場合、学習装置10では、入力の単語列xに対し、関数φ(x)にてベクトルに陽に展開し、更新時に重みベクトルμだけでなく、素性の確信度を保持するΣも更新する。
すなわち、学習装置10は、分類時の展開に、既存の手法と同じく、モデルμ中の部分構造にマッチした場合にだけ処理を行なうことで、処理時間を軽減する。さらに、学習装置10は、マッチング時にモデルに部分マッチした場合にだけ部分構造の列挙を続けるという方法を用いる。
具体的には、更新時は、更新対象の入力を指定されたサイズまでの単語列を展開する。図10は、実装としてモデル内の部分構造をトライ構造に格納して照合する一例を示す図である。図10には、“eat”、“corn”、“soup”という3つの単語列が与えられた場合に、“coral”、“coring”、“corn”、“corn soup”(連続する単語列)がトライ構造で登録されているモデルに対し、“corn”と“soup”の組合せのマッチングを取っている状況を示す。図10に示すように、最初に先頭からマッチする単語である“corn”を見つけた後、続いて、組合せのデリミタ、図3では空白の丸があるので、続きにマッチする“soup”とマッチングを取って、終端記号の“♯”まで辿りつく。このように、モデルをトライ構造で保持し、入力とする学習データの素性の組合せがモデル内にある場合に、続いて学習データ内の残りの素性を含めて、モデルとのマッチングを取るという手順を行うことにより、全ての組合せを展開することなく、部分的にマッチした場合に、組合せを拡張する。
また、登録時には、一時的に、全ての組合せを展開する。例えば、“corn”、“eat”、“soup”という3つの単語に対し、最大2つまでの連続する単語の組合せをモデルに組み込む場合に、“eat”、“corn”、“soup”、“eat corn”、“corn soup”を展開して、既存のAROWと同じく、それぞれの素性の、分類用の素性の重みおよび、更新用の素性の確信度を計算し、トライ構造にて表現されたモデルに登録する。これにより、最初から、全ての事例の素性の組合せを展開せずとも、素性の組合せを学習することができる。
[系列ラベリングへの適用]
上記の学習処理は、系列ラベリングにも同様に適用できる。すなわち、stochastic gradient decent に基づくCRFの学習や構造化パーセプトロンにおいても、素性ベクトルの場合と同様に動的に素性を展開しながら学習可能である。
[他の半構造データへの適用]
また、上記の学習処理は、これまでに説明した以外の半構造データ、例えばStringやTreeなどにも同様に適用できる。すなわち、Mohammed Zaki著の文献、すなわち上記の非特許文献5に記載の方法にて、指定サイズまでの部分木を素性とする素性ベクトルを生成し更新を行う。ここで言う「指定サイズ」とは、含まれるノードの数である。Stringは、Treeのうち子供が一つしかない場合であるので、StringとTreeは同様のデータとして扱うことができる。また、上記の非特許文献5にあるよう、木構造は文字列にて表現できるため、上記ベクトルの例のようにトライ構造にて管理して、部分マッチした場合に、動的に展開しながら処理を行うことができる。
また、X.YanやJ.Hanらの文献、すなわち上記の非特許文献3に記載の方法にて、モデルの要素は、DFS(Depth-first search) codeにて保持しておき、DFS codeの部分にマッチしたら次をチェックするために展開するという方法にて、マッチングを行うことができる。そして、モデルの更新時には、重複がないように、指定サイズまでの部分グラフを列挙し、それぞれの部分グラフを素性とする、素性ベクトルを生成し、モデルの更新を行。ここで言う「指定サイズ」には、含まれるノードの数あるいは、エッジの数が該当する。
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、取得部11、展開部12、照合部14または更新部15を学習装置10の外部装置としてネットワーク経由で接続するようにしてもよい。また、取得部11、展開部12、照合部14または更新部15を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の学習装置10の機能を実現するようにしてもよい。
[学習プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図11を用いて、上記の実施例と同様の機能を有する学習プログラムを実行するコンピュータの一例について説明する。
図11は、実施例1及び実施例2に係る学習プログラムを実行するコンピュータのハードウェア構成例を示す図である。図11に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110〜180の各部はバス140を介して接続される。
HDD170には、図11に示すように、上記の実施例1で示した取得部11、展開部12、照合部14及び更新部15と同様の機能を発揮する学習プログラム170aが記憶される。この学習プログラム170aは、図1に示した取得部11、展開部12、照合部14及び更新部15の各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
このような環境の下、CPU150は、HDD170から学習プログラム170aを読み出した上でRAM180へ展開する。この結果、学習プログラム170aは、図11に示すように、学習プロセス180aとして機能する。この学習プロセス180aは、RAM180が有する記憶領域のうち学習プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、学習プロセス180aが実行する処理の一例として、図8に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
なお、上記の学習プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に学習プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から学習プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに学習プログラム170aを記憶させておき、コンピュータ100がこれらから学習プログラム170aを取得して実行するようにしてもよい。
10 学習装置
11 取得部
12 展開部
13 モデル記憶部
14 照合部
15 更新部

Claims (6)

  1. 正例または負例のラベル付きのテキストを取得する処理と、
    前記取得する処理で取得されたテキストに含まれる素性を展開する処理と、
    テキストに含まれる素性の組合せまたは複数のテキストの間で生成される部分構造データと確信度とが対応付けられたモデルを参照して、前記展開する処理で展開された素性ごとに前記モデル内の前記素性の組合せまたは前記部分構造データと照合する処理と、
    前記照合する処理の結果が前記ラベルに反する場合、前記展開する処理で展開された素性の組合せまたは部分構造データのうち前記モデルと一致しない素性の組合せまたは部分構造データをモデルに追加する更新を行う処理と
    をコンピュータに実行させることを特徴とする学習プログラム。
  2. 前記更新を行う処理は、前記展開する処理で展開された素性の組合せまたは部分構造データのうち前記モデルと一致する素性の組合せまたは部分構造データに対応付ける確信度を前記ラベルに基づいて更新することを特徴とする請求項1に記載の学習プログラム。
  3. 前記部分構造データは、配列構造、木構造またはグラフ構造のいずかにより表されるデータであることを特徴とする請求項1または2に記載の学習プログラム。
  4. 前記部分構造データは、前記複数のテキストの間で共通する部分文字列であることを特徴とする請求項3に記載の学習プログラム。
  5. 正例または負例のラベル付きのテキストを取得する処理と、
    前記取得する処理で取得されたテキストに含まれる素性を展開する処理と、
    テキストに含まれる素性の組合せまたは複数のテキストの間で生成される部分構造データと確信度とが対応付けられたモデルを参照して、前記展開する処理で展開された素性ごとに前記モデル内の前記素性の組合せまたは前記部分構造データと照合する処理と、
    前記照合する処理の結果が前記ラベルに反する場合、前記展開する処理で展開された素性の組合せまたは部分構造データのうち前記モデルと一致しない素性の組合せまたは部分構造データをモデルに追加する更新を行う処理と
    がコンピュータにより実行されることを特徴とする学習方法。
  6. 正例または負例のラベル付きのテキストを取得する取得部と、
    前記取得する処理で取得されたテキストに含まれる素性を展開する展開部と、
    テキストに含まれる素性の組合せまたは複数のテキストの間で生成される部分構造データと確信度とが対応付けられたモデルを参照して、前記展開する処理で展開された素性ごとに前記モデル内の前記素性の組合せまたは前記部分構造データと照合する照合部と、
    前記照合する処理の結果が前記ラベルに反する場合、前記展開する処理で展開された素性の組合せまたは部分構造データのうち前記モデルと一致しない素性の組合せまたは部分構造データをモデルに追加する更新を行う更新部と
    を有することを特徴とする学習装置。
JP2015238064A 2015-12-04 2015-12-04 学習プログラム、学習方法及び学習装置 Active JP6597250B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015238064A JP6597250B2 (ja) 2015-12-04 2015-12-04 学習プログラム、学習方法及び学習装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015238064A JP6597250B2 (ja) 2015-12-04 2015-12-04 学習プログラム、学習方法及び学習装置

Publications (2)

Publication Number Publication Date
JP2017102871A JP2017102871A (ja) 2017-06-08
JP6597250B2 true JP6597250B2 (ja) 2019-10-30

Family

ID=59016713

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015238064A Active JP6597250B2 (ja) 2015-12-04 2015-12-04 学習プログラム、学習方法及び学習装置

Country Status (1)

Country Link
JP (1) JP6597250B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110516039A (zh) * 2019-08-09 2019-11-29 济南浪潮数据技术有限公司 一种用户手册中信息的检索方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003067307A (ja) * 2001-08-27 2003-03-07 Kddi Corp 電子メール監視システム、電子メール監視方法、電子メール監視プログラム及びそれを記録した記録媒体
US7664819B2 (en) * 2004-06-29 2010-02-16 Microsoft Corporation Incremental anti-spam lookup and update service
JP4686724B2 (ja) * 2006-11-28 2011-05-25 国立大学法人山口大学 迷惑メールのフィルタ機能を有する電子メールシステム
WO2008146583A1 (ja) * 2007-05-23 2008-12-04 Nec Corporation 辞書登録システム、辞書登録方法および辞書登録プログラム

Also Published As

Publication number Publication date
JP2017102871A (ja) 2017-06-08

Similar Documents

Publication Publication Date Title
JP6816421B2 (ja) 学習プログラム、学習方法及び学習装置
CN109416705B (zh) 利用语料库中可用的信息用于数据解析和预测
CN107004159B (zh) 主动机器学习
JP5751251B2 (ja) 意味抽出装置、意味抽出方法、および、プログラム
CN103678418B (zh) 信息处理方法和信息处理设备
CN112732899A (zh) 摘要语句提取方法、装置、服务器及计算机可读存储介质
EP3685243A1 (en) Content pattern based automatic document classification
CN109564588A (zh) 学习数据过滤
JP2018194919A (ja) 学習プログラム、学習方法及び学習装置
EP3608798A1 (en) Group search method based on social network, device, server and storage medium
CN116821299A (zh) 智能问答方法、智能问答装置、设备及存储介质
JP2019185478A (ja) 分類プログラム、分類方法、および情報処理装置
CN113609846B (zh) 一种语句中实体关系的抽取方法及装置
JP2021092925A (ja) データ生成装置およびデータ生成方法
JP6597250B2 (ja) 学習プログラム、学習方法及び学習装置
CN110442674B (zh) 标签传播的聚类方法、终端设备、存储介质及装置
WO2020095655A1 (ja) 選定装置および選定方法
CN110019818B (zh) 一种批量注册邮箱的检测方法及装置
CN109614494B (zh) 一种文本分类方法及相关装置
US10643152B2 (en) Learning apparatus and learning method
CN113688240B (zh) 威胁要素提取方法、装置、设备及存储介质
JP6623380B2 (ja) 探索装置、探索方法および探索プログラム
JP5824429B2 (ja) スパムアカウントスコア算出装置、スパムアカウントスコア算出方法、及びプログラム
JP7168334B2 (ja) 情報処理装置、情報処理方法及びプログラム
CN112364169A (zh) 基于nlp的wifi识别方法、电子设备和介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190724

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190916

R150 Certificate of patent or registration of utility model

Ref document number: 6597250

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150