(57)【要約】【課題】本発明の目的は、情報検索における順位学習において、学習データを効果的に使うことで精度向上の効果を高め、また学習時間が短縮を可能とする技術を提供することである。【解決手段】検索クエリテキストにより検索対象文書を検索する検索手段と、前記検索対象文書と当該検索対象文書に対応付けられた学習用検索クエリテキストとを記憶する記憶手段とを備える情報処理装置であって、前記検索対象文書に対応付けられた学習用検索クエリテキストを用いて、前記検索対象文書に対する付加テキスト情報を作成する作成手段と、前記学習用検索クエリテキストと、前記検索対象文書に対する付加テキスト情報を含む文書データとの組を用いて順位学習を行う学習手段とを備えることを特徴とする。【選択図】図１
2020071678.tif 000002
【特許請求の範囲】
【請求項１】
検索クエリテキストにより検索対象文書を検索する検索手段と、前記検索対象文書と当該検索対象文書に対応付けられた学習用検索クエリテキストとを記憶する記憶手段とを備える情報処理装置であって、
前記検索対象文書に対応付けられた学習用検索クエリテキストを用いて、前記検索対象文書に対する付加テキスト情報を作成する作成手段と、
前記学習用検索クエリテキストと、前記検索対象文書に対する付加テキスト情報を含む文書データとの組を用いて順位学習を行う学習手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記学習手段は、前記学習用検索クエリテキストと、前記検索対象文書に対する付加テキスト情報のみから成る文書データとの組を用いて順位学習を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記学習手段は、前記学習用検索クエリテキストと、前記文書データとから算出される素性データを用いて順位学習を行うことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記素性データには、前記学習用検索クエリテキストにより、前記文書データに対応する前記検索対象文書が検索された場合の検索スコアを含むことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記付加テキスト情報は、前記学習用検索クエリテキストから抽出された特徴語を含むことを特徴とする請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記付加テキスト情報に含まれる特徴語の数が所定の値に従って制限されることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記学習手段は、前記検索対象文書それぞれに対応付けられた学習用検索クエリテキストの数が所定の値を超える場合に、前記文書データに前記検索対象文書に対する付加テキスト情報を含めることを特徴とする請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
検索クエリテキストにより検索対象文書を検索する検索手段と、前記検索対象文書と当該検索対象文書に対応付けられた学習用検索クエリテキストとを記憶する記憶手段とを備える情報処理装置の制御方法であって、
作成手段が、前記検索対象文書に対応付けられた学習用検索クエリテキストを用いて、前記検索対象文書に対する付加テキスト情報を作成する作成ステップと、
学習手段が、前記学習用検索クエリテキストと、前記検索対象文書に対する付加テキスト情報を含む文書データとの組を用いて順位学習を行う学習ステップと
を備える情報処理装置の制御方法。
【請求項９】
検索クエリテキストにより検索対象文書を検索する検索手段と、前記検索対象文書と当該検索対象文書に対応付けられた学習用検索クエリテキストとを記憶する記憶手段とを備える情報処理装置において実行可能なプログラムであって、
前記情報処理装置を、
前記検索対象文書に対応付けられた学習用検索クエリテキストを用いて、前記検索対象文書に対する付加テキスト情報を作成する作成手段と、
前記学習用検索クエリテキストと、前記検索対象文書に対する付加テキスト情報を含む文書データとの組を用いて順位学習を行う学習手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索対象となる文書群の中から指定された検索条件に適切と思われる文書を提示するための文書検索の技術に関する。
【背景技術】
【０００２】
従来からユーザに対して適切な検索結果を提示するため、検索条件と文書群に含まれる各文書に含まれるターム（形態素解析、Ｎ−Ｇｒａｍなど一定の基準で切り出した文字列）の関連性を統計値として算出する技術がある。これらの技術を類似検索などと呼ぶ（以下、当該技術を本発明の説明において、統一的に類似検索と呼ぶこととし、本願発明における後述の順位学習による検索とは区別することにする）。
【０００３】
また、学習データと検索対象となる文書群が類似する場合の特徴量を機械学習によりモデル化し、新たな検索条件が指定された場合に、当該学習モデルに基づきランキング調整をすることで、類似検索の精度を向上させる順位学習の技術がある。
【０００４】
順位学習には大量の学習データが必要であるが、学習データの収集は困難である。類似検索をシステムとして運用開始した後にユーザの検索ログから学習データを収集することも考えられるが、検索結果の評価にはユーザの負荷がかかることもあり、十分な量のログ収集が可能とは言い切れない。また運用開始前には、開発者がテスト用に作成した学習データなどに限定される。
【０００５】
特許文献１は、予め用意された回答（いわばＦＡＱの文書群）に対して、ユーザからの問い合わせに対して最も類似した質問（学習データの質問文）を見つけ、対応する回答を返す技術に対して、質問文が少ない場合でもトピック推定精度を高める技術を提供している。
【０００６】
具体的には、学習データの質問文に現れる単語に対して、対応する回答内の単語に置換することによって、学習データの質問文を拡張する、すなわち学習データの件数を増やしている。また拡充した質問文のうち不自然な質問文を除外するため、確率言語モデルを用いて質問文の存在確率を計算し、存在確率がある閾値を超える場合のみ学習データとして用いるとしている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１７−３７５８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１の技術においては、確率言語モデルを用いて拡充された質問文が適切であるか否かを判定しているが、置換された単語はあくまで予め用意された回答に含まれるものであり、専門用語やある組織特有の用語が使用されている可能性がある。その場合、確率言語モデルでは事例が不足していて、質問文が適切に拡充されない場合も発生する。
【０００９】
また質問文の拡充が適切に処理されたとしても、そのような専門用語、組織特有の用語を、実際のユーザが入力しない場合もある。さらに当該技術自体、質問文を増幅させることが目的であり、その結果、学習処理に要する時間が指数関数的に増加してしまう可能性もある。
本発明の目的は、情報検索における順位学習において、学習データを効果的に使うことで精度向上の効果を高め、また学習時間が短縮を可能とする技術を提供することである。
【課題を解決するための手段】
【００１０】
本発明は、検索クエリテキストにより検索対象文書を検索する検索手段と、前記検索対象文書と当該検索対象文書に対応付けられた学習用検索クエリテキストとを記憶する記憶手段とを備える情報処理装置であって、前記検索対象文書に対応付けられた学習用検索クエリテキストを用いて、前記検索対象文書に対する付加テキスト情報を作成する作成手段と、前記学習用検索クエリテキストと、前記検索対象文書に対する付加テキスト情報を含む文書データとの組を用いて順位学習を行う学習手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明により、本発明の目的は、情報検索における順位学習において、学習データを効果的に使うことで精度向上の効果を高め、また学習時間が短縮を可能とする技術を提供することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態に係る機能構成の一例を示す図である。
【図２】本発明の実施形態に係る情報処理装置１００に適用可能なハードウェア構成の一例を示すブロック図である。
【図３】本発明の実施形態に係わる類似検索対象となる文書の一例である。
【図４】本発明の実施形態に係わる学習データの一例である。
【図５】本発明の実施形態に係る生成された素性ベクトルの一例である。
【図６】本発明の実施形態に係わる学習データから抽出された特徴語の一例である。
【図７】本発明の実施形態に係る生成された素性ベクトルの一例である。
【図８】本発明の実施形態に係る学習データ件数の分布を示すグラフの一例である。
【図９】本発明の実施形態に係る学習時の処理を説明するフローチャートの一例である。
【図１０】本発明の実施形態に係る学習結果に基づく類似検索・再ランク付けの処理を説明するフローチャートの一例である。
【図１１】本発明の実施形態に係る設定項目の一例である。
【図１２】本発明の実施形態に係る学習言語情報の格納方法の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【００１４】
本発明においては機械学習により従来型の文書の検索結果を、機械学習を利用して検索順位を改めて指定し直す。これを順位学習などと呼ぶ。特に本発明では説明の便宜上、事前に学習モデルを決定する処理を“学習モデルの生成”、実際にユーザなどの検索条件に基づく検索結果を、生成された学習モデルを用いて順位を指定し直す処理を“再ランク付け”と呼ぶことにする。
【００１５】
図１は、本発明の実施形態に係る機能構成の一例を示す図である。本機能構成は、主に次の３つに分けて考えることができる。まず従来型の類似検索を用いるが、従来型の類似検索に関連する部分は１３１である。また学習データに基づき学習モデルを生成する部分は１０１〜１０４である。生成された学習モデルに基づき、類似検索および再ランク付けを行う部分は１１１〜１１４である。
【００１６】
学習データ前処理部１０１は、学習データ記憶部１２１に記憶された学習データ（検索条件や正解の選択などのユーザログ）から、実際に学習する学習データを選択、また学習データ群から言語的な特徴を抽出する機能部である。前記選択や抽出を行うための基準は設定記憶部１２２に格納されている。前処理した結果は、学習言語情報記憶部１２３に格納される。
【００１７】
学習データに記載されたクエリに対しての情報検索部１３１を呼び出し、文書群を格納した検索対象文書記憶部１２４を検索する。情報検索とは本願発明で説明する“順位学習”を用いて高精度化された検索エンジンではないものを想定しているが、他の順位学習、あるいは本願発明の順位学習自体、あるいは如何なる方式の情報検索であってもよい。とにかく検索対象文書記憶部１２４からユーザが所望する文書を適切に検索可能なものであればよい。
【００１８】
学習用素性ベクトル生成部１０２においては、前記学習データの１つに着目し、当該学習データにおけるクエリ（検索条件）の検索結果の各文書を比較して、文書毎に言語的特徴を“素性ベクトル”として表す。さらに学習用素性ベクトルマッピング部１０３により前記素性ベクトルを、対応する次元の座標空間にマッピングする。このマッピングに基づき、学習モデル生成部１０４が再ランク付け（順位学習）した結果を学習モデルとして表現し、学習モデル記憶部１２５に当該学習モデルを記憶する。
【００１９】
次に実際の運用においてはユーザ、あるいは他のアプリケーションが検索条件を入力し、事前に学習された結果の学習モデルを用いて適切な結果を呼び出し側に返す処理の構成を説明する。
【００２０】
ユーザ条件受付部１１１は、ユーザ（あるいは他のアプリケーション）の検索条件（クエリ）を受け付ける。その検索条件（クエリ）に基づき、情報検索部１３１が検索対象文書記憶部１２４を検索し、検索結果を返す。再ランク付け用素性ベクトル生成部１１２では、前記検索条件と前記の各検索結果を比較して、素性ベクトルを生成する。着目した１つのクエリと１つの文書から素性ベクトルを生成する処理は学習用素性ベクトル生成部１０２と同じ処理であるが、学習時にはクエリ自体が複数あることや学習理論によっては異なる可能性も考慮し、便宜上２つの機能部に区別している。実際には同一であれ異なるものであれ本願発明に含まれる。
【００２１】
再ランク付け用素性ベクトルマッピング部１１３は前記素性ベクトルを、学習モデル生成部１０４で生成され学習モデル記憶部１２５に格納された座標空間にマッピングする。このマッピングに基づき再ランク付け部１１４が、前述のユーザの検索条件に基づく検索結果に対する各文書の再ランク付け処理を行う。
【００２２】
図２は、本発明の実施形態に係る情報処理装置１００に適用可能なハードウェア構成の一例を示すブロック図である。
【００２３】
図２に示すように、情報処理装置１００は、システムバス２０４を介してＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０３、入力コントローラ２０５、ビデオコントローラ２０６、メモリコントローラ２０７、通信Ｉ／Ｆコントローラ２０８等が接続された構成を採る。
【００２４】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２５】
また、ＲＯＭ２０３あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や、各サーバあるいは各ＰＣが実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。また、本発明を実施するために必要な情報が記憶されている。なお外部メモリはデータベースであってもよい。
【００２６】
ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＯＭ２０３あるいは外部メモリ２１１からＲＡＭ２０２にロードし、ロードしたプログラムを実行することで各種動作を実現する。
【００２７】
また、入力コントローラ２０５は、キーボード（ＫＢ）２０９や不図示のマウス等のポインティングデバイス等からの入力を制御する。
【００２８】
ビデオコントローラ２０６は、ディスプレイ２１０等の表示器への表示を制御する。尚、表示器は液晶ディスプレイ等の表示器でもよい。これらは、必要に応じて管理者が使用する。
【００２９】
メモリコントローラ２０７は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する外部記憶装置（ハードディスク（ＨＤ））や、フレキシブルディスク（ＦＤ）、あるいは、ＰＣＭＣＩＡ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｓｓｏｃｉａｔｉｏｎ）カードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等の外部メモリ２１１へのアクセスを制御する。
【００３０】
通信Ｉ／Ｆコントローラ２０８は、ネットワークを介して外部機器と接続・通信し、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を用いた通信等が可能である。
【００３１】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０２内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ２１０上に表示することが可能である。また、ＣＰＵ２０１は、ディスプレイ２１０上のマウスカーソル（図示しない）等によるユーザ指示を可能とする。
【００３２】
本発明を実現するための後述する各種プログラムは、外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０２にロードされることによりＣＰＵ２０１によって実行されるものである。
【００３３】
図３は本発明の実施形態に係わる検索対象となる文書の一例である。例として、ソフトウェア製品のサポートに用いられるＦＡＱ（よくある質問）集を記載しているが、本願発明における選択対象の文書は論文、新聞記事、会社規定、ＳＮＳ上の投稿などテキストを含むものであれば何でもよく、ＦＡＱに限定するものではない。
【００３４】
３００ａ、３００ｂに記載の例では、１つのＦＡＱには、ＦＡＱを一意的に識別する“ＦＡＱＩＤ”、ＦＡＱ全体の内容を分類する“カテゴリ”、さらにサポート内容、例えば前記ソフトウェア製品のユーザの問合せに対してどのＦＡＱを参照したらよいかの目安となる“質問”、その応答を記載した“回答”などのフィールドから構成され、それぞれのフィールドに対応する内容の記載を含む。ここで、ＦＡＱＩＤは後述する学習データにおいて問合せ（クエリ）の文字列と特定のＦＡＱを対応づけるものであり、フィールドの名称として限定するものではない。その他のフィールドについては、名称や個数を限定するものではない。
【００３５】
図４は、本発明の実施形態に係わる学習データの一例である。図４の学習データの例には、図３のＦＡＱ３００ａに対応する学習データ（１０件分）４００ａと、ＦＡＱ３００ｂに対応する学習データ（１０件分）４００ｂを例示している。
【００３６】
各学習データはクエリ４０１（あるいは問合せ、検索条件などと呼ぶことがある）と、ＦＡＱ対応付け４０２がある。ＦＡＱ対応付け４０２にはＦＡＱＩＤが格納されており、前記学習データが図３に例示したＦＡＱの何れに対応しているかを識別するものである。
【００３７】
これらの学習データは、ユーザが実際に本願発明の類似検索エンジンを用いるときに、ユーザが入力した問合せ内容（クエリ）の意図に一致したＦＡＱを選択する、などして収集したログから得ることができる。また本願発明の機能の一部としてではなく、ユーザとサポートの担当者がやり取りしたメールなどから問合せ内容（クエリ）と対応するＦＡＱを特定して収集してもよい。
図５は、本発明の実施形態に係る生成された素性ベクトルの一例である。本発明における類似検索は、“学習時”および実際にユーザなどがＦＡＱを閲覧する“問合せ時”がある。何れの場合も素性ベクトルを生成する。
【００３８】
素性ベクトルは、学習データに含まれるクエリ４０１を検索条件として、情報検索部１３１で検索対象文書記憶部１２４を検索した結果の文書（本例ではＦＡＱ）のうちの１つに言語処理を施すことによって得られる数値の並び（これをベクトルと見なす）である。
【００３９】
１つのＦＡＱに含まれる３つのフィールド（類似度算出フィールド５０１ａ）の各々と、クエリ４０１を、類似度指標５０２に記載の３つの類似度算出手法で計算する。例えば、５０３が指し示す項目の値１．２は、クエリ４０１と質問フィールドにある文章をＢＭ２５という類似度算出手法で計算し、得られた値である。
【００４０】
５００ａには９つの数値を表形式で記載しているが、これを一列に並べたものを（本例では９次元の）素性ベクトルとするが、以下表形式の記載も素性ベクトルと同一視する。すなわち素性ベクトル５００ａと呼ぶ。
【００４１】
なお、本例で計算に用いたフィールドはあくまで例である。ＦＡＱＩＤは言語的意味がないので通常用いない場合が多いと推測されるが、他の３つのフィールドを全て用いなければならないわけではない。特に言語的特徴が強く表れるものを用いればよい。
【００４２】
更に類似度指標５０２に記載した３つの手法もあくまで例であり、他にも様々な計算手法がある。これらの詳細については、自然言語処理において周知の技術であるため割愛する。
【００４３】
図６は、本発明の実施形態に係わる学習データから抽出された特徴語の一例である。本発明の実施例においては、学習データ４００から“特徴語”を抽出する。特徴語の抽出は、例えばあるテキスト群において、テキストＡから抽出される単語と、テキスト群の中のテキストＡ以外のテキストから抽出される単語を統計的に比較し、テキストＡを特徴付ける（他の文書と区別する）と判断される単語を、テキストＡの特徴語として抽出するものである。特徴語抽出の方式には様々な種類があるが、これらの詳細においては自然言語処理技術において周知の技術であるため割愛する。
【００４４】
特徴語６００ａは、ＦＡＱＩＤ＝３１９８を正解とする学習データ全件（図４の学習データ４００ａ）から上位１０個の特徴語を抽出したものである。ここで上位１０個とは、前述の特徴語抽出の処理において、各単語に“重要度”が付与されるが、例えば図１１の設定記憶部１２２の“特徴語個数”に“１０”と記載があるため、重要度が高い上位１０個を選択したものである。あるいは、“特徴語重要度”に“０．５”とある記載により、重要度が０．５以上の単語を個数にかかわらず選択してもよい。
【００４５】
特徴語６００ｂは、同様にＦＡＱＩＤ＝００６４を正解とする学習データ全件（図４の学習データ４００ｂ）から上位１０個の特徴語を抽出した例を記載している。
【００４６】
図７は、本発明の実施形態に係る生成された素性ベクトルの一例である。
【００４７】
図５で説明した素性ベクトル５００ａに対して、素性ベクトル５００ｂは学習言語情報フィールド７０１という項目を追加している。学習言語情報は、例えば図４の学習データ４００から特徴語を抽出する処理により選択した単語、すなわち図６の特徴語６００を１つの例とする。特徴語６００に格納された情報は実際にはＦＡＱのフィールドではないが、図１２に記載の通り、例えばＦＡＱＩＤ＝３１９８のＦＡＱに対してであれば、索引１２０１の３１９８と記載された項目に対応づけられている学習言語情報１２０２に対応づけて記憶されており、これを取得してＦＡＱＩＤ＝３１９８のＦＡＱの論理的なフィールドとして扱う。
【００４８】
すなわち、図５では、３つのフィールドのみを素性ベクトルの生成に用いていたが、図７では特徴語を情報として含む論理的な学習言語情報フィールド７０１を用いる。
【００４９】
学習言語情報フィールド７０１に含まれる情報は、前述の通り、例えばユーザが実際に入力する情報をログとして収集し、学習に用いることができる。
【００５０】
ＦＡＱのフィールド、例えば「質問」、「回答」などは、その関連する業務、技術などに詳しい人が作成した「正しい言葉」で記載された文章であり、専門用語などが用いられる。
【００５１】
しかしながら実際のユーザは、その「専門用語」も知らずに、自分の言葉を検索条件とする。従って、重要な専門用語が順位学習において必ずしも効果を上げるとは限らない。
【００５２】
本願発明の学習言語情報フィールド７０１を用いる方式では、ユーザの検索ログ、即ちユーザの言葉そのものが学習対象となることで、より効果的な学習結果となる効果を得ることができる。
【００５３】
さらに素性ベクトル５００ｃでは、学習言語情報フィールド７０１のみから素性ベクトルを生成している（５０１ｃ）。これにより学習時間を短縮する効果を得ることができる。
【００５４】
詳細に説明すると、学習時間を決定する要素には幾つかあるが、その中で学習データと学習データに基づいて生成する“素性ベクトル”の次元がある。例えば、ＦＡＱ内の「質問」、「回答」、「カテゴリ」の３つのフィールドに３つの素性計算方法を適用すると、３×３＝９次元の素性ベクトルとなる。これに対して、５００ｃの通り類似度算出フィールドを学習言語情報フィールド１つに制限することで３次元の素性ベクトルとなり順位学習に要する時間が短縮する効果を得ることができる。
【００５５】
また、学習言語情報フィールド７０１内の情報は、学習言語情報記憶部１２３に格納されているものであるが、本願発明において学習言語情報記憶部１２３に格納されるものは特徴語に限定されるものではない。特に、各ＦＡＱＩＤに対応づけて全ての学習データのクエリを格納してもよい。この場合、学習言語情報フィールド７０１に格納されるのは、学習データのクエリ全文となるが、順位学習時に自然言語処理により解析され、単語などの言語的特徴が抽出されるため同様に実行可能である。またこれらの例、すなわち、特徴語あるいは全文に限定するものではなく、学習データの特徴を言語的に示すものであればよい。
【００５６】
ただし特徴語を用いることは前述と同じく、順位学習にかかる時間を短縮する。特徴語は、学習データのクエリ全文と比較して言語的な情報量が少なくなっている。そのため、抽出された特徴語に限定することでクエリ全文を格納するよりも順位学習にかかる時間を短縮する効果を得ることができる。
【００５７】
さらに、全てのＦＡＱに対して学習データが存在するわけではない。すなわち、学習時の情報検索部１３１による検索結果は、ユーザが適切な回答であると指定したＦＡＱ以外に、不適切な回答も含まれる。適切なＦＡＱ（正解となる文書）においては、前記学習データが少なくとも１つあることになるが、その他の文書は、対応する学習データがあるとは限らないからである。実際、ＦＡＱの中でもユーザが閲覧し、問い合わせに対応して閲覧するＦＡＱは偏っているのが一般的であり、比較的大きな割合のＦＡＱは閲覧さえされない。そのような理由により、対応する学習データが１つも存在しないＦＡＱも多数あることになる。
【００５８】
学習データが存在しない場合は、学習対象を学習言語情報フィールド７０１のみに限定すると、素性ベクトルを生成することができなくなる。その場合に対応するため、例えば、情報検索部１３１により前記学習データのクエリで検索した際のスコアを素性の１つとして追加することで、少なくとも１素性が０ではない素性ベクトルの生成を可能とする効果を得ることができる。
【００５９】
このスコアに関しては、例として５００ｃのみにＳｃｏｒｅ７０２として記載しているが、５００ａ、５００ｂに追加してもよいことはいうまでもない。
【００６０】
図８は、本発明の実施形態に係る学習データ件数の分布を示すグラフの一例である。前述までの段落では、学習データ前処理部１０１で特徴語を抽出するための処理を説明してきた。他の方法として、学習に使用する学習データを学習データ前処理部１０１で絞り込むことを説明するためのグラフである。
【００６１】
そもそも順位学習とは、学習に関連する機能部１０２〜１０４で用いた学習データと、実際の運用時にユーザ条件受付部１１１で受け付け、再ランク付けのための機能部１１２〜１１４で用いるユーザ条件の間で、言語的な特徴に類似性があることを利用し、学習モデルを生成して検索の精度を向上させるものである。
【００６２】
しかしながら学習データは、ユーザの検索ログ、すなわちユーザが実際に検索条件を入力した後、得られた検索結果の中から適切な回答を選択することで得られるものである。しかしながら、常にユーザが適切な回答を選択するとは限らない。
【００６３】
例えば、閲覧した回答が適切ではないのに誤って適切な回答であるとしたり、ユーザの当初の意図とは無関係な回答がたまたま興味ある内容だったため適切な回答であると指定したりする可能性もある。そのような不適切な学習データまで利用して学習したのでは、最適な学習モデルを得ることはできない。そのため、適切な学習データと不適切な学習データを分類する必要がある。
【００６４】
＜学習データを分類する実施形態１＞
まず各ＦＡＱを正解とする学習データの数により適切な学習データを選択する方法を提示する。設定パラメータ１１００（図１１）にある学習実行件数に１０とある記載に基づき、１つのＦＡＱに対応する学習データが１０件以上ある場合だけ、それらの学習データを適切な学習データとして、順位学習に利用する方法を提示する。
【００６５】
学習データ数グラフ８００は、各ＦＡＱを正解とする学習データの数である。横軸がＦＡＱＩＤ、縦軸が対応する学習データの件数を表している。学習データは左側から件数が多い順に並べている。
【００６６】
前述の通り、学習データは特定のＦＡＱに偏って存在する場合が一般的である。８０４の範囲にあるＦＡＱＩＤ、即ち点線の８０２より左にあるＦＡＱＩＤは、対応する学習データが１０件以上あるものを示している。例では、最も学習データが多いＦＡＱは４０件、図３に例としてあげたＦＡＱ３００ａ（ＦＡＱＩＤが３１９８のもの）は、３０件以上、ＦＡＱ３００ｂ（ＦＡＱＩＤが００６４のもの）は１０数件の対応する学習データがある。
【００６７】
一方、８０５の範囲のＦＡＱＩＤ、すなわち点線の８０２と８０３に挟まれた部分は、学習データが１０件未満であるもの、さらに８０６の範囲（点線の８０３より右）は、学習データが１件もないＦＡＱに対応している。
【００６８】
前述の通り、学習データにも不適切なものがあり、それは一定の確率でまれに発生すると思われる。従って特定のＦＡＱに対応する学習データが１件、あるいは数件である場合には、不適切な学習データが存在する可能性も低いが、一方で例え１件でも不適切な学習データが存在すると、学習データとして悪い効果が大きな影響を与えてしまう。前述のように特徴語を抽出した場合には、多くの不適切な特徴語が選択されてしまう。
【００６９】
一方で、対応する学習データが数十件あるような場合に、１件の不適切な学習データが含まれていたとしても、数十件の学習データからその統計的に言語的特徴を抽出する中で、ほぼ悪影響を与えることはなくなる。
【００７０】
すなわち、一定の低い確率で不適切な学習データが存在するとしても、特定のＦＡＱに対応する学習データが多ければ多いほど、無視してもよい可能性が高く、学習データが少なければ少ないほど無視できないことになる。その観点で、例えばＦＡＱに対して対応する学習データが１０件未満の場合は、それらの学習データを使用しない、ということにすることで、学習に悪影響を与える原因を除外することになる。
【００７１】
また、グラフ８００の例で言うと、実際に頻度高く問合せが成されるＦＡＱは、８０４に集中するので、この部分を大量の学習データで順位学習し、精度を高めることでユーザにとって適切な結果を返すことになり、逆にあまり問い合わせられることがない８０５、８０６の範囲の学習が全く成されない状況であっても、ユーザが問題を感じる確率は低くなる。
【００７２】
以上の方法でユーザの実際の使用頻度に応じて最適な学習を実施可能となる効果を得る。
【００７３】
＜学習データを分類する実施形態２＞
その他の方法を記載する。学習データに含まれるクエリが適切なものであれば、学習をしていない状態であっても（すなわち情報検索部１３１による検索であっても）、正解となるＦＡＱは比較的上位に来る。そのため、例えば５０位を閾値として、学習データのクエリで検索した結果、対応づけられる正解のＦＡＱが５０位以内に入っている場合は、その学習データはよい学習データである、と見なす。
【００７４】
＜学習データを分類する実施形態３＞
実施形態２と類似の方法として、閾値として順位ではなく、クエリとＦＡＱの検索結果の類似度（検索スコア）を用いる。すなわち、類似度が一定の値以上であれば、よい学習データであると見なす。
【００７５】
＜学習データを分類する実施形態４＞
実施形態４として、実施形態３，４を合わせて順位と類似度の両方を閾値とする方法もある。その他、学習データと検索結果の中の正解に対し、類似度と関連する数値的な情報、内部に含まれる単語など言語的な情報、また単一の学習データではなく他の学習データと正解ＦＡＱから得られる統計値などを用いて分類できるのであれば、如何なる方法であってもよいことはいうまでもない。
【００７６】
図９は、本発明の実施形態に係る学習時の処理、すなわち学習モデルの生成を説明するフローチャートの一例である。
【００７７】
ステップＳ９０１においては、学習データ記憶部１２１に記憶されている学習データを読み出す。
【００７８】
ステップＳ９０２においては、前記学習データに対して、順位学習に用いる情報を抽出し学習言語情報記憶部１２３に格納する。例えば、例えば図６で示した特徴語を抽出し、図１２のように学習データに対応するＦＡＱに紐付けて格納する。その際、図８で説明したように処理対象とする学習データをあらかじめ選択してもよい。また他の例として前述の通り、各ＦＡＱＩＤに対応づけて学習データのクエリをそのまま格納してもよい。すなわち、実質的に抽出、選択などの処理を行わず、格納だけを行ってもよい。
【００７９】
ステップＳ９０３からステップＳ９１１は、ステップＳ９０１で読み出した全ての学習データ、あるいはステップＳ９０２で学習データを一部選択したのであれば、選択された全ての学習データに対する繰り返し処理を実施する。
【００８０】
ステップＳ９０４においては、前記の学習データの１つに着目し、ステップＳ９０５においては、情報検索部１３１が、当該学習データのクエリにより検索対象文書記憶部１２４を検索する。ここでは、前記クエリに対して１つまたは複数の文書がヒットする。ヒットする文書がない場合もあるが、その場合は以下の処理を中断し繰り返し処理にて次の学習データに着目する。
【００８１】
ステップＳ９０６からステップＳ９１０は、前記着目中のクエリに検索ヒットした文書に対する繰り返し処理である。
【００８２】
ステップＳ９０７において、前記着目中のクエリでヒットした文書のうちの１つに着目する。
【００８３】
ステップＳ９０８においては、着目中の文書に対応する学習言語情報、例えば着目中の文書がＦＡＱＩＤ＝３１９８であれば、図１２に示す当該文書（のＦＡＱＩＤ）に対応する特徴語を取得する。
【００８４】
ステップＳ９０９においては、着目中のクエリと着目中の文書の学習対象となるフィールドから素性を計算する。ここでステップＳ９０８において取得した特徴語を（論理的な）学習言語情報フィールド７０１も学習対象とする。複数の計算方法、フィールドに対して計算することで図７の５００ｂ、５００ｃで例示する素性ベクトルを生成する。さらに生成した素性ベクトルを座標空間に写像する。この際、着目中の文書が着目中のクエリの正解となる回答か否か、学習データに記載があるため、写像先の座標に対応づけて、製開会中を示すラベルが記憶される。すべての学習データ、検索ヒットした文書に対して素性ベクトルの座標軸への写像が完了したらステップＳ９１２に進む。
【００８５】
ステップＳ９１２においては、写像された全ての素性ベクトルに基づき適切な学習モデルを生成し、当該学習モデルを学習モデル記憶部１２５に格納する。学習モデルの生成については、各種方法が提示されており、周知の技術であるので詳細の説明は割愛する。
【００８６】
以上で、学習データと検索対象文書を用いて学習モデルを生成する処理を完了する。これにて図９のフローチャートの説明を完了する。
【００８７】
図１０は、本発明の実施形態に係る学習結果に基づく情報検索・再ランク付けの処理を説明するフローチャートの一例である。
【００８８】
ステップＳ１００１においては、ユーザ条件受付部１１１が、ユーザ（あるいは他のアプリケーション）の検索条件（クエリ）を受け付ける。
【００８９】
ステップＳ１００２においては、情報検索部１３１が前記受け付けたクエリで、検索対象文書記憶部１２４を検索し、ヒットした文書（ＦＡＱなど）を返す。
【００９０】
ステップＳ１００３からステップＳ１００７は、前記ヒットした文書全てに対する繰り返し処理である。
【００９１】
ステップＳ１００４においては、前記検索結果の文書の１つに着目する。
【００９２】
ステップＳ１００５においては、着目した文書に対応する学習言語情報を取得する。たとえば着目中の文書が図３のＦＡＱ３００ａであれば、図１２の学習言語情報記憶部１２３の索引１２０１内の３１９８に対応する学習言語情報１２０２を取得する。例として、１０個の特徴語１２０３が記載されている。
【００９３】
ステップＳ１００６においては、ユーザ条件受付部１１１で受け付けたクエリと、論理的な学習言語情報フィールド７０１を含むＦＡＱ３００ａとから得られる素性ベクトルを生成する。例えば図７の５００ｂ、５００ｃのような素性ベクトルとなる。
【００９４】
さらに学習モデル記憶部１２５から図９で説明した学習モデルを含む座標系に素性ベクトルを写像する（学習モデルは、図１０のフローチャート開始時などに一度読み出しておけばよい）。
【００９５】
繰り返し処理の結果、前記ユーザの検索条件（クエリ）にヒットした文書の数だけ写像されることになる。これによりステップＳ１００３からステップＳ１００７の繰り返し処理は完了し、ステップＳ１００８に進む。なお図９のフローチャートで説明した場合と異なり、前記クエリでは正解となるＦＡＱが何か分かっていないので正解か否かを示すラベルは示されていない。
【００９６】
ステップＳ１００８においては、ユーザの検索条件（クエリ）に対してヒットした全ての文書に対応する素性ベクトルの写像は、図９の処理で生成された学習モデルと比較され、順位付けが成される。この順位付けについては、学習モデルの生成方法との対応で周知の技術であるため、詳細の説明は割愛する。
【００９７】
以上の処理で順位付けされた文書（クエリにヒットした前記文書）が、検索処理の呼び出し側に提示される。以上で、図１０を用いたフローチャートの説明を完了する。
【００９８】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【００９９】
以上、いくつかの実施形態について示したが、本発明は、例えば、システム、装置、方法、コンピュータプログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１００】
また、本発明におけるコンピュータプログラムは、図９〜図１０に示すフローチャートの処理方法をコンピュータが実行可能なコンピュータプログラムであり、本発明の記憶媒体は図９〜図１０の処理方法をコンピュータが実行可能なコンピュータプログラムが記憶されている。なお、本発明におけるコンピュータプログラムは図９〜図１０の各装置の処理方法ごとのコンピュータプログラムであってもよい。
【０１０１】
以上のように、前述した実施形態の機能を実現するコンピュータプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたコンピュータプログラムを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１０２】
この場合、記録媒体から読み出されたコンピュータプログラム自体が本発明の新規な機能を実現することになり、そのコンピュータプログラムを記憶した記録媒体は本発明を構成することになる。
【０１０３】
コンピュータプログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク、ソリッドステートドライブ等を用いることができる。
【０１０４】
また、コンピュータが読み出したコンピュータプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのコンピュータプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０５】
さらに、記録媒体から読み出されたコンピュータプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのコンピュータプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０６】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にコンピュータプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのコンピュータプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１０７】
さらに、本発明を達成するためのコンピュータプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１０８】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１０９】
１００  情報処理装置
１０１  学習データ前処理部
１０２  学習時検索部
１０３  情報検索部
１０４  学習用素性ベクトル生成部
１０５  学習用素性ベクトルマッピング部
１０６  学習モデル生成部
１１１  ユーザ条件受付部
１１２  ユーザ条件検索部
１１３  再ランク付け用素性ベクトル生成部
１１４  再ランク付け用素性ベクトルマッピング部
１１５  再ランク付け部
１２１  学習データ記憶部
１２２  設定記憶部
１２３  学習言語情報記憶部
１２４  検索対象文書記憶部
１２５  学習モデル記憶部
【図１】
2020071678.tif 000003
【図２】
2020071678.tif 000004
【図３】
2020071678.tif 000005
【図４】
2020071678.tif 000006
【図５】
2020071678.tif 000007
【図６】
2020071678.tif 000008
【図７】
2020071678.tif 000009
【図８】
2020071678.tif 000010
【図９】
2020071678.tif 000011
【図１０】
2020071678.tif 000012
【図１１】
2020071678.tif 000013
【図１２】
2020071678.tif 000014