(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-30
(45)【発行日】2024-10-08
(54)【発明の名称】処理装置、処理方法、およびプログラム
(51)【国際特許分類】
G06F 16/90 20190101AFI20241001BHJP
G06F 16/906 20190101ALI20241001BHJP
【FI】
G06F16/90 100
G06F16/906
(21)【出願番号】P 2023042958
(22)【出願日】2023-03-17
【審査請求日】2023-03-17
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】鈴木 亮
(72)【発明者】
【氏名】戸成 健
(72)【発明者】
【氏名】岡村 拓実
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】特開2018-185690(JP,A)
【文献】特開2021-010966(JP,A)
【文献】特開2018-206307(JP,A)
【文献】中国特許出願公開第113297360(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
質問文、ラベル、および回答文を含むすべての学習データに対して、前記質問文についてのベクトルを含む第一の文章ベクトルを生成し、前記第一の文章ベクトルに基づいて、前記質問文を入力した場合に入力した前記質問文に対応するラベルを出力する第1モデルを生成する第1処理部と、
前記すべての学習データをラベルごとに分割し、分割したラベルごとの学習データに含まれる質問文について単語ごとのベクトルを含む第二の文章ベクトルを生成し、前記第二の文章ベクトルを第2モデルとする第2処理部と、
前記第1モデルおよび前記第2モデルに基づいて、新たな質問文に対して推奨される回答文および推奨される回答文の推奨理由を生成し、生成した前記推奨される回答文および前記推奨理由を提示する第3処理部と、
を備える処理装置。
【請求項2】
前記第2処理部は、
前記第2モデルに基づいて、前記分割したラベルごとの学習データに含まれる質問文と、前記新たな質問文との類似度を算出し、
前記第3処理部は、前記類似度に基づいて、前記推奨される回答文および前記推奨理由を提示する、
請求項1に記載の処理装置。
【請求項3】
前記第2処理部は、
前記分割したラベルごとの学習データに含まれる質問文における単語ごとのベクトルと、前記新たな質問文における単語ごとのベクトルとについて、コサイン類似度またはユークリッドノルムを用いて類似度を算出し、
前記第3処理部は、前記第2処理部が算出した類似度への寄与の度合いの高い順に前記単語を前記推奨理由として提示する、
請求項1に記載の処理装置。
【請求項4】
前記推奨される回答文および前記推奨理由のうち、無用な回答文および推奨理由に関連するデータを前記学習データから削除する第4処理部、
を備える請求項1に記載の処理装置。
【請求項5】
前記推奨される回答文および前記推奨理由のうち、有用な回答文および推奨理由を前記第1モデルおよび前記第2モデルに追加する第5処理部、
を備える請求項1から請求項4の何れか一項に記載の処理装置。
【請求項6】
処理装置が実行する処理方法であって、
質問文、ラベル、および回答文を含むすべての学習データに対して、前記質問文についてのベクトルを含む第一の文章ベクトルを生成し、前記第一の文章ベクトルに基づいて、前記質問文を入力した場合に入力した前記質問文に対応するラベルを出力する第1モデルを生成することと、
前記すべての学習データをラベルごとに分割し、分割したラベルごとの学習データに含まれる質問文について単語ごとのベクトルを含む第二の文章ベクトルを生成し、前記第二の文章ベクトルを第2モデルとすることと、
前記第1モデルおよび前記第2モデルに基づいて、新たな質問文に対して推奨される回答文および推奨される回答文の推奨理由を生成し、生成した前記推奨される回答文および前記推奨理由を提示することと、
を含む処理方法。
【請求項7】
コンピュータに、
質問文、ラベル、および回答文を含むすべての学習データに対して、前記質問文についてのベクトルを含む第一の文章ベクトルを生成し、前記第一の文章ベクトルに基づいて、前記質問文を入力した場合に入力した前記質問文に対応するラベルを出力する第1モデルを生成することと、
前記すべての学習データをラベルごとに分割し、分割したラベルごとの学習データに含まれる質問文について単語ごとのベクトルを含む第二の文章ベクトルを生成し、前記第二の文章ベクトルを第2モデルとすることと、
前記第1モデルおよび前記第2モデルに基づいて、新たな質問文に対して推奨される回答文および推奨される回答文の推奨理由を生成し、生成した前記推奨される回答文および前記推奨理由を提示することと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、処理装置、処理方法、およびプログラムに関する。
【背景技術】
【0002】
オンラインショッピングなどの普及により、ユーザがオペレータに対して質問し、オペレータが回答するような機会が増加することが予想される。特許文献1には、関連する技術として、質問に対応する応答を提示する提示装置に関する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、特許文献1に記載の装置のように、質問に対応する応答を提示する場合、その提示に応じて回答するオペレータは、推奨される回答文に基づいて回答することになる。しかしながら、オペレータは、その回答文が推奨された理由を知ることなく回答するため、不適切な回答をしている可能性が高くなる。そのため、質問に対応する応答を提示する場合に、オペレータが不適切な回答をする可能性を低減させることのできる技術が求められている。
【0005】
本開示の各態様は、上記の課題を解決することのできる処理装置、処理方法、およびプログラムを提供することを目的の1つとしている。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本開示の一態様によれば、処理装置は、質問文、ラベル、および回答文を含むすべての学習データに対して、前記質問文についてのベクトルを含む第一の文章ベクトルを生成し、前記第一の文章ベクトルに基づいて、前記質問文を入力した場合に入力した前記質問文に対応するラベルを出力する第1モデルを生成する第1処理部と、前記すべての学習データをラベルごとに分割し、分割したラベルごとの学習データに含まれる質問文について単語ごとのベクトルを含む第二の文章ベクトルを生成し、前記第二の文章ベクトルを第2モデルとする第2処理部と、前記第1モデルおよび前記第2モデルに基づいて、新たな質問文に対して推奨される回答文および推奨される回答文の推奨理由を生成し、生成した前記推奨される回答文および前記推奨理由を提示する第3処理部と、を備える。
【0007】
上記目的を達成するために、本開示の別の態様によれば、処理方法は、処理装置が実行する処理方法であって、質問文、ラベル、および回答文を含むすべての学習データに対して、前記質問文についてのベクトルを含む第一の文章ベクトルを生成し、前記第一の文章ベクトルに基づいて、前記質問文を入力した場合に入力した前記質問文に対応するラベルを出力する第1モデルを生成することと、前記すべての学習データをラベルごとに分割し、分割したラベルごとの学習データに含まれる質問文について単語ごとのベクトルを含む第二の文章ベクトルを生成し、前記第二の文章ベクトルを第2モデルとすることと、前記第1モデルおよび前記第2モデルに基づいて、新たな質問文に対して推奨される回答文および推奨される回答文の推奨理由を生成し、生成した前記推奨される回答文および前記推奨理由を提示することと、を含む。
【0008】
上記目的を達成するために、本開示の別の態様によれば、プログラムは、コンピュータに、質問文、ラベル、および回答文を含むすべての学習データに対して、前記質問文についてのベクトルを含む第一の文章ベクトルを生成し、前記第一の文章ベクトルに基づいて、前記質問文を入力した場合に入力した前記質問文に対応するラベルを出力する第1モデルを生成することと、前記すべての学習データをラベルごとに分割し、分割したラベルごとの学習データに含まれる質問文について単語ごとのベクトルを含む第二の文章ベクトルを生成し、前記第二の文章ベクトルを第2モデルとすることと、前記第1モデルおよび前記第2モデルに基づいて、新たな質問文に対して推奨される回答文および推奨される回答文の推奨理由を生成し、生成した前記推奨される回答文および前記推奨理由を提示することと、を実行させる。
【発明の効果】
【0009】
本開示の各態様によれば、質問に対応する応答を提示する場合に、オペレータが不適切な回答をする可能性を低減させることができる。
【図面の簡単な説明】
【0010】
【
図1】本開示の一実施形態による応対システムの構成の一例を示す図である。
【
図2】本開示の一実施形態における応対履歴データの一例を示す図である。
【
図3】本開示の一実施形態によるモデルアップデート部の構成の一例を示す図である。
【
図4】本開示の一実施形態による応対システムの処理フローの第1の例を示す図である。
【
図5】本開示の一実施形態による応対システムの処理フローの第2の例を示す図である。
【
図6】本開示の一実施形態による応対システムの処理フローの第3の例を示す図である。
【
図7】本開示の一実施形態による応対システムの処理フローの第4の例を示す図である。
【
図8】本開示の一実施形態による応対システムの処理フローの第5の例を示す図である。
【
図9】本開示の一実施形態における他に何件同じラベルの事象が存在するかの表示例を示す図である。
【
図10】本開示の一実施形態における並び替えた後の各項aibiに対応する語句とその項の数値の一例を示す図である。
【
図11】本開示の一実施形態におけるリコメンド結果の一例を示す図である。
【
図12】本開示の実施形態による処理装置の最小構成を示す図である。
【
図13】本開示の実施形態による最小構成の処理装置の処理フローの一例を示す図である。
【
図14】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら実施形態について詳しく説明する。
<実施形態>
本開示の一実施形態による応対システム1(処理装置の一例)は、推奨される回答文および推奨される回答文の推奨理由を提示するシステムである。
【0012】
図1は、本開示の一実施形態による応対システム1の構成の一例を示す図である。応対システム1は、
図1に示すように、端末装置10、応対履歴データベース20(以下、応対履歴DB20と記載)、応対提示装置30を備える。
【0013】
端末装置10は、コールセンターのオペレータが操作する端末装置である。端末装置10は、オペレータが電話応対やメール応対などの質疑応答の履歴情報を応対履歴DB20に記録する。
【0014】
応対履歴DB20は、オペレータが応対した質疑応答の履歴情報を格納する。応対履歴DB20における履歴情報は、オペレータが質疑応答を実施する度に蓄積される。
【0015】
応対提示装置30は、学習部100、リコメンド部200、モデル記憶部300を備える。学習部100は、クラス分類モデルであるクラス分類器を学習する。学習部100は、
図1に示すように、前処理部110、第一特徴抽出部120、クラス分類モデル生成部130、第二特徴抽出部140、およびリコメンドモデル生成部150を備える。
【0016】
前処理部110は、応対履歴DB20におけるデータ中の質問文T10のすべてを取得する。前処理部110は、取得したすべての質問文T10を用いて形態素解析を行う。
図2は、本開示の一実施形態における応対履歴データの一例を示す図である。応対履歴データは、
図2に示すように、質問文T10、分類T20、および回答文T30を含む。例えば、質問文T10は、
図2に示すように、「BIOS設定への入り方がわからない」、「BIOSアップデート方法が知りたい」、「WiFiの接続方法がわからない」、「アプリケーションプログラムの使用方法がわからない」などの文である。なお、WiFiは、登録商標である。また、例えば、前述のような質問文T10の場合、質問文T10がBIOSに関連する質問文であるため、分類T20は、
図2に示すように、「BIOS」、「WiFi」、「アプリケーションプログラム」などである。分類T20は、質問文T10に関連する、機種名、ユニット名、機能名、障害や不具合の大分類などを記載する。なお、分類T20は、クラスラベルとも呼ばれる。また、例えば、前述のような質問文T10の場合、回答文T30は、「起動中にF2を押しっぱなしにする」、「romファイルをダウンロードして・・・」、「画面右下の○○のアイコンをクリックし、・・・」、「画面左下の××アイコンをクリックするとアプリケーションプログラム一覧が表示され、選択する」などの質問文に対する回答を示す文である。応対履歴データは、学習データとして使用される。
【0017】
第一特徴抽出部120は、前処理部110による形態素解析のすべての結果から第一の文章ベクトルを作成する。形態素解析のすべての結果から第一の文章ベクトルを作成する手法としては、TF-IDF(Term Frequency-Inverse Document Frequency)を使ったもの、BERT(Bidirectional Encoder Representations from Transformers)を用いたもの、Word2vec(Word to Vector)を用いたものなどが挙げられる。ただし、文章ベクトルは、どのような手法を用いて作成したものであってもよい。
【0018】
クラス分類モデル生成部130は、第一特徴抽出部120が作成した第一の文章ベクトルと応対履歴DB20に付与された分類T20(クラスラベル)とを用いてクラス分類器を学習する。例えば、クラス分類モデル生成部130は、第一特徴抽出部120が作成した第一の文章ベクトルをクラス分類器に入力した場合にその入力した第一の文章ベクトルに対応する分類が出力されるようにクラス分類モデルを学習する。クラス分類器としては、SVM(Support Vector Machine)、深層学習を用いたものなどがある。ただし、クラス分類器は、どのような手法を用いたものであってもよい。クラス分類モデル生成部130は、生成したクラス分類器をクラス分類モデル310としてモデル記憶部300に記録する。
【0019】
第二特徴抽出部140は、分類T20が示すラベルの種類ごとに学習データを分割する。例えば、
図2に示す分類T20の場合、第二特徴抽出部140は、BIOS、WiFi、アプリケーションプログラムに学習データを分割する。第二特徴抽出部140は、分割した学習データのそれぞれに対して、形態素解析の結果から第二の文章ベクトルを作成する。形態素解析の結果から第二の文章ベクトルを作成する手法としては、第一の文章ベクトルを作成する手法と同様に、TF-IDFを使ったもの、Word2vecを用いたものなどが挙げられる。第二の文章ベクトルは、第一の文章ベクトルと異なる手法を用いたものであってもよい。ただし、リコメンド理由を提示するため、TF-IDFベクトルのように単語が成分となっている文章ベクトルの手法を用いる必要がある。つまり、第一の文章ベクトルは、ラベルの種類に関係なくすべての分類T20に対して生成される。それに対して、第二の文章ベクトルは、ラベルの種類ごとの分類T20に対して生成される。
【0020】
リコメンドモデル生成部150は、第二特徴抽出部140が作成した第二の文章ベクトルをリコメンドモデル320としてモデル記憶部300に記録する。つまり、ここでのリコメンドモデル320は、ベクトルである。
【0021】
リコメンド部200は、新たな質問文に対する回答文をリコメンドする。リコメンド部200は、
図1に示すように、前処理部210、第一特徴抽出部220、クラス分類実行部230、第二特徴抽出部240、リコメンド生成部250、リコメンド理由生成部260、リコメンド出力部270、およびモデルアップデート部280を備える。
【0022】
前処理部210は、応対提示装置30に入力された新たな質疑応答データを取得する。前処理部210は、取得した質疑応答データにおける新たな質問文を用いて形態素解析を行う。
【0023】
第一特徴抽出部220は、前処理部210による形態素解析の結果から第一の文章ベクトルを作成する。文章ベクトルとしては、TF-IDFを使ったもの、BERTを用いたもの、Word2vecを用いたものなどがある。ただし、文章ベクトルは、どのような手法を用いたものであってもよい。
【0024】
クラス分類実行部230は、モデル記憶部300に格納されたクラス分類モデル310をロードする。クラス分類実行部230は、第一特徴抽出部220が作成した第一の文章ベクトルを、ロードしたクラス分類モデル310に入力し、クラス分類を実行する。
【0025】
第二特徴抽出部240は、前処理部210が取得した新たな質疑応答データに対して、第二の文章ベクトルを作成する。なお、第二特徴抽出部240は、第二特徴抽出部140と同様の方法を用いて第二の文章ベクトルを作成すればよい。
【0026】
リコメンド生成部250は、モデル記憶部300に格納されたリコメンドモデル320をロードする。リコメンド生成部250は、クラス分類実行部230が実行したクラス分類の結果で得られたクラスに対応する第二の文章ベクトルと、ロードしたリコメンドモデル320に格納された第二の文章ベクトルとの類似度を計算する。類似度としては、コサイン類似度(Cosine Similarity)、ユークリッドノルムなどが挙げられる。例えば、リコメンド生成部250は、クラス分類実行部230が実行したクラス分類の結果で得られたクラスに対応する第二の文章ベクトルをベクトルaとする。また、リコメンド生成部250は、ロードしたリコメンドモデル320に格納された第二の文章ベクトルをベクトルbとする。そして、リコメンド生成部250は、後述するリコメンド理由として提示する情報の生成に使用する式(1)や式(2)と同様の式を用いて演算を実行することにより類似度を計算する。リコメンド生成部250は、類似度の高い応答履歴DB20の回答文T30をリコメンド情報として生成する。リコメンド情報の生成については、類似度が上位の同じクラスラベルまたは学習に使用していないラベルが複数存在する場合、その代表的な一事例を提示し、他に何件同じラベルの事象が存在するかを表示するものであってもよい。これにより、複数の候補を効率よくリコメンドでき、かつ同じラベルの事象の数をリコメンドの確かさの判断材料として活用することもできる。
【0027】
リコメンド理由生成部260は、どの語句が類似度に大きく寄与したかの情報を生成することによりリコメンド理由を提示する。ここで、リコメンド理由生成部260によるリコメンド理由として提示する情報の生成について説明する。
【0028】
まず、類似度としてコサイン類似度を用いた場合のリコメンド理由として提示する情報の生成の例について説明する。
【0029】
ベクトルa、b間のコサイン値は、式(1)のように表される。
【0030】
【0031】
ここでベクトルaを新たな質疑応答データに対する第二の文章ベクトル、ベクトルbをリコメンドモデル320から作成した第二の文章ベクトルとする。この場合、コサイン値を文章間の類似度として扱うことができる。
【0032】
ここで、式(1)における最右辺の分子の各項aibiに注目する。各項aibiの添え字iは、ベクトルの要素番号を表している。各項aibiは、TF-IDFなどの文章ベクトルの場合、「BIOS」、「設定」、「入り方」などの語句と対応している。この項を数値の大きい順に並び替えて抽出し、対応する語句とその数値を例えば表の形式で提示することにより、どの語句によってそのリコメンドがされたのかを端末装置10を介してオペレータに知らせることができる。また、この項の数値をコサイン値で割ったものを表示すれば寄与率として提示することができる。
【0033】
次に、類似度としてユークリッドノルムを用いた場合のリコメンド理由として提示する情報の生成の例について説明する。
【0034】
ベクトルa、b間のユークリッドノルムは、式(2)のように表される。
【0035】
【0036】
ユークリッドノルムを用いた類似度は、コサイン類似度と異なり、値が小さいほどベクトル間の距離が近くなる。そのため、ユークリッドノルムを用いた類似度では、値が小さいほど類似度が高いものとして扱う。これにより、式(2)における右辺のai-biの値が小さく、かつ、ai≠0、bi≠0に対応する語句を類似度への寄与の高い語句として提示することができる。
【0037】
リコメンド出力部270は、リコメンド生成部250が生成したリコメンド情報と、リコメンド理由生成部260が生成したリコメンド理由とを整形する。リコメンド出力部270は、整形したリコメンド情報および整形したリコメンド理由を、リコメンド結果として出力する。
【0038】
図3は、本開示の一実施形態によるモデルアップデート部280の構成の一例を示す図である。モデルアップデート部280は、
図3に示すように、不要リコメンド削除受付部400、不要リコメンド削除反映部410、モデル形式アップデート受付部420、およびモデル形式アップデート反映部430を備える。
【0039】
不要リコメンド削除受付部400は、オペレータによる端末装置10への操作により、端末装置10から有用/不要リコメンド情報の有無について入力を受け付ける。
【0040】
不要リコメンド削除受付部400が端末装置10からの入力結果として不要リコメンド情報を受け付けた場合、不要リコメンド削除反映部410は、不要リコメンドデータをリコメンドモデル320から削除する。そして、不要リコメンド削除反映部410は、端末装置10からの入力の受付を終了する。
【0041】
また、不要リコメンド削除受付部400が端末装置10からの入力結果として不要リコメンド情報を受け付けなかった場合、不要リコメンド削除反映部410は、端末装置10からの入力の受付を終了する。
【0042】
モデル形式アップデート受付部420は、有用であったリコメンドに対して新しいフォーマットに沿った内容の追記を受け付ける。
【0043】
モデル形式アップデート反映部430は、モデル形式アップデート受付部420が受け付けた新しいフォーマットに沿った内容を、モデル記憶部300内のリコメンドモデル320に反映させる。
【0044】
また、モデル形式アップデート反映部430は、有用なリコメンドが無い場合や新しいフォーマットに沿った内容の追記が無い場合には、そのまま処理を終了する。これにより、リコメンドの実績があり、かつ有用であった事象が優先的に新しいフォーマットに沿って更新される。そして、新しいフォーマットに沿って更新されたデータが蓄積されたタイミングで、新しく機械学習モデルを作成し直すことが可能となる。
【0045】
モデル記憶部300は、学習部100のクラス分類モデル生成部130が生成したクラス分類モデル310と、学習部100のリコメンドモデル生成部150が生成したリコメンドモデル320とを格納する。
【0046】
次に、本開示の一実施形態による応対システム1が行う処理について、
図4~
図8を参照して説明する。
図4は、本開示の一実施形態による応対システム1の処理フローの第1の例を示す図である。
図5は、本開示の一実施形態による応対システム1の処理フローの第2の例を示す図である。
図6は、本開示の一実施形態による応対システム1の処理フローの第3の例を示す図である。
図7は、本開示の一実施形態による応対システム1の処理フローの第4の例を示す図である。
図8は、本開示の一実施形態による応対システム1の処理フローの第5の例を示す図である。
【0047】
まず、
図4を参照して、応対システム1が行うクラス分類器の学習の手順について説明する。
【0048】
前処理部110は、応対履歴DB20におけるデータ中の質問文T10のすべてを、学習用質疑応答データとして取得する(ステップS100)。前処理部110は、取得したすべての質問文T10(学習用質疑応答データ)を用いて形態素解析を行う。第一特徴抽出部120は、前処理部110による形態素解析の結果から第一の文章ベクトルを作成する(ステップS101)。
【0049】
クラス分類モデル生成部130は、第一特徴抽出部120が作成した第一の文章ベクトルと応対履歴DB20に付与された分類T20(すなわち、クラスラベル)とを用いて、クラス分類モデル310により表されるクラス分類器を学習する(ステップS102)。モデル記憶部300は、学習部100のクラス分類モデル生成部130が生成した学習済みのクラス分類器を、第一の文章ベクトルとともに(例えばモデル記憶部300に)記録する(ステップS103)。
【0050】
第二特徴抽出部140は、分類T20が示すラベルの種類ごとに学習データを分割する。第二特徴抽出部140は、分割した学習データのそれぞれに対して、形態素解析の結果から第二の文章ベクトルを作成する(ステップS104)。リコメンドモデル生成部150は、第二特徴抽出部140が作成した第二の文章ベクトルをリコメンドモデル320としてモデル記憶部300に記録する(ステップS105)。
【0051】
次に、
図5を参照して、応対システム1が行う複数の候補をリコメンドする手順について説明する。
【0052】
オペレータは、新たな問い合わせを受ける。オペレータは、受けた新たな問い合わせに応じて、端末装置10に対して、応対提示装置30に新たな質疑応答データを入力する操作を行う。端末装置10は、オペレータによる操作に応じて、応対提示装置30に新たな質疑応答データを入力する。
【0053】
前処理部210は、応対提示装置30に入力された新たな質疑応答データを取得する(ステップS200)。前処理部210は、取得した質疑応答データにおける新たな質問文を用いて形態素解析を行う。第一特徴抽出部220は、前処理部210による形態素解析の結果から第一の文章ベクトルを作成する。(ステップS201)。
【0054】
クラス分類実行部230は、モデル記憶部300に格納されたクラス分類モデル310をロードする(ステップS202)。クラス分類実行部230は、第一特徴抽出部220が作成した第一の文章ベクトルを、ロードしたクラス分類モデル310に入力し、クラス分類を実行する(ステップS203)。
【0055】
リコメンド生成部250は、モデル記憶部300に格納されたリコメンドモデル320をロードする(ステップS204)。第二特徴抽出部240は、前処理部210が取得した新たな質疑応答データに対して、第二の文章ベクトルを作成する(ステップS205)。リコメンド生成部250は、クラス分類実行部230による実行結果で得られたクラスに対応する第二の文章ベクトルモデルと、ロードしたリコメンドモデル320に格納された第二の文章ベクトルとの類似度を計算する(ステップS206)。リコメンド生成部250は、類似度の高い応答履歴DB20の回答文T30をリコメンド情報として生成する(ステップS207)。
【0056】
なお、類似度計算にはコサイン類似度やユークリッドノルムを用いた類似度などを使用する。リコメンド情報の生成については、類似度の上位のうち同じクラスラベル、もしくは学習に使用していないラベルが複数存在する場合、その代表的な1事例を提示し、他に何件同じラベルの事象が存在するかを表示してもよい。
図9は、本開示の一実施形態における他に何件同じラベルの事象が存在するかの表示例を示す図である。例えば、
図9の(a)の部分に示すように、ラベルとして、パーツAが3つ、パーツBが2つ、パーツCが1つ存在する場合、リコメンド生成部250は、同一ラベルにおいて最も高い類似度をそのラベルの類似度とし、類似度の高い順にラベルを並べる。そして、リコメンド生成部250は、
図9の(b)の部分に示すように、各ラベルの存在する件数を、各ラベルと各ラベルの類似度とに関連付ける。このように、リコメンド生成部250は、ステップS207において、リコメンド情報を生成する。
【0057】
ここで、
図6を参照して、どの語句が類似度に大きく寄与したのかを示す情報であるリコメンド理由を生成するリコメンド理由生成部260が行う処理について説明する。
【0058】
まず、類似度としてコサイン類似度を例に挙げてリコメンド理由生成部260がリコメンド理由を生成する処理を説明する。
【0059】
ベクトルa、b間のコサイン値は、上記の式(1)のように表される。リコメンド理由生成部260は、ベクトルaとして新たな質疑応答データに対する第二の文章ベクトルを、ベクトルbとしてリコメンドモデル320から作成した第二の文章ベクトルを取得する(ステップS300)。この場合、リコメンド理由生成部260は、コサイン値を文章間の類似度として扱うことになる。
【0060】
リコメンド理由生成部260は、式(1)における最右辺の分子の各項aibiとして、類似度計算の各要素を取得する(ステップS301)。ここで、式(1)における最右辺の分子の各項aibiに注目する。各項aibiの添え字iは、ベクトルの要素番号を表している。各項aibiは、TF-IDFなどの文章ベクトルの場合、「BIOS」、「設定」、「入り方」などの語句と対応している。リコメンド理由生成部260は、各項aibiである要素番号を、数値(すなわち寄与度)の大きい順に並び替える(ステップS302)。そして、リコメンド理由生成部260は、並び替えた後の各項aibiに対応する語句とその項の数値を(例えば表の形式で)リコメンド情報として生成する(ステップS303)。リコメンド理由生成部260は、数値の大きい(すなわち寄与度の大きい)上位の単語を提示する(ステップS304)。なお、リコメンド理由生成部260は、この項の数値をコサイン値で割ったものを表示すれば寄与率として生成することができる。
【0061】
図10は、本開示の一実施形態における並び替えた後の各項aibiに対応する語句とその項の数値の一例を示す図である。
図10に示す例では、類似度が高い順に項に対応する語句が「BIOS設定への入り方がわからない」、「BIOSアップデート方法が知りたい」、「アプリケーションプログラムの設定がわからない(
図10では、「アプリ設定がわからない」と記載)」と並べられ、語句とともに類似度の数値が生成される。
【0062】
次に、類似度としてユークリッドノルムを例に挙げてリコメンド理由生成部260が行う処理を説明する。
【0063】
ベクトルa、b間のユークリッドノルムは、上記の式(2)のように表される。リコメンド理由生成部260は、ベクトルaを新たな質疑応答データに対する第二の文章ベクトル、ベクトルbをリコメンドモデル320から作成した第二の文章ベクトルとして取得する(ステップS300に対応する処理)。この場合、リコメンド理由生成部260は、ユークリッドノルムを文章間の類似度として扱うことになる。
【0064】
リコメンド理由生成部260は、式(2)における右辺の各項(ai-bi)^2を取得する(ステップS301に対応する処理)。コサイン類似度の場合とは異なり、ユークリッドノルムは、値が小さくなるほどベクトルa、b間の距離が近くなる。そのため、類似度としては、ユークリッドノルムの値が小さくなるほど高くなる。よって、(ai-bi)^2の数値が低く、かつ、ai≠0、bi≠0に対応する語句が類似度への寄与の度合いの高い語句となる。リコメンド理由生成部260は、各項(ai-bi)^2を数値の低い順に並び替える(ステップS302に対応する処理)。そして、リコメンド理由生成部260は、並び替えた後の各項(ai-bi)^2に対応する語句とその項の数値を(例えば表の形式で)リコメンド情報として生成する(ステップS303に対応する処理)。リコメンド理由生成部260は、数値の小さい(すなわち寄与度の大きい)上位の単語を提示する(ステップS304に対応する処理)。
【0065】
ステップS303の処理(または、ステップS303に対応する処理)に続いて、リコメンド出力部270は、リコメンド生成部250とリコメンド理由生成部260が生成したリコメンド情報を整形し、整形したリコメンド情報をリコメンド結果として出力する。
図11は、本開示の一実施形態におけるリコメンド結果の一例を示す図である。例えば、リコメンド出力部270は、リコメンド情報を整形することにより、類似度の高い順(
図11では「類似順位」と記載)に、その類似度の数値(
図11では「類似度」と記載)、過去の質問内容(
図11では「過去質問内容」と記載)、およびその質問内容についての処置内容(
図11では「処置内容」と記載)を、リコメンド結果として端末装置10に出力する。
【0066】
ここで、
図7を参照して、モデルのアップデートに関する不要リコメンド削除受付部400および不要リコメンド削除反映部410が行う処理について説明する。
【0067】
オペレータは、リコメンド出力部270が出力したリコメンド結果を、端末装置10を介して受け取る。オペレータは、リコメンド結果を確認し、有用であったリコメンド結果と、不要であったリコメンド結果とを選択する操作を端末装置10に対して行う。不要であったリコメンド結果の例としては、過去のリコメンド結果として「わからない」という回答文、内容が改善される前の過去にリコメンドされた回答文などが挙げられる。不要リコメンド削除受付部400は、オペレータによる操作に応じて、有用であったリコメンド結果および不要であったリコメンド結果の有無について入力を受け付ける(ステップS400)。不要リコメンド削除反映部410は、端末装置10から受け付けた入力結果を確認する(ステップS401)。不要リコメンド削除反映部410は、不要なリコメンド結果が存在するか否かを判定する(ステップS402)。そして、不要リコメンド削除反映部410は、不要なリコメンド結果が存在する場合(ステップS402においてYES)、その不要なリコメンド結果をリコメンドモデル320から削除する(ステップS403)。そして、不要リコメンド削除反映部410は、端末装置10からの入力の受付を終了する(ステップS404)。また、不要なリコメンド結果が存在しない場合(ステップS402においてNO)、不要リコメンド削除受付部400は、ステップS404の処理に進める。これにより、類似度の高い順に語句が並べられ提示されるため、どの語句がそのリコメンドに寄与したのかを端末装置10を介してオペレータに知らせることができる。
【0068】
なお、本開示の一実施形態では、1回の入力で有用なリコメンド結果と不要なリコメンド結果とを判断した。しかしながら、同一内容のリコメンド結果が何度も出力されるが、そのリコメンド結果が所定回数(例えばN回)有用であると判断されなかった場合、そのリコメンド結果についての学習データをリコメンドモデル320から削除するものであってもよい。なお、所定回数Nは、可変パラメータとして設定されるものであってもよい。
【0069】
また、オペレータが不要であると選択したリコメンド結果についての学習データは、リコメンドモデル320から直ちに削除されるものであってもよい。
【0070】
また、上記の2手法のいずれかに限定するものではなく、両方の手法を用いてリコメンドモデル320から不要な学習データを削除し、リコメンドモデル320のアップデートを実施すればよい。
【0071】
次に、
図8を参照して、モデル形式アップデート受付部420が行うデータ形式を更新するためのリコメンドモデル320のアップデート手順について説明する。
【0072】
リコメンドモデル320は、旧形式のデータ(過去のデータの中で最も新しいデータ)を用いて学習されることにより、学習済みモデルとして作成される。旧形式のデータで作成されたモデルによる類似度によって過去の事例の回答文がリコメンドされた後、オペレータ10は、リコメンド結果を確認し、有用であるリコメンドを入力する操作をモデル形式アップデート受付部420に対して行う。モデル形式アップデート受付部420は、有用であるリコメンドが旧形式のデータに存在するか否かを判定する(ステップS500)。モデル形式アップデート受付部420は、有用であるリコメンドが旧形式のデータに存在すると判定した場合(ステップS500においてYES)、処理を終了する。また、モデル形式アップデート受付部420は、有用であるリコメンドが旧形式のデータに存在しないと判定した場合(ステップS500においてNO)、その有用であるリコメンドを旧形式のデータに追加する(ステップS501)。そして、モデル形式アップデート受付部420は、有用であるリコメンドを旧形式のデータに追加したデータを、新しい形式のデータ(有用であるリコメンドを追加した後の最も新しいデータであって、次のステップS500においては旧形式のデータとなるデータ)としてモデル記憶部300内のリコメンドモデル320に反映させる(ステップS502)。これにより、リコメンド実績があり、かつ有用であった事象が優先的に新フォーマットに更新されていく。新フォーマットのデータが蓄積されたタイミングで新しくモデルを作成し直すことが可能となる。
【0073】
なお、本開示の一実施形態では、応対提示装置30は、独立した装置として説明しているが、各機能をプログラムとして提供可能であってもよい。例えば、応対提示装置30は、運用管理サーバ(コンピュータの一例)などにプログラムをインストールすること、オペレータ10の利用する端末/タブレット型端末やクライアントPC(Personal Computer、コンピュータの一例)などにインストールすること、クラウド上の仮想サーバ(コンピュータの一例)にインストールすることで実現可能であってもよい。
【0074】
以上、本開示の一実施形態による応対システム1について説明した。応対システム1(処理装置の一例)において、第1処理部は、質問文、ラベル、および回答文を含むすべての学習データに対して、前記質問文についてのベクトルを含む第一の文章ベクトルを生成し、前記第一の文章ベクトルに基づいて、前記質問文を入力した場合に入力した前記質問文に対応するラベルを出力する第1モデルを生成する。第2処理部は、前記すべての学習データをラベルごとに分割し、分割したラベルごとの学習データに含まれる質問文について単語ごとのベクトルを含む第二の文章ベクトルを生成し、前記第二の文章ベクトルを第2モデルとする。第3処理部は、前記第1モデルおよび前記第2モデルに基づいて、新たな質問文に対して推奨される回答文および推奨される回答文の推奨理由を提示する。
【0075】
この応対システム1により、推奨される回答文および推奨される回答文の推奨理由を提示することができ、オペレータは、推奨理由を理解することで、推奨される回答の正当性や確かさの判断材料とすることができる。そのため、オペレータは、質問者に対して、推奨される回答文に基づいてより適切な回答を実行することができる。その結果、この応対システム1により、質問に対応する応答を提示する場合に、オペレータが不適切な回答をする可能性を低減させることができる。
【0076】
また、上述の本開示の一実施形態による応対システム1により、オペレータが不要であると判断したデータを排除することができ、再学習することなくモデルが無意味な回答文を推奨する可能性を低減させることができる。
【0077】
また、上述の本開示の一実施形態による応対システム1により、過去のデータに基づく旧形式のデータでは、新たな質問文に対して適切な回答文が得られない場合においても、有用であるリコメンドを旧形式のデータに追加したデータを、新しい形式のデータとすることで、モデルに反映させることができる。その結果、新たな質問文に対してより適切な回答文が得られるようになる。
【0078】
なお、本開示の各実施形態による応対システム1の一部または全部は、コールセンターに設置されるものであってもよい。また、本開示の各実施形態による応対システム1の一部または全部は、ヘルプデスク業務へ導入されるものであってもよい。
【0079】
なお、本開示の別の実施形態では、分類T20を更に細分化した分類項目とし、クラス分類モデル生成部130が生成するクラス分類器を、1つではなく複数の(例えば、2段階のクラス分けを実行する)クラス分類器とするものであってもよい。
【0080】
図12は、本開示の実施形態による処理装置500の最小構成を示す図である。処理装置500は、
図12に示すように、第1処理手段501、第2処理手段502、および第3処理手段503を備える。第1処理手段501は、質問文、ラベル、および回答文を含むすべての学習データに対して、前記質問文についてのベクトルを含む第一の文章ベクトルを生成し、前記第一の文章ベクトルに基づいて、前記質問文を入力した場合に入力した前記質問文に対応するラベルを出力する第1モデルを生成する。第2処理手段502は、前記すべての学習データをラベルごとに分割し、分割したラベルごとの学習データに含まれる質問文について単語ごとのベクトルを含む第二の文章ベクトルを生成し、前記第二の文章ベクトルを第2モデルとする。第3処理手段503は、前記第1モデルおよび前記第2モデルに基づいて、新たな質問文に対して推奨される回答文および推奨される回答文の推奨理由を生成し、生成した前記推奨される回答文および前記推奨理由を提示する。第1処理手段501は、例えば、
図1に例示されている前処理部110、第一特徴抽出部120、およびクラス分類モデル生成部130のそれぞれが有する機能を用いて実現することができる。第2処理手段502は、例えば、
図1に例示されている第二特徴抽出部140、およびリコメンドモデル生成部150が有する機能を用いて実現することができる。第3処理手段503は、例えば、
図1に例示されているリコメンド生成部250、およびリコメンド理由生成部260が有する機能を用いて実現することができる。
【0081】
図13は、本開示の実施形態による最小構成の処理装置500の処理フローの一例を示す図である。次に、本開示の実施形態による最小構成の処理装置500の処理について
図13を参照して説明する。
【0082】
第1処理手段501は、質問文、ラベル、および回答文を含むすべての学習データに対して、前記質問文についてのベクトルを含む第一の文章ベクトルを生成し、前記第一の文章ベクトルに基づいて、前記質問文を入力した場合に入力した前記質問文に対応するラベルを出力する第1モデルを生成する(ステップS101)。第2処理手段502は、前記すべての学習データをラベルごとに分割し、分割したラベルごとの学習データに含まれる質問文について単語ごとのベクトルを含む第二の文章ベクトルを生成し、前記第二の文章ベクトルを第2モデルとする(ステップS102)。第3処理手段503は、前記第1モデルおよび前記第2モデルに基づいて、新たな質問文に対して推奨される回答文および推奨される回答文の推奨理由を生成し、生成した前記推奨される回答文および前記推奨理由を提示する(ステップS103)。
【0083】
以上、本開示の実施形態による最小構成の処理装置500について説明した。この処理装置500により、質問に対応する応答を提示する場合に、オペレータが不適切な回答をする可能性を低減させることができる。
【0084】
なお、本開示の実施形態における処理は、適切な処理が行われる範囲において、処理の順番が入れ替わってもよい。
【0085】
本開示の実施形態について説明したが、上述の応対システム1、端末装置10、応対履歴DB20、応対提示装置30、学習部100、リコメンド部200、その他の制御装置は内部に、コンピュータシステムを有していてもよい。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。コンピュータの具体例を以下に示す。
【0086】
図14は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。コンピュータ5は、
図14に示すように、CPU6、メインメモリ7、ストレージ8、インターフェース9を備える。例えば、上述の応対システム1、端末装置10、応対履歴DB20、応対提示装置30、学習部100、リコメンド部200、その他の制御装置のそれぞれは、コンピュータ5に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ8に記憶されている。CPU6は、プログラムをストレージ8から読み出してメインメモリ7に展開し、当該プログラムに従って上記処理を実行する。また、CPU6は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ7に確保する。
【0087】
ストレージ8の例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)、磁気ディスク、光磁気ディスク、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、半導体メモリ等が挙げられる。ストレージ8は、コンピュータ5のバスに直接接続された内部メディアであってもよいし、インターフェース9または通信回線を介してコンピュータ5に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ5に配信される場合、配信を受けたコンピュータ5が当該プログラムをメインメモリ7に展開し、上記処理を実行してもよい。少なくとも1つの実施形態において、ストレージ8は、一時的でない有形の記憶媒体である。
【0088】
また、上記プログラムは、前述した機能の一部を実現してもよい。さらに、上記プログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるファイル、いわゆる差分ファイル(差分プログラム)であってもよい。
【0089】
本開示のいくつかの実施形態を説明したが、これらの実施形態は、例であり、開示の範囲を限定しない。これらの実施形態は、開示の要旨を逸脱しない範囲で、種々の追加、省略、置き換え、変更を行ってよい。
【0090】
なお、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0091】
(付記1)
質問文、ラベル、および回答文を含むすべての学習データに対して、前記質問文についてのベクトルを含む第一の文章ベクトルを生成し、前記第一の文章ベクトルに基づいて、前記質問文を入力した場合に入力した前記質問文に対応するラベルを出力する第1モデルを生成する第1処理部と、
前記すべての学習データをラベルごとに分割し、分割したラベルごとの学習データに含まれる質問文について単語ごとのベクトルを含む第二の文章ベクトルを生成し、前記第二の文章ベクトルを第2モデルとする第2処理部と、
前記第1モデルおよび前記第2モデルに基づいて、新たな質問文に対して推奨される回答文および推奨される回答文の推奨理由を生成し、生成した前記推奨される回答文および前記推奨理由を生成し、生成した前記推奨される回答文および前記推奨理由を提示する第3処理部と、
を備える処理装置。
【0092】
(付記2)
前記第2処理部は、
前記第2モデルに基づいて、前記分割したラベルごとの学習データに含まれる質問文と、前記新たな質問文との類似度を算出し、
前記第3処理部は、前記類似度に基づいて、前記推奨される回答文および前記推奨理由を提示する、
付記1に記載の処理装置。
【0093】
(付記3)
前記第2処理部は、
前記分割したラベルごとの学習データに含まれる質問文における単語ごとのベクトルと、前記新たな質問文における単語ごとのベクトルとについて、コサイン類似度またはユークリッドノルムを用いて類似度を算出し、
前記第3処理部は、前記第2処理部が算出した類似度への寄与の度合いの高い順に前記単語を前記推奨理由として提示する、
付記1または付記2に記載の処理装置。
【0094】
(付記4)
前記推奨される回答文および前記推奨理由のうち、無用な回答文および推奨理由に関連するデータを前記学習データから削除する第4処理部、
を備える付記1から付記3の何れか1つに記載の処理装置。
【0095】
(付記5)
前記推奨される回答文および前記推奨理由のうち、有用な回答文および推奨理由を前記第1モデルおよび前記第2モデルに追加する第5処理部、
を備える付記1から付記4の何れか1つに記載の処理装置。
【0096】
(付記6)
質問文、ラベル、および回答文を含むすべての学習データに対して、前記質問文についてのベクトルを含む第一の文章ベクトルを生成し、前記第一の文章ベクトルに基づいて、前記質問文を入力した場合に入力した前記質問文に対応するラベルを出力する第1モデルを生成することと、
前記すべての学習データをラベルごとに分割し、分割したラベルごとの学習データに含まれる質問文について単語ごとのベクトルを含む第二の文章ベクトルを生成し、前記第二の文章ベクトルを第2モデルとすることと、
前記第1モデルおよび前記第2モデルに基づいて、新たな質問文に対して推奨される回答文および推奨される回答文の推奨理由を生成し、生成した前記推奨される回答文および前記推奨理由を提示することと、
を含む処理方法。
【0097】
(付記7)
コンピュータに、
質問文、ラベル、および回答文を含むすべての学習データに対して、前記質問文についてのベクトルを含む第一の文章ベクトルを生成し、前記第一の文章ベクトルに基づいて、前記質問文を入力した場合に入力した前記質問文に対応するラベルを出力する第1モデルを生成することと、
前記すべての学習データをラベルごとに分割し、分割したラベルごとの学習データに含まれる質問文について単語ごとのベクトルを含む第二の文章ベクトルを生成し、前記第二の文章ベクトルを第2モデルとすることと、
前記第1モデルおよび前記第2モデルに基づいて、新たな質問文に対して推奨される回答文および推奨される回答文の推奨理由を生成し、生成した前記推奨される回答文および前記推奨理由を提示することと、
を実行させるプログラム。
【符号の説明】
【0098】
1・・・応対システム
5・・・コンピュータ
6・・・CPU
7・・・メインメモリ
8・・・ストレージ
9・・・インターフェース
10・・・端末装置
20・・・応対履歴データベース
30・・・応対提示装置
100・・・学習部
110・・・前処理部
120・・・第一特徴抽出部
130・・・クラス分類モデル生成部
140・・・第二特徴抽出部
150・・・リコメンドモデル生成部
200・・・リコメンド部
210・・・前処理部
220・・・第一特徴抽出部
230・・・クラス分類実行部
240・・・第二特徴抽出部
250・・・リコメンド生成部
260・・・リコメンド理由生成部
270・・・リコメンド出力部
280・・・モデルアップデート部
300・・・モデル記憶部
310・・・クラス分類モデル
400・・・不要リコメンド削除受付部
410・・・不要リコメンド削除反映部
420・・・モデル形式アップデート受付部
430・・・モデル形式アップデート反映部