以下に図面を参照して、本発明にかかる回答出力プログラム、回答出力方法、情報処理装置および機械学習プログラムの実施の形態を詳細に説明する。
(実施の形態)
図1は、実施の形態にかかる回答出力方法の一実施例を示す説明図である。図1において、情報処理装置101は、入力された質問データに対して回答候補データを出力するコンピュータである。質問データは、何らかの問題の解決方法を問うものである。また、質問データは、話し言葉による問いかけであってもよい。質問データは、単語または複数の単語の組み合わせによって表現されてもよく、また、1または複数の文章によって表現されてもよい。
回答候補データは、質問された問題の解決方法を示す回答の候補や、話し言葉による問いかけに対する回答の候補である。回答候補データは、例えば、FAQである。FAQは、「頻繁に尋ねられる質問」の意味であり、あらかじめ予想される質問データに対して、質問データと回答データとをまとめたものである。
ここで、オペレータ向けのFAQシステムでは、FAQの検索結果は、複数ページに渡って提示されることが多い。また、各ページに表示可能なFAQの数は、30個程度である。これに対して、チャットボットを利用したFAQシステムでは、FAQの検索結果に対して、ページの考え方がない場合が多い。ページの考え方がない場合、常に第1ページが検索結果となる。また、チャットボットの表示枠に並べられるFAQの数は、3~5個程度であることが多い。
表示枠に並べられるFAQの数が少なければ、ユーザは、一度に検索結果の内容を俯瞰できる。このため、チャットボットにおけるFAQの検索結果の表示は、表示枠での各FAQの細かい並びよりも、表示枠にユーザが期待するFAQが入っていることが重要であり、より検索精度の高いFAQの絞り込みが求められる。
ところが、既存の検索アルゴリズムでは、入力された質問に対して出力する回答候補を最適化することが難しい。例えば、TF(Term Frequency)-IDF(Inverse Document Frequency)を利用した検索アルゴリズムでは、特徴語に基づいた回答候補が出力される。
このため、TF-IDFを利用した検索アルゴリズムでは、特徴語が含まれていれば、過去に一度もアクセスされていないものについても回答候補として出力されてしまうことがある。過去に一度もアクセスされていない回答候補は、質問に対する有効な回答ではない可能性が高い。
そこで、本実施の形態では、過去の回答候補データへのアクセス履歴をもとに、質問データに対して出力する回答候補データを最適化する回答出力方法について説明する。以下、情報処理装置101の処理例について説明する。
(1)情報処理装置101は、質問データの入力を受け付けた場合、検索アルゴリズムを用いて質問データに対応する複数の回答候補データを、優先順位を含めて特定する。ここで、検索アルゴリズムは、既存のいかなる検索アルゴリズムであってもよく、例えば、類似度を利用したものがある。
類似度を利用した検索アルゴリズムでは、例えば、入力された質問データと、あらかじめ用意された質問データとの類似度を求め、類似度の高い質問データを含む回答候補データを特定する。類似度の計算には、例えば、TF-IDFが利用される。TF-IDFを利用した検索アルゴリズムでは、例えば、回答候補データに含まれる特徴語に基づいて、質問データに対応する回答候補データを特定する。
具体的には、例えば、情報処理装置101は、複数の回答候補データを特定する際に、優先順位に基づいて、複数の回答候補データの中から出力候補とする第1の回答候補データを特定する。また、情報処理装置101は、複数の回答候補データのうち、第1の回答候補データ以外の第2の回答候補データを特定する。
例えば、チャットボットを利用した既存のFAQシステムでは、第1の回答候補データは、表示枠に表示されるFAQであり、上位3~5個のFAQである。一方、第2の回答候補データは、表示枠に表示されずに切り捨てられていたFAQである。
図1の例では、入力された質問データXに対応する回答候補データ1~10が優先順位を含めて特定された場合を想定する。また、回答候補データ1~10のうち、回答候補データ1~3を「第1の回答候補データ」とし、回答候補データ4~10を「第2の回答候補データ」とする。
(2)情報処理装置101は、記憶部110を参照して、特定した複数の回答候補データのそれぞれにおけるアクセス履歴に基づいて、複数の回答候補データそれぞれに対する質問データによるアクセス率を算出する。ここで、記憶部110は、過去の回答候補データへのアクセス履歴を記憶する。
過去の回答候補データへのアクセス履歴は、例えば、過去に入力された質問データと、当該質問データが入力された際に出力された回答候補のうちの選択された回答候補データとの対応関係を示す情報である。また、質問データによるアクセス率は、質問データに対して回答候補データを出力した際に当該回答候補データが選択される割合の高さを示す指標値である。
図1の例では、回答候補データ1~10にそれぞれに対する質問データXによるアクセス率a1~a10が算出された場合を想定する。
(3)情報処理装置101は、算出したアクセス率に基づいて、複数の回答候補データの優先順位を調整する。具体的には、例えば、情報処理装置101は、算出したアクセス率に基づいて、第1の回答候補データの一部または全部を、第2の回答候補データの一部または全部と入れ替えて複数の回答候補データの優先順位を調整する。
より詳細に説明すると、例えば、情報処理装置101は、第1の回答候補データのうちアクセス率が第1の閾値を下回る回答候補データを、第2の回答候補データのうちアクセス率が第2の閾値を上回る回答候補データと入れ替える。第1および第2の閾値は、任意に設定可能である。例えば、第1および第2の閾値は、あらかじめ決められた固定値であってもよく、また、運用中のアクセス履歴に応じて動的に調整することにしてもよい。
図1の例では、第1の回答候補データのうちの回答候補データ2のアクセス率a2が第1の閾値を下回り、第2の回答候補データのうちの回答候補データ7のアクセス率a7が第2の閾値を上回る場合を想定する。この場合、情報処理装置101は、第1の回答候補データのうちの回答候補データ2を、第2の回答候補データのうちの回答候補データ7と入れ替える。
(4)情報処理装置101は、調整後の優先順位に基づいて複数の回答候補データの中から出力する1または複数の回答候補データを決定して出力する。具体的には、例えば、情報処理装置101は、アクセス率が第1の閾値を下回る回答候補データをアクセス率が第2の閾値を上回る回答候補データと入れ替えた後の第1の回答候補データを、出力する1または複数の回答候補データに決定する。そして、情報処理装置101は、決定した1または複数の回答候補データを、入力された質問データに対する回答候補データとして出力する。
図1の例では、第1の回答候補データのうちの回答候補データ2が回答候補データ7と入れ替えられた後の回答候補データ1,7,3が、出力する複数の回答候補データに決定される。そして、回答候補データ1,7,3が、入力された質問データXに対する回答候補データとして出力される。
このように、情報処理装置101によれば、既存の検索アルゴリズムにより特定した質問データに対応する複数の回答候補データそれぞれの優先順位を、過去のアクセス履歴に基づく質問データによるアクセス率に応じて調整することができる。これにより、例えば、質問データに対して出力されたときの過去のアクセス回数が極端に少ない回答候補データが出力されてしまうのを防いで、質問データに対する検索結果として出力する回答候補データを最適化することができる。
(回答出力システム200のシステム構成例)
つぎに、図1に示した情報処理装置101を含む回答出力システム200のシステム構成例について説明する。回答出力システム200は、例えば、チャットボットを利用したFAQシステム、検索システムに適用される。
図2は、回答出力システム200のシステム構成例を示す説明図である。図2において、回答出力システム200は、情報処理装置101と、複数の端末201(図2の例では、3台)と、を含む。回答出力システム200において、情報処理装置101および複数の端末201は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
ここで、情報処理装置101は、FAQマスタ220、チャットログDB(Database)230を有し、質問データに対応する回答候補データを出力する。以下の説明では、回答候補データとして「FAQ」を例に挙げて説明する場合がある。情報処理装置101は、例えば、サーバである。
なお、FAQマスタ220およびチャットログDB230の記憶内容については、図4および図5を用いて後述する。
端末201は、回答出力システム200のユーザが使用するコンピュータである。回答出力システム200のユーザは、例えば、FAQシステムの利用者である。端末201は、例えば、PC(Personal Computer)、スマートフォン、タブレット型PCなどである。
(情報処理装置101のハードウェア構成例)
図3は、情報処理装置101のハードウェア構成例を示すブロック図である。図3において、情報処理装置101は、CPU(Central Processing Unit)301と、メモリ302と、I/F(Interface)303と、ディスクドライブ304と、ディスク305と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、情報処理装置101の全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOS(Operating System)のプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
I/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、図2に示した端末201)に接続される。そして、I/F303は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。I/F303には、例えば、モデムやLANアダプタなどを採用することができる。
ディスクドライブ304は、CPU301の制御に従ってディスク305に対するデータのリード/ライトを制御する。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する。ディスク305としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
なお、情報処理装置101は、上述した構成部のほかに、例えば、SSD(Solid State Drive)、入力装置、ディスプレイ等を有することにしてもよい。また、図2に示した端末201についても、情報処理装置101と同様のハードウェア構成により実現することができる。ただし、端末201は、上述した構成部のほかに、入力装置、ディスプレイ等を有する。
(FAQマスタ220の記憶内容)
つぎに、図4を用いて、情報処理装置101が有するFAQマスタ220の記憶内容について説明する。FAQマスタ220は、例えば、図3に示したメモリ302、ディスク305などの記憶装置により実現される。
図4は、FAQマスタ220の記憶内容の一例を示す説明図である。図4において、FAQマスタ220は、FAQID、質問および回答のフィールドを有し、各フィールドに情報を設定することで、FAQ(例えば、FAQ400-1,400-2)をレコードとして記憶する。
ここで、FAQIDは、FAQを一意に識別する識別子である。質問は、FAQを形成する質問を示す質問データである。回答は、質問に対する回答を示す回答データである。質問および回答は、単語または複数の単語の組み合わせによって表現されてもよく、また、1または複数の文章によって表現されてもよい。
例えば、FAQ400-1は、FAQID「001」の質問「UPS使用中に警告音(アラーム音)が鳴るようになりました。」と、回答「バッテリーの電圧が一定値より下回った場合に、バッテリーの寿命交換を促す目的でランプが点灯し、・・・」と、を含む。
(チャットログDB230の記憶内容)
つぎに、図5を用いて、情報処理装置101が有するチャットログDB230の記憶内容について説明する。チャットログDB230は、例えば、図3に示したメモリ302、ディスク305などの記憶装置により実現される。
図5は、チャットログDB230の記憶内容の一例を示す説明図である。図5において、チャットログDB230は、日付、検索ワードおよび照会FAQのフィールドを有し、各フィールドに情報を設定することで、チャットログ(例えば、チャットログ500-1,500-2)をレコードとして記憶する。
ここで、日付は、FAQの検索が行われた日付である。例えば、日付は、端末201からの検索ワード(質問データ)の入力を受け付けた日付である。日付には、時刻まで含めることにしてもよい。検索ワードは、入力された質問データである。検索ワードは、単語または複数の単語の組み合わせであってもよいし、1または複数の文章であってもよい。
照会FAQは、検索ワードに対して出力されたFAQのうち選択操作を受け付けたFAQ、すなわち、照会(選択)されたFAQのFAQIDである。なお、検索ワードに対して出力されたFAQのうち、いずれのFAQも選択されなかった場合、または、「この中にない。」といった所望のFAQがないことを示す選択操作が行われた場合、照会FAQには「NotFound」が設定される。また、検索ワードに対して1件もFAQが出力されなかった、いわゆる、0件ヒットの場合も、照会FAQには「NotFound」が設定される。
例えば、チャットログ500-1は、日付「2018/3/22」に入力された検索ワード「UPS警告音」に対して出力されたFAQのうち照会FAQ「001」のFAQの選択操作が行われたことを示す。
(問い合わせ画面600の画面例)
つぎに、図2に示した端末201に表示される問い合わせ画面600の画面例について説明する。以下の説明では、端末201に表示される操作画面のボックス、ボタン等をユーザが選択する操作として、クリック操作を行う場合を例に挙げて説明する。
図6は、問い合わせ画面600の画面例を示す説明図である。図6において、問い合わせ画面600は、FAQを検索したり、FAQを照会したりする操作画面の一例である。問い合わせ画面600において、ボックス601をクリックすると、検索ワードを入力することができる。
また、問い合わせ画面600において、ボタン602をクリックすると、ボックス601に入力された検索ワードに対応するFAQを検索することができる。具体的には、ボタン602をクリックすると、ボックス601に入力された検索ワードが、端末201から情報処理装置101に送信される。
この結果、情報処理装置101から端末201に検索ワードに対する検索結果が送信され、検索されたFAQが表示枠610に優先順位に従ってリスト化されて表示される。ここでは、表示枠610には、優先順位が高い上位3件のFAQが表示される。また、ボックス620には、入力された検索ワードが表示される。
図6の例では、検索ワード「UPS警告音」に対応するFAQが検索された結果、上位3件のFAQ611~613が表示枠610に表示されている。問い合わせ画面600において、FAQ611~613のいずれかのFAQをクリックすると、当該FAQの内容を照会することができる。例えば、FAQ611をクリックすると、FAQ611の内容(質問データと回答データ)を照会することができる。
また、表示枠610に表示されたいずれかのFAQがクリックされると、当該FAQが選択されたことを示す選択結果が、端末201から情報処理装置101に送信される。ただし、FAQ614がクリックされると、所望のFAQがないことを示す選択操作が行われたことを示す未選択結果が、端末201から情報処理装置101に送信される。さらに、表示枠610に表示されたいずれのFAQもクリックされず、新たな検索ワードが入力されて次の検索が行われた場合も、所望のFAQがないことを示す選択操作が行われたことを示す未選択結果が、端末201から情報処理装置101に送信される。
(情報処理装置101の機能的構成例)
図7は、情報処理装置101の機能的構成例を示すブロック図である。図7において、情報処理装置101は、受付部701と、特定部702と、算出部703と、調整部704と、決定部705と、出力部706と、記憶部710と、を含む。受付部701~出力部706は制御部となる機能であり、具体的には、例えば、図3に示したメモリ302、ディスク305などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F303により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク305などの記憶装置に記憶される。記憶部710は、例えば、メモリ302、ディスク305などの記憶装置により実現される。具体的には、例えば、記憶部710は、FAQマスタ220、チャットログDB230などを記憶する。
受付部701は、質問データの入力を受け付ける。質問データの入力は、例えば、図6に示した問い合わせ画面600において行われる。具体的には、例えば、受付部701は、端末201から、問い合わせ画面600のボックス601に入力された検索ワードを受信することにより、受信した検索ワードを質問データとして入力を受け付ける。
以下の説明では、入力された質問データを「検索ワード」と表記する場合がある。
特定部702は、検索アルゴリズムを用いて、入力された検索ワードに対応する複数の回答候補データを、優先順位を含めて特定する。優先順位は、表示する際の順位である。入力された質問データに対応する複数の回答候補データのうち、優先順位が高いものが優先して表示される。
具体的には、例えば、特定部702は、図4に示したFAQマスタ220を参照して、TF-IDF法を用いて計算される類似度を利用した検索アルゴリズムを用いて、入力された検索ワードに対応する複数のFAQを、優先順位を含めて特定する。特定される複数のFAQは、例えば、類似度が閾値以上のFAQである。
より詳細に説明すると、例えば、特定部702は、入力された検索ワードを形態素解析して形態素に分割する。つぎに、特定部702は、検索アルゴリズムを用いて、FAQマスタ220から、分解した形態素に対応するFAQを検索する。そして、特定部702は、検索した検索結果(FAQ)を、優先順位を含めて特定する。
また、特定部702は、優先順位に基づいて、複数の回答候補データの中から第1の回答候補データと第2の回答候補データとを特定する。ここで、第1の回答候補データは、複数の回答候補データのうち、出力候補とする回答候補データである。第2の回答候補データは、複数の回答候補データのうち、第1の回答候補データ以外の回答候補データである。
具体的には、例えば、特定部702は、入力された検索ワードに対応する複数のFAQのうち、優先順位が高い上位N個のFAQを第1の回答候補データとして特定し、第1の回答候補データ以外の回答候補データを第2の回答候補データとして特定する。Nの値は、任意に設定可能であり、例えば、3~5程度に設定される。
以下の説明では、回答候補データを「FAQ」と表記する場合がある。また、第1の回答候補データを「第1候補」と表記し、第2の回答候補データを「第2候補」と表記する場合がある。
算出部703は、過去のFAQへのアクセス履歴を記憶する記憶部710を参照して、特定された複数のFAQのそれぞれにおけるアクセス履歴に基づいて、複数のFAQそれぞれに対する、入力された検索ワードにおけるアクセス効率を算出する。
具体的には、例えば、算出部703は、図5に示したチャットログDB230を参照して、特定された複数のFAQそれぞれに対する、入力された検索ワードにおけるアクセス効率を算出する。ここで、検索ワードにおけるアクセス効率は、図1で説明した質問データによるアクセス率に相当する指標値であり、検索ワードに対してFAQを出力した際に当該FAQが選択される割合の高さを示す。ここでは、アクセス効率が高いほど、FAQが選択される割合が高いことを示す。
なお、アクセス効率を算出する際に用いるチャットログは、例えば、チャットログDB230内の全てのチャットログであってもよく、また、所定期間内(例えば、日付が直近1年以内)のチャットログであってもよい。
より詳細に説明すると、例えば、算出部703は、チャットログDB230から、照会FAQにいずれかのFAQIDが設定されたチャットログを取得する。そして、算出部703は、取得したチャットログの検索ワードを形態素解析して、検索ワードを形態素に分割する。つぎに、算出部703は、分割した形態素ごとに、当該形態素を含む検索ワードと、照会FAQとを対応付けて表す動線分析元情報を生成する。
ここで、図8を用いて、動線分析元情報の具体例について説明する。
図8は、動線分析元情報の具体例を示す説明図である。図8において、動線分析元情報800は、形態素と検索ワードと照会FAQとを対応付けて表す情報である。形態素は、検索ワードを形態素解析して得られた形態素である。検索ワードは、入力された質問データである。照会FAQは、検索ワードに対して出力されたFAQのうち照会(選択)されたFAQのFAQIDである。
そして、算出部703は、生成した動線分析元情報に基づいて、特定された複数のFAQそれぞれに対する、入力された検索ワードにおけるアクセス効率を算出する。以下、図8に示したような動線分析元情報800に基づいて、検索ワードにおけるアクセス効率を算出する具体的な処理内容の一例について説明する。
まず、算出部703は、動線分析元情報800を参照して、特定された複数のFAQそれぞれについて、個別アクセス数および全体アクセス数を算出する。ここで、FAQの個別アクセス数は、今回入力された検索ワードの形態素を含む検索ワードが入力された際に当該FAQが選択された回数を示す。FAQの全体アクセス数は、今回入力された検索ワードだけでなく、全ての検索ワードを対象として過去に当該FAQが選択された回数を示す。
つぎに、算出部703は、特定された複数のFAQそれぞれについて、下記式(1)を用いて、算出した個別アクセス数および全体アクセス数に基づいて、検索ワードにおけるアクセス効率を算出する。ただし、全体アクセス数合計は、複数のFAQそれぞれの全体アクセス数の合計である。
アクセス効率=(個別アクセス数/全体アクセス数)×(全体アクセス数/全体アクセス数合計)・・・(1)
なお、上記式(1)における(全体アクセス数/全体アクセス数合計)は、全体アクセス数が少ないFAQについて、(個別アクセス数/全体アクセス数)に対してアクセス効率が過敏に反応しないようにするための調整項である。
算出されたアクセス効率は、例えば、図9に示すような動線分析結果テーブル900に記憶される。動線分析結果テーブル900は、例えば、メモリ302、ディスク305などの記憶装置により実現される。
ここで、図9を用いて、動線分析結果テーブル900の記憶内容について説明する。ここでは、検索ワード「キャンセル」が入力された場合を例に挙げて、動線分析結果テーブル900の記憶内容について説明する。
図9は、動線分析結果テーブル900の記憶内容の一例を示す説明図である。図9において、動線分析結果テーブル900は、優先順位、FAQID、個別アクセス数、全体アクセス数およびアクセス効率のフィールドを有し、各フィールドに情報を設定することで、動線分析結果900-1~900-10をレコードとして記憶する。
ここで、優先順位は、FAQの優先順位である。FAQIDは、FAQのFAQIDである。個別アクセス数は、FAQの個別アクセス数である。全体アクセス数は、FAQの全体アクセス数である。アクセス効率は、FAQの検索ワードにおけるアクセス効率である。
図7の説明に戻り、調整部704は、算出されたアクセス効率に基づいて、特定された複数のFAQの優先順位を調整する。具体的には、例えば、調整部704は、算出されたアクセス効率に基づいて、第1候補の一部または全部を、第2候補の一部または全部と入れ替えて、特定された複数のFAQの優先順位を調整する。
より詳細に説明すると、例えば、調整部704は、動線分析結果テーブル900を参照して、第1候補のうちアクセス効率がBP(Bad Parameter)値を下回るFAQを、第2候補のうちアクセス効率がGP(Good Parameter)値を上回るFAQと入れ替える。
BP値は、例えば、図1で説明した第1の閾値に対応する。GP値は、例えば、図1で説明した第2の閾値に対応する。BP値には、アクセス効率がBP値を下回っていると、アクセス効率が悪いと判断できる値に設定される。また、GP値には、アクセス効率がGPを上回っていると、アクセス効率がよいと判断できる値に設定される。
具体的には、例えば、BP値は、下記式(2)を用いて設定することができる。また、GP値は、下記式(3)を用いて設定することができる。ただし、Levelは、任意に設定可能な定数である。初期状態では、Levelには、例えば、初期値「0.8」が設定される。
BP値=第1候補のうちの最大アクセス効率×(1-Level)・・・(2)
GP値=第1候補のうちの最大アクセス効率×Level・・・(3)
また、調整部704は、第2候補のうちアクセス効率がGP値を上回るFAQがない場合には、第2候補のうちのいずれかのFAQをランダムに選択することにしてもよい。そして、調整部704は、第1候補のうちアクセス効率がBP値を下回るFAQを、ランダムに選択したFAQと入れ替えることにしてもよい。
なお、FAQをランダムに選択(無作為抽出)する方法としては、既存のいかなる方法を用いることにしてもよい。
決定部705は、調整後の優先順位に基づいて、複数のFAQの中から、出力対象の1または複数のFAQを決定する。具体的には、例えば、決定部705は、第1候補のうちのアクセス効率がBP値を下回るFAQを、第2候補のうちのアクセス効率がGP値を上回るFAQと入れ替えた後の第1候補を、出力対象のFAQに決定する。
出力部706は、決定された出力対象の1または複数のFAQを出力する。この際、調整部704による入れ替えによって出力すると決定された第2候補に含まれる1または複数のFAQの出力される順序位置は、例えば、入れ替え対象となって出力されなくなった第1候補に含まれるFAQの順序位置である。
具体的には、例えば、出力部706は、決定された出力対象のFAQを示す情報を、入力された検索ワードに対する検索結果として端末201に送信する。この結果、端末201において、例えば、図6に示した問い合わせ画面600の表示枠610に、出力対象のFAQが選択可能に表示される。
また、受付部701は、出力された1または複数のFAQのうち選択されたFAQを示す選択結果を受け付ける。FAQの選択は、例えば、図6に示した問い合わせ画面600において行われる。具体的には、例えば、受付部701は、端末201から、問い合わせ画面600において選択されたFAQを示す選択結果を受信することにより、当該選択結果を受け付ける。
受け付けた選択結果は、例えば、チャットログDB230に記憶される。具体的には、例えば、受付部701は、選択されたFAQを示す選択結果を受け付けると、当該選択結果を受け付けた日付と、入力された検索ワードと、選択されたFAQのFAQIDとを対応付けて、チャットログDB230に記憶する。
また、受付部701は、出力された1または複数のFAQのうちいずれのFAQも選択されなかったことを示す未選択結果を受け付ける。具体的には、例えば、受付部701は、端末201から、所望のFAQがないことを示す選択操作が行われたことを示す未選択結果を受信することにより、当該未選択結果を受け付ける。
受け付けた未選択結果は、例えば、図5に示したチャットログDB230に記憶される。具体的には、例えば、受付部701は、未選択結果を受け付けると、当該未選択結果を受け付けた日付と、入力された検索ワードと、NotFoundとを対応付けて、チャットログDB230に記憶する。
なお、入力された検索ワードに対応するFAQが1つも特定されなかった、いわゆる、0件ヒットの場合もチャットログDB230は更新される。この場合、例えば、特定部702は、検索ワードが入力された日付と、入力された検索ワードと、NotFoundとを対応付けて、チャットログDB230に記憶する。
また、調整部704は、特定された複数のFAQのアクセス履歴に基づいて、第1候補と第2候補との間で入れ替えるFAQの数を調整する。具体的には、例えば、調整部704は、複数のFAQのアクセス履歴からアクセス効率が減少していると判定した場合に、第1候補と第2候補との間で入れ替えるFAQの数を増加させることにしてもよい。
ここでのアクセス効率は、検索ワードに応じて出力したFAQに対するシステム全体としてのアクセス効率に相当する。また、調整部704は、例えば、複数のFAQのアクセス履歴からアクセス効率が増加していると判定した場合に、第1候補と第2候補との間で入れ替えるFAQの数を減少させることにしてもよい。
より詳細に説明すると、例えば、まず、調整部704は、出力対象のFAQが決定されると、第1候補の一部または全部を第2候補の一部または全部と入れ替えた結果に基づいて、入力された検索ワードにおける全体正解率を算出する。ここで、全体正解率は、検索ワードに対してどれだけ妥当なFAQ、すなわち、選択されるFAQを出力できたかを示す指標値である。
例えば、全体正解率は、検索ワードに対応する複数のFAQを、第1候補と第2候補とにどれだけ正しく分類することができたかによって表すことができる。具体的には、例えば、全体正解率は、下記式(4)を用いて、第1候補、第2候補についての混合行列の情報から求めることができる。
ただし、ACCは、全体正解率である。TPは、第1候補のうち第2候補のFAQと入れ替えられなかったFAQの数である。換言すれば、TPは、第1候補のうち、第1候補として正解であるといえるFAQの数である。TNは、第2候補のうち第1候補のFAQと入れ替えられなかったFAQの数である。換言すれば、TNは、第2候補のうち、第2候補として正解であるといえるFAQの数である。FNは、第1候補のうち第2候補のFAQと入れ替えられたFAQの数である。換言すれば、FNは、第1候補のうち、第1候補として不正解であるといえるFAQの数である。FPは、第2候補のうち第1候補のFAQと入れ替えられたFAQの数である。換言すれば、FPは、第2候補のうち、第2候補として不正解であるといえるFAQの数である。
ACC=(TP+TN)/(TP+TN+FN+FP)・・・(4)
ここで、図10および図11を用いて、全体正解率の算出例について説明する。
図10は、混合行列の具体例を示す説明図(その1)である。図10において、第1候補に含まれるFAQのFAQIDを「152,153,214」とする。また、第2候補に含まれるFAQのFAQIDを「213,154,245,151,215,143,142」とする。また、第1候補のFAQ152が、第2候補のFAQ151と入れ替えられたとする。
この場合、混合行列1000の情報は、「TP=2,FN=1,TN=6,FP=1」となる。このため、全体正解率は、「ACC=(2+6)/10=0.8」となる。
図11は、混合行列の具体例を示す説明図(その2)である。図11において、第1候補に含まれるFAQのFAQIDを「121,466,457」とする。また、第2候補に含まれるFAQのFAQIDを「19,455」とする。また、第1候補のFAQ457が、第2候補のFAQ19と入れ替えられた場合を想定する。
この場合、混合行列1100の情報は、「TP=2,FN=1,TN=1,FP=1」となる。このため、全体正解率は、「ACC=(2+1)/5=0.6」となる。
算出された全体正解率は、例えば、日付と対応付けて、図12に示すような全体正解率テーブル1200に記憶される。全体正解率テーブル1200は、例えば、メモリ302、ディスク305などの記憶装置により実現される。
図12は、全体正解率テーブル1200の記憶内容の一例を示す説明図である。図12において、全体正解率テーブル1200は、日付および全体正解率のフィールドを有し、各フィールドに情報を設定することで、全体正解率情報(例えば、全体正解率情報1200-1,1200-2)をレコードとして記憶する。
ここで、日付は、FAQの検索が行われた日付である。例えば、日付は、端末201からの検索ワード(質問データ)の入力を受け付けた日付である。全体正解率は、FAQの検索が行われたときの全体正解率である。例えば、全体正解率情報1200-1は、日付「2018/3/22」にFAQの検索が行われたときの全体正解率「0.8」を示す。すなわち、全体正解率は、FAQの検索単位に蓄積される。
つぎに、調整部704は、算出した全体正解率に基づいて、全体正解率の時系列変化を特定する。具体的には、例えば、調整部704は、図12に示した全体正解率テーブル1200を参照して、日ごとの全体正解率の平均値(平均全体正解率)を算出する。平均全体正解率を算出する際に用いる全体正解率は、日付が所定期間内(例えば、直近1年以内)の全体正解率であってもよい。
図13は、平均全体正解率の時系列変化を示す説明図である。図13において、グラフ1300は、日ごとの平均全体正解率の時系列変化を示すものであり、調整部704によって算出された日ごとの平均全体正解率を、直交座標系(縦軸:平均全体正解率、横軸:時間)にプロットしたものである。
調整部704は、算出した日ごとの平均全体正解率に基づいて、システム全体としてのアクセス効率の傾向を判定する。具体的には、例えば、調整部704は、算出した日ごとの平均全体正解率に基づき回帰分析を行って、全体正解率の時系列変化を表す直線(例えば、直線1301)の傾きを算出する。そして、調整部704は、算出した直線の傾きに基づいて、アクセス効率が上昇傾向(増加)にあるか、アクセス効率が下降傾向(減少)にあるかを判定する。
例えば、調整部704は、算出した直線の傾きが所定値α以上であれば、アクセス効率が上昇傾向にあると判定する。一方、調整部704は、算出した直線の傾きが所定値β以下であれば、アクセス効率が下降傾向にあると判定する。なお、所定値α,βは、任意に設定可能である。
そして、アクセス効率が下降傾向にあると判断した場合、調整部704は、上記式(2)および上記式(3)に含まれるLevelを下げる。これにより、第1候補と第2候補との間で入れ替えが積極的に行われるようにして、第1候補と第2候補との間で入れ替えるFAQの数を増加させることができる。
一方、アクセス効率が上昇傾向にあると判断した場合、調整部704は、上記式(2)および上記式(3)に含まれるLevelを上げる。これにより、第1候補と第2候補との間で入れ替えが行われるのを抑制して、第1候補と第2候補との間で入れ替えるFAQの数を減少させることができる。
なお、Levelの下げ幅、上げ幅は、あらかじめ設定されてメモリ302、ディスク305などの記憶装置に記憶されている。また、Levelの調整は、例えば、一定期間(例えば、1日、1週間、1ヶ月など)ごとに行われる。
(FAQのリランキング例)
つぎに、図14~図17を用いて、FAQのリランキング例について説明する。まず、図14および図15を用いて、検索ワード「キャンセル」が入力された場合のFAQのリランキング例について説明する。
図14は、検索ワードに対応する複数のFAQの一例を示す説明図(その1)である。また、図15は、FAQのリランキング例を示す説明図(その1)である。図14において、TF-IDF法を利用した検索アルゴリズムを用いて特定された、検索ワード「キャンセル」に対応する10個のFAQが優先順位に従って表示されている。
ここでは、第1候補は、優先順位が高い上位3個のFAQとする(N=3)。また、各FAQのアクセス効率は、各FAQの個別アクセス数、全体アクセス数から上記式(1)を用いて算出されているものとする。第1候補のうちの最大アクセス効率は、「0.10」である。また、Levelを「Level=0.8」とする。
この場合、BP値は、上記式(2)から、「BP=0.10×(1-0.8)=0.02」となる。このため、調整部704は、第1候補のうちアクセス効率がBP値を下回るFAQ152を入れ替え対象のFAQとして選択する。また、GP値は、上記式(3)から、「GP=0.10×0.8=0.08」となる。このため、調整部704は、第2候補のうちアクセス効率がGP値を上回るFAQ151を入れ替え対象のFAQとして選択する。
なお、第2候補のうちアクセス効率がGP値を上回るFAQが複数存在する場合がある。この場合、調整部704は、例えば、第2候補のうちアクセス効率が最大のFAQを入れ替え対象のFAQとして選択することにしてもよい。
そして、調整部704は、第1候補のうちのFAQ152を、第2候補のうちのFAQ151と入れ替える。この結果、FAQ152の優先順位が「1」から「7」になり、FAQ151の優先順位が「7」から「1」になり、検索ワード「キャンセル」に対応するFAQの優先順位が調整される。
この場合、決定部705は、第1候補のうちのFAQ152を、第2候補のうちのFAQ151と入れ替えた後の第1候補を、出力対象のFAQに決定する。この結果、図15に示すように、出力対象のFAQが、「FAQ152,FAQ153,FAQ214」から「FAQ151,FAQ153,FAQ214」に変化する。
これにより、優先順位「1」のFAQとして、個別アクセス数が「0」であったFAQ152を、個別アクセス数が「8」のFAQ151と入れ替えることができ、検索ワード「キャンセル」に対してより有効なFAQを出力することが可能となる。
つぎに、図16および図17を用いて、検索ワード「支払い方法は」が入力された場合のFAQのリランキング例について説明する。検索ワード「支払い方法は」は、複数の形態素(支払、方法)を含む検索ワードである。
図16は、検索ワードに対応する複数のFAQの一例を示す説明図(その2)である。また、図17は、FAQのリランキング例を示す説明図(その2)である。図16において、TF-IDF法を利用した検索アルゴリズムを用いて特定された、検索ワード「支払い方法は」に対応する10個のFAQが優先順位に従って表示されている。
ここでは、第1候補は、優先順位が高い上位3個のFAQとする(N=3)。また、各FAQのアクセス効率は、各FAQの個別アクセス数、全体アクセス数から上記式(1)を用いて算出されているものとする。第1候補のうちの最大アクセス効率は、「0.03」である。また、Levelを「Level=0.8」とする。
この場合、BP値は、上記式(2)から、「BP=0.03×(1-0.8)=0.006」となる。このため、調整部704は、第1候補のうちアクセス効率がBP値を下回るFAQ113,FAQ259を入れ替え対象のFAQとして選択する。また、GP値は、上記式(3)から、「GP=0.03×0.8=0.024」となる。
このため、調整部704は、第2候補のうちアクセス効率がGP値を上回るFAQ261を入れ替え対象のFAQとして選択する。そして、調整部704は、第1候補のうちのFAQ113を、第2候補のうちのFAQ261と入れ替える。この結果、FAQ113の優先順位が「1」から「8」になり、FAQ261の優先順位が「8」から「1」になる。
ここで、FAQ261以外には、第2候補のうちアクセス効率がGP値を上回るFAQが存在しない。この場合、調整部704は、第2候補のうちFAQ261を除く他のFAQからいずれかのFAQをランダムに選択する。ここでは、第2候補のうちのFAQ262が選択された場合を想定する。
そして、調整部704は、第1候補のうちのFAQ259を、第2候補のうちのFAQ262と入れ替える。この結果、FAQ259の優先順位が「3」から「4」になり、FAQ262の優先順位が「4」から「3」になり、検索ワード「支払い方法は」に対応するFAQの優先順位が調整される。
この場合、決定部705は、第1候補のうちのFAQ113,FAQ259を、第2候補のうちのFAQ261,FAQ262と入れ替えた後の第1候補を、出力対象のFAQに決定する。この結果、図17に示すように、出力対象のFAQが、「FAQ113,FAQ263,FAQ259」から「FAQ261,FAQ263,FAQ262」に変化する。
これにより、優先順位「1」のFAQとして、個別アクセス数が「0」であったFAQ113を、個別アクセス数が「2」のFAQ261と入れ替えることができ、検索ワード「支払い方法は」に対してより有効なFAQを出力することが可能となる。また、優先順位「3」のFAQとして、個別アクセス数が「0」であったFAQ259を、第2候補からランダムに選択したFAQ262と入れ替えてアクセス傾向が現れるのを待つことができる。
(情報処理装置101の回答出力処理手順)
つぎに、図18を用いて、情報処理装置101の回答出力処理手順について説明する。
図18は、情報処理装置101の回答出力処理手順の一例を示すフローチャートである。図18のフローチャートにおいて、まず、情報処理装置101は、検索ワードの入力を受け付けたか否かを判断する(ステップS1801)。ここで、情報処理装置101は、検索ワードの入力を受け付けるのを待つ(ステップS1801:No)。
そして、情報処理装置101は、検索ワードの入力を受け付けた場合(ステップS1801:Yes)、検索アルゴリズムを用いて、入力された検索ワードに対応する複数のFAQを、優先順位を含めて特定する(ステップS1802)。つぎに、情報処理装置101は、優先順位に基づいて、特定した複数のFAQの中から第1候補と第2候補とを特定する(ステップS1803)。
そして、情報処理装置101は、チャットログDB230を参照して、特定した複数のFAQそれぞれに対する、入力された検索ワードにおけるアクセス効率を算出する(ステップS1804)。つぎに、情報処理装置101は、上記式(2)および上記式(3)を用いて、算出したアクセス効率に基づいて、BP値およびGP値を算出する(ステップS1805)。
そして、情報処理装置101は、特定した複数のFAQの優先順位を調整する調整処理を実行する(ステップS1806)。なお、調整処理の具体的な処理手順については、図19を用いて後述する。
つぎに、情報処理装置101は、調整後の優先順位に基づいて、複数のFAQの中から、出力対象のFAQを決定する(ステップS1807)。そして、情報処理装置101は、決定した出力対象のFAQを、入力された検索ワードに対する検索結果として出力する(ステップS1808)。
つぎに、情報処理装置101は、ステップS1805の調整処理の結果に基づいて、検索ワードにおける全体正解率を算出する(ステップS1809)。そして、情報処理装置101は、当日の日付と対応付けて、算出した全体正解率を全体正解率テーブル1200に記憶して(ステップS1810)、本フローチャートによる一連の処理を終了する。
これにより、検索ワードに対する検索結果として出力するFAQを最適化することができる。なお、ステップS1802において、FAQが特定されなかった場合には、情報処理装置101は、入力された検索ワードに対してFAQが検索されなかったことを示す検索結果を出力する。また、FAQが1個のみ特定された場合には、情報処理装置101は、特定したFAQを入力された検索ワードに対する検索結果として出力する。
つぎに、ステップS1806の調整処理の具体的な処理手順について説明する。
図19は、調整処理の具体的処理手順の一例を示すフローチャートである。図19のフローチャートにおいて、まず、情報処理装置101は、第1候補から選択されていないアクセス効率がBP値を下回る未選択のFAQがあるか否かを判断する(ステップS1901)。
ここで、未選択のFAQがある場合(ステップS1901:Yes)、情報処理装置101は、第1候補から選択されていないアクセス効率がBP値を下回るFAQを選択する(ステップS1902)。つぎに、情報処理装置101は、第2候補のうちアクセス効率がGP値を上回るFAQを検索する(ステップS1903)。
そして、情報処理装置101は、アクセス効率がGP値を上回るFAQが検索されたか否かを判断する(ステップS1904)。ここで、FAQが検索された場合(ステップS1904:Yes)、情報処理装置101は、ステップS1902において選択したFAQを、ステップS1903において検索したFAQと入れ替えて(ステップS1905)、ステップS1901に戻る。
一方、FAQが検索されなかった場合(ステップS1904:No)、情報処理装置101は、第2候補からいずれかのFAQをランダムに選択する(ステップS1906)。そして、情報処理装置101は、ステップS1902において選択したFAQを、ステップS1906において選択したFAQと入れ替えて(ステップS1907)、ステップS1901に戻る。
また、ステップS1901において、アクセス効率がBP値を下回る未選択のFAQがない場合(ステップS1901:No)、情報処理装置101は、調整処理を呼び出したステップに戻る。これにより、検索ワードに応じて検索された複数のFAQの優先順位を調整することができる。
(情報処理装置101のLevel調整処理手順)
つぎに、図20を用いて、情報処理装置101のLevel調整処理手順について説明する。Level調整処理は、上記式(2)および上記式(3)に含まれるLevelを調整する処理であり、例えば、1日、1週間、1ヶ月などの一定期間ごとに行われる。
図20は、情報処理装置101のLevel調整処理手順の一例を示すフローチャートである。図20のフローチャートにおいて、まず、情報処理装置101は、全体正解率テーブル1200を参照して、日ごとの平均全体正解率を算出する(ステップS2001)。つぎに、情報処理装置101は、算出した日ごとの平均全体正解率に基づいて、回帰分析を実行する(ステップS2002)。
そして、情報処理装置101は、アクセス効率が上昇傾向にあるか否かを判断する(ステップS2003)。ここで、アクセス効率が上昇傾向にある場合(ステップS2003:Yes)、情報処理装置101は、あらかじめ設定された上げ幅分、Levelを上げて(ステップS2004)、本フローチャートによる一連の処理を終了する。
また、ステップS2003において、アクセス効率が上昇傾向にない場合(ステップS2003:No)、情報処理装置101は、アクセス効率が下降傾向にあるか否かを判断する(ステップS2005)。ここで、アクセス効率が下降傾向にある場合(ステップS2005:Yes)、情報処理装置101は、あらかじめ設定された下げ幅分、Levelを下げて(ステップS2006)、本フローチャートによる一連の処理を終了する。
また、ステップS2005において、アクセス効率が下降傾向にない場合(ステップS2005:No)、情報処理装置101は、本フローチャートによる一連の処理を終了する。
これにより、検索ワードに応じて出力したFAQに対するシステム全体のアクセス効率の傾向に基づいて、Levelを調整することができる。この結果、第1候補と第2候補との間でFAQの入れ替えが積極的に行われるようにしたり、第1候補と第2候補との間でFAQの入れ替えが頻繁に行われるのを抑制したりして、第1候補と第2候補との間で入れ替えるFAQの数を調整することが可能となる。
以上説明したように、実施の形態にかかる情報処理装置101によれば、検索ワードの入力を受け付けた場合、検索アルゴリズムを用いて検索ワードに対応する複数のFAQを、優先順位を含めて特定することができる。検索アルゴリズムは、例えば、TF-IDF法を用いて計算される類似度を利用したアルゴリズムである。また、情報処理装置101によれば、チャットログDB230を参照して、特定した複数のFAQそれぞれについて、検索ワードにおけるアクセス効率を算出することができる。そして、情報処理装置101によれば、算出した各FAQのアクセス効率に基づいて、複数のFAQの優先順位を調整し、調整後の優先順位に基づいて、複数のFAQの中から出力する1または複数のFAQを決定して出力することができる。
これにより、過去のアクセス履歴に基づく検索ワードにおけるアクセス効率に応じて、TF-IDF法等を利用した検索アルゴリズムにより特定したFAQの優先順位を調整して、検索ワードに対する検索結果として出力するFAQを最適化することができる。アクセス効率は、検索ワードに対してFAQを出力した際に当該FAQが選択される割合の高さを示す指標値である。例えば、今回入力された検索ワードと同一または類似の検索ワードが入力された際の過去のアクセス数が少ないFAQのアクセス効率は低くなる。
また、情報処理装置101によれば、複数のFAQを特定する際に、優先順位に基づいて、複数のFAQの中から出力候補とする第1候補を特定することができる。そして、情報処理装置101によれば、算出したアクセス効率に基づいて、第1候補の一部または全部を、複数のFAQのうち第1候補以外の第2候補の一部または全部と入れ替えて、複数のFAQの優先順位を調整することができる。具体的には、例えば、情報処理装置101は、第1候補のうちアクセス効率がBP値を下回るFAQを、第2候補のうちアクセス効率がGP値を上回るFAQと入れ替えることができる。
換言すれば、情報処理装置101によれば、提示した複数のFAQ(検索結果アイテム)について、選択操作が所定の基準を下回るFAQを不正解教師データとして機械学習して、1画面で表示される候補として選択されなかった他のFAQが検索による表示候補にあがりやすくすることができる。
これにより、第1候補のうちアクセス効率が悪いと判断されたFAQを、第2の候補のうちアクセス効率が良いと判断されたFAQと入れ替えて、検索ワードに対する検索結果として出力するFAQを最適化することができる。
また、情報処理装置101によれば、第2候補のうちアクセス効率がGP値を上回るFAQがない場合には、第2候補のうちのいずれかのFAQをランダムに選択し、第1候補のうちアクセス効率がBP値を下回るFAQを、選択したFAQと入れ替えることができる。
これにより、第1候補にアクセス効率が悪いFAQがあれば、第2候補にアクセス効率が良いFAQがなくても、第2候補のいずれかのFAQと強制的に入れ替えることができ、FAQの並びが固定化されるのを防いで学習効率を向上させることができる。このため、例えば、検索ワードに対するFAQのアクセス傾向が現れていないようなときに、ランダムに選択したFAQを出力してアクセス傾向が現れるのを待つことができる。
また、情報処理装置101によれば、複数のFAQのアクセス履歴に基づいて、第1候補と第2候補との間で入れ替えるFAQの数を調整することができる。具体的には、例えば、情報処理装置101は、複数のFAQのアクセス履歴から、アクセス効率が下降していると判定した場合に、第1候補と第2候補との間で入れ替えるFAQの数を増加させることができる。また、情報処理装置101は、複数のFAQのアクセス履歴から、アクセス効率が上昇していると判定した場合に、第1候補と第2候補との間で入れ替えるFAQの数を減少させることができる。
これにより、検索ワードに応じて出力したFAQに対するシステム全体のアクセス効率の傾向に基づいて、第1候補と第2候補との間で入れ替えるFAQの数を調整することができる。例えば、システム全体のアクセス効率が下降傾向にあれば、第1候補と第2候補との間でFAQの入れ替えが積極的に行われるように調整することができる。一方、システム全体のアクセス効率が上昇傾向にあれば、第1候補と第2候補との間でFAQの入れ替えが頻繁に行われないように調整することができる。
また、情報処理装置101によれば、出力する1または複数のFAQを決定すると、その都度、第1候補の一部または全部を第2候補の一部または全部と入れ替えた結果に基づいて、検索ワードにおける全体正解率を算出することができる。そして、情報処理装置101によれば、算出した全体正解率の時系列変化に基づいて、アクセス効率が下降または上昇しているかを判定することができる。
これにより、検索ワードに応じて出力したFAQに対するシステム全体のアクセス効率の傾向を判定することができる。
また、情報処理装置101によれば、入れ替えによって出力すると決定された第2候補に含まれる1または複数のFAQの出力される順序位置を、入れ替え対象となって出力されなくなった第1候補に含まれるFAQの順序位置とすることができる。
これらのことから、実施の形態にかかる情報処理装置101によれば、検索ワードに対する検索結果として出力するFAQを、検索時点での各FAQのアクセス効率をもとに最適化することができる。これにより、例えば、過去に一度もアクセスされていないようなFAQが出力されるのを防ぐことができる。このため、表示枠に並べられるFAQの数が少ないチャットボット向けのFAQシステムであっても、ユーザが期待するFAQを高精度に絞り込むことが可能となり、ユーザの利便性の向上を図ることができる。
なお、上述した説明では、FAQの検索結果を複数ページに渡って配置しない、すなわち、FAQの検索結果に対して、ページの考え方を採用しない場合を例に挙げて説明したが、これに限らない。例えば、回答出力システム200において、FAQの検索結果を複数ページに渡って配置することにしてもよい。
例えば、図6に示したような問い合わせ画面600において、ページの切り替えを行うためのボタンを設け、優先順位が高い上位N件のFAQを1ページ目に表示し、それ以外のFAQについては、優先順位に従って2ページ目に表示することにしてもよい。
この場合、情報処理装置101は、調整部704により、複数ページに渡って配置した複数の検索結果アイテムのうち、第2ページ以降のページに配置した検索結果アイテムのそれぞれに対する過去の選択操作に応じて正解の検索結果アイテムを特定する。
ここで、複数ページに渡って配置した複数の検索結果アイテムのうち、第1ページに配置した検索結果アイテムは、上述した第1候補に対応する。第2ページ以降に配置した検索結果アイテムは、上述した第2候補に対応する。また、正解の検索結果アイテムは、第1候補のFAQと入れ替える第2候補のFAQに対応する。具体的には、例えば、調整部704は、動線分析結果テーブル900を参照して、第2ページ以降のページに配置したFAQのうちアクセス効率がGP値を上回るFAQを、正解の検索結果アイテムとして特定する。
そして、情報処理装置101は、調整部704により、特定した該正解の検索結果アイテムを正解教師データとして第1の機械学習を実行する。具体的には、例えば、調整部704は、特定した該正解の検索結果アイテムを正解教師データとして、第1ページに配置した検索結果アイテムと入れ替えて、複数のFAQの優先順位を調整する。第1ページの入れ替え対象となる検索結果アイテムは、例えば、アクセス効率がBP値を下回るFAQである。
つぎに、情報処理装置101は、決定部705により、第1の機械学習の学習結果を適用する。そして、情報処理装置101は、出力部706により、1画面に収まる数に制限した複数の検索結果アイテムを表示する。表示される複数の検索結果アイテムは、例えば、図6に示したFAQ611~613である。具体的には、例えば、決定部705は、第1ページに配置した検索結果アイテムを、出力対象のFAQに決定する。そして、出力部706は、決定された出力対象のFAQを示す情報を、検索ワードに対する検索結果として端末201に送信する。
また、情報処理装置101は、調整部704により、表示した該複数の検索結果アイテムの選択操作に応じて不正解の検索結果アイテムを特定する。具体的には、例えば、調整部704は、動線分析結果テーブル900を参照して、第1ページに配置したFAQのうちアクセス効率がBP値を下回るFAQを、不正解の検索結果アイテムとして特定する。
そして、情報処理装置101は、調整部704により、特定した該不正解の検索結果アイテムを不正解教師データとして第2の機械学習を実行する。具体的には、例えば、調整部704は、特定した該不正解の検索結果アイテムを不正解教師データとして、第2ページ以降のページに配置した検索結果アイテムと入れ替えて、複数のFAQの優先順位を調整する。第2ページ以降のページの入れ替え対象となる検索結果アイテムは、例えば、アクセス効率がGP値を上回るFAQである。
つぎに、情報処理装置101は、決定部705により、第2の機械学習の学習結果を適用して、検索結果アイテムを選択する。そして、情報処理装置101は、出力部706により、選択された検索結果アイテムを表示する。具体的には、例えば、決定部705は、第1ページに配置した検索結果アイテムを、出力対象のFAQに決定する。そして、出力部706は、決定された出力対象のFAQを示す情報を、検索ワードに対する検索結果として端末201に送信する。
これにより、FAQの検索結果を複数ページに渡って配置するFAQシステムであっても、過去のアクセス履歴に基づく検索ワードにおけるアクセス効率に応じて、検索ワードに対する検索結果として出力するFAQを最適化することができる。
なお、本実施の形態で説明した回答出力方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本回答出力プログラム、機械学習プログラムは、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本回答出力プログラム、機械学習プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)質問データの入力を受け付けた場合、検索アルゴリズムを用いて前記質問データに対応する複数の回答候補データを、優先順位を含めて特定し、
過去の回答候補データへのアクセス履歴を記憶する記憶部を参照して、特定した前記複数の回答候補データのそれぞれにおけるアクセス履歴に基づいて、前記複数の回答候補データそれぞれに対する前記質問データによるアクセス率を算出し、
算出した前記アクセス率に基づいて前記複数の回答候補データの優先順位を調整し、
調整後の優先順位に基づいて前記複数の回答候補データの中から出力する1または複数の回答候補データを決定して出力する、
処理をコンピュータに実行させることを特徴とする回答出力プログラム。
(付記2)前記複数の回答候補データを特定する際に、優先順位に基づいて前記複数の回答候補データの中から出力候補とする第1の回答候補データを特定し、
算出した前記アクセス率に基づいて出力候補とする前記第1の回答候補データの一部または全部を、前記複数の回答候補データのうち前記第1の回答候補データ以外の第2の回答候補データの一部または全部と入れ替えて前記複数の回答候補データの優先順位を調整する、
ことを特徴とする付記1に記載の回答出力プログラム。
(付記3)前記第1の回答候補データを特定する際に、前記複数の回答候補データのアクセス履歴に基づいて前記第1の回答候補データと前記第2の回答候補データとの間で入れ替える回答候補データの数を調整する、
ことを特徴とする付記2に記載の回答出力プログラム。
(付記4)前記複数の回答候補データのアクセス履歴から前記アクセス率が減少していると判定した場合に、前記第1の回答候補データと前記第2の回答候補データとの間で入れ替える回答候補データの数を増加させる、
ことを特徴とする付記3に記載の回答出力プログラム。
(付記5)前記複数の回答候補データのアクセス履歴から前記アクセス率が増加していると判定した場合に、前記第1の回答候補データと前記第2の回答候補データとの間で入れ替える回答候補データの数を減少させる、
ことを特徴とする付記3に記載の回答出力プログラム。
(付記6)前記複数の回答候補データの中から出力する1または複数の回答候補データを決定して出力する際に、入れ替えによって出力すると決定された前記第2の回答候補データに含まれる1または複数の回答候補データの出力される順序位置は、入れ替え対象となって出力されなくなった前記第1の回答候補データに含まれる回答候補データの順序位置である、
ことを特徴とする付記2に記載の回答出力プログラム。
(付記7)前記検索アルゴリズムは、回答候補データに含まれる特徴語に基づいて、前記質問データに対応する回答候補データを特定するアルゴリズムである、
ことを特徴とする付記1に記載の回答出力プログラム。
(付記8)前記第1の回答候補データのうちアクセス率が第1の閾値を下回る回答候補データを、前記第2の回答候補データのうちアクセス率が第2の閾値を上回る回答候補データと入れ替える、ことを特徴とする付記2に記載の回答出力プログラム。
(付記9)前記第2の回答候補データのうちアクセス率が前記第2の閾値を上回る回答候補データがない場合には、前記第2の回答候補データのうちのいずれかの回答候補データをランダムに選択し、
前記第1の回答候補データのうちアクセス率が第1の閾値を下回る回答候補データを、選択した前記回答候補データと入れ替える、ことを特徴とする付記8に記載の回答出力プログラム。
(付記10)出力する1または複数の回答候補データを決定すると、前記第1の回答候補データの一部または全部を前記第2の回答候補データの一部または全部と入れ替えた結果に基づいて、前記質問データにおける全体正解率を算出し、
算出した前記全体正解率の時系列変化に基づいて、前記アクセス率が減少または増加しているかを判定する、
ことを特徴とする付記4または5に記載の回答出力プログラム。
(付記11)質問データの入力を受け付けた場合、検索アルゴリズムを用いて前記質問データに対応する複数の回答候補データを、優先順位を含めて特定し、
過去の回答候補データへのアクセス履歴を記憶する記憶部を参照して、特定した前記複数の回答候補データのそれぞれにおけるアクセス履歴に基づいて、前記複数の回答候補データそれぞれに対する前記質問データによるアクセス率を算出し、
算出した前記アクセス率に基づいて前記複数の回答候補データの優先順位を調整し、
調整後の優先順位に基づいて前記複数の回答候補データの中から出力する1または複数の回答候補データを決定して出力する、
処理をコンピュータが実行することを特徴とする回答出力方法。
(付記12)質問データの入力を受け付けた場合、検索アルゴリズムを用いて前記質問データに対応する複数の回答候補データを、優先順位を含めて特定し、
過去の回答候補データへのアクセス履歴を記憶する記憶部を参照して、特定した前記複数の回答候補データのそれぞれにおけるアクセス履歴に基づいて、前記複数の回答候補データそれぞれに対する前記質問データによるアクセス率を算出し、
算出した前記アクセス率に基づいて前記複数の回答候補データの優先順位を調整し、
調整後の優先順位に基づいて前記複数の回答候補データの中から出力する1または複数の回答候補データを決定して出力する、
制御部を有することを特徴とする情報処理装置。
(付記13)複数ページに渡って配置した複数の検索結果アイテムのうち、第2ページ以降のページに配置した検索結果アイテムのそれぞれに対する過去の選択操作に応じて正解の検索結果アイテムを特定して、特定した該正解の検索結果アイテムを正解教師データとして第1の機械学習を実行し、
前記第1の機械学習の学習結果を適用して、1画面に収まる数に制限した複数の検索結果アイテムを表示し、
表示した該複数の検索結果アイテムの選択操作に応じて不正解の検索結果アイテムを特定して、特定した該不正解の検索結果アイテムを不正解教師データとして第2の機械学習を実行し、
前記第2の機械学習の学習結果を適用して、検索結果アイテムを選択する、
処理をコンピュータに実行させることを特徴とする機械学習プログラム。
(付記14)検索結果を複数ページに渡って表示可能な状況における検索結果アイテムの選択操作に応じて正解検索結果アイテムを特定して、正解教師データとして機械学習された検索システムで、1画面で表示可能な数に制限して検索結果アイテムを表示可能な状況において検索処理を実行させた場合に、前記1画面で表示された検索アイテムに対する選択操作に応じて不正解検索結果アイテムを特定して、不正解教師データとして機械学習する、
処理をコンピュータに実行させることを特徴とする機械学習プログラム。
(付記15)1画面で表示可能な数に制限して複数の検索結果アイテムを選択して提示し、
提示した前記複数の検索結果アイテムについて、選択操作が所定の基準を下回る検索結果アイテムを不正解教師データとして機械学習して、前記1画面で表示される候補として選択されなかった他の検索結果アイテムが検索による表示候補にあがりやすくする、
処理をコンピュータに実行させることを特徴とする機械学習プログラム。