(57)【要約】【課題】モデルの完成度の低下を抑制すること。【解決手段】学習装置１０は、クエリおよびクエリに適合する正解のラベルが付与された適合文書を取得し、クエリをＮ次元のベクトルへ変換する第１のモデルを参照することにより得られるクエリのＮ次元のベクトルと、文書をＮ次元のベクトルへ変換する第２のモデルを参照することにより得られる適合文書のＮ次元のベクトルとから、適合文書のスコアを算出し、クエリに適合しない不正解のラベルが付与された非適合文書の候補を取得し、候補ごとに、第２のモデルを参照することにより得られる候補のＮ次元のベクトルと、クエリのＮ次元のベクトルとから、候補のスコアを算出し、候補のスコアが最大である候補を非適合文書として選択し、適合文書のスコアと、非適合文書のスコアとに基づいて、第１のモデル及び第２のモデルを更新するか否かを制御する。【選択図】図１
2018173909.tif 000002
【特許請求の範囲】
【請求項１】
クエリおよび前記クエリに適合する正解のラベルが付与された適合文書を取得し、
クエリをＮ次元のベクトルへ変換する第１のモデルを参照することにより得られる前記クエリの前記Ｎ次元のベクトルと、文書を前記Ｎ次元のベクトルへ変換する第２のモデルを参照することにより得られる前記適合文書の前記Ｎ次元のベクトルとから、前記クエリに対する前記適合文書のスコアを算出し、
前記クエリに適合しない不正解のラベルが付与された非適合文書の候補を取得し、
前記候補ごとに、前記第２のモデルを参照することにより得られる前記候補の前記Ｎ次元のベクトルと、前記クエリの前記Ｎ次元のベクトルとから、前記クエリに対する前記候補のスコアを算出し、
前記クエリに対する前記候補のスコアが最大である候補を前記非適合文書として選択し、
前記クエリに対する前記適合文書のスコアと、前記クエリに対する前記非適合文書のスコアとに基づいて、前記第１のモデル及び前記第２のモデルを更新するか否かを制御する、
処理をコンピュータに実行させることを特徴とする学習プログラム。
【請求項２】
前記非適合文書の候補を取得する処理は、前記クエリに含まれる単語と、所定の文書集合に含まれる単語とのキーワードの一致度に基づくランキングを行うことにより得られたランキング結果から上位所定数の文書を前記非適合文書の候補として取得することを特徴とする請求項１に記載の学習プログラム。
【請求項３】
前記制御する処理は、前記クエリに対する前記適合文書のスコアが前記クエリに対する前記非適合文書のスコアよりも小さい場合、前記第１のモデル及び前記第２のモデルを更新することを特徴とする請求項１または２に記載の学習プログラム。
【請求項４】
クエリおよび前記クエリに適合する正解のラベルが付与された適合文書を取得し、
クエリをＮ次元のベクトルへ変換する第１のモデルを参照することにより得られる前記クエリの前記Ｎ次元のベクトルと、文書を前記Ｎ次元のベクトルへ変換する第２のモデルを参照することにより得られる前記適合文書の前記Ｎ次元のベクトルとから、前記クエリに対する前記適合文書のスコアを算出し、
前記クエリに適合しない不正解のラベルが付与された非適合文書の候補を取得し、
前記候補ごとに、前記第２のモデルを参照することにより得られる前記候補の前記Ｎ次元のベクトルと、前記クエリの前記Ｎ次元のベクトルとから、前記クエリに対する前記候補のスコアを算出し、
前記クエリに対する前記候補のスコアが最大である候補を前記非適合文書として選択し、
前記クエリに対する前記適合文書のスコアと、前記クエリに対する前記非適合文書のスコアとに基づいて、前記第１のモデル及び前記第２のモデルを更新するか否かを制御する、
処理をコンピュータが実行することを特徴とする学習方法。
【請求項５】
クエリおよび前記クエリに適合する正解のラベルが付与された適合文書を取得する第１の取得部と、
クエリをＮ次元のベクトルへ変換する第１のモデルを参照することにより得られる前記クエリの前記Ｎ次元のベクトルと、文書を前記Ｎ次元のベクトルへ変換する第２のモデルを参照することにより得られる前記適合文書の前記Ｎ次元のベクトルとから、前記クエリに対する前記適合文書のスコアを算出する第１の算出部と、
前記クエリに適合しない不正解のラベルが付与された非適合文書の候補を取得する第２の取得部と、
前記候補ごとに、前記第２のモデルを参照することにより得られる前記候補の前記Ｎ次元のベクトルと、前記クエリの前記Ｎ次元のベクトルとから、前記クエリに対する前記候補のスコアを算出する第２の算出部と、
前記クエリに対する前記候補のスコアが最大である候補を前記非適合文書として選択する選択部と、
前記クエリに対する前記適合文書のスコアと、前記クエリに対する前記非適合文書のスコアとに基づいて、前記第１のモデル及び前記第２のモデルを更新するか否かを制御する更新部と、
を有することを特徴とする学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習プログラム、学習方法および学習装置に関する。
【背景技術】
【０００２】
ＷｅｂやＦＡＱ（Frequently  Asked  Questions）などの文書検索には、一例として、入力されるクエリと検索対象の文書集合との間でスコアが高い順に文書集合を並べ替えるランキングと呼ばれる技術が活用されている。
【０００３】
このランキングの精度向上には、一側面として、入力されるクエリとそのクエリに適合する文書のキーワードが必ずしも一致しないという状況が障害となっている。例えば、クエリが、パソコンの処理が遅いことを意味した「パソコンが重い」である場合、クエリに含まれる単語は「パソコン」および「重い」となるが、必ずしもクエリに適合する文書のキーワードの中に単語「パソコン」および単語「重い」が含まれるとは限らない。例えば、クエリに適合する文書には、キーワードとして「ラップトップがフリーズした場合」が含まれており、クエリに含まれる単語とは一致しない単語「ラップトップフリーズ」が含まれる場合がある。
【０００４】
このことから、ランキングの精度を向上させるための技術の一例として、ＳＳＩ（Supervised  Semantic  Indexing）が提案されている。このＳＳＩは、クエリおよび文書を同じ次元の密なベクトルへ変換し、ベクトル間の内積を計算する。この内積をクエリに対する文書のスコアとして、スコアが高い順に文書をランキングすることができる。ＳＳＩは、教師あり学習の枠組みで、クエリや文書をベクトルへ変換するモデルのパラメータを学習する。学習には、クエリに対する適合文書およびランダムに選んだ非適合文書が用いられる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Bai,B.  ,  Weston,J.  ,  Grangier,D.  ,  Collobert,R.  ,  Sadamasa,K.  ,  Qi,Y.  ,  Chapelle,O.  ,  Weinberger,K.著  「Supervised  Semantic  Indexing.」  In:  Proceedings  of  the  18th  CIKM.  pp.  187−196.CIKM  ’09  (2009)
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の技術では、モデルの完成度に自ずから限界がある。
【０００７】
すなわち、ＳＳＩでは、非適合文書がランダムに選ばれるので、クエリとのスコアが低い文書ばかりが非適合文書として選ばれる結果、学習サンプルとして簡単な文書が非適合文書として選ばれる可能性がある。このように簡単な文書が非適合文書として選ばれた場合、モデルの更新頻度が減少する結果、モデルの完成度が低下してしまう場合もある。
【０００８】
１つの側面では、本発明は、モデルの完成度の低下を抑制できる学習プログラム、学習方法および学習装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一態様では、学習プログラムは、クエリおよび前記クエリに適合する正解のラベルが付与された適合文書を取得し、クエリをＮ次元のベクトルへ変換する第１のモデルを参照することにより得られる前記クエリの前記Ｎ次元のベクトルと、文書を前記Ｎ次元のベクトルへ変換する第２のモデルを参照することにより得られる前記適合文書の前記Ｎ次元のベクトルとから、前記クエリに対する前記適合文書のスコアを算出し、前記クエリに適合しない不正解のラベルが付与された非適合文書の候補を取得し、前記候補ごとに、前記第２のモデルを参照することにより得られる前記候補の前記Ｎ次元のベクトルと、前記クエリの前記Ｎ次元のベクトルとから、前記クエリに対する前記候補のスコアを算出し、前記クエリに対する前記候補のスコアが最大である候補を前記非適合文書として選択し、前記クエリに対する前記適合文書のスコアと、前記クエリに対する前記非適合文書のスコアとに基づいて、前記第１のモデル及び前記第２のモデルを更新するか否かを制御する、処理をコンピュータに実行させる。
【発明の効果】
【００１０】
モデルの完成度の低下を抑制できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係る学習装置の機能的構成を示すブロック図である。
【図２】図２は、クエリのベクトル変換の一例を示す図である。
【図３】図３は、文書のベクトル変換の一例を示す図である。
【図４】図４は、スコアの算出例の一例を示す図である。
【図５】図５は、ランキングの一例を示す図である。
【図６】図６は、検索方法の一例を示す図である。
【図７】図７は、非適合文書ｄ−の候補の一例を示す図である。
【図８】図８は、非適合文書の選択方法の一例を示す図である。
【図９】図９は、スコアの比較結果の一例を示す図である。
【図１０】図１０は、スコアの比較結果の一例を示す図である。
【図１１】図１１は、実施例１に係る学習処理の手順を示すフローチャートである。
【図１２】図１２は、実施例１及び実施例２に係る学習プログラムを実行するコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して本願に係る学習プログラム、学習方法および学習装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
図１は、実施例１に係る学習装置の機能的構成を示すブロック図である。図１に示す学習装置１０は、ＳＳＩのスコア計算においてクエリおよび文書をベクトルへ変換するモデルのパラメータを学習する学習処理を実現するものである。
【００１４】
［ＳＳＩのスコア計算］
ＳＳＩでは、クエリおよび文書が同じ次元のベクトルへ変換される。以下では、クエリのベクトル変換に用いるモデルのことを「第１のモデル」と記載し、文書のベクトル変換に用いるモデルのことを「第２のモデル」と記載する場合がある。
【００１５】
図２は、クエリのベクトル変換の一例を示す図である。図２に示すように、第１のモデル１２Ａは、クエリの単語に対するＮ（＝３）次元のベクトルであり、ベクトルの各要素には、実数値のパラメータが保持される。第１のモデル１２Ａの行数は、学習に用いられたクエリに出現する単語数により定まる。また、第１のモデル１２Ａの列数には、モデルの設計者等により任意の次元数が設定される。例えば、Ｎに大きな値を設定するほど計算量および計算に使用するメモリ容量が大きくなる一方で精度は向上する。
【００１６】
図２には、一例として、入力されるクエリが「パソコン／が／重い」である場合のベクトル変換が示されている。この場合、クエリに含まれる単語ごとに当該単語に対応するベクトルが抽出される。すなわち、単語「パソコン」に対応する３次元の行ベクトル、単語「が」に対応する３次元の行ベクトルおよび単語「重い」に対応する３次元の行ベクトルが第１のモデル１２Ａから抽出される。これら３つの行ベクトルの要素和をとることにより、クエリのベクトルを得ることができる。すなわち、単語「パソコン」に対応するベクトル、単語「が」に対応するベクトルおよび単語「重い」に対応するベクトルの１列目のパラメータの和、２列目のパラメータの和および３列目のパラメータの和がクエリのベクトルとなる。
【００１７】
図３は、文書のベクトル変換の一例を示す図である。図３に示すように、第２のモデル１２Ｂは、文書の単語に対するＮ（＝３）次元のベクトルであり、ベクトルの各要素には、実数値のパラメータが保持される。第２のモデル１２Ｂの行数は、学習に用いられた文書に出現する単語数により定まる。また、第２のモデル１２Ｂの列数には、モデルの設計者等により任意の次元数が設定される。例えば、Ｎに大きな値を設定するほど計算量および計算に使用するメモリ容量が大きくなる一方で精度は向上する。なお、第１のモデル１２Ａ及び第２のモデル１２Ｂの間で行ベクトルの次元数Ｎは共通する。
【００１８】
図３には、一例として、文書が「ＰＣ／が／フリーズ／し／た／場合」である場合のベクトル変換が示されている。この場合、文書に含まれる単語ごとに当該単語に対応するベクトルが抽出される。すなわち、単語「ＰＣ」に対応する３次元の行ベクトル、単語「が」に対応する３次元の行ベクトル、単語「フリーズ」に対応する３次元の行ベクトル、単語「し」に対応する３次元の行ベクトル、単語「た」に対応する３次元の行ベクトルおよび単語「場合」に対応する３次元の行ベクトルが第２のモデル１２Ｂから抽出される。これら６つの行ベクトルの要素和をとることにより、文書のベクトルを得ることができる。すなわち、単語「ＰＣ」、単語「が」、単語「フリーズ」、単語「し」、単語「た」および単語「場合」に対応するベクトルの１列目のパラメータの和、２列目のパラメータの和および３列目のパラメータの和が文書のベクトルとなる。
【００１９】
これらクエリｑのベクトル及び文書ｄのベクトルが得られた場合、クエリｑに対する文書ｄのスコアｆ（ｑ，ｄ）は、一例として、クエリｑのベクトルおよび文書ｄのベクトルの内積により求めることができる。図４は、スコアの算出例の一例を示す図である。図４には、クエリｑの行ベクトルの要素が１列目から順に「０．３」、「０．６」、「０．２」であり、また、文書ｄの行ベクトルの要素が１列目から順に「０．２」、「０．５」、「０．１」である場合が示されている。この場合、スコアｆ（ｑ，ｄ）は、［０．３，０．６，０．２］×［０．２，０．５，０．１］＝「０．３×０．２＋０．６×０．５＋０．２×０．１」の計算により「０．０５３」と算出できる。
【００２０】
このように算出されるスコアが高い順に文書を並べることにより、文書のランキングを実施できる。図５は、ランキングの一例を示す図である。図５の左側には、クエリ「パソコンが重い」に対する文書「ＰＣがフリーズした」のスコア、クエリ「パソコンが重い」に対する文書「パソコンから音がでない」のスコア及びクエリ「パソコンが重い」に対する文書「ウィルススキャンの手順」のスコアが例示されている。この場合、スコアの大小関係は「１１＞−１０＞−１１０」となるので、図５の右側に示す通り、文書「ＰＣがフリーズした」、文書「パソコンから音がでない」、文書「ウィルススキャンの手順」の順に文書が並べられる。
【００２１】
［ＳＳＩにおける学習］
以上のようなスコア計算の下、学習時には、クエリ、適合文書および非適合文書を含む学習サンプルごとに、第１のモデル１２Ａおよび第２のモデル１２Ｂのパラメータが学習される。ここで言う「適合文書」とは、クエリに適合する正解のラベルが付与された文書を指す一方で、「非適合文書」とは、クエリに適合しない不正解のラベルが付与された文書を指す。
【００２２】
すなわち、第１のモデル１２Ａを参照して、学習サンプルのクエリに含まれる単語ごとに当該単語に対応するベクトルを抽出した上で各単語のベクトルの要素和をとることにより、クエリのベクトルが導出される。一方、第２のモデル１２Ｂを参照して、学習サンプルの適合文書に含まれる単語ごとに当該単語に対応するベクトルを抽出した上で各単語のベクトルの要素和をとることにより、適合文書のベクトルが導出される。また、第２のモデル１２Ｂを参照して、学習サンプルの非適合文書に含まれる単語ごとに当該単語に対応するベクトルを抽出した上で各単語のベクトルの要素和をとることにより、非適合文書のベクトルが導出される。
【００２３】
これらクエリのベクトル、適合文書のベクトル及び非適合文書のベクトルを用いて、クエリに対する適合文書のスコアと、クエリに対する非適合文書のスコアとが算出される。そして、クエリに対する非適合文書のスコアがクエリに対する適合文書のスコアよりも大きいことを条件に、第１のモデル１２Ａおよび第２のモデル１２Ｂのパラメータが更新される。
【００２４】
ここで、背景技術の項で説明した通り、既存のＳＳＩでは、適合文書でなければどのような文書であってもよいという基準の下、文書の集合から非適合文書がランダムに選ばれる。このため、クエリに対するスコアが低い文書ばかりが非適合文書として選ばれる結果、学習サンプルとして簡単な文書が非適合文書として選ばれる可能性がある。このように簡単な文書が非適合文書として選ばれた場合、モデルの更新頻度が減少する結果、モデルの完成度が低下してしまう場合もある。
【００２５】
そこで、本実施例に係る学習装置１０は、学習サンプルにおける非適合文書を必ずしも１つの文書に固定しない。例えば、本実施例に係る学習装置１０は、所定数Ｌの文書を非適合文書の候補とし、候補ごとにクエリに対する候補のスコアを算出した上で最大のスコアを持つ候補を非適合文書として選択する。その上で、本実施例に係る学習装置１０は、非適合文書のスコアが適合文書のスコアよりも大きいか否かにより、第１のモデル１２Ａ及び第２のモデル１２Ｂのパラメータを更新するか否かを制御する。これによって、クエリに対する非適合文書として簡単な文書が選択されることによりモデルの更新頻度が減少するのを抑制し、もってモデルの完成度の低下を抑制する。
【００２６】
［学習装置１０の機能的構成］
図１に示す学習装置１０は、上記の学習処理を実現するコンピュータである。
【００２７】
一実施形態として、学習装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の学習処理を実行する学習プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の学習プログラムをコンピュータに実行させることにより、コンピュータを学習装置１０として機能させることができる。ここで言うコンピュータには、デスクトップ型またはノート型のパーソナルコンピュータの他、スマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）などの移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistants）などのスレート端末などがその範疇に含まれる。また、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の学習処理に関するサービスを提供するサーバ装置として実装することもできる。例えば、学習装置１０は、複数の学習サンプルを含む学習データ、または、学習データをネットワークもしくは記憶メディアを介して呼び出すことができる識別情報を入力とし、当該学習データに対する上記の学習処理の実行結果、すなわちモデルの学習結果を出力する学習サービスを提供するサーバ装置として実装される。この場合、学習装置１０は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の学習処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【００２８】
図１に示すように、学習装置１０は、学習データ記憶部１１と、モデル記憶部１２と、第１の取得部１３と、第１の算出部１４と、第２の取得部１５と、第２の算出部１６と、選択部１７と、更新部１８とを有する。なお、学習装置１０は、図１に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
【００２９】
学習データ記憶部１１は、学習データを記憶する記憶部である。ここで、学習データには、一例として、ｍ個の学習サンプル、いわゆる学習事例が含まれる。さらに、学習サンプルには、クエリｑと、クエリｑに適合する正解のラベルが付与された適合文書ｄ＋とが含まれる。
【００３０】
モデル記憶部１２は、モデルを記憶する記憶部である。
【００３１】
一実施形態として、モデル記憶部１２には、クエリのベクトル変換に用いる第１のモデル１２Ａおよび文書のベクトル変換に用いる第２のモデル１２Ｂが記憶される。このうち、第１のモデル１２Ａは、クエリの単語に対するＮ次元のベクトルであり、ベクトルの各要素には、実数値のパラメータが保持される。第１のモデル１２Ａの行ベクトルは、学習データに含まれるクエリに出現する単語ごとに生成される。また、第２のモデル１２Ｂは、文書の単語に対するＮ次元のベクトルであり、ベクトルの各要素には、実数値のパラメータが保持される。第２のモデル１２Ｂの行ベクトルは、学習データに含まれる適合文書および非適合文書に出現する単語ごとに生成される。また、第１のモデル１２Ａおよび第２のモデル１２Ｂの行ベクトルには、モデルの設計者等により同一の次元数が設定される。例えば、Ｎに大きな値を設定するほど計算量および計算に使用するメモリ容量が大きくなる一方で精度は向上する。
【００３２】
第１の取得部１３は、学習サンプルを取得する処理部である。
【００３３】
一実施形態として、第１の取得部１３は、学習サンプルをカウントするループカウンタｉの値を初期化する。そして、第１の取得部１３は、学習データ記憶部１１に記憶されたｍ個の学習サンプルのうちループカウンタｉに対応する学習サンプルを取得する。その後、第１の取得部１３は、ループカウンタｉをインクリメントし、ループカウンタｉの値が学習サンプルの総数ｍと等しくなるまで、学習データ記憶部１１から学習サンプルを取得する処理を繰り返し実行する。
【００３４】
第１の算出部１４は、クエリに対する適合文書のスコアを算出する処理部である。
【００３５】
一実施形態として、第１の算出部１４は、第１の取得部１３により学習サンプルが取得されたｉ番目のクエリｑに対する適合文書ｄ＋のスコアｆ（ｑ，ｄ＋）を算出する。例えば、第１の算出部１４は、モデル記憶部１２に記憶された第１のモデル１２Ａを参照して、学習サンプルのクエリに含まれる単語ごとに当該単語に対応するベクトルを抽出した上で各単語のベクトルの要素和をとることにより、クエリｑのベクトルを導出する。さらに、第１の算出部１４は、モデル記憶部１２に記憶された第２のモデル１２Ｂを参照して、学習サンプルの適合文書ｄ＋に含まれる単語ごとに当該単語に対応するベクトルを抽出した上で各単語のベクトルの要素和をとることにより、適合文書ｄ＋のベクトルを導出する。その上で、第１の算出部１４は、クエリｑのベクトルと、適合文書ｄ＋のベクトルとの内積をとることにより、ｉ番目のクエリｑに対する適合文書ｄ＋のスコアｆ（ｑ，ｄ＋）を算出する。
【００３６】
第２の取得部１５は、クエリに対応する複数の非適合文書の候補を取得する処理部である。
【００３７】
一実施形態として、第２の取得部１５は、第１の取得部１３により学習サンプルが取得されたｉ番目のクエリｑに含まれる単語を入力とし、キーワードの一致度に基づくランキングを行うことにより、ランキング結果から上位所定数Ｌの文書を非適合文書の候補ｃ１〜ｃＬとして取得することができる。
【００３８】
例えば、所定の文書集合から作成された検索用の索引データである転置インデックスを用いることにより、第２の取得部１５は、ｉ番目のクエリｑに含まれる単語が出現する文書集合の検索を高速化することができる。図６は、検索方法の一例を示す図である。図６には、クエリｑ「パソコン／が／重い」に対応する転置インデックスが抜粋して示されているが、実際には、第２の取得部１５が検索対象とする文書集合の転置インデックスが生成される。図６に示すように、転置インデックスは、索引とする見出し語ごとに文書内のテキストに見出し語を含む文書ＩＤ（IDentifier）が対応付けられたデータである。このような転置インデックスを用いる場合、第２の取得部１５は、検索対象とする文書集合の中から、ｉ番目のクエリｑに含まれる単語「パソコン」または単語「重い」が出現する文書ＩＤ「１」、「３」、「５」及び「６」の文書を検索できる。
【００３９】
このようにｉ番目のクエリｑに含まれる単語が出現する文書が検索された後、第２の取得部１５は、検索結果として得られた文書集合を任意の手法でランキングする。一例として、第２の取得部１５は、クエリに含まれる単語の集合のｔｆｉｄｆ値が高い順に上記の検索結果として得られた文書集合を並び替えることによりランキングを行う。例えば、クエリに含まれる単語の集合をｑ、文書に含まれる単語の集合をｄとするとき、ｔｆｉｄｆ（ｑ，ｄ）は、下記の式（１）にしたがって算出することができる。下記の式（１）における単語の出現頻度「ｔｆ（ｄ，ｗｉ）」は、下記の式（２）にしたがって算出することができる。また、下記の式（１）における逆文書頻度「ｉｄｆ（ｗｉ，Ｄ）」は、下記の式（３）にしたがって算出することができる。ただし、下記の式（２）における「ｃｎｔ（ｄ，ｗ）」は、集合ｄ中のｗの出現回数を表し、また、下記の式（３）における「ｄｆ（ｗ）」は、検索対象とする文書の集合Ｄの中でｗが出現する文書数を表す。
【００４０】
【数１】
2018173909.tif 000003
【数２】
2018173909.tif 000004
【数３】
2018173909.tif 000005
【００４１】
上記の式（１）により算出されるｔｆｉｄｆ（ｑ，ｄ）は、文書中で高頻度に出現し、かつ他の文書に出現する頻度が稀であるほど高い値となる。それ故、「ある」、「いる」のようにどの文書にも出現する単語には低いｔｆｉｄｆ値が算出されるので、文書中のキーワードと一致していてもランキングへの寄与は低い。
【００４２】
その後、第２の取得部１５は、上記の検索結果として得られた文書集合をｔｆｉｄｆ値が高い順に並び替えることにより得られたランキング結果のうち上位所定数Ｌの文書を非適合文書ｄ−の候補として取得する。このように取得される上位所定数Ｌの文書には、適合文書ｄ＋と同一の文書は除外される。
【００４３】
図７は、非適合文書ｄ−の候補の一例を示す図である。図７に示すように、クエリｑに含まれる単語が出現する文書集合を検索し、検索結果として得られた文書集合がランキングされたランキング結果のうち上位Ｌ件のランキング結果が非適合文書ｄ−の候補として取得される。そして、クエリｑ、適合文書ｄ＋および上位Ｌ件のランキング結果が１つの学習サンプルとして第１のモデル及び第２のモデルのパラメータの学習に用いられる。図示の通り、クエリ「パソコンが重い」にも当該クエリに含まれる単語が出現する文書集合がランキングされたランキング結果のうち上位Ｌ件のランキング結果が非適合文書ｄ−の候補として取得されると共に、クエリ「ウィルスに感染した」にも当該クエリに含まれる単語が出現する文書集合がランキングされたランキング結果のうち上位Ｌ件のランキング結果が非適合文書ｄ−の候補として取得される。このように取得された非適合文書ｄ−の候補は、学習データ記憶部１１に記憶された学習サンプルのうち当該クエリｑに対応付けて登録することができる。これによって、２回目以降の学習時に第１の取得部１３がクエリｑ、適合文書ｄ＋および非適合文書ｄ−の候補を学習サンプルとして取得することにより、２回目以降の学習時に第２の取得部１５の処理を省略することもできる。
【００４４】
第２の算出部１６は、非適合文書の候補ごとにクエリに対する候補のスコアを算出する処理部である。
【００４５】
一実施形態として、第２の算出部１６は、第２の取得部１５により取得された非適合文書ｄ−の候補ｃ１〜ｃＬごとに、第１の取得部１３により学習サンプルが取得されたｉ番目のクエリｑに対するｊ番目の候補ｃｊのスコアｆ（ｑｉ，ｃｊ）を算出する。例えば、第２の算出部１６は、モデル記憶部１２に記憶された第１のモデル１２Ａを参照して、学習サンプルのクエリに含まれる単語ごとに当該単語に対応するベクトルを抽出した上で各単語のベクトルの要素和をとることにより、クエリｑのベクトルを導出する。さらに、第２の算出部１６は、モデル記憶部１２に記憶された第２のモデル１２Ｂを参照して、上位Ｌ件のランキング結果ｃ１〜ｃＬのうちｊ番目の非適合文書ｄ−の候補ｃｊに含まれる単語ごとに当該単語に対応するベクトルを抽出した上で各単語のベクトルの要素和をとることにより、ｊ番目の非適合文書ｄ−の候補ｃｊのベクトルを導出する。その上で、第２の算出部１６は、クエリｑのベクトルと、ｊ番目の非適合文書ｄ−の候補ｃｊのベクトルとの内積をとることにより、ｉ番目のクエリｑに対するｊ番目の非適合文書ｄ−の候補ｃｊのスコアｆ（ｑｉ，ｃｊ）を算出する。この候補をカウントする変数ｊを１〜Ｌまで更新することにより、第２算出部１６は、クエリｑに対する候補ｃ１〜ｃＬのスコアｆ（ｑｉ，ｃ１）〜ｆ（ｑｉ，ｃＬ）を算出する。
【００４６】
選択部１７は、非適合文書の候補の中から非適合文書を選択する処理部である。
【００４７】
一実施形態として、選択部１７は、第２の算出部１６により非適合文書の候補ごとに算出されたスコアｆ（ｑｉ，ｃ１）〜ｆ（ｑｉ，ｃＬ）のうち最大値を持つ非適合文書の候補を非適合文書ｄ−として選択する。図８は、非適合文書の選択方法の一例を示す図である。図８に示すように、選択部１７は、第２の取得部１５により取得されたＬ件の非適合文書の候補のうち第２の算出部１６により最大値のスコアが算出された非適合文書の候補を非適合文書ｄ−として選択する。図示の例では、Ｌ件の非適合文書の候補の中から、文書「パソコンから音がでない」が非適合文書ｄ−として選択されている。
【００４８】
更新部１８は、モデルの更新を行う処理部である。
【００４９】
一実施形態として、更新部１８は、第１の算出部１４により算出されたｉ番目のクエリｑに対する適合文書ｄ＋のスコアｆ（ｑ，ｄ＋）と、選択部１７により選択されたｉ番目のクエリｑに対する非適合文書ｄ−のスコアｆ（ｑ，ｄ−）とを比較することにより、モデル記憶部１２に記憶された第１のモデル１２Ａ及び第２のモデル１２Ｂを更新するか否かを制御する。
【００５０】
図９は、スコアの比較結果の一例を示す図である。図９には、クエリｑが「パソコンが重い」であり、適合文書ｄ＋が「ＰＣがフリーズした」であり、非適合文書ｄ−が「パソコンから音がでない」である場合の例が示されている。図９に示すように、クエリｑに対する適合文書ｄ＋のスコアｆ（ｑ，ｄ＋）がｉ番目のクエリｑに対する非適合文書ｄ−のスコアｆ（ｑ，ｄ−）よりも小さい場合、更新部１８は、モデル記憶部１２に記憶された第１のモデル１２ＡのパラメータＵ及び第２のモデル１２ＢのパラメータＶを更新する。例えば、更新部１８は、下記の式（４）を用いて第１のモデル１２ＡのパラメータＵを更新すると共に、下記の式（５）を用いて第２のモデル１２ＢのパラメータＶを更新する。下記の式（４）及び下記の式（５）における「λ」は、学習率を指す。すなわち、下記の式（４）にしたがって、第１のモデル１２ＡのパラメータＵのうち適合文書の単語に対応するクエリの単語のパラメータに値が足し込まれると共に非適合文書の単語に対応するクエリの単語のパラメータから値が差し引かれる。同様に、下記の式（５）にしたがって、第２のモデル１２ＢのパラメータＶのうちクエリの単語に対応する適合文書の単語のパラメータに値が足し込まれると共にクエリの単語に対応する非適合文書の単語のパラメータから値が差し引かれる。
【００５１】
【数４】
2018173909.tif 000006
【数５】
2018173909.tif 000007
【００５２】
図１０は、スコアの比較結果の一例を示す図である。図１０にも、クエリｑが「パソコンが重い」であり、適合文書ｄ＋が「ＰＣがフリーズした」であり、非適合文書ｄ−が「パソコンから音がでない」である場合の例が示されている。図１０に示すように、クエリｑに対する適合文書ｄ＋のスコアｆ（ｑ，ｄ＋）がｉ番目のクエリｑに対する非適合文書ｄ−のスコアｆ（ｑ，ｄ−）以上である場合、更新部１８は、モデル記憶部１２に記憶された第１のモデル１２ＡのパラメータＵ及び第２のモデル１２ＢのパラメータＶを更新しない。
【００５３】
このようなパラメータの学習結果として得られた第１のモデル及び第２のモデルは、検索対象とする文書集合をランキングする場合にも適用できるが、キーワードの一致度に基づくランキングにより上位Ｌ件に絞り込まれた文書集合をリランキングする場合により好適に適用できる。
【００５４】
［処理の流れ］
図１１は、実施例１に係る学習処理の手順を示すフローチャートである。この処理は、一例として、学習の開始指示が受け付けられた場合に実行される。図１１に示すように、更新部１８は、モデル記憶部１２に記憶された第１のモデル１２ＡのパラメータＵ及び第２のモデル１２ＢのパラメータＶに初期値を設定する（ステップＳ１０１）。例えば、平均「０」および標準偏差「１」の正規分布の範囲で乱数を発生させることにより、パラメータＵ及びパラメータＶの初期値を与える。
【００５５】
続いて、第１の取得部１３は、学習サンプルをカウントするループカウンタｉの値を「１」に初期化し、学習データ記憶部１１に記憶されたｍ個の学習サンプルのうちｉ番目の学習サンプルを取得する（ステップＳ１０２）。
【００５６】
そして、第１の算出部１４は、ｉ番目のクエリｑに含まれる単語ごとに第１のモデル１２Ａから抽出されたＮ次元のベクトルの要素和をとることにより導出されたｉ番目のクエリｑのＮ次元のベクトルと、適合文書ｄ＋に含まれる単語ごとに第２のモデル１２Ｂから抽出されたＮ次元のベクトルの要素和をとることにより導出された適合文書ｄ＋のＮ次元のベクトルとから、ｉ番目のクエリｑに対する適合文書ｄ＋のスコアｆ（ｑ，ｄ＋）を算出する（ステップＳ１０３）。
【００５７】
また、第２の取得部１５は、ステップＳ１０２で取得されたｉ番目のクエリｑに含まれる単語を入力とし、キーワードの一致度に基づくランキングを行う（ステップＳ１０４）。このステップＳ１０４の結果として得られたランキング結果から、第２の取得部１５は、上位所定数Ｌの文書を非適合文書ｄ−の候補ｃ１〜ｃＬとして取得する（ステップＳ１０５）。
【００５８】
続いて、第２の算出部１６は、第１のモデル１２Ａおよび第２のモデル１２Ｂにしたがってｉ番目のクエリｑに対する非適合文書ｄ−の候補ｃ１〜ｃＬのスコアｆ（ｑｉ，ｃ１）〜ｆ（ｑｉ，ｃＬ）を算出する（ステップＳ１０６）。
【００５９】
そして、選択部１７は、ステップＳ１０５で取得された上位Ｌ件の非適合文書の候補のうちステップＳ１０６で最大値のスコアが算出された非適合文書の候補を非適合文書ｄ−として選択する（ステップＳ１０７）。
【００６０】
その後、更新部１８は、ステップＳ１０３で算出されたｉ番目のクエリｑに対する適合文書ｄ＋のスコアｆ（ｑ，ｄ＋）がステップＳ１０７で選択されたｉ番目のクエリｑに対する非適合文書ｄ−のスコアｆ（ｑ，ｄ−）に所定値、例えば「１」を足した値よりも小さいか否か、すなわちｆ（ｑ，ｄ＋）＜ｆ（ｑ，ｄ−）＋１を満たすか否かを判定する（ステップＳ１０８）。
【００６１】
ここで、ｆ（ｑ，ｄ＋）＜ｆ（ｑ，ｄ−）＋１である場合（ステップＳ１０８Ｙｅｓ）、更新部１８は、モデル記憶部１２に記憶された第１のモデル１２ＡのパラメータＵ及び第２のモデル１２ＢのパラメータＶを更新する（ステップＳ１０９）。一方、ｆ（ｑ，ｄ＋）＜ｆ（ｑ，ｄ−）＋１でない場合（ステップＳ１０８Ｎｏ）、ステップＳ１０９の処理はスキップされる。
【００６２】
そして、全ての学習サンプルが取得されるまで、言い換えればループカウンタｉがｍと等しくない場合（ステップＳ１１０Ｎｏ）、ループカウンタｉを１つインクリメントし、上記のステップＳ１０２〜ステップＳ１０９までの処理を繰り返し実行する。その後、全ての学習サンプルが取得された場合、言い換えればループカウンタｉがｍと等しい場合（ステップＳ１１０Ｙｅｓ）、処理を終了する。
【００６３】
なお、図１１に示すフローチャートでは、ステップＳ１０３〜ステップＳ１０７までの処理をステップ番号順に実行する場合を例示したが、ステップＳ１０３の処理と、ステップＳ１０４からステップＳ１０７までの処理とは、並列して実行することもできるし、順不同で実行することもできる。
【００６４】
また、図１１に示すフローチャートでは、学習データに含まれる全ての学習サンプルが学習されると処理が終了される場合を例示したが、第１のモデル及び第２のモデルにより所定の精度が得られるまで、上記のステップＳ１０２〜ステップＳ１０９の処理をさらにループさせることもできる。
【００６５】
［効果の一側面］
上述してきたように、本実施例に係る学習装置１０は、所定数Ｌの非適合文書の候補ごとにクエリに対する候補のスコアを算出した上で最大のスコアを持つ候補を非適合文書として選択する。その上で、本実施例に係る学習装置１０は、非適合文書のスコアが適合文書のスコアよりも大きいか否かにより、第１のモデル１２Ａ及び第２のモデル１２Ｂのパラメータを更新するか否かを制御する。これによって、クエリに対する非適合文書として簡単な文書が選択されることによりモデルの更新頻度が減少するのを抑制できる。したがって、本実施例に係る学習装置１０によれば、モデルの完成度の低下を抑制する。
【００６６】
このようなパラメータの学習結果として得られた第１のモデル及び第２のモデルは、検索対象とする文書集合をランキングする場合の他、キーワードの一致度に基づくランキングにより上位Ｌ件に絞り込まれた文書集合をリランキングする場合に高精度なランキングを実現できる。
【実施例２】
【００６７】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００６８】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、第１の取得部１３、第１の算出部１４、第２の取得部１５、第２の算出部１６、選択部１７または更新部１８を学習装置１０の外部装置としてネットワーク経由で接続するようにしてもよい。また、第１の取得部１３、第１の算出部１４、第２の取得部１５、第２の算出部１６、選択部１７または更新部１８を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の学習装置１０の機能を実現するようにしてもよい。また、学習データ記憶部１１またはモデル記憶部１２に記憶される情報の全部または一部を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の学習装置１０の機能を実現するようにしてもかまわない。
【００６９】
［学習プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１２を用いて、上記の実施例と同様の機能を有する学習プログラムを実行するコンピュータの一例について説明する。
【００７０】
図１２は、実施例１及び実施例２に係る学習プログラムを実行するコンピュータのハードウェア構成例を示す図である。図１２に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【００７１】
ＨＤＤ１７０には、図１２に示すように、上記の実施例１で示した第１の取得部１３、第１の算出部１４、第２の取得部１５、第２の算出部１６、選択部１７及び更新部１８と同様の機能を発揮する学習プログラム１７０ａが記憶される。この学習プログラム１７０ａは、図１に示した第１の取得部１３、第１の算出部１４、第２の取得部１５、第２の算出部１６、選択部１７または更新部１８の各構成要素と同様、統合又は分離してもかまわない。すなわち、ＨＤＤ１７０には、必ずしも上記の実施例１で示した全てのデータが格納されずともよく、処理に用いるデータがＨＤＤ１７０に格納されればよい。
【００７２】
このような環境の下、ＣＰＵ１５０は、ＨＤＤ１７０から学習プログラム１７０ａを読み出した上でＲＡＭ１８０へ展開する。この結果、学習プログラム１７０ａは、図１２に示すように、学習プロセス１８０ａとして機能する。この学習プロセス１８０ａは、ＲＡＭ１８０が有する記憶領域のうち学習プロセス１８０ａに割り当てられた領域にＨＤＤ１７０から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、学習プロセス１８０ａが実行する処理の一例として、図１１に示す処理などが含まれる。なお、ＣＰＵ１５０では、必ずしも上記の実施例１で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【００７３】
なお、上記の学習プログラム１７０ａは、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶されておらずともかまわない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に学習プログラム１７０ａを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から学習プログラム１７０ａを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに学習プログラム１７０ａを記憶させておき、コンピュータ１００がこれらから学習プログラム１７０ａを取得して実行するようにしてもよい。
【符号の説明】
【００７４】
１０    学習装置
１１    学習データ記憶部
１２    モデル記憶部
１３    第１の取得部
１４    第１の算出部
１５    第２の取得部
１６    第２の算出部
１７    選択部
１８    更新部
【図１】
2018173909.tif 000008
【図２】
2018173909.tif 000009
【図３】
2018173909.tif 000010
【図４】
2018173909.tif 000011
【図５】
2018173909.tif 000012
【図６】
2018173909.tif 000013
【図７】
2018173909.tif 000014
【図８】
2018173909.tif 000015
【図９】
2018173909.tif 000016
【図１０】
2018173909.tif 000017
【図１１】
2018173909.tif 000018
【図１２】
2018173909.tif 000019