(57)【要約】【課題】埋め込みベクトルを高精度に求める。【解決手段】学習装置は、学習部と、出力制御部と、を備える。学習部は、単語の配置を示す複数の第１配置パターンごとに定められた複数の隠れ層と、複数の隠れ層の少なくとも一部と接続される出力層とを含むニューラルネットワークの入力層に、文書に含まれる形態素のうち複数の第１配置パターンのいずれかに適合する１以上の第１形態素を入力し、文書に含まれる形態素のうち、単語の配置を示す複数の第２配置パターンのいずれかに適合する１以上の第２形態素と、入力された第１形態素に対してニューラルネットワークから出力された結果と、の誤差を最小化するようにニューラルネットワークを学習する。出力制御部は、学習されたニューラルネットワークの重みに基づいて得られる、第１形態素の埋め込みベクトルを出力する。【選択図】図１
2020113041.tif 000002
【特許請求の範囲】
【請求項１】
単語の配置を示す複数の第１配置パターンごとに定められた複数の隠れ層と、複数の前記隠れ層の少なくとも一部と接続される出力層とを含むニューラルネットワークの入力層に、文書に含まれる形態素のうち複数の前記第１配置パターンのいずれかに適合する１以上の第１形態素を入力し、
前記文書に含まれる形態素のうち、単語の配置を示す複数の第２配置パターンのいずれかに適合する１以上の第２形態素と、入力された前記第１形態素に対して前記ニューラルネットワークから出力された結果と、の誤差を最小化するように前記ニューラルネットワークを学習する
学習部と、
学習された前記ニューラルネットワークの重みに基づいて得られる、前記第１形態素の埋め込みベクトルを出力する出力制御部と、
を備える学習装置。
【請求項２】
前記学習部は、前記第１形態素と前記第２形態素の位置関係ごとに、前記誤差の重みを変更する、
請求項１に記載の学習装置。
【請求項３】
前記学習部は、前記第１形態素と前記第２形態素の少なくとも一部が重複する場合に、重複しない場合より前記重みを小さくする、
請求項２に記載の学習装置。
【請求項４】
前記第１配置パターンおよび前記第２配置パターンは、２以上の形態素の配置を示すパターンである、
請求項１に記載の学習装置。
【請求項５】
前記第１配置パターンおよび前記第２配置パターンは、１以上の他の形態素を間に含む、２以上の形態素の配置を示すパターンである、
請求項４に記載の学習装置。
【請求項６】
単語の配置を示す複数の第１配置パターンごとに定められた複数の隠れ層と、複数の前記隠れ層の少なくとも一部と接続される出力層とを含むニューラルネットワークの入力層に、文書に含まれる形態素のうち複数の前記第１配置パターンのいずれかに適合する１以上の第１形態素を入力し、
前記文書に含まれる形態素のうち、単語の配置を示す複数の第２配置パターンのいずれかに適合する１以上の第２形態素と、入力された前記第１形態素に対して前記ニューラルネットワークから出力された結果と、の誤差を最小化するように前記ニューラルネットワークを学習する
学習ステップと、
学習された前記ニューラルネットワークの重みに基づいて得られる、前記第１形態素の埋め込みベクトルを出力する出力制御ステップと、
を含む学習方法。
【請求項７】
コンピュータを、
単語の配置を示す複数の第１配置パターンごとに定められた複数の隠れ層と、複数の前記隠れ層の少なくとも一部と接続される出力層とを含むニューラルネットワークの入力層に、文書に含まれる形態素のうち複数の前記第１配置パターンのいずれかに適合する１以上の第１形態素を入力し、
前記文書に含まれる形態素のうち、単語の配置を示す複数の第２配置パターンのいずれかに適合する１以上の第２形態素と、入力された前記第１形態素に対して前記ニューラルネットワークから出力された結果と、の誤差を最小化するように前記ニューラルネットワークを学習する
学習部と、
学習された前記ニューラルネットワークの重みに基づいて得られる、前記第１形態素の埋め込みベクトルを出力する出力制御部と、
として機能させるためのプログラム。
【請求項８】
単語の配置を示す複数の第１配置パターンごとに定められた複数の隠れ層と、複数の前記隠れ層の少なくとも一部と接続される出力層とを含むニューラルネットワークの入力層に、文書に含まれる形態素のうち複数の前記第１配置パターンのいずれかに適合する１以上の第１形態素を入力し、
前記文書に含まれる形態素のうち、単語の配置を示す複数の第２配置パターンのいずれかに適合する１以上の第２形態素と、入力された前記第１形態素に対して前記ニューラルネットワークから出力された結果と、の誤差を最小化するように前記ニューラルネットワークを学習する
学習部と、
学習された前記ニューラルネットワークの重みに基づいて得られる、前記第１形態素の埋め込みベクトルを出力する出力制御部と、
を備える情報処理システム。
【請求項９】
前記埋め込みベクトルを用いた形態素の検索を実行する検索部をさらに備える、
請求項８に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、学習装置、学習方法、プログラムおよび情報処理システムに関する。
【背景技術】
【０００２】
ニューラルネットワークを用いて、単語、または、連続する単語を表す単語列の特徴を表す情報（埋め込みベクトル）を求める技術が提案されている。例えば、文書中の単語（単語列）を入力とし、この単語（単語列）の周辺の単語（単語列）を予測できるようにニューラルネットワークを学習することにより得られる、ニューラルネットワークの重み行列の各行が埋め込みベクトルとして求められる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−０７６２８１号公報
【非特許文献】
【０００４】
【非特許文献１】“Ngram2vec:  Learning  Improved  Word  Representations  from  Ngram  Co-occurrence  Statistics”,  Z.  Zhao  et  al.,  Proc.  of  EMNLP2017,  pp.  244-253
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、埋め込みベクトルを高精度に求められない場合があった。例えば連続する単語を表す単語列を用いる方法では、単語列の長さを考慮していないため、単語（単語列）の特徴を精度よく表す埋め込みベクトルを求められない場合があった。
【課題を解決するための手段】
【０００６】
実施形態の学習装置は、学習部と、出力制御部と、を備える。学習部は、単語の配置を示す複数の第１配置パターンごとに定められた複数の隠れ層と、複数の隠れ層の少なくとも一部と接続される出力層とを含むニューラルネットワークの入力層に、文書に含まれる形態素のうち複数の第１配置パターンのいずれかに適合する１以上の第１形態素を入力し、文書に含まれる形態素のうち、単語の配置を示す複数の第２配置パターンのいずれかに適合する１以上の第２形態素と、入力された第１形態素に対してニューラルネットワークから出力された結果と、の誤差を最小化するようにニューラルネットワークを学習する。出力制御部は、学習されたニューラルネットワークの重みに基づいて得られる、第１形態素の埋め込みベクトルを出力する。
【図面の簡単な説明】
【０００７】
【図１】本実施形態にかかる学習装置を含む情報処理システムのブロック図。
【図２】対象配置パターンと周辺配置パターンの例を示す図。
【図３】本実施形態における構築処理のフローチャート。
【図４】形態素解析で参照される単語情報の一例を示す図。
【図５】形態素解析結果の一例を示す図。
【図６】ニューラルネットワークの構成例を示す図。
【図７】ニューラルネットワークの構成例を示す図。
【図８】対象単語および周辺単語の例を示す図。
【図９】本実施形態における学習処理のフローチャート。
【図１０】本実施形態における検索処理のフローチャート。
【図１１】本実施形態にかかる学習装置のハードウェア構成図。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、この発明にかかる学習装置の好適な実施形態を詳細に説明する。
【０００９】
例えば連続する単語を表す単語列を用いる方法では、一部のイディオムのように単語が連続していない表現は考慮されない、単語列の長さごとに出現確率および周辺の単語の個数などが異なるにも関わらず区別していない、並びに、範囲が重なる単語列を独立に扱っているなどの問題がある。このため、例えば、日本語であれば「もし〜なら」のような組合せ、英語なら「get〜out」のような組合せの複数の単語に対する埋め込みベクトルを適切に求められなかった。また、意味的には遠いが、包含関係にある単語列同士の類似度が高くなりやすいという傾向があった。
【００１０】
本実施形態の学習装置は、連続していない単語を含む、１以上の単語の組に対する埋め込みベクトルを学習する。１以上の単語の組は、予め定められた複数の配置パターンに適合する単語の組として、与えられた文書から抽出される。配置パターンは、連続する単語の配置パターンのみでなく、他の任意の形態素を間に含む２以上の単語の配置パターンであってもよい。これにより、単語が連続していないイディオムのような表現についても埋め込みベクトルを求めることができる。
【００１１】
また本実施形態の学習装置は、配置パターンごとに定められた複数の隠れ層と、複数の隠れ層の少なくとも一部と接続される出力層とを含むようにニューラルネットワークを構築し、このニューラルネットワークを用いて埋め込みベクトル（重み行列）を学習する。これにより、例えば長さが異なる単語列を区別すること、および、範囲が重なる単語列を考慮した学習などが可能となる。
【００１２】
なお、埋め込みベクトルを求める単位を単語または単語列としたが、これらに限られるものではない。例えば形態素などの文字列を単位として埋め込みベクトルを求めてもよい。以下では、単語または単語列を単位として埋め込みベクトルを求める場合を例に説明する。
【００１３】
図１は、本実施形態にかかる学習装置１００を含む情報処理システムの構成の一例を示すブロック図である。図１に示すように、情報処理システムは、学習装置１００と、検索装置２００と、を含む。学習装置１００および検索装置２００は、例えばネットワークおよび専用の通信線などを介して接続される。ネットワークは、有線ネットワーク、無線ネットワーク、および、インターネットなどの、どのような形態のネットワークであってもよい。学習装置１００および検索装置２００の少なくとも一方は、例えば、ＣＰＵなどのプロセッサを備えるコンピュータであるサーバ装置などにより実現してもよい。サーバ装置は、クラウド上で処理を実行するクラウドサーバであってもよい。
【００１４】
学習装置１００は、ニューラルネットワークを学習することにより、埋め込みベクトルを求める装置である。検索装置２００は、求められた埋め込みベクトルを用いた処理（検索処理など）を実行する装置である。学習装置１００と検索装置２００とは別の装置である必要はなく、例えば学習装置１００が検索装置２００の機能を備えてもよい。
【００１５】
学習装置１００は、受付部１０１と、解析部１０２と、構築部１０３と、学習部１０４と、出力制御部１０５と、記憶部１２１と、を備えている。
【００１６】
受付部１０１は、学習装置１００による各種処理で用いる各種情報の入力を受け付ける。例えば受付部１０１は、学習に用いる文書の入力を受け付ける。
【００１７】
解析部１０２は、受け付けられた文書を解析し、文書に含まれる単語列を出力する。例えば解析部１０２は、文書を形態素解析し、文書に含まれる複数の単語を区切って並べた解析結果を出力する。
【００１８】
構築部１０３は、解析結果に基づき、埋め込みベクトルを学習するためのニューラルネットワークを構築する。ニューラルネットワークは、埋め込みベクトルの算出対象となる単語の配置を示す複数の配置パターン（第１配置パターン）ごとに定められた複数の隠れ層と、複数の隠れ層の少なくとも一部と接続される出力層とを含む。以下では、この配置パターンを対象配置パターンという場合がある。ニューラルネットワークの構築方法の詳細は後述する。
【００１９】
学習部１０４は、ニューラルネットワークを学習する。例えば学習部１０４は、構築部１０３により構築されたニューラルネットワークの入力層に、文書に含まれる単語のうち対象配置パターンのいずれかに適合する１以上の単語の組（第１形態素）を入力する。以下では、対象配置パターンに適合した単語の組を対象単語という場合がある。対象単語は、１つの単語の場合もあるし、複数の単語の場合もある。
【００２０】
学習部１０４は、入力された対象単語に対してニューラルネットワークから出力された結果と、文書に含まれる単語のうち、対象単語の周辺の単語の配置を示す複数の配置パターン（第２配置パターン）のいずれかに適合する１以上の単語（第２形態素）の組（以下、周辺単語という場合がある）と、の誤差を最小化するようにニューラルネットワークを学習する。
【００２１】
周辺単語の配置を示す複数の配置パターンは、対象配置パターンごとに定められる。以下では、周辺単語の配置を示す複数の配置パターンを周辺配置パターンという場合がある。図２は、対象配置パターンと周辺配置パターンの例を示す図である。
【００２２】
図２内の矩形は、１つの単語を表す。白い矩形は、対象単語および周辺単語のいずれにも該当しない単語を表す。このように、本実施形態では、連続する単語以外の複数の単語の配置パターンを用いることができる。配置パターン２４１は、対象単語の左に１つ他の単語を挟んで周辺単語が存在することを示すパターンである。このように、対象単語と周辺単語とは、接している必要はない。配置パターン２４２は、対象単語の左に周辺単語が存在することを示すパターンである。配置パターン２５１、２５２のように、対象単語と周辺単語とが互いに挟まれるようなパターンであってもよい。
【００２３】
図２に示す配置パターンは一例であり、これに限られるものではない。例えば対象配置パターンは３種類のみでなく、１種類、２種類、または、４種類以上であってもよい。また対象配置パターンに含まれる対象単語の個数は３以上であってもよい。
【００２４】
また、図２には示されていないが、対象単語と周辺単語とが、重複する単語を含む配置パターンを用いてもよい。例えば、配置パターン２４２では、対象単語の左の１つの単語のみを周辺単語としているが、２つの単語を周辺単語としてもよい。また、他の単語を挟む配置パターンの場合、間に挟まれる単語の個数は１に限られず、２以上であってもよい。さらに、間に挟まれる単語の個数によって配置パターンを区別してもよいし、間に任意の個数の単語を挟む配置パターンとして共通に扱ってもよい。
【００２５】
単語の配置パターン（対象配置パターン、周辺配置パターン）は、一般的には、考慮する単語の個数に応じて構成することができる。単語数が５の場合については、まず、以下のように２５−１＝３１種類の配置パターンが定められる。「ｗ」は、対象単語または周辺単語が当てはまることを示し、「？」は、その他の任意の単語が当てはまることを示す。
（？，？，？，？，ｗ）
（？，？，？，ｗ，？）
（？，？，？，ｗ，ｗ）
（？，？，ｗ，？，？）
（？，？，ｗ，？，ｗ）
（？，？，ｗ，ｗ，？）
（？，？，ｗ，ｗ，ｗ）
（？，ｗ，？，？，？）
（？，ｗ，？，？，ｗ）
（？，ｗ，？，ｗ，？）
（？，ｗ，？，ｗ，ｗ）
（？，ｗ，ｗ，？，？）
（？，ｗ，ｗ，？，ｗ）
（？，ｗ，ｗ，ｗ，？）
（？，ｗ，ｗ，ｗ，ｗ）
（ｗ，？，？，？，？）
（ｗ，？，？，？，ｗ）
（ｗ，？，？，ｗ，？）
（ｗ，？，？，ｗ，ｗ）
（ｗ，？，ｗ，？，？）
（ｗ，？，ｗ，？，ｗ）
（ｗ，？，ｗ，ｗ，？）
（ｗ，？，ｗ，ｗ，ｗ）
（ｗ，ｗ，？，？，？）
（ｗ，ｗ，？，？，ｗ）
（ｗ，ｗ，？，ｗ，？）
（ｗ，ｗ，？，ｗ，ｗ）
（ｗ，ｗ，ｗ，？，？）
（ｗ，ｗ，ｗ，？，ｗ）
（ｗ，ｗ，ｗ，ｗ，？）
（ｗ，ｗ，ｗ，ｗ，ｗ）
【００２６】
両端が「？」であるパターンは同じパターンであると見なせるので、実際に区別されるのは以下の１６種類となる。
（ｗ）
（ｗ，ｗ）
（ｗ，？，ｗ）
（ｗ，？，？，ｗ）
（ｗ，？，？，？，ｗ）
（ｗ，ｗ，ｗ）
（ｗ，？，ｗ，ｗ）
（ｗ，ｗ，？，ｗ）
（ｗ，？，？，ｗ，ｗ）
（ｗ，？，ｗ，？，ｗ）
（ｗ，ｗ，？，？，ｗ）
（ｗ，ｗ，ｗ，ｗ）
（ｗ，？，ｗ，ｗ，ｗ）
（ｗ，ｗ，？，ｗ，ｗ）
（ｗ，ｗ，ｗ，？，ｗ）
（ｗ，ｗ，ｗ，ｗ，ｗ）
【００２７】
間に挟む単語数で区別しない場合は、例えば（ｗ，？，ｗ）、（ｗ，？，？，ｗ）、および、（ｗ，？，？，？，ｗ）を、１つのパターン（ｗ，＊，ｗ）に共通化することができる。記号「＊」は、任意の個数の任意の単語が当てはまることを示す。
【００２８】
図２に示すような対象配置パターンと周辺配置パターンとの対応を示す情報は、予め記憶部１２１などに記憶しておく。
【００２９】
図１に戻り、出力制御部１０５は、学習装置１００による各種情報の出力を制御する。例えば出力制御部１０５は、学習されたニューラルネットワークの重みに基づいて得られる埋め込みベクトルを出力する。出力方法はどのような方法であってもよいが、例えば出力制御部１０５は、埋め込みベクトル（または埋め込みベクトルを含む、ニューラルネットワークの重み行列）を、検索装置２００に出力する。
【００３０】
記憶部１２１は、学習装置１００による各種処理で用いられる各種情報を記憶する。例えば記憶部１２１は、入力された文書、文書から解析された単語列、構築されたニューラルネットワークのパラメータ、および、配置パターンなどを記憶する。
【００３１】
学習装置１００の各部（受付部１０１、解析部１０２、構築部１０３、学習部１０４、および、出力制御部１０５）は、例えば、１または複数のプロセッサにより実現される。例えば上記各部は、ＣＰＵ（Central  Processing  Unit）などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のＩＣ（Integrated  Circuit）などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち１つを実現してもよいし、各部のうち２以上を実現してもよい。
【００３２】
次に検索装置２００の構成について説明する。検索装置２００は、受付部２０１と、検索部２０２と、記憶部２２１と、を備えている。
【００３３】
受付部２０１は、検索装置２００による各種処理で用いる各種情報の入力を受け付ける。例えば受付部２０１は、学習装置１００から出力された埋め込みベクトルを受け付ける。
【００３４】
検索部２０２は、埋め込みベクトルを用いた文字列（単語、形態素など）の検索を実行する。例えば検索部２０２は、ある単語に類似する単語を、埋め込みベクトルの類似度に基づいて検索する。なお、埋め込みベクトルを用いた処理は検索処理に限られず、どのような処理であってもよい。
【００３５】
記憶部２２１は、検索装置２００による各種処理で用いられる各種情報を記憶する。例えば記憶部２２１は、学習装置１００から出力された埋め込みベクトルを記憶する。
【００３６】
検索装置２００の各部（受付部２０１および検索部２０２）は、例えば、１または複数のプロセッサにより実現される。例えば上記各部は、ＣＰＵなどのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のＩＣなどのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち１つを実現してもよいし、各部のうち２以上を実現してもよい。
【００３７】
また、記憶部１２１、２２１は、フラッシュメモリ、メモリカード、ＲＡＭ（Random  Access  Memory）、ＨＤＤ（Hard  Disk  Drive）、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００３８】
次に、このように構成された本実施形態にかかる学習装置１００によるニューラルネットワークの構築処理について説明する。図３は、本実施形態における構築処理の一例を示すフローチャートである。なお、単語の配置パターン（対象配置パターン、周辺配置パターン）は予め与えられ、例えば記憶部１２１に記憶されているものとする。
【００３９】
受付部１０１は、埋め込みベクトルを算出する対象となる単語を含む文書の入力を受け付ける（ステップＳ１０１）。解析部１０２は、受け付けられた文書を形態素解析し、単語の並びで構成される形態素解析結果（単語列）を出力する（ステップＳ１０２）。
【００４０】
図４は、形態素解析で参照される単語情報の一例を示す図である。例えば解析部１０２は、図４のような単語情報に基づき、与えられた文書に対する単語列の候補を用意する。そして単語列の候補のなかから、単語の評価値、品詞の評価値、単語同士の評価値、および、品詞同士の評価値などによって最も評価値が高くなる候補を、形態素解析結果として選択する。なお説明の便宜のため、図４の括弧内には日本語の発音を示しているが、単語情報は、発音を示す情報を含む必要はない。
【００４１】
図５は、形態素解析結果の一例を示す図である。図５は、「今日はいい天気ですね。」を意味する日本語文５０１に対して、記号「／」で区切られた単語列５０２が形態素解析結果として出力されることを示す例である。単語列５０２は、７つの単語５１１〜５１７を並べた単語列である。なお説明の便宜のため、図５の括弧内には日本語の発音を示しているが、形態素解析結果は発音を示す情報を含む必要はない。
【００４２】
図３に戻り、構築部１０３は、得られた単語列から、対象配置パターンに適合する単語（対象単語）を取得する（ステップＳ１０３）。例えば構築部１０３は、記憶部１２１に格納されている対象配置パターンごとに、単語列に含まれる各単語を初めから終わりまで照合していく。照合によって得られた対象単語は対象配置パターンごとに記憶しておく。
【００４３】
図５の例では７個の単語が得られているため、１単語の並びを示す対象配置パターンに適合する単語は７種類（「今日」「は」「いい」「天気」「です」「ね」「。」）である。また、２単語の並びを示す対象配置パターンに適合する単語列は６種類（「今日は」「はいい」「いい天気」「天気です」「ですね」「ね。」）である。また、間に他の単語を１つ含む２単語の並びを示す対象配置パターンに適合する単語列は５種類（「今日いい」「は天気」「いいです」「天気ね」「です。」）である。構築部１０３は、計１８種類の対象単語を記憶部１２１に記憶する。
【００４４】
照合が終わったら、構築部１０３は、入力層、隠れ層、および、出力層の３層を含むニューラルネットワークを構築する（ステップＳ１０４）。ここで、図６および図７を用いて、埋め込みベクトルを求めるためのニューラルネットワークの構築方法について説明する。
【００４５】
図６は、本実施形態の手法を用いない場合のニューラルネットワークの構成例を示す図である。図６に示すニューラルネットワークは、入力層６０１と、隠れ層６０２と、出力層６０３−１〜６０３−Ｃと、を含む。
【００４６】
入力層６０１および出力層６０３−１〜６０３−Ｃのノード数はＶである。すなわち、入力層６０１および出力層６０３−１〜６０３−Ｃは、Ｖ個の単語ｘｋ（１≦ｋ≦Ｖ）それぞれに対応するノードを含む。隠れ層６０２のノード数はＮである。入力層６０１と隠れ層６０２とは、Ｎ行Ｖ列の重み行列ＷＶ×Ｎにより対応づけられる。学習された重み行列ＷＶ×Ｎの各行が、埋め込みベクトルに相当する。隠れ層６０２のノード数Ｎは、埋め込みベクトルの次元数に相当する。なお、埋め込みベクトルの表現形式はどのような形式であってもよい。例えば埋め込みベクトルの空間はＮ次元超球面やＮ次元双曲空間であってもよい。
【００４７】
出力層の個数Ｃは、周辺の単語（周辺配置パターン）の個数に相当する。例えばある単語の左３個目、２個目、１個目、右１個目、２個目、３個目、の計６個の単語を周辺の単語とする場合、個数Ｃは６となる。出力層６０３−１〜６０３−Ｃは、それぞれ隠れ層６０２と重み行列Ｗ’Ｎ×Ｖにより対応づけられる。
【００４８】
図６は、１つの単語を対象単語とする例を示すが、２以上の単語（単語列）を対象単語とすることもできる。
【００４９】
図７は、本実施形態で構築するニューラルネットワークの構成例を示す図である。本実施形態のニューラルネットワークは、入力層７０１−１〜７０１−３と、隠れ層７０２−１〜７０２−３と、出力層７１３−１〜７１３−３と、を含む。
【００５０】
図７に示すように、本実施形態のニューラルネットワークは、複数の入力層７０１−１〜７０１−３、および、複数の隠れ層７０２−１〜７０２−３を含む。入力層および隠れ層は、対象配置パターンに応じて備えられる。例えば、１単語、連続する２単語、および、連続する３単語、に相当する３つの対象配置パターンを用いる場合、入力層７０１−１〜７０１−３は、それぞれ１単語、連続する２単語、および、連続する３単語を入力する層に対応する。また例えば図２に示す３つの対象配置パターンを用いる場合、入力層７０１−１〜７０１−３は、それぞれ１単語、連続する２単語、および、間に１つ他の単語を挟んだ２単語を入力する層に相当する。
【００５１】
なお入力層および隠れ層の個数は３に限られるものではなく、対象配置パターンの個数に応じて変更される。本実施形態では、対象配置パターンごとに重み行列が設定され、各重み行列が学習される。
【００５２】
隠れ層７０２−１〜７０２−３は、それぞれ入力層７０１−１〜７０１−３に接続される。各隠れ層７０２−１〜７０２−３のノード数は、埋め込みベクトルの次元数Ｎとする。なお、少なくとも一部の隠れ層のノード数（次元数）が、他の隠れ層のノード数と異なるように構成してもよい。
【００５３】
出力層７１３−１〜７１３−３のそれぞれは、例えば図６の６０３−１〜６０３−Ｃに相当する。すなわち、各対象配置パターンに対応する出力層は、この対象配置パターンに対応する周辺配置パターンの個数分、備えられる。
【００５４】
図７に示すようなニューラルネットワークを構築するために、まず構築部１０３は、入力層と出力層として、対象配置パターンごとに記憶された対象単語の種類数分のノードを用意する。周辺配置パターンとしては、同じ１単語の並びであっても２つ左、１つ左、１つ右、２つ右のように位置によって異なる配置パターンが存在しうる。従って構築部１０３は、対象配置パターンごとに、対応する周辺配置パターンの個数分の出力層を用意する。構築部１０３は、入力層と隠れ層とを、単語配置パターンごとに分けて結合する。
【００５５】
構築部１０３は、さらに、隠れ層と出力層とを結合する。このとき構築部１０３は、異なる対象配置パターンにそれぞれ対応する隠れ層および出力層についても相互に結合する。構築部１０３は、すべての隠れ層と出力層とを結合してもよいし、隠れ層と出力層との組み合わせのうち、予め定められた組み合わせに含まれる隠れ層と出力層とを結合してもよい。予め定められた組み合わせは、例えば、図２に示すような対象配置パターンと周辺配置パターンとの対応に基づき定められる組み合わせである。
【００５６】
例えば、対象単語が２つの連続する単語の場合、図２の例では、周辺配置パターンは、１つの単語を周辺単語とするパターン、および、２つの単語を周辺単語とするパターンを含む。従って、２つの連続する対象単語に対応する隠れ層７０２−２に対して、１つの周辺単語に対応する出力層７１３−１、および、２つの単語に対応する出力層７１３−２が結合される。
【００５７】
構築部１０３は、対象単語と周辺単語とを結合した単語列を周辺単語と見なして学習時に考慮できるようにニューラルネットワークを構築してもよい。また構築部１０３は、周辺単語が複数の単語を含む場合、この周辺単語に含まれる単語を周辺単語と見なして学習時に考慮できるようにニューラルネットワークを構築してもよい。
【００５８】
図８は、このような場合の対象単語および周辺単語の例を示す図である。図８の例では、対象単語８０１、８０２は２つの単語である。周辺単語が、対象単語８０１の右の１つの単語であった場合、対象単語８０１と、この周辺単語とを結合した３つの単語も周辺単語として考慮してもよい。このため、構築部１０３は、２つの対象単語に対応する隠れ層に対して、１つの周辺単語に対応する出力層のみでなく、３つの単語に対応する出力層を結合したニューラルネットワークを構築する。
【００５９】
また対象単語８０２の左の３つの連続する単語を周辺単語とする場合、さらに、この周辺単語に含まれる３つの単語、および、連続する２単語も周辺単語として考慮してもよい。このため、構築部１０３は、２つの対象単語に対応する隠れ層に対して、３つの周辺単語に対応する出力層のみでなく、１つの単語に対応する出力層、および、２つの単語に対応する出力層を結合したニューラルネットワークを構築する。
【００６０】
構築部１０３は、このようにしてニューラルネットワークを構築した後、ニューラルネットワークの各パラメータ（重み行列など）を、例えばランダムに初期化する。
【００６１】
次に、本実施形態にかかる学習装置１００によるニューラルネットワークの学習処理について説明する。図９は、本実施形態における学習処理の一例を示すフローチャートである。
【００６２】
学習部１０４は、例えば図３のステップＳ１０２により得られた単語列から、対象配置パターンに適合する対象単語を取得する（ステップＳ２０１）。この処理は、図３のステップＳ１０３と同様である。学習部１０４は、照合により得られた対象単語に対応する入力層のノードを１つ発火させ、ニューラルネットワークの推論を行う（ステップＳ２０２）。推論は、対象単語（１つの単語または単語の組合せ）から周辺単語（１つの単語または単語の組合せ）を予測することに相当する。このとき、ネットワークの全体ではなく周辺単語に対応する範囲でソフトマックスを行う。推論された出力をｙとする。
【００６３】
一方、学習部１０４は、ステップＳ２０１の照合で用いた対象配置パターンに対応づけて記憶されている周辺配置パターンを求める。そして学習部１０４は、例えば図３のステップＳ１０２により得られた単語列から、求めた周辺配置パターンに適合する周辺単語（１つとは限らない）ｔを取得する（ステップＳ２０３）。学習部１０４は、推論された出力ｙと、周辺配置パターンとの照合で取得された周辺単語ｔとの差分（誤差）を算出する（ステップＳ２０４）。単語間の差分（類似度）の算出方法は、ソフトマックスを行った周辺単語に対応する範囲でｙ−ｔを求める方法などを適用できる。
【００６４】
学習部１０４は、算出した差分を最小化するようにニューラルネットワークのパラメータ（例えば重み行列）を学習する（ステップＳ２０５）。例えば学習部１０４は、算出した差分に、学習率を定めるパラメータηを掛けたη（ｙ−ｔ）に基づき、ニューラルネットワークを定める重み行列を誤差逆伝播法によって調整する。学習率は、差分（誤差）に加える重みを表すと解釈することができる。例えば学習部１０４は、誤差をニューラルネットワークの出力層から逆方向に伝播させて、誤差を小さくするようにそれぞれの層のパラメータを更新する。学習部１０４は、誤差逆伝播法以外の方法によりパラメータを更新してもよい。
【００６５】
図５に示すような単語列を例にすると、照合によってまず単語５１１（「今日」）が対象単語として得られる。記憶されている周辺配置パターンのうち、左の単語を周辺単語とするパターン（例えば図２の配置パターン２４２）については、単語５１１より左の単語が存在しないため該当する周辺単語は得られない。一方で右の単語を周辺単語とする周辺配置パターンについては、例えば１つ右の単語を周辺単語とするパターンについては単語５１２（「は」）、２つ右の単語を周辺単語とするパターンについては単語５１３（「いい」、１つ右および２つ右の単語を周辺単語とするパターンについては単語５１２と単語５１３とを含む単語列（「はいい」）が、周辺単語として得られる。学習部１０４は、ニューラルネットワークの出力が、これらの周辺単語に近づくよう学習する。
【００６６】
学習率は、すべての周辺配置パターンに対して共通の値を用いてもよいし、少なくとも一部の周辺配置パターンについて異なる値を用いてもよい。言い換えると、学習部１０４は、対象単語と周辺単語の位置関係ごとに、差分（誤差）に加える重みを変更してもよい。例えば対象単語と周辺単語との距離が遠い周辺配置パターンに対しては学習率の値を小さくし、距離が近い周辺配置パターンに対しては学習率の値を大きくしてもよい。
【００６７】
さらに学習部１０４は、対象単語と周辺単語の少なくとも一部が重複する場合に、重複しない場合より学習率の値を小さくしてもよい。例えば学習部１０４は、対象単語と周辺単語とが重なっている場合、または、対象単語と周辺単語とが互いに挟まれる関係にある場合に、学習率を負の値としてもよい。
【００６８】
例えば、他の単語を間に含む２以上の単語の配置パターン（「もし〜なら」など）については、間に挟まれる単語はどのような単語であってもよい場合がある。しかし、仮に学習率を一律に与えた場合、このような配置パターンに一致する表現（「もし〜なら」など）の埋め込みベクトルと、対象とする文書内でこの表現の間に出現した単語の埋め込みベクトルと、を近づける方向に学習が実行されることになる。すなわち、対象とする文書内で使われた単語が、他の単語より類似する単語として学習されることになる。上記のように対象単語と周辺単語とが重なっている場合、または、対象単語と周辺単語とが互いに挟まれる関係にある場合に、学習率を負の値とすれば、このような作用を排除することが可能になる。
【００６９】
学習部１０４は、ステップＳ２０１〜ステップＳ２０５の処理を、すべての対象配置パターンについて実行する。
【００７０】
すべての対象配置パターンについての処理が実行された後、学習部１０４は、学習を終了するか否かを判定する（ステップＳ２０６）。例えば学習部１０４は、推論された出力ｙと、周辺配置パターンとの照合で取得された周辺単語ｔとの差分（誤差）が、予め定められた閾値より小さくなった場合に、学習を終了すると判定する。学習終了の判定方法はこれに限られずどのような方法であってもよい。例えば学習部１０４は、学習の回数が規定値を超えた場合に学習を終了すると判定してもよい。
【００７１】
学習を終了しないと判定された場合（ステップＳ２０６：Ｎｏ）、ステップＳ２０１に戻り、再度、各対象配置パターンを用いた照合等が繰り返される。学習を終了すると判定した場合（ステップＳ２０６：Ｙｅｓ）、図９の学習処理は終了する。
【００７２】
次に、本実施形態にかかる検索装置２００による検索処理について説明する。図１０は、本実施形態における検索処理の一例を示すフローチャートである。
【００７３】
検索装置２００の受付部２０１は、例えば学習装置１００から、学習済みのニューラルネットワークの重み行列から得られる埋め込みベクトルを取得する（ステップＳ３０１）。検索部２０２は、取得された埋め込みベクトルを用いた検索処理を実行する（ステップＳ３０２）。例えば検索部２０２は、ある単語（単語列）に類似する単語（単語列）を、この単語と同じ文書に含まれる単語（単語列）、または、他の文書に含まれる単語（単語列）から、埋め込みベクトルの類似度に基づいて検索する。埋め込みベクトルの類似度は、例えばベクトル間の内積により求めることができる。ベクトル間の距離を類似度として用いてもよい。
【００７４】
埋め込みベクトルを用いた処理は、このような検索処理に限られず、どのような処理であってもよい。検索装置２００内の機能は、学習装置１００内に備えられてもよい。
【００７５】
以上のように、本実施形態では、単語が連続していない表現（イディオムなど）についても埋め込みベクトルを算出することができる。また、単語の配置パターン（例えば単語の個数）ごとにニューラルネットワークの層を分けて構成しているので、配置パターンごとに処理を区別する（配置パターンごとの扱いを公平にする）ことができ、埋め込みベクトルをより高精度に求めることが可能となる。
【００７６】
次に、本実施形態にかかる学習装置のハードウェア構成について図１１を用いて説明する。図１１は、本実施形態にかかる学習装置のハードウェア構成例を示す説明図である。
【００７７】
本実施形態にかかる学習装置は、ＣＰＵ（Central  Processing  Unit）５１などの制御装置と、ＲＯＭ（Read  Only  Memory）５２やＲＡＭ（Random  Access  Memory）５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、各部を接続するバス６１を備えている。
【００７８】
本実施形態にかかる学習装置で実行されるプログラムは、ＲＯＭ５２等に予め組み込まれて提供される。
【００７９】
本実施形態にかかる学習装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【００８０】
さらに、本実施形態にかかる学習装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかる学習装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【００８１】
本実施形態にかかる学習装置で実行されるプログラムは、コンピュータを上述した学習装置の各部として機能させうる。このコンピュータは、ＣＰＵ５１がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【００８２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８３】
１００  学習装置
１０１  受付部
１０２  解析部
１０３  構築部
１０４  学習部
１０５  出力制御部
１２１  記憶部
２００  検索装置
２０１  受付部
２０２  検索部
２２１  記憶部
【図１】
2020113041.tif 000003
【図２】
2020113041.tif 000004
【図３】
2020113041.tif 000005
【図４】
2020113041.tif 000006
【図５】
2020113041.tif 000007
【図６】
2020113041.tif 000008
【図７】
2020113041.tif 000009
【図８】
2020113041.tif 000010
【図９】
2020113041.tif 000011
【図１０】
2020113041.tif 000012
【図１１】
2020113041.tif 000013