(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）件の同義語の候補から、上位ｋ件の文書の順序が得られる確率を以下の式（１）のように定義する。
【００４２】
【数１】
0005507620.tif 000002
【００４３】
ここで、ｆwは、文書の素性ベクトルｘjtに対するランキング関数を表し、ｚ(i)(ｆw)は、文書の順列に対するｆwのスコアのリストを表す。
【００４４】
モデルの学習では、学習用データ３０の同義語と見なせる各文字列の素性値およびスコアを用いて同義語の学習を行い、学習用データ３０に対するクロスエントロピーを最小化する事で、ランキング関数のパラメータｗを推定する。クロスエントロピーは、以下の式（２）のように表される。
【００４５】
【数２】
0005507620.tif 000003
【００４６】
ｇkは、ｋ個のドキュメントからなる順列を表し、ｇは、その部分集合を表す。この場合のパラメータの更新式を以下の式（３）に示す。Ｐｙ（i）はクエリｑ（i）に対するドキュメントの部分集合ｇの正解となる生起確率を表し、Ｐｚ(i)(ｆw)は学習モデルのパラメータから求めた部分集合ｇの確率を表す。
【００４７】
【数３】
0005507620.tif 000004
【００４８】
ｋが大きい場合には、上記の更新式は計算が困難なため、通常は、ｋ＝１の場合のみを扱う。ｋ＝１の場合の更新式を以下の式（４）に示す。
【００４９】
【数４】
0005507620.tif 000005
【００５０】
参考文献では、ランキング関数ｆwに以下の式（５）に示すように素性ベクトルｘjtに対してそれぞれパラメータｗで重み付けた単純な線形ニューラルネットモデルを採用している。
【００５１】
【数５】
0005507620.tif 000006
【００５２】
ここで、参考文献は、ランキング関数に線形ニューラルネットモデルを採用しているため、出力ｚと入力ｘの間の線形な関係しか学習することができない。出力ｚと入力ｘの間の線形な関係しか学習することができない。本実施形態では、生成部４１が生成する関数φtにより、出力と入力の間の非線形な関係としている。そこで、出力と入力の間の非線形な関係を学習できるように拡張する。これによって、ランキング関数は式（６）のように変更される。
【００５３】
【数６】
0005507620.tif 000007
【００５４】
Φ（ｘj(i)）は、Ｄ個の関数φtからなるベクトルを表す。各関数φtは、以下の式（７）に示すシグモイド関数で表され、各関数ごとに独立した重みを示すパラメータθtを持つ。
【００５５】
【数７】
0005507620.tif 000008
【００５６】
ランキング関数に変更を加えたTop  1  ListNetの損失関数を最小化するようにパラメータｗ、θtを更新する。更新式を以下の式（８）〜（１０）に示す。
【００５７】
【数８】
0005507620.tif 000009
【００５８】
関数φtでは、入力ｘj(i)に含まれる素性の組み合わせを生成し、それに非線形な重みを与えている。これによって、入力ｘj(i)を任意のＤ次元に写像するとともに、入力と出力の間の非線形な学習を行う。
【００５９】
学習部４２は、式（８）、（９）を用いて、各々独立したパラメータθ、パラメータｗをそれぞれ個別に更新する。これにより、正解を予測する際に寄与する素性の組み合わせに対する重みは高く変更され、正解の予測に寄与しない素性の組み合わせに対する重みは低く変更される。なお、パラメータの変更方法は、これに限定されるものではない。その他各種の手法を適用できる。例えば、学習部４２は、学習用データ３０に記憶された同義語と見なせる各文字列ついてそれぞれ複数の素性値および複数の非線形な関数からそれぞれ算出される新たな素性値を重み付け演算した演算結果が最も意味が近い同義語の文字列を最上位に特定できる場合、演算結果の値を上昇させ、特定できない場合、演算結果の値を低下させるように非線形な関数の素性値に対する重み付け、複数の素性値および新たな素性値に対する重み付けを変更してもよい。すなわち、学習部４２は、最も意味が近い同義語の文字列を特定できているか否かにより、パラメータθ、パラメータｗを更新するようにしてもよい。
【００６０】
検索部４３は、クライアント端末１２からクリエが入力した場合、入力されたクエリの同義語の候補を複数検索する。この検索方式は、同義語の候補を検索可能であれば、何れであってもよい。本実施形態では、例えば、ラベル伝播を用いて同義語の候補を複数検索する。
【００６１】
導出部４４は、検索された複数の同義語の候補についてそれぞれ素性値を実数として導出する。例えば、導出部４４は、検索された複数の同義語の候補についてそれぞれ、図２に示した各素性の実数の素性値を導出する。そして、導出部４４は、同義語の候補毎にそれぞれ導出した各素性の実数の素性値を、同義語の候補毎に別なレコードで、所定の素性順に各素性の素性値をタブ区切りで区切った素性データ３１を生成する。
【００６２】
特定部４５は、クライアント端末１２からクリエが入力した場合、記憶部２１に関数データ３２として記憶された各関数を用いて、素性データ３１の複数の実数の素性値からそれぞれ新たな実数の素性値を算出する。そして、特定部４５は、記憶部２１に関数データ３２として記憶された各々独立したパラメータｗで素性データ３１の実数の各素性値および算出された新たな実数の素性値に対して重み付け演算し、演算結果に基づき、同義語の候補から入力されたクエリに意味が近い同義語を特定する。例えば、重み付け演算した演算結果の値が大きい順に同義語の候補をランキングし、最も大きい同義語の候補を意味が近い同義語と特定する。なお、この特定手法は、意味が近い同義語を特定可能であれば、何れであってもよい。例えば、特定部４５が各素性の素性値を区別せずに、素性値が大きい順に同義語の候補をランキングしてもよい。
【００６３】
ここで、生成部４１により生成された各関数は、複数の同義語の候補から対応する同義語の文字列を最上位に特定できる確率が高い場合、演算結果の値が大きくなるようにパラメータθおよびパラメータｗが変更され、確率が低い場合、演算結果の値が小さくなるようにパラメータθおよびパラメータｗが変更される。よって、同義語の文字列を最上位に特定できる確率が低い関数は、算出される素性値の値が小さくなるため、クエリに意味が近い同義語を特定する際の影響が小さくなる。
【００６４】
送信部４６は、最も上位にランキングされた同義語をサジェスチョンクエリとして、クライアント端末１２に送信する。これにより、クライアント端末１２では、検索を指示したクエリに近い同義語がサジェスチョンクエリとして表示される。
【００６５】
［３．作用（同義語推定装置の動作）］
次に、本実施例に係る同義語推定装置１０の作用について説明する。まず、本実施例に係る同義語推定装置１０が同義語の特定に有効な関数を学習する学習処理の流れを説明する。図１０は、学習処理の手順を示すフローチャートである。この学習処理は、所定のタイミング、例えば、管理端末１３から学習指示を受け付けたタイミングで実行される。
【００６６】
図１０に示すように、生成部４１は、複数の素性値を重み付け演算して新たな素性値を算出する非線形な関数を素性値の数および素性値の組み合わせを変えて複数生成する（ステップＳ１０）。学習部４２は、学習用データ３０に記憶された各文字列ついてそれぞれ素性値を導出し、導出した各素性の素性値を記憶した学習用の素性データ３１を生成する（ステップＳ１１）。
【００６７】
そして、学習部４２は、学習用データ３０の文字列を意味の近い順に判定可能な、複数の素性値および新たな素性値に対する重み付け、並びに各非線形な関数の組み合わせた素性値に対する重み付けを学習する（ステップＳ１２）。学習部４２は、学習部４２は、算出したパラメータθを設定した新たな素性値を算出する各関数および各素性値および新たな素性値に対する重みを示すパラメータｗを関数データ３２として記憶部２１に記憶部２１に記憶させ（ステップＳ１３）、処理を終了する。
【００６８】
次に、本実施例に係る同義語推定装置１０が同義語を特定する同義語特定処理の流れを説明する。図１１は、同義語特定処理の手順を示すフローチャートである。この同義語特定処理は、所定のタイミング、例えば、クライアント端末１２からクエリが入力されたタイミングで実行される。
【００６９】
図１１に示すように、検索部４３は、入力されたクエリの同義語の候補を複数検索する（ステップＳ２０）。導出部４４は、検索された複数の同義語の候補についてそれぞれ素性値を導出し、導出した各素性の素性値を記憶した素性データ３１を記憶部２１に格納する（ステップＳ２１）。
【００７０】
特定部４５は、関数データ３２を読み出す（ステップＳ２２）。特定部４５は、関数データ３２に記憶された各関数を用いて、素性データ３１の複数の素性の素性値からそれぞれ新たな素性値を算出する（ステップＳ２３）。そして、特定部４５は、関数データ３２として記憶されたパラメータｗで素性データ３１の各素性値および算出された新たな素性値を重み付け演算し、演算結果の値が大きい順に同義語の候補をランキングし、同義語の候補から入力されたクエリに意味が近い同義語を特定する（ステップＳ２４）。
【００７１】
送信部４６は、最も上位にランキングされた同義語をサジェスチョンクエリとして、クライアント端末１２に送信し（ステップＳ２５）、処理を終了する。
【００７２】
［４．効果］
このように、同義語推定装置１０は、同義語と見なせる文字列が意味の近さを示す情報と共に記憶された学習用データ３０を記憶部２１（記憶手段の一例に相当）に記憶する。また、同義語推定装置１０は、生成部４１（生成手段の一例に相当）により、複数の素性値を重み付け演算して新たな素性値を算出する非線形な関数を、素性値の数および素性値の組み合わせを変えて複数生成する。そして、同義語推定装置１０は、学習部４２（学習手段の一例に相当）により、学習用データ３０に基づき、文字列を意味の近い順に判定可能な、複数の素性値および複数の非線形な関数からそれぞれ算出される新たな素性値に対する重み付け、並びに各非線形な関数の組み合わせた素性値に対する重み付けを学習する。そして、同義語推定装置１０は、特定部４５（特定手段の一例に相当）により、検索が要求されたクエリから検索された複数の同義語の候補について、同義語の候補の前記複数の素性値から、前記学習手段で学習した組み合わせた素性値に対する重み付けで素性値を重み付けした各非線形な関数を用いて新たな素性値を算出し、当該複数の素性値および算出された新たな素性値を前記学習手段で学習した重み付けで演算した演算結果に基づき、複数の同義語の候補からクエリに意味が近い同義語を特定する。このように、同義語推定装置１０は、新たな素性値を算出する非線形な関数を複数生成し、複数の素性値および新たな素性値に対する重み付け、並びに各非線形な関数の組み合わせた素性値に対する重み付けを学習を行うことで、ユーザの手を煩わすことなく有効な新たな素性値を求めることができ、新たな素性値も加味して同義語を特定するため、クエリに近い同義語をより精度良く特定できる。
【００７３】
また、同義語推定装置１０は、学習部４２が、最上位に特定できる確率が高い非線形な関数の重み値を高く変更し、確率が低い非線形な関数の重み値を低く変更する。これにより、同義語推定装置１０は、同義語の文字列の特定精度を高めることができる。
【００７４】
また、同義語推定装置１０は、生成部４１が、所定値以下の範囲で素性値の数を変えて非線形な関数を生成する。これにより、同義語推定装置１０は、素性値を重み付け演算する関数が不要に長くなることを防止でき、個々の素性値の影響が小さい演算式が生成されることも抑制されるため、同義語の特定に有効な演算式を生成できる。
【００７５】
［５．その他］
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【００７６】
例えば、上記の実施形態では、最も上位にランキングされた同義語の候補をサジェスチョンクエリとして送信する場合について説明したが、本発明はこれに限定されない。例えば、上位の所定位以内にランキングされた同義語をクエリと共にＯＲ検索を行うものとしてもよい。
【００７７】
また、上述した同義語推定装置１０は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をＡＰＩ（Application  Programming  Interface）やネットワークコンピューティングなどで呼び出して実現するなど、構成は柔軟に変更できる。
【００７８】
例えば、上記の実施形態では、同義語推定装置１０において、入力されたクエリの同義語の候補の検索および同義語の候補についての素性値の導出を行うものとしているが、これに限定されるものではない。同義語の候補の検索や同義語の候補についての素性値の導出をＷｅｂサーバなどの別なサーバ装置で行い、同義語推定装置１０は、当該別なサーバ装置から素性データ３１を受信し、最も上位にランキングされた同義語を当該別なサーバ装置へ返信するものとしてもよい。
【００７９】
また、特許請求の範囲に記載した「手段」は、「部（section、module、unit）」や「回路」などに読み替えることができる。例えば、検索手段は、検索部や検索回路に読み替えることができる。
【符号の説明】
【００８０】
１０  同義語推定装置
２１  記憶部
２２  制御部
３０  学習用データ
３１  素性データ
３２  関数データ
４０  受付部
４１  生成部
４２  学習部
４３  検索部
４４  導出部
４５  特定部
４６  送信部
【図１】
0005507620.tif 000010
【図２】
0005507620.tif 000011
【図３】
0005507620.tif 000012
【図４】
0005507620.tif 000013
【図５】
0005507620.tif 000014
【図６】
0005507620.tif 000015
【図７】
0005507620.tif 000016
【図８】
0005507620.tif 000017
【図９】
0005507620.tif 000018
【図１０】
0005507620.tif 000019
【図１１】
0005507620.tif 000020