(57)【特許請求の範囲】
【請求項１】
同義語と見なせる複数の文字列が意味の近さを示すスコアと共に記憶された学習用データを記憶する記憶手段と、
評価値の演算に用いるパラメータが変更可能とされ、複数の素性値から演算を行って評価値を算出し、多段構成とされた学習器について、前記学習用データに基づき、１段目の学習器については前記複数の文字列のそれぞれの複数の素性値から算出される評価値とスコアとの差が小さくなるように前記パラメータを学習し、２段目以降の学習器については前段までの評価値を所定の重み付けで演算した演算結果の値とスコアとの誤差が小さくなるように前記パラメータを学習する学習手段と、
検索が要求されたクエリから検索された複数の同義語の候補について、同義語の候補の前記複数の素性値から、前記学習手段により学習したパラメータをセットした多段構成の学習器によりそれぞれ算出される評価値を前記所定の重み付けで演算した演算結果の値に基づき、前記複数の同義語の候補から前記クエリに意味が近い同義語を特定する特定手段と、
を有することを特徴とする同義語推定装置。
【請求項２】
前記学習手段により学習したパラメータをセットした多段構成の学習器による同義語の特定性能を評価する評価手段と、
前段から順に多段構成で１段ずつ、２段目以降については前記評価手段により多段構成の学習器について、現時点の最後段の学習器が無い場合と有る場合での同義語の特定性能を評価した結果、最後段の学習器が無い場合よりも有る場合の同義語の特定性能が向上している場合、新たな学習器を生成する生成手段と、をさらに有し、
前記学習手段は、前記生成手段により生成された学習器のパラメータを学習する
ことを特徴とする請求項１に記載の同義語推定装置。
【請求項３】
前記評価手段による評価の結果、現時点の最後段の学習器が無い場合よりも有る場合の同義語の特定性能が向上していない場合、最後段の学習器を除いた学習器を、前記特定手段で同義語の特定に用いる学習器と選定する選定手段をさらに有する
ことを特徴とする請求項２に記載の同義語推定装置。
【請求項４】
各学習器は、素性値の数および素性値の組み合わせを変えて重み付け演算して新たな素性値を算出する複数の非線形な関数を用いて複数の素性値から新たな素性値を算出し、当該複数の素性値および算出された新たな素性値を重み付けで演算して評価値を算出し、
前記学習手段は、各学習器の前記パラメータとして、前記複数の素性値および複数の非線形な関数からそれぞれ算出される新たな素性値に対する重み付け、並びに各非線形な関数の組み合わせた素性値に対する重み付けを学習する
ことを特徴とする請求項１〜３の何れか１つに記載の同義語推定装置。
【請求項５】
コンピュータが実行する同義語推定方法であって、
評価値の演算に用いるパラメータが変更可能とされ、複数の素性値から演算を行って評価値を算出し、多段構成とされた学習器について、同義語と見なせる複数の文字列が意味の近さを示すスコアと共に記憶され、記憶手段に記憶された学習用データに基づき、１段目の学習器については前記複数の文字列のそれぞれの複数の素性値から算出される評価値とスコアとの差が小さくなるように前記パラメータを学習し、２段目以降の学習器については前段までの評価値を所定の重み付けで演算した演算結果の値とスコアとの誤差が小さくなるように前記パラメータを学習する学習工程と、
検索が要求されたクエリから検索された複数の同義語の候補について、同義語の候補の前記複数の素性値から、前記学習工程により学習したパラメータをセットした多段構成の学習器によりそれぞれ算出される評価値を前記所定の重み付けで演算した演算結果の値に基づき、前記複数の同義語の候補から前記クエリに意味が近い同義語を特定する特定工程と、
を含んだことを特徴とする同義語推定方法。
【請求項６】
評価値の演算に用いるパラメータが変更可能とされ、複数の素性値から演算を行って評価値を算出し、多段構成とされた学習器について、同義語と見なせる複数の文字列が意味の近さを示すスコアと共に記憶され、記憶手段に記憶された学習用データに基づき、１段目の学習器については前記複数の文字列のそれぞれの複数の素性値から算出される評価値とスコアとの差が小さくなるように前記パラメータを学習し、２段目以降の学習器については前段までの評価値を所定の重み付けで演算した演算結果の値とスコアとの誤差が小さくなるように前記パラメータを学習する学習手順と、
検索が要求されたクエリから検索された複数の同義語の候補について、同義語の候補の前記複数の素性値から、前記学習手順により学習したパラメータをセットした多段構成の学習器によりそれぞれ算出される評価値を前記所定の重み付けで演算した演算結果の値に基づき、前記複数の同義語の候補から前記クエリに意味が近い同義語を特定する特定手順と、
をコンピュータに実行させることを特徴とする同義語推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同義語推定装置、同義語推定方法および同義語推定プログラムに関する。
【背景技術】
【０００２】
従来のＷｅｂページ検索では、ユーザによりクエリが入力されると、Ｗｅｂページ上の検索エンジンによってクエリで検索が行われ、複数のＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）を含む検索結果がユーザに提示される。
【０００３】
ところで、クエリは、構成要素が非類似であるが、当該クエリと意味が類似する同義語が存在する場合がある。そして、入力されたクエリで検索した場合と、クエリの同義語で検索した場合とで、検索結果が異なる場合がある。例えば、Ａを検索した場合、検索結果が２０００件であり、Ａの同義語であるＡ’を検索した場合、検索結果が３０００件となり、検索結果が異なる場合がある。
【０００４】
システムがＡとＡ’を同疑義と理解できれば予め２つのクエリのＯＲ検索を行うことにより、損失機会を回避できる。
【０００５】
そこで、クエリの同義語を抽出する次のような従来技術が知られている。例えば、検索クリックスルーログを用いたラベル伝播により、入力されたクエリの同義語を検索する従来技術が知られている（例えば、特許文献１）。また、機械翻訳において、異なる言語の単語からそれぞれ素性の組を抽出して異なる言語の単語を対応付ける従来技術が知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−７９０２９号公報
【特許文献２】特開２０１０−１９８４３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術は、検索が要求されたクエリの同義語を特定できない場合がある。
【０００８】
本願は、上記に鑑みてなされたものであって、検索が要求されたクエリに近い同義語をより精度良く特定できる同義語推定装置、同義語推定方法および同義語推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願に係る同義語推定装置は、同義語と見なせる複数の文字列が意味の近さを示すスコアと共に記憶された学習用データを記憶する記憶手段と、評価値の演算に用いるパラメータが変更可能とされ、複数の素性値から演算を行って評価値を算出し、多段構成とされた学習器について、前記学習用データに基づき、１段目の学習器については前記複数の文字列のそれぞれの複数の素性値から算出される評価値とスコアとの差が小さくなるように前記パラメータを学習し、２段目以降の学習器については前段までの評価値を所定の重み付けで演算した演算結果の値とスコアとの誤差が小さくなるように前記パラメータを学習する学習手段と、検索が要求されたクエリから検索された複数の同義語の候補について、同義語の候補の前記複数の素性値から、前記学習手段により学習したパラメータをセットした多段構成の学習器によりそれぞれ算出される評価値を前記所定の重み付けで演算した演算結果の値に基づき、前記複数の同義語の候補から前記クエリに意味が近い同義語を特定する特定手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本願に係る同義語推定装置、同義語推定方法および同義語推定プログラムは、検索が要求されたクエリに近い同義語をより精度良く特定できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施形態に係る同義語検索処理を説明する図である。
【図２】図２は、素性の一例を説明する図である。
【図３】図３は、多段構成に設けられた学習器を模式的に示した図である。
【図４】図４は、新たな素性値の一例を示す図である。
【図５】図５は、同義語の候補Ａ、Ｂを素性Ｘ、Ｙのグラフで示した図である。
【図６】図６は、同義語の候補Ａ、Ｂ、Ｃ、Ｄを素性Ｘ、Ｙのグラフで示した図である。
【図７】図７は、同義語の候補Ａ、Ｂ、Ｃ、Ｄを素性Ｚのグラフで示した図である。
【図８】図８は、同義語推定装置の機能的な構成の一例を示す図である。
【図９】図９は、素性データのデータ構成の一例を示す図である。
【図１０】図１０は、関数の生成を説明するための図である。
【図１１】図１１は、学習処理の手順を示すフローチャートである。
【図１２】図１２は、生成処理の手順を示すフローチャートである。
【図１３】図１３は、同義語特定処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に、本発明に係る同義語推定装置、同義語推定方法および同義語推定プログラムを実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【００１３】
［１．同義語検索処理］
まず、実施形態に係る同義語推定装置が行う同義語検索処理について説明する。図１は、実施形態に係る同義語検索処理を説明する図である。なお、図１の例は、入力されたクエリの同義語を特定し、クエリに最も近い同義語をサジェスチョンクエリとしてユーザに提示する場合を示している。
【００１４】
同義語推定装置は、ユーザにより検索対象のクエリが入力される。同義語推定装置は、入力されたクエリの同義語の候補を複数検索する。そして、同義語推定装置は、検索された複数の同義語の候補をそれぞれ訂正候補として、入力されたクエリに類似する順にランキングする。そして、同義語推定装置は、例えば、最上位の訂正候補をサジェスチョンクエリとしてユーザに提示する。
【００１５】
同義語推定装置は、訂正候補を類似する順にランキングする際、クエリと各訂正候補との関連度を計算するため、各訂正候補とされた同義語の候補について素性を抽出する。図２は、素性の一例を説明する図である。図２の例では、同義語の候補をラベル伝播により検索した場合、ラベル伝播での検索の際のスコアを素性として抽出する。また、図２の例では、言語モデルを用いて計算した確率やＴｅｘｔＲａｎｋなどにより、訂正候補のクエリらしさを素性として抽出する。また、図２の例では、訂正候補の文字列の長さを素性として抽出する。また、図２の例では、クエリと訂正候補が一致しているか否かを素性として抽出する。また、図２の例では、クエリと訂正候補がＡｃｒｏｎｙｍの関係にあるか否かを素性として抽出する。Ａｃｒｏｎｙｍとは、「日本放送協会（Ｎｉｈｏｎ  Ｈｏｕｓｏｕ  Ｋｙｏｋａｉ）」を「ＮＨＫ」と省略するなど、名称の各単語の先頭部分のみで省略したものである。また、図２の例では、クエリと訂正候補の編集距離を素性として抽出する。なお、素性は、これらに限定されず、その他の素性であってもよい。
【００１６】
同義語推定装置は、検索された同義語の候補についてそれぞれ各素性を抽出し、同義語毎に、当該同義語の各素性の素性値を要素とした素性ベクトルを求める。
【００１７】
本実施形態に係る同義語推定装置は、複数の素性値から演算を行って評価値をそれぞれ算出する複数の学習器を多段構成としている。学習器とは、複数の素性値から演算を行って評価値を算出する処理部品である。学習器は、それぞれを独立したプログラムとして構成してもよく、例えば、プログラムに組み込まれて動作する関数などとして構成してもよい。図３は、多段構成に設けられた学習器を模式的に示した図である。同義語推定装置は、同義語毎に、同義語の素性ベクトルの各素性値から各学習器によりそれぞれ算出される評価値を所定の重み付けで演算した演算結果の値に基づき、同義語の候補のランキングを行う。
【００１８】
次に、各学習器で評価値の演算に用いる関数について説明する。各学習器では、複数の素性値から関数による演算を行って評価値をそれぞれ算出する。
【００１９】
ところで、検索された同義語の候補は、抽出された素性では手がかりが少なく、クエリとの類似度合いに応じて同義語の候補を十分に分類できない場合がある。このように同義語の候補を十分に分類できない場合、入力されたクエリに近い同義語を精度良く特定できない。
【００２０】
そこで、本実施形態に係る同義語推定装置では、同義語の候補毎に、複数の素性の素性値を組み合わせて演算し、新たな素性値を求める。図４は、新たな素性値の一例を示す図である。図４の例は、素性値Ｘ＿１、Ｘ＿２、Ｘ＿３を加算して新たな素性値Ｘ’＿１を求めている。また、図４の例は、素性値Ｘ＿１、Ｘ＿２、Ｘ＿３を乗算して新たな素性値Ｘ’＿２を求めている。
【００２１】
ここで、新たな素性値を算出する効果について説明する。なお、ここでは、説明を簡略化するため、素性をＸ、Ｙの２つの場合で説明する。例えば、同義語の候補Ａは、素性Ｘが「１」であり、素性Ｙが「０」であり、クエリに類似する同義語であるものとする。また、同義語の候補Ｂは、素性Ｘが「０」であり、素性Ｙが「１」であり、クエリに非類似の同義語であるものとする。図５は、同義語の候補Ａ、Ｂを素性Ｘ、Ｙのグラフで示した図である。この場合、例えば、素性Ｘが「１」であれば類似し、素性Ｙが「１」であれば非類似と判別することにより、同義語の候補がクエリに類似するか否か判別できる。
【００２２】
一方、例えば、同義語の候補Ａは、素性Ｘが「１」であり、素性Ｙが「１」であり、クエリに類似する同義語であるものとする。また、同義語の候補Ｂは、素性Ｘが「−１」であり、素性Ｙが「１」であり、クエリに非類似の同義語であるものとする。また、同義語の候補Ｃは、素性Ｘが「−１」であり、素性Ｙが「−１」であり、クエリに類似する同義語であるものとする。また、同義語の候補Ｄは、素性Ｘが「１」であり、素性Ｙが「−１」であり、クエリに非類似の同義語であるものとする。図６は、同義語の候補Ａ、Ｂ、Ｃ、Ｄを素性Ｘ、Ｙのグラフで示した図である。この場合、素性Ｘの素性値は、クエリに類似する同義語の候補Ａとクエリに非類似の同義語の候補Ｄで共に「１」であり、クエリに非類似の同義語の候補Ｂとクエリに類似する同義語の候補Ｃで共に「−１」である。また、素性Ｙの素性値は、クエリに類似する同義語の候補Ａとクエリに非類似の同義語の候補Ｂで共に「１」であり、クエリに類似する同義語の候補Ｃとクエリに非類似の同義語の候補Ｄで共に「−１」である。よって、素性Ｘ、Ｙの素性値から、同義語の候補がクエリに類似するか否か判別できない。
【００２３】
そこで、例えば、同義語の候補Ａ〜Ｄについて、それぞれ素性Ｘの素性値と素性Ｙの素性値を乗算して新たに素性Ｚの素性値を算出する。この場合、同義語の候補Ａは、素性Ｘが「１」であり、素性Ｙが「１」であるため、素性Ｚが「１」となる。同義語の候補Ｂは、素性Ｘが「−１」であり、素性Ｙが「１」であるため、素性Ｚが「−１」となる。同義語の候補Ｃは、素性Ｘが「−１」であり、素性Ｙが「−１」であるため、素性Ｚが「１」となる。同義語の候補Ｄは、素性Ｘが「１」であり、素性Ｙが「−１」であるため、素性Ｚが「−１」となる。図７は、同義語の候補Ａ、Ｂ、Ｃ、Ｄを素性Ｚのグラフで示した図である。この新しい素性Ｚでは、クエリに類似する同義語の候補Ａ、Ｃと、クエリに非類似の同義語の候補Ｂ、Ｄの値が分かれる。よって、例えば、素性Ｚが「１」であれば類似し、素性Ｚが「−１」であれば非類似と判別することにより、同義語の候補がクエリに類似するか否か判別できる。このように、新たな素性を求めることにより、判別できなかった特性を判別できるようになるため、判別できなかった同義語が特定できるようになる。
【００２４】
ところで、同義語の特定に有効な関数を見出すには、素性の組み合わせを様々考える必要がある。このため、管理者等による人手による作業では、有効な素性の組み合わせの発見に限界がある。また、関数で組み合わせた素性が有効では無い場合には、特定される同義語の精度が低下する場合がある。そこで、本実施形態に係る同義語推定装置は、学習器毎に、複数の素性値を重み付け演算して新たな素性値を算出する非線形な関数を、素性値の数および素性値の組み合わせを変えて複数生成する。そして、本実施形態に係る同義語推定装置は、学習器毎に、同義語と見なせる複数の文字列が意味の近さを示すスコアと共に記憶された学習用データを用いて、学習を行って同義語の特定に有効な関数を求め、求めた関数により同義語の特定を行う。
【００２５】
［２．同義語推定装置の構成］
以下、本実施形態に係る同義語推定装置１０についてさらに詳細に説明する。図８は、同義語推定装置の機能的な構成の一例を示す図である。図８に示すように、同義語推定装置１０は、通信Ｉ／Ｆ（インタフェース）部２０と、記憶部２１と、制御部２２とを有する。
【００２６】
通信Ｉ／Ｆ部２０は、ＮＩＣ（Network  Interface  Card）等のインタフェースである。通信Ｉ／Ｆ部２０は、ネットワーク１１を介した他の装置との間で各種のデータを送受信する。このネットワーク１１には、他の装置、例えば、ユーザが操作するクライアント端末１２や、管理者が操作する管理端末１３が通信可能に接続される。
【００２７】
クライアント端末１２は、ユーザによって利用される情報処理装置である。例えば、クライアント端末１２は、デスクトップ型ＰＣ（Personal  Computer）、タブレット型ＰＣ、ノート型ＰＣ、携帯電話機、ＰＤＡ（Personal  Digital  Assistant）等である。
【００２８】
クライアント端末１２は、同義語推定装置１０によって提供されるウェブページを受信し、受信したウェブページを所定の表示部（ディスプレイ）に表示する。かかるウェブページには、検索対象とする文字列を入力可能な入力領域が設けられている。検索を行う場合、ユーザは、クライアント端末１２を操作して表示部に表示されたウェブページの入力領域に検索対象とする文字列を入力し、検索実行を指示する。クライアント端末１２は、検索実行を指示されると、ウェブページの入力領域に入力された文字列をクエリとして同義語推定装置１０へ出力する。
【００２９】
管理端末１３は、管理者が同義語推定装置１０を管理する際に利用する情報処理装置である。例えば、管理端末１３は、デスクトップ型ＰＣ、タブレット型ＰＣ、ノート型ＰＣ等である。管理者は、管理端末１３を操作して同義語推定装置１０を運用、管理するための各種データの登録や各種の指示を行う。例えば、管理者は、学習用データの登録を行う。また、管理者は、同義語の特定に有効な重み付け条件の学習指示を行う。
【００３０】
通信Ｉ／Ｆ部２０は、ネットワーク１１を介してクライアント端末１２からクエリを受信する。また、通信Ｉ／Ｆ部２０は、ネットワーク１１を介して管理端末１３から登録する各種データや各種の指示を受信する。
【００３１】
記憶部２１は、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部２１は、上記の種類の記憶装置に限定されるものではなく、ＲＡＭ（Random  Access  Memory）、フラッシュメモリなどの半導体メモリ素子であってもよい。
【００３２】
記憶部２１は、制御部２２で実行されるＯＳ（Operating  System）や同義語の検索に用いる各種プログラムを記憶する。さらに、記憶部２１は、制御部２２で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部２１は、学習用データ３０と、素性データ３１と、関数データ３２と、評価データ３３を記憶する。
【００３３】
学習用データ３０は、同義語と見なせる文字列が意味の近さを示す情報と共に記憶されたデータである。例えば、学習用データ３０は、同義語と見なせる各文字列が意味の近さを示すスコアと共に複数パターン記憶されている。このスコアは、管理者等により値が定められる。学習用データ３０は、管理者等により登録される。
【００３４】
素性データ３１は、検索された同義語の候補毎に、素性値を記憶したデータである。素性データ３１は、例えば、後述する導出部４６により生成される。図９は、素性データのデータ構成の一例を示す図である。本実施形態に係る素性データ３１は、同義語の候補毎にレコードを分けて、各素性の素性値が所定の素性順にタブ区切りでフィールドを分けて記憶されている。図９に示すように、素性データ３１は、フィールド３１Ａ〜３１Ｄが設けられている。先頭のフィールド３１Ａは、同義語が学習用データ３０に登録されたものであるか否かを示すラベルを記憶する領域である。先頭のフィールド３１Ａには、同義語が学習用データ３０に登録されたものである場合「１」が格納され、学習用データ３０に登録されたものではない場合「０」が格納される。フィールド３１Ｂ以降は、素性値を記憶する領域である。図９の例は、各同義語の候補の素性値を３つとした場合を示しており、フィールド３１Ｂ〜３１Ｄには各素性の素性値が格納されている。なお、素性値は実数とする。すなわち、素性値としては、マイナスや少数点以下の数値も用いることができる。このように素性値を実数とすることにより、単純にある特性の有無だけではなく、特性を詳細に保持できる。
【００３５】
関数データ３２は、後述する学習部４２によりパラメータが学習された、学習器で評価値の演算に用いる関数を記憶したデータである。関数データ３２は、評価部４３により登録される。本実施の形態では、学習器毎に、当該学習器で評価値の演算に用いる関数を関数データ３２として記憶する。このため、学習器が複数設けられた場合、関数データ３２は複数記憶される。
【００３６】
評価データ３３は、パラメータが学習された多段構成の学習器での同義語の特性性能の評価結果を記憶したデータである。評価データ３３は、評価部４３により登録される。
【００３７】
図８に戻り、制御部２２は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部２２は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。また、制御部２２は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、図示しない内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。
【００３８】
制御部２２は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部２２は、受付部４０と、生成部４１と、学習部４２と、評価部４３と、選定部４４と、検索部４５と、導出部４６と、特定部４７と、送信部４８とを有する。
【００３９】
受付部４０は、管理端末１３から各種のデータや各種の指示を受け付ける。例えば、受付部４０は、管理端末１３から学習用データや学習指示を受け付ける。受付部４０は、管理端末１３から学習用データを受け付けた場合、記憶部２１に学習用データ３０として登録する。また、受付部４０は、管理端末１３から学習指示を受け付けた場合、生成部４１、学習部４２、評価部４３および選定部４４に対して学習モードでの動作を指示する。
【００４０】
生成部４１は、学習モードでの動作が指示された場合、前段から順に多段構成で１段ずつ、新たな学習器を生成する。また、生成部４１は、２段目以降の学習器については、後述する評価部４３による同義語の特定性能を評価した結果、現時点の最後段の学習器が無い場合よりも有る場合の同義語の特定性能が向上している場合、新たなに学習器を生成して最後段に追加する。
【００４１】
具体的に、生成部４１は、学習器として、複数の素性値を重み付け演算して新たな素性値を算出する非線形な関数を、素性値の数および素性値の組み合わせを変えて複数生成する。例えば、生成部４１は、複数の素性値を各々独立したパラメータθで重み付けして内積計算を行う非線形な関数を、素性値の数および素性値の組み合わせを変えて複数生成する。図１０は、関数の生成を説明するための図である。図１０の例は、複数の同義語の候補ｔ−１〜ｔ＋１について、それぞれ素性値ｘ＿０〜ｘ＿ｉ−１、ｘ＿ｉ、ｘ＿ｉ＋１〜ｘ＿Ｄと複数の素性値が求まっていることを示す。この場合、生成部４１は、素性値の数および素性値の組み合わせを変えて、素性値ｘ＿０〜ｘ＿ｉ−１、ｘ＿ｉ、ｘ＿ｉ＋１〜ｘ＿Ｄをそれぞれ独立したパラメータθで重み付けする関数ｗ＿｛１｝〜ｗ＿｛ｇ｝〜ｗ＿｛Ｋ｝を生成している。図１０の例では、各関数のパラメータθを識別し易くするためθ１〜θｇ〜θｋと記載している。このパラメータθは、関数が同義語の特定に寄与する度合いに応じて更新される。
【００４２】
ここで、関数は、重み付け演算する素性値の数が多いほど個々の素性値の独立性が失われ、同じ傾向を示すことになる。また、重み付け演算する素性値の数が多いほど生成される関数の数が多くなり、新たな素性値を演算する処理負荷も多くなる。また、関数の数が多いほど、算出される新たな素性値の数も多くなり、複数の素性値および複数の非線形な関数からそれぞれ算出される新たな素性値を重み付け演算して評価値を求めた場合、評価値に対する個々の素性値の影響が小さくなる。
【００４３】
そこで、生成部４１は、組み合わせる素性値の数および生成する関数の数にそれぞれ上限値を設け、上限値以下の範囲で、組み合わせる素性値の数および生成する関数の数をそれぞれ変えて非線形な関数を生成するものとする。本実施形態では、組み合わせる素性値の数の上限値を、例えば、５とする。また、本実施形態では、生成する関数の数の上限値を、例えば、２０００とする。この組み合わせる素性値の数の上限値および生成する関数の数の上限値は、管理端末１３から管理者が指定可能としてもよい。以下、組み合わせる素性値の数を「エッジ数」とも言い、生成する関数の数を「ゲート数」とも言う。例えば、生成部４１は、エッジ数およびゲート数をそれぞれ所定の初期値からそれぞれ所定値ずつ上限値を超えるまで順に更新し、それぞれのエッジ数およびゲート数毎に、エッジ数以下の範囲で、素性値の組み合わせを変えて、ゲート数分だけ非線形な関数を生成する。本実施形態では、エッジ数の初期値を２とし、ゲート数の初期値を５０として、エッジ数を２から１ずつ増加させ、それぞれのエッジ数でゲート数を５０から１０ずつ増加させて、それぞれエッジ数以下の範囲でゲート数分だけ非線形な関数を生成する。この非線形な関数として組み合わせる素性値は、ランダムに選択してもよく、所定の選択規則に沿って選択してもよい。例えば、特定の素性値を組み合わせる素性値に必ず含むようにして選択規則を定めてもよい。エッジ数およびゲート数の初期値や、エッジ数およびゲート数を更新する所定値は、管理端末１３から管理者が指定可能としてもよい。本実施形態では、エッジ数およびゲート数毎に、生成部４１により生成される複数の非線形な関数を「関数セット」と言う。本実施形態に係る学習器は、後述する評価部４３による評価の結果、最も同義語の特定性能の良い関数セットの複数の非線形な関数を用いて複数の素性値から新たな素性値を算出し、複数の素性値および算出される新たな素性値を重み付け演算して評価値を算出する。例えば、学習器は、複数の素性値および複数の非線形な関数からそれぞれ算出される新たな素性値を各々独立したパラメータｗで重み付け演算して評価値を算出する。
【００４４】
学習部４２は、学習モードでの動作が指示された場合、生成部４１により学習器が生成されると、関数セット毎に、生成された学習器の評価値の演算に用いるパラメータを学習する。例えば、学習部４２は、学習用データ３０に基づき、１段目の学習器については複数の文字列のそれぞれの複数の素性値から算出される評価値とスコアとの差が小さくなるようにパラメータを学習する。また、学習部４２は、２段目以降の学習器については前段までの評価値を所定の重み付けで演算した演算結果の値とスコアとの誤差が小さくなるようにパラメータを学習する。
【００４５】
具体的に、学習部４２は、最初に、学習用データ３０に記憶された各文字列ついてそれぞれ素性値を導出する。例えば、学習部４２は、同義語と見なせる各文字列ついてそれぞれ、図２に示した各素性の素性値を実数で導出する。なお、学習用データ３０に各文字列の素性値が記憶されている場合は、素性値を導出する必要はない。そして、学習部４２は、各文字列毎に別なレコードで、所定の素性順に各素性の実数の素性値をタブ区切りで区切って、学習用データ３０の各文字列についての学習用の素性データ３１を生成する。そして、学習部４２は、１段目の学習器については、関数セット毎に、算出される評価値とスコアとの差が小さくなるように、複数の素性値および複数の非線形な関数からそれぞれ算出される新たな素性値に対する重み付け（個々のパラメータｗ）、並びに各非線形な関数での組み合わせた素性値に対する重み付け（個々のパラメータθ）を学習する。具体的に、学習部４２は、最初に、１段目の学習器の、複数の素性値および関数セットの各非線形な関数からそれぞれ算出される新たな素性値に対する重み付け（個々のパラメータｗ）、並びに各非線形な関数の組み合わせた素性値に対する重み付け（個々のパラメータθ）をそれぞれ所定の初期値とする。そして、学習部４２は、学習用の素性データ３１の各文字列の複数の素性値を各非線形な関数に代入して新たな素性値を算出し、当該複数の素性値および算出した新たな素性値を重み付け演算して評価値を求め、求めた評価値が、学習用データ３０の同義語と見なせる各文字列のスコアにより近くなるようにリストワイズ学習を行い、各非線形な関数の組み合わせた素性値に対する重み値（個々のパラメータθ）および、各素性値および新たな素性値に対する重み値（個々のパラメータｗ）を更新する。
【００４６】
一方、学習部４２は、２段目以降の学習器については、関数セット毎に、前段までの評価値を所定の重み付けで演算した演算結果の値とスコアとの誤差が小さくなるように、複数の素性値および複数の非線形な関数からそれぞれ算出される新たな素性値に対する重み付け、並びに各非線形な関数の組み合わせた素性値に対する重み付けを学習する。具体的に、学習部４２は、学習対象の学習器の、複数の素性値および関数セットの各非線形な関数からそれぞれ算出される新たな素性値に対する重み付け、並びに各非線形な関数の組み合わせた素性値に対する重み付けをそれぞれ所定の初期値とする。そして、学習部４２は、学習用の素性データ３１の各文字列の複数の素性値を各非線形な関数に代入して新たな素性値を算出し、当該複数の素性値および算出した新たな素性値を重み付け演算した評価値と前段までの評価値とを所定の重み付けで演算した演算結果の値が学習用データ３０の同義語と見なせる各文字列のスコアにより近くなるようにリストワイズ学習を行い、各非線形な関数の組み合わせた素性値に対する重み値および、各素性値および新たな素性値に対する重み値を更新する。なお、学習器のパラメータｗ、パラメータθの初期値は、例えば、１とする。このパラメータｗ、パラメータθの初期値は、管理端末１３から管理者が指定可能としてもよい。
【００４７】
ここで、１段目の学習器の関数のパラメータの更新の一例を説明する。最初に参考文献（Zhe  Cao,Tao  Qin,Tie-Yan  Liu,Ming-Feng  Tsai,and  Hang  Li．learning  to  rank：from  pairwise  approach  to  listwise  approach．In  Proceeding  of  the  24th  international  conference  on  Machine  learning,ICML  07,P129-136,New  York,USA,2007．ACM）を参考にTop  k  ListNetを説明する。
【００４８】
Top  k  ListNetでは、クエリｑ（i）が与えられた際に得られたｎ（i）件の同義語の候補から、上位ｋ件の文書の順序が得られる確率を以下の式（１）のように定義する。
【００４９】
【数１】
0005442083.tif 000002
【００５０】
ここで、ｆwは、文書の素性ベクトルｘjtに対する評価値を演算するランキング関数を表し、ｚ(i)(ｆw)は、文書の順列に対するｆwのスコアのリストを表す。
【００５１】
モデルの学習では、学習用データ３０の同義語と見なせる各文字列の素性値およびスコアを用いて同義語の学習を行い、学習用データ３０に対するクロスエントロピーを最小化する事で、ランキング関数のパラメータｗを推定する。クロスエントロピーは、以下の式（２）のように表される。
【００５２】
【数２】
0005442083.tif 000003
【００５３】
ｇkは、ｋ個のドキュメントからなる順列を表し、ｇは、その部分集合を表す。この場合のパラメータの更新式を以下の式（３）に示す。Ｐｙ（i）はクエリｑ（i）に対するドキュメントの部分集合ｇの正解となる生起確率を表し、Ｐｚ(i)(ｆw)は学習モデルのパラメータから求めた部分集合ｇの確率を表す。
【００５４】
【数３】
0005442083.tif 000004
【００５５】
ｋが大きい場合には、上記の更新式は計算が困難なため、通常は、ｋ＝１の場合のみを扱う。ｋ＝１の場合の更新式を以下の式（４）に示す。
【００５６】
【数４】
0005442083.tif 000005
【００５７】
参考文献では、ランキング関数ｆwに以下の式（５）に示すように素性ベクトルｘjtに対してそれぞれパラメータｗで重み付けた単純な線形ニューラルネットモデルを採用している。
【００５８】
【数５】
0005442083.tif 000006
【００５９】
ここで、参考文献は、ランキング関数に線形ニューラルネットモデルを採用しているため、出力ｚと入力ｘの間の線形な関係しか学習することができない。本実施形態では、生成部４１が生成する関数φtにより、出力と入力の間の非線形な関係としている。そこで、出力と入力の間の非線形な関係を学習できるように拡張する。これによって、ランキング関数は式（６）のように変更される。
【００６０】
【数６】
0005442083.tif 000007
【００６１】
Φ（ｘj(i)）は、Ｄ個の関数φtからなるベクトルを表す。各関数φtは、以下の式（７）に示すシグモイド関数で表され、各関数ごとに独立した重みを示すパラメータθtを持つ。
【００６２】
【数７】
0005442083.tif 000008
【００６３】
ランキング関数に変更を加えたTop  1  ListNetの損失関数を最小化するようにパラメータｗ、θtを更新する。更新式を以下の式（８）〜（１１）に示す。
【００６４】
【数８】
0005442083.tif 000009
【００６５】
関数φtでは、入力ｘj(i)に含まれる素性の組み合わせを生成し、それに非線形な重みを与えている。これによって、入力ｘj(i)を任意のＤ次元に写像するとともに、入力と出力の間の非線形な学習を行う。
【００６６】
学習部４２は、１段目の学習器については、式（８）、（９）を用いて、各々独立したパラメータθ、パラメータｗをそれぞれ個別に更新する。
【００６７】
次に、２段目以降の学習器の関数のパラメータの更新の一例を説明する。本実施形態に係る同義語推定装置１０は、多段構成の学習器によりそれぞれ算出される評価値を所定の重み付けで演算した演算結果の値に基づいて同義語を特定する。例えば、式（５）からｔ段目の学習器により算出される評価値をｆwt（ｘj(i)）とした場合、ｔ段目までの学習器の評価値を所定の重み付けで演算した演算結果の値は、以下の式（１２）のように表される。
【００６８】
【数９】
0005442083.tif 000010
【００６９】
Ｃtは、ｔ段目の評価値を重み付けする重み値を表す。このＣtは、１以下で多い段数のものほど値が低下し、ゼロに近づくように定める。Ｃtは、管理者等により値が定めてもよく、また、例えば、Ｃtは、ｓ／（ｓ＋ｔ）などの漸近線を用いて求めてもよい。ｓは、管理者等により値が定めもよく、例えば、学習器の最大の段数としてもよい。
【００７０】
ここで、学習部４２は、多段構成された各学習器の評価値の演算に用いるパラメータを前から順に１段ずつ学習する。このため、ｔ段目の学習器のパラメータの学習を行う場合、ｔ−１段目までの学習器のパラメータは、定まっている。例えば、１段目の学習器のパラメータθ、パラメータｗは、１段目の学習器のパラメータの学習の際に式（８）、（９）から定まる。このため、例えば、２段目を学習器のパラメータの学習では、１段目の学習器のパラメータθ、パラメータｗが定まっているために１段目の評価値ｆw1（ｘj(i)）が固定値となる。
【００７１】
多段構成の学習器でのクロスエントロピーは、以下の式（１３）のように表される。
【００７２】
【数１０】
0005442083.tif 000011
【００７３】
この場合、２段目以降の学習器について、ｔ段目の学習器のパラメータｗt、θtを更新する更新式は、以下の式（１４）（１５）のように表される。
【００７４】
【数１１】
0005442083.tif 000012
【００７５】
学習部４２は、２段目以降の学習器については、式（１４）（１５）を用いて、ｔ段目の学習器の各々独立したパラメータｗt、パラメータθtをそれぞれ個別に更新する。
【００７６】
評価部４３は、学習モードでの動作が指示された場合、関数セット毎に、学習部４２により学習したパラメータをセットした多段構成の学習器による同義語の特定性能を評価する。例えば、評価部４３は、学習部４２によりＮ段目の学習器について、関数セット毎のパラメータの学習した場合、Ｎ段目の学習器として、関数セット毎に、学習したパラメータをセットした複数の非線形な関数を用いて評価値を算出する。また、評価部４３は、Ｎ−１段目までの学習器については、Ｎ−１段目までの学習において特定された複数の非線形な関数を用いて評価値を算出する。そして、評価部４３は、関数セット毎に、Ｎ段目までの学習器によりそれぞれ算出される評価値を所定の重み付けで演算した演算結果の値を求め、演算結果の値に基づいて、関数セット毎の同義語の特定性能を評価する。なお、同義語の評価を行うためのデータは、同義語と見なせる複数の文字列が意味の近さを示すスコアと共に記憶された新たなデータとしてもよい。また、学習用データ３０を用いて同義語の特定性能の評価を行ってもよい。この場合、同義語の特定性能の評価を正確に評価するため、学習用データ３０は、一部を学習部４２によるパラメータ学習用のデータとし、他の一部を特定性能の評価用のデータとする。そして、学習部４２は、学習用データ３０の評価用のデータ部分を用いて学習器のパラメータの学習を行う。また、評価部４３は、学習用データ３０の評価用のデータ部分を用いて同義語の特定性能を評価する。
【００７７】
評価部４３は、関数セット毎に、同義語と見なせる複数の文字列について、演算結果の値の順序とスコアの順序を比較して、同義語の特定性能を評価する。例えば、評価部４３は、関数セット毎に、ｋ番目の位置までスコア順に特定できるｋ番目までの正確性（Precision  at  Position  k  (Ｐ＠ｋ)）を求める。例えば、評価部４３は、ｋ番目の位置までスコア順に特定できている場合、Ｐ＠ｋを１と求め、ｋ番目の位置までスコア順に特定できていない場合、Ｐ＠ｋを０と求める。評価部４３は、同義語と見なせる複数の文字列を複数のパターンについて、関数セット毎に、Ｐ＠ｋを求め、関数セット毎にＰ＠ｋを平均して、平均正確さＡＰ（Average  Precision）を求める。そして、評価部４３は、平均正確さＡＰが最も高い関数セットを、パラメータの学習対象とされた学習器で用いる関数セットと特定し、関数セットの各関数に学習したパラメータをセットした各関数をＮ段目の学習器の関数データ３２として記憶部２１に登録する。これにより、記憶部２１には、学習器毎に、関数データ３２が記憶される。また、評価部４３は、平均正確さＡＰが最も高い関数セットでの平均正確さＡＰをＮ段構成の学習器での評価データ３３として記憶部２１に登録する。
【００７８】
選定部４４は、学習モードでの動作が指示され、評価部４３により２段目以上の学習器の関数データが登録された場合、評価データ３３に基づき、現時点の最後段の学習器が無い場合よりも有る場合の同義語の特定性能が向上しているか否か判定する。選定部４４は、判定の結果、最後段の学習器が無い場合よりも有る場合の同義語の特定性能が向上いていない場合、現時点の最後段の学習器を除いた学習器を、後述する特定部４７で同義語の特定に用いる学習器と選定し、現時点の最後段の学習器の関数データ３２を削除する。一方、判定の結果、最後段の学習器が無い場合よりも有る場合の同義語の特定性能が向上している場合は、上述の生成部４１により新たなに学習器が生成されて最後段に追加され、追加された学習器のパラメータの学習および評価が学習部４２および評価部４３により行われる。
【００７９】
検索部４５は、クライアント端末１２からクエリが入力した場合、入力されたクエリの同義語の候補を複数検索する。この検索方式は、同義語の候補を検索可能であれば、何れであってもよい。本実施形態では、例えば、ラベル伝播を用いて同義語の候補を複数検索する。
【００８０】
導出部４６は、検索された複数の同義語の候補についてそれぞれ素性値を実数として導出する。例えば、導出部４６は、検索された複数の同義語の候補についてそれぞれ、図２に示した各素性の実数の素性値を導出する。そして、導出部４６は、同義語の候補毎にそれぞれ導出した各素性の実数の素性値を、同義語の候補毎に別なレコードで、所定の素性順に各素性の素性値をタブ区切りで区切った素性データ３１を生成する。
【００８１】
特定部４７は、クライアント端末１２からクエリが入力した場合、記憶部２１にそれぞれ関数データ３２として記憶された各学習器の各関数を用いて、素性データ３１の複数の実数の素性値からそれぞれ新たな実数の素性値を算出し、当該複数の素性値および算出された新たな素性値を重み付けで演算して評価値を算出する。そして、特定部４７は、算出された各学習器の評価値を所定の重み付け（上述のＣt）で演算した演算結果の値を求め、演算結果の値に基づき、同義語の候補から入力されたクエリに意味が近い同義語を特定する。例えば、特定部４７は、演算結果の値が大きい順に同義語の候補をランキングし、ランキングの最も高い同義語の候補を意味が近い同義語と特定する。なお、この特定手法は、意味が近い同義語を特定可能であれば、何れであってもよい。
【００８２】
ここで、多段構成とされた学習器は、１段目の学習器について評価値とスコアとの差が小さくなるようにパラメータが学習され、２段目以降の学習器について前段までの評価値を重み付けで演算した演算結果の値とスコアとの誤差が小さくなるようにパラメータが学習されている。よって、このような多段構成とされた学習器を用いて同義語の特定を行うことにより、学習器が１段構成である場合よりも、検索が要求されたクエリに近い同義語をより精度良く特定できる。
【００８３】
送信部４８は、最も上位にランキングされた同義語をサジェスチョンクエリとして、クライアント端末１２に送信する。これにより、クライアント端末１２では、検索を指示したクエリに近い同義語がサジェスチョンクエリとして表示される。
【００８４】
［３．作用（同義語推定装置の動作）］
次に、本実施例に係る同義語推定装置１０の作用について説明する。まず、本実施例に係る同義語推定装置１０が同義語の特定に有効な多段構成の学習器を学習する学習処理の流れを説明する。図１１は、学習処理の手順を示すフローチャートである。この学習処理は、所定のタイミング、例えば、管理端末１３から学習指示を受け付けたタイミングで実行される。
【００８５】
図１１に示すように、生成部４１は、段数を示す変数Ｎを１に初期化する（Ｓ１０）。次に、生成部４１は、Ｎ段目の学習器に用いる関数データを生成する生成処理を行う（Ｓ１１）。生成部４１は、変数Ｎが１であるか否か判定する（Ｓ１２）。変数Ｎが１である場合（Ｓ１２肯定）、生成部４１は、変数Ｎに１を加算し（Ｓ１３）、ステップＳ１１へ移行する。
【００８６】
変数Ｎが１ではない場合（Ｓ１２否定）、選定部４４は、評価データ３３に基づき、Ｎ段の学習器での同義語の特定性能と、Ｎ−１段の学習器での同義語の特定性能を比較する（Ｓ１４）。選定部４４は、比較の結果、Ｎ段の学習器での同義語の特定性能がＮ−１段の学習器での同義語の特定性能よりも向上しているか否か判定する（Ｓ１５）。すなわち、選定部４４は、現時点の最後段であるＮ段目の学習器が無い場合よりも有る場合の同義語の特定性能が向上しているか否か判定する。特定性能が向上している場合（Ｓ１５肯定）、上述のＳ１３へ移行する。
【００８７】
特定性能が向上していない場合（Ｓ１５否定）、選定部４４は、Ｎ段目の学習器を除いたＮ−１段目までの学習器を同義語の特定に用いる学習器と選定し、Ｎ段目の学習器の関数データ３２を削除して、処理を終了する。
【００８８】
次に、学習器に用いる関数データを生成する生成処理の流れを説明する。図１２は、生成処理の手順を示すフローチャートである。この生成処理は、上述の学習処理のＳ１１から呼び出されて実行される。図１２に示すように、生成部４１は、エッジ数およびゲート数をそれぞれ初期値に設定する（Ｓ２０）。例えば、生成部４１は、エッジ数を初期値の２とし、ゲート数を初期値の５０とする。
【００８９】
生成部４１は、ゲート数が上限値以内であるか否か判定する（Ｓ２１）。例えば、生成部４１は、ゲート数が上限値の２０００以内であるか否か判定する。ゲート数が上限値以内である場合（Ｓ２１肯定）、生成部４１は、エッジ数以下の範囲でゲート数分だけ非線形な関数を複数生成する（Ｓ２２）。この生成された複数の関数が、１つの関数セットである。学習部４２は、学習用データ３０に基づき、生成部４１により生成され関数セットの各関数のパラメータを学習する（Ｓ２３）。例えば、学習部４２は、１段目の学習器については複数の文字列のそれぞれの複数の素性値から算出される評価値とスコアとの差が小さくなるようにパラメータを学習する。また、学習部４２は、２段目以降の学習器については前段までの評価値を所定の重み付けで演算した演算結果の値とスコアとの誤差が小さくなるようにパラメータを学習する。
【００９０】
学習部４２は、学習したパラメータをセットした関数セットの複数の関数を記憶部２１に一次的に記憶させる（Ｓ２４）。生成部４１は、ゲート数を所定値増加させる（Ｓ２５）。例えば、生成部４１は、ゲート数に１０を加算する。そして、上述のステップＳ２１へ処理を移行する。
【００９１】
一方、ゲート数が上限値以内ではない場合（Ｓ２１否定）、生成部４１は、エッジ数が上限値以内であるか否か判定する（Ｓ２６）。例えば、生成部４１は、エッジ数が上限値の５以内であるか否か判定する。エッジ数が上限値以内である場合（Ｓ２６肯定）、生成部４１は、ゲート数を初期値に設定する（Ｓ２７）。そして、生成部４１は、エッジ数を所定値増加させる（Ｓ２８）。例えば、生成部４１は、エッジ数に１を加算する。そして、上述のステップＳ２１へ処理を移行する。
【００９２】
このＳ２１〜Ｓ２８の処理により、生成部４１により、エッジ数およびゲート数毎に、エッジ数以下の範囲で、素性値の組み合わせを変えて、ゲート数分だけ非線形な関数を生成され、学習部４２により、関数セット毎に、生成された非線形な関数のパラメータが学習される。
【００９３】
エッジ数が上限値以内ではない場合（Ｓ２６否定）、評価部４３は、関数セット毎に、Ｎ段目の学習部４２に学習したパラメータをセットしたＮ段構成の学習器による同義語の特定性能を評価する（Ｓ２９）。例えば、評価部４３は、関数セット毎に、平均正確さＡＰを求める。評価部４３は、評価の結果、特定性能が最もよい関数セットの各関数に学習したパラメータをセットした各関数をＮ段目の学習器の関数データ３２として記憶部２１に登録する（Ｓ３０）。評価部４３は、特定性能が最もよい関数セットでの平均正確さＡＰをＮ段構成の学習器の評価データ３３として記憶部２１に登録し（Ｓ３２）、処理の呼び出し元へ移行する。
【００９４】
次に、本実施例に係る同義語推定装置１０が同義語を特定する同義語特定処理の流れを説明する。図１３は、同義語特定処理の手順を示すフローチャートである。この同義語特定処理は、所定のタイミング、例えば、クライアント端末１２からクエリが入力されたタイミングで実行される。
【００９５】
図１３に示すように、検索部４５は、入力されたクエリの同義語の候補を複数検索する（ステップＳ５０）。導出部４６は、検索された複数の同義語の候補についてそれぞれ素性値を導出し、導出した各素性の素性値を記憶した素性データ３１を記憶部２１に格納する（ステップＳ５１）。
【００９６】
特定部４７は、記憶部２１から各学習器の関数データ３２を読み出す（ステップＳ５２）。特定部４７は、学習器毎に、関数データ３２に記憶された各関数を用いて、素性データ３１の複数の実数の素性値から評価値を算出する（ステップＳ５３）。そして、特定部４７は、算出された各学習器の評価値を所定の重み付け（上述のＣt）で演算する（ステップＳ５４）。特定部４７は、重み付け演算した演算結果の値が大きい順に同義語の候補をランキングし、ランキングの最も高い同義語の候補を意味が近い同義語と特定する（ステップＳ５５）。
【００９７】
送信部４８は、最も上位にランキングされた同義語をサジェスチョンクエリとして、クライアント端末１２に送信し（ステップＳ５６）、処理を終了する。
【００９８】
［４．効果］
このように、同義語推定装置１０は、同義語と見なせる複数の文字列が意味の近さを示すスコアと共に記憶された学習用データを記憶部２１（記憶手段の一例に相当）に記憶する。また、同義語推定装置１０は、学習部４２（学習手段の一例に相当）により、評価値の演算に用いるパラメータが変更可能とされ、複数の素性値から演算を行って評価値を算出し、多段構成とされた学習器について、学習用データに基づき、１段目の学習器については複数の文字列のそれぞれの複数の素性値から算出される評価値とスコアとの差が小さくなるようにパラメータを学習し、２段目以降の学習器については前段までの評価値を所定の重み付けで演算した演算結果の値とスコアとの誤差が小さくなるように前記パラメータを学習する。そして、同義語推定装置１０は、特定部４７（特定手段の一例に相当）により、検索が要求されたクエリから検索された複数の同義語の候補について、同義語の候補の前記複数の素性値から、学習部４２により学習したパラメータをセットした多段構成の学習器によりそれぞれ算出される評価値を所定の重み付けで演算した演算結果の値に基づき、複数の同義語の候補からクエリに意味が近い同義語を特定する。このように、同義語推定装置１０は、１段目の学習器については算出される評価値とスコアとの差が小さくなるようにパラメータが学習され、２段目以降の学習器については前段までの評価値を所定の重み付けで演算した演算結果の値とスコアとの誤差が小さくなるようにパラメータが学習された多段構成の学習器により同義語の特定を行うことにより、クエリに近い同義語をより精度良く特定できる。
【００９９】
また、同義語推定装置１０は、評価部４３（評価手段の一例に相当）により、学習部４２により学習したパラメータをセットした多段構成の学習器による同義語の特定性能を評価する。また、同義語推定装置１０は、生成部４１（生成手段の一例に相当）により、前段から順に多段構成で１段ずつ、２段目以降については評価部４３により多段構成の学習器について、現時点の最後段の学習器が無い場合と有る場合での同義語の特定性能を評価した結果、最後段の学習器が無い場合よりも有る場合の同義語の特定性能が向上している場合、新たな学習器を生成する。そして、同義語推定装置１０は、学習部４２が、生成部４１より生成された学習器のパラメータを学習する。このように、同義語推定装置１０は、前段から順に多段構成で１段ずつ新たな学習器を生成し、生成された学習器のパラメータを学習することにより、同義語の特定性能を向上させることができる。
【０１００】
また、同義語推定装置１０は、選定部４４（選定手段の一例に相当）により、評価部４３による評価の結果、現時点の最後段の学習器が無い場合よりも有る場合の同義語の特定性能が向上していない場合、最後段の学習器を除いた学習器を、特定部４７で同義語の特定に用いる学習器と選定する。これにより、同義語推定装置１０は、最も同義語の特定性能がよい段数に学習器を調整できる。
【０１０１】
また、同義語推定装置１０は、各学習器は、素性値の数および素性値の組み合わせを変えて重み付け演算して新たな素性値を算出する複数の非線形な関数を用いて複数の素性値から新たな素性値を算出し、当該複数の素性値および算出された新たな素性値を重み付けで演算して評価値を算出する。そして、同義語推定装置１０は、学習部４２が、各学習器のパラメータとして、複数の素性値および複数の非線形な関数からそれぞれ算出される新たな素性値に対する重み付け、並びに各非線形な関数の組み合わせた素性値に対する重み付けを学習する。このように、同義語推定装置１０は、新たな素性値を算出する非線形な関数を複数生成し、複数の素性値および新たな素性値に対する重み付け、並びに各非線形な関数の組み合わせた素性値に対する重み付けの学習を行うことで、ユーザの手を煩わすことなく有効な新たな素性値を求めることができ、新たな素性値も加味して同義語を特定するため、クエリに近い同義語を精度良く特定できる。また、各学習器毎に、新たな素性値を算出する非線形な関数を複数生成し、複数の素性値および新たな素性値に対する重み付け、並びに各非線形な関数の組み合わせた素性値に対する重み付けを学習することにより、各学習器がそれぞれ異なる特性となり、特性の異なる学習器を多段構成に組み合わせた場合と同等に機能し、それぞれで特定性能の弱い部分を補うことができるため、同義語を精度良く特定できるようになる。
【０１０２】
［５．その他］
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１０３】
例えば、上記の実施形態では、最も上位にランキングされた同義語の候補をサジェスチョンクエリとして送信する場合について説明したが、本発明はこれに限定されない。例えば、上位の所定位以内にランキングされた同義語をクエリと共にＯＲ検索を行うものとしてもよい。
【０１０４】
また、上述した同義語推定装置１０は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をＡＰＩ（Application  Programming  Interface）やネットワークコンピューティングなどで呼び出して実現するなど、構成は柔軟に変更できる。
【０１０５】
例えば、上記の実施形態では、同義語推定装置１０において、入力されたクエリの同義語の候補の検索および同義語の候補についての素性値の導出を行うものとしているが、これに限定されるものではない。同義語の候補の検索や同義語の候補についての素性値の導出をＷｅｂサーバなどの別なサーバ装置で行い、同義語推定装置１０は、当該別なサーバ装置から素性データ３１を受信し、最も上位にランキングされた同義語を当該別なサーバ装置へ返信するものとしてもよい。
【０１０６】
また、上記の実施形態では、各学習器に非線形なListNetの手法を用いて非線形な関数を生成する場合について説明したがこれに限定されるものではない。例えば、リストワイズ学習を適用可能であれば、線形なListNetの手法やリストＭＬＥなど他の同義語の特定手法を用いてもよい。
【０１０７】
また、上記の実施形態では、各学習器を同じ学習器とした場合について説明したがこれに限定されるものではない。例えば、各学習器に異なる同義語の特定手法を適用してもよい。
【０１０８】
また、上記の実施形態では、多段構成の学習器の同義語の特定性能を評価した結果、最後段の学習器が無い場合よりも有る場合の同義語の特定性能が向上している場合、新たな学習器を生成するため、多段構成の学習器の段数が可変である場合について説明したがこれに限定されるものではない。例えば、学習器の段数を所定の段数だけ生成するものとしてもよい。また、学習器の段数に上限値を設けてもよい。所定の段数や上限値は、管理端末１３から管理者が指定可能としてもよい。
【０１０９】
また、上記の実施形態では、多段構成の各学習器について、それぞれエッジ数およびゲート数を更新しつつ、それぞれのエッジ数およびゲート数毎に、エッジ数以下の範囲で、素性値の組み合わせを変えて、ゲート数分だけ非線形な関数を生成する場合について説明したがこれに限定されるものではない。例えば、エッジ数およびゲート数をそれぞれ所定値として、各学習器について、エッジ数以下の範囲で、素性値の組み合わせを変えて、ゲート数分だけ非線形な関数を生成してもよい。また、このエッジ数およびゲート数の値は、管理端末１３から管理者が指定可能としてもよい。
【０１１０】
また、特許請求の範囲に記載した「手段」は、「部（section、module、unit）」や「回路」などに読み替えることができる。例えば、検索手段は、検索部や検索回路に読み替えることができる。
【符号の説明】
【０１１１】
１０  同義語推定装置
２１  記憶部
２２  制御部
３０  学習用データ
３２  関数データ
３３  評価データ
４０  受付部
４１  生成部
４２  学習部
４３  評価部
４４  選定部
４５  検索部
４６  導出部
４７  特定部
４８  送信部
【要約】
【課題】検索が要求されたクエリに近い同義語をより精度良く特定できる同義語推定装置、同義語推定方法および同義語推定プログラムを提供する。
【解決手段】学習部４２が、多段構成とされた学習器について、学習用データに基づき、１段目の学習器については複数の文字列のそれぞれの複数の素性値から算出される評価値とスコアとの差が小さくなるようにパラメータを学習し、２段目以降の学習器については前段までの評価値を所定の重み付けで演算した演算結果の値とスコアとの誤差が小さくなるように前記パラメータを学習し、特定部４７が、学習部４２により学習したパラメータをセットした多段構成の学習器を用いて、複数の同義語の候補からクエリに意味が近い同義語を特定する。
【選択図】図８【図１】
0005442083.tif 000013
【図２】
0005442083.tif 000014
【図３】
0005442083.tif 000015
【図４】
0005442083.tif 000016
【図５】
0005442083.tif 000017
【図６】
0005442083.tif 000018
【図７】
0005442083.tif 000019
【図８】
0005442083.tif 000020
【図９】
0005442083.tif 000021
【図１０】
0005442083.tif 000022
【図１１】
0005442083.tif 000023
【図１２】
0005442083.tif 000024
【図１３】
0005442083.tif 000025