(57)【要約】【課題】少ない学習データを用いて効率的に学習することを課題とする。【解決手段】学習装置は、対象データに含まれる単語またはフレーズごとに、当該単語またはフレーズの分散表現を、共通の次元、および、対象データにおける役割を示すデータクラスに対応する次元に展開した入力ベクトルを生成する。そして、学習装置は、このようにして生成した入力ベクトルを用いた、対象データに含まれる単語またはフレーズの素性に関する機械学習を実行する。【選択図】図２
2019046099.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
対象データに含まれる単語またはフレーズごとに、当該単語またはフレーズの分散表現を、共通の次元、および、前記対象データにおける役割を示すデータクラスに対応する次元に展開した入力ベクトルを生成し、
前記入力ベクトルを用いた、前記対象データに含まれる単語またはフレーズの素性に関する機械学習を実行する、学習方法。
【請求項２】
前記対象データに出現する前記単語または前記フレーズの前記入力ベクトルを出現順で順次生成して、再帰型ニューラルネットワークに順次入力し、
各入力ベクトルが入力された前記再帰型ニューラルネットワークからの出力値である各状態ベクトルを用いて、前記対象データに含まれる単語またはフレーズの素性に関する機械学習を実行する請求項１に記載の学習方法。
【請求項３】
前記対象データに含まれる単語またはフレーズごとに生成した前記入力ベクトルを用いた連結入力ベクトルを生成してニューラルネットワークに入力し、前記対象データに含まれる単語またはフレーズの素性に関する機械学習を実行する請求項１に記載の学習方法。
【請求項４】
前記単語または前記フレーズに共通の素性である表層、品詞、固有表現のそれぞれに対応する変換パラメータを用いて、前記単語または前記フレーズから前記共通の次元に対応する分散表現と、前記データクラスに対応する分散表現とを生成して、各分散表現を連結させた前記入力ベクトルを生成する請求項１に記載の学習方法。
【請求項５】
前記単語またはフレーズが関係性の学習対象であるエンティティに該当する場合、前記共通の次元の第１の分散表現と、前記エンティティに対応するデータクラスの第２の分散表現と、前記エンティティ以外のその他のデータクラスの第３の分散表現とのうち、前記第３の分散表現に０を設定して、前記第１の分散表現と前記第２の分散表現と前記第３の分散表現とを結合した前記入力ベクトルを生成し、前記単語またはフレーズが前記エンティティに該当しない場合、前記第２の分散表現に０を設定して、前記第１の分散表現と前記第２の分散表現と前記第３の分散表現とを結合した前記入力ベクトルを生成する請求項４に記載の学習方法。
【請求項６】
コンピュータが、
対象データに含まれる単語またはフレーズごとに、当該単語またはフレーズの分散表現を、共通の次元、および、前記対象データにおける役割を示すデータクラスに対応する次元に展開した入力ベクトルを入力して、前記対象データに含まれる単語またはフレーズの素性に関する学習を実行した学習モデルを用いて、
判別対象データに含まれる単語またはフレーズごとに、当該単語またはフレーズの分散表現を、前記学習モデルの学習で用いられた入力ベクトルに対応する、共通の次元、および、前記データクラスに対応する次元に展開した入力ベクトルから、判別結果を取得する、学習結果の利用方法。
【請求項７】
判別対象データに含まれる単語またはフレーズごとに、当該単語またはフレーズの分散表現を、共通の次元、および、前記判別対象データにおける役割を示すデータクラスに対応する次元に展開した入力ベクトルが入力されて、
指定されたデータクラス間の関係性を示す値を出力するよう、
コンピュータを機能させるための学習済みモデル。
【請求項８】
対象データに含まれる単語またはフレーズごとに、当該単語またはフレーズの分散表現を、共通の次元、および、前記対象データにおける役割を示すデータクラスに対応する次元に展開した入力ベクトルと、指定されたデータクラス間の関係性を示す関係ラベル値とを含み、
学習装置が前記入力ベクトルと前記関係ラベル値との関係を学習する処理に用いられる、データ構造。
【請求項９】
コンピュータが、
対象データに含まれる単語またはフレーズごとに、当該単語またはフレーズの分散表現を、共通の次元、および、前記対象データにおける役割を示すデータクラスに対応する次元に展開した入力ベクトルを生成し、
前記入力ベクトルと、指定されたデータクラス間の関係性を示す関係ラベル値とを対応付けたデータを生成する、生成方法。
【請求項１０】
コンピュータに、
対象データに含まれる単語またはフレーズごとに、当該単語またはフレーズの分散表現を、共通の次元、および、前記対象データにおける役割を示すデータクラスに対応する次元に展開した入力ベクトルを生成し、
前記入力ベクトルを用いた、前記対象データに含まれる単語またはフレーズの素性に関する機械学習を実行する処理を実行させる、学習プログラム。
【請求項１１】
対象データに含まれる単語またはフレーズごとに、当該単語またはフレーズの分散表現を、共通の次元、および、前記対象データにおける役割を示すデータクラスに対応する次元に展開した入力ベクトルを生成する生成部と、
前記入力ベクトルを用いた、前記対象データに含まれる単語またはフレーズの素性に関する機械学習を実行する学習部と
を有する、学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習方法、学習結果の利用方法、学習済みモデル、データ構造、生成方法、学習プログラムおよび学習装置に関する。
【背景技術】
【０００２】
一般的なニューラルネットワークによる予測や分類では、連続値ベクトルを入力とし、一層から多層の線形変換または非線形変換を通して出力ベクトルを取得し、出力ベクトルに識別モデルや回帰モデルを適用することで、予測や分類を行う。
【０００３】
例えば、自然言語や商品の購買履歴のようにデータそのものが連続値の集合や系列の形ではない離散データを、ニューラルネットワークに適用する場合、入力を連続値ベクトル表現に変換することが行われる。一般的には、既知の変換パラメータを用いて、離散データ内の各単語を固定長ベクトルである分散表現に変換して、ニューラルネットワークに入力する。そして、線形変換や非線形変換における各層の入力の重みづけであるパラメータを、望む出力が得られるように調整することで、ニューラルネットワークの学習が実行される。
【０００４】
ニューラルネットワークを用いた機械学習の対象として、例えば自然言語で書かれた文中の２つのエンティティ（人名、地名など）の間の関係を推定する関係分類タスクのように、入力データ内の部分構造間の関係を扱うタスクが増えている。関係分類タスクを例にとると、分類には自然文に加え、文中のどの２つのエンティティに注目するのかの情報を考慮する必要がある。すなわち、入力文中の「注目するエンティティに相当する部分」と「注目するエンティティ以外の部分」を区別して扱わなければならない。このような情報を扱う際、入力文中の各単語に対して「注目するエンティティに相当する部分」、「注目するエンティティ以外の部分」のいずれにあたるかを示す属性を付与するという方法がある。以下では、このようなデータに付与されるタスク依存の属性を「データクラス」と記載する。データクラスを扱う学習の場合、タスクが設定されてはじめてデータクラスが確定するため、データクラスの区別を考慮した分散表現をタスクの学習データ以外から獲得する等の事前学習を行うことが困難であり、データクラスを考慮した特徴は比較的少量な正解付きの学習データのみから獲得する必要が生じる。このため、データクラスと、入力データに含まれるデータクラス以外の特徴（素性）とを組み合わせた特徴量に関する学習が進みにくく、結果として学習済みモデルを用いた予測性能や分類性能が劣化する。
【０００５】
近年では、データクラスを機械学習で扱うときの技術として、データクラスを識別する情報を単語とみなし、データクラスの対象単語との位置関係により、単語のデータクラスを表現し、ＲＮＮ（再帰型ニューラルネットワーク：Recurrent  Neural  Network）等を用いて系列データを分析する手法が知られている。例えば、学習対象のエンティティに該当する単語をＰＩ（Position  Indicator）でマークして区別し、ＰＩを含む入力データを、データクラスに依存しない共通の変換パラメータで分散表現に変換し、ニューラルネットワークに入力して学習を行う。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１５−１６９９５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記技術では、データクラスが対象単語との位置関係により表現されるので、データクラスの識別には系列データの識別が必要となるため、学習および判別の双方に多くのリソースを要する。
【０００８】
なお、タスク依存の属性であるデータクラスを、データの素性として扱う手法も考えられる。この手法では、各素性に対応する分散表現の獲得についての素性はデータクラスを考慮しない手法を用いた事前学習が可能な場合があるのに対して、データクラスに対応した素性については、学習データのみから学習される。このため、学習が進みにくく、特に学習データが少量である場合には、学習結果を用いた判別や分類の精度がよくない。
【０００９】
一つの側面では、少ない学習データを用いて効率的に学習することができる学習方法、学習結果の利用方法、学習済みモデル、データ構造、生成方法、学習プログラムおよび学習装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の案では、学習方法は、コンピュータが、対象データに含まれる単語またはフレーズごとに、当該単語またはフレーズの分散表現を、共通の次元、および、前記対象データにおける役割を示すデータクラスに対応する次元に展開した入力ベクトルを生成する。学習方法は、コンピュータが、前記入力ベクトルを用いた、前記対象データに含まれる単語またはフレーズの素性に関する機械学習を実行する。
【発明の効果】
【００１１】
一実施形態によれば、少ない学習データを用いて効率的に学習することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１にかかる学習処理から判別処理までの全体構成を説明する図である。
【図２】図２は、実施例１にかかる学習装置の機能構成を示す機能ブロック図である。
【図３】図３は、学習データＤＢに記憶される情報の例を示す図である。
【図４】図４は、教師データＤＢに記憶される情報の例を示す図である。
【図５】図５は、エンティティ１に対応する入力ベクトルの生成例を説明する図である。
【図６】図６は、その他に対応する入力ベクトルの生成例を説明する図である。
【図７】図７は、エンティティ２に対応する入力ベクトルの生成例を説明する図である。
【図８】図８は、学習例を説明する図である。
【図９】図９は、処理の流れを示すフローチャートである。
【図１０】図１０は、データクラスごとの分散表現による学習の効果を説明する図である。
【図１１】図１１は、データクラスに依存しない共通素性の分散表現による学習の効果を説明する図である。
【図１２】図１２は、実施例１による学習の効果を説明する図である。
【図１３】図１３は、ハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示する学習方法、学習結果の利用方法、学習済みモデル、データ構造、生成方法、学習プログラムおよび学習装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１４】
［全体構成］
図１は、実施例１にかかる学習処理から判別処理までの全体構成を説明する図である。図１に示すように、実施例１では、学習処理を行う学習装置１０と判別処理を行う判別装置５０とが別々の筐体で実行する例を説明するが、これに限定されるものではなく、同じ筐体で実行されてもよい。また、学習装置１０と判別装置５０は、サーバ、パーソナルコンピュータ、タブレットなどのコンピュータ装置の一例である。
【００１５】
学習装置１０は、入力データ内のエンティティ間にどのような関係があるかを分類するタスクに依存する属性であるデータクラスを扱う学習を実行する。具体的には、学習装置１０は、新聞記事やＷｅｂから抽出した文などである系列の形式の学習データから教師データを作成する処理を実行する。そして、学習装置１０は、学習データから生成した今日データを用いて学習処理を実行して、学習済みモデルを生成する。
【００１６】
例えば、学習装置１０は、各学習データについて、学習データに含まれる単語またはフレーズごとに、当該単語またはフレーズの分散表現を、共通の次元、および、学習データにおける役割を示すデータクラスに対応する次元に展開した入力ベクトルを生成する。そして、学習装置１０は、各学習データから、入力ベクトルと正解ラベルとを関連付けた教師データを生成する。その後、学習装置１０は、教師データをＲＮＮなどのニューラルネットワークなどに入力して、入力ベクトルと正解ラベルとの関係性を学習し、学習済みモデルを生成する。
【００１７】
このように、学習装置１０は、指定したエンティティ間の関係を精度よく分類する関係分類モデルの学習を実行することができ、少ない学習データを用いて効率的に学習することができる。
【００１８】
判別装置５０は、学習装置１０による学習結果を反映させた学習済みモデルに、判別対象データを入力して判別結果を取得する。例えば、判別装置５０は、学習装置１０による学習で得られたＲＮＮの各種パラメータを設定した学習済みモデルに、判別対象データに含まれる単語またはフレーズごとに、当該単語またはフレーズの分散表現を、共通の次元、および、判別対象データにおける役割を示すデータクラスに対応する次元に展開した入力ベクトルを入力する。そして、判別装置５０は、学習済みモデルによって、指定されたデータクラス間の関係性を示す値を取得する。このようにして、判別装置５０は、判別対象データを入力して判別結果を得ることができる。なお、判別対象データから入力ベクトルを生成する手法は、学習データから入力ベクトルを生成する手法と同様である。
【００１９】
［機能構成］
図２は、実施例１にかかる学習装置１０の機能構成を示す機能ブロック図である。なお、判別装置５０は、学習装置１０による学習結果を反映させた学習済みモデルを使用する点以外は、一般的な判別装置と同様の機能を有するので、ここでは、詳細な説明は省略する。
【００２０】
図２に示すように、学習装置１０は、通信部１１、記憶部１２、制御部２０を有する。通信部１１は、他の装置の通信や入出力を制御する処理部であり、例えば通信インタフェースや入出力インタフェースなどである。例えば、通信部１１は、学習データなどの入力を受け付け、学習結果を判別装置５０に出力する。
【００２１】
記憶部１２は、プログラムやデータを記憶する記憶装置の一例であり、例えばメモリやプロセッサなどである。この記憶部１２は、学習データＤＢ１３と教師データＤＢ１４とパラメータＤＢ１５とを記憶する。
【００２２】
学習データＤＢ１３は、教師データの元となる学習データを記憶するデータベースであり、ここで記憶される情報は、管理者等によって格納される。図３は、学習データＤＢ１３に記憶される情報の例を示す図である。図３に示すように、学習データＤＢ１３は、「項番、学習データ」を対応付けて記憶する。「項番」は、学習データを識別する識別子であり、「学習データ」は、学習対象のデータそのものである。
【００２３】
図３の例では、項番１の学習データは、「特許太郎は、日本の実業家。福岡県出身。富士通代表取締役社長。」であり、エンティティ１として「特許太郎」が指定され、エンティティ２として「福岡県」が設定されていることを示す。同様に、項番２の学習データは、「特許太郎は、日本の実業家。福岡県出身。富士通代表取締役社長。」であり、エンティティ１として「特許太郎」が指定され、エンティティ２として「富士通」が設定されていることを示す。
【００２４】
ここで、エンティティとは、対象データにおける役割を示すデータクラスの一つであり、入力データである学習データ内で関係性の学習対象を示し、管理者等によって任意に指定できる。つまり、項番１の場合は、学習データである文の各単語のうち、特許太郎と福岡県の関係性が学習対象であることを示し、項番２の場合は、学習データである文の各単語のうち、特許太郎と富士通の関係性が学習対象であることを示す。なお、ここでは、エンティティが２つの例で説明するが、１つもしくは３つ以上であってもよい。
【００２５】
また、学習データは、時系列で発生した時系列データを順次記憶したものである。例えば、項番１の学習データは、「特許」から順次発生し、「。」が最後に発生したデータであり、発生順で連結させて記憶させたデータである。言い換えると、項番１の学習データは、「特許」が最初に出現し、「。」が最後に出現するデータである。どこまでを１つの学習データとするかは、任意に設定変更することができる。
【００２６】
教師データＤＢ１４は、学習に使用される教師データを記憶するデータベースであり、ここで記憶される情報は、後述する生成部２１によって生成される。図４は、教師データＤＢ１４に記憶される情報の例を示す図である。図４に示すように、教師データＤＢ１４は、「項番、入力ベクトル、関係ラベル」を対応付けて記憶する。
【００２７】
「項番」は、教師データを識別する識別子である。「入力ベクトル」は、ニューラルネットワークへ入力する入力データである。「関係ラベル」は、エンティティ間の関係性を示す正解ラベルである。
【００２８】
図４の例では、項番１の教師データは、入力ベクトルが「入力ベクトル１［0.3，0.7，・・・，・・・，・・・］」であり、関係ラベルが「出身地」であることを示す。なお、図４の項番と図３の項番とは同期が取れており、図３の項番１の学習データから生成された教師データが図４の項番１であることを示す。したがって、図３の項番１の学習データにおけるエンティティ１「特許太郎」とエンティティ２「福岡県」の関係性が「出身地」となるように、図４の項番１の入力ベクトルを用いて学習することを示す。
【００２９】
パラメータＤＢ１５は、ＲＮＮなどのニューラルネットワークに設定される各種パラメータを記憶するデータベースである。例えば、パラメータＤＢ１５は、学習されたニューラルネットワークのシナプスの重みなどを記憶する。なお、ここで記憶される各パラメータを設定したニューラルネットワークが学習済みモデルとなる。
【００３０】
制御部２０は、学習装置１０全体を司る処理部であり、例えばプロセッサなどである。制御部２０は、生成部２１と学習部２２とを有する。なお、生成部２１と学習部２２は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【００３１】
生成部２１は、学習データから教師データを生成する処理部である。具体的には、生成部２１は、学習データに含まれる単語またはフレーズごとに、当該単語またはフレーズの分散表現を、共通の次元、および、学習データにおける役割を示すデータクラスに対応する次元に展開した入力ベクトルを生成する。なお、データクラスとは、学習データにおける役割を示し、判別タスクや分類（学習）タスクにおける入力データの属性のうち、解くべきタスクを明らかにするために必要なタスク依存の属性である。また、タスクとは、学習処理のことを示し、入力データ内のエンティティ間にどのような関係があるかを分類する処理を示す。
【００３２】
例えば、学習データを構成する各単語は、「田中」や「特許」などの単語の表層だけでなく、「名詞」や「助詞」などの品詞、「単語によって表現される人物や動物」などを示す固有表現などの様々な素性の組合せで表現される。生成部２１は、これをニューラルネットワークへの入力として表現するために、各素性に対応する既知の変換パラメータを用いて各素性を離散データに変換し、各素性の離散データを結合することで、各単語の分散表現を生成する。このとき、生成部２１は、データクラスごとに分散表現を区別して持たせるとともに、データクラスに依存しない共通の素性を「共通部分」と「個別部分」の２箇所にもつように、学習データの各単語から入力ベクトル（分散表現）を生成する。
【００３３】
詳細には、生成部２１は、各単語について、共通素性「表層、品詞、固有表現」のそれぞれに対応する変換パラメータを用いて、共通部分「表層（共通）、品詞（共通）、固有表現（共通）」と、エンティティ１部分「エンティティ１表層、エンティティ１品詞、エンティティ１固有表現」と、エンティティ２部分「エンティティ２表層、エンティティ２品詞、エンティティ２固有表現」と、その他部分「その他表層、その他品詞、その他固有表現」とのそれぞれに対応する分散表現を生成し、各分散表現を結合した入力ベクトルを生成する。
【００３４】
つまり、生成部２１は、学習データに対して形態素解析などを行って、学習データを単語やフレーズに分類する。そして、生成部２１は、先頭から順に、分類した単語またはフレーズがエンティティ（エンティティ１またはエンティティ２）に該当するか否かを判定する。続いて、生成部２１は、単語またはフレーズがエンティティに該当する場合は、共通部分とエンティティ部分とのそれぞれに同じ次元の同じベクトルが入力された入力ベクトルを生成する。また、生成部２１は、単語またはフレーズがエンティティに該当しない場合は、共通部分とその他部分とのそれぞれに同じ次元の同じベクトルが入力された入力ベクトルを生成する。
【００３５】
このように、生成部２１は、学習データ内の各単語が属するデータクラスに対応する分散表現およびデータクラスに依存しない共通素性の分散表現を生成することで、学習データから入力ベクトルを生成する。すなわち、生成部２１は、データクラスをインデックスで分けた入力ベクトルを生成する。ここで、図５から図７を用いて、各データクラスに対応する入力ベクトルの生成例を説明する。
【００３６】
（データクラス：エンティティ１）
図５は、エンティティ１に対応する入力ベクトルの生成例を説明する図である。図５に示すように、生成部２１は、項番１の学習データを形態素解析して得られた先頭の「特許」を、共通素性「表層」に対応するパラメータＥと、共通素性「品詞」に対応するパラメータＥ´と、共通素性「固有表現」に対応するパラメータＥ´´のそれぞれを用いて処理することで、各素性に対応する離散データ「0.3，0.7，・・・」を生成する。
【００３７】
そして、生成部２１は、入力である「特許」がエンティティ１に該当することから、生成した各素性に対応する離散データ「0.3，0.7，・・・」を、共通部分「表層（共通）、品詞（共通）、固有表現（共通）」と、エンティティ１部分「エンティティ１表層、エンティティ１品詞、エンティティ１固有表現」とに入力し、エンティティ２部分およびその他部分に０を入力した入力ベクトル「0.3，0.7，・・・，0.3，0.7，・・・，0，0，・・・，0，0，・・・」を生成する。そして、生成部２１は、この入力ベクトルを学習部２２に入力する。なお、この入力ベクトルは、各素性がｄ次元であり、３つのデータクラス（エンティティ１、エンティティ２、その他）と１つの共通素性が存在することから、「ｄ×４」次元のデータとなる。
【００３８】
（データクラス：その他）
図６は、その他に対応する入力ベクトルの生成例を説明する図である。図６に示すように、生成部２１は、項番１の学習データを形態素解析して得られた先頭の「は」を、共通素性「表層」に対応するパラメータＥと、共通素性「品詞」に対応するパラメータＥ´と、共通素性「固有表現」に対応するパラメータＥ´´のそれぞれを用いて処理することで、各素性に対応する離散データ「0.1，0.3，・・・」を生成する。
【００３９】
そして、生成部２１は、入力である「は」がその他に該当することから、生成した各素性に対応する離散データ「0.1，0.3，・・・」を、共通部分「表層（共通）、品詞（共通）、固有表現（共通）」と、その他「その他表層、その他品詞、その他固有表現」とに入力し、エンティティ１部分およびエンティティ２部分に０を入力した入力ベクトル「0.1，0.3，・・・，0，0，・・・，0，0，・・・，0.1，0.3，・・・」を生成する。そして、生成部２１は、この入力ベクトルを学習部２２に入力する。
【００４０】
（データクラス：エンティティ２）
図７は、エンティティ２に対応する入力ベクトルの生成例を説明する図である。図７に示すように、生成部２１は、項番１の学習データを形態素解析して得られた先頭の「福岡」を、共通素性「表層」に対応するパラメータＥと、共通素性「品詞」に対応するパラメータＥ´と、共通素性「固有表現」に対応するパラメータＥ´´のそれぞれを用いて処理することで、各素性に対応する離散データ「0.2，0.4，・・・」を生成する。
【００４１】
そして、生成部２１は、入力である「福岡」がエンティティ２に該当することから、生成した各素性に対応する離散データ「0.2，0.4，・・・」を、共通部分「表層（共通）、品詞（共通）、固有表現（共通）」と、エンティティ２部分「エンティティ２表層、エンティティ２品詞、エンティティ２固有表現」とに入力し、エンティティ１部分およびその他部分に０を入力した入力ベクトル「0.2，0.4，・・・，0，0，・・・，0.2，0.4，・・・，0，0，・・・」を生成する。そして、生成部２１は、この入力ベクトルを学習部２２に入力する。
【００４２】
その後、生成部２１は、項番１の学習データの各単語等に対して生成した入力ベクトルを結合して、学習データ１に対応する入力ベクトルを生成し、教師データＤＢ１４に格納する。
【００４３】
図２に戻り、学習部２２は、入力ベクトルをニューラルネットワークに入力して、エンティティ間の関係性を学習する処理部である。具体的には、学習部２２は、生成部２１から出力される入力ベクトルをＲＮＮに順次入力して状態ベクトルを取得し、状態ベクトルを識別層に入力して出力値を取得する。そして、学習部２２は、入力ベクトルに対応する正解ラベルを教師データＤＢ１４から特定し、出力値と正解ラベルとを比較して得られる誤差に基づいて、ＲＮＮを学習する。その後、学習部２２は、ＲＮＮの学習が終了すると、学習結果をパラメータＤＢ１５に格納する。なお、学習終了のタイミングは、誤差が所定値以下になったときや学習回数が所定回数以上となったときなど、任意に設定することができる。
【００４４】
図８は、学習例を説明する図である。図８に示すように、学習部２２は、学習データの先頭の単語「特許」から生成された入力ベクトルｖ１と、状態ベクトルの初期値Ｓ０とをＲＮＮに入力して、状態ベクトルＳ１を取得する。続いて、学習部２２は、学習データの２番目の単語「太郎」から生成された入力ベクトルｖ２と状態ベクトルＳ１とをＲＮＮに入力して、状態ベクトルＳ２を取得する。このようにして、学習部２２は、学習データの単語から生成された入力ベクトルと状態ベクトルとをＲＮＮに順次入力して状態ベクトルを生成し、最終的に学習データの終わりを示すＥＯＳに対応する入力ベクトルｖｎを入力して状態ベクトルＳｎを生成する。
【００４５】
その後、学習部２２は、学習データを用いて得られた状態ベクトル（Ｓ１〜Ｓｎ）を識別層に入力して出力値を取得する。そして、学習部２２は、出力値と正解ラベルとの比較結果を用いた誤差逆伝播（error  Back  Propagation：BP）法などによって、ＲＮＮのパラメータを学習する。
【００４６】
例えば、学習データ「特許太郎は、日本の実業家。福岡県出身。富士通代表取締役社長。」の「特許太郎」と「福岡県」の関係性を学習する場合、学習部２２は、学習データから生成された各入力ベクトルをＲＮＮに代入し、得られた出力値と正解ラベル「出身地」とを比較する。そして、学習部２２は、出力値と正解ラベル「出身地」との誤差が小さくなるように、ＲＮＮを学習する。
【００４７】
同様に、学習データ「特許太郎は、日本の実業家。福岡県出身。富士通代表取締役社長。」の「特許太郎」と「富士通」の関係性を学習する場合、学習部２２は、学習データから生成された各入力ベクトルをＲＮＮに代入し、得られた出力値と正解ラベル「所属」とを比較する。そして、学習部２２は、出力値と正解ラベル「所属」との誤差が小さくなるように、ＲＮＮを学習する。
【００４８】
なお、ここでは、状態ベクトル（Ｓ１〜Ｓｎ）の全部を使用する例を説明したが、これに限定されるものではなく、任意の組合せの状態ベクトルを使用することができる。また、ここでは、ＲＮＮを用いた学習例を説明したが、これに限定されるものではなく、ＣＮＮ（Convolutional  Neural  Network）など他のニューラルネットワークを採用することもできる。
【００４９】
［処理の流れ］
図９は、処理の流れを示すフローチャートである。図９に示すように、学習装置１０の生成部２１は、学習データを取得すると（Ｓ１０１：Ｙｅｓ）、学習データを形態素解析して複数の単語を取得し、先頭から順に単語を読み込む（Ｓ１０２）。
【００５０】
続いて、生成部２１は、読み込んだ単語がエンティティに該当する場合（Ｓ１０３：Ｙｅｓ）、共通部分の分散表現と該当エンティティ部分の分散表現とを生成し、その他（非該当のエンティティ部分とその他部分）に０を入力した入力ベクトルを生成する（Ｓ１０４）。
【００５１】
一方、生成部２１は、読み込んだ単語がエンティティに該当しない場合（Ｓ１０３：Ｎｏ）、共通部分の分散表現とその他部分の分散表現とを生成し、各エンティティ部分に０を入力した入力ベクトルを生成する（Ｓ１０５）。
【００５２】
その後、生成部２１は、生成した入力ベクトルをＲＮＮに入力し（Ｓ１０６）、学習部２２は、入力ベクトルを用いて状態ベクトルを出力する（Ｓ１０７）。そして、未処理の単語が残っている場合は（Ｓ１０８：Ｙｅｓ）、Ｓ１０２以降を繰り返す。
【００５３】
一方、未処理の単語が残っていない場合は（Ｓ１０８：Ｎｏ）、学習部２２は、各単語に対応する入力ベクトルを用いて出力された状態ベクトルを識別層に入力して値を出力する（Ｓ１０９）。
【００５４】
そして、学習部２２は、識別層から出力された出力値と正解ラベルとを比較し（Ｓ１１０）、比較結果にしたがってＲＮＮの各種パラメータを学習する（Ｓ１１１）。
【００５５】
［効果］
上述したように、学習装置１０は、タスク依存の属性であるために学習の進みにくい「データクラス」について、それらを入力表現において明確に区別することで、データクラスを識別するための学習を省略することができる。また、学習装置１０は、入力表現においてデータクラスの異なりを明確に区別することにより、データクラスに依存しない特徴の獲得が進みにくくなる弊害が発生するが、入力表現の一部を全てのデータクラスで共有することでこの弊害を解消することができる。したがって、学習装置１０は、データクラスの区別を表す特徴を学習によって獲得することなく、必要な学習データや学習コストを浴せでき、少量の学習データからの学習を行うことができる。
【００５６】
また、学習装置１０は、データクラスでインデックスを分けることにより、データクラスの対象の単語の素性のうち、データクラスに依存しない特徴についての学習が進みにくくなるという弊害が発生する場合があるが、複数のデータクラスで共通の素性を同じインデックスで共有し、ニューラルネットワークに入力して学習する。このため、学習装置１０は、データクラスに依存しない特徴とデータクラスに依存する特徴とを同時にニューラルネットワークに学習させることができ、上記弊害の発生を抑制できる。
【００５７】
図１０は、データクラスごとの分散表現による学習の効果を説明する図である。学習装置１０による学習では、ニューラルネット第一層の重みパラメータがそれぞれ１種のデータクラスのみに起因したものになる。例えば、図１０に示すように、エンティティ１に対応する単語の入力ベクトルを入力した場合、エンティティ１に起因する特徴のみが重みに反映される。このため、学習装置１０は、入力ベクトル上でデータクラスが明確に区別されているので、「データクラスをニューラルネット中で識別する」処理の実行を省略できる。このため、学習装置１０は、例えば学習データ量やニューラルネットの層など、データクラス識別のためのリソースを低減することができる。
【００５８】
図１１は、データクラスに依存しない共通素性の分散表現による学習の効果を説明する図である。データクラスごとの分散表現だけでは、データクラスに依存しない特徴の学習が進みにくい。そこで、図１１に示すように、学習装置１０は、データクラスに依存しない共通部分を設けることで、共通部分からの重みが共有されるので、更新頻度が高くなり効果的に学習できる。つまり、データクラスによらず重みを共有できる特徴は、共通部分で繰り返し更新されるので、効率的に学習できる。
【００５９】
図１２は、実施例１による学習の効果を説明する図である。実施例１による学習装置１０は、図１０と図１１を組み合わせることで、学習効率を向上させることができる。例えば、エンティティ１の人物らしさを識別するノードを例にして説明すると、図１２に示すように、共通部分については、データクラスにより異なる方向に更新されて影響が相殺され、エンティティ１部分については影響が大きく方向に更新され、エンティティ２部分とその他部分とについては影響が小さくなる方向に更新される。
【００６０】
このように、学習装置１０は、データクラス依存の特徴について、共通部分への誤差伝播の影響がデータクラスによって異なる方向になるために影響を相殺することができる。したがって、学習装置１０は、学習効率を向上させることができるので、少ない学習データを用いて効率的に学習することができる。
【実施例２】
【００６１】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【００６２】
［学習データ］
上記実施例では、複数の単語から構成される一文を学習データに用いる例を説明したが、これに限定されるものではなく、１個以上の単語を学習データに採用することができる。つまり、単語素性の系列は複数であっても単数であってもよい。なお、一文の学習データの各単語から生成された各入力ベクトルをＲＮＮに順次入力するのではなく、一文の学習データの各単語から生成された各入力ベクトルを結合した１つの入力データをニューラルネットワークに入力する学習手法を採用することもできる。
【００６３】
［共通素性］
上記実施例では、素性として「表層、品詞、固有表現」を例示したが、これに限定されるものではなく、素性の種別や数を任意に変更することができる。また、パラメータＥ等は、予め定められた既知の情報である。例えば、品詞であっても、名詞にはパラメータＥ１´が対応付けられ、助詞にはパラメータＥ２´が対応付けられる。同様に、固有表現であっても、人物にはパラメータＥ１´´が対応付けられ、土地にはパラメータＥ２´´が対応付けられる。
【００６４】
［ニューラルネットワーク］
上記実施例では、ＲＮＮを用いる例を説明したが、ＣＮＮなど他のニューラルネットワークを用いることもできる。また、学習の手法も、誤差逆伝播以外にも公知の様々な手法を採用することができる。また、ニューラルネットワークは、例えば入力層、中間層（隠れ層）、出力層から構成される多段構成であり、各層は複数のノードがエッジで結ばれる構造を有する。各層は、「活性化関数」と呼ばれる関数を持ち、エッジは「重み」を持ち、各ノードの値は、前の層のノードの値、接続エッジの重みの値、層が持つ活性化関数から計算される。なお、計算方法については、公知の様々な手法を採用できる。
【００６５】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００６６】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６７】
［ハードウェア構成］
図１３は、ハードウェア構成例を示す図である。図１３に示すように、学習装置１０は、通信インタフェース１０ａ、ＨＤＤ（Hard  Disk  Drive）１０ｂ、メモリ１０ｃ、プロセッサ１０ｄを有する。なお、判別装置５０も同様の構成を有する。
【００６８】
通信インタフェース１０ａは、他の装置の通信を制御するネットワークインタフェースカードなどである。ＨＤＤ１０ｂは、プログラムやデータなどを記憶する記憶装置の一例である。
【００６９】
メモリ１０ｃの一例としては、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等のＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ等が挙げられる。プロセッサ１０ｄの一例としては、ＣＰＵ（Central  Processing  Unit）、ＤＳＰ（Digital  Signal  Processor）、ＦＰＧＡ（Field  Programmable  Gate  Array）、ＰＬＤ（Programmable  Logic  Device）等が挙げられる。
【００７０】
また、学習装置１０は、プログラムを読み出して実行することで学習方法を実行する情報処理装置として動作する。つまり、学習装置１０は、生成部２１と学習部２２と同様の機能を実行するプログラムを実行する。この結果、学習装置１０は、生成部２１と学習部２２と同様の機能を実行するプロセスを実行することができる。なお、この他の実施例でいうプログラムは、学習装置１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【００７１】
１０  学習装置
１１  通信部
１２  記憶部
１３  学習データＤＢ
１４  教師データＤＢ
１５  パラメータＤＢ
２０  制御部
２１  生成部
２２  学習部
【図１】
2019046099.tif 000003
【図２】
2019046099.tif 000004
【図３】
2019046099.tif 000005
【図４】
2019046099.tif 000006
【図５】
2019046099.tif 000007
【図６】
2019046099.tif 000008
【図７】
2019046099.tif 000009
【図８】
2019046099.tif 000010
【図９】
2019046099.tif 000011
【図１０】
2019046099.tif 000012
【図１１】
2019046099.tif 000013
【図１２】
2019046099.tif 000014
【図１３】
2019046099.tif 000015