(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-04
(45)【発行日】2023-04-12
(54)【発明の名称】情報処理装置、制御方法、プログラム
(51)【国際特許分類】
G06F 16/33 20190101AFI20230405BHJP
G06F 16/338 20190101ALI20230405BHJP
G06F 16/383 20190101ALI20230405BHJP
G06F 16/908 20190101ALI20230405BHJP
【FI】
G06F16/33
G06F16/338
G06F16/383
G06F16/908
(21)【出願番号】P 2018205385
(22)【出願日】2018-10-31
【審査請求日】2021-10-29
(73)【特許権者】
【識別番号】390002761
【氏名又は名称】キヤノンマーケティングジャパン株式会社
(73)【特許権者】
【識別番号】592135203
【氏名又は名称】キヤノンITソリューションズ株式会社
(74)【代理人】
【識別番号】100189751
【氏名又は名称】木村 友輔
(72)【発明者】
【氏名】三浦 大樹
(72)【発明者】
【氏名】下郡山 敬己
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】特開2011-141838(JP,A)
【文献】特開2013-161330(JP,A)
【文献】特開2006-338457(JP,A)
【文献】特開2013-254420(JP,A)
【文献】特開2013-061718(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
検索テキストにより検索対象文書を検索する検索手段と、検索対象文書に係る情報と当該検索対象文書に対応する学習用検索テキストとを記憶する記憶手段とを備える情報処理装置であって、
前記検索対象文書に対応する学習用検索テキストに基づき、前記検索対象文書に対する付加テキスト情報を作成する作成手段と、
前記学習用検索テキストと、
当該学習用検索テキストに対応する検索対象文書に対する付加テキスト情報と
に基づく数値を少なくとも含む素性ベクトルを、対応する次元の座標空間にマッピングすることにより、前記検索手段による検索結果を順位付けるための学習モデルを生成する学習手段と
を備えることを特徴とする情報処理装置。
【請求項2】
前記学習手段は、前記学習用検索テキストと、
当該学習用検索テキストに対応する検索対象文書に対する付加テキスト情報
とに基づく数値より成る素性ベクトルを、対応する次元の座標空間にマッピングすることにより前記学習モデルを生成することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記素性ベクトルに、前記学習用検索テキストにより
前記検索対象文書が検索された場合の検索スコアを
追加することを特徴とする請求項
1または2に記載の情報処理装置。
【請求項4】
前記付加テキスト情報は、前記学習用検索テキストから抽出された特徴語を含むことを特徴とする請求項1~
3のいずれか1項に記載の情報処理装置。
【請求項5】
前記付加テキスト情報に含まれる特徴語の数が所定の値に従って制限されることを特徴とする請求項
4に記載の情報処理装置。
【請求項6】
前記付加テキスト情報は、前記検索対象文書に対応する学習用検索テキストを含むことを特徴とする請求項1~5のいずれか1項に記載の情報処理装置。
【請求項7】
検索テキストにより検索対象文書を検索する検索手段と、検索対象文書に係る情報と当該検索対象文書に対応する学習用検索テキストとを記憶する記憶手段とを備える情報処理装置の制御方法であって、
作成手段が、前記検索対象文書に対応する学習用検索テキストに基づき、前記検索対象文書に対する付加テキスト情報を作成する作成ステップと、
学習手段が、前記学習用検索テキストと、
当該学習用検索テキストに対応する検索対象文書に対する
付加テキスト情報とに基づく数値を少なくとも含む素性ベクトルを、対応する次元の座標空間にマッピングすることにより、前記検索手段による検索結果を順位付けるための学習モデルを生成する学習ステップと
を備える情報処理装置の制御方法。
【請求項8】
検索テキストにより検索対象文書を検索する検索手段と、検索対象文書に係る情報と当該検索対象文書に対応する学習用検索テキストとを記憶する記憶手段とを備える情報処理装置において実行可能なプログラムであって、
前記情報処理装置を、
前記検索対象文書に対応する学習用検索テキストに基づき、前記検索対象文書に対する付加テキスト情報を作成する作成手段と、
前記学習用検索テキストと、
当該学習用検索テキストに対応する検索対象文書に対する付加テキスト情報
に基づく数値を少なくとも含む素性ベクトルを、対応する次元の座標空間にマッピングすることにより、前記検索手段による検索結果を順位付けるための学習モデルを生成する学習手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検索対象となる文書群の中から指定された検索条件に適切と思われる文書を提示するための文書検索の技術に関する。
【背景技術】
【0002】
従来からユーザに対して適切な検索結果を提示するため、検索条件と文書群に含まれる各文書に含まれるターム(形態素解析、N-Gramなど一定の基準で切り出した文字列)の関連性を統計値として算出する技術がある。これらの技術を類似検索などと呼ぶ(以下、当該技術を本発明の説明において、統一的に類似検索と呼ぶこととし、本願発明における後述の順位学習による検索とは区別することにする)。
【0003】
また、学習データと検索対象となる文書群が類似する場合の特徴量を機械学習によりモデル化し、新たな検索条件が指定された場合に、当該学習モデルに基づきランキング調整をすることで、類似検索の精度を向上させる順位学習の技術がある。
【0004】
順位学習には大量の学習データが必要であるが、学習データの収集は困難である。類似検索をシステムとして運用開始した後にユーザの検索ログから学習データを収集することも考えられるが、検索結果の評価にはユーザの負荷がかかることもあり、十分な量のログ収集が可能とは言い切れない。また運用開始前には、開発者がテスト用に作成した学習データなどに限定される。
【0005】
特許文献1は、予め用意された回答(いわばFAQの文書群)に対して、ユーザからの問い合わせに対して最も類似した質問(学習データの質問文)を見つけ、対応する回答を返す技術に対して、質問文が少ない場合でもトピック推定精度を高める技術を提供している。
【0006】
具体的には、学習データの質問文に現れる単語に対して、対応する回答内の単語に置換することによって、学習データの質問文を拡張する、すなわち学習データの件数を増やしている。また拡充した質問文のうち不自然な質問文を除外するため、確率言語モデルを用いて質問文の存在確率を計算し、存在確率がある閾値を超える場合のみ学習データとして用いるとしている。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献1の技術においては、確率言語モデルを用いて拡充された質問文が適切であるか否かを判定しているが、置換された単語はあくまで予め用意された回答に含まれるものであり、専門用語やある組織特有の用語が使用されている可能性がある。その場合、確率言語モデルでは事例が不足していて、質問文が適切に拡充されない場合も発生する。
【0009】
また質問文の拡充が適切に処理されたとしても、そのような専門用語、組織特有の用語を、実際のユーザが入力しない場合もある。さらに当該技術自体、質問文を増幅させることが目的であり、その結果、学習処理に要する時間が指数関数的に増加してしまう可能性もある。
本発明の目的は、情報検索における順位学習において、学習データを効果的に使うことで精度向上の効果を高め、また学習時間が短縮を可能とする技術を提供することである。
【課題を解決するための手段】
【0010】
本発明は、検索テキストにより検索対象文書を検索する検索手段と、検索対象文書に係る情報と当該検索対象文書に対応する学習用検索テキストとを記憶する記憶手段とを備える情報処理装置であって、前記検索対象文書に対応する学習用検索テキストに基づき、前記検索対象文書に対する付加テキスト情報を作成する作成手段と、前記学習用検索テキストと、当該学習用検索テキストに対応する検索対象文書に対する付加テキスト情報とに基づく数値を少なくとも含む素性ベクトルを、対応する次元の座標空間にマッピングすることにより、前記検索手段による検索結果を順位付けるための学習モデルを生成する学習手段とを備えることを特徴とする。
【発明の効果】
【0011】
本発明により、本発明の目的は、情報検索における順位学習において、学習データを効果的に使うことで精度向上の効果を高め、また学習時間が短縮を可能とする技術を提供することが可能となる。
【図面の簡単な説明】
【0012】
【
図1】本発明の実施形態に係る機能構成の一例を示す図である。
【
図2】本発明の実施形態に係る情報処理装置100に適用可能なハードウェア構成の一例を示すブロック図である。
【
図3】本発明の実施形態に係わる類似検索対象となる文書の一例である。
【
図4】本発明の実施形態に係わる学習データの一例である。
【
図5】本発明の実施形態に係る生成された素性ベクトルの一例である。
【
図6】本発明の実施形態に係わる学習データから抽出された特徴語の一例である。
【
図7】本発明の実施形態に係る生成された素性ベクトルの一例である。
【
図8】本発明の実施形態に係る学習データ件数の分布を示すグラフの一例である。
【
図9】本発明の実施形態に係る学習時の処理を説明するフローチャートの一例である。
【
図10】本発明の実施形態に係る学習結果に基づく類似検索・再ランク付けの処理を説明するフローチャートの一例である。
【
図11】本発明の実施形態に係る設定項目の一例である。
【
図12】本発明の実施形態に係る学習言語情報の格納方法の一例を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【0014】
本発明においては機械学習により従来型の文書の検索結果を、機械学習を利用して検索順位を改めて指定し直す。これを順位学習などと呼ぶ。特に本発明では説明の便宜上、事前に学習モデルを決定する処理を“学習モデルの生成”、実際にユーザなどの検索条件に基づく検索結果を、生成された学習モデルを用いて順位を指定し直す処理を“再ランク付け”と呼ぶことにする。
【0015】
図1は、本発明の実施形態に係る機能構成の一例を示す図である。本機能構成は、主に次の3つに分けて考えることができる。まず従来型の類似検索を用いるが、従来型の類似検索に関連する部分は131である。また学習データに基づき学習モデルを生成する部分は101~104である。生成された学習モデルに基づき、類似検索および再ランク付けを行う部分は111~114である。
【0016】
学習データ前処理部101は、学習データ記憶部121に記憶された学習データ(検索条件や正解の選択などのユーザログ)から、実際に学習する学習データを選択、また学習データ群から言語的な特徴を抽出する機能部である。前記選択や抽出を行うための基準は設定記憶部122に格納されている。前処理した結果は、学習言語情報記憶部123に格納される。
【0017】
学習データに記載されたクエリに対しての情報検索部131を呼び出し、文書群を格納した検索対象文書記憶部124を検索する。情報検索とは本願発明で説明する“順位学習”を用いて高精度化された検索エンジンではないものを想定しているが、他の順位学習、あるいは本願発明の順位学習自体、あるいは如何なる方式の情報検索であってもよい。とにかく検索対象文書記憶部124からユーザが所望する文書を適切に検索可能なものであればよい。
【0018】
学習用素性ベクトル生成部102においては、前記学習データの1つに着目し、当該学習データにおけるクエリ(検索条件)の検索結果の各文書を比較して、文書毎に言語的特徴を“素性ベクトル”として表す。さらに学習用素性ベクトルマッピング部103により前記素性ベクトルを、対応する次元の座標空間にマッピングする。このマッピングに基づき、学習モデル生成部104が再ランク付け(順位学習)した結果を学習モデルとして表現し、学習モデル記憶部125に当該学習モデルを記憶する。
【0019】
次に実際の運用においてはユーザ、あるいは他のアプリケーションが検索条件を入力し、事前に学習された結果の学習モデルを用いて適切な結果を呼び出し側に返す処理の構成を説明する。
【0020】
ユーザ条件受付部111は、ユーザ(あるいは他のアプリケーション)の検索条件(クエリ)を受け付ける。その検索条件(クエリ)に基づき、情報検索部131が検索対象文書記憶部124を検索し、検索結果を返す。再ランク付け用素性ベクトル生成部112では、前記検索条件と前記の各検索結果を比較して、素性ベクトルを生成する。着目した1つのクエリと1つの文書から素性ベクトルを生成する処理は学習用素性ベクトル生成部102と同じ処理であるが、学習時にはクエリ自体が複数あることや学習理論によっては異なる可能性も考慮し、便宜上2つの機能部に区別している。実際には同一であれ異なるものであれ本願発明に含まれる。
【0021】
再ランク付け用素性ベクトルマッピング部113は前記素性ベクトルを、学習モデル生成部104で生成され学習モデル記憶部125に格納された座標空間にマッピングする。このマッピングに基づき再ランク付け部114が、前述のユーザの検索条件に基づく検索結果に対する各文書の再ランク付け処理を行う。
【0022】
図2は、本発明の実施形態に係る情報処理装置100に適用可能なハードウェア構成の一例を示すブロック図である。
【0023】
図2に示すように、情報処理装置100は、システムバス204を介してCPU(Central Processing Unit)201、RAM(Random Access Memory)202、ROM(Read Only Memory)203、入力コントローラ205、ビデオコントローラ206、メモリコントローラ207、通信I/Fコントローラ208等が接続された構成を採る。
【0024】
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
【0025】
また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input/Output System)やOS(Operating System)や、各サーバあるいは各PCが実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。また、本発明を実施するために必要な情報が記憶されている。なお外部メモリはデータベースであってもよい。
【0026】
RAM202は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM203あるいは外部メモリ211からRAM202にロードし、ロードしたプログラムを実行することで各種動作を実現する。
【0027】
また、入力コントローラ205は、キーボード(KB)209や不図示のマウス等のポインティングデバイス等からの入力を制御する。
【0028】
ビデオコントローラ206は、ディスプレイ210等の表示器への表示を制御する。尚、表示器は液晶ディスプレイ等の表示器でもよい。これらは、必要に応じて管理者が使用する。
【0029】
メモリコントローラ207は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する外部記憶装置(ハードディスク(HD))や、フレキシブルディスク(FD)、あるいは、PCMCIA(Personal Computer Memory Card International Association)カードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
【0030】
通信I/Fコントローラ208は、ネットワークを介して外部機器と接続・通信し、ネットワークでの通信制御処理を実行する。例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)を用いた通信等が可能である。
【0031】
尚、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ210上に表示することが可能である。また、CPU201は、ディスプレイ210上のマウスカーソル(図示しない)等によるユーザ指示を可能とする。
【0032】
本発明を実現するための後述する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。
【0033】
図3は本発明の実施形態に係わる検索対象となる文書の一例である。例として、ソフトウェア製品のサポートに用いられるFAQ(よくある質問)集を記載しているが、本願発明における選択対象の文書は論文、新聞記事、会社規定、SNS上の投稿などテキストを含むものであれば何でもよく、FAQに限定するものではない。
【0034】
300a、300bに記載の例では、1つのFAQには、FAQを一意的に識別する“FAQID”、FAQ全体の内容を分類する“カテゴリ”、さらにサポート内容、例えば前記ソフトウェア製品のユーザの問合せに対してどのFAQを参照したらよいかの目安となる“質問”、その応答を記載した“回答”などのフィールドから構成され、それぞれのフィールドに対応する内容の記載を含む。ここで、FAQIDは後述する学習データにおいて問合せ(クエリ)の文字列と特定のFAQを対応づけるものであり、フィールドの名称として限定するものではない。その他のフィールドについては、名称や個数を限定するものではない。
【0035】
図4は、本発明の実施形態に係わる学習データの一例である。
図4の学習データの例には、
図3のFAQ300aに対応する学習データ(10件分)400aと、FAQ300bに対応する学習データ(10件分)400bを例示している。
【0036】
各学習データはクエリ401(あるいは問合せ、検索条件などと呼ぶことがある)と、FAQ対応付け402がある。FAQ対応付け402にはFAQIDが格納されており、前記学習データが
図3に例示したFAQの何れに対応しているかを識別するものである。
【0037】
これらの学習データは、ユーザが実際に本願発明の類似検索エンジンを用いるときに、ユーザが入力した問合せ内容(クエリ)の意図に一致したFAQを選択する、などして収集したログから得ることができる。また本願発明の機能の一部としてではなく、ユーザとサポートの担当者がやり取りしたメールなどから問合せ内容(クエリ)と対応するFAQを特定して収集してもよい。
図5は、本発明の実施形態に係る生成された素性ベクトルの一例である。本発明における類似検索は、“学習時”および実際にユーザなどがFAQを閲覧する“問合せ時”がある。何れの場合も素性ベクトルを生成する。
【0038】
素性ベクトルは、学習データに含まれるクエリ401を検索条件として、情報検索部131で検索対象文書記憶部124を検索した結果の文書(本例ではFAQ)のうちの1つに言語処理を施すことによって得られる数値の並び(これをベクトルと見なす)である。
【0039】
1つのFAQに含まれる3つのフィールド(類似度算出フィールド501a)の各々と、クエリ401を、類似度指標502に記載の3つの類似度算出手法で計算する。例えば、503が指し示す項目の値1.2は、クエリ401と質問フィールドにある文章をBM25という類似度算出手法で計算し、得られた値である。
【0040】
500aには9つの数値を表形式で記載しているが、これを一列に並べたものを(本例では9次元の)素性ベクトルとするが、以下表形式の記載も素性ベクトルと同一視する。すなわち素性ベクトル500aと呼ぶ。
【0041】
なお、本例で計算に用いたフィールドはあくまで例である。FAQIDは言語的意味がないので通常用いない場合が多いと推測されるが、他の3つのフィールドを全て用いなければならないわけではない。特に言語的特徴が強く表れるものを用いればよい。
【0042】
更に類似度指標502に記載した3つの手法もあくまで例であり、他にも様々な計算手法がある。これらの詳細については、自然言語処理において周知の技術であるため割愛する。
【0043】
図6は、本発明の実施形態に係わる学習データから抽出された特徴語の一例である。本発明の実施例においては、学習データ400から“特徴語”を抽出する。特徴語の抽出は、例えばあるテキスト群において、テキストAから抽出される単語と、テキスト群の中のテキストA以外のテキストから抽出される単語を統計的に比較し、テキストAを特徴付ける(他の文書と区別する)と判断される単語を、テキストAの特徴語として抽出するものである。特徴語抽出の方式には様々な種類があるが、これらの詳細においては自然言語処理技術において周知の技術であるため割愛する。
【0044】
特徴語600aは、FAQID=3198を正解とする学習データ全件(
図4の学習データ400a)から上位10個の特徴語を抽出したものである。ここで上位10個とは、前述の特徴語抽出の処理において、各単語に“重要度”が付与されるが、例えば
図11の設定記憶部122の“特徴語個数”に“10”と記載があるため、重要度が高い上位10個を選択したものである。あるいは、“特徴語重要度”に“0.5”とある記載により、重要度が0.5以上の単語を個数にかかわらず選択してもよい。
【0045】
特徴語600bは、同様にFAQID=0064を正解とする学習データ全件(
図4の学習データ400b)から上位10個の特徴語を抽出した例を記載している。
【0046】
図7は、本発明の実施形態に係る生成された素性ベクトルの一例である。
【0047】
図5で説明した素性ベクトル500aに対して、素性ベクトル500bは学習言語情報フィールド701という項目を追加している。学習言語情報は、例えば
図4の学習データ400から特徴語を抽出する処理により選択した単語、すなわち
図6の特徴語600を1つの例とする。特徴語600に格納された情報は実際にはFAQのフィールドではないが、
図12に記載の通り、例えばFAQID=3198のFAQに対してであれば、索引1201の3198と記載された項目に対応づけられている学習言語情報1202に対応づけて記憶されており、これを取得してFAQID=3198のFAQの論理的なフィールドとして扱う。
【0048】
すなわち、
図5では、3つのフィールドのみを素性ベクトルの生成に用いていたが、
図7では特徴語を情報として含む論理的な学習言語情報フィールド701を用いる。
【0049】
学習言語情報フィールド701に含まれる情報は、前述の通り、例えばユーザが実際に入力する情報をログとして収集し、学習に用いることができる。
【0050】
FAQのフィールド、例えば「質問」、「回答」などは、その関連する業務、技術などに詳しい人が作成した「正しい言葉」で記載された文章であり、専門用語などが用いられる。
【0051】
しかしながら実際のユーザは、その「専門用語」も知らずに、自分の言葉を検索条件とする。従って、重要な専門用語が順位学習において必ずしも効果を上げるとは限らない。
【0052】
本願発明の学習言語情報フィールド701を用いる方式では、ユーザの検索ログ、即ちユーザの言葉そのものが学習対象となることで、より効果的な学習結果となる効果を得ることができる。
【0053】
さらに素性ベクトル500cでは、学習言語情報フィールド701のみから素性ベクトルを生成している(501c)。これにより学習時間を短縮する効果を得ることができる。
【0054】
詳細に説明すると、学習時間を決定する要素には幾つかあるが、その中で学習データと学習データに基づいて生成する“素性ベクトル”の次元がある。例えば、FAQ内の「質問」、「回答」、「カテゴリ」の3つのフィールドに3つの素性計算方法を適用すると、3×3=9次元の素性ベクトルとなる。これに対して、500cの通り類似度算出フィールドを学習言語情報フィールド1つに制限することで3次元の素性ベクトルとなり順位学習に要する時間が短縮する効果を得ることができる。
【0055】
また、学習言語情報フィールド701内の情報は、学習言語情報記憶部123に格納されているものであるが、本願発明において学習言語情報記憶部123に格納されるものは特徴語に限定されるものではない。特に、各FAQIDに対応づけて全ての学習データのクエリを格納してもよい。この場合、学習言語情報フィールド701に格納されるのは、学習データのクエリ全文となるが、順位学習時に自然言語処理により解析され、単語などの言語的特徴が抽出されるため同様に実行可能である。またこれらの例、すなわち、特徴語あるいは全文に限定するものではなく、学習データの特徴を言語的に示すものであればよい。
【0056】
ただし特徴語を用いることは前述と同じく、順位学習にかかる時間を短縮する。特徴語は、学習データのクエリ全文と比較して言語的な情報量が少なくなっている。そのため、抽出された特徴語に限定することでクエリ全文を格納するよりも順位学習にかかる時間を短縮する効果を得ることができる。
【0057】
さらに、全てのFAQに対して学習データが存在するわけではない。すなわち、学習時の情報検索部131による検索結果は、ユーザが適切な回答であると指定したFAQ以外に、不適切な回答も含まれる。適切なFAQ(正解となる文書)においては、前記学習データが少なくとも1つあることになるが、その他の文書は、対応する学習データがあるとは限らないからである。実際、FAQの中でもユーザが閲覧し、問い合わせに対応して閲覧するFAQは偏っているのが一般的であり、比較的大きな割合のFAQは閲覧さえされない。そのような理由により、対応する学習データが1つも存在しないFAQも多数あることになる。
【0058】
学習データが存在しない場合は、学習対象を学習言語情報フィールド701のみに限定すると、素性ベクトルを生成することができなくなる。その場合に対応するため、例えば、情報検索部131により前記学習データのクエリで検索した際のスコアを素性の1つとして追加することで、少なくとも1素性が0ではない素性ベクトルの生成を可能とする効果を得ることができる。
【0059】
このスコアに関しては、例として500cのみにScore702として記載しているが、500a、500bに追加してもよいことはいうまでもない。
【0060】
図8は、本発明の実施形態に係る学習データ件数の分布を示すグラフの一例である。前述までの段落では、学習データ前処理部101で特徴語を抽出するための処理を説明してきた。他の方法として、学習に使用する学習データを学習データ前処理部101で絞り込むことを説明するためのグラフである。
【0061】
そもそも順位学習とは、学習に関連する機能部102~104で用いた学習データと、実際の運用時にユーザ条件受付部111で受け付け、再ランク付けのための機能部112~114で用いるユーザ条件の間で、言語的な特徴に類似性があることを利用し、学習モデルを生成して検索の精度を向上させるものである。
【0062】
しかしながら学習データは、ユーザの検索ログ、すなわちユーザが実際に検索条件を入力した後、得られた検索結果の中から適切な回答を選択することで得られるものである。しかしながら、常にユーザが適切な回答を選択するとは限らない。
【0063】
例えば、閲覧した回答が適切ではないのに誤って適切な回答であるとしたり、ユーザの当初の意図とは無関係な回答がたまたま興味ある内容だったため適切な回答であると指定したりする可能性もある。そのような不適切な学習データまで利用して学習したのでは、最適な学習モデルを得ることはできない。そのため、適切な学習データと不適切な学習データを分類する必要がある。
【0064】
<学習データを分類する実施形態1>
まず各FAQを正解とする学習データの数により適切な学習データを選択する方法を提示する。設定パラメータ1100(
図11)にある学習実行件数に10とある記載に基づき、1つのFAQに対応する学習データが10件以上ある場合だけ、それらの学習データを適切な学習データとして、順位学習に利用する方法を提示する。
【0065】
学習データ数グラフ800は、各FAQを正解とする学習データの数である。横軸がFAQID、縦軸が対応する学習データの件数を表している。学習データは左側から件数が多い順に並べている。
【0066】
前述の通り、学習データは特定のFAQに偏って存在する場合が一般的である。804の範囲にあるFAQID、即ち点線の802より左にあるFAQIDは、対応する学習データが10件以上あるものを示している。例では、最も学習データが多いFAQは40件、
図3に例としてあげたFAQ300a(FAQIDが3198のもの)は、30件以上、FAQ300b(FAQIDが0064のもの)は10数件の対応する学習データがある。
【0067】
一方、805の範囲のFAQID、すなわち点線の802と803に挟まれた部分は、学習データが10件未満であるもの、さらに806の範囲(点線の803より右)は、学習データが1件もないFAQに対応している。
【0068】
前述の通り、学習データにも不適切なものがあり、それは一定の確率でまれに発生すると思われる。従って特定のFAQに対応する学習データが1件、あるいは数件である場合には、不適切な学習データが存在する可能性も低いが、一方で例え1件でも不適切な学習データが存在すると、学習データとして悪い効果が大きな影響を与えてしまう。前述のように特徴語を抽出した場合には、多くの不適切な特徴語が選択されてしまう。
【0069】
一方で、対応する学習データが数十件あるような場合に、1件の不適切な学習データが含まれていたとしても、数十件の学習データからその統計的に言語的特徴を抽出する中で、ほぼ悪影響を与えることはなくなる。
【0070】
すなわち、一定の低い確率で不適切な学習データが存在するとしても、特定のFAQに対応する学習データが多ければ多いほど、無視してもよい可能性が高く、学習データが少なければ少ないほど無視できないことになる。その観点で、例えばFAQに対して対応する学習データが10件未満の場合は、それらの学習データを使用しない、ということにすることで、学習に悪影響を与える原因を除外することになる。
【0071】
また、グラフ800の例で言うと、実際に頻度高く問合せが成されるFAQは、804に集中するので、この部分を大量の学習データで順位学習し、精度を高めることでユーザにとって適切な結果を返すことになり、逆にあまり問い合わせられることがない805、806の範囲の学習が全く成されない状況であっても、ユーザが問題を感じる確率は低くなる。
【0072】
以上の方法でユーザの実際の使用頻度に応じて最適な学習を実施可能となる効果を得る。
【0073】
<学習データを分類する実施形態2>
その他の方法を記載する。学習データに含まれるクエリが適切なものであれば、学習をしていない状態であっても(すなわち情報検索部131による検索であっても)、正解となるFAQは比較的上位に来る。そのため、例えば50位を閾値として、学習データのクエリで検索した結果、対応づけられる正解のFAQが50位以内に入っている場合は、その学習データはよい学習データである、と見なす。
【0074】
<学習データを分類する実施形態3>
実施形態2と類似の方法として、閾値として順位ではなく、クエリとFAQの検索結果の類似度(検索スコア)を用いる。すなわち、類似度が一定の値以上であれば、よい学習データであると見なす。
【0075】
<学習データを分類する実施形態4>
実施形態4として、実施形態3,4を合わせて順位と類似度の両方を閾値とする方法もある。その他、学習データと検索結果の中の正解に対し、類似度と関連する数値的な情報、内部に含まれる単語など言語的な情報、また単一の学習データではなく他の学習データと正解FAQから得られる統計値などを用いて分類できるのであれば、如何なる方法であってもよいことはいうまでもない。
【0076】
図9は、本発明の実施形態に係る学習時の処理、すなわち学習モデルの生成を説明するフローチャートの一例である。
【0077】
ステップS901においては、学習データ記憶部121に記憶されている学習データを読み出す。
【0078】
ステップS902においては、前記学習データに対して、順位学習に用いる情報を抽出し学習言語情報記憶部123に格納する。例えば、例えば
図6で示した特徴語を抽出し、
図12のように学習データに対応するFAQに紐付けて格納する。その際、
図8で説明したように処理対象とする学習データをあらかじめ選択してもよい。また他の例として前述の通り、各FAQIDに対応づけて学習データのクエリをそのまま格納してもよい。すなわち、実質的に抽出、選択などの処理を行わず、格納だけを行ってもよい。
【0079】
ステップS903からステップS911は、ステップS901で読み出した全ての学習データ、あるいはステップS902で学習データを一部選択したのであれば、選択された全ての学習データに対する繰り返し処理を実施する。
【0080】
ステップS904においては、前記の学習データの1つに着目し、ステップS905においては、情報検索部131が、当該学習データのクエリにより検索対象文書記憶部124を検索する。ここでは、前記クエリに対して1つまたは複数の文書がヒットする。ヒットする文書がない場合もあるが、その場合は以下の処理を中断し繰り返し処理にて次の学習データに着目する。
【0081】
ステップS906からステップS910は、前記着目中のクエリに検索ヒットした文書に対する繰り返し処理である。
【0082】
ステップS907において、前記着目中のクエリでヒットした文書のうちの1つに着目する。
【0083】
ステップS908においては、着目中の文書に対応する学習言語情報、例えば着目中の文書がFAQID=3198であれば、
図12に示す当該文書(のFAQID)に対応する特徴語を取得する。
【0084】
ステップS909においては、着目中のクエリと着目中の文書の学習対象となるフィールドから素性を計算する。ここでステップS908において取得した特徴語を(論理的な)学習言語情報フィールド701も学習対象とする。複数の計算方法、フィールドに対して計算することで
図7の500b、500cで例示する素性ベクトルを生成する。さらに生成した素性ベクトルを座標空間に写像する。この際、着目中の文書が着目中のクエリの正解となる回答か否か、学習データに記載があるため、写像先の座標に対応づけて、製開会中を示すラベルが記憶される。すべての学習データ、検索ヒットした文書に対して素性ベクトルの座標軸への写像が完了したらステップS912に進む。
【0085】
ステップS912においては、写像された全ての素性ベクトルに基づき適切な学習モデルを生成し、当該学習モデルを学習モデル記憶部125に格納する。学習モデルの生成については、各種方法が提示されており、周知の技術であるので詳細の説明は割愛する。
【0086】
以上で、学習データと検索対象文書を用いて学習モデルを生成する処理を完了する。これにて
図9のフローチャートの説明を完了する。
【0087】
図10は、本発明の実施形態に係る学習結果に基づく情報検索・再ランク付けの処理を説明するフローチャートの一例である。
【0088】
ステップS1001においては、ユーザ条件受付部111が、ユーザ(あるいは他のアプリケーション)の検索条件(クエリ)を受け付ける。
【0089】
ステップS1002においては、情報検索部131が前記受け付けたクエリで、検索対象文書記憶部124を検索し、ヒットした文書(FAQなど)を返す。
【0090】
ステップS1003からステップS1007は、前記ヒットした文書全てに対する繰り返し処理である。
【0091】
ステップS1004においては、前記検索結果の文書の1つに着目する。
【0092】
ステップS1005においては、着目した文書に対応する学習言語情報を取得する。たとえば着目中の文書が
図3のFAQ300aであれば、
図12の学習言語情報記憶部123の索引1201内の3198に対応する学習言語情報1202を取得する。例として、10個の特徴語1203が記載されている。
【0093】
ステップS1006においては、ユーザ条件受付部111で受け付けたクエリと、論理的な学習言語情報フィールド701を含むFAQ300aとから得られる素性ベクトルを生成する。例えば
図7の500b、500cのような素性ベクトルとなる。
【0094】
さらに学習モデル記憶部125から
図9で説明した学習モデルを含む座標系に素性ベクトルを写像する(学習モデルは、
図10のフローチャート開始時などに一度読み出しておけばよい)。
【0095】
繰り返し処理の結果、前記ユーザの検索条件(クエリ)にヒットした文書の数だけ写像されることになる。これによりステップS1003からステップS1007の繰り返し処理は完了し、ステップS1008に進む。なお
図9のフローチャートで説明した場合と異なり、前記クエリでは正解となるFAQが何か分かっていないので正解か否かを示すラベルは示されていない。
【0096】
ステップS1008においては、ユーザの検索条件(クエリ)に対してヒットした全ての文書に対応する素性ベクトルの写像は、
図9の処理で生成された学習モデルと比較され、順位付けが成される。この順位付けについては、学習モデルの生成方法との対応で周知の技術であるため、詳細の説明は割愛する。
【0097】
以上の処理で順位付けされた文書(クエリにヒットした前記文書)が、検索処理の呼び出し側に提示される。以上で、
図10を用いたフローチャートの説明を完了する。
【0098】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【0099】
以上、いくつかの実施形態について示したが、本発明は、例えば、システム、装置、方法、コンピュータプログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0100】
また、本発明におけるコンピュータプログラムは、
図9~
図10に示すフローチャートの処理方法をコンピュータが実行可能なコンピュータプログラムであり、本発明の記憶媒体は
図9~
図10の処理方法をコンピュータが実行可能なコンピュータプログラムが記憶されている。なお、本発明におけるコンピュータプログラムは
図9~
図10の各装置の処理方法ごとのコンピュータプログラムであってもよい。
【0101】
以上のように、前述した実施形態の機能を実現するコンピュータプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたコンピュータプログラムを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0102】
この場合、記録媒体から読み出されたコンピュータプログラム自体が本発明の新規な機能を実現することになり、そのコンピュータプログラムを記憶した記録媒体は本発明を構成することになる。
【0103】
コンピュータプログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、DVD-ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク、ソリッドステートドライブ等を用いることができる。
【0104】
また、コンピュータが読み出したコンピュータプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのコンピュータプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0105】
さらに、記録媒体から読み出されたコンピュータプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのコンピュータプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0106】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にコンピュータプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのコンピュータプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0107】
さらに、本発明を達成するためのコンピュータプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0108】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0109】
100 情報処理装置
101 学習データ前処理部
102 学習時検索部
103 情報検索部
104 学習用素性ベクトル生成部
105 学習用素性ベクトルマッピング部
106 学習モデル生成部
111 ユーザ条件受付部
112 ユーザ条件検索部
113 再ランク付け用素性ベクトル生成部
114 再ランク付け用素性ベクトルマッピング部
115 再ランク付け部
121 学習データ記憶部
122 設定記憶部
123 学習言語情報記憶部
124 検索対象文書記憶部
125 学習モデル記憶部